On Monday, March 9, 2015, Nguyễn Thái Ngọc Duy <[email protected]> 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 <[email protected]>
> ---
> 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to