summaryrefslogtreecommitdiff
path: root/src/diff.c
diff options
context:
space:
mode:
authorRussell Belfer <rb@github.com>2013-03-05 16:10:05 -0800
committerRussell Belfer <rb@github.com>2013-03-06 16:52:01 -0800
commit169dc61607b69726c6012ab70758692637928a85 (patch)
tree01593b00741391d9c9d6aad6344aed4cbc8ef6a4 /src/diff.c
parented4f95e5d9f2f59dc5d5a4b76a696b0595b6175d (diff)
downloadlibgit2-169dc61607b69726c6012ab70758692637928a85.tar.gz
Make iterator APIs consistent with standards
The iterator APIs are not currently consistent with the parameter ordering of the rest of the codebase. This rearranges the order of parameters, simplifies the naming of a number of functions, and makes somewhat better use of macros internally to clean up the iterator code. This also expands the test coverage of iterator functionality, making sure that case sensitive range-limited iteration works correctly.
Diffstat (limited to 'src/diff.c')
-rw-r--r--src/diff.c41
1 files changed, 20 insertions, 21 deletions
diff --git a/src/diff.c b/src/diff.c
index 0861b13eb..c0f8ee689 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -630,8 +630,8 @@ int git_diff__from_iterators(
goto fail;
}
- if (git_iterator_current(old_iter, &oitem) < 0 ||
- git_iterator_current(new_iter, &nitem) < 0)
+ if (git_iterator_current(&oitem, old_iter) < 0 ||
+ git_iterator_current(&nitem, new_iter) < 0)
goto fail;
/* run iterators building diffs */
@@ -663,12 +663,12 @@ int git_diff__from_iterators(
if (S_ISDIR(nitem->mode) &&
!(diff->opts.flags & GIT_DIFF_RECURSE_UNTRACKED_DIRS))
{
- if (git_iterator_advance(new_iter, &nitem) < 0)
+ if (git_iterator_advance(&nitem, new_iter) < 0)
goto fail;
}
}
- if (git_iterator_advance(old_iter, &oitem) < 0)
+ if (git_iterator_advance(&oitem, old_iter) < 0)
goto fail;
}
@@ -696,7 +696,7 @@ int git_diff__from_iterators(
/* do not advance into directories that contain a .git file */
if (!contains_oitem && recurse_untracked) {
git_buf *full = NULL;
- if (git_iterator_current_workdir_path(new_iter, &full) < 0)
+ if (git_iterator_current_workdir_path(&full, new_iter) < 0)
goto fail;
if (git_path_contains_dir(full, DOT_GIT))
recurse_untracked = false;
@@ -710,7 +710,7 @@ int git_diff__from_iterators(
git_iterator_current_is_ignored(new_iter))
git_buf_sets(&ignore_prefix, nitem->path);
- if (git_iterator_advance_into_directory(new_iter, &nitem) < 0)
+ if (git_iterator_advance_into(&nitem, new_iter) < 0)
goto fail;
continue;
@@ -733,7 +733,7 @@ int git_diff__from_iterators(
* skip the file.
*/
else if (delta_type == GIT_DELTA_IGNORED) {
- if (git_iterator_advance(new_iter, &nitem) < 0)
+ if (git_iterator_advance(&nitem, new_iter) < 0)
goto fail;
continue; /* ignored parent directory, so skip completely */
}
@@ -762,7 +762,7 @@ int git_diff__from_iterators(
}
}
- if (git_iterator_advance(new_iter, &nitem) < 0)
+ if (git_iterator_advance(&nitem, new_iter) < 0)
goto fail;
}
@@ -772,11 +772,10 @@ int git_diff__from_iterators(
else {
assert(oitem && nitem && cmp == 0);
- if (maybe_modified(
- old_iter, oitem, new_iter, nitem, diff) < 0 ||
- git_iterator_advance(old_iter, &oitem) < 0 ||
- git_iterator_advance(new_iter, &nitem) < 0)
- goto fail;
+ if (maybe_modified(old_iter, oitem, new_iter, nitem, diff) < 0 ||
+ git_iterator_advance(&oitem, old_iter) < 0 ||
+ git_iterator_advance(&nitem, new_iter) < 0)
+ goto fail;
}
}
@@ -814,8 +813,8 @@ int git_diff_tree_to_tree(
assert(diff && repo);
DIFF_FROM_ITERATORS(
- git_iterator_for_tree_range(&a, old_tree, 0, pfx, pfx),
- git_iterator_for_tree_range(&b, new_tree, 0, pfx, pfx)
+ git_iterator_for_tree(&a, old_tree, 0, pfx, pfx),
+ git_iterator_for_tree(&b, new_tree, 0, pfx, pfx)
);
return error;
@@ -836,8 +835,8 @@ int git_diff_tree_to_index(
return error;
DIFF_FROM_ITERATORS(
- git_iterator_for_tree_range(&a, old_tree, 0, pfx, pfx),
- git_iterator_for_index_range(&b, index, 0, pfx, pfx)
+ git_iterator_for_tree(&a, old_tree, 0, pfx, pfx),
+ git_iterator_for_index(&b, index, 0, pfx, pfx)
);
return error;
@@ -857,8 +856,8 @@ int git_diff_index_to_workdir(
return error;
DIFF_FROM_ITERATORS(
- git_iterator_for_index_range(&a, index, 0, pfx, pfx),
- git_iterator_for_workdir_range(&b, repo, 0, pfx, pfx)
+ git_iterator_for_index(&a, index, 0, pfx, pfx),
+ git_iterator_for_workdir(&b, repo, 0, pfx, pfx)
);
return error;
@@ -876,8 +875,8 @@ int git_diff_tree_to_workdir(
assert(diff && repo);
DIFF_FROM_ITERATORS(
- git_iterator_for_tree_range(&a, old_tree, 0, pfx, pfx),
- git_iterator_for_workdir_range(&b, repo, 0, pfx, pfx)
+ git_iterator_for_tree(&a, old_tree, 0, pfx, pfx),
+ git_iterator_for_workdir(&b, repo, 0, pfx, pfx)
);
return error;