X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fprogram-option-scheme.cc;h=71538d69e699eed04babfbcd3d44fac8e710e019;hb=3093b6e2e6233fd007fb8095880c102fdd4bce45;hp=1071d14d7d7f43497a23f0e666df906406b12326;hpb=84e144718964f20c48ff8dccaea8de9741df07e4;p=lilypond.git diff --git a/lily/program-option-scheme.cc b/lily/program-option-scheme.cc index 1071d14d7d..71538d69e6 100644 --- a/lily/program-option-scheme.cc +++ b/lily/program-option-scheme.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2001--2011 Han-Wen Nienhuys + Copyright (C) 2001--2014 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -37,11 +37,6 @@ bool debug_page_breaking_scoring; bool music_strings_to_paths; bool relative_includes; -/* - Backwards compatibility. -*/ -bool lily_1_8_relative = false; -bool lily_1_8_compatibility_used = false; bool profile_property_accesses = false; /* crash if internally the wrong type is used for a grob property. @@ -55,81 +50,76 @@ void internal_set_option (SCM var, SCM val) { + string varstr = robust_symbol2string (var, ""); + bool valbool = to_boolean (val); + SCM val_scm_bool = scm_from_bool (valbool); if (0) ; - else if (var == ly_symbol2scm ("profile-property-accesses")) - { - profile_property_accesses = to_boolean (val); - val = scm_from_bool (to_boolean (val)); - } - else if (var == ly_symbol2scm ("point-and-click")) + else if (varstr == "profile-property-accesses") { - point_and_click_global = to_boolean (val); - val = scm_from_bool (to_boolean (val)); + profile_property_accesses = valbool; + val = val_scm_bool; } - else if (var == ly_symbol2scm ("protected-scheme-parsing")) + else if (varstr == "protected-scheme-parsing") { - parse_protect_global = to_boolean (val); - val = scm_from_bool (to_boolean (val)); + parse_protect_global = valbool; + val = val_scm_bool; } - else if (var == ly_symbol2scm ("check-internal-types")) + else if (varstr == "check-internal-types") { - do_internal_type_checking_global = to_boolean (val); - val = scm_from_bool (to_boolean (val)); + do_internal_type_checking_global = valbool; + val = val_scm_bool; } - else if (var == ly_symbol2scm ("debug-gc-assert-parsed-dead")) + else if (varstr == "debug-gc-assert-parsed-dead") { - parsed_objects_should_be_dead = to_boolean (val); - val = scm_from_bool (parsed_objects_should_be_dead); + parsed_objects_should_be_dead = valbool; + val = val_scm_bool; } - else if (var == ly_symbol2scm ("safe")) + else if (varstr == "safe") { - be_safe_global = to_boolean (val); - val = scm_from_bool (be_safe_global); + be_safe_global = valbool; + val = val_scm_bool; } - else if (var == ly_symbol2scm ("old-relative")) + else if (varstr == "strict-infinity-checking") { - lily_1_8_relative = to_boolean (val); - /* Needs to be reset for each file that uses this option. */ - lily_1_8_compatibility_used = to_boolean (val); - val = scm_from_bool (to_boolean (val)); + strict_infinity_checking = valbool; + val = val_scm_bool; } - else if (var == ly_symbol2scm ("strict-infinity-checking")) + else if (varstr == "debug-skylines") { - strict_infinity_checking = to_boolean (val); - val = scm_from_bool (to_boolean (val)); + debug_skylines = valbool; + val = val_scm_bool; } - else if (var == ly_symbol2scm ("debug-skylines")) + else if (varstr == "debug-property-callbacks") { - debug_skylines = to_boolean (val); - val = scm_from_bool (to_boolean (val)); + debug_property_callbacks = valbool; + val = val_scm_bool; } - else if (var == ly_symbol2scm ("debug-property-callbacks")) + else if (varstr == "debug-page-breaking-scoring") { - debug_property_callbacks = to_boolean (val); - val = scm_from_bool (to_boolean (val)); + debug_page_breaking_scoring = valbool; + val = val_scm_bool; } - else if (var == ly_symbol2scm ("debug-page-breaking-scoring")) - { - debug_page_breaking_scoring = to_boolean (val); - val = scm_from_bool (to_boolean (val)); - } - else if (var == ly_symbol2scm ("datadir")) + else if (varstr == "datadir") { /* ignore input value. */ val = ly_string2scm (lilypond_datadir); } - else if (var == ly_symbol2scm ("relative-includes")) + else if (varstr == "relative-includes") + { + relative_includes = valbool; + val = val_scm_bool; + } + else if (varstr == "warning-as-error") { - relative_includes = to_boolean (val); - val = scm_from_bool (to_boolean (val)); + /* warning_as_error is defined in flower/warn.cc */ + warning_as_error = valbool; + val = val_scm_bool; } - else if (var == ly_symbol2scm ("warning-as-error")) - val = scm_from_bool (to_boolean (val)); - else if (var == ly_symbol2scm ("music-strings-to-paths")) + else if (varstr == "music-strings-to-paths") { - music_strings_to_paths = to_boolean (val); - val = scm_from_bool (to_boolean (val)); + music_strings_to_paths = valbool; + val = val_scm_bool; } scm_hashq_set_x (option_hash, var, val); @@ -185,11 +175,12 @@ get_help_string () return help; } -LY_DEFINE (ly_option_usage, "ly:option-usage", 0, 0, 0, (), - "Print @code{ly:set-option} usage.") +LY_DEFINE (ly_option_usage, "ly:option-usage", 0, 1, 0, (SCM port), + "Print @code{ly:set-option} usage. Optional @var{port} argument" + "for the destination defaults to current output port.") { - string help = get_help_string (); - puts (help.c_str ()); + SCM str = scm_from_locale_string (get_help_string ().c_str ()); + scm_write_line (str, port); return SCM_UNSPECIFIED; } @@ -220,7 +211,7 @@ LY_DEFINE (ly_set_option, "ly:set-option", 1, 1, 0, (SCM var, SCM val), if (val == SCM_UNDEFINED) val = SCM_BOOL_T; - string varstr = ly_scm2string (scm_symbol_to_string (var)); + string varstr = robust_symbol2string (var, ""); if (varstr.substr (0, 3) == string ("no-")) { var = ly_symbol2scm (varstr.substr (3, varstr.length () - 3).c_str ());