]> git.donarmstrong.com Git - lilypond.git/commitdiff
Text_interface::is_markup should reject markup-list-command calls
authorDavid Kastrup <dak@gnu.org>
Wed, 20 Mar 2013 09:57:27 +0000 (10:57 +0100)
committerDavid Kastrup <dak@gnu.org>
Sat, 6 Apr 2013 06:52:40 +0000 (08:52 +0200)
lily/text-interface.cc

index 862e7af0b52405fdd1e0d9de0c5be7699f492231..c406beaab5436a9a053883651ff02d1b5364ed87 100644 (file)
@@ -109,12 +109,10 @@ Text_interface::interpret_markup (SCM layout_smob, SCM props, SCM markup)
 {
   if (scm_is_string (markup))
     return interpret_string (layout_smob, props, markup);
-  else if (scm_is_pair (markup))
+  else if (is_markup (markup))
     {
       SCM func = scm_car (markup);
       SCM args = scm_cdr (markup);
-      if (!is_markup (markup))
-        programming_error ("markup head has no markup signature");
 
       /* Use a hare/tortoise algorithm to detect whether we are in a cycle,
        * i.e. whether we have already encountered the same markup in the
@@ -177,11 +175,14 @@ Text_interface::print (SCM grob)
 bool
 Text_interface::is_markup (SCM x)
 {
-  return (scm_is_string (x)
-          || (scm_is_pair (x)
-              && SCM_BOOL_F
-              != scm_object_property (scm_car (x),
-                                      ly_symbol2scm ("markup-signature"))));
+  return scm_is_string (x)
+    || (scm_is_pair (x)
+        && scm_is_true
+        (scm_object_property (scm_car (x),
+                              ly_symbol2scm ("markup-signature")))
+        && scm_is_false
+        (scm_object_property (scm_car (x),
+                              ly_symbol2scm ("markup-list-command"))));
 }
 
 bool