Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
6bbbd9b0
Commit
6bbbd9b0
authored
Jan 28, 1992
by
Jim Blandy
Browse files
*** empty log message ***
parent
760cbdd3
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
39 additions
and
35 deletions
+39
-35
src/keymap.c
src/keymap.c
+39
-16
src/xterm.c
src/xterm.c
+0
-19
No files found.
src/keymap.c
View file @
6bbbd9b0
...
...
@@ -24,6 +24,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "lisp.h"
#include "commands.h"
#include "buffer.h"
#include "keyboard.h"
#define min(a, b) ((a) < (b) ? (a) : (b))
...
...
@@ -67,6 +68,11 @@ Lisp_Object Vminibuffer_local_must_match_map;
/* Alist of minor mode variables and keymaps. */
Lisp_Object
Vminor_mode_map_alist
;
/* Keymap mapping ASCII function key sequences onto their preferred forms.
Initialized by the terminal-specific lisp files. See DEFVAR for more
documentation. */
Lisp_Object
Vfunction_key_map
;
Lisp_Object
Qkeymapp
,
Qkeymap
;
/* A char over 0200 in a key sequence
...
...
@@ -220,8 +226,8 @@ access_keymap (map, idx)
/* If idx is a list (some sort of mouse click, perhaps?),
the index we want to use is the car of the list, which
ought to be a symbol. */
if
(
XTYPE
(
idx
)
==
Lisp_Cons
)
idx
=
XCONS
(
idx
)
->
car
;
if
(
EVENT_HAS_PARAMETERS
(
idx
)
)
idx
=
EVENT_HEAD
(
idx
);
if
(
XTYPE
(
idx
)
==
Lisp_Int
&&
(
XINT
(
idx
)
<
0
||
XINT
(
idx
)
>=
DENSE_TABLE_SIZE
))
...
...
@@ -295,8 +301,8 @@ store_in_keymap (keymap, idx, def)
/* If idx is a list (some sort of mouse click, perhaps?),
the index we want to use is the car of the list, which
ought to be a symbol. */
if
(
XTYPE
(
idx
)
==
Lisp_Cons
)
idx
=
Fcar
(
idx
);
if
(
EVENT_HAS_PARAMETERS
(
idx
)
)
idx
=
EVENT_HEAD
(
idx
);
if
(
XTYPE
(
idx
)
==
Lisp_Int
&&
(
XINT
(
idx
)
<
0
||
XINT
(
idx
)
>=
DENSE_TABLE_SIZE
))
...
...
@@ -569,7 +575,8 @@ append_key (key_sequence, key)
/* Global, local, and minor mode keymap stuff. */
/* We can't put these variables inside current_minor_maps, since under
DGUX they dump as pure. Bleah. */
some systems, static gets macro-defined to be the empty string.
Ickypoo. */
static
Lisp_Object
*
cmm_modes
,
*
cmm_maps
;
static
int
cmm_size
;
...
...
@@ -594,15 +601,15 @@ current_minor_maps (modeptr, mapptr)
Lisp_Object
**
modeptr
,
**
mapptr
;
{
int
i
=
0
;
Lisp_Object
alist
,
assoc
,
var
;
Lisp_Object
alist
,
assoc
,
var
,
val
;
for
(
alist
=
Vminor_mode_map_alist
;
CONSP
(
alist
);
alist
=
XCONS
(
alist
)
->
cdr
)
if
(
CONSP
(
assoc
=
XCONS
(
alist
)
->
car
)
&&
XTYPE
(
var
=
XCONS
(
assoc
)
->
car
)
==
Lisp_Symbol
&&
!
NILP
(
Fboundp
(
var
)
)
&&
!
NILP
(
Fsymbol_value
(
var
)
))
&&
!
EQ
((
val
=
find_symbol_value
(
var
)),
Qunbound
)
&&
!
NILP
(
val
))
{
if
(
i
>=
cmm_size
)
{
...
...
@@ -687,7 +694,9 @@ The binding is probably a symbol with a function definition.")
DEFUN
(
"global-key-binding"
,
Fglobal_key_binding
,
Sglobal_key_binding
,
1
,
1
,
0
,
"Return the binding for command KEYS in current global keymap only.
\n
\
KEYS is a string, a sequence of keystrokes.
\n
\
The binding is probably a symbol with a function definition."
)
The binding is probably a symbol with a function definition.
\n
\
This function's return values are the same as those of lookup-key
\n
\
(which see)."
)
(
keys
)
Lisp_Object
keys
;
{
...
...
@@ -1089,6 +1098,9 @@ Control characters turn into C-whatever, etc.")
register
unsigned
char
c
;
char
tem
[
6
];
if
(
EVENT_HAS_PARAMETERS
(
key
))
key
=
EVENT_HEAD
(
key
);
switch
(
XTYPE
(
key
))
{
case
Lisp_Int
:
/* Normal character */
...
...
@@ -1099,13 +1111,6 @@ Control characters turn into C-whatever, etc.")
case
Lisp_Symbol
:
/* Function key or event-symbol */
return
Fsymbol_name
(
key
);
case
Lisp_Cons
:
/* Mouse event */
key
=
XCONS
(
key
)
->
car
;
if
(
XTYPE
(
key
)
==
Lisp_Symbol
)
return
Fsymbol_name
(
key
);
/* Mouse events should have an identifying symbol as their car;
fall through when this isn't the case. */
default:
error
(
"KEY must be an integer, cons, or symbol."
);
}
...
...
@@ -1804,6 +1809,24 @@ If two active keymaps bind the same key, the keymap appearing earlier\n\
in the list takes precedence."
);
Vminor_mode_map_alist
=
Qnil
;
DEFVAR_LISP
(
"function-key-map"
,
&
Vfunction_key_map
,
"Keymap mapping ASCII function key sequences onto their preferred forms.
\n
\
This allows Emacs to recognize function keys sent from ASCII
\n
\
terminals at any point in a key sequence.
\n
\
\n
\
The read-key-sequence function replaces subsequences bound by
\n
\
function-key-map with their bindings. When the current local and global
\n
\
keymaps have no binding for the current key sequence but
\n
\
function-key-map binds a suffix of the sequence to a vector,
\n
\
read-key-sequence replaces the matching suffix with its binding, and
\n
\
continues with the new sequence.
\n
\
\n
\
For example, suppose function-key-map binds `ESC O P' to [pf1].
\n
\
Typing `ESC O P' to read-key-sequence would return [pf1]. Typing
\n
\
`C-x ESC O P' would return [?\C-x pf1]. If [pf1] were a prefix
\n
\
key, typing `ESC O P x' would return [pf1 x]."
);
Vfunction_key_map
=
Fmake_sparse_keymap
();
Qsingle_key_description
=
intern
(
"single-key-description"
);
staticpro
(
&
Qsingle_key_description
);
...
...
src/xterm.c
View file @
6bbbd9b0
...
...
@@ -1286,21 +1286,12 @@ enum window_type
text_window
,
};
/* Symbol returned in input stream to indicate mouse movement. */
Lisp_Object
Qmouse_moved
;
/* Position of the mouse in characters */
unsigned
int
x_mouse_x
,
x_mouse_y
;
/* Emacs window the mouse is in, if any. */
extern
Lisp_Object
Vmouse_window
;
/* Offset in buffer of character under the pointer, or 0. */
extern
int
mouse_buffer_offset
;
/* Part of the screen the mouse is in. */
extern
Lisp_Object
Vmouse_screen_part
;
extern
int
buffer_posn_from_coords
();
/* Symbols from xfns.c to denote the different parts of a window. */
...
...
@@ -1701,10 +1692,6 @@ static char *events[] =
#define XEvent XKeyPressedEvent
#endif
/* HAVE_X11 */
/* Symbols returned in the input stream to indicate various X events. */
Lisp_Object
Qmouse_click
;
Lisp_Object
Qscrollbar_click
;
/* Timestamp of enter window event. This is only used by XTread_socket,
but we have to put it out here, since static variables within functions
sometimes don't work. */
...
...
@@ -1888,7 +1875,6 @@ XTread_socket (sd, bufp, numchars, waitp, expected)
disabled; you don't want to spend time updating a
display that won't ever be seen. */
s
->
visible
=
0
;
Vmouse_window
=
Vmouse_screen_part
=
Qnil
;
x_mouse_x
=
x_mouse_y
=
-
1
;
}
}
...
...
@@ -3323,7 +3309,6 @@ x_make_screen_visible (s)
#endif
/* not HAVE_X11 */
}
XRaiseWindow
(
XDISPLAY
s
->
display
.
x
->
window_desc
);
XFlushQueue
();
UNBLOCK_INPUT
;
...
...
@@ -3761,10 +3746,6 @@ syms_of_xterm ()
{
staticpro
(
&
invocation_name
);
invocation_name
=
Qnil
;
Qmouse_moved
=
intern
(
"mouse-moved"
);
Qmouse_click
=
intern
(
"mouse-click"
);
Qscrollbar_click
=
intern
(
"scrollbar-click"
);
}
#endif
/* HAVE_X11 */
#endif
/* HAVE_X_WINDOWS */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment