summaryrefslogtreecommitdiff
path: root/src/keymap.h
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2011-09-10 17:41:48 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2011-09-10 17:41:48 -0700
commit6612f0bffdb752b729a2245bc8beeff1bf6858e3 (patch)
tree140acfb7c4808698a86f160ae6b5e3458160bde5 /src/keymap.h
parente21bac426b787ac0f03c3a64341ec98995ea8262 (diff)
* keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
here ... * lisp.h: ... from here. push_key_description is no longer defined in keyboard.c, so its declaration should not be in lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE logically belongs with push_key_description.
Diffstat (limited to 'src/keymap.h')
-rw-r--r--src/keymap.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/keymap.h b/src/keymap.h
index ec9d4cadbb..a989f124b1 100644
--- a/src/keymap.h
+++ b/src/keymap.h
@@ -19,6 +19,16 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef KEYMAP_H
#define KEYMAP_H
+/* The maximum byte size consumed by push_key_description.
+ All callers should assure that at least this size of memory is
+ allocated at the place pointed by the second argument.
+
+ There are 6 modifiers, each consumes 2 chars.
+ The octal form of a character code consumes
+ (1 + CHARACTERBITS / 3 + 1) chars (including backslash at the head).
+ We need one more byte for string terminator `\0'. */
+#define KEY_DESCRIPTION_SIZE ((2 * 6) + 1 + (CHARACTERBITS / 3) + 1 + 1)
+
#define KEYMAPP(m) (!NILP (get_keymap (m, 0, 0)))
extern Lisp_Object Qkeymap, Qmenu_bar;
extern Lisp_Object Qremap;
@@ -30,6 +40,7 @@ EXFUN (Fdefine_key, 3);
EXFUN (Fcommand_remapping, 3);
EXFUN (Fkey_binding, 4);
EXFUN (Fkey_description, 2);
+extern char *push_key_description (EMACS_INT, char *, int);
EXFUN (Fsingle_key_description, 2);
EXFUN (Fwhere_is_internal, 5);
EXFUN (Fcurrent_active_maps, 2);