2 scm-option.cc -- implement option setting from Scheme
4 source file of the GNU LilyPond music typesetter
6 (c) 2001--2002 Han-Wen Nienhuys <hanwen@cs.uu.nl>
13 #include "lily-guile.hh"
14 #include "scm-option.hh"
18 This interface to option setting is meant for setting options are
19 useful to a limited audience. The reason for this interface is that
20 making command line options clutters up the command-line option name
24 preferably, also dont use TESTING_LEVEL_GLOBAL, since it defeats
25 another purpose of this very versatile interface, which is to
26 support multiple debug/testing options concurrently.
31 /* Write midi as formatted ascii stream? */
32 bool midi_debug_global_b;
34 /* General purpose testing flag */
35 int testing_level_global;
38 crash if internally the wrong type is used for a grob property.
40 bool internal_type_checking_global_b;
46 @item -T,--no-timestamps
47 don't timestamp the output
50 Switch on any experimental features. Not for general public use.
55 set_lily_option (SCM var, SCM val)
59 lilypond -e "(set-lily-option 'help 0)"
61 if (var == ly_symbol2scm ("help"))
63 cout << _("lilypond -e EXPR means
65 evalute EXPR as Scheme after init.scm has been read. In particular,
66 the function set-lily-option allows for access to some internal
69 (set-lily-option SYMBOL VAL)
71 possible options for SYMBOL are :
74 cout << " help (any-symbol)"<<endl;
75 cout << " internal-type-checking (boolean)"<<endl;
76 cout << " midi-debug (boolean)"<<endl;
77 cout << " testing-level (int)"<<endl;
81 else if (var == ly_symbol2scm ("midi-debug"))
83 midi_debug_global_b = to_boolean (val);
85 else if (var == ly_symbol2scm ("testing-level"))
87 testing_level_global = gh_scm2int (val);
89 else if (var == ly_symbol2scm ("internal-type-checking"))
91 internal_type_checking_global_b = to_boolean (val);
93 else if (var == ly_symbol2scm ("find-old-relative"))
96 Seems to have been broken for some time!
98 @item -Q,--find-old-relative
99 show all changes needed to convert a file to relative octave syntax.
109 warning (_("Unknown internal option!"));
113 return SCM_UNSPECIFIED;
120 scm_c_define_gsubr ("set-lily-option", 2, 0, 0, (Scheme_function_unknown)set_lily_option);
124 ADD_SCM_INIT_FUNC (init_functions_sopt, init_functions);