@@ -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++) {
@@ -1068,7 +1068,7 @@ static int gitdiff_dissimilarity(struct gitdiff_data *state UNUSED,
const char *line,
struct patch *patch)
{
- unsigned long val = strtoul(line, NULL, 10);
+ int val = atoi(line);
if (val <= 100)
patch->score = val;
return 0;
@@ -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, '.');
@@ -1125,12 +1125,10 @@ static int gitdiff_unrecognized(struct gitdiff_data *state UNUSED,
* Skip p_value leading components from "line"; as we do not accept
* absolute paths, return NULL in that case.
*/
-static const char *skip_tree_prefix(int p_value,
- const char *line,
- int llen)
+static const char *skip_tree_prefix(int p_value, const char *line, size_t llen)
{
int nslash;
- int i;
+ size_t i;
if (!p_value)
return (llen && line[0] == '/') ? NULL : line;
@@ -1152,9 +1150,7 @@ static const char *skip_tree_prefix(int p_value,
* creation or deletion of an empty file. In any of these cases,
* both sides are the same name under a/ and b/ respectively.
*/
-static char *git_header_name(int p_value,
- const char *line,
- int llen)
+static char *git_header_name(int p_value, const char *line, size_t llen)
{
const char *name;
const char *second = NULL;
@@ -1302,12 +1298,8 @@ static int check_header_line(int linenr, struct patch *patch)
return 0;
}
-int parse_git_diff_header(struct strbuf *root,
- int *linenr,
- int p_value,
- const char *line,
- int len,
- unsigned int size,
+int parse_git_diff_header(struct strbuf *root, int *linenr, int p_value,
+ const char *line, size_t len, unsigned int size,
struct patch *patch)
{
unsigned long offset;
@@ -1360,14 +1352,14 @@ int parse_git_diff_header(struct strbuf *root,
{ "index ", gitdiff_index },
{ "", gitdiff_unrecognized },
};
- int i;
+ size_t i;
len = linelen(line, size);
if (!len || line[len-1] != '\n')
break;
for (i = 0; i < ARRAY_SIZE(optable); i++) {
const struct opentry *p = optable + i;
- int oplen = strlen(p->str);
+ size_t oplen = strlen(p->str);
int res;
if (len < oplen || memcmp(p->str, line, oplen))
continue;
@@ -1391,7 +1383,7 @@ done:
"%d leading pathname components (line %d)",
parse_hdr_state.p_value),
parse_hdr_state.p_value, *linenr);
- return -128;
+ return -1;
}
patch->old_name = xstrdup(patch->def_name);
patch->new_name = xstrdup(patch->def_name);
@@ -1400,7 +1392,7 @@ done:
(!patch->old_name && !patch->is_new)) {
error(_("git diff header lacks filename information "
"(line %d)"), *linenr);
- return -128;
+ return -1;
}
patch->is_toplevel_relative = 1;
return offset;
@@ -1454,22 +1446,23 @@ static int parse_range(const char *line, int len, int offset, const char *expect
return offset + ex;
}
-static void recount_diff(const char *line, int size, struct fragment *fragment)
+static void recount_diff(const char *line, size_t size,
+ struct fragment *fragment)
{
int oldlines = 0, newlines = 0, ret = 0;
- if (size < 1) {
+ if (size == 0) {
warning("recount: ignore empty hunk");
return;
}
for (;;) {
- int len = linelen(line, size);
- size -= len;
- line += len;
+ size_t len = linelen(line, size);
- if (size < 1)
+ if (size <= len)
break;
+ size -= len;
+ line += len;
switch (*line) {
case ' ': case '\n':
@@ -2172,9 +2165,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++;
@@ -165,12 +165,8 @@ int check_apply_state(struct apply_state *state, int force_apply);
*
* Returns -1 on failure, the length of the parsed header otherwise.
*/
-int parse_git_diff_header(struct strbuf *root,
- int *linenr,
- int p_value,
- const char *line,
- int len,
- unsigned int size,
+int parse_git_diff_header(struct strbuf *root, int *linenr, int p_value,
+ const char *line, size_t len, unsigned int size,
struct patch *patch);
void release_patch(struct patch *patch);
@@ -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];
}
@@ -2193,10 +2193,10 @@ struct blame_list {
* and prepare a list of entry and the best split.
*/
static struct blame_list *setup_blame_list(struct blame_entry *unblamed,
- int *num_ents_p)
+ size_t *num_ents_p)
{
struct blame_entry *e;
- int num_ents, i;
+ size_t num_ents, i;
struct blame_list *blame_list = NULL;
for (e = unblamed, num_ents = 0; e; e = e->next)
@@ -2224,9 +2224,9 @@ static void find_copy_in_parent(struct blame_scoreboard *sb,
int opt)
{
struct diff_options diff_opts;
- int i, j;
+ size_t i, j;
struct blame_list *blame_list;
- int num_ents;
+ size_t num_ents;
struct blame_entry *unblamed = target->suspects;
struct blame_entry *leftover = NULL;
@@ -2645,7 +2645,7 @@ static int prepare_lines(struct blame_scoreboard *sb)
static struct commit *find_single_final(struct rev_info *revs,
const char **name_p)
{
- int i;
+ unsigned int i;
struct commit *found = NULL;
const char *name = NULL;
@@ -2708,7 +2708,7 @@ static struct commit *dwim_reverse_initial(struct rev_info *revs,
static struct commit *find_single_initial(struct rev_info *revs,
const char **name_p)
{
- int i;
+ unsigned int i;
struct commit *found = NULL;
const char *name = NULL;
@@ -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")),
@@ -185,7 +185,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,
@@ -1607,10 +1607,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,
@@ -1820,8 +1823,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());
@@ -517,7 +517,7 @@ static struct daemon_service daemon_service[] = {
static void enable_service(const char *name, int ena)
{
- int i;
+ size_t i;
for (i = 0; i < ARRAY_SIZE(daemon_service); i++) {
if (!strcmp(daemon_service[i].name, name)) {
daemon_service[i].enabled = ena;
@@ -529,7 +529,7 @@ static void enable_service(const char *name, int ena)
static void make_service_overridable(const char *name, int ena)
{
- int i;
+ size_t i;
for (i = 0; i < ARRAY_SIZE(daemon_service); i++) {
if (!strcmp(daemon_service[i].name, name)) {
daemon_service[i].overridable = ena;
@@ -605,7 +605,7 @@ static void canonicalize_client(struct strbuf *out, const char *in)
static char *parse_host_arg(struct hostinfo *hi, char *extra_args, int buflen)
{
char *val;
- int vallen;
+ size_t vallen;
char *end = extra_args + buflen;
if (extra_args < end && *extra_args) {
@@ -751,7 +751,8 @@ static void set_keep_alive(int sockfd)
static int execute(void)
{
char *line = packet_buffer;
- int pktlen, len, i;
+ int pktlen, len;
+ size_t i;
char *addr = getenv("REMOTE_ADDR"), *port = getenv("REMOTE_PORT");
struct hostinfo hi = HOSTINFO_INIT;
struct strvec env = STRVEC_INIT;
@@ -1149,7 +1150,7 @@ static int service_loop(struct socketlist *socklist)
signal(SIGCHLD, child_handler);
for (;;) {
- int i;
+ size_t i;
check_dead_children();
@@ -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)
@@ -2981,7 +2981,7 @@ static void emit_traversal_statistics(struct dir_struct *dir,
}
int read_directory(struct dir_struct *dir, struct index_state *istate,
- const char *path, int len, const struct pathspec *pathspec)
+ const char *path, unsigned int len, const struct pathspec *pathspec)
{
struct untracked_cache_dir *untracked;
@@ -374,7 +374,7 @@ int fill_directory(struct dir_struct *dir,
struct index_state *istate,
const struct pathspec *pathspec);
int read_directory(struct dir_struct *, struct index_state *istate,
- const char *path, int len,
+ const char *path, unsigned int len,
const struct pathspec *pathspec);
enum pattern_match_result {
@@ -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);
@@ -38,7 +38,7 @@ static int read_patches(const char *range, struct string_list *list,
struct patch_util *util = NULL;
int in_header = 1;
char *line, *current_filename = NULL;
- ssize_t len;
+ size_t len;
size_t size;
int ret = -1;
@@ -117,7 +117,7 @@ static int read_patches(const char *range, struct string_list *list,
struct patch patch = { 0 };
struct strbuf root = STRBUF_INIT;
int linenr = 0;
- int orig_len;
+ int orig_len, output;
in_header = 0;
strbuf_addch(&buf, '\n');
@@ -126,15 +126,16 @@ static int read_patches(const char *range, struct string_list *list,
if (eol)
*eol = '\n';
orig_len = len;
- len = parse_git_diff_header(&root, &linenr, 0, line,
- len, size, &patch);
- if (len < 0) {
+ output = parse_git_diff_header(&root, &linenr, 0, line,
+ len, size, &patch);
+ if (output < 0) {
error(_("could not parse git header '%.*s'"),
orig_len, line);
FREE_AND_NULL(util);
string_list_clear(list, 1);
goto cleanup;
}
+ len = output;
strbuf_addstr(&buf, " ## ");
if (patch.is_new > 0)
strbuf_addf(&buf, "%s (new)", patch.new_name);
@@ -582,7 +583,7 @@ int is_range_diff_range(const char *arg)
{
char *copy = xstrdup(arg); /* setup_revisions() modifies it */
const char *argv[] = { "", copy, "--", NULL };
- int i, positive = 0, negative = 0;
+ unsigned int i, positive = 0, negative = 0;
struct rev_info revs;
init_revisions(&revs, NULL);
@@ -603,5 +604,5 @@ int is_range_diff_range(const char *arg)
free(copy);
release_revisions(&revs);
- return negative > 0 && positive > 0;
+ return negative != 0 && positive != 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;
@@ -172,7 +172,7 @@ struct strbuf **strbuf_split_buf(const char *str, size_t slen,
struct strbuf *t;
while (slen) {
- int len = slen;
+ size_t len = slen;
if (max <= 0 || nr + 1 < max) {
const char *end = memchr(str, terminator, slen);
if (end)
@@ -29,7 +29,7 @@ extern const char *empty_strvec[];
*/
struct strvec {
const char **v;
- size_t nr;
+ int nr;
size_t alloc;
};
@@ -2284,8 +2284,8 @@ static int verify_clean_subdirectory(const struct cache_entry *ce,
* we are about to extract "ce->name"; we would not want to lose
* anything in the existing directory there.
*/
- int namelen;
- int i;
+ unsigned int namelen;
+ unsigned int i;
struct dir_struct d;
char *pathbuf;
int cnt = 0;
@@ -2312,7 +2312,7 @@ static int verify_clean_subdirectory(const struct cache_entry *ce,
i < o->src_index->cache_nr;
i++) {
struct cache_entry *ce2 = o->src_index->cache[i];
- int len = ce_namelen(ce2);
+ unsigned int len = ce_namelen(ce2);
if (len < namelen ||
strncmp(ce->name, ce2->name, namelen) ||
ce2->name[namelen] != '/')
@@ -2332,7 +2332,7 @@ static int verify_clean_subdirectory(const struct cache_entry *ce,
}
/* Do not lose a locally present file that is not ignored. */
- pathbuf = xstrfmt("%.*s/", namelen, ce->name);
+ pathbuf = xstrfmt("%.*s/", (int)namelen, ce->name);
memset(&d, 0, sizeof(d));
if (o->dir)
@@ -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;