diff options
| author | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2006-05-26 20:19:22 +0000 |
|---|---|---|
| committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2006-05-26 20:19:22 +0000 |
| commit | 01d23ade577b94a1ab1fde54f69a3ce5f7399f3c (patch) | |
| tree | 4071ca983cbd5a3912501bd1467dc063b3592aa9 | |
| parent | d29337580e6ad49ca3353a22b9099e9e47a4bd17 (diff) | |
| download | busybox-w32-01d23ade577b94a1ab1fde54f69a3ce5f7399f3c.tar.gz busybox-w32-01d23ade577b94a1ab1fde54f69a3ce5f7399f3c.tar.bz2 busybox-w32-01d23ade577b94a1ab1fde54f69a3ce5f7399f3c.zip | |
- add central knob to turn off getopt_long everywhere. EXPERIMENTAL!
Adds "Enable getopt long" under "General options", default y.
Send patches to fix getopt_ulflags and run_parts.c if you turn this off..
See http://busybox.net/lists/busybox/2006-May/021828.html for a start to run-parts
| -rw-r--r-- | Config.in | 15 | ||||
| -rw-r--r-- | Rules.mak | 6 | ||||
| -rw-r--r-- | archival/Config.in | 2 | ||||
| -rw-r--r-- | console-tools/Config.in | 7 | ||||
| -rw-r--r-- | console-tools/setconsole.c | 4 | ||||
| -rw-r--r-- | coreutils/Config.in | 30 | ||||
| -rw-r--r-- | coreutils/env.c | 5 | ||||
| -rw-r--r-- | coreutils/install.c | 4 | ||||
| -rw-r--r-- | coreutils/mkdir.c | 4 | ||||
| -rw-r--r-- | coreutils/mv.c | 4 | ||||
| -rw-r--r-- | debianutils/Config.in | 14 | ||||
| -rw-r--r-- | debianutils/start_stop_daemon.c | 5 | ||||
| -rw-r--r-- | miscutils/Config.in | 2 | ||||
| -rw-r--r-- | networking/Config.in | 14 | ||||
| -rw-r--r-- | networking/ftpgetput.c | 4 | ||||
| -rw-r--r-- | networking/ipcalc.c | 2 | ||||
| -rw-r--r-- | util-linux/Config.in | 4 | ||||
| -rw-r--r-- | util-linux/hwclock.c | 4 |
18 files changed, 118 insertions, 12 deletions
| @@ -80,6 +80,21 @@ config CONFIG_LOCALE_SUPPORT | |||
| 80 | Enable this if your system has locale support and you would like | 80 | Enable this if your system has locale support and you would like |
| 81 | busybox to support locale settings. | 81 | busybox to support locale settings. |
| 82 | 82 | ||
| 83 | config CONFIG_GETOPT_LONG | ||
| 84 | bool "Enable getopt long (system needs struct option for this to work)" | ||
| 85 | default n | ||
| 86 | depends on !CONFIG_NO_GETOPT_LONG | ||
| 87 | help | ||
| 88 | EXPERIMENTAL! | ||
| 89 | Enable this if your system support long options for getopt and | ||
| 90 | you want to use them in busybox. | ||
| 91 | |||
| 92 | # remove this comment to disable getopt_long per default. | ||
| 93 | #config CONFIG_NO_GETOPT_LONG | ||
| 94 | # bool | ||
| 95 | # default y | ||
| 96 | # depends on !CONFIG_GETOPT_LONG | ||
| 97 | |||
| 83 | config CONFIG_FEATURE_DEVFS | 98 | config CONFIG_FEATURE_DEVFS |
| 84 | bool "Use devfs names for devices" | 99 | bool "Use devfs names for devices" |
| 85 | default n | 100 | default n |
| @@ -308,9 +308,9 @@ ifeq ($(strip $(PREFIX)),) | |||
| 308 | PREFIX:=`pwd`/_install | 308 | PREFIX:=`pwd`/_install |
| 309 | endif | 309 | endif |
| 310 | 310 | ||
| 311 | #ifneq ($(strip $(CONFIG_GETOPT_LONG)),y) | 311 | ifneq ($(strip $(CONFIG_GETOPT_LONG)),y) |
| 312 | # CFLAGS += -D__need_getopt | 312 | CFLAGS += -D__need_getopt |
| 313 | #endif | 313 | endif |
| 314 | 314 | ||
| 315 | # Additional complications due to support for pristine source dir. | 315 | # Additional complications due to support for pristine source dir. |
| 316 | # Include files in the build directory should take precedence over | 316 | # Include files in the build directory should take precedence over |
diff --git a/archival/Config.in b/archival/Config.in index be0dc7779..22e7ec458 100644 --- a/archival/Config.in +++ b/archival/Config.in | |||
| @@ -209,7 +209,7 @@ config CONFIG_FEATURE_TAR_GNU_EXTENSIONS | |||
| 209 | config CONFIG_FEATURE_TAR_LONG_OPTIONS | 209 | config CONFIG_FEATURE_TAR_LONG_OPTIONS |
| 210 | bool "Enable long options" | 210 | bool "Enable long options" |
| 211 | default n | 211 | default n |
| 212 | depends on CONFIG_TAR | 212 | depends on CONFIG_TAR && CONFIG_GETOPT_LONG |
| 213 | help | 213 | help |
| 214 | Enable use of long options, increases size by about 400 Bytes | 214 | Enable use of long options, increases size by about 400 Bytes |
| 215 | 215 | ||
diff --git a/console-tools/Config.in b/console-tools/Config.in index 34e83e194..ec2273c35 100644 --- a/console-tools/Config.in +++ b/console-tools/Config.in | |||
| @@ -65,6 +65,13 @@ config CONFIG_SETCONSOLE | |||
| 65 | This program redirects the system console to another device, | 65 | This program redirects the system console to another device, |
| 66 | like the current tty while logged in via telnet. | 66 | like the current tty while logged in via telnet. |
| 67 | 67 | ||
| 68 | config CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS | ||
| 69 | bool "Enable long options" | ||
| 70 | default n | ||
| 71 | depends on CONFIG_SET_CONSOLE && CONFIG_GETOPT_LONG | ||
| 72 | help | ||
| 73 | Support long options for the setconsole applet. | ||
| 74 | |||
| 68 | config CONFIG_SETKEYCODES | 75 | config CONFIG_SETKEYCODES |
| 69 | bool "setkeycodes" | 76 | bool "setkeycodes" |
| 70 | default n | 77 | default n |
diff --git a/console-tools/setconsole.c b/console-tools/setconsole.c index bf06cc530..79a4313f0 100644 --- a/console-tools/setconsole.c +++ b/console-tools/setconsole.c | |||
| @@ -16,10 +16,12 @@ | |||
| 16 | 16 | ||
| 17 | #include "busybox.h" | 17 | #include "busybox.h" |
| 18 | 18 | ||
| 19 | #if ENABLE_FEATURE_SETCONSOLE_LONG_OPTIONS | ||
| 19 | static const struct option setconsole_long_options[] = { | 20 | static const struct option setconsole_long_options[] = { |
| 20 | { "reset", 0, NULL, 'r' }, | 21 | { "reset", 0, NULL, 'r' }, |
| 21 | { 0, 0, 0, 0 } | 22 | { 0, 0, 0, 0 } |
| 22 | }; | 23 | }; |
| 24 | #endif | ||
| 23 | 25 | ||
| 24 | #define OPT_SETCONS_RESET 1 | 26 | #define OPT_SETCONS_RESET 1 |
| 25 | 27 | ||
| @@ -28,7 +30,9 @@ int setconsole_main(int argc, char **argv) | |||
| 28 | unsigned long flags; | 30 | unsigned long flags; |
| 29 | const char *device = CURRENT_TTY; | 31 | const char *device = CURRENT_TTY; |
| 30 | 32 | ||
| 33 | #if ENABLE_FEATURE_SETCONSOLE_LONG_OPTIONS | ||
| 31 | bb_applet_long_options = setconsole_long_options; | 34 | bb_applet_long_options = setconsole_long_options; |
| 35 | #endif | ||
| 32 | flags = bb_getopt_ulflags(argc, argv, "r"); | 36 | flags = bb_getopt_ulflags(argc, argv, "r"); |
| 33 | 37 | ||
| 34 | if (argc - optind > 1) | 38 | if (argc - optind > 1) |
diff --git a/coreutils/Config.in b/coreutils/Config.in index d7e31e868..818854cb1 100644 --- a/coreutils/Config.in +++ b/coreutils/Config.in | |||
| @@ -232,6 +232,13 @@ config CONFIG_ENV | |||
| 232 | a command; without options it displays the current | 232 | a command; without options it displays the current |
| 233 | environment. | 233 | environment. |
| 234 | 234 | ||
| 235 | config CONFIG_FEATURE_ENV_LONG_OPTIONS | ||
| 236 | bool "Enable long options" | ||
| 237 | default n | ||
| 238 | depends on CONFIG_ENV && CONFIG_GETOPT_LONG | ||
| 239 | help | ||
| 240 | Support long options for the env applet. | ||
| 241 | |||
| 235 | config CONFIG_EXPR | 242 | config CONFIG_EXPR |
| 236 | bool "expr" | 243 | bool "expr" |
| 237 | default n | 244 | default n |
| @@ -293,6 +300,13 @@ config CONFIG_INSTALL | |||
| 293 | help | 300 | help |
| 294 | Copy files and set attributes. | 301 | Copy files and set attributes. |
| 295 | 302 | ||
| 303 | config CONFIG_FEATURE_INSTALL_LONG_OPTIONS | ||
| 304 | bool "Enable long options" | ||
| 305 | default n | ||
| 306 | depends on CONFIG_INSTALL && CONFIG_GETOPT_LONG | ||
| 307 | help | ||
| 308 | Support long options for the install applet. | ||
| 309 | |||
| 296 | config CONFIG_LENGTH | 310 | config CONFIG_LENGTH |
| 297 | bool "length" | 311 | bool "length" |
| 298 | default n | 312 | default n |
| @@ -362,7 +376,7 @@ config CONFIG_FEATURE_LS_USERNAME | |||
| 362 | config CONFIG_FEATURE_LS_COLOR | 376 | config CONFIG_FEATURE_LS_COLOR |
| 363 | bool "Allow use of color to identify file types" | 377 | bool "Allow use of color to identify file types" |
| 364 | default y | 378 | default y |
| 365 | depends on CONFIG_LS | 379 | depends on CONFIG_LS && CONFIG_GETOPT_LONG |
| 366 | help | 380 | help |
| 367 | This enables the --color option to ls. | 381 | This enables the --color option to ls. |
| 368 | 382 | ||
| @@ -389,6 +403,13 @@ config CONFIG_MKDIR | |||
| 389 | help | 403 | help |
| 390 | mkdir is used to create directories with the specified names. | 404 | mkdir is used to create directories with the specified names. |
| 391 | 405 | ||
| 406 | config CONFIG_FEATURE_MKDIR_LONG_OPTIONS | ||
| 407 | bool "Enable long options" | ||
| 408 | default n | ||
| 409 | depends on CONFIG_MKDIR && CONFIG_GETOPT_LONG | ||
| 410 | help | ||
| 411 | Support long options for the mkdir applet. | ||
| 412 | |||
| 392 | config CONFIG_MKFIFO | 413 | config CONFIG_MKFIFO |
| 393 | bool "mkfifo" | 414 | bool "mkfifo" |
| 394 | default n | 415 | default n |
| @@ -409,6 +430,13 @@ config CONFIG_MV | |||
| 409 | help | 430 | help |
| 410 | mv is used to move or rename files or directories. | 431 | mv is used to move or rename files or directories. |
| 411 | 432 | ||
| 433 | config CONFIG_FEATURE_MV_LONG_OPTIONS | ||
| 434 | bool "Enable long options" | ||
| 435 | default n | ||
| 436 | depends on CONFIG_MV && CONFIG_GETOPT_LONG | ||
| 437 | help | ||
| 438 | Support long options for the mv applet. | ||
| 439 | |||
| 412 | config CONFIG_NICE | 440 | config CONFIG_NICE |
| 413 | bool "nice" | 441 | bool "nice" |
| 414 | default n | 442 | default n |
diff --git a/coreutils/env.c b/coreutils/env.c index fd58a23da..a07c0c617 100644 --- a/coreutils/env.c +++ b/coreutils/env.c | |||
| @@ -50,12 +50,13 @@ | |||
| 50 | #include <getopt.h> /* struct option */ | 50 | #include <getopt.h> /* struct option */ |
| 51 | #include "busybox.h" | 51 | #include "busybox.h" |
| 52 | 52 | ||
| 53 | 53 | #if ENABLE_FEATURE_ENV_LONG_OPTIONS | |
| 54 | static const struct option env_long_options[] = { | 54 | static const struct option env_long_options[] = { |
| 55 | { "ignore-environment", 0, NULL, 'i' }, | 55 | { "ignore-environment", 0, NULL, 'i' }, |
| 56 | { "unset", 1, NULL, 'u' }, | 56 | { "unset", 1, NULL, 'u' }, |
| 57 | { 0, 0, 0, 0 } | 57 | { 0, 0, 0, 0 } |
| 58 | }; | 58 | }; |
| 59 | #endif | ||
| 59 | 60 | ||
| 60 | int env_main(int argc, char** argv) | 61 | int env_main(int argc, char** argv) |
| 61 | { | 62 | { |
| @@ -67,7 +68,9 @@ int env_main(int argc, char** argv) | |||
| 67 | extern char **environ; | 68 | extern char **environ; |
| 68 | 69 | ||
| 69 | bb_opt_complementally = "u::"; | 70 | bb_opt_complementally = "u::"; |
| 71 | #if ENABLE_FEATURE_ENV_LONG_OPTIONS | ||
| 70 | bb_applet_long_options = env_long_options; | 72 | bb_applet_long_options = env_long_options; |
| 73 | #endif | ||
| 71 | 74 | ||
| 72 | opt = bb_getopt_ulflags(argc, argv, "+iu:", &unset_env); | 75 | opt = bb_getopt_ulflags(argc, argv, "+iu:", &unset_env); |
| 73 | 76 | ||
diff --git a/coreutils/install.c b/coreutils/install.c index 7739fb615..90b3ef31b 100644 --- a/coreutils/install.c +++ b/coreutils/install.c | |||
| @@ -39,6 +39,7 @@ | |||
| 39 | #define INSTALL_OPT_MODE 32 | 39 | #define INSTALL_OPT_MODE 32 |
| 40 | #define INSTALL_OPT_OWNER 64 | 40 | #define INSTALL_OPT_OWNER 64 |
| 41 | 41 | ||
| 42 | #if ENABLE_FEATURE_INSTALL_LONG_OPTIONS | ||
| 42 | static const struct option install_long_options[] = { | 43 | static const struct option install_long_options[] = { |
| 43 | { "directory", 0, NULL, 'd' }, | 44 | { "directory", 0, NULL, 'd' }, |
| 44 | { "preserve-timestamps", 0, NULL, 'p' }, | 45 | { "preserve-timestamps", 0, NULL, 'p' }, |
| @@ -48,6 +49,7 @@ static const struct option install_long_options[] = { | |||
| 48 | { "owner", 0, NULL, 'o' }, | 49 | { "owner", 0, NULL, 'o' }, |
| 49 | { 0, 0, 0, 0 } | 50 | { 0, 0, 0, 0 } |
| 50 | }; | 51 | }; |
| 52 | #endif | ||
| 51 | 53 | ||
| 52 | int install_main(int argc, char **argv) | 54 | int install_main(int argc, char **argv) |
| 53 | { | 55 | { |
| @@ -60,7 +62,9 @@ int install_main(int argc, char **argv) | |||
| 60 | int copy_flags = FILEUTILS_DEREFERENCE | FILEUTILS_FORCE; | 62 | int copy_flags = FILEUTILS_DEREFERENCE | FILEUTILS_FORCE; |
| 61 | int ret = EXIT_SUCCESS, flags, i, isdir; | 63 | int ret = EXIT_SUCCESS, flags, i, isdir; |
| 62 | 64 | ||
| 65 | #if ENABLE_FEATURE_INSTALL_LONG_OPTIONS | ||
| 63 | bb_applet_long_options = install_long_options; | 66 | bb_applet_long_options = install_long_options; |
| 67 | #endif | ||
| 64 | bb_opt_complementally = "?:s--d:d--s"; | 68 | bb_opt_complementally = "?:s--d:d--s"; |
| 65 | /* -c exists for backwards compatibility, its needed */ | 69 | /* -c exists for backwards compatibility, its needed */ |
| 66 | flags = bb_getopt_ulflags(argc, argv, "cdpsg:m:o:", &gid_str, &mode_str, &uid_str); /* 'a' must be 2nd */ | 70 | flags = bb_getopt_ulflags(argc, argv, "cdpsg:m:o:", &gid_str, &mode_str, &uid_str); /* 'a' must be 2nd */ |
diff --git a/coreutils/mkdir.c b/coreutils/mkdir.c index 48a95badb..47f4cc843 100644 --- a/coreutils/mkdir.c +++ b/coreutils/mkdir.c | |||
| @@ -34,11 +34,13 @@ | |||
| 34 | #include <getopt.h> /* struct option */ | 34 | #include <getopt.h> /* struct option */ |
| 35 | #include "busybox.h" | 35 | #include "busybox.h" |
| 36 | 36 | ||
| 37 | #if ENABLE_FEATURE_MKDIR_LONG_OPTIONS | ||
| 37 | static const struct option mkdir_long_options[] = { | 38 | static const struct option mkdir_long_options[] = { |
| 38 | { "mode", 1, NULL, 'm' }, | 39 | { "mode", 1, NULL, 'm' }, |
| 39 | { "parents", 0, NULL, 'p' }, | 40 | { "parents", 0, NULL, 'p' }, |
| 40 | { 0, 0, 0, 0 } | 41 | { 0, 0, 0, 0 } |
| 41 | }; | 42 | }; |
| 43 | #endif | ||
| 42 | 44 | ||
| 43 | int mkdir_main (int argc, char **argv) | 45 | int mkdir_main (int argc, char **argv) |
| 44 | { | 46 | { |
| @@ -48,7 +50,9 @@ int mkdir_main (int argc, char **argv) | |||
| 48 | unsigned long opt; | 50 | unsigned long opt; |
| 49 | char *smode; | 51 | char *smode; |
| 50 | 52 | ||
| 53 | #if ENABLE_FEATURE_MKDIR_LONG_OPTIONS | ||
| 51 | bb_applet_long_options = mkdir_long_options; | 54 | bb_applet_long_options = mkdir_long_options; |
| 55 | #endif | ||
| 52 | opt = bb_getopt_ulflags(argc, argv, "m:p", &smode); | 56 | opt = bb_getopt_ulflags(argc, argv, "m:p", &smode); |
| 53 | if(opt & 1) { | 57 | if(opt & 1) { |
| 54 | mode = 0777; | 58 | mode = 0777; |
diff --git a/coreutils/mv.c b/coreutils/mv.c index 1c0dc3d72..02252c7ef 100644 --- a/coreutils/mv.c +++ b/coreutils/mv.c | |||
| @@ -35,11 +35,13 @@ | |||
| 35 | #include "busybox.h" | 35 | #include "busybox.h" |
| 36 | #include "libcoreutils/coreutils.h" | 36 | #include "libcoreutils/coreutils.h" |
| 37 | 37 | ||
| 38 | #if ENABLE_FEATURE_MV_LONG_OPTIONS | ||
| 38 | static const struct option mv_long_options[] = { | 39 | static const struct option mv_long_options[] = { |
| 39 | { "interactive", 0, NULL, 'i' }, | 40 | { "interactive", 0, NULL, 'i' }, |
| 40 | { "force", 0, NULL, 'f' }, | 41 | { "force", 0, NULL, 'f' }, |
| 41 | { 0, 0, 0, 0 } | 42 | { 0, 0, 0, 0 } |
| 42 | }; | 43 | }; |
| 44 | #endif | ||
| 43 | 45 | ||
| 44 | #define OPT_FILEUTILS_FORCE 1 | 46 | #define OPT_FILEUTILS_FORCE 1 |
| 45 | #define OPT_FILEUTILS_INTERACTIVE 2 | 47 | #define OPT_FILEUTILS_INTERACTIVE 2 |
| @@ -55,7 +57,9 @@ int mv_main(int argc, char **argv) | |||
| 55 | int dest_exists; | 57 | int dest_exists; |
| 56 | int status = 0; | 58 | int status = 0; |
| 57 | 59 | ||
| 60 | #if ENABLE_FEATURE_MV_LONG_OPTIONS | ||
| 58 | bb_applet_long_options = mv_long_options; | 61 | bb_applet_long_options = mv_long_options; |
| 62 | #endif | ||
| 59 | bb_opt_complementally = "f-i:i-f"; | 63 | bb_opt_complementally = "f-i:i-f"; |
| 60 | flags = bb_getopt_ulflags(argc, argv, "fi"); | 64 | flags = bb_getopt_ulflags(argc, argv, "fi"); |
| 61 | if (optind + 2 > argc) { | 65 | if (optind + 2 > argc) { |
diff --git a/debianutils/Config.in b/debianutils/Config.in index 146a24e61..626272474 100644 --- a/debianutils/Config.in +++ b/debianutils/Config.in | |||
| @@ -46,6 +46,13 @@ config CONFIG_RUN_PARTS | |||
| 46 | Unless you know that run-parts is used in some of your scripts | 46 | Unless you know that run-parts is used in some of your scripts |
| 47 | you can safely say N here. | 47 | you can safely say N here. |
| 48 | 48 | ||
| 49 | config CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS | ||
| 50 | bool "Enable long options" | ||
| 51 | default n | ||
| 52 | depends on CONFIG_RUN_PARTS && CONFIG_GETOPT_LONG | ||
| 53 | help | ||
| 54 | Support long options for the run-parts applet. | ||
| 55 | |||
| 49 | config CONFIG_START_STOP_DAEMON | 56 | config CONFIG_START_STOP_DAEMON |
| 50 | bool "start-stop-daemon" | 57 | bool "start-stop-daemon" |
| 51 | default y | 58 | default y |
| @@ -54,6 +61,13 @@ config CONFIG_START_STOP_DAEMON | |||
| 54 | termination of system-level processes, usually the ones | 61 | termination of system-level processes, usually the ones |
| 55 | started during the startup of the system. | 62 | started during the startup of the system. |
| 56 | 63 | ||
| 64 | config CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS | ||
| 65 | bool "Enable long options" | ||
| 66 | default n | ||
| 67 | depends on CONFIG_START_STOP_DAEMON && CONFIG_GETOPT_LONG | ||
| 68 | help | ||
| 69 | Support long options for the start-stop-daemon applet. | ||
| 70 | |||
| 57 | config CONFIG_WHICH | 71 | config CONFIG_WHICH |
| 58 | bool "which" | 72 | bool "which" |
| 59 | default n | 73 | default n |
diff --git a/debianutils/start_stop_daemon.c b/debianutils/start_stop_daemon.c index b44a23b4b..5c596c40a 100644 --- a/debianutils/start_stop_daemon.c +++ b/debianutils/start_stop_daemon.c | |||
| @@ -200,7 +200,7 @@ do_stop(void) | |||
| 200 | } | 200 | } |
| 201 | } | 201 | } |
| 202 | 202 | ||
| 203 | 203 | #if ENABLE_FEATURE_START_STOP_DAEMON_LONG_OPTIONS | |
| 204 | static const struct option ssd_long_options[] = { | 204 | static const struct option ssd_long_options[] = { |
| 205 | { "stop", 0, NULL, 'K' }, | 205 | { "stop", 0, NULL, 'K' }, |
| 206 | { "start", 0, NULL, 'S' }, | 206 | { "start", 0, NULL, 'S' }, |
| @@ -215,6 +215,7 @@ static const struct option ssd_long_options[] = { | |||
| 215 | { "pidfile", 1, NULL, 'p' }, | 215 | { "pidfile", 1, NULL, 'p' }, |
| 216 | { 0, 0, 0, 0 } | 216 | { 0, 0, 0, 0 } |
| 217 | }; | 217 | }; |
| 218 | #endif | ||
| 218 | 219 | ||
| 219 | #define SSD_CTX_STOP 1 | 220 | #define SSD_CTX_STOP 1 |
| 220 | #define SSD_CTX_START 2 | 221 | #define SSD_CTX_START 2 |
| @@ -229,7 +230,9 @@ start_stop_daemon_main(int argc, char **argv) | |||
| 229 | char *signame = NULL; | 230 | char *signame = NULL; |
| 230 | char *startas = NULL; | 231 | char *startas = NULL; |
| 231 | 232 | ||
| 233 | #if ENABLE_FEATURE_START_STOP_DAEMON_LONG_OPTIONS | ||
| 232 | bb_applet_long_options = ssd_long_options; | 234 | bb_applet_long_options = ssd_long_options; |
| 235 | #endif | ||
| 233 | 236 | ||
| 234 | /* Check required one context option was given */ | 237 | /* Check required one context option was given */ |
| 235 | bb_opt_complementally = "K:S:?:K--S:S--K"; | 238 | bb_opt_complementally = "K:S:?:K--S:S--K"; |
diff --git a/miscutils/Config.in b/miscutils/Config.in index 637d4b9c2..eae977fac 100644 --- a/miscutils/Config.in +++ b/miscutils/Config.in | |||
| @@ -169,7 +169,7 @@ config CONFIG_HDPARM | |||
| 169 | config CONFIG_FEATURE_HDPARM_GET_IDENTITY | 169 | config CONFIG_FEATURE_HDPARM_GET_IDENTITY |
| 170 | bool "Support obtaining detailed information directly from drives" | 170 | bool "Support obtaining detailed information directly from drives" |
| 171 | default y | 171 | default y |
| 172 | depends on CONFIG_HDPARM | 172 | depends on CONFIG_HDPARM && CONFIG_GETOPT_LONG |
| 173 | help | 173 | help |
| 174 | Enables the -I and -Istdin options to obtain detailed information | 174 | Enables the -I and -Istdin options to obtain detailed information |
| 175 | directly from drives about their capabilities and supported ATA | 175 | directly from drives about their capabilities and supported ATA |
diff --git a/networking/Config.in b/networking/Config.in index e76002c0d..c718af0e9 100644 --- a/networking/Config.in +++ b/networking/Config.in | |||
| @@ -49,6 +49,13 @@ config CONFIG_FTPPUT | |||
| 49 | help | 49 | help |
| 50 | Store a remote file via FTP. | 50 | Store a remote file via FTP. |
| 51 | 51 | ||
| 52 | config CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS | ||
| 53 | bool "Enable long options in ftpget/ftpput" | ||
| 54 | default n | ||
| 55 | depends on CONFIG_GETOPT_LONG && (CONFIG_FTPGET || CONFIG_FTPPUT) | ||
| 56 | help | ||
| 57 | Support long options for the ftpget/ftpput applet. | ||
| 58 | |||
| 52 | config CONFIG_HOSTNAME | 59 | config CONFIG_HOSTNAME |
| 53 | bool "hostname" | 60 | bool "hostname" |
| 54 | default n | 61 | default n |
| @@ -411,6 +418,13 @@ config CONFIG_FEATURE_IPCALC_FANCY | |||
| 411 | help | 418 | help |
| 412 | Adds the options hostname, prefix and silent to the output of "ipcalc". | 419 | Adds the options hostname, prefix and silent to the output of "ipcalc". |
| 413 | 420 | ||
| 421 | config CONFIG_FEATURE_IPCALC_LONG_OPTIONS | ||
| 422 | bool "Enable long options" | ||
| 423 | default n | ||
| 424 | depends on CONFIG_IPCALC && CONFIG_GETOPT_LONG | ||
| 425 | help | ||
| 426 | Support long options for the ipcalc applet. | ||
| 427 | |||
| 414 | config CONFIG_NAMEIF | 428 | config CONFIG_NAMEIF |
| 415 | bool "nameif" | 429 | bool "nameif" |
| 416 | default n | 430 | default n |
diff --git a/networking/ftpgetput.c b/networking/ftpgetput.c index 40e1328a9..a401ec50a 100644 --- a/networking/ftpgetput.c +++ b/networking/ftpgetput.c | |||
| @@ -278,6 +278,7 @@ static int ftp_send(ftp_host_info_t *server, FILE *control_stream, | |||
| 278 | #define FTPGETPUT_OPT_PASSWORD 8 | 278 | #define FTPGETPUT_OPT_PASSWORD 8 |
| 279 | #define FTPGETPUT_OPT_PORT 16 | 279 | #define FTPGETPUT_OPT_PORT 16 |
| 280 | 280 | ||
| 281 | #if ENABLE_FEATURE_FTPGETPUT_LONG_OPTIONS | ||
| 281 | static const struct option ftpgetput_long_options[] = { | 282 | static const struct option ftpgetput_long_options[] = { |
| 282 | {"continue", 1, NULL, 'c'}, | 283 | {"continue", 1, NULL, 'c'}, |
| 283 | {"verbose", 0, NULL, 'v'}, | 284 | {"verbose", 0, NULL, 'v'}, |
| @@ -286,6 +287,7 @@ static const struct option ftpgetput_long_options[] = { | |||
| 286 | {"port", 1, NULL, 'P'}, | 287 | {"port", 1, NULL, 'P'}, |
| 287 | {0, 0, 0, 0} | 288 | {0, 0, 0, 0} |
| 288 | }; | 289 | }; |
| 290 | #endif | ||
| 289 | 291 | ||
| 290 | int ftpgetput_main(int argc, char **argv) | 292 | int ftpgetput_main(int argc, char **argv) |
| 291 | { | 293 | { |
| @@ -319,7 +321,9 @@ int ftpgetput_main(int argc, char **argv) | |||
| 319 | /* | 321 | /* |
| 320 | * Decipher the command line | 322 | * Decipher the command line |
| 321 | */ | 323 | */ |
| 324 | #if ENABLE_FEATURE_FTPGETPUT_LONG_OPTIONS | ||
| 322 | bb_applet_long_options = ftpgetput_long_options; | 325 | bb_applet_long_options = ftpgetput_long_options; |
| 326 | #endif | ||
| 323 | opt = bb_getopt_ulflags(argc, argv, "cvu:p:P:", &server->user, &server->password, &port); | 327 | opt = bb_getopt_ulflags(argc, argv, "cvu:p:P:", &server->user, &server->password, &port); |
| 324 | 328 | ||
| 325 | /* Process the non-option command line arguments */ | 329 | /* Process the non-option command line arguments */ |
diff --git a/networking/ipcalc.c b/networking/ipcalc.c index a24629a9d..ade4ed101 100644 --- a/networking/ipcalc.c +++ b/networking/ipcalc.c | |||
| @@ -82,6 +82,7 @@ int ipcalc_main(int argc, char **argv) | |||
| 82 | char *ipstr, *prefixstr; | 82 | char *ipstr, *prefixstr; |
| 83 | #endif | 83 | #endif |
| 84 | 84 | ||
| 85 | #if ENABLE_FEATURE_IPCALC_LONG_OPTIONS | ||
| 85 | static const struct option long_options[] = { | 86 | static const struct option long_options[] = { |
| 86 | {"netmask", no_argument, NULL, 'm'}, | 87 | {"netmask", no_argument, NULL, 'm'}, |
| 87 | {"broadcast", no_argument, NULL, 'b'}, | 88 | {"broadcast", no_argument, NULL, 'b'}, |
| @@ -95,6 +96,7 @@ int ipcalc_main(int argc, char **argv) | |||
| 95 | }; | 96 | }; |
| 96 | 97 | ||
| 97 | bb_applet_long_options = long_options; | 98 | bb_applet_long_options = long_options; |
| 99 | #endif | ||
| 98 | mode = bb_getopt_ulflags(argc, argv, | 100 | mode = bb_getopt_ulflags(argc, argv, |
| 99 | #ifdef CONFIG_FEATURE_IPCALC_FANCY | 101 | #ifdef CONFIG_FEATURE_IPCALC_FANCY |
| 100 | "mbnphs" | 102 | "mbnphs" |
diff --git a/util-linux/Config.in b/util-linux/Config.in index 6bc366531..a493fbfb4 100644 --- a/util-linux/Config.in +++ b/util-linux/Config.in | |||
| @@ -199,10 +199,10 @@ config CONFIG_HWCLOCK | |||
| 199 | shutdown in the hardware clock, so the hardware will keep the | 199 | shutdown in the hardware clock, so the hardware will keep the |
| 200 | correct time when Linux is _not_ running. | 200 | correct time when Linux is _not_ running. |
| 201 | 201 | ||
| 202 | config CONFIG_FEATURE_HWCLOCK_LONGOPTIONS | 202 | config CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS |
| 203 | bool "Support long options (--hctosys,...)" | 203 | bool "Support long options (--hctosys,...)" |
| 204 | default n | 204 | default n |
| 205 | depends on CONFIG_HWCLOCK | 205 | depends on CONFIG_HWCLOCK && CONFIG_GETOPT_LONG |
| 206 | help | 206 | help |
| 207 | By default, the hwclock utility only uses short options. If you | 207 | By default, the hwclock utility only uses short options. If you |
| 208 | are overly fond of its long options, such as --hctosys, --utc, etc) | 208 | are overly fond of its long options, such as --hctosys, --utc, etc) |
diff --git a/util-linux/hwclock.c b/util-linux/hwclock.c index 2fe57b2fc..3d7f40026 100644 --- a/util-linux/hwclock.c +++ b/util-linux/hwclock.c | |||
| @@ -37,7 +37,7 @@ struct linux_rtc_time { | |||
| 37 | #define RTC_SET_TIME _IOW('p', 0x0a, struct linux_rtc_time) /* Set RTC time */ | 37 | #define RTC_SET_TIME _IOW('p', 0x0a, struct linux_rtc_time) /* Set RTC time */ |
| 38 | #define RTC_RD_TIME _IOR('p', 0x09, struct linux_rtc_time) /* Read RTC time */ | 38 | #define RTC_RD_TIME _IOR('p', 0x09, struct linux_rtc_time) /* Read RTC time */ |
| 39 | 39 | ||
| 40 | #ifdef CONFIG_FEATURE_HWCLOCK_LONGOPTIONS | 40 | #if ENABLE_FEATURE_HWCLOCK_LONG_OPTIONS |
| 41 | # ifndef _GNU_SOURCE | 41 | # ifndef _GNU_SOURCE |
| 42 | # define _GNU_SOURCE | 42 | # define _GNU_SOURCE |
| 43 | # endif | 43 | # endif |
| @@ -186,7 +186,7 @@ int hwclock_main ( int argc, char **argv ) | |||
| 186 | unsigned long opt; | 186 | unsigned long opt; |
| 187 | int utc; | 187 | int utc; |
| 188 | 188 | ||
| 189 | #ifdef CONFIG_FEATURE_HWCLOCK_LONGOPTIONS | 189 | #if ENABLE_FEATURE_HWCLOCK_LONG_OPTIONS |
| 190 | static const struct option hwclock_long_options[] = { | 190 | static const struct option hwclock_long_options[] = { |
| 191 | { "localtime", 0, 0, 'l' }, | 191 | { "localtime", 0, 0, 'l' }, |
| 192 | { "utc", 0, 0, 'u' }, | 192 | { "utc", 0, 0, 'u' }, |
