This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] posix: if glob has a trailing slash match directories only.


On Mon, Dec 4, 2017 at 3:01 AM, Paul Eggert <eggert@cs.ucla.edu> wrote:
> Dmitry Goncharov wrote:
>>>
>>>       flags |= GLOB_ONLYDIR | GLOB_MARK;
>>>
>>> and then at the end, filter out all matches that aren't marked with
>>> trailing '/'. This would avoid creating a new GLOB_XXX option and would
>>> probably be easier to implement.
>>>
>> Please have a look at this implementation of your idea.
>
>
> I'm not quite following how it's an implementation, since I don't see where
> it does anything like "flags |= GLOB_ONLYDIR | GLOB_MARK;". Maybe there's
> another part of the patch you're missing?

glob sets GLOB_MARK when it calls itself recursively when the pattern
has a trailing slash.

>
> The variable "filter" is a boolean and should be of type bool.

sure

>
> That comment and code look over-complicated.

i agree. Will remove the comment.

> Can't you simply copy nonnull entries in-place, in a single pass?

The first pass calls is_dir and frees and resets files. Do you mean to
also do copying in this very pass?

> That way, the filtered order will be the same as the original order.

The stable algorithm results in more iterations and more copying. Are you sure?

regards, Dmitry


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]