From d0ad93e47a7150409e34a475295c28cdc1d221ec Mon Sep 17 00:00:00 2001 From: Andy Williams Date: Sun, 23 Nov 2014 00:19:36 +0000 Subject: [PATCH] Render all filename headers in a diff widget --- elm_code/lib/elm_code_diff_widget.c | 42 +++++++++++++++++------------ 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/elm_code/lib/elm_code_diff_widget.c b/elm_code/lib/elm_code_diff_widget.c index 95eeb57..e833f85 100644 --- a/elm_code/lib/elm_code_diff_widget.c +++ b/elm_code/lib/elm_code_diff_widget.c @@ -44,32 +44,40 @@ static void _elm_code_diff_widget_parse_diff(Elm_Code_File *diff, Elm_Code_File { Eina_List *item; Elm_Code_Line *line; - int number; + int number, offset; number = 0; + offset = 0; EINA_LIST_FOREACH(diff->lines, item, line) { - if (line->length > 0 && number < 2) + if (line->length > 0) { - if (line->content[0] == 'd' || line->content[0] == 'i') - continue; + if (line->content[0] == 'd' || line->content[0] == 'i' || line->content[0] == 'n') + { + offset = 0; + continue; + } } - if (number == 0) - { - elm_code_file_line_append(left, line->content+4, line->length-4); - elm_code_file_line_status_set(left, 1, ELM_CODE_STATUS_TYPE_CHANGED); - } - else if (number == 1) - { - elm_code_file_line_append(right, line->content+4, line->length-4); - elm_code_file_line_status_set(right, 1, ELM_CODE_STATUS_TYPE_CHANGED); - } - else - _elm_code_diff_widget_parse_diff_line(line, number, left, right); - number++; + if (offset == 0) + { + elm_code_file_line_append(left, line->content+4, line->length-4); + elm_code_file_line_status_set(left, number, ELM_CODE_STATUS_TYPE_CHANGED); + } + else if (offset == 1) + { + number--; + elm_code_file_line_append(right, line->content+4, line->length-4); + elm_code_file_line_status_set(right, number, ELM_CODE_STATUS_TYPE_CHANGED); + } + else + { + _elm_code_diff_widget_parse_diff_line(line, number, left, right); + } + + offset++; } }