Project

General

Profile

Bug #1399

Updated by tuxillo over 9 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

Back