changeset 1072:7a45b9b54d3d draft

Tweak args (yank old + that never worked, rename | to +), and add uname -o as a synonym for -s.
author Rob Landley <rob@landley.net>
date Sat, 21 Sep 2013 13:46:44 -0500
parents e7454bb7af5a
children 3c0e653070d8
files lib/args.c toys/posix/uname.c
diffstat 2 files changed, 6 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/lib/args.c	Sat Sep 21 12:24:04 2013 -0500
+++ b/lib/args.c	Sat Sep 21 13:46:44 2013 -0500
@@ -79,9 +79,8 @@
 //
 //   At the end: [groups] of previously seen options
 //     - Only one in group (switch off)    [-abc] means -ab=-b, -ba=-a, -abc=-c
-//     | Synonyms (switch on all)          [|abc] means -ab=-abc, -c=-abc
+//     + Synonyms (switch on all)          [+abc] means -ab=-abc, -c=-abc
 //     ! More than one in group is error   [!abc] means -ab calls error_exit()
-//     + First in group switches rest on   [+abc] means -a=-abc, -b=-b, -c=-c
 //       primarily useful if you can switch things back off again.
 //     
 
@@ -339,14 +338,14 @@
 
     if (CFG_TOYBOX_DEBUG && *options != '[') error_exit("trailing %s", options);
 
-    idx = stridx("-|!+", *++options);
+    idx = stridx("-+!", *++options);
     if (CFG_TOYBOX_DEBUG && idx == -1) error_exit("[ needs +-!");
-    if (CFG_TOYBOX_DEBUG && (*options == ']' || !options))
+    if (CFG_TOYBOX_DEBUG && (options[1] == ']' || !options[1]))
       error_exit("empty []");
 
     // Don't advance past ] but do process it once in loop.
-    while (*(options++) != ']') {
-      struct opts *opt, *opt2 = 0;
+    while (*options++ != ']') {
+      struct opts *opt;
       int i;
 
       if (CFG_TOYBOX_DEBUG && !*options) error_exit("[ without ]");
@@ -354,17 +353,12 @@
       for (i=0, opt = gof->opts; ; i++, opt = opt->next) {
         if (*options == ']') {
           if (!opt) break;
-          if (idx == 3) {
-            opt2->dex[1] |= bits;
-            break;
-          }
           if (bits&(1<<i)) opt->dex[idx] |= bits&~(1<<i);
         } else {
           if (CFG_TOYBOX_DEBUG && !opt)
             error_exit("[] unknown target %c", *options);
           if (opt->c == *options) {
             bits |= 1<<i;
-            if (!opt2) opt2=opt;
             break;
           }
         }
--- a/toys/posix/uname.c	Sat Sep 21 12:24:04 2013 -0500
+++ b/toys/posix/uname.c	Sat Sep 21 13:46:44 2013 -0500
@@ -4,7 +4,7 @@
  *
  * See http://opengroup.org/onlinepubs/9699919799/utilities/uname.html
 
-USE_UNAME(NEWTOY(uname, "amvrns", TOYFLAG_BIN))
+USE_UNAME(NEWTOY(uname, "oamvrns[+os]", TOYFLAG_BIN))
 
 config UNAME
   bool "uname"