Git fork

builtin/log: fix remaining -Wsign-compare warnings

Fix remaining -Wsign-compare warnings in "builtin/log.c" and mark the
file as -Wsign-compare-clean. While most of the fixes are obvious, one
fix requires us to use `cast_size_t_to_int()`, which will cause us to
die in case the `size_t` cannot be represented as `int`. This should be
fine though, as the data would typically be set either via a config key
or via the command line, neither of which should ever exceed a couple of
kilobytes of data.

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

authored by

Patrick Steinhardt and committed by
Junio C Hamano
1ab59481 0905ed20

+13 -14
+13 -14
builtin/log.c
··· 6 6 */ 7 7 8 8 #define USE_THE_REPOSITORY_VARIABLE 9 - #define DISABLE_SIGN_COMPARE_WARNINGS 10 9 11 10 #include "builtin.h" 12 11 #include "abspath.h" ··· 209 208 210 209 static void set_default_decoration_filter(struct decoration_filter *decoration_filter) 211 210 { 212 - int i; 213 211 char *value = NULL; 214 212 struct string_list *include = decoration_filter->include_ref_pattern; 215 213 const struct string_list *config_exclude; ··· 243 241 * No command-line or config options were given, so 244 242 * populate with sensible defaults. 245 243 */ 246 - for (i = 0; i < ARRAY_SIZE(ref_namespace); i++) { 244 + for (size_t i = 0; i < ARRAY_SIZE(ref_namespace); i++) { 247 245 if (!ref_namespace[i].decoration) 248 246 continue; 249 247 ··· 717 715 unsigned long size; 718 716 enum object_type type; 719 717 char *buf = repo_read_object_file(the_repository, oid, &type, &size); 720 - int offset = 0; 718 + unsigned long offset = 0; 721 719 722 720 if (!buf) 723 721 return error(_("could not read object %s"), oid_to_hex(oid)); 724 722 725 723 assert(type == OBJ_TAG); 726 724 while (offset < size && buf[offset] != '\n') { 727 - int new_offset = offset + 1; 725 + unsigned long new_offset = offset + 1; 728 726 const char *ident; 729 727 while (new_offset < size && buf[new_offset++] != '\n') 730 728 ; /* do nothing */ ··· 1316 1314 1317 1315 static char *find_branch_name(struct rev_info *rev) 1318 1316 { 1319 - int i, positive = -1; 1320 1317 struct object_id branch_oid; 1321 1318 const struct object_id *tip_oid; 1322 1319 const char *ref, *v; 1323 1320 char *full_ref, *branch = NULL; 1321 + int interesting_found = 0; 1322 + size_t idx; 1324 1323 1325 - for (i = 0; i < rev->cmdline.nr; i++) { 1324 + for (size_t i = 0; i < rev->cmdline.nr; i++) { 1326 1325 if (rev->cmdline.rev[i].flags & UNINTERESTING) 1327 1326 continue; 1328 - if (positive < 0) 1329 - positive = i; 1330 - else 1327 + if (interesting_found) 1331 1328 return NULL; 1329 + interesting_found = 1; 1330 + idx = i; 1332 1331 } 1333 - if (positive < 0) 1332 + if (!interesting_found) 1334 1333 return NULL; 1335 - ref = rev->cmdline.rev[positive].name; 1336 - tip_oid = &rev->cmdline.rev[positive].item->oid; 1334 + ref = rev->cmdline.rev[idx].name; 1335 + tip_oid = &rev->cmdline.rev[idx].item->oid; 1337 1336 if (repo_dwim_ref(the_repository, ref, strlen(ref), &branch_oid, 1338 1337 &full_ref, 0) && 1339 1338 skip_prefix(full_ref, "refs/heads/", &v) && ··· 2183 2182 fmt_patch_suffix = cfg.fmt_patch_suffix; 2184 2183 2185 2184 /* Make sure "0000-$sub.patch" gives non-negative length for $sub */ 2186 - if (cfg.log.fmt_patch_name_max <= strlen("0000-") + strlen(fmt_patch_suffix)) 2185 + if (cfg.log.fmt_patch_name_max <= cast_size_t_to_int(strlen("0000-") + strlen(fmt_patch_suffix))) 2187 2186 cfg.log.fmt_patch_name_max = strlen("0000-") + strlen(fmt_patch_suffix); 2188 2187 2189 2188 if (cover_from_description_arg)