X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fruntime.c;h=ab619517738c6eab6f77e486e161d555901beb07;hb=fb76e3acd8b8a53cdadaa65bce1d090d99e004a0;hp=f72cd60121d217b0e66562441c8a7fa2857e5783;hpb=1de12891f900d156ed035a097561ecd7755a256a;p=sbcl.git diff --git a/src/runtime/runtime.c b/src/runtime/runtime.c index f72cd60..ab61951 100644 --- a/src/runtime/runtime.c +++ b/src/runtime/runtime.c @@ -211,7 +211,10 @@ search_for_core () return core; } - +char **posix_argv; +char *core_string; + + int main(int argc, char *argv[], char *envp[]) { @@ -373,7 +376,7 @@ main(int argc, char *argv[], char *envp[]) free(copied_core); } - if (!noinform) { + if (!noinform && embedded_core_offset == 0) { print_banner(); fflush(stdout); } @@ -404,15 +407,11 @@ main(int argc, char *argv[], char *envp[]) wos_install_interrupt_handlers(&exception_frame); #endif - /* Pass core filename into Lisp */ - SetSymbolValue(CORE_STRING, alloc_base_string(core),0); - SHOW("freeing core"); - free(core); - - /* Convert remaining argv values to something that Lisp can grok. */ - SHOW("setting POSIX-ARGV symbol value"); - SetSymbolValue(POSIX_ARGV, alloc_base_string_list(sbcl_argv),0); - free(sbcl_argv); + /* Pass core filename and the processed argv into Lisp. They'll + * need to be processed further there, to do locale conversion. + */ + core_string = core; + posix_argv = sbcl_argv; FSHOW((stderr, "/funcalling initial_function=0x%lx\n", (unsigned long)initial_function));