svn commit: trunk/busybox: findutils include

vda at busybox.net vda at busybox.net
Sun Dec 9 10:07:39 UTC 2007


Author: vda
Date: 2007-12-09 02:07:39 -0800 (Sun, 09 Dec 2007)
New Revision: 20632

Log:
find: add -iname support (Alexander Griesser <alexander.griesser at lkh-vil.or.at>)



Modified:
   trunk/busybox/findutils/find.c
   trunk/busybox/include/usage.h


Changeset:
Modified: trunk/busybox/findutils/find.c
===================================================================
--- trunk/busybox/findutils/find.c	2007-12-09 10:03:28 UTC (rev 20631)
+++ trunk/busybox/findutils/find.c	2007-12-09 10:07:39 UTC (rev 20632)
@@ -76,7 +76,7 @@
 #define ACTS(name, arg...) typedef struct { action a; arg; } action_##name;
 #define ACTF(name)         static int func_##name(const char *fileName, struct stat *statbuf, action_##name* ap)
                          ACTS(print)
-                         ACTS(name,  const char *pattern;)
+                         ACTS(name,  const char *pattern; bool iname;)
 USE_FEATURE_FIND_PATH(   ACTS(path,  const char *pattern;))
 USE_FEATURE_FIND_REGEX(  ACTS(regex, regex_t compiled_pattern;))
 USE_FEATURE_FIND_PRINT0( ACTS(print0))
@@ -188,8 +188,9 @@
 		if (*tmp == '/')
 			tmp++;
 	}
-	return fnmatch(ap->pattern, tmp, FNM_PERIOD) == 0;
+	return fnmatch(ap->pattern, tmp, FNM_PERIOD | (ap->iname ? FNM_CASEFOLD : 0)) == 0;
 }
+
 #if ENABLE_FEATURE_FIND_PATH
 ACTF(path)
 {
@@ -458,6 +459,7 @@
 	USE_FEATURE_FIND_PAREN(  PARM_char_brace,)
 	/* All options starting from here require argument */
 	                         PARM_name      ,
+	                         PARM_iname     ,
 	USE_FEATURE_FIND_PATH(   PARM_path      ,)
 	USE_FEATURE_FIND_REGEX(  PARM_regex     ,)
 	USE_FEATURE_FIND_TYPE(   PARM_type      ,)
@@ -490,6 +492,7 @@
 	USE_FEATURE_FIND_PAREN(  "(\0"       )
 	/* All options starting from here require argument */
 	                         "-name\0"
+	                         "-iname\0"
 	USE_FEATURE_FIND_PATH(   "-path\0"   )
 	USE_FEATURE_FIND_REGEX(  "-regex\0"  )
 	USE_FEATURE_FIND_TYPE(   "-type\0"   )
@@ -654,10 +657,11 @@
 			argv = endarg;
 		}
 #endif
-		else if (parm == PARM_name) {
+		else if (parm == PARM_name || parm == PARM_iname) {
 			action_name *ap;
 			ap = ALLOC_ACTION(name);
 			ap->pattern = arg1;
+			ap->iname = (parm == PARM_iname);
 		}
 #if ENABLE_FEATURE_FIND_PATH
 		else if (parm == PARM_path) {

Modified: trunk/busybox/include/usage.h
===================================================================
--- trunk/busybox/include/usage.h	2007-12-09 10:03:28 UTC (rev 20631)
+++ trunk/busybox/include/usage.h	2007-12-09 10:07:39 UTC (rev 20632)
@@ -1008,6 +1008,7 @@
      "\n	-maxdepth N	Descend at most N levels. -maxdepth 0 applies" \
      "\n			tests/actions to command line arguments only") \
      "\n	-name PATTERN	File name (w/o directory name) matches PATTERN" \
+     "\n	-iname PATTERN	Case insensitive -name" \
 	USE_FEATURE_FIND_PATH( \
      "\n	-path PATTERN	Path matches PATTERN") \
 	USE_FEATURE_FIND_REGEX( \




More information about the busybox-cvs mailing list