Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
diff.c: return filepair from diff_unmerge()
author
Junio C Hamano
<gitster@pobox.com>
Fri, 22 Apr 2011 22:55:55 +0000
(15:55 -0700)
committer
Junio C Hamano
<gitster@pobox.com>
Sun, 24 Apr 2011 05:34:43 +0000
(22:34 -0700)
The underlying diff_queue() returns diff_filepair so that the caller can
further add information to it, and the helper function diff_unmerge()
utilizes the feature itself, but does not expose it to its callers, which
was kind of selfish.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff.c
patch
|
blob
|
history
diff.h
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
3749fde
)
diff --git
a/diff.c
b/diff.c
index 9a5c77c13ff3406a85e8a94f309a639529f2d88b..4c34c64bd7dac112e2bea27a0c99967e0b9bc050 100644
(file)
--- a/
diff.c
+++ b/
diff.c
@@
-4308,20
+4308,23
@@
void diff_change(struct diff_options *options,
DIFF_OPT_SET(options, HAS_CHANGES);
}
DIFF_OPT_SET(options, HAS_CHANGES);
}
-
void
diff_unmerge(struct diff_options *options,
- const char *path,
- unsigned mode, const unsigned char *sha1)
+
struct diff_filepair *
diff_unmerge(struct diff_options *options,
+
const char *path,
+
unsigned mode, const unsigned char *sha1)
{
{
+ struct diff_filepair *pair;
struct diff_filespec *one, *two;
if (options->prefix &&
strncmp(path, options->prefix, options->prefix_length))
struct diff_filespec *one, *two;
if (options->prefix &&
strncmp(path, options->prefix, options->prefix_length))
- return;
+ return
NULL
;
one = alloc_filespec(path);
two = alloc_filespec(path);
fill_filespec(one, sha1, mode);
one = alloc_filespec(path);
two = alloc_filespec(path);
fill_filespec(one, sha1, mode);
- diff_queue(&diff_queued_diff, one, two)->is_unmerged = 1;
+ pair = diff_queue(&diff_queued_diff, one, two);
+ pair->is_unmerged = 1;
+ return pair;
}
static char *run_textconv(const char *pgm, struct diff_filespec *spec,
}
static char *run_textconv(const char *pgm, struct diff_filespec *spec,
diff --git
a/diff.h
b/diff.h
index bf2f44d840735684c89f654ee6f3b3a935af2c55..f51a8ee1b2a159814ce7fcca699b9895365ab2ff 100644
(file)
--- a/
diff.h
+++ b/
diff.h
@@
-209,7
+209,7
@@
extern void diff_change(struct diff_options *,
const char *fullpath,
unsigned dirty_submodule1, unsigned dirty_submodule2);
const char *fullpath,
unsigned dirty_submodule1, unsigned dirty_submodule2);
-extern
void
diff_unmerge(struct diff_options *,
+extern
struct diff_filepair *
diff_unmerge(struct diff_options *,
const char *path,
unsigned mode,
const unsigned char *sha1);
const char *path,
unsigned mode,
const unsigned char *sha1);