[Forgot the list, apologies!] Le 14/01/2023 à 00:52, David Zelinsky a écrit :
In { \defineBarLine bartype #'(end begin span) } when `span' is `#f', only the first character of `bartype' is used. Here is an example:----- \version "2.24.0" { \defineBarLine ";|" #'(#t #t #f) a'1 \bar ";|" b'1 \bar } ----- This produces a single dotted barline, rather than a dotted-solid combination as expected. The explanation is in the definition of bar-line::compound-bar-line on line 710 of bar-line.scm (the version in 2.24.0, though the current version in git repository has the same feature). In the initializations: (let* ... (span-glyph (get-span-glyph bar-glyph)) (span-glyph-list (string->string-list span-glyph)) when span-glyph is #f, string->string-list returns '(""), a list of length one. Then further down, the for-each loops over the pair bar-glyph-list span-glyph-list and so does just one pass. A reasonable fix seems to be to add these two lines to the definition of get-span-glyph, right before the existing "if" statement (line 59 in version 2.24.0): (if (and (boolean? span-glyph) (not span-glyph)) (set! span-glyph "")) [Maybe there's a better way to test if span-glyph is #f --- my knowledge of scheme is pretty rudimentary!] Then when span is #f, get-span-glyph will return a list of spaces of length equal to the length of bar-glyph, which will do the right thing. This doesn't have any effect on span-bar::compound-bar-line, which does not use get-span-glyph, but calls (assoc-get bar-glyph span-bar-glyph-alist) directly.
Thanks, added as https://gitlab.com/lilypond/lilypond/-/issues/6521 By the way, would you be willing to submit the fix yourself? Readhttps://lilypond.org/doc/v2.25/Documentation/contributor/working-with-source-code
on how to proceed.
OpenPGP_signature
Description: OpenPGP digital signature