summaryrefslogtreecommitdiff
path: root/archival/ar.c
diff options
context:
space:
mode:
Diffstat (limited to 'archival/ar.c')
-rw-r--r--archival/ar.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/archival/ar.c b/archival/ar.c
index eaa15a5..41750ac 100644
--- a/archival/ar.c
+++ b/archival/ar.c
@@ -239,7 +239,7 @@ extern int ar_main(int argc, char **argv)
int srcFd=0, dstFd=0;
headerL_t *header, *entry, *extractList;
- while ((opt = getopt(argc, argv, "ovt:p:x:")) != -1) {
+ while ((opt = getopt(argc, argv, "ovtpx")) != -1) {
switch (opt) {
case 'o':
funct = funct | PRESERVE_DATE;
@@ -249,31 +249,29 @@ extern int ar_main(int argc, char **argv)
break;
case 't':
funct = funct | DISPLAY;
+ break;
case 'x':
- if (opt=='x') {
- funct = funct | EXT_TO_FILE;
- }
+ funct = funct | EXT_TO_FILE;
+ break;
case 'p':
- if (opt=='p') {
- funct = funct | EXT_TO_STDOUT;
- }
- /* following is common to 't','x' and 'p' */
- if ( (srcFd = open(optarg, O_RDONLY)) < 0) {
- errorMsg("Cannot read %s\n", optarg);
- return (FALSE);
- }
+ funct = funct | EXT_TO_STDOUT;
break;
default:
usage(ar_usage);
}
}
- /* check options not just preserve_dates and/or verbose */
- if (funct < 4) {
+ /* check the src filename was specified */
+ if (optind == argc) {
usage(ar_usage);
return(FALSE);
}
+ if ( (srcFd = open(argv[optind], O_RDONLY)) < 0) {
+ errorMsg("Cannot read %s\n", optarg);
+ return (FALSE);
+ }
+ optind++;
entry = (headerL_t *) malloc(sizeof(headerL_t));
header = (headerL_t *) malloc(sizeof(headerL_t));
extractList = (headerL_t *) malloc(sizeof(headerL_t));