aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard M. Stallman2002-03-16 07:05:59 +0000
committerRichard M. Stallman2002-03-16 07:05:59 +0000
commit7033d6df3634dab4dec26619459eff04d458f810 (patch)
tree4286f19f82ab21e003d6763ae26b8350272342a4 /src
parentaab3aa14610915debebae1081eb206e7b7e4c11a (diff)
downloademacs-7033d6df3634dab4dec26619459eff04d458f810.tar.gz
emacs-7033d6df3634dab4dec26619459eff04d458f810.zip
(redisplay_internal, redisplay_windows):
Use list_of_error to call internal_condition_case_1. (safe_eval, safe_call): Pass Qt to internal_condition_case_{1,2} so as to catch all errors with no possibility of debugger redisplay. (list_of_error): New variable. (syms_of_xdisp): Init and staticpro it.
Diffstat (limited to 'src')
-rw-r--r--src/xdisp.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index 6ac581914a7..80667951f91 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -226,6 +226,9 @@ Lisp_Object Qgrow_only;
226Lisp_Object Qinhibit_eval_during_redisplay; 226Lisp_Object Qinhibit_eval_during_redisplay;
227Lisp_Object Qbuffer_position, Qposition, Qobject; 227Lisp_Object Qbuffer_position, Qposition, Qobject;
228 228
229/* Holds the list (error). */
230Lisp_Object list_of_error;
231
229/* Functions called to fontify regions of text. */ 232/* Functions called to fontify regions of text. */
230 233
231Lisp_Object Vfontification_functions; 234Lisp_Object Vfontification_functions;
@@ -1323,7 +1326,9 @@ safe_eval (sexpr)
1323 1326
1324 GCPRO1 (sexpr); 1327 GCPRO1 (sexpr);
1325 specbind (Qinhibit_redisplay, Qt); 1328 specbind (Qinhibit_redisplay, Qt);
1326 val = internal_condition_case_1 (Feval, sexpr, Qerror, 1329 /* Use Qt to ensure debugger does not run,
1330 so there is no possibility of wanting to redisplay. */
1331 val = internal_condition_case_1 (Feval, sexpr, Qt,
1327 safe_eval_handler); 1332 safe_eval_handler);
1328 UNGCPRO; 1333 UNGCPRO;
1329 val = unbind_to (count, val); 1334 val = unbind_to (count, val);
@@ -1354,7 +1359,9 @@ safe_call (nargs, args)
1354 GCPRO1 (args[0]); 1359 GCPRO1 (args[0]);
1355 gcpro1.nvars = nargs; 1360 gcpro1.nvars = nargs;
1356 specbind (Qinhibit_redisplay, Qt); 1361 specbind (Qinhibit_redisplay, Qt);
1357 val = internal_condition_case_2 (Ffuncall, nargs, args, Qerror, 1362 /* Use Qt to ensure debugger does not run,
1363 so there is no possibility of wanting to redisplay. */
1364 val = internal_condition_case_2 (Ffuncall, nargs, args, Qt,
1358 safe_eval_handler); 1365 safe_eval_handler);
1359 UNGCPRO; 1366 UNGCPRO;
1360 val = unbind_to (count, val); 1367 val = unbind_to (count, val);
@@ -8960,7 +8967,10 @@ redisplay_internal (preserve_echo_area)
8960 struct frame *mini_frame; 8967 struct frame *mini_frame;
8961 8968
8962 displayed_buffer = XBUFFER (XWINDOW (selected_window)->buffer); 8969 displayed_buffer = XBUFFER (XWINDOW (selected_window)->buffer);
8963 internal_condition_case_1 (redisplay_window_1, selected_window, Qerror, 8970 /* Use list_of_error, not Qerror, so that
8971 we catch only errors and don't run the debugger. */
8972 internal_condition_case_1 (redisplay_window_1, selected_window,
8973 list_of_error,
8964 redisplay_window_error); 8974 redisplay_window_error);
8965 8975
8966 /* Compare desired and current matrices, perform output. */ 8976 /* Compare desired and current matrices, perform output. */
@@ -9299,7 +9309,10 @@ redisplay_windows (window)
9299 else 9309 else
9300 { 9310 {
9301 displayed_buffer = XBUFFER (w->buffer); 9311 displayed_buffer = XBUFFER (w->buffer);
9302 internal_condition_case_1 (redisplay_window_0, window, Qerror, 9312 /* Use list_of_error, not Qerror, so that
9313 we catch only errors and don't run the debugger. */
9314 internal_condition_case_1 (redisplay_window_0, window,
9315 list_of_error,
9303 redisplay_window_error); 9316 redisplay_window_error);
9304 } 9317 }
9305 9318
@@ -14887,6 +14900,9 @@ syms_of_xdisp ()
14887 Qobject = intern ("object"); 14900 Qobject = intern ("object");
14888 staticpro (&Qobject); 14901 staticpro (&Qobject);
14889 14902
14903 list_of_error = Fcons (intern ("error"), Qnil);
14904 staticpro (&list_of_error);
14905
14890 last_arrow_position = Qnil; 14906 last_arrow_position = Qnil;
14891 last_arrow_string = Qnil; 14907 last_arrow_string = Qnil;
14892 staticpro (&last_arrow_position); 14908 staticpro (&last_arrow_position);