diff options
author | Junio C Hamano <gitster@pobox.com> | 2023-04-06 23:38:28 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2023-04-06 23:38:29 +0300 |
commit | 87daf40750c9e344dd50495fdca1809aebcb1a94 (patch) | |
tree | 3f08482461e3484d5e77c7575c3fa35af28a33a4 /versioncmp.c | |
parent | e9dffbc7f11704bd25e5a36e41e5fe5c5d1f7183 (diff) | |
parent | 3611f7467fddcff6063ed2c99484047b410969fc (diff) |
Merge branch 'ab/config-multi-and-nonbool'
Assorted config API updates.
* ab/config-multi-and-nonbool:
for-each-repo: with bad config, don't conflate <path> and <cmd>
config API: add "string" version of *_value_multi(), fix segfaults
config API users: test for *_get_value_multi() segfaults
for-each-repo: error on bad --config
config API: have *_multi() return an "int" and take a "dest"
versioncmp.c: refactor config reading next commit
config API: add and use a "git_config_get()" family of functions
config tests: add "NULL" tests for *_get_value_multi()
config tests: cover blind spots in git_die_config() tests
Diffstat (limited to 'versioncmp.c')
-rw-r--r-- | versioncmp.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/versioncmp.c b/versioncmp.c index 069ee94a4d..7498da96e0 100644 --- a/versioncmp.c +++ b/versioncmp.c @@ -160,15 +160,21 @@ int versioncmp(const char *s1, const char *s2) } if (!initialized) { - const struct string_list *deprecated_prereleases; + const char *const newk = "versionsort.suffix"; + const char *const oldk = "versionsort.prereleasesuffix"; + const struct string_list *newl; + const struct string_list *oldl; + int new = git_config_get_string_multi(newk, &newl); + int old = git_config_get_string_multi(oldk, &oldl); + + if (!new && !old) + warning("ignoring %s because %s is set", oldk, newk); + if (!new) + prereleases = newl; + else if (!old) + prereleases = oldl; + initialized = 1; - prereleases = git_config_get_value_multi("versionsort.suffix"); - deprecated_prereleases = git_config_get_value_multi("versionsort.prereleasesuffix"); - if (prereleases) { - if (deprecated_prereleases) - warning("ignoring versionsort.prereleasesuffix because versionsort.suffix is set"); - } else - prereleases = deprecated_prereleases; } if (prereleases && swap_prereleases(s1, s2, (const char *) p1 - s1 - 1, &diff)) |