don't handle "exec foo -a {} \;" as old syntax because of the "-a"
authorKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Sun, 1 Jul 1990 15:52:05 +0000 (07:52 -0800)
committerKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Sun, 1 Jul 1990 15:52:05 +0000 (07:52 -0800)
SCCS-vsn: usr.bin/find/find.c 4.31

usr/src/usr.bin/find/find.c

index bab9e65..69d7b2c 100644 (file)
@@ -15,7 +15,7 @@ char copyright[] =
 #endif /* not lint */
 
 #ifndef lint
 #endif /* not lint */
 
 #ifndef lint
-static char sccsid[] = "@(#)find.c     4.30 (Berkeley) %G%";
+static char sccsid[] = "@(#)find.c     4.31 (Berkeley) %G%";
 #endif /* not lint */
 
 #include <sys/types.h>
 #endif /* not lint */
 
 #include <sys/types.h>
@@ -51,16 +51,22 @@ main(argc, argv)
        ftsoptions = FTS_NOSTAT|FTS_PHYSICAL;
 
        /*
        ftsoptions = FTS_NOSTAT|FTS_PHYSICAL;
 
        /*
-        * if arguments start with an option, it's new syntax; otherwise,
-        * if has a "-option" anywhere it must be old syntax.
+        * if arguments start with an option, treat it like new syntax;
+        * otherwise, if has a "-option" anywhere (which isn't an argument
+        * to another command) treat it as old syntax.
         */
        if (argv[1][0] != '-')
         */
        if (argv[1][0] != '-')
-               for (p = argv + 1; *p; ++p)
+               for (p = argv + 1; *p; ++p) {
+                       if (!strcmp(*p, "exec") || !strcmp(*p, "ok")) {
+                               while (p[1] && strcmp(*++p, ";"));
+                               continue;
+                       }
                        if (**p == '-') {
                                deprecated = 1;
                                oldsyntax(&argv);
                                break;
                        }
                        if (**p == '-') {
                                deprecated = 1;
                                oldsyntax(&argv);
                                break;
                        }
+               }
        if (!deprecated)
                newsyntax(argc, &argv);
     
        if (!deprecated)
                newsyntax(argc, &argv);