On 01/27/2018 10:09 PM, Daniel Stenberg wrote:
On Sat, 27 Jan 2018, Patrick Monnerat via curl-library wrote:

From the curl_fnmatch.c code and unit1307.c tests, I can see that currently, a negated character set pattern can match the end of string.

Example: "a" is matched by pattern "a[^b]".

It is not what shell globing does: the end of data can only be matched by the end of the pattern.

Is it intentional or a bug ?

I'd say it is a bug.
Thanks for your reply. This confirms what I think: IMO, the end of string cannot be matched by anything else but the end of pattern or '*'. I'll fix it.
I fixed a bug in there recently and I couldn't find any proper docs describing how it is supposed to work and I took an easy route and made a decision. I suppose it should work like the fnmatch() function - although I couldn't really find any good docs for that pattern either.
Why not starting with:
https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html
https://en.wikipedia.org/wiki/Glob_(programming)
http://tldp.org/LDP/abs/html/globbingref.html

Although incomplete and somehow diverging, these docs put some light on the subject.

This is a function that seems to be virtually unused...

Well... if we need/have it, it should work :-/


The reason why I noted this problem is there are Apple Travis jobs failing on it and I tried to figure out why (I have no OS X/Darwin). The failing pattern in unit1307 is:

{ "[!ÿ]",                     "",                       MATCH },

First, it should be NOMATCH according to what has been said above.
Next, it uses a non-ascii character in a set: the current implementation does not support multi-byte characters in sets: since source encoding is UTF-8, the set is built with 2 pseudo-characters in it: \xC3 and \xBF. If we want to put the single-byte ISO-8859-1 character for it, we better code it as \xFF.

Apple Travis jobs fail with a pattern parsing error, not a "no match" and it looks like it is random and very frequent (some Apple jobs succeed). This makes me consider a possible signed character problem indexing out of the charset buffer. That said, I cannot reproduce the problem on Fedora (as expected, unsigned char --> array index is not sign extended) so it really seems to be an Apple-only problem. I'm giving up on this.

Patrick
-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Reply via email to