Changeset View
Changeset View
Standalone View
Standalone View
head/bin/rm/rm.c
Show First 20 Lines • Show All 95 Lines • ▼ Show 20 Lines | main(int argc, char *argv[]) | ||||
* "unlink", for which the functionality provided is greatly | * "unlink", for which the functionality provided is greatly | ||||
* simplified. | * simplified. | ||||
*/ | */ | ||||
if ((p = strrchr(argv[0], '/')) == NULL) | if ((p = strrchr(argv[0], '/')) == NULL) | ||||
p = argv[0]; | p = argv[0]; | ||||
else | else | ||||
++p; | ++p; | ||||
if (strcmp(p, "unlink") == 0) { | if (strcmp(p, "unlink") == 0) { | ||||
while (getopt(argc, argv, "") != -1) | if (argc == 2) | ||||
rm_file(&argv[1]); | |||||
else if (argc == 3 && strcmp(argv[1], "--") == 0) | |||||
rm_file(&argv[2]); | |||||
else | |||||
usage(); | usage(); | ||||
argc -= optind; | |||||
argv += optind; | |||||
if (argc != 1) | |||||
usage(); | |||||
rm_file(&argv[0]); | |||||
exit(eval); | exit(eval); | ||||
} | } | ||||
Pflag = rflag = xflag = 0; | Pflag = rflag = xflag = 0; | ||||
while ((ch = getopt(argc, argv, "dfiIPRrvWx")) != -1) | while ((ch = getopt(argc, argv, "dfiIPRrvWx")) != -1) | ||||
switch(ch) { | switch(ch) { | ||||
case 'd': | case 'd': | ||||
dflag = 1; | dflag = 1; | ||||
▲ Show 20 Lines • Show All 510 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
static void | static void | ||||
usage(void) | usage(void) | ||||
{ | { | ||||
(void)fprintf(stderr, "%s\n%s\n", | (void)fprintf(stderr, "%s\n%s\n", | ||||
"usage: rm [-f | -i] [-dIPRrvWx] file ...", | "usage: rm [-f | -i] [-dIPRrvWx] file ...", | ||||
" unlink file"); | " unlink [--] file"); | ||||
exit(EX_USAGE); | exit(EX_USAGE); | ||||
} | } | ||||
static void | static void | ||||
siginfo(int sig __unused) | siginfo(int sig __unused) | ||||
{ | { | ||||
info = 1; | info = 1; | ||||
} | } |