A new option '-' has been added which forces all following
authorBill Joy <root@ucbvax.Berkeley.EDU>
Fri, 19 Dec 1980 06:24:41 +0000 (22:24 -0800)
committerBill Joy <root@ucbvax.Berkeley.EDU>
Fri, 19 Dec 1980 06:24:41 +0000 (22:24 -0800)
arguments to be interpreted as file names.  This allows file names
starting with - to be specified.

SCCS-vsn: bin/mv/mv.c 4.2
SCCS-vsn: bin/rm/rm.c 4.2

usr/src/bin/mv/mv.c
usr/src/bin/rm/rm.c

index 04fea76..f7abf15 100644 (file)
@@ -1,4 +1,4 @@
-static char *sccsid = "@(#)mv.c        4.1 (Berkeley) %G%";
+static char *sccsid = "@(#)mv.c        4.2 (Berkeley) %G%";
 /*
  * mv file1 file2
  */
 /*
  * mv file1 file2
  */
@@ -31,15 +31,23 @@ main(argc, argv)
 register char *argv[];
 {
        register i, r;
 register char *argv[];
 {
        register i, r;
+       register char *arg;
 
        /* get the flag(s) */
 
        if (argc < 2)
                goto usage;
 
        /* get the flag(s) */
 
        if (argc < 2)
                goto usage;
-       if (*argv[1] == '-') {
+       while (argc>1 && *argv[1] == '-') {
                argc--;
                argc--;
-               while (*++argv[1] != '\0')
-                       switch (*argv[1]) {
+               arg = *++argv;
+
+               /*
+                *  all files following a null option are considered file names
+                */
+               if (*(arg+1) == '\0') break;
+
+               while (*++arg != '\0')
+                       switch (*arg) {
 
                        /* interactive mode */
                        case 'i':
 
                        /* interactive mode */
                        case 'i':
@@ -55,7 +63,6 @@ register char *argv[];
                        default:
                                goto usage;
                        }
                        default:
                                goto usage;
                        }
-               argv++;
        }
        if (argc < 3)
                goto usage;
        }
        if (argc < 3)
                goto usage;
@@ -77,7 +84,7 @@ register char *argv[];
                r |= move(argv[i], argv[argc-1]);
        return(r);
 usage:
                r |= move(argv[i], argv[argc-1]);
        return(r);
 usage:
-       fprintf(stderr, "usage: mv f1 f2; or mv d1 d2; or mv f1 ... fn d1\n");
+       fprintf(stderr, "usage: mv [-if] f1 f2; or mv [-if] d1 d2; or mv [-if] f1 ... fn d1\n");
        return(1);
 }
 
        return(1);
 }
 
index 265fb4c..6206f91 100644 (file)
@@ -1,4 +1,4 @@
-static char *sccsid = "@(#)rm.c        4.1 (Berkeley) %G%";
+static char *sccsid = "@(#)rm.c        4.2 (Berkeley) %G%";
 int    errcode;
 
 #include <stdio.h>
 int    errcode;
 
 #include <stdio.h>
@@ -22,6 +22,12 @@ char *argv[];
        while(argc>1 && argv[1][0]=='-') {
                arg = *++argv;
                argc--;
        while(argc>1 && argv[1][0]=='-') {
                arg = *++argv;
                argc--;
+
+               /*
+                *  all files following a null option are considered file names
+                */
+               if (*(arg+1) == '\0') break;
+
                while(*++arg != '\0')
                        switch(*arg) {
                        case 'f':
                while(*++arg != '\0')
                        switch(*arg) {
                        case 'f':