[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