Mercurial > emacs
diff src/eval.c @ 97059:984f2ac5a637
* lisp.h (init_weak_hash_tables, syms_of_font)
(xd_read_queued_messages, syms_of_dbusbind): Declare.
(remove_hash_entry): Don't declare.
* eval.c (maybe_call_debugger): Make static and move before use.
* gtkutil.c: Include <X11/Xft/Xft.h> if HAVE_XFT.
* xdisp.c: Include "gtkutil.h" if USE_GTK.
* xterm.h (x_set_frame_alpha): Declare.
| author | Andreas Schwab <schwab@suse.de> |
|---|---|
| date | Mon, 28 Jul 2008 12:25:11 +0000 |
| parents | 79121a8f01e3 |
| children | ec0a26179c3c |
line wrap: on
line diff
--- a/src/eval.c Mon Jul 28 11:03:42 2008 +0000 +++ b/src/eval.c Mon Jul 28 12:25:11 2008 +0000 @@ -1875,6 +1875,36 @@ return 0; } +/* Call the debugger if calling it is currently enabled for CONDITIONS. + SIG and DATA describe the signal, as in find_handler_clause. */ + +static int +maybe_call_debugger (conditions, sig, data) + Lisp_Object conditions, sig, data; +{ + Lisp_Object combined_data; + + combined_data = Fcons (sig, data); + + if ( + /* Don't try to run the debugger with interrupts blocked. + The editing loop would return anyway. */ + ! INPUT_BLOCKED_P + /* Does user want to enter debugger for this kind of error? */ + && (EQ (sig, Qquit) + ? debug_on_quit + : wants_debugger (Vdebug_on_error, conditions)) + && ! skip_debugger (conditions, combined_data) + /* rms: what's this for? */ + && when_entered_debugger < num_nonmacro_input_events) + { + call_debugger (Fcons (Qerror, Fcons (combined_data, Qnil))); + return 1; + } + + return 0; +} + /* Value of Qlambda means we have called debugger and user has continued. There are two ways to pass SIG and DATA: = SIG is the error symbol, and DATA is the rest of the data. @@ -1975,36 +2005,6 @@ return Qnil; } -/* Call the debugger if calling it is currently enabled for CONDITIONS. - SIG and DATA describe the signal, as in find_handler_clause. */ - -int -maybe_call_debugger (conditions, sig, data) - Lisp_Object conditions, sig, data; -{ - Lisp_Object combined_data; - - combined_data = Fcons (sig, data); - - if ( - /* Don't try to run the debugger with interrupts blocked. - The editing loop would return anyway. */ - ! INPUT_BLOCKED_P - /* Does user wants to enter debugger for this kind of error? */ - && (EQ (sig, Qquit) - ? debug_on_quit - : wants_debugger (Vdebug_on_error, conditions)) - && ! skip_debugger (conditions, combined_data) - /* rms: what's this for? */ - && when_entered_debugger < num_nonmacro_input_events) - { - call_debugger (Fcons (Qerror, Fcons (combined_data, Qnil))); - return 1; - } - - return 0; -} - /* dump an error message; called like printf */ /* VARARGS 1 */
