summaryrefslogtreecommitdiff
path: root/versioncmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'versioncmp.c')
-rw-r--r--versioncmp.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/versioncmp.c b/versioncmp.c
index 323f5d35ea..60c3a51712 100644
--- a/versioncmp.c
+++ b/versioncmp.c
@@ -162,13 +162,16 @@ int versioncmp(const char *s1, const char *s2)
if (!initialized) {
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_value_multi(newk, &newl);
+ int old = git_config_get_value_multi(oldk, &oldl);
- prereleases = git_config_get_value_multi(newk);
- oldl = git_config_get_value_multi(oldk);
- if (prereleases && oldl)
+ if (!new && !old)
warning("ignoring %s because %s is set", oldk, newk);
- else if (!prereleases)
+ if (!new)
+ prereleases = newl;
+ else if (!old)
prereleases = oldl;
initialized = 1;