diff options
author | Russell Belfer <arrbee@arrbee.com> | 2012-02-29 04:14:47 +0400 |
---|---|---|
committer | Russell Belfer <arrbee@arrbee.com> | 2012-03-03 03:49:29 +0400 |
commit | 74fa4bfae37e9d7c9e35550c881b114d7a83c4fa (patch) | |
tree | 98184643a8c42b1402e4b33f835eac424fe88768 /src/path.h | |
parent | 760db29c456ef2029a81d577d95a3fafb37ce5c6 (diff) |
Update diff to use iterators
This is a major reorganization of the diff code. This changes
the diff functions to use the iterators for traversing the
content. This allowed a lot of code to be simplified. Also,
this moved the functions relating to outputting a diff into a
new file (diff_output.c).
This includes a number of other changes - adding utility
functions, extending iterators, etc. plus more tests for the
diff code. This also takes the example diff.c program much
further in terms of emulating git-diff command line options.
Diffstat (limited to 'src/path.h')
-rw-r--r-- | src/path.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/path.h b/src/path.h index abe6c2217..981fdd6a4 100644 --- a/src/path.h +++ b/src/path.h @@ -246,4 +246,26 @@ extern int git_path_dirload( size_t alloc_extra, git_vector *contents); + +typedef struct { + struct stat st; + size_t path_len; + char path[GIT_FLEX_ARRAY]; +} git_path_with_stat; + +extern int git_path_with_stat_cmp(const void *a, const void *b); + +/** + * Load all directory entries along with stat info into a vector. + * + * This is just like git_path_dirload except that each entry in the + * vector is a git_path_with_stat structure that contains both the + * path and the stat info, plus directories will have a / suffixed + * to their path name. + */ +extern int git_path_dirload_with_stat( + const char *path, + size_t prefix_len, + git_vector *contents); + #endif |