diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2009-11-28 15:18:53 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2009-11-28 15:18:53 +0100 |
commit | e992bae6f9adf3718c6263a36c004ead1c7272a8 (patch) | |
tree | f0bc9e4fa145f58ab3f9838902e09f9cfba29648 /coreutils/ln.c | |
parent | 86cfb70ca5f2bde11f2d071bc59db75291d8552f (diff) | |
download | busybox-w32-e992bae6f9adf3718c6263a36c004ead1c7272a8.tar.gz busybox-w32-e992bae6f9adf3718c6263a36c004ead1c7272a8.tar.bz2 busybox-w32-e992bae6f9adf3718c6263a36c004ead1c7272a8.zip |
*: remove a few more cases of argc usage. -89 bytes.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'coreutils/ln.c')
-rw-r--r-- | coreutils/ln.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/coreutils/ln.c b/coreutils/ln.c index eb7171959..f977aa177 100644 --- a/coreutils/ln.c +++ b/coreutils/ln.c | |||
@@ -26,7 +26,7 @@ int ln_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | |||
26 | int ln_main(int argc, char **argv) | 26 | int ln_main(int argc, char **argv) |
27 | { | 27 | { |
28 | int status = EXIT_SUCCESS; | 28 | int status = EXIT_SUCCESS; |
29 | int flag; | 29 | int opts; |
30 | char *last; | 30 | char *last; |
31 | char *src_name; | 31 | char *src_name; |
32 | char *src; | 32 | char *src; |
@@ -34,11 +34,8 @@ int ln_main(int argc, char **argv) | |||
34 | struct stat statbuf; | 34 | struct stat statbuf; |
35 | int (*link_func)(const char *, const char *); | 35 | int (*link_func)(const char *, const char *); |
36 | 36 | ||
37 | flag = getopt32(argv, "sfnbS:", &suffix); | 37 | opt_complementary = "-1"; /* min one arg */ |
38 | 38 | opts = getopt32(argv, "sfnbS:", &suffix); | |
39 | if (argc == optind) { | ||
40 | bb_show_usage(); | ||
41 | } | ||
42 | 39 | ||
43 | last = argv[argc - 1]; | 40 | last = argv[argc - 1]; |
44 | argv += optind; | 41 | argv += optind; |
@@ -53,7 +50,7 @@ int ln_main(int argc, char **argv) | |||
53 | src = last; | 50 | src = last; |
54 | 51 | ||
55 | if (is_directory(src, | 52 | if (is_directory(src, |
56 | (flag & LN_NODEREFERENCE) ^ LN_NODEREFERENCE, | 53 | (opts & LN_NODEREFERENCE) ^ LN_NODEREFERENCE, |
57 | NULL) | 54 | NULL) |
58 | ) { | 55 | ) { |
59 | src_name = xstrdup(*argv); | 56 | src_name = xstrdup(*argv); |
@@ -61,7 +58,7 @@ int ln_main(int argc, char **argv) | |||
61 | free(src_name); | 58 | free(src_name); |
62 | src_name = src; | 59 | src_name = src; |
63 | } | 60 | } |
64 | if (!(flag & LN_SYMLINK) && stat(*argv, &statbuf)) { | 61 | if (!(opts & LN_SYMLINK) && stat(*argv, &statbuf)) { |
65 | // coreutils: "ln dangling_symlink new_hardlink" works | 62 | // coreutils: "ln dangling_symlink new_hardlink" works |
66 | if (lstat(*argv, &statbuf) || !S_ISLNK(statbuf.st_mode)) { | 63 | if (lstat(*argv, &statbuf) || !S_ISLNK(statbuf.st_mode)) { |
67 | bb_simple_perror_msg(*argv); | 64 | bb_simple_perror_msg(*argv); |
@@ -71,7 +68,7 @@ int ln_main(int argc, char **argv) | |||
71 | } | 68 | } |
72 | } | 69 | } |
73 | 70 | ||
74 | if (flag & LN_BACKUP) { | 71 | if (opts & LN_BACKUP) { |
75 | char *backup; | 72 | char *backup; |
76 | backup = xasprintf("%s%s", src, suffix); | 73 | backup = xasprintf("%s%s", src, suffix); |
77 | if (rename(src, backup) < 0 && errno != ENOENT) { | 74 | if (rename(src, backup) < 0 && errno != ENOENT) { |
@@ -87,12 +84,12 @@ int ln_main(int argc, char **argv) | |||
87 | * Therefore, always unlink(). | 84 | * Therefore, always unlink(). |
88 | */ | 85 | */ |
89 | unlink(src); | 86 | unlink(src); |
90 | } else if (flag & LN_FORCE) { | 87 | } else if (opts & LN_FORCE) { |
91 | unlink(src); | 88 | unlink(src); |
92 | } | 89 | } |
93 | 90 | ||
94 | link_func = link; | 91 | link_func = link; |
95 | if (flag & LN_SYMLINK) { | 92 | if (opts & LN_SYMLINK) { |
96 | link_func = symlink; | 93 | link_func = symlink; |
97 | } | 94 | } |
98 | 95 | ||