Commit 1d8d96fa authored by Jim Blandy's avatar Jim Blandy

*** empty log message ***

parent 83b2229f
...@@ -142,10 +142,11 @@ synkey (frommap, fromchar, tomap, tochar) ...@@ -142,10 +142,11 @@ synkey (frommap, fromchar, tomap, tochar)
DEFUN ("keymapp", Fkeymapp, Skeymapp, 1, 1, 0, DEFUN ("keymapp", Fkeymapp, Skeymapp, 1, 1, 0,
"Return t if ARG is a keymap.\n\ "Return t if ARG is a keymap.\n\
A keymap is list (keymap . ALIST), where alist elements look like \n\
(CHAR . DEFN) or (SYMBOL . DEFN), or a list (keymap VECTOR . ALIST) A keymap is list (keymap . ALIST), a list (keymap VECTOR . ALIST),\n\
where VECTOR is a 128-element vector of bindings for ASCII characters, or a symbol whose function definition is a keymap is itself a keymap.\n\
and ALIST is as above.") ALIST elements look like (CHAR . DEFN) or (SYMBOL . DEFN);\n\
VECTOR is a 128-element vector of bindings for ASCII characters.")
(object) (object)
Lisp_Object object; Lisp_Object object;
{ {
...@@ -335,7 +336,9 @@ DEFUN ("copy-keymap", Fcopy_keymap, Scopy_keymap, 1, 1, 0, ...@@ -335,7 +336,9 @@ DEFUN ("copy-keymap", Fcopy_keymap, Scopy_keymap, 1, 1, 0,
"Return a copy of the keymap KEYMAP.\n\ "Return a copy of the keymap KEYMAP.\n\
The copy starts out with the same definitions of KEYMAP,\n\ The copy starts out with the same definitions of KEYMAP,\n\
but changing either the copy or KEYMAP does not affect the other.\n\ but changing either the copy or KEYMAP does not affect the other.\n\
Any key definitions that are subkeymaps are recursively copied.") Any key definitions that are subkeymaps are recursively copied.\n\
However, a key definition which is a symbol whose definition is a keymap\n\
is not copied.")
(keymap) (keymap)
Lisp_Object keymap; Lisp_Object keymap;
{ {
...@@ -357,6 +360,7 @@ Any key definitions that are subkeymaps are recursively copied.") ...@@ -357,6 +360,7 @@ Any key definitions that are subkeymaps are recursively copied.")
table = Fcopy_sequence (table); table = Fcopy_sequence (table);
for (i = 0; i < DENSE_TABLE_SIZE; i++) for (i = 0; i < DENSE_TABLE_SIZE; i++)
if (XTYPE (XVECTOR (copy)->contents[i]) != Lisp_Symbol)
if (! NULL (Fkeymapp (XVECTOR (table)->contents[i]))) if (! NULL (Fkeymapp (XVECTOR (table)->contents[i])))
XVECTOR (table)->contents[i] XVECTOR (table)->contents[i]
= Fcopy_keymap (XVECTOR (table)->contents[i]); = Fcopy_keymap (XVECTOR (table)->contents[i]);
...@@ -372,7 +376,9 @@ Any key definitions that are subkeymaps are recursively copied.") ...@@ -372,7 +376,9 @@ Any key definitions that are subkeymaps are recursively copied.")
register Lisp_Object elt; register Lisp_Object elt;
elt = XCONS (tail)->car; elt = XCONS (tail)->car;
if (CONSP (elt) && ! NULL (Fkeymapp (XCONS (elt)->cdr))) if (CONSP (elt)
&& XTYPE (XCONS (elt)->cdr) != Lisp_Symbol
&& ! NULL (Fkeymapp (XCONS (elt)->cdr)))
XCONS (elt)->cdr = Fcopy_keymap (XCONS (elt)->cdr); XCONS (elt)->cdr = Fcopy_keymap (XCONS (elt)->cdr);
tail = XCONS (tail)->cdr; tail = XCONS (tail)->cdr;
...@@ -667,8 +673,9 @@ KEY is a string representing a sequence of keystrokes.") ...@@ -667,8 +673,9 @@ KEY is a string representing a sequence of keystrokes.")
DEFUN ("define-prefix-command", Fdefine_prefix_command, Sdefine_prefix_command, 1, 2, 0, DEFUN ("define-prefix-command", Fdefine_prefix_command, Sdefine_prefix_command, 1, 2, 0,
"Define COMMAND as a prefix command.\n\ "Define COMMAND as a prefix command.\n\
A new sparse keymap is stored as COMMAND's function definition and its value.\n\ A new sparse keymap is stored as COMMAND's function definition and its value.\n\
If a second optional argument MAPVAR is given, the map is stored as its\n\ If a second optional argument MAPVAR is given, the map is stored as\n\
value instead of as COMMAND's value; but COMMAND is still defined as a function.") its value instead of as COMMAND's value; but COMMAND is still defined\n\
as a function.")
(name, mapvar) (name, mapvar)
Lisp_Object name, mapvar; Lisp_Object name, mapvar;
{ {
...@@ -959,7 +966,7 @@ Control characters turn into C-whatever, etc.") ...@@ -959,7 +966,7 @@ Control characters turn into C-whatever, etc.")
return Fsymbol_name (key); return Fsymbol_name (key);
case Lisp_Cons: /* Mouse event */ case Lisp_Cons: /* Mouse event */
key = XCONS (key)->cdr; key = XCONS (key)->car;
if (XTYPE (key) == Lisp_Symbol) if (XTYPE (key) == Lisp_Symbol)
return Fsymbol_name (key); return Fsymbol_name (key);
/* Mouse events should have an identifying symbol as their car; /* Mouse events should have an identifying symbol as their car;
......
...@@ -1321,7 +1321,7 @@ set_window_width (window, width, nodelete) ...@@ -1321,7 +1321,7 @@ set_window_width (window, width, nodelete)
} }
} }
static int window_select_count; int window_select_count;
DEFUN ("set-window-buffer", Fset_window_buffer, Sset_window_buffer, 2, 2, 0, DEFUN ("set-window-buffer", Fset_window_buffer, Sset_window_buffer, 2, 2, 0,
"Make WINDOW display BUFFER as its contents.\n\ "Make WINDOW display BUFFER as its contents.\n\
...@@ -2575,6 +2575,11 @@ init_window_once () ...@@ -2575,6 +2575,11 @@ init_window_once ()
Fset_window_buffer (minibuf_window, get_minibuffer (0)); Fset_window_buffer (minibuf_window, get_minibuffer (0));
selected_window = root_window; selected_window = root_window;
/* Make sure this window seems more recently used than
a newly-created, never-selected window. Increment
window_select_count so the first selection ever will get
something newer than this. */
XFASTINT (XWINDOW (selected_window)->use_time) = ++window_select_count;
#endif /* not MULTI_SCREEN */ #endif /* not MULTI_SCREEN */
} }
......
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