0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

updated for version 7.3.441

Problem:    Newer versions of MzScheme (Racket) require earlier (trampolined)
            initialisation.
Solution:   Call mzscheme_main() early in main(). (Sergey Khorev)
This commit is contained in:
Bram Moolenaar
2012-02-12 01:55:55 +01:00
parent efcb54b78c
commit bbc98db7c4
5 changed files with 74 additions and 50 deletions

View File

@@ -554,6 +554,31 @@ main
debug_break_level = params.use_debug_break_level;
#endif
#ifdef FEAT_MZSCHEME
/*
* Newer version of MzScheme (Racket) require earlier (trampolined)
* initialisation via scheme_main_setup.
* Implement this by initialising it as early as possible
* and splitting off remaining Vim main into vim_main2
*/
{
/* Pack up preprocessed command line arguments.
* It is safe because Scheme does not access argc/argv. */
char *args[2];
args[0] = (char *)fname;
args[1] = (char *)&params;
return mzscheme_main(2, args);
}
}
int vim_main2(int argc, char **argv)
{
char_u *fname = (char_u *)argv[0];
mparm_T params;
memcpy(&params, argv[1], sizeof(params));
#endif
/* Execute --cmd arguments. */
exe_pre_commands(&params);
@@ -957,14 +982,8 @@ main
/*
* Call the main command loop. This never returns.
* For embedded MzScheme the main_loop will be called by Scheme
* for proper stack tracking
*/
#ifndef FEAT_MZSCHEME
*/
main_loop(FALSE, FALSE);
#else
mzscheme_main();
#endif
return 0;
}