Fixed parsing of arguments for cp
authorPavel Roskin <proski@gnu.org>
Thu, 8 Jun 2000 18:06:37 +0000 (18:06 -0000)
committerPavel Roskin <proski@gnu.org>
Thu, 8 Jun 2000 18:06:37 +0000 (18:06 -0000)
cp_mv.c

diff --git a/cp_mv.c b/cp_mv.c
index 4445e7747df525b26e0d256661e2734b77e19685..c8d6562f13454742a1cfa0380ed3db21329bacd2 100644 (file)
--- a/cp_mv.c
+++ b/cp_mv.c
@@ -203,36 +203,35 @@ extern int cp_mv_main(int argc, char **argv)
        if (dz_i == is_cp) {
                recursiveFlag = preserveFlag = forceFlag = FALSE;
                followLinks = TRUE;
-               while (--argc >= 0 && *argv && **argv) {
-                       while (**argv == '-') {
-                               while (*++(*argv)) {
-                                       switch (**argv) {
-                                       case 'a':
-                                               followLinks = FALSE;
-                                               preserveFlag = TRUE;
-                                               recursiveFlag = TRUE;
-                                               break;
-                                       case 'd':
-                                               followLinks = FALSE;
-                                               break;
-                                       case 'p':
-                                               preserveFlag = TRUE;
-                                               break;
-                                       case 'R':
-                                               recursiveFlag = TRUE;
-                                               break;
-                                       case 'f':
-                                               forceFlag = TRUE;
-                                               break;
-                                       default:
-                                               usage(cp_mv_usage[is_cp]);
-                                       }
+               while (*argv && **argv == '-') {
+                       while (*++(*argv)) {
+                               switch (**argv) {
+                               case 'a':
+                                       followLinks = FALSE;
+                                       preserveFlag = TRUE;
+                                       recursiveFlag = TRUE;
+                                       break;
+                               case 'd':
+                                       followLinks = FALSE;
+                                       break;
+                               case 'p':
+                                       preserveFlag = TRUE;
+                                       break;
+                               case 'R':
+                                       recursiveFlag = TRUE;
+                                       break;
+                               case 'f':
+                                       forceFlag = TRUE;
+                                       break;
+                               default:
+                                       usage(cp_mv_usage[is_cp]);
                                }
                        }
+                       argc--;
                        argv++;
                }
-               if (argc < 1) {
-                       fatalError("cp: missing file argument\n");
+               if (argc < 2) {
+                       usage(cp_mv_usage[dz_i]);
                }
        } else {                                        /* (dz_i == is_mv) */
                recursiveFlag = preserveFlag = TRUE;