X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmain.cc;h=3c0f7ae88eb7a4f28a065d1555ff4ffcf9c07aa9;hb=ec8b80d1b75688aa875078a228fb0e6ec39d3ccb;hp=2b715cdcb7e526bc22ff3574868e47662b2c4e2a;hpb=9812253e94f56e06fac24a2e9db19ec649a181a5;p=lilypond.git diff --git a/lily/main.cc b/lily/main.cc index 2b715cdcb7..3c0f7ae88e 100644 --- a/lily/main.cc +++ b/lily/main.cc @@ -53,9 +53,6 @@ vector dump_header_fieldnames_global; /* Name of initialisation file. */ string init_name_global; -/* Selected output backend - One of (gnome, ps [default], eps, scm, svg, tex, texstr)") */ -string output_backend_global = "ps"; /* Output formats to generate. */ string output_format_global = ""; @@ -77,23 +74,10 @@ bool be_verbose_global = false; /* Scheme code to execute before parsing, after .scm init. This is where -e arguments are appended to. */ -string init_scheme_code_string; -string init_scheme_variables; +string init_scheme_code_global; +string init_scheme_variables_global; -/* Generate preview of first system. */ -bool make_preview = false; - -/* Generate printed output. */ -bool make_print = true; - - -bool relocate_binary = -#if 1 - true; -#else - false -#endif - ; +bool relocate_binary = true; /* @@ -136,9 +120,9 @@ static char const *WARRANTY /* Where the init files live. Typically: LILYPOND_DATADIR = /usr/share/lilypond */ -string prefix_directory; +string lilypond_datadir; -/* The jail specification: USER,GROUP,JAIL,DIR. */ +/* The jail specification: USER, GROUP, JAIL, DIR. */ string jail_spec; /* The option parser */ @@ -150,10 +134,8 @@ static Getopt_long *option_parser = 0; static Long_option_init options_static[] = { - {_i ("BACK"), "backend", 'b', _i ("use backend BACK (eps, gnome, ps [default],\nscm, svg, tex, texstr)")}, - {_i ("SYM[=VAL]"), "define-default", 'd', - _i ("set Scheme option SYM to VAL (default: #t)\n" + _i ("set Scheme option SYM to VAL (default: #t).\n" "Use -dhelp for help.")}, {_i ("EXPR"), "evaluate", 'e', _i ("evaluate scheme code")}, @@ -171,15 +153,11 @@ static Long_option_init options_static[] {_i ("DIR"), "include", 'I', _i ("add DIR to search path")}, {_i ("FILE"), "init", 'i', _i ("use FILE as init file")}, #if HAVE_CHROOT - {_i ("USER,GROUP,JAIL,DIR"), "jail", 'j', _i ("chroot to JAIL, become USER:GROUP\n" + {_i ("USER, GROUP, JAIL, DIR"), "jail", 'j', _i ("chroot to JAIL, become USER:GROUP\n" "and cd into DIR")}, #endif - {0, "no-print", 0, _i ("do not generate printed output")}, {_i ("FILE"), "output", 'o', _i ("write output to FILE (suffix will be added)")}, - {0, "preview", 'p', _i ("generate a preview of the first system")}, {0, "relocate", 0, _i ("relocate using directory of lilypond program")}, - {0, "safe-mode", 's', _i ("disallow unsafe Scheme and PostScript\n" - "operations")}, {0, "version", 'v', _i ("show version number and exit")}, {0, "verbose", 'V', _i ("be verbose")}, {0, "warranty", 'w', _i ("show warranty and copyright")}, @@ -201,9 +179,10 @@ dir_info (FILE *out) fputs ("\n", out); fprintf (out, "LILYPOND_DATADIR=\"%s\"\n", LILYPOND_DATADIR); env_var_info (out, "LILYPONDPREFIX"); + env_var_info (out, "LILYPOND_DATADIR"); fprintf (out, "LOCALEDIR=\"%s\"\n", LOCALEDIR); - fprintf (out, "\nEffective prefix: \"%s\"\n", prefix_directory.c_str ()); + fprintf (out, "\nEffective prefix: \"%s\"\n", lilypond_datadir.c_str ()); if (relocate_binary) { @@ -379,15 +358,15 @@ main_with_guile (void *, int, char **) /* Engravers use lily.scm contents, need to make Guile find it. Prepend onto GUILE %load-path, very ugh. */ - prepend_load_path (prefix_directory); - prepend_load_path (prefix_directory + "/scm"); + prepend_load_path (lilypond_datadir); + prepend_load_path (lilypond_datadir + "/scm"); if (be_verbose_global) dir_info (stderr); - is_TeX_format_global = (output_backend_global == "tex" - || output_backend_global == "texstr"); is_pango_format_global = !is_TeX_format_global; + init_scheme_variables_global = "(list " + init_scheme_variables_global + ")"; + init_scheme_code_global = "(begin " + init_scheme_code_global + ")"; ly_c_init_guile (); call_constructors (); @@ -396,24 +375,9 @@ main_with_guile (void *, int, char **) init_freetype (); ly_reset_all_fonts (); - if (!init_scheme_variables.empty () - || !init_scheme_code_string.empty ()) - { - init_scheme_variables = "(map (lambda (x) (ly:set-option (car x) (cdr x))) (list " - + init_scheme_variables + "))"; - - init_scheme_code_string - = "(begin #t " - + init_scheme_variables - + init_scheme_code_string - + ")"; - - char const *str0 = init_scheme_code_string.c_str (); - - if (be_verbose_global) - progress_indication (_f ("Evaluating %s", str0)); - scm_c_eval_string ((char *) str0); - } + is_TeX_format_global = (get_output_backend_name () == "tex" + || get_output_backend_name () == "texstr"); + /* We accept multiple independent music files on the command line to reduce compile time when processing lots of small files. @@ -486,10 +450,6 @@ parse_argv (int argc, char **argv) || string (opt->longname_str0_) == "ps" || string (opt->longname_str0_) == "tex") add_output_format (opt->longname_str0_); - else if (string (opt->longname_str0_) == "preview") - make_preview = true; - else if (string (opt->longname_str0_) == "no-pages") - make_print = false; else if (string (opt->longname_str0_) == "relocate") relocate_binary = true; break; @@ -508,8 +468,8 @@ parse_argv (int argc, char **argv) val = arg.substr (eq + 1, arg.length () - 1); } - init_scheme_variables - += "(cons \'" + key + " " + val + ")\n"; + init_scheme_variables_global + += "(cons \'" + key + " '" + val + ")\n"; } break; @@ -527,18 +487,15 @@ parse_argv (int argc, char **argv) case 'j': jail_spec = option_parser->optional_argument_str0_; break; + case 'e': - init_scheme_code_string += option_parser->optional_argument_str0_; + init_scheme_code_global += option_parser->optional_argument_str0_ + string (" "); break; case 'w': warranty (); exit (0); break; - case 'b': - output_backend_global = option_parser->optional_argument_str0_; - break; - case 'f': { vector components @@ -564,13 +521,6 @@ parse_argv (int argc, char **argv) case 'V': be_verbose_global = true; break; - case 's': - init_scheme_variables - += "(cons \'safe #t)\n"; - break; - case 'p': - make_preview = true; - break; default: programming_error (to_string ("unhandled short option: %c", opt->shortname_char_)); @@ -614,12 +564,14 @@ setup_guile_env () "104857600", overwrite); } -void -read_relocation_dir (string); - +vector start_environment_global; + int -main (int argc, char **argv) +main (int argc, char **argv, char **envp) { + for (char **p = envp; *p; p++) + start_environment_global.push_back(*p); + if (getenv ("LILYPOND_VERBOSE")) be_verbose_global = true;