tar: remove bogus check for "-" (we handle it corrently later)
authorDenis Vlasenko <vda.linux@googlemail.com>
Tue, 29 Apr 2008 02:43:23 +0000 (02:43 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Tue, 29 Apr 2008 02:43:23 +0000 (02:43 -0000)
tar: simplify argv handling

function                                             old     new   delta
tar_main                                             772     722     -50

archival/tar.c

index 0aa216c397c9663df713f71b8be21afed2458fb2..be59f044108f1796b39c70994c4fae6b3c8f2c78 100644 (file)
@@ -802,7 +802,7 @@ static const char tar_longopts[] ALIGN1 =
 #endif
 
 int tar_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int tar_main(int argc, char **argv)
+int tar_main(int argc ATTRIBUTE_UNUSED, char **argv)
 {
        char (*get_header_ptr)(archive_handle_t *) = get_header_tar;
        archive_handle_t *tar_handle;
@@ -852,6 +852,7 @@ int tar_main(int argc, char **argv)
                , &verboseFlag // combined count for -t and -v
                , &verboseFlag // combined count for -t and -v
                );
+       argv += optind;
 
        if (verboseFlag) tar_handle->action_header = header_verbose_list;
        if (verboseFlag == 1) tar_handle->action_header = header_list;
@@ -897,21 +898,15 @@ int tar_main(int argc, char **argv)
        tar_handle->accept = append_file_list_to_list(tar_handle->accept);
 #endif
 
-       /* Check if we are reading from stdin */
-       if (argv[optind] && *argv[optind] == '-') {
-               /* Default is to read from stdin, so just skip to next arg */
-               optind++;
-       }
-
        /* Setup an array of filenames to work with */
        /* TODO: This is the same as in ar, separate function ? */
-       while (optind < argc) {
+       while (*argv) {
                /* kill trailing '/' unless the string is just "/" */
-               char *cp = last_char_is(argv[optind], '/');
-               if (cp > argv[optind])
+               char *cp = last_char_is(*argv, '/');
+               if (cp > *argv)
                        *cp = '\0';
-               llist_add_to_end(&tar_handle->accept, argv[optind]);
-               optind++;
+               llist_add_to_end(&tar_handle->accept, *argv);
+               argv++;
        }
 
        if (tar_handle->accept || tar_handle->reject)