bogus warning with defineBarLine

David Zelinsky <[email protected]>
Newsgroups gmane.comp.gnu.lilypond.bugs
Message-ID <[email protected]>
When `\defineBarLine` is called with first argument having an annotation
and span-bar is `#t`, LilyPond confusingly warns that annotation is only
allowed in first argument.  The pdf output is correct.

Example:

```
% cat file.ly
\version "2.25.0"
\fixed c' {
  \defineBarLine  "|-foo"  #'(#f #f #t)
  a1 \bar "|-foo" a1
}

% lilypond file
GNU LilyPond 2.25.2 (running Guile 2.2)
Processing `file.ly'
Parsing...
warning: Annotation '|-foo' is allowed in the first argument of a bar line definition only.
Interpreting music...
Preprocessing graphical objects...
Finding the ideal number of pages...
Fitting music on 1 page...
Drawing systems...
Converting to `file.pdf'...
Success: compilation successfully completed
```

The culprit is in definition of `define-bar-line` in `bar-line.scm`:

```
  ;; #t means copy the mid-line glyph
  (when (eq? eol-glyph #t)
    (set! eol-glyph bar-glyph))
  (when (eq? bol-glyph #t)
    (set! bol-glyph bar-glyph))
  (when (eq? span-glyph #t)
    (set! span-glyph bar-glyph))

  ;; the last argument may not include annotations
  (check-for-annotation span-glyph)
```

The `set!` expressions should wrap `bar-glyph` in `strip-string-annotation`.



I can upload a patch.

Is there any benefit in adding a regression test?  It compiles
correctly, it's just the warning that is bogus.  Is this detected in
regressing testing?


-David
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.