X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=diff.c;h=5285c0366738a9a6ff8fd116f74da099a5da2ae4;hb=49e3343c9fe0e134e0a8c1ec0ddeb64ae18ee9fd;hp=bfe54c3e093439d8e9df55fa319715ca20090f99;hpb=0660626caff6ac3745cd7b7908a2ca540141a2ec;p=git.git diff --git a/diff.c b/diff.c index bfe54c3e..5285c036 100644 --- a/diff.c +++ b/diff.c @@ -232,11 +232,16 @@ static char *pprint_rename(const char *a, const char *b) * name-a => name-b */ if (pfx_length + sfx_length) { + int a_midlen = len_a - pfx_length - sfx_length; + int b_midlen = len_b - pfx_length - sfx_length; + if (a_midlen < 0) a_midlen = 0; + if (b_midlen < 0) b_midlen = 0; + name = xmalloc(len_a + len_b - pfx_length - sfx_length + 7); sprintf(name, "%.*s{%.*s => %.*s}%s", pfx_length, a, - len_a - pfx_length - sfx_length, a + pfx_length, - len_b - pfx_length - sfx_length, b + pfx_length, + a_midlen, a + pfx_length, + b_midlen, b + pfx_length, a + len_a - sfx_length); } else { @@ -297,7 +302,6 @@ static const char minuses[]= "-------------------------------------------------- static void show_stats(struct diffstat_t* data) { - char *prefix = ""; int i, len, add, del, total, adds = 0, dels = 0; int max, max_change = 0, max_len = 0; int total_files = data->nr; @@ -319,6 +323,7 @@ static void show_stats(struct diffstat_t* data) } for (i = 0; i < data->nr; i++) { + char *prefix = ""; char *name = data->files[i]->name; int added = data->files[i]->added; int deleted = data->files[i]->deleted;