# HG changeset patch # User Rob Landley # Date 1378487926 18000 # Node ID 0d8a664f9941d7d08c6781466ee49b67c29eb3e0 # Parent 501fd74c028efd4cbf398a48e444d9e1245a2a00 Make [-abc] exclude logic clear argument slots when disabling options. diff -r 501fd74c028e -r 0d8a664f9941 lib/args.c --- a/lib/args.c Fri Sep 06 04:45:36 2013 -0500 +++ b/lib/args.c Fri Sep 06 12:18:46 2013 -0500 @@ -124,7 +124,14 @@ } // Set flags - toys.optflags &= ~opt->dex[0]; + if (toys.optflags & opt->dex[0]) { + struct opts *clr; + unsigned i = 1; + + for (clr=gof->opts, i=1; ; clr = clr->next, i<<=1) + if (clr->arg && (i & toys.optflags)) clr->arg = 0; + toys.optflags &= ~opt->dex[0]; + } toys.optflags |= opt->dex[1]; gof->excludes |= opt->dex[2]; if (opt->flags&2) gof->stopearly=2;