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);