find: implement -ipath
Signed-off-by: Bogdan Harjoc <harjoc@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
		
				
					committed by
					
						 Denys Vlasenko
						Denys Vlasenko
					
				
			
			
				
	
			
			
			
						parent
						
							d616ab6bbb
						
					
				
				
					commit
					7948ecb505
				
			| @@ -264,6 +264,7 @@ | |||||||
| //usage:     "\n	-iname PATTERN	Case insensitive -name" | //usage:     "\n	-iname PATTERN	Case insensitive -name" | ||||||
| //usage:	IF_FEATURE_FIND_PATH( | //usage:	IF_FEATURE_FIND_PATH( | ||||||
| //usage:     "\n	-path PATTERN	Match path to PATTERN" | //usage:     "\n	-path PATTERN	Match path to PATTERN" | ||||||
|  | //usage:     "\n	-ipath PATTERN	Case insensitive -path" | ||||||
| //usage:	) | //usage:	) | ||||||
| //usage:	IF_FEATURE_FIND_REGEX( | //usage:	IF_FEATURE_FIND_REGEX( | ||||||
| //usage:     "\n	-regex PATTERN	Match path to regex PATTERN" | //usage:     "\n	-regex PATTERN	Match path to regex PATTERN" | ||||||
| @@ -352,7 +353,7 @@ typedef struct { | |||||||
|  |  | ||||||
|                         ACTS(print) |                         ACTS(print) | ||||||
|                         ACTS(name,  const char *pattern; bool iname;) |                         ACTS(name,  const char *pattern; bool iname;) | ||||||
| IF_FEATURE_FIND_PATH(   ACTS(path,  const char *pattern;)) | IF_FEATURE_FIND_PATH(   ACTS(path,  const char *pattern; bool ipath;)) | ||||||
| IF_FEATURE_FIND_REGEX(  ACTS(regex, regex_t compiled_pattern;)) | IF_FEATURE_FIND_REGEX(  ACTS(regex, regex_t compiled_pattern;)) | ||||||
| IF_FEATURE_FIND_PRINT0( ACTS(print0)) | IF_FEATURE_FIND_PRINT0( ACTS(print0)) | ||||||
| IF_FEATURE_FIND_TYPE(   ACTS(type,  int type_mask;)) | IF_FEATURE_FIND_TYPE(   ACTS(type,  int type_mask;)) | ||||||
| @@ -494,7 +495,7 @@ ACTF(name) | |||||||
| #if ENABLE_FEATURE_FIND_PATH | #if ENABLE_FEATURE_FIND_PATH | ||||||
| ACTF(path) | ACTF(path) | ||||||
| { | { | ||||||
| 	return fnmatch(ap->pattern, fileName, 0) == 0; | 	return fnmatch(ap->pattern, fileName, (ap->ipath ? FNM_CASEFOLD : 0)) == 0; | ||||||
| } | } | ||||||
| #endif | #endif | ||||||
| #if ENABLE_FEATURE_FIND_REGEX | #if ENABLE_FEATURE_FIND_REGEX | ||||||
| @@ -794,6 +795,7 @@ static action*** parse_params(char **argv) | |||||||
| 	                        PARM_name      , | 	                        PARM_name      , | ||||||
| 	                        PARM_iname     , | 	                        PARM_iname     , | ||||||
| 	IF_FEATURE_FIND_PATH(   PARM_path      ,) | 	IF_FEATURE_FIND_PATH(   PARM_path      ,) | ||||||
|  | 	IF_FEATURE_FIND_PATH(   PARM_ipath     ,) | ||||||
| 	IF_FEATURE_FIND_REGEX(  PARM_regex     ,) | 	IF_FEATURE_FIND_REGEX(  PARM_regex     ,) | ||||||
| 	IF_FEATURE_FIND_TYPE(   PARM_type      ,) | 	IF_FEATURE_FIND_TYPE(   PARM_type      ,) | ||||||
| 	IF_FEATURE_FIND_PERM(   PARM_perm      ,) | 	IF_FEATURE_FIND_PERM(   PARM_perm      ,) | ||||||
| @@ -831,6 +833,7 @@ static action*** parse_params(char **argv) | |||||||
| 	                         "-name\0" | 	                         "-name\0" | ||||||
| 	                         "-iname\0" | 	                         "-iname\0" | ||||||
| 	IF_FEATURE_FIND_PATH(   "-path\0"   ) | 	IF_FEATURE_FIND_PATH(   "-path\0"   ) | ||||||
|  | 	IF_FEATURE_FIND_PATH(   "-ipath\0"  ) | ||||||
| 	IF_FEATURE_FIND_REGEX(  "-regex\0"  ) | 	IF_FEATURE_FIND_REGEX(  "-regex\0"  ) | ||||||
| 	IF_FEATURE_FIND_TYPE(   "-type\0"   ) | 	IF_FEATURE_FIND_TYPE(   "-type\0"   ) | ||||||
| 	IF_FEATURE_FIND_PERM(   "-perm\0"   ) | 	IF_FEATURE_FIND_PERM(   "-perm\0"   ) | ||||||
| @@ -1018,10 +1021,11 @@ static action*** parse_params(char **argv) | |||||||
| 			ap->iname = (parm == PARM_iname); | 			ap->iname = (parm == PARM_iname); | ||||||
| 		} | 		} | ||||||
| #if ENABLE_FEATURE_FIND_PATH | #if ENABLE_FEATURE_FIND_PATH | ||||||
| 		else if (parm == PARM_path) { | 		else if (parm == PARM_path || parm == PARM_ipath) { | ||||||
| 			action_path *ap; | 			action_path *ap; | ||||||
| 			ap = ALLOC_ACTION(path); | 			ap = ALLOC_ACTION(path); | ||||||
| 			ap->pattern = arg1; | 			ap->pattern = arg1; | ||||||
|  | 			ap->ipath = (parm == PARM_ipath); | ||||||
| 		} | 		} | ||||||
| #endif | #endif | ||||||
| #if ENABLE_FEATURE_FIND_REGEX | #if ENABLE_FEATURE_FIND_REGEX | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user