]> git.saurik.com Git - bison.git/commitdiff
* src/getargs.c (flags_argmatch): Don't cause segmentation fault for
authorJoel E. Denny <jdenny@ces.clemson.edu>
Tue, 31 Oct 2006 22:24:57 +0000 (22:24 +0000)
committerJoel E. Denny <jdenny@ces.clemson.edu>
Tue, 31 Oct 2006 22:24:57 +0000 (22:24 +0000)
empty subargument list.  For example: `bison  --warnings=  parser.y'.

ChangeLog
src/getargs.c

index 583d8eb8bfbae859023fdb1236a55d51d14c7591..d64fa6bcd13e9321054540607550bb2edc3fcba0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-10-31  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * src/getargs.c (flags_argmatch): Don't cause segmentation fault for
+       empty subargument list.  For example: `bison  --warnings=  parser.y'.
+
 2006-10-21  Joel E. Denny  <jdenny@ces.clemson.edu>
 
        * data/push.c, data/yacc.c: Make sure there's a newline at the end of
 2006-10-21  Joel E. Denny  <jdenny@ces.clemson.edu>
 
        * data/push.c, data/yacc.c: Make sure there's a newline at the end of
index 52f97e17346a14aed2ca67026c96415832d1f6c3..94d24329d716cdd0ea167be3135f96f30a20a2ec 100644 (file)
@@ -91,15 +91,15 @@ flags_argmatch (const char *option,
   if (args)
     {
       args = strtok (args, ",");
   if (args)
     {
       args = strtok (args, ",");
-      do
+      while (args)
        {
          int value = XARGMATCH (option, args, keys, values);
          if (value == 0)
            *flags = 0;
          else
            *flags |= value;
        {
          int value = XARGMATCH (option, args, keys, values);
          if (value == 0)
            *flags = 0;
          else
            *flags |= value;
+          args = strtok (NULL, ",");
        }
        }
-      while ((args = strtok (NULL, ",")));
     }
   else
     *flags = ~0;
     }
   else
     *flags = ~0;