diff options
Diffstat (limited to 'coreutils/expand.c')
-rw-r--r-- | coreutils/expand.c | 53 |
1 files changed, 11 insertions, 42 deletions
diff --git a/coreutils/expand.c b/coreutils/expand.c index 64f2a539d..fa3ff18f4 100644 --- a/coreutils/expand.c +++ b/coreutils/expand.c | |||
@@ -26,21 +26,11 @@ | |||
26 | //config: help | 26 | //config: help |
27 | //config: By default, convert all tabs to spaces. | 27 | //config: By default, convert all tabs to spaces. |
28 | //config: | 28 | //config: |
29 | //config:config FEATURE_EXPAND_LONG_OPTIONS | ||
30 | //config: bool "Enable long options" | ||
31 | //config: default y | ||
32 | //config: depends on EXPAND && LONG_OPTS | ||
33 | //config: | ||
34 | //config:config UNEXPAND | 29 | //config:config UNEXPAND |
35 | //config: bool "unexpand (6 kb)" | 30 | //config: bool "unexpand (6 kb)" |
36 | //config: default y | 31 | //config: default y |
37 | //config: help | 32 | //config: help |
38 | //config: By default, convert only leading sequences of blanks to tabs. | 33 | //config: By default, convert only leading sequences of blanks to tabs. |
39 | //config: | ||
40 | //config:config FEATURE_UNEXPAND_LONG_OPTIONS | ||
41 | //config: bool "Enable long options" | ||
42 | //config: default y | ||
43 | //config: depends on UNEXPAND && LONG_OPTS | ||
44 | 34 | ||
45 | //applet:IF_EXPAND(APPLET(expand, BB_DIR_USR_BIN, BB_SUID_DROP)) | 35 | //applet:IF_EXPAND(APPLET(expand, BB_DIR_USR_BIN, BB_SUID_DROP)) |
46 | // APPLET_ODDNAME:name main location suid_type help | 36 | // APPLET_ODDNAME:name main location suid_type help |
@@ -53,29 +43,16 @@ | |||
53 | //usage: "[-i] [-t N] [FILE]..." | 43 | //usage: "[-i] [-t N] [FILE]..." |
54 | //usage:#define expand_full_usage "\n\n" | 44 | //usage:#define expand_full_usage "\n\n" |
55 | //usage: "Convert tabs to spaces, writing to stdout\n" | 45 | //usage: "Convert tabs to spaces, writing to stdout\n" |
56 | //usage: IF_FEATURE_EXPAND_LONG_OPTIONS( | ||
57 | //usage: "\n -i,--initial Don't convert tabs after non blanks" | ||
58 | //usage: "\n -t,--tabs N Tabstops every N chars" | ||
59 | //usage: ) | ||
60 | //usage: IF_NOT_FEATURE_EXPAND_LONG_OPTIONS( | ||
61 | //usage: "\n -i Don't convert tabs after non blanks" | 46 | //usage: "\n -i Don't convert tabs after non blanks" |
62 | //usage: "\n -t Tabstops every N chars" | 47 | //usage: "\n -t Tabstops every N chars" |
63 | //usage: ) | ||
64 | 48 | ||
65 | //usage:#define unexpand_trivial_usage | 49 | //usage:#define unexpand_trivial_usage |
66 | //usage: "[-fa][-t N] [FILE]..." | 50 | //usage: "[-fa][-t N] [FILE]..." |
67 | //usage:#define unexpand_full_usage "\n\n" | 51 | //usage:#define unexpand_full_usage "\n\n" |
68 | //usage: "Convert spaces to tabs, writing to stdout\n" | 52 | //usage: "Convert spaces to tabs, writing to stdout\n" |
69 | //usage: IF_FEATURE_UNEXPAND_LONG_OPTIONS( | ||
70 | //usage: "\n -a,--all Convert all blanks" | ||
71 | //usage: "\n -f,--first-only Convert only leading blanks" | ||
72 | //usage: "\n -t,--tabs N Tabstops every N chars" | ||
73 | //usage: ) | ||
74 | //usage: IF_NOT_FEATURE_UNEXPAND_LONG_OPTIONS( | ||
75 | //usage: "\n -a Convert all blanks" | 53 | //usage: "\n -a Convert all blanks" |
76 | //usage: "\n -f Convert only leading blanks" | 54 | //usage: "\n -f Convert only leading blanks" |
77 | //usage: "\n -t N Tabstops every N chars" | 55 | //usage: "\n -t N Tabstops every N chars" |
78 | //usage: ) | ||
79 | 56 | ||
80 | #include "libbb.h" | 57 | #include "libbb.h" |
81 | #include "unicode.h" | 58 | #include "unicode.h" |
@@ -188,31 +165,23 @@ int expand_main(int argc UNUSED_PARAM, char **argv) | |||
188 | unsigned opt; | 165 | unsigned opt; |
189 | int exit_status = EXIT_SUCCESS; | 166 | int exit_status = EXIT_SUCCESS; |
190 | 167 | ||
191 | #if ENABLE_FEATURE_EXPAND_LONG_OPTIONS | ||
192 | static const char expand_longopts[] ALIGN1 = | ||
193 | /* name, has_arg, val */ | ||
194 | "initial\0" No_argument "i" | ||
195 | "tabs\0" Required_argument "t" | ||
196 | ; | ||
197 | #endif | ||
198 | #if ENABLE_FEATURE_UNEXPAND_LONG_OPTIONS | ||
199 | static const char unexpand_longopts[] ALIGN1 = | ||
200 | /* name, has_arg, val */ | ||
201 | "first-only\0" No_argument "i" | ||
202 | "tabs\0" Required_argument "t" | ||
203 | "all\0" No_argument "a" | ||
204 | ; | ||
205 | #endif | ||
206 | init_unicode(); | 168 | init_unicode(); |
207 | 169 | ||
208 | if (ENABLE_EXPAND && (!ENABLE_UNEXPAND || applet_name[0] == 'e')) { | 170 | if (ENABLE_EXPAND && (!ENABLE_UNEXPAND || applet_name[0] == 'e')) { |
209 | IF_FEATURE_EXPAND_LONG_OPTIONS(applet_long_options = expand_longopts); | 171 | opt = getopt32long(argv, "it:", |
210 | opt = getopt32(argv, "it:", &opt_t); | 172 | "initial\0" No_argument "i" |
173 | "tabs\0" Required_argument "t" | ||
174 | , &opt_t | ||
175 | ); | ||
211 | } else { | 176 | } else { |
212 | IF_FEATURE_UNEXPAND_LONG_OPTIONS(applet_long_options = unexpand_longopts); | ||
213 | /* -t NUM sets also -a */ | 177 | /* -t NUM sets also -a */ |
214 | opt_complementary = "ta"; | 178 | opt_complementary = "ta"; |
215 | opt = getopt32(argv, "ft:a", &opt_t); | 179 | opt = getopt32long(argv, "ft:a", |
180 | "first-only\0" No_argument "i" | ||
181 | "tabs\0" Required_argument "t" | ||
182 | "all\0" No_argument "a" | ||
183 | , &opt_t | ||
184 | ); | ||
216 | /* -f --first-only is the default */ | 185 | /* -f --first-only is the default */ |
217 | if (!(opt & OPT_ALL)) opt |= OPT_INITIAL; | 186 | if (!(opt & OPT_ALL)) opt |= OPT_INITIAL; |
218 | } | 187 | } |