]> git.donarmstrong.com Git - lilypond.git/commitdiff
Issue 4908/4: Admit \header-like expression into \score
authorDavid Kastrup <dak@gnu.org>
Tue, 28 Jun 2016 08:47:44 +0000 (10:47 +0200)
committerDavid Kastrup <dak@gnu.org>
Thu, 7 Jul 2016 15:57:28 +0000 (17:57 +0200)
lily/parser.yy

index 550e9ea48770941d7e78984838a6dbdaf6d60a8e..f184c5acb2685087d8add9fb12508d9c2b35b880 100644 (file)
@@ -1173,6 +1173,22 @@ score_items:
                                scm_set_cdr_x ($$, scm_cons ($2, scm_cdr ($$)));
                        else
                                $$ = scm_cons ($2, $$);
+               } else if (ly_is_module ($2)) {
+                       SCM module = SCM_UNSPECIFIED;
+                       if (score) {
+                               module = score->get_header ();
+                               if (!ly_is_module (module))
+                               {
+                                       module = ly_make_module (false);
+                                       score->set_header (module);
+                               }
+                       } else if (scm_is_pair ($$) && ly_is_module (scm_car ($$)))
+                               module = scm_car ($$);
+                       else {
+                               module = ly_make_module (false);
+                               $$ = scm_cons (module, $$);
+                       }
+                       ly_module_copy (module, $2);
                } else if (!scm_is_eq ($2, SCM_UNSPECIFIED))
                        parser->parser_error (@2, _("Spurious expression in \\score"));
        }