Bug #1399
Updated by tuxillo almost 10 years ago
Salute. Suppose that we supply fnmatch(3) with a pattern of the form "\" (that is '\' followed by '0') without setting the FNM_NOESCAPE flag. Wouldn't the normal thing to do is escape the terminating character and return just '0' ? Instead '\' is returned. As if one has provided a pattern "\\". This behavior is exhibited by NetBSD 5.0_STABLE, FreeBSD 7.2-RELEASE and DragonFlyBSD HEAD. On the other side sunOS 5.10 and Linux with a relatively recent glibc translate the pattern to '0'. You can check with the following snippet: #include <assert.h> #include <fnmatch.h> #include <stdio.h> #include <stdlib.h> int main(void) { int rv; rv = fnmatch(/* pattern */ "\\", "\\", 0); assert(rv == FNM_NOMATCH); printf("passed\n"); return (EXIT_SUCCESS) } I've looked into the specs but couldn't find anything relevant. Any thoughts ? Cheers, Stathis