[git commit] find: implement -ipath

Denys Vlasenko vda.linux at googlemail.com
Sun May 22 01:50:21 UTC 2011


commit: http://git.busybox.net/busybox/commit/?id=7948ecb505135c811a44bc8f8e391622d893d383
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Bogdan Harjoc <harjoc at gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 findutils/find.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/findutils/find.c b/findutils/find.c
index 9ae84fa..7918240 100644
--- a/findutils/find.c
+++ b/findutils/find.c
@@ -264,6 +264,7 @@
 //usage:     "\n	-iname PATTERN	Case insensitive -name"
 //usage:	IF_FEATURE_FIND_PATH(
 //usage:     "\n	-path PATTERN	Match path to PATTERN"
+//usage:     "\n	-ipath PATTERN	Case insensitive -path"
 //usage:	)
 //usage:	IF_FEATURE_FIND_REGEX(
 //usage:     "\n	-regex PATTERN	Match path to regex PATTERN"
@@ -352,7 +353,7 @@ typedef struct {
 
                         ACTS(print)
                         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_PRINT0( ACTS(print0))
 IF_FEATURE_FIND_TYPE(   ACTS(type,  int type_mask;))
@@ -494,7 +495,7 @@ ACTF(name)
 #if ENABLE_FEATURE_FIND_PATH
 ACTF(path)
 {
-	return fnmatch(ap->pattern, fileName, 0) == 0;
+	return fnmatch(ap->pattern, fileName, (ap->ipath ? FNM_CASEFOLD : 0)) == 0;
 }
 #endif
 #if ENABLE_FEATURE_FIND_REGEX
@@ -794,6 +795,7 @@ static action*** parse_params(char **argv)
 	                        PARM_name      ,
 	                        PARM_iname     ,
 	IF_FEATURE_FIND_PATH(   PARM_path      ,)
+	IF_FEATURE_FIND_PATH(   PARM_ipath     ,)
 	IF_FEATURE_FIND_REGEX(  PARM_regex     ,)
 	IF_FEATURE_FIND_TYPE(   PARM_type      ,)
 	IF_FEATURE_FIND_PERM(   PARM_perm      ,)
@@ -831,6 +833,7 @@ static action*** parse_params(char **argv)
 	                         "-name\0"
 	                         "-iname\0"
 	IF_FEATURE_FIND_PATH(   "-path\0"   )
+	IF_FEATURE_FIND_PATH(   "-ipath\0"  )
 	IF_FEATURE_FIND_REGEX(  "-regex\0"  )
 	IF_FEATURE_FIND_TYPE(   "-type\0"   )
 	IF_FEATURE_FIND_PERM(   "-perm\0"   )
@@ -1018,10 +1021,11 @@ static action*** parse_params(char **argv)
 			ap->iname = (parm == PARM_iname);
 		}
 #if ENABLE_FEATURE_FIND_PATH
-		else if (parm == PARM_path) {
+		else if (parm == PARM_path || parm == PARM_ipath) {
 			action_path *ap;
 			ap = ALLOC_ACTION(path);
 			ap->pattern = arg1;
+			ap->ipath = (parm == PARM_ipath);
 		}
 #endif
 #if ENABLE_FEATURE_FIND_REGEX
-- 
1.7.3.4



More information about the busybox-cvs mailing list