+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"
+ "@item old-relative-used\n"
+ "Report whether old-relative compatibility mode is necessary\n"
+ "@item point-and-click\n"
+ "Report whether point & click is switched on.\n"
+ "@item old-relative\n"
+ "Report whether old-relative compatibility mode is used\n"
+ "@item verbose\n"
+ "Report whether we are running in verbose mode\n"
+ "@item resolution\n"
+ "Resolution for the PNG output."
+ "@end table\n"
+ "\n")
+{
+ SCM o = SCM_UNSPECIFIED;
+
+ if (var == ly_symbol2scm ("safe")) // heavily used; put in front.
+ o = ly_bool2scm (be_safe_global);
+ 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 (be_verbose_global);
+ else if (var == ly_symbol2scm ("resolution"))
+ o = scm_from_int (preview_resolution_global);
+ else
+ {
+ if (scm_is_symbol (var))
+ var = scm_symbol_to_string (var);