[Commit] nickle ChangeLog,1.137,1.138 parse-args.5c,1.4,1.5
Bart Massey
commit at keithp.com
Wed Oct 26 23:31:09 PDT 2005
Committed by: bart
Update of /local/src/CVS/nickle
In directory home.keithp.com:/tmp/cvs-serv13144
Modified Files:
ChangeLog parse-args.5c
Log Message:
2005-10-26 Bart Massey <bart at cs.pdx.edu>
* parse-args.5c:
Fixed to cope properly where args field of
argd is uninit. Most common cause: no optional
arguments.
Index: ChangeLog
===================================================================
RCS file: /local/src/CVS/nickle/ChangeLog,v
retrieving revision 1.137
retrieving revision 1.138
diff -u -d -r1.137 -r1.138
--- ChangeLog 20 Oct 2005 18:24:21 -0000 1.137
+++ ChangeLog 27 Oct 2005 06:31:06 -0000 1.138
@@ -1,3 +1,10 @@
+2005-10-26 Bart Massey <bart at cs.pdx.edu>
+
+ * parse-args.5c:
+ Fixed to cope properly where args field of
+ argd is uninit. Most common cause: no optional
+ arguments.
+
2005-10-20 Keith Packard <keithp at keithp.com>
* type.c: (TypeBinaryIntegral):
Index: parse-args.5c
===================================================================
RCS file: /local/src/CVS/nickle/parse-args.5c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- parse-args.5c 5 Oct 2005 06:17:07 -0000 1.4
+++ parse-args.5c 27 Oct 2005 06:31:06 -0000 1.5
@@ -99,12 +99,14 @@
/* build hashes for flags */
arg[int] arg_abbr_hash = {};
arg[string] arg_name_hash = {};
- for (int i = 0; i < dim(argd.args); i++) {
- &arg d = &argd.args[i];
- if (!is_uninit(&d.abbr))
- arg_abbr_hash[d.abbr] = d;
- if (!is_uninit(&d.name))
- arg_name_hash[d.name] = d;
+ if (!is_uninit(&argd.args)) {
+ for (int i = 0; i < dim(argd.args); i++) {
+ &arg d = &argd.args[i];
+ if (!is_uninit(&d.abbr))
+ arg_abbr_hash[d.abbr] = d;
+ if (!is_uninit(&d.name))
+ arg_name_hash[d.name] = d;
+ }
}
void usage(file f)
@@ -112,11 +114,13 @@
* Print a description of program usage on f
*/
{
- fprintf(f, "%s: usage: ", argd.prog_name);
- fprintf(f, "%s <options>", argd.prog_name);
- for (int i = 0; i < dim(argd.args); i++)
- if (is_uninit(&argd.args[i].name))
- fprintf(f, " %s", arg_string(argd.args[i]));
+ fprintf(f, "%s: usage: %s", argd.prog_name, argd.prog_name);
+ if (!is_uninit(&argd.args)) {
+ fprintf(f, " <options>");
+ for (int i = 0; i < dim(argd.args); i++)
+ if (is_uninit(&argd.args[i].name))
+ fprintf(f, " %s", arg_string(argd.args[i]));
+ }
if (!is_uninit(&argd.posn_args)) {
for (int i = 0; i < dim(argd.posn_args); i++)
if (is_uninit(&argd.posn_args[i].optional))
@@ -127,16 +131,18 @@
if (!is_uninit(&&argd.unknown))
fprintf(f, " [--] ...");
fprintf(f, "\n");
- for (int i = 0; i < dim(argd.args); i++)
- if (is_uninit(&argd.args[i].name))
- fprintf(f, " %s %s\n",
- argd.args[i].expr_name,
- argd.args[i].desc);
- for (int i = 0; i < dim(argd.args); i++)
- if (!is_uninit(&argd.args[i].name))
- fprintf(f, " %s %s\n",
- arg_string(argd.args[i]),
- argd.args[i].desc);
+ if (!is_uninit(&argd.args)) {
+ for (int i = 0; i < dim(argd.args); i++)
+ if (is_uninit(&argd.args[i].name))
+ fprintf(f, " %s %s\n",
+ argd.args[i].expr_name,
+ argd.args[i].desc);
+ for (int i = 0; i < dim(argd.args); i++)
+ if (!is_uninit(&argd.args[i].name))
+ fprintf(f, " %s %s\n",
+ arg_string(argd.args[i]),
+ argd.args[i].desc);
+ }
exit(1);
}
More information about the Commit
mailing list