]> git.donarmstrong.com Git - lilypond.git/commitdiff
* input/no-notation/display-lily-tests.ly: remove
authorNicolas Sceaux <nicolas.sceaux@free.fr>
Tue, 16 Aug 2005 18:30:32 +0000 (18:30 +0000)
committerNicolas Sceaux <nicolas.sceaux@free.fr>
Tue, 16 Aug 2005 18:30:32 +0000 (18:30 +0000)
display-lily-init call.

* ly/music-functions-init.ly (displayLilyMusic): move
display-lily-init call at top level, so that the user should not
have to call it.

* scm/define-music-display-methods.scm (note-name->lily-string):
retrieve note names directly from pitchnames using new function `rassoc'.
(display-lily-init): note names list construction removed.

ChangeLog
input/no-notation/display-lily-tests.ly
ly/music-functions-init.ly
scm/define-music-display-methods.scm

index 8799e980a44856510eca258eab88b887a410da38..c4c268f3501e98f77a01189dcd5433c449983931 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2005-08-16  Nicolas Sceaux  <nicolas.sceaux@free.fr>
+
+       * input/no-notation/display-lily-tests.ly: delete
+       display-lily-init call.
+
+       * ly/music-functions-init.ly (displayLilyMusic): move
+       display-lily-init call at top level, so that the user should not
+       have to call it.
+
+       * scm/define-music-display-methods.scm (note-name->lily-string):
+       retrieve note names directly from pitchnames using new function `rassoc'.
+       (display-lily-init): note names list construction removed.
+
 2005-08-16  Han-Wen Nienhuys  <hanwen@xs4all.nl>
 
        * Documentation/topdocs/NEWS.tely (Top): add entry for percent
index c0372f243d82545ccb50886f0d7a6efabd5eb346..60f856cf2b0753951f09d3b8c9b39997edc2e45e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.7.2"
+\version "2.7.6"
 
 #(use-modules (srfi srfi-13)
               (ice-9 format))
 #(define (lily-string->markup str)
    (make-column-markup (string-split str #\NewLine)))
 
-initTest = #(def-music-function (parser location) ()
-             ;; Before using display-lily-music, it must be 
-             ;; inited using display-lily-init
-             (display-lily-init parser)
-             (set! test-number 0)
-             (make-music 'SequentialMusic))
-
 test = #(def-music-function (parser location result-info strings) (string? pair?)
          (display-lily-init parser)
           (let ((input (car strings))
@@ -92,7 +85,6 @@ test = #(def-music-function (parser location result-info strings) (string? pair?
   }
 }
 {
-  \initTest
   %% Sequential music
   \test #"" ##[ { { a b } { c d } } #]                 % SequentialMusic
   \test #"" ##[ << { a b } { c d } >> #]               % SimultaneousMusic
index e6ad784786f45ce57ffe1f9630a89e320f05c158..d211476bbb4e48ffe4ec0b85ba620277a5d8d6d6 100644 (file)
@@ -52,9 +52,9 @@ displayMusic =
 %#(use-modules (scm display-lily))invalid module name for use-syntax ((srfi srfi-39))
 
 #(use-modules (scm display-lily))
+#(display-lily-init parser)
 displayLilyMusic =
 #(def-music-function (parser location music) (ly:music?)
-   (display-lily-init parser)
    (display-lily-music music)
    music)
 
index c6ee2298215fac6b73e41debdef60ee67d4937b0..625e6e933a64d16cd7a6e364771b94030f15fb60 100644 (file)
 
 (define-module (scm display-lily))
 
-
 ;;; `display-lily-init' must be called before using `display-lily-music'. It
 ;;; takes a parser object as an argument.
 (define-public (display-lily-init parser)
   (*parser* parser)
-  (set-note-names! (ly:parser-lookup (*parser*) 'pitchnames))
   #t)
 
 ;;;
 ;;;
 ;;; pitch names
 ;;;
-(define note-names '())
 
-(define (set-note-names! pitchnames)
-  (set! note-names (map-in-order (lambda (name+lypitch)
-                                  (cons (cdr name+lypitch) (car name+lypitch)))
-                                pitchnames)))
+;; It is a pity that there is no rassoc in Scheme.
+(define* (rassoc item alist #:optional (test equal?))
+  (do ((alist alist (cdr alist))
+       (result #f result))
+      ((or result (null? alist)) result)
+    (if (and (car alist) (test item (cdar alist)))
+        (set! result (car alist)))))
 
 (define (note-name->lily-string ly-pitch)
   ;; here we define a custom pitch= function, since we do not want to
@@ -93,9 +93,9 @@
   (define (pitch= pitch1 pitch2)
     (and (= (ly:pitch-notename pitch1) (ly:pitch-notename pitch2))
         (= (ly:pitch-alteration pitch1) (ly:pitch-alteration pitch2))))
-  (let ((result (assoc ly-pitch note-names pitch=))) ;; assoc from srfi-1
+  (let ((result (rassoc ly-pitch (ly:parser-lookup (*parser*) 'pitchnames) pitch=)))
     (if result
-       (cdr result)
+       (car result)
        #f)))
 
 (define (octave->lily-string pitch)