On Oct 13, 2014 2:13 PM, "Christos Zoulas" <chris...@zoulas.com> wrote: > > On Oct 13, 11:29am, jus...@specialbusservice.com (Justin Cormack) wrote: > -- Subject: Re: CVS commit: src/tests/lib/libc/gen > > | Not sure about this. See > | http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html#tag_09_03_05 > | > | "The special characters '.', '*', '[', and '\' (period, asterisk, > | left-bracket, and backslash, respectively) shall lose their special > | meaning within a bracket expression." > > fnmatch patterns are not BRe's (for example '.' is not special > to fnmatch expressions, and '?' is missing from above); but the first 3 > characters have no special meaning, that's common to both. > > | So I think the original version of the test is in fact correct with a > | single \ in the actual string within the bracket expression. This test > | passes in a very few implementations. I might be wrong though... > > If that was the case, there would be no way to quote something inside > a bracket expression, so you could never have a '/' or ']' in a bracket > expression. I think that is a defect. Here's is a case where complying > to an ambiguous standard, makes functionality worse, and I would file > a defect with ToG.
You can have a ] by having it as the first character that is made explicit. And if the / is not special then that is no problem either. Let me read through the spec again. We are not alone in not passing this test eg glibc). I can't remember what FreeBSD does will check again. Justin