diff options
Diffstat (limited to 'coreutils/yes.c')
-rw-r--r-- | coreutils/yes.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/coreutils/yes.c b/coreutils/yes.c index 2611c3e82..569764150 100644 --- a/coreutils/yes.c +++ b/coreutils/yes.c | |||
@@ -16,25 +16,26 @@ | |||
16 | 16 | ||
17 | #include "busybox.h" | 17 | #include "busybox.h" |
18 | 18 | ||
19 | /* This is a NOFORK applet. Be very careful! */ | ||
20 | |||
19 | int yes_main(int argc, char **argv); | 21 | int yes_main(int argc, char **argv); |
20 | int yes_main(int argc, char **argv) | 22 | int yes_main(int argc, char **argv) |
21 | { | 23 | { |
22 | static const char fmt_str[] = " %s"; | ||
23 | const char *fmt; | ||
24 | char **first_arg; | 24 | char **first_arg; |
25 | 25 | ||
26 | *argv = (char*)"y"; | 26 | argv[0] = (char*)"y"; |
27 | if (argc != 1) { | 27 | if (argc != 1) { |
28 | ++argv; | 28 | ++argv; |
29 | } | 29 | } |
30 | 30 | ||
31 | first_arg = argv; | 31 | first_arg = argv; |
32 | do { | 32 | do { |
33 | fmt = fmt_str + 1; | 33 | while (1) { |
34 | do { | 34 | fputs(*argv, stdout); |
35 | printf(fmt, *argv); | 35 | if (!*++argv) |
36 | fmt = fmt_str; | 36 | break; |
37 | } while (*++argv); | 37 | putchar(' '); |
38 | } | ||
38 | argv = first_arg; | 39 | argv = first_arg; |
39 | } while (putchar('\n') != EOF); | 40 | } while (putchar('\n') != EOF); |
40 | 41 | ||