From: Nguyễn Thái Ngọc Duy Date: Thu, 31 Dec 2015 12:37:32 GMT Subject: [PATCH 2/7] diff.c: refactor diff_words_append() 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 --- 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