From: Jan Nieuwenhuizen Date: Sun, 18 Aug 2002 15:03:54 +0000 (+0000) Subject: * Documentation/user/GNUmakefile (LILYPOND_BOOK_FLAGS): be anal X-Git-Tag: release/1.6.0~39 X-Git-Url: https://git.donarmstrong.com/lilypond.git?a=commitdiff_plain;h=793925ac7c6a2cd031124beae79d2eda547d127d;p=lilypond.git * Documentation/user/GNUmakefile (LILYPOND_BOOK_FLAGS): be anal with type checks. * Documentation/GNUmakefile (LILYPOND_BOOK_FLAGS): * input/regression/GNUmakefile (LILYPOND_BOOK_FLAGS): * input/test/GNUmakefile (LILYPOND_BOOK_FLAGS): * Documentation/user/invoking.itexi: * lily/scm-option.cc: * lily/main.cc: Debugging options: ly-set-option (was: set-lily-option). * lily/scm-option.cc (ly_option_usage): New function. --- diff --git a/ChangeLog b/ChangeLog index fca07925e5..683eb8087f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +2002-08-18 Jan Nieuwenhuizen + + * Documentation/user/GNUmakefile (LILYPOND_BOOK_FLAGS): be anal + with type checks. + + * Documentation/GNUmakefile (LILYPOND_BOOK_FLAGS): + * input/regression/GNUmakefile (LILYPOND_BOOK_FLAGS): + * input/test/GNUmakefile (LILYPOND_BOOK_FLAGS): + * Documentation/user/invoking.itexi: + * lily/scm-option.cc: + * lily/main.cc: Debugging options: ly-set-option (was: + set-lily-option). + + * lily/scm-option.cc (ly_option_usage): New function. + 2002-08-18 Han-Wen Nienhuys * lily/parser.yy (script_abbreviation): accept -_ script. diff --git a/Documentation/GNUmakefile b/Documentation/GNUmakefile index 4b7c27c927..69aa4bfef4 100644 --- a/Documentation/GNUmakefile +++ b/Documentation/GNUmakefile @@ -4,7 +4,7 @@ NAME = documentation SUBDIRS=user bibliography pictures topdocs misc windows STEPMAKE_TEMPLATES=documentation texinfo tex LOCALSTEPMAKE_TEMPLATES=lilypond ly -LILYPOND_BOOK_FLAGS=--extra-options '-e "(set-lily-option (quote internal-type-checking) \#t)"' +LILYPOND_BOOK_FLAGS=--extra-options '-e "(ly-set-option (quote internal-type-checking) \#t)"' README_TOP_FILES=NEWS DEDICATION ChangeLog EXTRA_DIST_FILES= diff --git a/Documentation/user/GNUmakefile b/Documentation/user/GNUmakefile index 120d24d2a5..a3f909f13a 100644 --- a/Documentation/user/GNUmakefile +++ b/Documentation/user/GNUmakefile @@ -21,6 +21,7 @@ INFO_FILES = $(addprefix $(outdir)/, lilypond.info lilypond-internals.info) STEPMAKE_TEMPLATES=tex texinfo documentation LOCALSTEPMAKE_TEMPLATES=lilypond ly +LILYPOND_BOOK_FLAGS=--extra-options '-e "(ly-set-option (quote internal-type-checking) \#t)"' # Hmm, what about? # local-dist: check-info diff --git a/Documentation/user/invoking.itexi b/Documentation/user/invoking.itexi index 92c1580d0c..f6f8924191 100644 --- a/Documentation/user/invoking.itexi +++ b/Documentation/user/invoking.itexi @@ -40,13 +40,12 @@ The following options are supported: @table @code -@item -e,--evaluate=@var{code} - Evaluates the Scheme @var{code} before parsing @file{.ly} -files. Multiple @code{-e} options may be given. They will be evaluated -sequentially. The function @code{set-lily-option} may be invoked to -set various debugging options. - - +@item -e,--evaluate=@var{expr} +Evaluate the Scheme @var{expr} before parsing any @file{.ly} files. +Multiple @code{-e} options may be given, they will be evaluated +sequentially. The function @code{ly-set-option} allows for access to +some internal variables. Use @code{-e '(ly-option-usage')} for more +information. @item -f,--format=@var{format} @c diff --git a/input/regression/GNUmakefile b/input/regression/GNUmakefile index 2528cf34b2..540e72e923 100644 --- a/input/regression/GNUmakefile +++ b/input/regression/GNUmakefile @@ -2,7 +2,7 @@ depth = ../.. STEPMAKE_TEMPLATES=documentation texinfo tex LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc -LILYPOND_BOOK_FLAGS=--extra-options '-e "(set-lily-option (quote internal-type-checking) \#t)"' +LILYPOND_BOOK_FLAGS=--extra-options '-e "(ly-set-option (quote internal-type-checking) \#t)"' include $(depth)/make/stepmake.make TITLE=LilyPond Regression Tests diff --git a/input/test/GNUmakefile b/input/test/GNUmakefile index df34db779d..82fc916468 100644 --- a/input/test/GNUmakefile +++ b/input/test/GNUmakefile @@ -4,7 +4,7 @@ depth = ../.. STEPMAKE_TEMPLATES=documentation texinfo tex LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc -LILYPOND_BOOK_FLAGS=--extra-options '-e "(set-lily-option (quote internal-type-checking) \#t)"' +LILYPOND_BOOK_FLAGS=--extra-options '-e "(ly-set-option (quote internal-type-checking) \#t)"' ## Hmm, would this work? No -- if we really want examples, move ## to other dir (input/) comes to mind. diff --git a/lily/include/lily-guile.hh b/lily/include/lily-guile.hh index db21226950..ffaed00573 100644 --- a/lily/include/lily-guile.hh +++ b/lily/include/lily-guile.hh @@ -284,6 +284,20 @@ SCM \ FNAME ARGLIST\ +#define LY_DEFINE_NOARGS(FNAME, PRIMNAME, REQ, OPT, VAR, DOCSTRING) \ +SCM FNAME ## _proc;\ +void \ +FNAME ## init_noargs ()\ +{\ + FNAME ## _proc \ + = scm_c_define_gsubr (PRIMNAME,REQ, OPT, VAR, (Scheme_function_unknown) FNAME);\ + ly_add_function_documentation (PRIMNAME, "", DOCSTRING);\ +}\ +ADD_SCM_INIT_FUNC (FNAME ## init_unique_prefix_noargs, FNAME ## init_noargs);\ +SCM \ +FNAME + + diff --git a/lily/main.cc b/lily/main.cc index 9fee2c5c5e..3375142449 100644 --- a/lily/main.cc +++ b/lily/main.cc @@ -103,11 +103,11 @@ static Getopt_long *oparser_p_static = 0; follow regular localisation guidelines). */ static Long_option_init options_static[] = { - /* print example usage: lilypond -e "" ? */ - {_i ("EXPR"), "evaluate", 'e',_i ("Scheme options: try -e \"(set-lily-option 'help 0)\" for more help.")}, + {_i ("EXPR"), "evaluate", 'e', + _i ("set options, use -e '(ly-option-usage)' for help")}, /* another bug in option parser: --output=foe is taken as an abbreviation for --output-format */ - {_i ("EXT"), "format", 'f', _i ("use output format EXT")}, + {_i ("EXT"), "format", 'f', _i ("use output format EXT")}, {0, "help", 'h', _i ("this help")}, {_i ("FIELD"), "header", 'H', _i ("write header field to BASENAME.FIELD")}, {_i ("DIR"), "include", 'I', _i ("add DIR to search path")}, @@ -354,7 +354,8 @@ main_prog (void *, int, char **) const char *arg = oparser_p_static->get_next_arg (); /* Only exit until after running init_scheme_code, for - (set-lily-option 'help) */ + (ly-option-usage) or + -e "(ly-set-option 'help #t)" */ if (!arg) { usage (); diff --git a/lily/scm-option.cc b/lily/scm-option.cc index 9c484e3d9d..f175b21483 100644 --- a/lily/scm-option.cc +++ b/lily/scm-option.cc @@ -38,6 +38,30 @@ int testing_level_global; */ bool internal_type_checking_global_b; +LY_DEFINE (ly_option_usage, "ly-option-usage", 0, 0, 0, (SCM), + "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 ()); + puts ("\n"); + 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" + " testing-level INTEGER\n"); + + exit (0); + return SCM_UNSPECIFIED; +} + /* Add these as well: @item -T,--no-timestamps @@ -46,43 +70,26 @@ don't timestamp the output @item -t,--test Switch on any experimental features. Not for general public use. */ -LY_DEFINE(set_lily_option,"set-lily-option", 2, 0, 0, (SCM var, SCM val), - "Set a global option for the program. Supported options include - +LY_DEFINE (ly_set_option, "ly-set-option", 2, 0, 0, (SCM var, SCM val), + "Set a global option value. Supported options include @table @code @item help List all options. @item midi-debug -If set to true, generate human readable MIDI +If set to true, generate human readable MIDI @item internal-type-checking Set paranoia for property assignments @end table This function is useful to call from the command line: @code{lilypond -e -\"(set-lily-option 'midi-debug #t)\"}. +\"(ly-set-option 'midi-debug #t)\"}. ") { - /* Scheme option usage: - lilypond -e "(set-lily-option 'help 0)" */ if (var == ly_symbol2scm ("help")) { - printf ( _("lilypond -e EXPR means - -evalute EXPR as Scheme after init.scm has been read. In particular, -the function set-lily-option allows for access to some internal -variables. Usage: - - (set-lily-option SYMBOL VAL) - -possible options for SYMBOL are : -").to_str0 ()); - printf ( " help (any-symbol)\n" - " internal-type-checking (boolean)\n" - " midi-debug (boolean)\n" - " testing-level (int)\n"); - - exit (0); + /* lilypond -e "(ly-set-option 'help #t)" */ + ly_option_usage (SCM_EOL); } else if (var == ly_symbol2scm ("midi-debug")) {