aboutsummaryrefslogtreecommitdiff
path: root/toys/hello.c
diff options
context:
space:
mode:
Diffstat (limited to 'toys/hello.c')
-rw-r--r--toys/hello.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/toys/hello.c b/toys/hello.c
index 2612e810..3085b333 100644
--- a/toys/hello.c
+++ b/toys/hello.c
@@ -2,9 +2,9 @@
*
* hello.c - A hello world program.
*
- * Copyright 2006 Rob Landley <rob@landley.net>
+ * Copyright 2012 Rob Landley <rob@landley.net>
*
- * Not in SUSv3.
+ * Not in SUSv4.
* See http://opengroup.org/onlinepubs/9699919799/utilities/
USE_HELLO(NEWTOY(hello, "e@d*c#b:a", TOYFLAG_USR|TOYFLAG_BIN))
@@ -13,6 +13,8 @@ config HELLO
bool "hello"
default n
help
+ 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,
@@ -34,7 +36,24 @@ DEFINE_GLOBALS(
#define TT this.hello
+#define FLAG_a 1
+#define FLAG_b 2
+#define FLAG_c 4
+#define FLAG_d 8
+#define FLAG_e 16
+
void hello_main(void)
{
printf("Hello world\n");
+
+ if (toys.optflags & FLAG_a) printf("Saw a\n");
+ 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.e_count) printf("e was seen %ld times", TT.e_count);
+
+ while (*toys.optargs) printf("optarg=%s\n", *(toys.optargs++));
}