Jeff King <p...@peff.net> writes:

> On Thu, Dec 20, 2012 at 08:28:57AM +0700, Nguyen Thai Ngoc Duy wrote:
>
>> > So I think this is a nice, simple approach for sites that want it, and
>> > noglob magic can come later (and will not be any harder to implement as
>> > a result of this patch).
>> 
>> Any chance to make use of nd/pathspec-wildcard? It changes the same
>> code path in match_one. If you base on top of nd/pathspec-wildcard,
>> all you have to do is assign nowildcard_len to len (i.e. no wildcard
>> part).
>
> I'd rather keep it separate for now. One, just because they really are
> independent topics, and two, because I am actually back-porting it for
> GitHub (we are fairly conservative about upgrading our backend git
> versions, as most of the interesting stuff happens on the client side; I
> cherry-pick critical patches with no regard to the release cycle).
>
> And the resolution is pretty trivial, too. It looks like this:
>
> diff --cc dir.c
> index 5c0e5f6,03ff36b..81cb439
> --- a/dir.c
> +++ b/dir.c
> @@@ -1456,14 -1433,10 +1460,18 @@@ int init_pathspec(struct pathspec *path
>   
>               item->match = path;
>               item->len = strlen(path);
> -             item->nowildcard_len = simple_length(path);
>  -            item->use_wildcard = !limit_pathspec_to_literal() &&
>  -                                 !no_wildcard(path);
>  -            if (item->use_wildcard)
>  -                    pathspec->has_wildcard = 1;
>  +            item->flags = 0;
> -             if (item->nowildcard_len < item->len) {
> -                     pathspec->has_wildcard = 1;
> -                     if (path[item->nowildcard_len] == '*' &&
> -                         no_wildcard(path + item->nowildcard_len + 1))
> -                             item->flags |= PATHSPEC_ONESTAR;
> ++            if (limit_pathspec_to_literal())
> ++                    item->nowildcard_len = item->len;
> ++            else {
> ++                    item->nowildcard_len = simple_length(path);
> ++                    if (item->nowildcard_len < item->len) {
> ++                            pathspec->has_wildcard = 1;
> ++                            if (path[item->nowildcard_len] == '*' &&
> ++                                no_wildcard(path + item->nowildcard_len + 
> 1))
> ++                                    item->flags |= PATHSPEC_ONESTAR;
> ++                    }
>  +            }
>       }
>   
>       qsort(pathspec->items, pathspec->nr,

Hmph.  I thought that returning the length without any "stop at glob
special" trick from simple_length() would be a simpler resolution.

That is what is queued at the tip of 'pu', anyway.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to