From: David Kastrup Date: Wed, 6 Feb 2013 11:20:37 +0000 (+0100) Subject: Issue 3157: Remove code duplication for cue clefs X-Git-Tag: release/2.17.13-1~10^2~6 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=98f429e2297b8310470d2f7f9694c005ff78d5e1;p=lilypond.git Issue 3157: Remove code duplication for cue clefs --- diff --git a/scm/parser-clef.scm b/scm/parser-clef.scm index b2c6dc2084..56284f9c4d 100644 --- a/scm/parser-clef.scm +++ b/scm/parser-clef.scm @@ -170,74 +170,30 @@ (define-public (make-cue-clef-set clef-name) "Generate the clef setting commands for a cue clef with name @var{clef-name}." - (define (make-prop-set props) - (let ((m (make-music 'PropertySet))) - (map (lambda (x) (set! (ly:music-property m (car x)) (cdr x))) props) - m)) - (let ((e '()) - (c0 0) - (oct 0) - (style 'default) - (match (string-match "^(.*)([_^])([^0-9a-zA-Z]*)([1-9][0-9]*)([^0-9a-zA-Z]*)$" clef-name))) - (if match - (begin - (set! clef-name (match:substring match 1)) - (set! oct - (* (if (equal? (match:substring match 2) "^") -1 1) - (- (string->number (match:substring match 4)) 1))) - (set! style - (cond ((equal? (match:substring match 3) "(") 'parenthesized) - ((equal? (match:substring match 3) "[") 'bracketed) - (else style))))) - (set! e (assoc-get clef-name supported-clefs)) - (if e - (let* ((prop-list `(((symbol . cueClefGlyph) (value . ,(car e))) - ((symbol . middleCCuePosition) - (value . ,(+ oct - (cadr e) - (assoc-get (car e) c0-pitch-alist)))) - ((symbol . cueClefPosition) (value . ,(cadr e))) - ((symbol . cueClefOctavation) (value . ,(- oct))))) - (prop-list (if (eq? style 'default) - prop-list - (append - prop-list - `(((symbol . cueClefOctavationStyle) - (value . ,style)))))) - (musics (map make-prop-set prop-list)) - (recalc-mid-C (make-music 'ApplyContext)) - (seq (make-music 'SequentialMusic - 'elements (append musics (list recalc-mid-C)))) - (csp (make-music 'ContextSpeccedMusic))) - (set! (ly:music-property recalc-mid-C 'procedure) ly:set-middle-C!) - (context-spec-music seq 'Staff)) - (begin - (ly:warning (_ "unknown clef type `~a'") clef-name) - (ly:warning (_ "supported clefs: ~a") - (string-join - (sort (map car supported-clefs) string