Make both arguments to cmp(1) mandatory and handle "-" properly
This commit is contained in:
parent
dfd0e6e77d
commit
6449db8691
14
cmp.c
14
cmp.c
|
@ -10,7 +10,7 @@ enum { Same = 0, Diff = 1, Error = 2 };
|
||||||
static void
|
static void
|
||||||
usage(void)
|
usage(void)
|
||||||
{
|
{
|
||||||
enprintf(Error, "usage: %s [-ls] file1 [file2]\n", argv0);
|
enprintf(Error, "usage: %s [-ls] file1 file2\n", argv0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -34,24 +34,26 @@ main(int argc, char *argv[])
|
||||||
usage();
|
usage();
|
||||||
} ARGEND;
|
} ARGEND;
|
||||||
|
|
||||||
if (argc < 1 || argc > 2)
|
if (argc != 2)
|
||||||
usage();
|
usage();
|
||||||
|
|
||||||
|
if (argv[0][0] == '-')
|
||||||
|
argv[0] = "/dev/fd/0";
|
||||||
fp[0] = fopen(argv[0], "r");
|
fp[0] = fopen(argv[0], "r");
|
||||||
if (!fp[0]) {
|
if (!fp[0]) {
|
||||||
if(!sflag)
|
if(!sflag)
|
||||||
weprintf("fopen %s:", argv[0]);
|
weprintf("fopen %s:", argv[0]);
|
||||||
exit(Error);
|
exit(Error);
|
||||||
}
|
}
|
||||||
fp[1] = stdin;
|
|
||||||
|
|
||||||
if (argc == 2) {
|
if (argv[1][0] == '-')
|
||||||
if(!(fp[1] = fopen(argv[1], "r"))) {
|
argv[1] = "/dev/fd/0";
|
||||||
|
fp[1] = fopen(argv[1], "r");
|
||||||
|
if (!fp[1]) {
|
||||||
if(!sflag)
|
if(!sflag)
|
||||||
weprintf("fopen %s:", argv[1]);
|
weprintf("fopen %s:", argv[1]);
|
||||||
exit(Error);
|
exit(Error);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
for(n = 1; ; n++) {
|
for(n = 1; ; n++) {
|
||||||
b[0] = getc(fp[0]);
|
b[0] = getc(fp[0]);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user