Lines Matching defs:pattern
33 int glob_pattern( char *pattern, const char *str )
39 /* DEBUG4("glob_pattern: pattern '%s' to '%s'", pattern, str ); */
40 if( (glob = safestrpbrk( pattern, "*?[" )) ){
42 len = glob - pattern;
45 if( (len == 0 || !safestrncasecmp( pattern, str, len )) ){
46 /* matched: pattern xxxx* to xxxx
49 pattern += len+1;
51 /* DEBUG4("glob_pattern: rest of pattern '%s', str '%s'", pattern, str ); */
55 result = glob_pattern( pattern, str+1 );
60 /* now we check for the characters in the pattern
63 glob = safestrchr( pattern, ']' );
67 len = glob - pattern;
69 /* DEBUG4("globmatch: now case '%s', len %d", pattern, len ); */
70 if( len > 0 && (invert = (*pattern == '^')) ){
71 --len; ++pattern;
75 c, *pattern, *str ); */
76 if( c && *pattern == '-' && len > 1 ){
78 pattern++; --len;
79 while( result && c <= *pattern ){
81 c, *pattern, *str ); */
84 pattern++; --len;
87 c = *pattern++; --len;
92 /* DEBUG4("globmatch: after pattern result %d", result); */
94 pattern += len+1;
96 /* at this point pattern is past */
97 result = glob_pattern( pattern, str );
99 } else if( pattern[0] ){
100 while( *str && (result = glob_pattern( pattern, str )) ){
108 result = safestrcasecmp( pattern, str );
113 int Globmatch( char *pattern, const char *str )
118 /* DEBUG4("Globmatch: pattern '%s' to '%s'", pattern, str ); */
119 if( pattern == 0 ) pattern = "";
121 result = glob_pattern( pattern, str );
122 DEBUG4("Globmatch: '%s' to '%s' result %d", pattern, str, result );