@@ -469,7 +469,7 @@ static void collect_changes_cb(struct diff_queue_struct *q,
for (i = 0; i < stat.nr; i++) {
const char *name = stat.files[i]->name;
- int hash = strhash(name);
+ unsigned int hash = strhash(name);
struct pathname_entry *entry;
struct file_item *file_item;
struct adddel *adddel, *other_adddel;
@@ -443,7 +443,7 @@ static int name_terminate(int c, int terminate)
/* remove double slashes to make --index work with such filenames */
static char *squash_slash(char *name)
{
- int i = 0, j = 0;
+ size_t i = 0, j = 0;
if (!name)
return NULL;
@@ -654,7 +654,7 @@ static char *find_name_common(struct strbuf *root,
const char *end,
int terminate)
{
- int len;
+ size_t len;
const char *start = NULL;
if (p_value == 0)
@@ -685,13 +685,13 @@ static char *find_name_common(struct strbuf *root,
* or "file~").
*/
if (def) {
- int deflen = strlen(def);
+ size_t deflen = strlen(def);
if (deflen < len && !strncmp(start, def, deflen))
return squash_slash(xstrdup(def));
}
if (root->len) {
- char *ret = xstrfmt("%s%.*s", root->buf, len, start);
+ char *ret = xstrfmt("%s%.*s", root->buf, (int)len, start);
return squash_slash(ret);
}
@@ -790,7 +790,7 @@ static int has_epoch_timestamp(const char *nameline)
const char *timestamp = NULL, *cp, *colon;
static regex_t *stamp;
regmatch_t m[10];
- int zoneoffset, epoch_hour, hour, minute;
+ long zoneoffset, epoch_hour, hour, minute;
int status;
for (cp = nameline; *cp != '\n'; cp++) {
@@ -1083,7 +1083,7 @@ static int gitdiff_index(struct gitdiff_data *state,
* and optional space with octal mode.
*/
const char *ptr, *eol;
- int len;
+ size_t len;
const unsigned hexsz = the_hash_algo->hexsz;
ptr = strchr(line, '.');
@@ -2172,9 +2172,9 @@ static int parse_chunk(struct apply_state *state, char *buffer, unsigned long si
"Files ",
NULL,
};
- int i;
+ size_t i;
for (i = 0; binhdr[i]; i++) {
- int len = strlen(binhdr[i]);
+ size_t len = strlen(binhdr[i]);
if (len < size - hd &&
!memcmp(binhdr[i], buffer + hd, len)) {
state->linenr++;
@@ -352,12 +352,12 @@ static void write_global_extended_header(struct archiver_args *args)
}
static struct archiver **tar_filters;
-static int nr_tar_filters;
-static int alloc_tar_filters;
+static size_t nr_tar_filters;
+static size_t alloc_tar_filters;
static struct archiver *find_tar_filter(const char *name, size_t len)
{
- int i;
+ size_t i;
for (i = 0; i < nr_tar_filters; i++) {
struct archiver *ar = tar_filters[i];
if (!strncmp(ar->name, name, len) && !ar->name[len])
@@ -525,7 +525,7 @@ static struct archiver tar_archiver = {
void init_tar_archiver(void)
{
- int i;
+ size_t i;
register_archiver(&tar_archiver);
tar_filter_config("tar.tgz.command", internal_gzip_command, NULL);
@@ -37,14 +37,15 @@ static void prep_base85(void)
}
}
-int decode_85(char *dst, const char *buffer, int len)
+int decode_85(char *dst, const char *buffer, size_t len)
{
prep_base85();
- say2("decode 85 <%.*s>", len / 4 * 5, buffer);
+ say2("decode 85 <%.*s>", (int)(len / 4 * 5), buffer);
while (len) {
unsigned acc = 0;
- int de, cnt = 4;
+ int de;
+ size_t cnt = 4;
unsigned char ch;
do {
ch = *buffer++;
@@ -76,7 +77,7 @@ int decode_85(char *dst, const char *buffer, int len)
return 0;
}
-void encode_85(char *buf, const unsigned char *data, int bytes)
+void encode_85(char *buf, const unsigned char *data, size_t bytes)
{
say("encode 85");
while (bytes) {
@@ -90,7 +91,7 @@ void encode_85(char *buf, const unsigned char *data, int bytes)
}
say1(" %08x", acc);
for (cnt = 4; cnt >= 0; cnt--) {
- int val = acc % 85;
+ unsigned val = acc % 85;
acc /= 85;
buf[cnt] = en85[val];
}
@@ -40,7 +40,8 @@ struct update_callback_data {
static int chmod_pathspec(struct pathspec *pathspec, char flip, int show_only)
{
- int i, ret = 0;
+ unsigned int i;
+ int ret = 0;
for (i = 0; i < the_index.cache_nr; i++) {
struct cache_entry *ce = the_index.cache[i];
@@ -29,7 +29,8 @@ int cmd_merge_file(int argc, const char **argv, const char *prefix)
mmfile_t mmfs[3] = { 0 };
mmbuffer_t result = { 0 };
xmparam_t xmp = { 0 };
- int ret = 0, i = 0, to_stdout = 0;
+ int ret = 0, to_stdout = 0;
+ unsigned int i = 0;
int quiet = 0;
struct option options[] = {
OPT_BOOL('p', "stdout", &to_stdout, N_("send results to standard output")),
@@ -186,7 +186,8 @@ static int module_list_compute(const char **argv,
struct pathspec *pathspec,
struct module_list *list)
{
- int i, result = 0;
+ unsigned int i;
+ int result = 0;
char *ps_matched = NULL;
parse_pathspec(pathspec, 0,
@@ -1609,10 +1609,13 @@ int repo_interpret_branch_name(struct repository *r,
int validate_headref(const char *ref);
-int base_name_compare(const char *name1, int len1, int mode1, const char *name2, int len2, int mode2);
-int df_name_compare(const char *name1, int len1, int mode1, const char *name2, int len2, int mode2);
+int base_name_compare(const char *name1, size_t len1, int mode1,
+ const char *name2, size_t len2, int mode2);
+int df_name_compare(const char *name1, size_t len1, int mode1,
+ const char *name2, size_t len2, int mode2);
int name_compare(const char *name1, size_t len1, const char *name2, size_t len2);
-int cache_name_stage_compare(const char *name1, int len1, int stage1, const char *name2, int len2, int stage2);
+int cache_name_stage_compare(const char *name1, size_t len1, int stage1,
+ const char *name2, size_t len2, int stage2);
void *read_object_with_reference(struct repository *r,
const struct object_id *oid,
@@ -1822,8 +1825,8 @@ extern const char *askpass_program;
extern const char *excludes_file;
/* base85 */
-int decode_85(char *dst, const char *line, int linelen);
-void encode_85(char *buf, const unsigned char *data, int bytes);
+int decode_85(char *dst, const char *line, size_t linelen);
+void encode_85(char *buf, const unsigned char *data, size_t bytes);
/* pkt-line.c */
void packet_trace_identity(const char *prog);
@@ -54,7 +54,7 @@ struct color {
* "word" is a buffer of length "len"; does it match the NUL-terminated
* "match" exactly?
*/
-static int match_word(const char *word, int len, const char *match)
+static int match_word(const char *word, size_t len, const char *match)
{
return !strncasecmp(word, match, len) && !match[len];
}
@@ -73,14 +73,14 @@ static int get_hex_color(const char *in, unsigned char *out)
* If an ANSI color is recognized in "name", fill "out" and return 0.
* Otherwise, leave out unchanged and return -1.
*/
-static int parse_ansi_color(struct color *out, const char *name, int len)
+static int parse_ansi_color(struct color *out, const char *name, size_t len)
{
/* Positions in array must match ANSI color codes */
static const char * const color_names[] = {
"black", "red", "green", "yellow",
"blue", "magenta", "cyan", "white"
};
- int i;
+ unsigned int i;
int color_offset = COLOR_FOREGROUND_ANSI;
if (match_word(name, len, "default")) {
@@ -119,7 +119,7 @@ static int parse_ansi_color(struct color *out, const char *name, int len)
return -1;
}
-static int parse_color(struct color *out, const char *name, int len)
+static int parse_color(struct color *out, const char *name, size_t len)
{
char *end;
long val;
@@ -219,7 +219,8 @@ int color_parse(const char *value, char *dst)
* already have the ANSI escape code in it. "out" should have enough
* space in it to fit any color.
*/
-static char *color_output(char *out, int len, const struct color *c, int background)
+static char *color_output(char *out, size_t len, const struct color *c,
+ int background)
{
int offset = 0;
@@ -250,17 +251,17 @@ static int color_empty(const struct color *c)
return c->type <= COLOR_NORMAL;
}
-int color_parse_mem(const char *value, int value_len, char *dst)
+int color_parse_mem(const char *value, size_t value_len, char *dst)
{
const char *ptr = value;
- int len = value_len;
+ size_t len = value_len;
char *end = dst + COLOR_MAXLEN;
- unsigned int has_reset = 0;
+ int has_reset = 0;
unsigned int attr = 0;
struct color fg = { COLOR_UNSPECIFIED };
struct color bg = { COLOR_UNSPECIFIED };
- while (len > 0 && isspace(*ptr)) {
+ while (len && isspace(*ptr)) {
ptr++;
len--;
}
@@ -271,10 +272,11 @@ int color_parse_mem(const char *value, int value_len, char *dst)
}
/* [reset] [fg [bg]] [attr]... */
- while (len > 0) {
+ while (len) {
const char *word = ptr;
struct color c = { COLOR_UNSPECIFIED };
- int val, wordlen = 0;
+ int val;
+ size_t wordlen = 0;
while (len > 0 && !isspace(word[wordlen])) {
wordlen++;
@@ -319,7 +321,7 @@ int color_parse_mem(const char *value, int value_len, char *dst)
if (has_reset || attr || !color_empty(&fg) || !color_empty(&bg)) {
int sep = 0;
- int i;
+ unsigned int i;
OUT('\033');
OUT('[');
@@ -334,7 +336,7 @@ int color_parse_mem(const char *value, int value_len, char *dst)
attr &= ~bit;
if (sep++)
OUT(';');
- dst += xsnprintf(dst, end - dst, "%d", i);
+ dst += xsnprintf(dst, end - dst, "%u", i);
}
if (!color_empty(&fg)) {
if (sep++)
@@ -351,7 +353,7 @@ int color_parse_mem(const char *value, int value_len, char *dst)
OUT(0);
return 0;
bad:
- return error(_("invalid color value: %.*s"), value_len, value);
+ return error(_("invalid color value: %.*s"), (int)value_len, value);
#undef OUT
}
@@ -119,7 +119,7 @@ int want_color_fd(int fd, int var);
* name ("red"), a RGB code (#0xFF0000) or a 256-color-mode from the terminal.
*/
int color_parse(const char *value, char *dst);
-int color_parse_mem(const char *value, int len, char *dst);
+int color_parse_mem(const char *value, size_t len, char *dst);
/*
* Output the formatted string in the specified color (and then reset to normal
@@ -32,7 +32,7 @@ static int item_length(const char *s)
*/
static void layout(struct column_data *data, int *width)
{
- int i;
+ size_t i;
*width = 0;
for (i = 0; i < data->list->nr; i++)
@@ -101,7 +101,7 @@ static void shrink_columns(struct column_data *data)
static void display_plain(const struct string_list *list,
const char *indent, const char *nl)
{
- int i;
+ size_t i;
for (i = 0; i < list->nr; i++)
printf("%s%s%s", indent, list->items[i].string, nl);
@@ -146,7 +146,8 @@ static void display_table(const struct string_list *list,
const struct column_options *opts)
{
struct column_data data;
- int x, y, i, initial_width;
+ int x, y, initial_width;
+ size_t i;
char *empty_cell;
memset(&data, 0, sizeof(data));
@@ -10,7 +10,8 @@
static inline void get_compiler_info(struct strbuf *info)
{
- int len = info->len;
+ size_t len = info->len;
+
#ifdef __clang__
strbuf_addf(info, "clang: %s\n", __clang_version__);
#elif defined(__GNUC__)
@@ -18,8 +19,8 @@ static inline void get_compiler_info(struct strbuf *info)
#endif
#ifdef _MSC_VER
- strbuf_addf(info, "MSVC version: %02d.%02d.%05d\n",
- _MSC_VER / 100, _MSC_VER % 100, _MSC_FULL_VER % 100000);
+ strbuf_addf(info, "MSVC version: %02d.%02d.%05d\n", _MSC_VER / 100,
+ _MSC_VER % 100, _MSC_FULL_VER % 100000);
#endif
if (len == info->len)
@@ -28,7 +29,7 @@ static inline void get_compiler_info(struct strbuf *info)
static inline void get_libc_info(struct strbuf *info)
{
- int len = info->len;
+ size_t len = info->len;
#ifdef __GLIBC__
strbuf_addf(info, "glibc: %s\n", gnu_get_libc_version());
@@ -3305,8 +3305,8 @@ static void emit_binary_diff_body(struct diff_options *o,
/* emit data encoded in base85 */
cp = data;
while (data_size) {
- int len;
- int bytes = (52 < data_size) ? 52 : data_size;
+ size_t len;
+ size_t bytes = (52 < data_size) ? 52 : data_size;
char line[71];
data_size -= bytes;
if (bytes <= 26)
@@ -35,7 +35,7 @@ static struct {
static void prepare_msg_ids(void)
{
- int i;
+ size_t i;
if (msg_id_info[0].downcased)
return;
@@ -43,7 +43,7 @@ static void prepare_msg_ids(void)
/* convert id_string to lower case, without underscores. */
for (i = 0; i < FSCK_MSG_MAX; i++) {
const char *p = msg_id_info[i].id_string;
- int len = strlen(p);
+ size_t len = strlen(p);
char *q = xmalloc(len);
msg_id_info[i].downcased = q;
@@ -397,7 +397,7 @@ void list_objects_filter_copy(
struct list_objects_filter_options *dest,
const struct list_objects_filter_options *src)
{
- int i;
+ size_t i;
/* Copy everything. We will overwrite the pointers shortly. */
memcpy(dest, src, sizeof(struct list_objects_filter_options));
@@ -3805,7 +3805,7 @@ static struct commit *get_ref(struct repository *repo,
int merge_recursive_generic(struct merge_options *opt,
const struct object_id *head,
const struct object_id *merge,
- int num_merge_bases,
+ unsigned int num_merge_bases,
const struct object_id **merge_bases,
struct commit **result)
{
@@ -3816,7 +3816,7 @@ int merge_recursive_generic(struct merge_options *opt,
struct commit_list *ca = NULL;
if (merge_bases) {
- int i;
+ unsigned int i;
for (i = 0; i < num_merge_bases; ++i) {
struct commit *base;
if (!(base = get_ref(opt->repo, merge_bases[i],
@@ -118,7 +118,7 @@ int merge_recursive(struct merge_options *opt,
int merge_recursive_generic(struct merge_options *opt,
const struct object_id *head,
const struct object_id *merge,
- int num_merge_bases,
+ unsigned int num_merge_bases,
const struct object_id **merge_bases,
struct commit **result);
@@ -956,7 +956,7 @@ void string_list_add_refs_from_colon_sep(struct string_list *list,
{
struct string_list split = STRING_LIST_INIT_NODUP;
char *globs_copy = xstrdup(globs);
- int i;
+ size_t i;
string_list_split_in_place(&split, globs_copy, ':', -1);
string_list_remove_empty_items(&split, 0);
@@ -109,7 +109,8 @@ static struct mem_pool *find_mem_pool(struct index_state *istate)
static const char *alternate_index_output;
-static void set_index_entry(struct index_state *istate, int nr, struct cache_entry *ce)
+static void set_index_entry(struct index_state *istate, unsigned int nr,
+ struct cache_entry *ce)
{
if (S_ISSPARSEDIR(ce->ce_mode))
istate->sparse_index = INDEX_COLLAPSED;
@@ -118,7 +119,8 @@ static void set_index_entry(struct index_state *istate, int nr, struct cache_ent
add_name_hash(istate, ce);
}
-static void replace_index_entry(struct index_state *istate, int nr, struct cache_entry *ce)
+static void replace_index_entry(struct index_state *istate, unsigned int nr,
+ struct cache_entry *ce)
{
struct cache_entry *old = istate->cache[nr];
@@ -488,11 +490,11 @@ int ie_modified(struct index_state *istate,
return 0;
}
-int base_name_compare(const char *name1, int len1, int mode1,
- const char *name2, int len2, int mode2)
+int base_name_compare(const char *name1, size_t len1, int mode1,
+ const char *name2, size_t len2, int mode2)
{
unsigned char c1, c2;
- int len = len1 < len2 ? len1 : len2;
+ size_t len = len1 < len2 ? len1 : len2;
int cmp;
cmp = memcmp(name1, name2, len);
@@ -517,10 +519,10 @@ int base_name_compare(const char *name1, int len1, int mode1,
* This is used by routines that want to traverse the git namespace
* but then handle conflicting entries together when possible.
*/
-int df_name_compare(const char *name1, int len1, int mode1,
- const char *name2, int len2, int mode2)
+int df_name_compare(const char *name1, size_t len1, int mode1,
+ const char *name2, size_t len2, int mode2)
{
- int len = len1 < len2 ? len1 : len2, cmp;
+ size_t len = len1 < len2 ? len1 : len2, cmp;
unsigned char c1, c2;
cmp = memcmp(name1, name2, len);
@@ -555,7 +557,8 @@ int name_compare(const char *name1, size_t len1, const char *name2, size_t len2)
return 0;
}
-int cache_name_stage_compare(const char *name1, int len1, int stage1, const char *name2, int len2, int stage2)
+int cache_name_stage_compare(const char *name1, size_t len1, int stage1,
+ const char *name2, size_t len2, int stage2)
{
int cmp;
@@ -703,7 +706,7 @@ static int index_name_pos_also_unmerged(struct index_state *istate,
return pos;
/* maybe unmerged? */
- pos = -1 - pos;
+ pos = -pos - 1;
if (pos >= istate->cache_nr ||
compare_name((ce = istate->cache[pos]), path, namelen))
return -1;
@@ -718,7 +721,7 @@ static int index_name_pos_also_unmerged(struct index_state *istate,
static int different_name(struct cache_entry *ce, struct cache_entry *alias)
{
- int len = ce_namelen(ce);
+ unsigned int len = ce_namelen(ce);
return ce_namelen(alias) != len || memcmp(ce->name, alias->name, len);
}
@@ -735,7 +738,7 @@ static struct cache_entry *create_alias_ce(struct index_state *istate,
struct cache_entry *ce,
struct cache_entry *alias)
{
- int len;
+ unsigned int len;
struct cache_entry *new_entry;
if (alias->ce_flags & CE_ADDED)
@@ -902,7 +905,7 @@ struct cache_entry *make_cache_entry(struct index_state *istate,
unsigned int refresh_options)
{
struct cache_entry *ce, *ret;
- int len;
+ size_t len;
if (verify_path_internal(path, mode) == PATH_INVALID) {
error(_("invalid path '%s'"), path);
@@ -931,7 +934,7 @@ struct cache_entry *make_transient_cache_entry(unsigned int mode,
struct mem_pool *ce_mem_pool)
{
struct cache_entry *ce;
- int len;
+ size_t len;
if (!verify_path(path, mode)) {
error(_("invalid path '%s'"), path);
@@ -982,7 +985,7 @@ int chmod_index_entry(struct index_state *istate, struct cache_entry *ce,
int ce_same_name(const struct cache_entry *a, const struct cache_entry *b)
{
- int len = ce_namelen(a);
+ unsigned int len = ce_namelen(a);
return ce_namelen(b) == len && !memcmp(a->name, b->name, len);
}
@@ -1109,8 +1112,8 @@ static int has_file_name(struct index_state *istate,
const struct cache_entry *ce, int pos, int ok_to_replace)
{
int retval = 0;
- int len = ce_namelen(ce);
- int stage = ce_stage(ce);
+ unsigned int len = ce_namelen(ce);
+ unsigned int stage = ce_stage(ce);
const char *name = ce->name;
while (pos < istate->cache_nr) {
@@ -1151,7 +1154,7 @@ int strcmp_offset(const char *s1, const char *s2, size_t *first_change)
break;
*first_change = k;
- return (unsigned char)s1[k] - (unsigned char)s2[k];
+ return (const unsigned char)s1[k] - (const unsigned char)s2[k];
}
/*
@@ -1598,7 +1601,7 @@ int refresh_index(struct index_state *istate, unsigned int flags,
const struct pathspec *pathspec,
char *seen, const char *header_msg)
{
- int i;
+ unsigned int i;
int has_errors = 0;
int really = (flags & REFRESH_REALLY) != 0;
int allow_unmerged = (flags & REFRESH_UNMERGED) != 0;
@@ -2762,7 +2765,7 @@ static int ce_write_entry(struct hashfile *f, struct cache_entry *ce,
size = offsetof(struct ondisk_cache_entry,data) + ondisk_data_size(ce->ce_flags, 0);
if (!previous_name) {
- int len = ce_namelen(ce);
+ unsigned int len = ce_namelen(ce);
copy_cache_entry_to_ondisk(ondisk, ce);
hashwrite(f, ondisk, size);
hashwrite(f, ce->name, len);
@@ -2842,8 +2845,8 @@ static int repo_verify_index(struct repository *repo)
int has_racy_timestamp(struct index_state *istate)
{
- int entries = istate->cache_nr;
- int i;
+ unsigned int entries = istate->cache_nr;
+ unsigned int i;
for (i = 0; i < entries; i++) {
struct cache_entry *ce = istate->cache[i];
@@ -3471,7 +3474,7 @@ int repo_read_index_unmerged(struct repository *repo)
for (i = 0; i < istate->cache_nr; i++) {
struct cache_entry *ce = istate->cache[i];
struct cache_entry *new_ce;
- int len;
+ unsigned int len;
if (!ce_stage(ce))
continue;
@@ -1632,9 +1632,9 @@ static void pp_buffer_stderr(struct parallel_processes *pp,
const struct run_process_parallel_opts *opts,
int output_timeout)
{
- int i;
+ size_t i;
- while ((i = poll(pp->pfd, opts->processes, output_timeout) < 0)) {
+ while (poll(pp->pfd, opts->processes, output_timeout) < 0) {
if (errno == EINTR)
continue;
pp_cleanup(pp, opts);
@@ -1642,11 +1642,12 @@ static void pp_buffer_stderr(struct parallel_processes *pp,
}
/* Buffer output from all pipes. */
- for (size_t i = 0; i < opts->processes; i++) {
+ for (i = 0; i < opts->processes; i++) {
if (pp->children[i].state == GIT_CP_WORKING &&
pp->pfd[i].revents & (POLLIN | POLLHUP)) {
- int n = strbuf_read_once(&pp->children[i].err,
- pp->children[i].process.err, 0);
+ ssize_t n = strbuf_read_once(
+ &pp->children[i].err,
+ pp->children[i].process.err, 0);
if (n == 0) {
close(pp->children[i].process.err);
pp->children[i].state = GIT_CP_WAIT_CLEANUP;
@@ -210,8 +210,8 @@ static long ff_regexp(const char *line, long len,
{
struct ff_regs *regs = priv;
regmatch_t pmatch[2];
- int i;
- int result;
+ size_t i;
+ long result;
/* Exclude terminating newline (and cr) from matching */
if (len > 0 && line[len-1] == '\n') {
@@ -244,7 +244,7 @@ static long ff_regexp(const char *line, long len,
void xdiff_set_find_func(xdemitconf_t *xecfg, const char *value, int cflags)
{
- int i;
+ size_t i;
struct ff_regs *regs;
xecfg->find_func = ff_regexp;