]> git.donarmstrong.com Git - lilypond.git/commitdiff
Issue 4656: Let concat-markup fold \char calls into surrounding strings
authorDavid Kastrup <dak@gnu.org>
Mon, 9 Nov 2015 00:03:32 +0000 (01:03 +0100)
committerDavid Kastrup <dak@gnu.org>
Fri, 13 Nov 2015 11:41:26 +0000 (12:41 +0100)
This results in

    \markup \column \box { AVA
                           \concat { A V A }
                           \concat { A \char #(char->integer #\V) A }
                         }

using the same kerning in all three lines while previously the third
line differed.

scm/define-markup-commands.scm

index 0ca1042e8df936df77100711ee4831bc7dea6497..6aae0be7801c3a93c28ea9d6c9cf0bf1b9c054ba 100644 (file)
@@ -1405,11 +1405,13 @@ equivalent to @code{\"fi\"}.
 @end lilypond"
   (define (concat-string-args arg-list)
     (fold-right (lambda (arg result-list)
-                  (let ((result (if (pair? result-list)
-                                    (car result-list)
-                                    '())))
-                    (if (and (pair? arg) (eqv? (car arg) simple-markup))
-                        (set! arg (cadr arg)))
+                  (let ((result (and (pair? result-list)
+                                     (car result-list))))
+                    (cond ((not (pair? arg)))
+                          ((eq? (car arg) simple-markup)
+                           (set! arg (cadr arg)))
+                          ((eq? (car arg) char-markup)
+                           (set! arg (ly:wide-char->utf-8 (cadr arg)))))
                     (if (and (string? result) (string? arg))
                         (cons (string-append arg result) (cdr result-list))
                         (cons arg result-list))))