Browse Source
You can enable it by giving --scissors to "git am". Signed-off-by: Junio C Hamano <gitster@pobox.com>maint

10 changed files with 149 additions and 29 deletions
@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
|
||||
Author: Junio C Hamano |
||||
Email: gitster@pobox.com |
||||
Subject: Teach mailinfo to ignore everything before -- >8 -- mark |
||||
Author: Junio Hamano |
||||
Email: junkio@cox.net |
||||
Subject: BLAH ONE |
||||
Date: Thu, 20 Aug 2009 17:18:22 -0700 |
||||
|
||||
|
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
Author: Junio C Hamano |
||||
Email: gitster@pobox.com |
||||
Subject: Teach mailinfo to ignore everything before -- >8 -- mark |
||||
Date: Thu, 20 Aug 2009 17:18:22 -0700 |
||||
|
@ -0,0 +1,4 @@
@@ -0,0 +1,4 @@
|
||||
This teaches mailinfo the scissors -- >8 -- mark; the command ignores |
||||
everything before it in the message body. |
||||
|
||||
Signed-off-by: Junio C Hamano <gitster@pobox.com> |
@ -0,0 +1,64 @@
@@ -0,0 +1,64 @@
|
||||
--- |
||||
builtin-mailinfo.c | 37 ++++++++++++++++++++++++++++++++++++- |
||||
1 files changed, 36 insertions(+), 1 deletions(-) |
||||
|
||||
diff --git a/builtin-mailinfo.c b/builtin-mailinfo.c |
||||
index b0b5d8f..461c47e 100644 |
||||
--- a/builtin-mailinfo.c |
||||
+++ b/builtin-mailinfo.c |
||||
@@ -712,6 +712,34 @@ static inline int patchbreak(const struct strbuf *line) |
||||
return 0; |
||||
} |
||||
|
||||
+static int scissors(const struct strbuf *line) |
||||
+{ |
||||
+ size_t i, len = line->len; |
||||
+ int scissors_dashes_seen = 0; |
||||
+ const char *buf = line->buf; |
||||
+ |
||||
+ for (i = 0; i < len; i++) { |
||||
+ if (isspace(buf[i])) |
||||
+ continue; |
||||
+ if (buf[i] == '-') { |
||||
+ scissors_dashes_seen |= 02; |
||||
+ continue; |
||||
+ } |
||||
+ if (i + 1 < len && !memcmp(buf + i, ">8", 2)) { |
||||
+ scissors_dashes_seen |= 01; |
||||
+ i++; |
||||
+ continue; |
||||
+ } |
||||
+ if (i + 7 < len && !memcmp(buf + i, "cut here", 8)) { |
||||
+ i += 7; |
||||
+ continue; |
||||
+ } |
||||
+ /* everything else --- not scissors */ |
||||
+ break; |
||||
+ } |
||||
+ return scissors_dashes_seen == 03; |
||||
+} |
||||
+ |
||||
static int handle_commit_msg(struct strbuf *line) |
||||
{ |
||||
static int still_looking = 1; |
||||
@@ -723,10 +751,17 @@ static int handle_commit_msg(struct strbuf *line) |
||||
strbuf_ltrim(line); |
||||
if (!line->len) |
||||
return 0; |
||||
- if ((still_looking = check_header(line, s_hdr_data, 0)) != 0) |
||||
+ still_looking = check_header(line, s_hdr_data, 0); |
||||
+ if (still_looking) |
||||
return 0; |
||||
} |
||||
|
||||
+ if (scissors(line)) { |
||||
+ fseek(cmitmsg, 0L, SEEK_SET); |
||||
+ still_looking = 1; |
||||
+ return 0; |
||||
+ } |
||||
+ |
||||
/* normalize the log message to UTF-8. */ |
||||
if (metainfo_charset) |
||||
convert_to_utf8(line, charset.buf); |
||||
-- |
||||
1.6.4.1 |
Loading…
Reference in new issue