]> git.saurik.com Git - bison.git/commitdiff
* src/muscle_tab.c (muscle_percent_define_flag_if): In order to
authorJoel E. Denny <jdenny@ces.clemson.edu>
Sun, 29 Jul 2007 01:17:40 +0000 (01:17 +0000)
committerJoel E. Denny <jdenny@ces.clemson.edu>
Sun, 29 Jul 2007 01:17:40 +0000 (01:17 +0000)
determine whether this function has already complained about an invalid
value for a %define boolean variable, don't check whether Bison has
ever examined the value.  As written, the check was a tautology.
Instead, record and check for this complaint using a separate muscle.

ChangeLog
src/muscle_tab.c

index a11ca86c2292da401110e4eabea7466451636d2e..4573fc0c12f7b56082896a9b5ac145c75ca01301 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2007-07-28  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * src/muscle_tab.c (muscle_percent_define_flag_if): In order to
+       determine whether this function has already complained about an invalid
+       value for a %define boolean variable, don't check whether Bison has
+       ever examined the value.  As written, the check was a tautology.
+       Instead, record and check for this complaint using a separate muscle.
+
 2007-07-27  Joel E. Denny  <jdenny@ces.clemson.edu>
 
        Fix push parsing memory leak reported by Brandon Lucia at
index 732fc2758580413bc21f515ff086cd06987dd226..ad0951dd5c247cbbf9aa19357f98833407a20f15 100644 (file)
@@ -460,12 +460,15 @@ muscle_percent_define_flag_if (char const *variable)
   char const *name;
   char const *loc_name;
   char const *usage_name;
+  char const *invalid_boolean_name;
   bool result = false;
 
   MUSCLE_USER_NAME_CONVERT (name, "percent_define(", variable, ")");
   MUSCLE_USER_NAME_CONVERT (loc_name, "percent_define_loc(", variable, ")");
   MUSCLE_USER_NAME_CONVERT (usage_name, "percent_define_bison_variables(",
                             variable, ")");
+  MUSCLE_USER_NAME_CONVERT (invalid_boolean_name,
+                            "percent_define_invalid_boolean(", variable, ")");
 
   if (muscle_percent_define_ifdef (variable))
     {
@@ -474,10 +477,13 @@ muscle_percent_define_flag_if (char const *variable)
         result = true;
       else if (0 == strcmp (value, "false"))
         result = false;
-      else if (!muscle_find_const (usage_name))
-        complain_at(muscle_location_decode (loc_name),
-                    _("invalid value for %%define boolean variable `%s'"),
-                    variable);
+      else if (!muscle_find_const (invalid_boolean_name))
+        {
+          muscle_insert (invalid_boolean_name, "");
+          complain_at(muscle_location_decode (loc_name),
+                      _("invalid value for %%define boolean variable `%s'"),
+                      variable);
+        }
       free (value);
     }
   else