Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
rerere.c: use symbolic constants to keep track of parsing states
author
Junio C Hamano
<gitster@pobox.com>
Fri, 29 Aug 2008 17:12:23 +0000
(10:12 -0700)
committer
Junio C Hamano
<gitster@pobox.com>
Sun, 31 Aug 2008 02:41:43 +0000
(19:41 -0700)
These hardcoded integers make the code harder to follow than necessary;
replace them with enums to make it easier to read, before adding support
for optionally parsing "diff3 -m" style conflict markers.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
rerere.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
8313374
)
diff --git
a/rerere.c
b/rerere.c
index 323e493dafee46c0d3f95e3c4cd9c4c9b463bbef..bf74b262f0cc232ba118d34dd7676ce67d3a1d9e 100644
(file)
--- a/
rerere.c
+++ b/
rerere.c
@@
-75,7
+75,10
@@
static int handle_file(const char *path,
{
SHA_CTX ctx;
char buf[1024];
{
SHA_CTX ctx;
char buf[1024];
- int hunk = 0, hunk_no = 0;
+ int hunk_no = 0;
+ enum {
+ RR_CONTEXT = 0, RR_SIDE_1, RR_SIDE_2,
+ } hunk = RR_CONTEXT;
struct strbuf one, two;
FILE *f = fopen(path, "r");
FILE *out = NULL;
struct strbuf one, two;
FILE *f = fopen(path, "r");
FILE *out = NULL;
@@
-98,20
+101,20
@@
static int handle_file(const char *path,
strbuf_init(&two, 0);
while (fgets(buf, sizeof(buf), f)) {
if (!prefixcmp(buf, "<<<<<<< ")) {
strbuf_init(&two, 0);
while (fgets(buf, sizeof(buf), f)) {
if (!prefixcmp(buf, "<<<<<<< ")) {
- if (hunk)
+ if (hunk
!= RR_CONTEXT
)
goto bad;
goto bad;
- hunk = 1;
+ hunk =
RR_SIDE_
1;
} else if (!prefixcmp(buf, "=======") && isspace(buf[7])) {
} else if (!prefixcmp(buf, "=======") && isspace(buf[7])) {
- if (hunk != 1)
+ if (hunk !=
RR_SIDE_
1)
goto bad;
goto bad;
- hunk = 2;
+ hunk =
RR_SIDE_
2;
} else if (!prefixcmp(buf, ">>>>>>> ")) {
} else if (!prefixcmp(buf, ">>>>>>> ")) {
- if (hunk != 2)
+ if (hunk !=
RR_SIDE_
2)
goto bad;
if (strbuf_cmp(&one, &two) > 0)
strbuf_swap(&one, &two);
hunk_no++;
goto bad;
if (strbuf_cmp(&one, &two) > 0)
strbuf_swap(&one, &two);
hunk_no++;
- hunk =
0
;
+ hunk =
RR_CONTEXT
;
if (out) {
fputs("<<<<<<<\n", out);
fwrite(one.buf, one.len, 1, out);
if (out) {
fputs("<<<<<<<\n", out);
fwrite(one.buf, one.len, 1, out);
@@
-127,9
+130,9
@@
static int handle_file(const char *path,
}
strbuf_reset(&one);
strbuf_reset(&two);
}
strbuf_reset(&one);
strbuf_reset(&two);
- } else if (hunk == 1)
+ } else if (hunk ==
RR_SIDE_
1)
strbuf_addstr(&one, buf);
strbuf_addstr(&one, buf);
- else if (hunk == 2)
+ else if (hunk ==
RR_SIDE_
2)
strbuf_addstr(&two, buf);
else if (out)
fputs(buf, out);
strbuf_addstr(&two, buf);
else if (out)
fputs(buf, out);
@@
-146,7
+149,7
@@
static int handle_file(const char *path,
fclose(out);
if (sha1)
SHA1_Final(sha1, &ctx);
fclose(out);
if (sha1)
SHA1_Final(sha1, &ctx);
- if (hunk) {
+ if (hunk
!= RR_CONTEXT
) {
if (output)
unlink(output);
return error("Could not parse conflict hunks in %s", path);
if (output)
unlink(output);
return error("Could not parse conflict hunks in %s", path);