Commit 58da34c7 authored by Stefan Monnier's avatar Stefan Monnier
Browse files

* subr.el (event-modifiers): Use internal-event-symbol-parse-modifiers.

* keyboard.c (Fevent_symbol_parse_modifiers): New function.
(syms_of_keyboard): Defsubr it.
parent 21e14641
2007-11-15 Stefan Monnier <monnier@iro.umontreal.ca> 2007-11-15 Stefan Monnier <monnier@iro.umontreal.ca>
* subr.el (event-modifiers): Use internal-event-symbol-parse-modifiers.
* pcvs.el (cvs-revert-if-needed): Ignore `unknown' files, since cvs * pcvs.el (cvs-revert-if-needed): Ignore `unknown' files, since cvs
did not touch them. did not touch them.
......
...@@ -723,7 +723,9 @@ even when EVENT actually has modifiers." ...@@ -723,7 +723,9 @@ even when EVENT actually has modifiers."
(if (listp type) (if (listp type)
(setq type (car type))) (setq type (car type)))
(if (symbolp type) (if (symbolp type)
(cdr (get type 'event-symbol-elements)) ;; Don't read event-symbol-elements directly since we're not
;; sure the symbol has already been parsed.
(cdr (internal-event-symbol-parse-modifiers type))
(let ((list nil) (let ((list nil)
(char (logand type (lognot (logior ?\M-\^@ ?\C-\^@ ?\S-\^@ (char (logand type (lognot (logior ?\M-\^@ ?\C-\^@ ?\S-\^@
?\H-\^@ ?\s-\^@ ?\A-\^@))))) ?\H-\^@ ?\s-\^@ ?\A-\^@)))))
......
2007-11-15 Stefan Monnier <monnier@iro.umontreal.ca> 2007-11-15 Stefan Monnier <monnier@iro.umontreal.ca>
* keyboard.c (Fevent_symbol_parse_modifiers): New function.
(syms_of_keyboard): Defsubr it.
* data.c (swap_in_global_binding): Fix longstanding bug where * data.c (swap_in_global_binding): Fix longstanding bug where
store_symval_forwarding was not called with the right second argument, store_symval_forwarding was not called with the right second argument,
thus causing objfwd-ing from being dropped. thus causing objfwd-ing from being dropped.
......
...@@ -6545,6 +6545,19 @@ parse_modifiers (symbol) ...@@ -6545,6 +6545,19 @@ parse_modifiers (symbol)
} }
} }
DEFUN ("internal-event-symbol-parse-modifiers", Fevent_symbol_parse_modifiers,
Sevent_symbol_parse_modifiers, 1, 1, 0,
doc: /* Parse the event symbol. For internal use. */)
(symbol)
{
/* Fill the cache if needed. */
parse_modifiers (symbol);
/* Ignore the result (which is stored on Qevent_symbol_element_mask)
and use the Lispier representation stored on Qevent_symbol_elements
instead. */
return Fget (symbol, Qevent_symbol_elements);
}
/* Apply the modifiers MODIFIERS to the symbol BASE. /* Apply the modifiers MODIFIERS to the symbol BASE.
BASE must be unmodified. BASE must be unmodified.
...@@ -11946,6 +11959,7 @@ syms_of_keyboard () ...@@ -11946,6 +11959,7 @@ syms_of_keyboard ()
staticpro (&help_form_saved_window_configs); staticpro (&help_form_saved_window_configs);
defsubr (&Scurrent_idle_time); defsubr (&Scurrent_idle_time);
defsubr (&Sevent_symbol_parse_modifiers);
defsubr (&Sevent_convert_list); defsubr (&Sevent_convert_list);
defsubr (&Sread_key_sequence); defsubr (&Sread_key_sequence);
defsubr (&Sread_key_sequence_vector); defsubr (&Sread_key_sequence_vector);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment