Mercurial > emacs
comparison src/lisp.h @ 58932:ce2e33a2adae
(QUIT): Check for Vthrow_on_input.
(Vthrow_on_input): Declare it.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 13 Dec 2004 18:56:52 +0000 |
parents | f8cddae7d959 |
children | a38c7bcb8e1a fb79180b618d |
comparison
equal
deleted
inserted
replaced
58931:877029420a0c | 58932:ce2e33a2adae |
---|---|
1766 and (in particular) cannot call arbitrary Lisp code. */ | 1766 and (in particular) cannot call arbitrary Lisp code. */ |
1767 | 1767 |
1768 #ifdef SYNC_INPUT | 1768 #ifdef SYNC_INPUT |
1769 extern void handle_async_input P_ ((void)); | 1769 extern void handle_async_input P_ ((void)); |
1770 extern int interrupt_input_pending; | 1770 extern int interrupt_input_pending; |
1771 | |
1771 #define QUIT \ | 1772 #define QUIT \ |
1772 do { \ | 1773 do { \ |
1773 if (!NILP (Vquit_flag) && NILP (Vinhibit_quit)) \ | 1774 if (!NILP (Vquit_flag) && NILP (Vinhibit_quit)) \ |
1774 { \ | 1775 { \ |
1776 Lisp_Object flag = Vquit_flag; \ | |
1775 Vquit_flag = Qnil; \ | 1777 Vquit_flag = Qnil; \ |
1778 if (EQ (Vthrow_on_input, flag)) \ | |
1779 Fthrow (Vthrow_on_input, Qnil); \ | |
1776 Fsignal (Qquit, Qnil); \ | 1780 Fsignal (Qquit, Qnil); \ |
1777 } \ | 1781 } \ |
1778 else if (interrupt_input_pending) \ | 1782 else if (interrupt_input_pending) \ |
1779 handle_async_input (); \ | 1783 handle_async_input (); \ |
1780 } while (0) | 1784 } while (0) |
1783 | 1787 |
1784 #define QUIT \ | 1788 #define QUIT \ |
1785 do { \ | 1789 do { \ |
1786 if (!NILP (Vquit_flag) && NILP (Vinhibit_quit)) \ | 1790 if (!NILP (Vquit_flag) && NILP (Vinhibit_quit)) \ |
1787 { \ | 1791 { \ |
1792 Lisp_Object flag = Vquit_flag; \ | |
1788 Vquit_flag = Qnil; \ | 1793 Vquit_flag = Qnil; \ |
1794 if (EQ (Vthrow_on_input, flag)) \ | |
1795 Fthrow (Vthrow_on_input, Qnil); \ | |
1789 Fsignal (Qquit, Qnil); \ | 1796 Fsignal (Qquit, Qnil); \ |
1790 } \ | 1797 } \ |
1791 } while (0) | 1798 } while (0) |
1792 | 1799 |
1793 #endif /* not SYNC_INPUT */ | 1800 #endif /* not SYNC_INPUT */ |
2874 extern Lisp_Object echo_message_buffer; | 2881 extern Lisp_Object echo_message_buffer; |
2875 extern struct kboard *echo_kboard; | 2882 extern struct kboard *echo_kboard; |
2876 extern void cancel_echoing P_ ((void)); | 2883 extern void cancel_echoing P_ ((void)); |
2877 extern Lisp_Object Qdisabled, QCfilter; | 2884 extern Lisp_Object Qdisabled, QCfilter; |
2878 extern Lisp_Object Vtty_erase_char, Vhelp_form, Vtop_level; | 2885 extern Lisp_Object Vtty_erase_char, Vhelp_form, Vtop_level; |
2886 extern Lisp_Object Vthrow_on_input; | |
2879 extern int input_pending; | 2887 extern int input_pending; |
2880 EXFUN (Fdiscard_input, 0); | 2888 EXFUN (Fdiscard_input, 0); |
2881 EXFUN (Frecursive_edit, 0); | 2889 EXFUN (Frecursive_edit, 0); |
2882 EXFUN (Ftop_level, 0); | 2890 EXFUN (Ftop_level, 0); |
2883 EXFUN (Fcommand_execute, 4); | 2891 EXFUN (Fcommand_execute, 4); |