From b33b2f745973360e6aaae8277cb291ddb57d8b45 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Sun, 18 Mar 2007 23:31:10 -0300 Subject: [PATCH] new function: ly:start-environment Return environment as it was when entering main() --- lily/general-scheme.cc | 18 ++++++++++++++++++ lily/include/main.hh | 1 + lily/main.cc | 5 +++++ 3 files changed, 24 insertions(+) diff --git a/lily/general-scheme.cc b/lily/general-scheme.cc index cc46b631a3..f00d1938ab 100644 --- a/lily/general-scheme.cc +++ b/lily/general-scheme.cc @@ -27,6 +27,24 @@ using namespace std; #include "file-name.hh" #include "string-convert.hh" +LY_DEFINE (ly_start_environment, "ly:start-environment", + 0, 0, 0, (), + "Return the environment, a list of strings, that was in effect at program start") +{ + SCM l = SCM_EOL; + SCM *tail = &l; + + for (vsize i = 0; i < start_environment_global.size (); i++) + { + *tail = scm_cons (ly_string2scm (start_environment_global[i]), + SCM_EOL); + tail = SCM_CDRLOC(*tail); + } + + return l; +} + + LY_DEFINE (ly_find_file, "ly:find-file", 1, 0, 0, (SCM name), "Return the absolute file name of @var{name}, " diff --git a/lily/include/main.hh b/lily/include/main.hh index 3db38a564f..fb1d94b593 100644 --- a/lily/include/main.hh +++ b/lily/include/main.hh @@ -27,6 +27,7 @@ extern string init_name_global; /* options */ extern vector dump_header_fieldnames_global; +extern vector start_environment_global; extern string output_backend_global; extern string output_name_global; extern bool be_safe_global; diff --git a/lily/main.cc b/lily/main.cc index 6caafd73c9..79de28c44f 100644 --- a/lily/main.cc +++ b/lily/main.cc @@ -564,9 +564,14 @@ setup_guile_env () "104857600", overwrite); } +vector start_environment_global; + int main (int argc, char **argv) { + for (char **p = environ; *p; p++) + start_environment_global.push_back(*p); + if (getenv ("LILYPOND_VERBOSE")) be_verbose_global = true; -- 2.39.5