lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 13/16] Change \accidentalStyle to get a symbol list as argument


From: David Kastrup
Subject: [PATCH 13/16] Change \accidentalStyle to get a symbol list as argument
Date: Tue, 9 Oct 2012 20:59:58 +0200

This changes the syntax of \accidentalStyle to accept specs like
Voice.piano-cautionary .
---
 ly/property-init.ly |   29 +++++++++++++----------------
 1 file changed, 13 insertions(+), 16 deletions(-)

diff --git a/ly/property-init.ly b/ly/property-init.ly
index 3a88098..28a13e3 100644
--- a/ly/property-init.ly
+++ b/ly/property-init.ly
@@ -13,24 +13,21 @@ defaultNoteHeads =
    (_i "Revert to the default note head style.")
    (revert-head-style '(NoteHead TabNoteHead)))
 
-#(define (context-name? c)
-  "A stopgap measure until dotted lists become available as arguments.
-Distinguish context names from accidental styles by virtue of their
-first letter being uppercase."
-  (and (symbol? c)
-   (char-upper-case? (string-ref (symbol->string c) 0))))
-
 accidentalStyle =
 #(define-music-function
-   (parser location context style) ((context-name?) string?)
-   (_i "Set accidental style to @var{style}, a string.  If an optional
address@hidden symbol is given, e.g. @code{#'Staff} or @code{#'Voice},
-the settings are applied to that context.  Otherwise, the context
-defaults to @samp{Staff}, except for piano styles, which use
address@hidden as a context." )
-   (if context
-       (set-accidental-style (string->symbol style) context)
-       (set-accidental-style (string->symbol style))))
+   (parser location style) (symbol-list?)
+   (_i "Set accidental style to symbol list @var{style} in the form
address@hidden  If @var{style} has a form like
address@hidden, the settings are applied to that
+context.  Otherwise, the context defaults to @samp{Staff}, except for
+piano styles, which use @samp{GrandStaff} as a context." )
+   (case (length style)
+    ((1) (set-accidental-style (car style)))
+    ((2) (set-accidental-style (cadr style) (car style)))
+    (else
+     (ly:parser-parse-error parser (_ "not an accidental style")
+      location)
+     (make-music 'Music))))
 
 %% arpeggios
 
-- 
1.7.9.5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]