Date: Sun, 1 Dec 2013 17:06:10 -0500 From: Rich Felker <dalias@...ifal.cx> To: musl@...ts.openwall.com Subject: Re: fnmatch and FNM_CASEFOLD On Sun, Dec 01, 2013 at 03:02:35PM +0100, Felix Janda wrote: > Rich Felker wrote: > > On Fri, Nov 29, 2013 at 06:34:17PM -0500, Rich Felker wrote: > [...] > > > I'd also like to remove FNM_LEADING_DIR, which is unsupported by musl > > > and documented in the man page as: > > > > > > "This flag is mainly for the internal use of glibc and is > > > implemented only in certain cases." > > > > Unfortunately, Debian codesearch is showing a lot of hits for > > FNM_LEADING_DIR; I haven't researched whether they're hard or soft > > dependencies, so if anyone is willing to look into that, it'd be > > helpful. See: http://codesearch.debian.net/search?q=FNM_LEADING_DIR > > The vast majority of the matches comes from code copied from gnulib,... > implementing fnmatch(). That makes sense. However there seem to be gnulib tests checking calls with FNM_LEADING_DIR even though they don't seem to depend on the behavior. Would removing FNM_LEADING_DIR from musl's fnmatch.h cause these tests to fail and cause programs using gnulib to pull in the (highly inefficient and broken) GNU fnmatch source? > busybox's tar uses it if available for the -X and -T option for file > in/exclusion. Sadly removing FNM_LEADING_DIR from musl's headers would not fix busybox since busybox just defines it to 0 if it's missing and then proceeds to use it as if it worked... This is documented in the comments as being something to fix, but I haven't seen any progress on fixing it. > Jane Street's core library for OCaml provides libc's version of > fnmatch() to its users. Its implementation expects FNM_LEADING_DIR > (and also FNM_CASE_FOLD) to exists. What do you mean by "expects"? What goes wrong if it's missing? > recoll will only use FNM_LEADING_DIR if it is available. However its > documentation says it is always used. Does lack of FNM_LEADING_DIR impact functionality? > csync2 and dds2tar use the flag unconditionally. I would guess these mostly work with it as a no-op (like now), only failing to support some user-provided patterns. Is this true? > sitecopy checks in its config script for the existance of FNM_LEADING_DIR > and uses it if declared. It is therefore currently broken for musl and > fixed if one removes the declaration. While writing this email, I actually looked into how FNM_LEADING_DIR is supposed to work, and it's a trivial one-line change to make it work in combination with FNM_PATHNAME, so I think we should just add that, and document that it's a no-op without FNM_PATHNAME. Can you tell me if this would cover most real-world usage? At some later point we might be able to add it for non-FNM_PATHNAME. I have ideas how to do this but I'd like to combine that with an overhaul to the whole file I have in mind for post-1.0. Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.