aboutsummaryrefslogtreecommitdiff
path: root/ln.c
diff options
context:
space:
mode:
Diffstat (limited to 'ln.c')
-rw-r--r--ln.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/ln.c b/ln.c
index d4fa47306..634c9905d 100644
--- a/ln.c
+++ b/ln.c
@@ -51,16 +51,14 @@ extern int ln_main(int argc, char **argv)
51{ 51{
52 char *linkName; 52 char *linkName;
53 int linkIntoDirFlag; 53 int linkIntoDirFlag;
54 int stopIt = FALSE;
54 55
55 if (argc < 3) {
56 usage(ln_usage);
57 }
58 argc--; 56 argc--;
59 argv++; 57 argv++;
60 58
61 /* Parse any options */ 59 /* Parse any options */
62 while (--argc >= 0 && *argv && **argv) { 60 while (argc > 0 && stopIt == FALSE) {
63 while (**argv == '-') { 61 if (**argv == '-') {
64 while (*++(*argv)) 62 while (*++(*argv))
65 switch (**argv) { 63 switch (**argv) {
66 case 's': 64 case 's':
@@ -72,15 +70,21 @@ extern int ln_main(int argc, char **argv)
72 case 'n': 70 case 'n':
73 followLinks = FALSE; 71 followLinks = FALSE;
74 break; 72 break;
73 case '-':
74 stopIt = TRUE;
75 break;
75 default: 76 default:
76 usage(ln_usage); 77 usage(ln_usage);
77 } 78 }
79 argc--;
80 argv++;
78 } 81 }
79 argv++; 82 else
83 break;
80 } 84 }
81 85
82 if (argc < 1) { 86 if (argc < 2) {
83 fatalError("ln: missing file argument\n"); 87 usage(ln_usage);
84 } 88 }
85 89
86 linkName = argv[argc - 1]; 90 linkName = argv[argc - 1];