X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=sidebyside;f=tig.c;h=810e5e785135ddbfb84b77c822ebb5ab3e7d6296;hb=0bc05be08ffc3b7eed6544c7d637a4da67e16917;hp=c963977bbdcdb71338534f27440563107ac9d8b1;hpb=c2c2839e98eb79c86012845c063680c3b8c8ecf0;p=tig.git diff --git a/tig.c b/tig.c index c963977..810e5e7 100644 --- a/tig.c +++ b/tig.c @@ -4911,6 +4911,7 @@ static bool blame_open(struct view *view) { char path[SIZEOF_STR]; + size_t i; if (!view->prev && *opt_prefix) { string_copy(path, opt_file); @@ -4928,6 +4929,24 @@ blame_open(struct view *view) return FALSE; } + /* First pass: remove multiple references to the same commit. */ + for (i = 0; i < view->lines; i++) { + struct blame *blame = view->line[i].data; + + if (blame->commit && blame->commit->id[0]) + blame->commit->id[0] = 0; + else + blame->commit = NULL; + } + + /* Second pass: free existing references. */ + for (i = 0; i < view->lines; i++) { + struct blame *blame = view->line[i].data; + + if (blame->commit) + free(blame->commit); + } + setup_update(view, opt_file); string_format(view->ref, "%s ...", opt_file);