summaryrefslogtreecommitdiff
path: root/versioncmp.c
diff options
context:
space:
mode:
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>2023-03-28 16:04:23 +0200
committerJunio C Hamano <gitster@pobox.com>2023-03-28 07:37:53 -0700
commitf6f348a6d5d585fb3eda326a20bf2bab9e60ef51 (patch)
treecf5798983346fc4b351b00c6561e1a249b288767 /versioncmp.c
parentb83efcecaf12884d2bbb72b8ef2e4528205a0b02 (diff)
downloadgit-f6f348a6d5d585fb3eda326a20bf2bab9e60ef51.tar.gz
versioncmp.c: refactor config reading next commit
Refactor the reading of the versionSort.suffix and versionSort.prereleaseSuffix configuration variables to stay within the bounds of our CodingGuidelines when it comes to line length, and to avoid repeating ourselves. Renaming "deprecated_prereleases" to "oldl" doesn't help us to avoid line wrapping now, but it will in a subsequent commit. Let's also split out the names of the config variables into variables of our own, and refactor the nested if/else to avoid indenting it, and the existing bracing style issue. This all helps with the subsequent commit, where we'll need to start checking different git_config_get_value_multi() return value. See c026557a373 (versioncmp: generalize version sort suffix reordering, 2016-12-08) for the original implementation of most of this. Moving the "initialized = 1" assignment allows us to move some of this to the variable declarations in the subsequent commit. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'versioncmp.c')
-rw-r--r--versioncmp.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/versioncmp.c b/versioncmp.c
index 069ee94a4d..323f5d35ea 100644
--- a/versioncmp.c
+++ b/versioncmp.c
@@ -160,15 +160,18 @@ 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 *oldl;
+
+ prereleases = git_config_get_value_multi(newk);
+ oldl = git_config_get_value_multi(oldk);
+ if (prereleases && oldl)
+ warning("ignoring %s because %s is set", oldk, newk);
+ else if (!prereleases)
+ 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))