diff --git a/include/git2/diff.h b/include/git2/diff.h index 0e7c02fd0..ba2e21c27 100644 --- a/include/git2/diff.h +++ b/include/git2/diff.h @@ -55,8 +55,8 @@ typedef struct { uint32_t flags; /**< defaults to GIT_DIFF_NORMAL */ uint16_t context_lines; /**< defaults to 3 */ uint16_t interhunk_lines; /**< defaults to 3 */ - char *src_prefix; /**< defaults to "a" */ - char *dst_prefix; /**< defaults to "b" */ + char *old_prefix; /**< defaults to "a" */ + char *new_prefix; /**< defaults to "b" */ git_strarray pathspec; /**< defaults to show all paths */ } git_diff_options; @@ -113,11 +113,11 @@ typedef struct { * It will just use the git attributes for those files. */ typedef struct { - git_diff_file old; - git_diff_file new; + git_diff_file old_file; + git_diff_file new_file; git_delta_t status; - unsigned int similarity; /**< for RENAMED and COPIED, value from 0 to 100 */ - int binary; + unsigned int similarity; /**< for RENAMED and COPIED, value 0-100 */ + int binary; } git_diff_delta; /** @@ -209,15 +209,15 @@ GIT_EXTERN(void) git_diff_list_free(git_diff_list *diff); * * @param repo The repository containing the trees. * @param opts Structure with options to influence diff or NULL for defaults. - * @param old A git_tree object to diff from. - * @param new A git_tree object to diff to. + * @param old_tree A git_tree object to diff from. + * @param new_tree A git_tree object to diff to. * @param diff A pointer to a git_diff_list pointer that will be allocated. */ GIT_EXTERN(int) git_diff_tree_to_tree( git_repository *repo, const git_diff_options *opts, /**< can be NULL for defaults */ - git_tree *old, - git_tree *new, + git_tree *old_tree, + git_tree *new_tree, git_diff_list **diff); /** @@ -225,13 +225,13 @@ GIT_EXTERN(int) git_diff_tree_to_tree( * * @param repo The repository containing the tree and index. * @param opts Structure with options to influence diff or NULL for defaults. - * @param old A git_tree object to diff from. + * @param old_tree A git_tree object to diff from. * @param diff A pointer to a git_diff_list pointer that will be allocated. */ GIT_EXTERN(int) git_diff_index_to_tree( git_repository *repo, const git_diff_options *opts, /**< can be NULL for defaults */ - git_tree *old, + git_tree *old_tree, git_diff_list **diff); /** @@ -260,13 +260,13 @@ GIT_EXTERN(int) git_diff_workdir_to_index( * * @param repo The repository containing the tree. * @param opts Structure with options to influence diff or NULL for defaults. - * @param old A git_tree object to diff from. + * @param old_tree A git_tree object to diff from. * @param diff A pointer to a git_diff_list pointer that will be allocated. */ GIT_EXTERN(int) git_diff_workdir_to_tree( git_repository *repo, const git_diff_options *opts, /**< can be NULL for defaults */ - git_tree *old, + git_tree *old_tree, git_diff_list **diff); /** @@ -341,8 +341,8 @@ GIT_EXTERN(int) git_diff_print_patch( */ GIT_EXTERN(int) git_diff_blobs( git_repository *repo, - git_blob *old, - git_blob *new, + git_blob *old_blob, + git_blob *new_blob, git_diff_options *options, void *cb_data, git_diff_hunk_fn hunk_cb, diff --git a/src/diff.c b/src/diff.c index a0fd5fdf1..db339d74e 100644 --- a/src/diff.c +++ b/src/diff.c @@ -14,14 +14,14 @@ static void diff_delta__free(git_diff_delta *delta) if (!delta) return; - if (delta->new.flags & GIT_DIFF_FILE_FREE_PATH) { - git__free((char *)delta->new.path); - delta->new.path = NULL; + if (delta->new_file.flags & GIT_DIFF_FILE_FREE_PATH) { + git__free((char *)delta->new_file.path); + delta->new_file.path = NULL; } - if (delta->old.flags & GIT_DIFF_FILE_FREE_PATH) { - git__free((char *)delta->old.path); - delta->old.path = NULL; + if (delta->old_file.flags & GIT_DIFF_FILE_FREE_PATH) { + git__free((char *)delta->old_file.path); + delta->old_file.path = NULL; } git__free(delta); @@ -36,13 +36,13 @@ static git_diff_delta *diff_delta__alloc( if (!delta) return NULL; - delta->old.path = git__strdup(path); - if (delta->old.path == NULL) { + delta->old_file.path = git__strdup(path); + if (delta->old_file.path == NULL) { git__free(delta); return NULL; } - delta->old.flags |= GIT_DIFF_FILE_FREE_PATH; - delta->new.path = delta->old.path; + delta->old_file.flags |= GIT_DIFF_FILE_FREE_PATH; + delta->new_file.path = delta->old_file.path; if (diff->opts.flags & GIT_DIFF_REVERSE) { switch (status) { @@ -64,24 +64,24 @@ static git_diff_delta *diff_delta__dup(const git_diff_delta *d) memcpy(delta, d, sizeof(git_diff_delta)); - delta->old.path = git__strdup(d->old.path); - if (delta->old.path == NULL) { + delta->old_file.path = git__strdup(d->old_file.path); + if (delta->old_file.path == NULL) { git__free(delta); return NULL; } - delta->old.flags |= GIT_DIFF_FILE_FREE_PATH; + delta->old_file.flags |= GIT_DIFF_FILE_FREE_PATH; - if (d->new.path != d->old.path) { - delta->new.path = git__strdup(d->new.path); - if (delta->new.path == NULL) { - git__free(delta->old.path); + if (d->new_file.path != d->old_file.path) { + delta->new_file.path = git__strdup(d->new_file.path); + if (delta->new_file.path == NULL) { + git__free(delta->old_file.path); git__free(delta); return NULL; } - delta->new.flags |= GIT_DIFF_FILE_FREE_PATH; + delta->new_file.flags |= GIT_DIFF_FILE_FREE_PATH; } else { - delta->new.path = delta->old.path; - delta->new.flags &= ~GIT_DIFF_FILE_FREE_PATH; + delta->new_file.path = delta->old_file.path; + delta->new_file.flags &= ~GIT_DIFF_FILE_FREE_PATH; } return delta; @@ -94,16 +94,16 @@ static git_diff_delta *diff_delta__merge_like_cgit( if (!dup) return NULL; - if (git_oid_cmp(&dup->new.oid, &b->new.oid) == 0) + if (git_oid_cmp(&dup->new_file.oid, &b->new_file.oid) == 0) return dup; - git_oid_cpy(&dup->new.oid, &b->new.oid); + git_oid_cpy(&dup->new_file.oid, &b->new_file.oid); - dup->new.mode = b->new.mode; - dup->new.size = b->new.size; - dup->new.flags = - (dup->new.flags & GIT_DIFF_FILE_FREE_PATH) | - (b->new.flags & ~GIT_DIFF_FILE_FREE_PATH); + dup->new_file.mode = b->new_file.mode; + dup->new_file.size = b->new_file.size; + dup->new_file.flags = + (dup->new_file.flags & GIT_DIFF_FILE_FREE_PATH) | + (b->new_file.flags & ~GIT_DIFF_FILE_FREE_PATH); /* Emulate C git for merging two diffs (a la 'git diff '). * @@ -111,7 +111,7 @@ static git_diff_delta *diff_delta__merge_like_cgit( * diffs with the index but uses the workdir contents. This emulates * those choices so we can emulate the type of diff. */ - if (git_oid_cmp(&dup->old.oid, &dup->new.oid) == 0) { + if (git_oid_cmp(&dup->old_file.oid, &dup->new_file.oid) == 0) { if (dup->status == GIT_DELTA_DELETED) /* preserve pending delete info */; else if (b->status == GIT_DELTA_UNTRACKED || @@ -141,17 +141,17 @@ static int diff_delta__from_one( assert(status != GIT_DELTA_MODIFIED); if (delta->status == GIT_DELTA_DELETED) { - delta->old.mode = entry->mode; - delta->old.size = entry->file_size; - git_oid_cpy(&delta->old.oid, &entry->oid); + delta->old_file.mode = entry->mode; + delta->old_file.size = entry->file_size; + git_oid_cpy(&delta->old_file.oid, &entry->oid); } else /* ADDED, IGNORED, UNTRACKED */ { - delta->new.mode = entry->mode; - delta->new.size = entry->file_size; - git_oid_cpy(&delta->new.oid, &entry->oid); + delta->new_file.mode = entry->mode; + delta->new_file.size = entry->file_size; + git_oid_cpy(&delta->new_file.oid, &entry->oid); } - delta->old.flags |= GIT_DIFF_FILE_VALID_OID; - delta->new.flags |= GIT_DIFF_FILE_VALID_OID; + delta->old_file.flags |= GIT_DIFF_FILE_VALID_OID; + delta->new_file.flags |= GIT_DIFF_FILE_VALID_OID; if ((error = git_vector_insert(&diff->deltas, delta)) < GIT_SUCCESS) diff_delta__free(delta); @@ -162,31 +162,31 @@ static int diff_delta__from_one( static int diff_delta__from_two( git_diff_list *diff, git_delta_t status, - const git_index_entry *old, - const git_index_entry *new, + const git_index_entry *old_entry, + const git_index_entry *new_entry, git_oid *new_oid) { int error; git_diff_delta *delta; if ((diff->opts.flags & GIT_DIFF_REVERSE) != 0) { - const git_index_entry *temp = old; - old = new; - new = temp; + const git_index_entry *temp = old_entry; + old_entry = new_entry; + new_entry = temp; } - delta = diff_delta__alloc(diff, status, old->path); + delta = diff_delta__alloc(diff, status, old_entry->path); if (!delta) return git__rethrow(GIT_ENOMEM, "Could not allocate diff record"); - delta->old.mode = old->mode; - git_oid_cpy(&delta->old.oid, &old->oid); - delta->old.flags |= GIT_DIFF_FILE_VALID_OID; + delta->old_file.mode = old_entry->mode; + git_oid_cpy(&delta->old_file.oid, &old_entry->oid); + delta->old_file.flags |= GIT_DIFF_FILE_VALID_OID; - delta->new.mode = new->mode; - git_oid_cpy(&delta->new.oid, new_oid ? new_oid : &new->oid); - if (new_oid || !git_oid_iszero(&new->oid)) - delta->new.flags |= GIT_DIFF_FILE_VALID_OID; + delta->new_file.mode = new_entry->mode; + git_oid_cpy(&delta->new_file.oid, new_oid ? new_oid : &new_entry->oid); + if (new_oid || !git_oid_iszero(&new_entry->oid)) + delta->new_file.flags |= GIT_DIFF_FILE_VALID_OID; if ((error = git_vector_insert(&diff->deltas, delta)) < GIT_SUCCESS) diff_delta__free(delta); @@ -194,8 +194,8 @@ static int diff_delta__from_two( return error; } -#define DIFF_SRC_PREFIX_DEFAULT "a/" -#define DIFF_DST_PREFIX_DEFAULT "b/" +#define DIFF_OLD_PREFIX_DEFAULT "a/" +#define DIFF_NEW_PREFIX_DEFAULT "b/" static char *diff_strdup_prefix(const char *prefix) { @@ -215,7 +215,7 @@ static char *diff_strdup_prefix(const char *prefix) static int diff_delta__cmp(const void *a, const void *b) { const git_diff_delta *da = a, *db = b; - int val = strcmp(da->old.path, db->old.path); + int val = strcmp(da->old_file.path, db->old_file.path); return val ? val : ((int)da->status - (int)db->status); } @@ -233,25 +233,25 @@ static git_diff_list *git_diff_list_alloc( memcpy(&diff->opts, opts, sizeof(git_diff_options)); - diff->opts.src_prefix = diff_strdup_prefix( - opts->src_prefix ? opts->src_prefix : DIFF_SRC_PREFIX_DEFAULT); - diff->opts.dst_prefix = diff_strdup_prefix( - opts->dst_prefix ? opts->dst_prefix : DIFF_DST_PREFIX_DEFAULT); + diff->opts.old_prefix = diff_strdup_prefix( + opts->old_prefix ? opts->old_prefix : DIFF_OLD_PREFIX_DEFAULT); + diff->opts.new_prefix = diff_strdup_prefix( + opts->new_prefix ? opts->new_prefix : DIFF_NEW_PREFIX_DEFAULT); - if (!diff->opts.src_prefix || !diff->opts.dst_prefix) { + if (!diff->opts.old_prefix || !diff->opts.new_prefix) { git__free(diff); return NULL; } if (diff->opts.flags & GIT_DIFF_REVERSE) { - char *swap = diff->opts.src_prefix; - diff->opts.src_prefix = diff->opts.dst_prefix; - diff->opts.dst_prefix = swap; + char *swap = diff->opts.old_prefix; + diff->opts.old_prefix = diff->opts.new_prefix; + diff->opts.new_prefix = swap; } if (git_vector_init(&diff->deltas, 0, diff_delta__cmp) < GIT_SUCCESS) { - git__free(diff->opts.src_prefix); - git__free(diff->opts.dst_prefix); + git__free(diff->opts.old_prefix); + git__free(diff->opts.new_prefix); git__free(diff); return NULL; } @@ -274,8 +274,8 @@ void git_diff_list_free(git_diff_list *diff) diff->deltas.contents[i] = NULL; } git_vector_free(&diff->deltas); - git__free(diff->opts.src_prefix); - git__free(diff->opts.dst_prefix); + git__free(diff->opts.old_prefix); + git__free(diff->opts.new_prefix); git__free(diff); } @@ -316,16 +316,16 @@ static int oid_for_workdir_item( } static int maybe_modified( - git_iterator *old, + git_iterator *old_iter, const git_index_entry *oitem, - git_iterator *new, + git_iterator *new_iter, const git_index_entry *nitem, git_diff_list *diff) { int error = GIT_SUCCESS; git_oid noid, *use_noid = NULL; - GIT_UNUSED(old); + GIT_UNUSED(old_iter); /* support "assume unchanged" & "skip worktree" bits */ if ((oitem->flags_extended & GIT_IDXENTRY_INTENT_TO_ADD) != 0 || @@ -343,7 +343,7 @@ static int maybe_modified( oitem->mode == nitem->mode) return GIT_SUCCESS; - if (git_oid_iszero(&nitem->oid) && new->type == GIT_ITERATOR_WORKDIR) { + if (git_oid_iszero(&nitem->oid) && new_iter->type == GIT_ITERATOR_WORKDIR) { /* if they files look exactly alike, then we'll assume the same */ if (oitem->file_size == nitem->file_size && oitem->ctime.seconds == nitem->ctime.seconds && @@ -376,8 +376,8 @@ static int maybe_modified( static int diff_from_iterators( git_repository *repo, const git_diff_options *opts, /**< can be NULL for defaults */ - git_iterator *old, - git_iterator *new, + git_iterator *old_iter, + git_iterator *new_iter, git_diff_list **diff_ptr) { int error; @@ -389,11 +389,11 @@ static int diff_from_iterators( goto cleanup; } - diff->old_src = old->type; - diff->new_src = new->type; + diff->old_src = old_iter->type; + diff->new_src = new_iter->type; - if ((error = git_iterator_current(old, &oitem)) < GIT_SUCCESS || - (error = git_iterator_current(new, &nitem)) < GIT_SUCCESS) + if ((error = git_iterator_current(old_iter, &oitem)) < GIT_SUCCESS || + (error = git_iterator_current(new_iter, &nitem)) < GIT_SUCCESS) goto cleanup; /* run iterators building diffs */ @@ -403,7 +403,7 @@ static int diff_from_iterators( if (oitem && (!nitem || strcmp(oitem->path, nitem->path) < 0)) { error = diff_delta__from_one(diff, GIT_DELTA_DELETED, oitem); if (error == GIT_SUCCESS) - error = git_iterator_advance(old, &oitem); + error = git_iterator_advance(old_iter, &oitem); continue; } @@ -418,29 +418,29 @@ static int diff_from_iterators( if (ignore_prefix != NULL && git__prefixcmp(nitem->path, ignore_prefix) == 0) { - error = git_iterator_advance(new, &nitem); + error = git_iterator_advance(new_iter, &nitem); continue; } - is_ignored = git_iterator_current_is_ignored(new); + is_ignored = git_iterator_current_is_ignored(new_iter); if (S_ISDIR(nitem->mode)) { if (git__prefixcmp(oitem->path, nitem->path) == 0) { if (is_ignored) ignore_prefix = nitem->path; - error = git_iterator_advance_into_directory(new, &nitem); + error = git_iterator_advance_into_directory(new_iter, &nitem); continue; } delta_type = GIT_DELTA_UNTRACKED; } else if (is_ignored) delta_type = GIT_DELTA_IGNORED; - else if (new->type == GIT_ITERATOR_WORKDIR) + else if (new_iter->type == GIT_ITERATOR_WORKDIR) delta_type = GIT_DELTA_UNTRACKED; error = diff_delta__from_one(diff, delta_type, nitem); if (error == GIT_SUCCESS) - error = git_iterator_advance(new, &nitem); + error = git_iterator_advance(new_iter, &nitem); continue; } @@ -449,16 +449,16 @@ static int diff_from_iterators( */ assert(oitem && nitem && strcmp(oitem->path, nitem->path) == 0); - error = maybe_modified(old, oitem, new, nitem, diff); + error = maybe_modified(old_iter, oitem, new_iter, nitem, diff); if (error == GIT_SUCCESS) - error = git_iterator_advance(old, &oitem); + error = git_iterator_advance(old_iter, &oitem); if (error == GIT_SUCCESS) - error = git_iterator_advance(new, &nitem); + error = git_iterator_advance(new_iter, &nitem); } cleanup: - git_iterator_free(old); - git_iterator_free(new); + git_iterator_free(old_iter); + git_iterator_free(new_iter); if (error != GIT_SUCCESS) { git_diff_list_free(diff); @@ -474,17 +474,17 @@ cleanup: int git_diff_tree_to_tree( git_repository *repo, const git_diff_options *opts, /**< can be NULL for defaults */ - git_tree *old, - git_tree *new, + git_tree *old_tree, + git_tree *new_tree, git_diff_list **diff) { int error; git_iterator *a = NULL, *b = NULL; - assert(repo && old && new && diff); + assert(repo && old_tree && new_tree && diff); - if ((error = git_iterator_for_tree(repo, old, &a)) < GIT_SUCCESS || - (error = git_iterator_for_tree(repo, new, &b)) < GIT_SUCCESS) + if ((error = git_iterator_for_tree(repo, old_tree, &a)) < GIT_SUCCESS || + (error = git_iterator_for_tree(repo, new_tree, &b)) < GIT_SUCCESS) return error; return diff_from_iterators(repo, opts, a, b, diff); @@ -493,15 +493,15 @@ int git_diff_tree_to_tree( int git_diff_index_to_tree( git_repository *repo, const git_diff_options *opts, - git_tree *old, + git_tree *old_tree, git_diff_list **diff) { int error; git_iterator *a = NULL, *b = NULL; - assert(repo && old && diff); + assert(repo && old_tree && diff); - if ((error = git_iterator_for_tree(repo, old, &a)) < GIT_SUCCESS || + if ((error = git_iterator_for_tree(repo, old_tree, &a)) < GIT_SUCCESS || (error = git_iterator_for_index(repo, &b)) < GIT_SUCCESS) return error; @@ -529,15 +529,15 @@ int git_diff_workdir_to_index( int git_diff_workdir_to_tree( git_repository *repo, const git_diff_options *opts, - git_tree *old, + git_tree *old_tree, git_diff_list **diff) { int error; git_iterator *a = NULL, *b = NULL; - assert(repo && old && diff); + assert(repo && old_tree && diff); - if ((error = git_iterator_for_tree(repo, old, &a)) < GIT_SUCCESS || + if ((error = git_iterator_for_tree(repo, old_tree, &a)) < GIT_SUCCESS || (error = git_iterator_for_workdir(repo, &b)) < GIT_SUCCESS) return error; @@ -560,8 +560,10 @@ int git_diff_merge( while (i < onto->deltas.length || j < from->deltas.length) { git_diff_delta *o = git_vector_get(&onto->deltas, i); const git_diff_delta *f = git_vector_get_const(&from->deltas, j); - const char *opath = !o ? NULL : o->old.path ? o->old.path : o->new.path; - const char *fpath = !f ? NULL : f->old.path ? f->old.path : f->new.path; + const char *opath = + !o ? NULL : o->old_file.path ? o->old_file.path : o->new_file.path; + const char *fpath = + !f ? NULL : f->old_file.path ? f->old_file.path : f->new_file.path; if (opath && (!fpath || strcmp(opath, fpath) < 0)) { delta = diff_delta__dup(o); diff --git a/src/diff_output.c b/src/diff_output.c index 5e7486ab8..aea79ba6c 100644 --- a/src/diff_output.c +++ b/src/diff_output.c @@ -103,11 +103,11 @@ static int set_file_is_binary_by_attr(git_repository *repo, git_diff_file *file) static void set_delta_is_binary(git_diff_delta *delta) { - if ((delta->old.flags & GIT_DIFF_FILE_BINARY) != 0 || - (delta->new.flags & GIT_DIFF_FILE_BINARY) != 0) + if ((delta->old_file.flags & GIT_DIFF_FILE_BINARY) != 0 || + (delta->new_file.flags & GIT_DIFF_FILE_BINARY) != 0) delta->binary = 1; - else if ((delta->old.flags & GIT_DIFF_FILE_NOT_BINARY) != 0 || - (delta->new.flags & GIT_DIFF_FILE_NOT_BINARY) != 0) + else if ((delta->old_file.flags & GIT_DIFF_FILE_NOT_BINARY) != 0 || + (delta->new_file.flags & GIT_DIFF_FILE_NOT_BINARY) != 0) delta->binary = 0; /* otherwise leave delta->binary value untouched */ } @@ -121,34 +121,34 @@ static int file_is_binary_by_attr( delta->binary = -1; /* make sure files are conceivably mmap-able */ - if ((git_off_t)((size_t)delta->old.size) != delta->old.size || - (git_off_t)((size_t)delta->new.size) != delta->new.size) + if ((git_off_t)((size_t)delta->old_file.size) != delta->old_file.size || + (git_off_t)((size_t)delta->new_file.size) != delta->new_file.size) { - delta->old.flags |= GIT_DIFF_FILE_BINARY; - delta->new.flags |= GIT_DIFF_FILE_BINARY; + delta->old_file.flags |= GIT_DIFF_FILE_BINARY; + delta->new_file.flags |= GIT_DIFF_FILE_BINARY; delta->binary = 1; return GIT_SUCCESS; } /* check if user is forcing us to text diff these files */ if (diff->opts.flags & GIT_DIFF_FORCE_TEXT) { - delta->old.flags |= GIT_DIFF_FILE_NOT_BINARY; - delta->new.flags |= GIT_DIFF_FILE_NOT_BINARY; + delta->old_file.flags |= GIT_DIFF_FILE_NOT_BINARY; + delta->new_file.flags |= GIT_DIFF_FILE_NOT_BINARY; delta->binary = 0; return GIT_SUCCESS; } /* check diff attribute +, -, or 0 */ - error = set_file_is_binary_by_attr(diff->repo, &delta->old); + error = set_file_is_binary_by_attr(diff->repo, &delta->old_file); if (error != GIT_SUCCESS) return error; - mirror_new = (delta->new.path == delta->old.path || - strcmp(delta->new.path, delta->old.path) == 0); + mirror_new = (delta->new_file.path == delta->old_file.path || + strcmp(delta->new_file.path, delta->old_file.path) == 0); if (mirror_new) - delta->new.flags &= (delta->old.flags & BINARY_DIFF_FLAGS); + delta->new_file.flags &= (delta->old_file.flags & BINARY_DIFF_FLAGS); else - error = set_file_is_binary_by_attr(diff->repo, &delta->new); + error = set_file_is_binary_by_attr(diff->repo, &delta->new_file); set_delta_is_binary(delta); @@ -163,20 +163,20 @@ static int file_is_binary_by_content( { GIT_UNUSED(diff); - if ((delta->old.flags & BINARY_DIFF_FLAGS) == 0) { + if ((delta->old_file.flags & BINARY_DIFF_FLAGS) == 0) { size_t search_len = min(old_data->len, 4000); if (strnlen(old_data->data, search_len) != search_len) - delta->old.flags |= GIT_DIFF_FILE_BINARY; + delta->old_file.flags |= GIT_DIFF_FILE_BINARY; else - delta->old.flags |= GIT_DIFF_FILE_NOT_BINARY; + delta->old_file.flags |= GIT_DIFF_FILE_NOT_BINARY; } - if ((delta->new.flags & BINARY_DIFF_FLAGS) == 0) { + if ((delta->new_file.flags & BINARY_DIFF_FLAGS) == 0) { size_t search_len = min(new_data->len, 4000); if (strnlen(new_data->data, search_len) != search_len) - delta->new.flags |= GIT_DIFF_FILE_BINARY; + delta->new_file.flags |= GIT_DIFF_FILE_BINARY; else - delta->new.flags |= GIT_DIFF_FILE_NOT_BINARY; + delta->new_file.flags |= GIT_DIFF_FILE_NOT_BINARY; } set_delta_is_binary(delta); @@ -341,37 +341,37 @@ int git_diff_foreach( delta->status == GIT_DELTA_MODIFIED)) { if (diff->old_src == GIT_ITERATOR_WORKDIR) - error = get_workdir_content(diff->repo, &delta->old, &old_data); + error = get_workdir_content(diff->repo, &delta->old_file, &old_data); else error = get_blob_content( - diff->repo, &delta->old.oid, &old_data, &old_blob); + diff->repo, &delta->old_file.oid, &old_data, &old_blob); if (error != GIT_SUCCESS) goto cleanup; } if (delta->binary != 1 && - (hunk_cb || line_cb || git_oid_iszero(&delta->new.oid)) && + (hunk_cb || line_cb || git_oid_iszero(&delta->new_file.oid)) && (delta->status == GIT_DELTA_ADDED || delta->status == GIT_DELTA_MODIFIED)) { if (diff->new_src == GIT_ITERATOR_WORKDIR) - error = get_workdir_content(diff->repo, &delta->new, &new_data); + error = get_workdir_content(diff->repo, &delta->new_file, &new_data); else error = get_blob_content( - diff->repo, &delta->new.oid, &new_data, &new_blob); + diff->repo, &delta->new_file.oid, &new_data, &new_blob); if (error != GIT_SUCCESS) goto cleanup; - if ((delta->new.flags | GIT_DIFF_FILE_VALID_OID) == 0) { + if ((delta->new_file.flags | GIT_DIFF_FILE_VALID_OID) == 0) { error = git_odb_hash( - &delta->new.oid, new_data.data, new_data.len, GIT_OBJ_BLOB); + &delta->new_file.oid, new_data.data, new_data.len, GIT_OBJ_BLOB); if (error != GIT_SUCCESS) goto cleanup; /* since we did not have the definitive oid, we may have * incorrect status and need to skip this item. */ - if (git_oid_cmp(&delta->old.oid, &delta->new.oid) == 0) { + if (git_oid_cmp(&delta->old_file.oid, &delta->new_file.oid) == 0) { delta->status = GIT_DELTA_UNMODIFIED; goto cleanup; } @@ -414,8 +414,8 @@ int git_diff_foreach( &xdiff_params, &xdiff_config, &xdiff_callback); cleanup: - release_content(&delta->old, &old_data, old_blob); - release_content(&delta->new, &new_data, new_blob); + release_content(&delta->old_file, &old_data, old_blob); + release_content(&delta->new_file, &new_data, new_blob); if (error != GIT_SUCCESS) break; @@ -464,23 +464,23 @@ static int print_compact(void *data, git_diff_delta *delta, float progress) if (!code) return GIT_SUCCESS; - old_suffix = pick_suffix(delta->old.mode); - new_suffix = pick_suffix(delta->new.mode); + old_suffix = pick_suffix(delta->old_file.mode); + new_suffix = pick_suffix(delta->new_file.mode); git_buf_clear(pi->buf); - if (delta->old.path != delta->new.path && - strcmp(delta->old.path,delta->new.path) != 0) + if (delta->old_file.path != delta->new_file.path && + strcmp(delta->old_file.path,delta->new_file.path) != 0) git_buf_printf(pi->buf, "%c\t%s%c -> %s%c\n", code, - delta->old.path, old_suffix, delta->new.path, new_suffix); - else if (delta->old.mode != delta->new.mode && - delta->old.mode != 0 && delta->new.mode != 0) + delta->old_file.path, old_suffix, delta->new_file.path, new_suffix); + else if (delta->old_file.mode != delta->new_file.mode && + delta->old_file.mode != 0 && delta->new_file.mode != 0) git_buf_printf(pi->buf, "%c\t%s%c (%o -> %o)\n", code, - delta->old.path, new_suffix, delta->old.mode, delta->new.mode); + delta->old_file.path, new_suffix, delta->old_file.mode, delta->new_file.mode); else if (old_suffix != ' ') - git_buf_printf(pi->buf, "%c\t%s%c\n", code, delta->old.path, old_suffix); + git_buf_printf(pi->buf, "%c\t%s%c\n", code, delta->old_file.path, old_suffix); else - git_buf_printf(pi->buf, "%c\t%s\n", code, delta->old.path); + git_buf_printf(pi->buf, "%c\t%s\n", code, delta->old_file.path); if (git_buf_lasterror(pi->buf) != GIT_SUCCESS) return git_buf_lasterror(pi->buf); @@ -515,21 +515,21 @@ static int print_oid_range(diff_print_info *pi, git_diff_delta *delta) char start_oid[8], end_oid[8]; /* TODO: Determine a good actual OID range to print */ - git_oid_to_string(start_oid, sizeof(start_oid), &delta->old.oid); - git_oid_to_string(end_oid, sizeof(end_oid), &delta->new.oid); + git_oid_to_string(start_oid, sizeof(start_oid), &delta->old_file.oid); + git_oid_to_string(end_oid, sizeof(end_oid), &delta->new_file.oid); /* TODO: Match git diff more closely */ - if (delta->old.mode == delta->new.mode) { + if (delta->old_file.mode == delta->new_file.mode) { git_buf_printf(pi->buf, "index %s..%s %o\n", - start_oid, end_oid, delta->old.mode); + start_oid, end_oid, delta->old_file.mode); } else { - if (delta->old.mode == 0) { - git_buf_printf(pi->buf, "new file mode %o\n", delta->new.mode); - } else if (delta->new.mode == 0) { - git_buf_printf(pi->buf, "deleted file mode %o\n", delta->old.mode); + if (delta->old_file.mode == 0) { + git_buf_printf(pi->buf, "new file mode %o\n", delta->new_file.mode); + } else if (delta->new_file.mode == 0) { + git_buf_printf(pi->buf, "deleted file mode %o\n", delta->old_file.mode); } else { - git_buf_printf(pi->buf, "old mode %o\n", delta->old.mode); - git_buf_printf(pi->buf, "new mode %o\n", delta->new.mode); + git_buf_printf(pi->buf, "old mode %o\n", delta->old_file.mode); + git_buf_printf(pi->buf, "new mode %o\n", delta->new_file.mode); } git_buf_printf(pi->buf, "index %s..%s\n", start_oid, end_oid); } @@ -541,23 +541,23 @@ static int print_patch_file(void *data, git_diff_delta *delta, float progress) { int error; diff_print_info *pi = data; - const char *oldpfx = pi->diff->opts.src_prefix; - const char *oldpath = delta->old.path; - const char *newpfx = pi->diff->opts.dst_prefix; - const char *newpath = delta->new.path; + const char *oldpfx = pi->diff->opts.old_prefix; + const char *oldpath = delta->old_file.path; + const char *newpfx = pi->diff->opts.new_prefix; + const char *newpath = delta->new_file.path; GIT_UNUSED(progress); git_buf_clear(pi->buf); - git_buf_printf(pi->buf, "diff --git %s%s %s%s\n", oldpfx, delta->old.path, newpfx, delta->new.path); + git_buf_printf(pi->buf, "diff --git %s%s %s%s\n", oldpfx, delta->old_file.path, newpfx, delta->new_file.path); if ((error = print_oid_range(pi, delta)) < GIT_SUCCESS) return error; - if (git_oid_iszero(&delta->old.oid)) { + if (git_oid_iszero(&delta->old_file.oid)) { oldpfx = ""; oldpath = "/dev/null"; } - if (git_oid_iszero(&delta->new.oid)) { + if (git_oid_iszero(&delta->new_file.oid)) { oldpfx = ""; oldpath = "/dev/null"; } @@ -664,7 +664,7 @@ int git_diff_blobs( { diff_output_info info; git_diff_delta delta; - mmfile_t old, new; + mmfile_t old_data, new_data; xpparam_t xdiff_params; xdemitconf_t xdiff_config; xdemitcb_t xdiff_callback; @@ -678,31 +678,31 @@ int git_diff_blobs( } if (old_blob) { - old.ptr = (char *)git_blob_rawcontent(old_blob); - old.size = git_blob_rawsize(old_blob); + old_data.ptr = (char *)git_blob_rawcontent(old_blob); + old_data.size = git_blob_rawsize(old_blob); } else { - old.ptr = ""; - old.size = 0; + old_data.ptr = ""; + old_data.size = 0; } if (new_blob) { - new.ptr = (char *)git_blob_rawcontent(new_blob); - new.size = git_blob_rawsize(new_blob); + new_data.ptr = (char *)git_blob_rawcontent(new_blob); + new_data.size = git_blob_rawsize(new_blob); } else { - new.ptr = ""; - new.size = 0; + new_data.ptr = ""; + new_data.size = 0; } /* populate a "fake" delta record */ - delta.status = old.ptr ? - (new.ptr ? GIT_DELTA_MODIFIED : GIT_DELTA_DELETED) : - (new.ptr ? GIT_DELTA_ADDED : GIT_DELTA_UNTRACKED); - delta.old.mode = 0100644; /* can't know the truth from a blob alone */ - delta.new.mode = 0100644; - git_oid_cpy(&delta.old.oid, git_object_id((const git_object *)old_blob)); - git_oid_cpy(&delta.new.oid, git_object_id((const git_object *)new_blob)); - delta.old.path = NULL; - delta.new.path = NULL; + delta.status = old_data.ptr ? + (new_data.ptr ? GIT_DELTA_MODIFIED : GIT_DELTA_DELETED) : + (new_data.ptr ? GIT_DELTA_ADDED : GIT_DELTA_UNTRACKED); + delta.old_file.mode = 0100644; /* can't know the truth from a blob alone */ + delta.new_file.mode = 0100644; + git_oid_cpy(&delta.old_file.oid, git_object_id((const git_object *)old_blob)); + git_oid_cpy(&delta.new_file.oid, git_object_id((const git_object *)new_blob)); + delta.old_file.path = NULL; + delta.new_file.path = NULL; delta.similarity = 0; info.diff = NULL; @@ -716,7 +716,7 @@ int git_diff_blobs( xdiff_callback.outf = diff_output_cb; xdiff_callback.priv = &info; - xdl_diff(&old, &new, &xdiff_params, &xdiff_config, &xdiff_callback); + xdl_diff(&old_data, &new_data, &xdiff_params, &xdiff_config, &xdiff_callback); return GIT_SUCCESS; }