git

Форк
0
/t
/
patch0014 
64 строки · 1.5 Кб
1
---
2
 builtin-mailinfo.c | 37 ++++++++++++++++++++++++++++++++++++-
3
 1 files changed, 36 insertions(+), 1 deletions(-)
4

5
diff --git a/builtin-mailinfo.c b/builtin-mailinfo.c
6
index b0b5d8f..461c47e 100644
7
--- a/builtin-mailinfo.c
8
+++ b/builtin-mailinfo.c
9
@@ -712,6 +712,34 @@ static inline int patchbreak(const struct strbuf *line)
10
 	return 0;
11
 }
12
 
13
+static int scissors(const struct strbuf *line)
14
+{
15
+	size_t i, len = line->len;
16
+	int scissors_dashes_seen = 0;
17
+	const char *buf = line->buf;
18
+
19
+	for (i = 0; i < len; i++) {
20
+		if (isspace(buf[i]))
21
+			continue;
22
+		if (buf[i] == '-') {
23
+			scissors_dashes_seen |= 02;
24
+			continue;
25
+		}
26
+		if (i + 1 < len && !memcmp(buf + i, ">8", 2)) {
27
+			scissors_dashes_seen |= 01;
28
+			i++;
29
+			continue;
30
+		}
31
+		if (i + 7 < len && !memcmp(buf + i, "cut here", 8)) {
32
+			i += 7;
33
+			continue;
34
+		}
35
+		/* everything else --- not scissors */
36
+		break;
37
+	}
38
+	return scissors_dashes_seen == 03;
39
+}
40
+
41
 static int handle_commit_msg(struct strbuf *line)
42
 {
43
 	static int still_looking = 1;
44
@@ -723,10 +751,17 @@ static int handle_commit_msg(struct strbuf *line)
45
 		strbuf_ltrim(line);
46
 		if (!line->len)
47
 			return 0;
48
-		if ((still_looking = check_header(line, s_hdr_data, 0)) != 0)
49
+		still_looking = check_header(line, s_hdr_data, 0);
50
+		if (still_looking)
51
 			return 0;
52
 	}
53
 
54
+	if (scissors(line)) {
55
+		fseek(cmitmsg, 0L, SEEK_SET);
56
+		still_looking = 1;
57
+		return 0;
58
+	}
59
+
60
 	/* normalize the log message to UTF-8. */
61
 	if (metainfo_charset)
62
 		convert_to_utf8(line, charset.buf);
63
-- 
64
1.6.4.1
65

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.