From 0198847980c19dbf0ff72f1573caa7fe296e6baf Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 26 Jul 2016 10:55:43 -0600 Subject: [PATCH] wrap `scheme/interactive` load with error boilerplate --- racket/src/racket/cmdline.inc | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/racket/src/racket/cmdline.inc b/racket/src/racket/cmdline.inc index 0a85d5f01f..ed81e2b370 100644 --- a/racket/src/racket/cmdline.inc +++ b/racket/src/racket/cmdline.inc @@ -672,8 +672,19 @@ static int finish_cmd_line_run(FinishArgs *fa, Repl_Proc repl) Scheme_Object *a[2]; a[0] = get_init_filename(fa->global_env, INIT_FILENAME_CONF_SYM, DEFAULT_INIT_MODULE); if (a[0]) { - a[1] = scheme_make_integer(0); - scheme_dynamic_require(2, a); + mz_jmp_buf * volatile save, newbuf; + Scheme_Thread * volatile p; + p = scheme_get_current_thread(); + save = p->error_buf; + p->error_buf = &newbuf; + if (!scheme_setjmp(newbuf)) { + a[1] = scheme_make_integer(0); + scheme_dynamic_require(2, a); + } else { + scheme_clear_escape(); + exit_val = 1; + } + p->error_buf = save; } } #endif /* DONT_LOAD_INIT_FILE */