* lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
authorJim Blandy <jimb@redhat.com>
Tue, 4 May 1993 02:34:26 +0000 (02:34 +0000)
committerJim Blandy <jimb@redhat.com>
Tue, 4 May 1993 02:34:26 +0000 (02:34 +0000)
commit59b4254d5965ccab2526cf80494924f2b8f4a9f8
tree5dc3737d07de51aebc41e889ee995f5f0327d8b1
parentcd8520b9d54237af2bc59415c4471237e1f506e1
* 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.
src/lisp.h