aboutsummaryrefslogtreecommitdiff
path: root/toys/other/hello.c
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2014-04-16 08:54:19 -0500
committerRob Landley <rob@landley.net>2014-04-16 08:54:19 -0500
commit6c64f5f186d26d4c95d408979d33831935e026f1 (patch)
treeb08b59e7f980f3ab74d856923175dae0d4cd87c2 /toys/other/hello.c
parent76e1cb3ada7fb12f38e248a08c2deedc5c9ce888 (diff)
downloadtoybox-6c64f5f186d26d4c95d408979d33831935e026f1.tar.gz
Revert lots of half-finished local debris I didn't mean to check in with Isaac's roadmap update.
Mercurial's "import" command is still broken, committing local tree changes to files that weren't even touched by the patch because the hg developers inisist, when I point out how stupid it is, that they meant to do that. (hg record can do hunks, but import can't even track _files_.)
Diffstat (limited to 'toys/other/hello.c')
-rw-r--r--toys/other/hello.c56
1 files changed, 14 insertions, 42 deletions
diff --git a/toys/other/hello.c b/toys/other/hello.c
index b909ed53..eb80972e 100644
--- a/toys/other/hello.c
+++ b/toys/other/hello.c
@@ -8,28 +8,17 @@
// Accept many different kinds of command line argument:
USE_HELLO(NEWTOY(hello, "(walrus)(blubber):;(also):e@d*c#b:a", TOYFLAG_USR|TOYFLAG_BIN))
-USE_HELLO_ALIAS(NEWTOY(hello_alias, "b:dq", TOYFLAG_USR|TOYFLAG_BIN))
config HELLO
bool "hello"
default n
help
- usage: hello [-a] [-b STRING] [-c NUMBER] [-d LIST] [-e COUNT] [...]
+ usage: hello [-a] [-b string] [-c number] [-d list] [-e count] [...]
A hello world program. You don't need this.
Mostly used as an example/skeleton file for adding new commands,
occasionally nice to test kernel booting via "init=/bin/hello".
-
-config HELLO_ALIAS
- bool "hello_alias"
- default n
- depends on HELLO
- help
- usage: hello_alias [-dq] [-b NUMBER]
-
- Example of a second command with different arguments in the same source
- file as the first. Allows shared infrastructure not added to lib.
*/
#define FOR_hello
@@ -38,19 +27,12 @@ config HELLO_ALIAS
// Hello doesn't use these globals, they're here for example/skeleton purposes.
GLOBALS(
- union {
- struct {
- char *b_string;
- long c_number;
- struct arg_list *d_list;
- long e_count;
- char *also_string;
- char *blubber_string;
- } h;
- struct {
- long b_number;
- } a;
- };
+ char *b_string;
+ long c_number;
+ struct arg_list *d_list;
+ long e_count;
+ char *also_string;
+ char *blubber_string;
int more_globals;
)
@@ -65,25 +47,15 @@ void hello_main(void)
if (toys.optflags) printf("flags=%x\n", toys.optflags);
if (toys.optflags & FLAG_a) printf("Saw a\n");
- if (toys.optflags & FLAG_b) printf("b=%s\n", TT.h.b_string);
- if (toys.optflags & FLAG_c) printf("c=%ld\n", TT.h.c_number);
- while (TT.h.d_list) {
- printf("d=%s\n", TT.h.d_list->arg);
- TT.h.d_list = TT.h.d_list->next;
+ if (toys.optflags & FLAG_b) printf("b=%s\n", TT.b_string);
+ if (toys.optflags & FLAG_c) printf("c=%ld\n", TT.c_number);
+ while (TT.d_list) {
+ printf("d=%s\n", TT.d_list->arg);
+ TT.d_list = TT.d_list->next;
}
- if (TT.h.e_count) printf("e was seen %ld times\n", TT.h.e_count);
+ if (TT.e_count) printf("e was seen %ld times\n", TT.e_count);
for (optargs = toys.optargs; *optargs; optargs++)
printf("optarg=%s\n", *optargs);
if (toys.optflags & FLAG_walrus) printf("Saw --walrus\n");
- if (TT.h.blubber_string) printf("--blubber=%s\n", TT.h.blubber_string);
-}
-
-#define CLEANUP_hello
-#define FOR_hello_alias
-#include "generated/flags.h"
-
-void hello_alias_main(void)
-{
- printf("hello world %x\n", toys.optflags);
- if (toys.optflags & FLAG_b) printf("b=%ld", TT.a.b_number);
+ if (TT.blubber_string) printf("--blubber=%s\n", TT.blubber_string);
}