git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 2/7] diff.c: refactor diff_words_append()

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Dec 31, 2015, 12:37 UTC
Message-ID
<1451565457-18756-3-git-send-email-pclouds@gmail.com>
In-Reply-To
<1451565457-18756-1-git-send-email-pclouds@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 diff.c | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/diff.c b/diff.c
index dfbed41..8af1df1 100644
--- a/diff.c
+++ b/diff.c
@@ -788,9 +788,17 @@ struct diff_words_data {
 	struct diff_words_style *style;
 };
 
-static void diff_words_append(char *line, unsigned long len,
-		struct diff_words_buffer *buffer)
+static void diff_words_append(struct diff_words_data *diff_words,
+			      char *line, unsigned long len)
 {
+	struct diff_words_buffer *buffer;
+
+	if (line[0] == '-')
+		buffer = &diff_words->minus;
+	else {
+		assert(line[0] == '+');
+		buffer = &diff_words->plus;
+	}
 	ALLOC_GROW(buffer->text.ptr, buffer->text.size + len, buffer->alloc);
 	line++;
 	len--;
@@ -1252,13 +1260,8 @@ static void fn_out_consume(void *priv, char *line, unsigned long len)
 	}
 
 	if (ecbdata->diff_words) {
-		if (line[0] == '-') {
-			diff_words_append(line, len,
-					  &ecbdata->diff_words->minus);
-			return;
-		} else if (line[0] == '+') {
-			diff_words_append(line, len,
-					  &ecbdata->diff_words->plus);
+		if (line[0] == '-' || line[0] == '+') {
+			diff_words_append(ecbdata->diff_words, line, len);
 			return;
 		} else if (starts_with(line, "\\ ")) {
 			/*
-- 
2.3.0.rc1.137.g477eb31
Previous: Nguyễn Thái Ngọc DuyNext: Nguyễn Thái Ngọc Duy
Message 3 of 8 in “A failed attempt to integrate diff-highlight to the core”
  1. Nguyễn Thái Ngọc DuyDec 31, 2015
  2. 1/7 diff.c: keep all word diff structs togetherNguyễn Thái Ngọc Duy, Dec 31, 2015
  3. 2/7 diff.c: refactor diff_words_append()Nguyễn Thái Ngọc Duy, Dec 31, 2015
  4. 3/7 diff --color-words: another special diff caseNguyễn Thái Ngọc Duy, Dec 31, 2015
  5. 4/7 diff.c: refactor fn_out_diff_words_write_helper()Nguyễn Thái Ngọc Duy, Dec 31, 2015
  6. 5/7 diff: unified diff with colored words, step 1, unified diff onlyNguyễn Thái Ngọc Duy, Dec 31, 2015
  7. 6/7 diff.c: add new arguments to emit_line_0()Nguyễn Thái Ngọc Duy, Dec 31, 2015
  8. 7/7 diff --highlight-words: actually highlight wordsNguyễn Thái Ngọc Duy, Dec 31, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.