Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.busybox.net/busybox.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2023-10-02 14:56:32 +0300
committerDenys Vlasenko <vda.linux@googlemail.com>2023-10-02 14:56:32 +0300
commit791b222dd55d3aa0e8b09be1be571e4829465dd6 (patch)
tree64af8d2c7a5787055bacb15c8a9f20ed51c2732f /coreutils
parent2cc9d436e80632157b99e18d413a62b2d44d321a (diff)
sleep: fix "sleep -- ARGS"
function old new delta sleep_main 116 119 +3 printf_main 860 837 -23 single_argv 50 25 -25 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/2 up/down: 3/-48) Total: -45 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'coreutils')
-rw-r--r--coreutils/printf.c10
-rw-r--r--coreutils/sleep.c4
2 files changed, 7 insertions, 7 deletions
diff --git a/coreutils/printf.c b/coreutils/printf.c
index 7763d7c46..4edcfa9b5 100644
--- a/coreutils/printf.c
+++ b/coreutils/printf.c
@@ -425,9 +425,9 @@ int printf_main(int argc UNUSED_PARAM, char **argv)
/* bash builtin errors out on "printf '-%s-\n' foo",
* coreutils-6.9 works. Both work with "printf -- '-%s-\n' foo".
* We will mimic coreutils. */
- if (argv[1] && argv[1][0] == '-' && argv[1][1] == '-' && !argv[1][2])
- argv++;
- if (!argv[1]) {
+ argv = skip_dash_dash(argv);
+
+ if (!argv[0]) {
if ((ENABLE_ASH_PRINTF || ENABLE_HUSH_PRINTF)
&& applet_name[0] != 'p'
) {
@@ -437,8 +437,8 @@ int printf_main(int argc UNUSED_PARAM, char **argv)
bb_show_usage();
}
- format = argv[1];
- argv2 = argv + 2;
+ format = argv[0];
+ argv2 = argv + 1;
conv_err = 0;
do {
diff --git a/coreutils/sleep.c b/coreutils/sleep.c
index 6edff59cc..fa74f1fd4 100644
--- a/coreutils/sleep.c
+++ b/coreutils/sleep.c
@@ -71,8 +71,8 @@ int sleep_main(int argc UNUSED_PARAM, char **argv)
* + we can't use bb_show_usage
* + applet_name can be the name of the shell
*/
- ++argv;
- if (!*argv) {
+ argv = skip_dash_dash(argv);
+ if (!argv[0]) {
/* Without this, bare "sleep" in ash shows _ash_ --help */
/* (ash can be the "sh" applet as well, so check 2nd char) */
if (ENABLE_ASH_SLEEP && applet_name[1] != 'l') {