tar: remove bogus check for "-" (we handle it corrently later)

tar: simplify argv handling

function                                             old     new   delta
tar_main                                             772     722     -50
This commit is contained in:
Denis Vlasenko 2008-04-29 02:43:23 +00:00
parent 10f6fb1d46
commit c450379ff0

View File

@ -802,7 +802,7 @@ static const char tar_longopts[] ALIGN1 =
#endif #endif
int tar_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; 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; char (*get_header_ptr)(archive_handle_t *) = get_header_tar;
archive_handle_t *tar_handle; 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
, &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) tar_handle->action_header = header_verbose_list;
if (verboseFlag == 1) tar_handle->action_header = header_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); tar_handle->accept = append_file_list_to_list(tar_handle->accept);
#endif #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 */ /* Setup an array of filenames to work with */
/* TODO: This is the same as in ar, separate function ? */ /* TODO: This is the same as in ar, separate function ? */
while (optind < argc) { while (*argv) {
/* kill trailing '/' unless the string is just "/" */ /* kill trailing '/' unless the string is just "/" */
char *cp = last_char_is(argv[optind], '/'); char *cp = last_char_is(*argv, '/');
if (cp > argv[optind]) if (cp > *argv)
*cp = '\0'; *cp = '\0';
llist_add_to_end(&tar_handle->accept, argv[optind]); llist_add_to_end(&tar_handle->accept, *argv);
optind++; argv++;
} }
if (tar_handle->accept || tar_handle->reject) if (tar_handle->accept || tar_handle->reject)