]> git.donarmstrong.com Git - lilypond.git/commitdiff
Issue 2972: Adding StringNumber 0 in TabStaff crashes
authorDavid Kastrup <dak@gnu.org>
Tue, 27 Nov 2012 01:42:20 +0000 (02:42 +0100)
committerDavid Kastrup <dak@gnu.org>
Tue, 4 Dec 2012 08:02:43 +0000 (09:02 +0100)
This does not check against string numbers that are too large, however.

scm/translation-functions.scm

index aef616942518fa09652b9837dc9001f141fba6e0..a0b39edfe4d6cff355b8ed21eb7ecd4965fd2f14 100644 (file)
@@ -282,6 +282,12 @@ dot placement entries."
     (length (filter (lambda (x) (not (null? x)))
                     art-list)))
 
+  (define (string-number event)
+    "Get the string-number from @var{event}.  Return @var{#f}
+if no string-number is present."
+    (let ((num (ly:event-property event 'string-number)))
+      (and (integer? num) (positive? num) num)))
+
   (define (determine-frets-and-strings
            notes
            defined-strings
@@ -325,14 +331,6 @@ if no fingering is present."
             articulations)
        finger-found))
 
-    (define (string-number event)
-      "Get the string-number from @var{event}.  Return @var{#f}
-if no string-number is present."
-      (let ((num (ly:event-property event 'string-number)))
-       (if (number? num)
-         num
-         #f)))
-
     (define (delete-free-string string)
       (if (number? string)
        (set! free-strings
@@ -519,7 +517,7 @@ chords.  Returns a placement-list."
          (defined-strings (map (lambda (x)
                                  (if (null? x)
                                      x
-                                     (ly:event-property x 'string-number)))
+                                     (or (string-number x) '())))
                                (car specified-info)))
          (defined-fingers (map (lambda (x)
                                  (if (null? x)