]> git.donarmstrong.com Git - lilypond.git/commitdiff
Let make_music_from_simple accept numbers/durations
authorDavid Kastrup <dak@gnu.org>
Wed, 17 Feb 2016 13:43:52 +0000 (14:43 +0100)
committerDavid Kastrup <dak@gnu.org>
Fri, 4 Mar 2016 11:37:16 +0000 (12:37 +0100)
lily/parser.yy

index e85aa336e5020f67414ec68fce28e9960979647d..1cbb98f35f8860efd2fda3416212df5b3186e547 100644 (file)
@@ -3239,18 +3239,18 @@ dots:
 multipliers:
        /* empty */
        {
-               $$ = SCM_UNSPECIFIED;
+               $$ = SCM_UNDEFINED;
        }
        | multipliers '*' UNSIGNED
        {
-               if (scm_is_number ($1))
+               if (!SCM_UNBNDP ($1))
                        $$ = scm_product ($1, $3);
                else
                        $$ = $3;
        }
        | multipliers '*' FRACTION
        {
-               if (scm_is_number ($1))
+               if (!SCM_UNBNDP ($1))
                        $$ = scm_product ($1, scm_divide (scm_car ($3),
                                                          scm_cdr ($3)));
                else
@@ -4104,6 +4104,14 @@ make_music_from_simple (Lily_parser *parser, Input loc, SCM simple)
                        n->set_property ("pitch", simple);
                        return n->unprotect ();
                }
+               SCM d = simple;
+               if (scm_is_integer (simple))
+                       d = make_duration (simple);
+               if (unsmob<Duration> (d)) {
+                       Music *n = MY_MAKE_MUSIC ("NoteEvent", loc);
+                       n->set_property ("duration", d);
+                       return n->unprotect ();
+               }
                return simple;
        } else if (parser->lexer_->is_lyric_state ()) {
                if (Text_interface::is_markup (simple))