comparison src/eval.c @ 16895:32945f27ed20

(Fsignal): Call fatal if no error handlers and no catch.
author Richard M. Stallman <rms@gnu.org>
date Mon, 20 Jan 1997 02:21:33 +0000
parents 9b919c5464a4
children e1aba4a05388
comparison
equal deleted inserted replaced
16894:cd8d6bf6b320 16895:32945f27ed20
1205 register struct handler *allhandlers = handlerlist; 1205 register struct handler *allhandlers = handlerlist;
1206 Lisp_Object conditions; 1206 Lisp_Object conditions;
1207 extern int gc_in_progress; 1207 extern int gc_in_progress;
1208 extern int waiting_for_input; 1208 extern int waiting_for_input;
1209 Lisp_Object debugger_value; 1209 Lisp_Object debugger_value;
1210 Lisp_Object string;
1210 1211
1211 quit_error_check (); 1212 quit_error_check ();
1212 immediate_quit = 0; 1213 immediate_quit = 0;
1213 if (gc_in_progress || waiting_for_input) 1214 if (gc_in_progress || waiting_for_input)
1214 abort (); 1215 abort ();
1264 1265
1265 handlerlist = allhandlers; 1266 handlerlist = allhandlers;
1266 /* If no handler is present now, try to run the debugger, 1267 /* If no handler is present now, try to run the debugger,
1267 and if that fails, throw to top level. */ 1268 and if that fails, throw to top level. */
1268 find_handler_clause (Qerror, conditions, error_symbol, data, &debugger_value); 1269 find_handler_clause (Qerror, conditions, error_symbol, data, &debugger_value);
1269 Fthrow (Qtop_level, Qt); 1270 if (catchlist != 0)
1271 Fthrow (Qtop_level, Qt);
1272
1273 if (! EQ (data, memory_signal_data))
1274 data = Fcons (error_symbol, data);
1275
1276 string = Ferror_message_string (data);
1277 fatal (XSTRING (string)->data, 0, 0);
1270 } 1278 }
1271 1279
1272 /* Return nonzero iff LIST is a non-nil atom or 1280 /* Return nonzero iff LIST is a non-nil atom or
1273 a list containing one of CONDITIONS. */ 1281 a list containing one of CONDITIONS. */
1274 1282