]> git.ipfire.org Git - thirdparty/git.git/commitdiff
scalar: address -Wsign-compare warnings
authorPatrick Steinhardt <ps@pks.im>
Fri, 6 Dec 2024 10:27:30 +0000 (11:27 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 6 Dec 2024 11:20:05 +0000 (20:20 +0900)
There are two -Wsign-compare warnings in "scalar.c", both of which are
trivial:

  - We mistakenly use a signed integer to loop towards an upper unsigned
    bound in `cmd_reconfigure()`.

  - We subtract `path_sep - enlistment->buf`, which results in a signed
    integer, and use the value in a ternary expression where second
    value is unsigned. But as `path_sep` is being assigned the result of
    `find_last_dir_sep(enlistment->buf + offset)` we know that it must
    always be bigger than or equal to `enlistment->buf`, and thus the
    result will be positive.

Address both of these warnings.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
scalar.c

index 87bb30991bf768534a988608d9b194dc8b5ba78a..f24bcd0169cee4f5055304a42954f7bf5df67e48 100644 (file)
--- a/scalar.c
+++ b/scalar.c
@@ -3,7 +3,6 @@
  */
 
 #define USE_THE_REPOSITORY_VARIABLE
-#define DISABLE_SIGN_COMPARE_WARNINGS
 
 #include "git-compat-util.h"
 #include "abspath.h"
@@ -380,7 +379,7 @@ static int delete_enlistment(struct strbuf *enlistment)
        offset = offset_1st_component(enlistment->buf);
        path_sep = find_last_dir_sep(enlistment->buf + offset);
        strbuf_add(&parent, enlistment->buf,
-                  path_sep ? path_sep - enlistment->buf : offset);
+                  path_sep ? (size_t) (path_sep - enlistment->buf) : offset);
        if (chdir(parent.buf) < 0) {
                int res = error_errno(_("could not switch to '%s'"), parent.buf);
                strbuf_release(&parent);
@@ -655,7 +654,7 @@ static int cmd_reconfigure(int argc, const char **argv)
                NULL
        };
        struct string_list scalar_repos = STRING_LIST_INIT_DUP;
-       int i, res = 0;
+       int res = 0;
        struct strbuf commondir = STRBUF_INIT, gitdir = STRBUF_INIT;
 
        argc = parse_options(argc, argv, NULL, options,
@@ -673,7 +672,7 @@ static int cmd_reconfigure(int argc, const char **argv)
 
        git_config(get_scalar_repos, &scalar_repos);
 
-       for (i = 0; i < scalar_repos.nr; i++) {
+       for (size_t i = 0; i < scalar_repos.nr; i++) {
                int succeeded = 0;
                struct repository *old_repo, r = { NULL };
                const char *dir = scalar_repos.items[i].string;