diff --git a/builtin/blame.c b/builtin/blame.c index db1f56de61a434..a72e2552305256 100644 --- a/builtin/blame.c +++ b/builtin/blame.c @@ -53,7 +53,7 @@ static const char *annotate_opt_usage[] = { }; static int longest_file; -static int longest_author; +static size_t longest_author; static int max_orig_digits; static int max_digits; static int max_score_digits; @@ -529,7 +529,7 @@ static void emit_other(struct blame_scoreboard *sb, struct blame_entry *ent, int name = ci.author_mail.buf; else name = ci.author.buf; - pad = longest_author - utf8_strwidth(name); + pad = cast_size_t_to_int(longest_author - utf8_strwidth(name)); printf(" (%s%*s %10s", name, pad, "", format_time(ci.author_time, @@ -631,7 +631,7 @@ static void find_alignment(struct blame_scoreboard *sb, int *option) for (e = sb->ent; e; e = e->next) { struct blame_origin *suspect = e->suspect; - int num; + size_t num; if (compute_auto_abbrev) auto_abbrev = update_auto_abbrev(auto_abbrev, suspect); diff --git a/builtin/branch.c b/builtin/branch.c index cfb63cce5fb9df..155a3b0f16302f 100644 --- a/builtin/branch.c +++ b/builtin/branch.c @@ -343,7 +343,7 @@ static int calc_maxwidth(struct ref_array *refs, int remote_bonus) for (i = 0; i < refs->nr; i++) { struct ref_array_item *it = refs->items[i]; const char *desc = it->refname; - int w; + size_t w; skip_prefix(it->refname, "refs/heads/", &desc); skip_prefix(it->refname, "refs/remotes/", &desc); diff --git a/builtin/fetch.c b/builtin/fetch.c index 0a7a1a34765483..c38521f419648f 100644 --- a/builtin/fetch.c +++ b/builtin/fetch.c @@ -705,7 +705,7 @@ static int refcol_width(const struct ref *ref_map, int compact_format) max = max * 2 / 3; for (ref = ref_map; ref; ref = ref->next) { - int rlen, llen = 0, len; + size_t rlen, llen = 0, len; if (ref->status == REF_STATUS_REJECT_SHALLOW || !ref->peer_ref || diff --git a/builtin/worktree.c b/builtin/worktree.c index 9c76b62b02da03..bdbf46fb658973 100644 --- a/builtin/worktree.c +++ b/builtin/worktree.c @@ -961,8 +961,8 @@ static void show_worktree_porcelain(struct worktree *wt, int line_terminator) static void show_worktree(struct worktree *wt, int path_maxlen, int abbrev_len) { struct strbuf sb = STRBUF_INIT; - int cur_path_len = strlen(wt->path); - int path_adj = cur_path_len - utf8_strwidth(wt->path); + size_t cur_path_len = strlen(wt->path); + int path_adj = cast_size_t_to_int(cur_path_len - utf8_strwidth(wt->path)); const char *reason; strbuf_addf(&sb, "%-*s ", 1 + path_maxlen + path_adj, wt->path); diff --git a/column.c b/column.c index 50bbccc92ee86c..ec874036de6ee8 100644 --- a/column.c +++ b/column.c @@ -22,7 +22,7 @@ struct column_data { }; /* return length of 's' in letters, ANSI escapes stripped */ -static int item_length(const char *s) +static size_t item_length(const char *s) { return utf8_strnwidth(s, strlen(s), 1); } diff --git a/diff.c b/diff.c index e50def45383eba..4faf151345acdc 100644 --- a/diff.c +++ b/diff.c @@ -2629,7 +2629,8 @@ void print_stat_summary(FILE *fp, int files, static void show_stats(struct diffstat_t *data, struct diff_options *options) { - int i, len, add, del, adds = 0, dels = 0; + int i, add, del, adds = 0, dels = 0; + size_t len = 0; uintmax_t max_change = 0, max_len = 0; int total_files = data->nr, count; int width, name_width, graph_width, number_width = 0, bin_width = 0; @@ -2780,7 +2781,8 @@ static void show_stats(struct diffstat_t *data, struct diff_options *options) char *name = file->print_name; uintmax_t added = file->added; uintmax_t deleted = file->deleted; - int name_len, padding; + size_t name_len; + int padding; if (!file->is_interesting && (added + deleted == 0)) continue; @@ -2809,7 +2811,7 @@ static void show_stats(struct diffstat_t *data, struct diff_options *options) if (slash) name = slash; } - padding = len - utf8_strwidth(name); + padding = cast_size_t_to_int(len - utf8_strwidth(name)); if (padding < 0) padding = 0; diff --git a/gettext.c b/gettext.c index 57facbc21ec254..5a77b4f72022cb 100644 --- a/gettext.c +++ b/gettext.c @@ -127,7 +127,7 @@ void git_setup_gettext(void) } /* return the number of columns of string 's' in current locale */ -int gettext_width(const char *s) +size_t gettext_width(const char *s) { static int is_utf8 = -1; if (is_utf8 == -1) diff --git a/gettext.h b/gettext.h index 484cafa5628850..f161a21b45cd9a 100644 --- a/gettext.h +++ b/gettext.h @@ -31,7 +31,7 @@ #ifndef NO_GETTEXT extern int git_gettext_enabled; void git_setup_gettext(void); -int gettext_width(const char *s); +size_t gettext_width(const char *s); #else #define git_gettext_enabled (0) static inline void git_setup_gettext(void) diff --git a/pretty.c b/pretty.c index cf964b060cd128..203a212bc29bc8 100644 --- a/pretty.c +++ b/pretty.c @@ -1781,7 +1781,7 @@ static size_t format_and_pad_commit(struct strbuf *sb, /* in UTF-8 */ if (padding < 0) { const char *start = strrchr(sb->buf, '\n'); - int occupied; + size_t occupied; if (!start) start = sb->buf; occupied = utf8_strnwidth(start, strlen(start), 1); @@ -1802,7 +1802,7 @@ static size_t format_and_pad_commit(struct strbuf *sb, /* in UTF-8 */ placeholder++; total_consumed++; } - len = utf8_strnwidth(local_sb.buf, local_sb.len, 1); + len = cast_size_t_to_int(utf8_strnwidth(local_sb.buf, local_sb.len, 1)); if (c->flush_type == flush_left_and_steal) { const char *ch = sb->buf + sb->len - 1; diff --git a/utf8.c b/utf8.c index 902453fc6bb429..050fc8b3cdfdf8 100644 --- a/utf8.c +++ b/utf8.c @@ -462,7 +462,7 @@ int utf8_fprintf(FILE *stream, const char *format, ...) columns = fputs(buf.buf, stream); if (0 <= columns) /* keep the error from the I/O */ - columns = utf8_strwidth(buf.buf); + columns = cast_size_t_to_int(utf8_strwidth(buf.buf)); strbuf_release(&buf); return columns; } diff --git a/wt-status.c b/wt-status.c index 7108a92b52ce06..c847b4bb5ed023 100644 --- a/wt-status.c +++ b/wt-status.c @@ -325,7 +325,7 @@ static int maxwidth(const char *(*label)(int), int minval, int maxval) for (i = minval; i <= maxval; i++) { const char *s = label(i); - int len = s ? utf8_strwidth(s) : 0; + size_t len = s ? utf8_strwidth(s) : 0; if (len > result) result = len; } @@ -341,7 +341,7 @@ static void wt_longstatus_print_unmerged_data(struct wt_status *s, static char *padding; static int label_width; const char *one, *how; - int len; + size_t len; if (!padding) { label_width = maxwidth(wt_status_unmerged_status_string, 1, 7);