aboutsummaryrefslogtreecommitdiff
path: root/ln.c
diff options
context:
space:
mode:
Diffstat (limited to 'ln.c')
-rw-r--r--ln.c37
1 files changed, 21 insertions, 16 deletions
diff --git a/ln.c b/ln.c
index 29ff93863..d4fa47306 100644
--- a/ln.c
+++ b/ln.c
@@ -59,25 +59,30 @@ extern int ln_main(int argc, char **argv)
59 argv++; 59 argv++;
60 60
61 /* Parse any options */ 61 /* Parse any options */
62 while (**argv == '-') { 62 while (--argc >= 0 && *argv && **argv) {
63 while (*++(*argv)) 63 while (**argv == '-') {
64 switch (**argv) { 64 while (*++(*argv))
65 case 's': 65 switch (**argv) {
66 symlinkFlag = TRUE; 66 case 's':
67 break; 67 symlinkFlag = TRUE;
68 case 'f': 68 break;
69 removeoldFlag = TRUE; 69 case 'f':
70 break; 70 removeoldFlag = TRUE;
71 case 'n': 71 break;
72 followLinks = FALSE; 72 case 'n':
73 break; 73 followLinks = FALSE;
74 default: 74 break;
75 usage(ln_usage); 75 default:
76 } 76 usage(ln_usage);
77 argc--; 77 }
78 }
78 argv++; 79 argv++;
79 } 80 }
80 81
82 if (argc < 1) {
83 fatalError("ln: missing file argument\n");
84 }
85
81 linkName = argv[argc - 1]; 86 linkName = argv[argc - 1];
82 87
83 if (strlen(linkName) > BUFSIZ) { 88 if (strlen(linkName) > BUFSIZ) {