aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJim Blandy1993-05-04 02:34:26 +0000
committerJim Blandy1993-05-04 02:34:26 +0000
commit59b4254d5965ccab2526cf80494924f2b8f4a9f8 (patch)
tree5dc3737d07de51aebc41e889ee995f5f0327d8b1 /src
parentcd8520b9d54237af2bc59415c4471237e1f506e1 (diff)
downloademacs-59b4254d5965ccab2526cf80494924f2b8f4a9f8.tar.gz
emacs-59b4254d5965ccab2526cf80494924f2b8f4a9f8.zip
* lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
case we need them. * termhooks.h (alt_modifier, super_modifier, hyper_modifier, shift_modifier, ctrl_modifier, meta_modifier): Define these in terms of the CHAR_mumble macros, to avoid having the same thing defined in two places. Arrange for Fy_or_n_p to put off switch-frame events. * lread.c (read_filtered_char): New function, which contains the code which used to be in Fread_char, Fread_event, and Fread_char_exclusive; there was a lot of common code. (Fread_char, Fread_event, Fread_char_exclusive): Rewrite in terms of read_filtered_char. * lisp.h (read_filtered_char): Declare this extern here. * fns.c (Fy_or_n_p): Call read_filtered_char, arranging to delay switch-frame events. Make the modifier manipulation functions more robust. The old way caused a bug once, and probably would again. * termhooks.h (alt_modifier, super_modifier, hyper_modifier, shift_modifier, ctrl_modifier, meta_modifier): Shift these all down one bit in value, to avoid sign extension problems. * lisp.h (CHAR_META, CHAR_CTL, CHAR_SHIFT): Fix these definitions too. * keyboard.c (lispy_modifier_list): Ignore modifier bits beyond what our table of modifier names can handle. (apply_modifiers): Don't abort if you see extra modifier bits, just remove them. * lisp.h (Qrange_error, Qdomain_error, Qsingularity_error, Qoverflow_error, Qunderflow_error): Add extern to these declarations.
Diffstat (limited to 'src')
-rw-r--r--src/lisp.h17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/lisp.h b/src/lisp.h
index 57a6a2f5092..7f08159a145 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -569,11 +569,13 @@ typedef unsigned char UCHAR;
569#define COMPILED_DOC_STRING 4 569#define COMPILED_DOC_STRING 4
570#define COMPILED_INTERACTIVE 5 570#define COMPILED_INTERACTIVE 5
571 571
572/* Flag bits in a character. */ 572/* Flag bits in a character. These also get used in termhooks.h. */
573 573#define CHAR_ALT (0x020000)
574#define CHAR_META 0x800000 574#define CHAR_SUPER (0x040000)
575#define CHAR_CTL 0x400000 575#define CHAR_HYPER (0x080000)
576#define CHAR_SHIFT 0x200000 576#define CHAR_SHIFT (0x100000)
577#define CHAR_CTL (0x200000)
578#define CHAR_META (0x400000)
577 579
578/* Data type checking */ 580/* Data type checking */
579 581
@@ -936,8 +938,8 @@ extern Lisp_Object Qinvalid_function, Qwrong_number_of_arguments, Qno_catch;
936extern Lisp_Object Qend_of_file, Qarith_error; 938extern Lisp_Object Qend_of_file, Qarith_error;
937extern Lisp_Object Qbeginning_of_buffer, Qend_of_buffer, Qbuffer_read_only; 939extern Lisp_Object Qbeginning_of_buffer, Qend_of_buffer, Qbuffer_read_only;
938 940
939Lisp_Object Qrange_error, Qdomain_error, Qsingularity_error; 941extern Lisp_Object Qrange_error, Qdomain_error, Qsingularity_error;
940Lisp_Object Qoverflow_error, Qunderflow_error; 942extern Lisp_Object Qoverflow_error, Qunderflow_error;
941 943
942extern Lisp_Object Qintegerp, Qnumberp, Qnatnump, Qsymbolp, Qlistp, Qconsp; 944extern Lisp_Object Qintegerp, Qnumberp, Qnatnump, Qsymbolp, Qlistp, Qconsp;
943extern Lisp_Object Qstringp, Qarrayp, Qsequencep, Qbufferp; 945extern Lisp_Object Qstringp, Qarrayp, Qsequencep, Qbufferp;
@@ -1041,6 +1043,7 @@ extern Lisp_Object Vobarray, Vstandard_input;
1041extern Lisp_Object Fread (), Fread_from_string (); 1043extern Lisp_Object Fread (), Fread_from_string ();
1042extern Lisp_Object Fintern (), Fintern_soft (), Fload (); 1044extern Lisp_Object Fintern (), Fintern_soft (), Fload ();
1043extern Lisp_Object Fget_file_char (), Fread_char (); 1045extern Lisp_Object Fget_file_char (), Fread_char ();
1046extern Lisp_Object read_filtered_event ();
1044extern Lisp_Object Feval_current_buffer (), Feval_region (); 1047extern Lisp_Object Feval_current_buffer (), Feval_region ();
1045extern Lisp_Object intern (), oblookup (); 1048extern Lisp_Object intern (), oblookup ();
1046#define LOADHIST_ATTACH(x) \ 1049#define LOADHIST_ATTACH(x) \