diff toys/hello.c @ 403:f6ffc6685a9e

Fluff out documentation and skeleton code.
author Rob Landley <rob@landley.net>
date Mon, 16 Jan 2012 01:44:17 -0600
parents 5d4dacab7be0
children a3e014fdeb35
line wrap: on
line diff
--- a/toys/hello.c	Sat Jan 14 23:28:15 2012 -0600
+++ b/toys/hello.c	Mon Jan 16 01:44:17 2012 -0600
@@ -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 @@
 	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 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++));
 }