On Sun, Jun 9, 2013 at 2:25 AM, Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> wrote: > This makes 'original' suitable for passing to an external command > because all pathspec magic is left in place, provided that the > external command understands pathspec. The prefixing is needed because > we usually launch a subcommand at worktree's top directory and the > subcommand can no longer calculate the prefix itself. > > This slightly affects the original purpose of 'original' > (i.e. reporting). We should report without prefixing. So only turn > this flag on when you know you are about to pass the result straight > away to an external command. > > Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> > --- > diff --git a/pathspec.c b/pathspec.c > index 9aaec36..ba0a41d 100644 > --- a/pathspec.c > +++ b/pathspec.c > @@ -203,7 +203,17 @@ static unsigned prefix_pathspec(struct pathspec_item *item, > else > match = prefix_path(prefix, prefixlen, copyfrom); > *raw = item->match = match; > - item->original = elt; > + /* > + * Prefix the pathspec (keep all magic) and put to s/put/assign/ perhaps? > + * original. Useful for passing to another command. > + */ > + if (flags & PATHSPEC_PREFIX_ORIGIN) { > + struct strbuf sb = STRBUF_INIT; > + strbuf_add(&sb, elt, copyfrom - elt); > + strbuf_addstr(&sb, match); > + item->original = strbuf_detach(&sb, NULL); > + } else > + item->original = elt; > item->len = strlen(item->match); > > if ((flags & PATHSPEC_STRIP_SUBMODULE_SLASH_CHEAP) && -- 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