From: David Kastrup Date: Wed, 17 Feb 2016 13:43:52 +0000 (+0100) Subject: Let make_music_from_simple accept numbers/durations X-Git-Tag: release/2.19.38-1~17^2~4 X-Git-Url: https://git.donarmstrong.com/lilypond.git?p=lilypond.git;a=commitdiff_plain;h=0f99cb143af51c4106207dec0689f7e755fa769f Let make_music_from_simple accept numbers/durations --- diff --git a/lily/parser.yy b/lily/parser.yy index e85aa336e5..1cbb98f35f 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -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 (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))