On Monday, March 9, 2015, Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> wrote: > When both --cached and one of -amdAMD is used together we may have two > entries of the same path, e.g. " foo" and "MM foo". In this case it's > pretty clear that "foo" must be tracked, no need to display " foo". > The new function does that. > > Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> > --- > diff --git a/builtin/list-files.c b/builtin/list-files.c > index 74836f6..49fb820 100644 > --- a/builtin/list-files.c > +++ b/builtin/list-files.c > @@ -305,6 +308,34 @@ static void wt_status_populate(struct string_list *result, > string_list_remove_duplicates(result, 0); > } > > +static void delete_duplicate_cached_entries(struct string_list *result) > +{ > + struct string_list_item *src, *dst; > + > + if (show_unmerged || !show_cached || !show_changed) > + return; > + > + src = dst = result->items; > + while (src + 1 < result->items + result->nr) { > + const char *s0 = dst->string; > + const char *s1 = src[1].string; > + > + if (s0[0] == ' ' && s0[1] == ' ' && > + !strcmp(s0 + 3, s1 + 3)) { > + src++; > + } else { > + dst++; > + src++; > + } > + if (src != dst) > + *dst = *src; > + } > + if (src != dst) > + *dst = *src; Do you want to take some action here (and just above) to ensure that the item being overwritten gets deleted properly rather than leaked? > + result->nr = dst - result->items; > + > +} > + -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html