]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/lily-parser-scheme.cc
Fix beamlet pointing wrong way when tuplet 16th beamed with 8th (issue 2113)
[lilypond.git] / lily / lily-parser-scheme.cc
index b433bf9ec48217ae42aa3926c68c2574cbc770d5..180d8527b158fb1bc734955b1b9d4f8893ad0390 100644 (file)
@@ -148,9 +148,9 @@ LY_DEFINE (ly_parser_lexer, "ly:parser-lexer",
 LY_DEFINE (ly_parser_clone, "ly:parser-clone",
            1, 1, 0, (SCM parser_smob, SCM closures),
            "Return a clone of @var{parser-smob}.  An association list"
-" of port positions to closures can be specified in @var{closures}"
-" in order to have @code{$} and @code{#} interpreted in their original"
-" lexical environment.")
+           " of port positions to closures can be specified in @var{closures}"
+           " in order to have @code{$} and @code{#} interpreted in their original"
+           " lexical environment.")
 {
   LY_ASSERT_SMOB (Lily_parser, parser_smob, 1);
   Lily_parser *parser = unsmob_lily_parser (parser_smob);
@@ -215,45 +215,41 @@ LY_DEFINE (ly_parser_parse_string, "ly:parser-parse-string",
 
 LY_DEFINE (ly_parse_string_expression, "ly:parse-string-expression",
            2, 2, 0, (SCM parser_smob, SCM ly_code, SCM filename,
-                    SCM line),
+                     SCM line),
            "Parse the string @var{ly-code} with @var{parser-smob}."
-" Return the contained music expression."
-" @var{filename} and @var{line} are optional source indicators.")
+           " Return the contained music expression."
+           " @var{filename} and @var{line} are optional source indicators.")
 {
   LY_ASSERT_SMOB (Lily_parser, parser_smob, 1);
   Lily_parser *parser = unsmob_lily_parser (parser_smob);
   LY_ASSERT_TYPE (scm_is_string, ly_code, 2);
   string fn;
-  if (SCM_UNBNDP (filename))
+  if (SCM_UNBNDP (filename) || !scm_is_string (filename))
     fn = "<string>";
-  else {
-    LY_ASSERT_TYPE (scm_is_string, filename, 3);
+  else
     fn = ly_scm2string (filename);
-  }
   int ln;
-  if (SCM_UNBNDP (line))
+  if (SCM_UNBNDP (line) || !scm_is_integer (line))
     ln = 0;
-  else {
-    LY_ASSERT_TYPE (scm_is_integer, line, 4);
+  else
     ln = scm_to_int (line);
-  }
 
   if (!parser->lexer_->is_clean ())
     {
       parser->parser_error (_ ("ly:parse-string-expression is only valid with a new parser."
-                              "  Use ly:parser-include-string instead."));
+                               "  Use ly:parser-include-string instead."));
       return SCM_UNSPECIFIED;
     }
 
   return parser->parse_string_expression (ly_scm2string (ly_code),
-                                         fn, ln);
+                                          fn, ln);
 }
 
 LY_DEFINE (ly_parser_include_string, "ly:parser-include-string",
            2, 0, 0, (SCM parser_smob, SCM ly_code),
            "Include the string @var{ly-code} into the input stream"
            " for @var{parser-smob}.  Can only be used in immediate"
-          " Scheme expressions (@code{$} instead of @code{#}).")
+           " Scheme expressions (@code{$} instead of @code{#}).")
 {
   LY_ASSERT_SMOB (Lily_parser, parser_smob, 1);
   Lily_parser *parser = unsmob_lily_parser (parser_smob);