source file of the GNU LilyPond music typesetter
- (c) 2001--2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ (c) 2001--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
*/
#include "program-option.hh"
using namespace std;
#include "string-convert.hh"
-#include "protected-scm.hh"
#include "parse-scm.hh"
#include "warn.hh"
#include "main.hh"
*/
bool do_internal_type_checking_global;
-Protected_scm option_hash_;
+static SCM option_hash;
void internal_set_option (SCM var, SCM val)
{
- scm_hashq_set_x (option_hash_, var, val);
+ scm_hashq_set_x (option_hash, var, val);
if (0)
;
static String
get_help_string ()
{
- SCM alist = ly_hash2alist (option_hash_);
+ SCM alist = ly_hash2alist (option_hash);
SCM convertor = ly_lily_module_constant ("scm->string");
Array<String> opts;
(SCM sym, SCM val, SCM description),
"Add a program option @var{sym} with default @var{val}.")
{
- if (scm_hash_table_p (option_hash_) == SCM_BOOL_F)
- option_hash_ = scm_c_make_hash_table (11);
-
+ if (!option_hash)
+ {
+ option_hash = scm_permanent_object (scm_c_make_hash_table (11));
+ }
SCM_ASSERT_TYPE (scm_is_symbol (sym), sym, SCM_ARG1, __FUNCTION__, "symbol");
SCM_ASSERT_TYPE (scm_is_string (description), description,
SCM_ARG3, __FUNCTION__, "string");
val = scm_from_bool (!to_boolean (val));
}
- SCM handle = scm_hashq_get_handle (option_hash_, var);
+ SCM handle = scm_hashq_get_handle (option_hash, var);
if (handle == SCM_BOOL_F)
warning (_f ("no such internal option: %s", varstr.to_str0 ()));
return SCM_UNSPECIFIED;
}
+LY_DEFINE (ly_command_line_verbose_p, "ly:command-line-verbose?", 0, 0, 0, (),
+ "Was be_verbose_global set?")
+{
+ return scm_from_bool (be_verbose_global);
+}
+
LY_DEFINE (ly_get_option, "ly:get-option", 1, 0, 0, (SCM var),
"Get a global option setting.")
{
SCM_ASSERT_TYPE (scm_is_symbol (var), var,
SCM_ARG1, __FUNCTION__, "symbol");
- return scm_hashq_ref (option_hash_, var, SCM_BOOL_F);
+ return scm_hashq_ref (option_hash, var, SCM_BOOL_F);
}