X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fscm-option.cc;h=5da31ef2408e826859cccde458196c454a4ddbb0;hb=dcf803f51a8621e64670930f89e9e02d845fe598;hp=de3deb00051dc9463fe2c0259324b7356d59e7ce;hpb=fd58a98a46a3def26b80a895f1f7b81c92590fc3;p=lilypond.git diff --git a/lily/scm-option.cc b/lily/scm-option.cc index de3deb0005..5da31ef240 100644 --- a/lily/scm-option.cc +++ b/lily/scm-option.cc @@ -1,10 +1,10 @@ -/* +/* scm-option.cc -- implement option setting from Scheme - + source file of the GNU LilyPond music typesetter - - (c) 2001--2003 Han-Wen Nienhuys - + + (c) 2001--2004 Han-Wen Nienhuys + */ #include @@ -25,7 +25,7 @@ preferably, also dont use TESTING_LEVEL_GLOBAL, since it defeats another purpose of this very versatile interface, which is to support multiple debug/testing options concurrently. - + */ @@ -46,27 +46,25 @@ bool lily_1_8_compatibility_used = false; */ bool internal_type_checking_global_b; + +/* + What is this function for ? + */ LY_DEFINE (ly_option_usage, "ly:option-usage", 0, 0, 0, (SCM), - "Print ly-set-option usage") -{ + "Print ly:set-option usage") +{ printf ( _("lilypond -e EXPR means:").to_str0 ()); puts (""); printf (_ (" Evalute the Scheme EXPR before parsing any .ly files.").to_str0 ()); puts (""); printf (_ (" Multiple -e options may be given, they will be evaluated sequentially.").to_str0 ()); puts (""); - printf (_(" The function ly-set-option allows for access to some internal variables.").to_str0 ()); + printf (_(" The function ly:set-option allows for access to some internal variables.").to_str0 ()); puts ("\n"); - printf (_ ("Usage: lilypond -e \"(ly-set-option SYMBOL VAL)\"").to_str0 ()); + printf (_ ("Usage: lilypond -e \"(ly:set-option SYMBOL VAL)\"").to_str0 ()); puts ("\n"); - printf (_ ("Where SYMBOL VAL pair is any of:").to_str0 ()); - puts (""); - printf ( " help ANY-SYMBOL\n" - " internal-type-checking BOOLEAN\n" - " midi-debug BOOLEAN\n" - " parse-protect BOOLEAN\n" - " testing-level INTEGER\n"); - + printf (_ ("Use help as SYMBOL to get online help.").to_str0 ()); + exit (0); return SCM_UNSPECIFIED; } @@ -77,7 +75,11 @@ LY_DEFINE (ly_option_usage, "ly:option-usage", 0, 0, 0, (SCM), don't timestamp the output @item -t,--test -Switch on any experimental features. Not for general public use. */ +Switch on any experimental features. Not for general public use. + +*/ + + LY_DEFINE (ly_set_option, "ly:set-option", 1, 1, 0, (SCM var, SCM val), "Set a global option value. Supported options include\n" "\n" @@ -92,56 +94,46 @@ LY_DEFINE (ly_set_option, "ly:set-option", 1, 1, 0, (SCM var, SCM val), "If protection is switched on, errors in inline scheme are caught in the parser. \n" "If off, GUILE will halt on errors, and give a stack trace. Default is protected evaluation. \n" "@item old-relative\n" -"Relative for simultaneous functions similar to chord syntax\n" +"Relative for simultaneous music functions similar to chord syntax\n" "@item new-relative\n" -"Relative for simultaneous functions similar to sequential music\n" +"Relative for simultaneous music functions similar to sequential music\n" "@end table\n" "\n" "This function is useful to call from the command line: @code{lilypond -e\n" -"\"(ly-set-option 'midi-debug #t)\"}.\n") +"\"(ly:set-option 'midi-debug #t)\"}.\n") { if (val == SCM_UNDEFINED) val = SCM_BOOL_T; if (var == ly_symbol2scm ("help")) - { - /* lilypond -e "(ly-set-option 'help #t)" */ - ly_option_usage (SCM_EOL); - } + /* lilypond -e "(ly:set-option 'help #t)" */ + ly_option_usage (SCM_EOL); else if (var == ly_symbol2scm ("midi-debug")) - { - midi_debug_global_b = to_boolean (val); - } + midi_debug_global_b = to_boolean (val); else if (var == ly_symbol2scm ("testing-level")) - { - testing_level_global = gh_scm2int (val); - } + testing_level_global = scm_to_int (val); else if (var == ly_symbol2scm ("parse-protect" )) - { - parse_protect_global = to_boolean(val); - } + parse_protect_global = to_boolean (val); else if (var == ly_symbol2scm ("internal-type-checking")) - { - internal_type_checking_global_b = to_boolean (val); - } + internal_type_checking_global_b = to_boolean (val); else if (var == ly_symbol2scm ("old-relative")) { lily_1_8_relative = true; - lily_1_8_compatibility_used = false; + /* Needs to be reset for each file that uses this option. */ + lily_1_8_compatibility_used = false; } else if (var == ly_symbol2scm ("new-relative")) - { - lily_1_8_relative = false; - } + lily_1_8_relative = false; else { - warning (_("Unknown internal option!")); + if (scm_is_symbol (var)) + var = scm_symbol_to_string (var); + + warning (_f ("No such internal option: %s", ly_scm2string (var))); } - return SCM_UNSPECIFIED; } - LY_DEFINE (ly_get_option, "ly:get-option", 1, 0, 0, (SCM var), "Get a global option setting. Supported options include\n" "@table @code\n" @@ -154,22 +146,17 @@ LY_DEFINE (ly_get_option, "ly:get-option", 1, 0, 0, (SCM var), "@end table\n" "\n") { - if (var == ly_symbol2scm ("old-relative-used")) - { - return gh_bool2scm (lily_1_8_compatibility_used); - } - if (var == ly_symbol2scm ("old-relative")) - { - return gh_bool2scm (lily_1_8_relative); - } - if (var == ly_symbol2scm ("verbose")) - { - return gh_bool2scm (verbose_global_b); - } + SCM o = SCM_UNSPECIFIED; + + if (var == ly_symbol2scm ("safe")) // heavily used; put in front. + o = ly_bool2scm (safe_global_b); + else if (var == ly_symbol2scm ("old-relative-used")) + o = ly_bool2scm (lily_1_8_compatibility_used); + else if (var == ly_symbol2scm ("old-relative")) + o = ly_bool2scm (lily_1_8_relative); + else if (var == ly_symbol2scm ("verbose")) + o = ly_bool2scm (verbose_global_b); else - { - warning (_("Unknown internal option!")); - } - - return SCM_UNSPECIFIED; + warning (_f ("No such internal option: %s", ly_scm2string (var))); + return o; }