lilypond-user
[Top][All Lists]
Advanced

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

Re: problems with user-defined command line options


From: Marc Hohl
Subject: Re: problems with user-defined command line options
Date: Sat, 24 Dec 2011 09:13:24 +0100
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.24) Gecko/20111109 Thunderbird/3.1.16

> cc'ing to -devel, perhaps it is a bug?

Am 24.12.2011 00:41, schrieb -Eluze:
hi

    Marc Hohl wrote:

    Hello list,

    I have some files with songs where I want to switch the slurs on
    and off.

    After searching the docs, I came up with this:

    optional-slurs.ly
    ==================

    \version "2.15.23"

    #(ly:add-option 'no-slurs #f
            "Whether to print a slur or not.")

    slurSwitch = #(define-music-function (parser location) ()
         (if (eq? #t (ly:get-option 'no-slurs))
             #{ \override Slur #'transparent = ##t #}
             #{#}))

    test = {
        \slurSwitch
        c2 ( d )
    }

    \score { \test }

    ==================

    If I call it with

      >  lilypond optional-slurs.ly

    everything is fine; when I use

      >  lilypind -d no-slurs optional-slurs.ly

    I get a warning that option 'no-slurs is
    undefined, and the slurs are still visible.

    Searching in the archives showed

    http://lists.gnu.org/archive/html/lilypond-devel/2009-11/msg00135.html
    http://lists.gnu.org/archive/html/lilypond-devel/2008-02/msg00080.html

    with no apparent solution.

i am certainly not a scheme expert but from the Application Usage i can see the option -d expects a variable name and a value:

/-dvar=val/

Hi Eluze,

thanks for your answer!

The extending manual says, however,

http://lilypond.org/doc/v2.15/Documentation/extending/functions-without-arguments

that I can use -d var as a boolean switch, so either the manual is wrong or something
has changed in lilypond's externals.

if you invoke lilypond with *-dvar=#t yourFile.ly *you can take over this value e.g. as

slurSwitch = #(define-music-function (parser location) ()
     (if (eqv? #t (ly:get-option 'var))
         #{ \override Slur #'transparent = ##t #}
         #{ #})
         )
test = {
    \slurSwitch
    c2 ( d )
}
\score { \test }

Ok, this works indeed - but the error message abound the unknown variable var
persists even if I define the option via ly:add-option

So something seems to be wrong - is this a bug?

Thanks,

Marc



reply via email to

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