summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRan Benita <ran234@gmail.com>2012-07-11 18:00:31 +0300
committerDaniel Stone <daniel@fooishbar.org>2012-07-12 09:42:20 +0100
commit1f492901314baae0172c19414fac6829089f97a4 (patch)
tree1e105e53478b4c46f7015f93eedf53ea21de95e6
parent010242593e63a6b6d763de1b446097cccf876ad8 (diff)
downloadlibxkbcommon-1f492901314baae0172c19414fac6829089f97a4.tar.gz
libxkbcommon-1f492901314baae0172c19414fac6829089f97a4.tar.bz2
libxkbcommon-1f492901314baae0172c19414fac6829089f97a4.zip
Enlarge keysym name buffers and mention in comment
The longest keysym is 27 chars long. Signed-off-by: Ran Benita <ran234@gmail.com>
-rw-r--r--include/xkbcommon/xkbcommon.h4
-rw-r--r--src/keymap-dump.c2
-rw-r--r--src/text.c2
-rw-r--r--test/keyseq.c2
4 files changed, 6 insertions, 4 deletions
diff --git a/include/xkbcommon/xkbcommon.h b/include/xkbcommon/xkbcommon.h
index 31d0dcf..14d5045 100644
--- a/include/xkbcommon/xkbcommon.h
+++ b/include/xkbcommon/xkbcommon.h
@@ -140,12 +140,14 @@ extern "C" {
/*
* Returns the name for a keysym as a string; will return unknown Unicode
* codepoints as "Ua1b2", and other unknown keysyms as "0xabcd1234".
+ * If the buffer passed is too small, the string is truncated; a size of
+ * at least 32 bytes is recommended.
*/
void
xkb_keysym_get_name(xkb_keysym_t ks, char *buffer, size_t size);
/*
- * See xkb_keysym_to_string comments: this function will accept any string
+ * See xkb_keysym_get_name comments: this function will accept any string
* from that function.
*/
xkb_keysym_t
diff --git a/src/keymap-dump.c b/src/keymap-dump.c
index 7225fea..faa8d43 100644
--- a/src/keymap-dump.c
+++ b/src/keymap-dump.c
@@ -646,7 +646,7 @@ write_compat(struct xkb_keymap *keymap, char **buf, size_t *size,
if (interp->sym == XKB_KEY_NoSymbol)
sprintf(keysym_name, "Any");
else
- xkb_keysym_get_name(interp->sym, keysym_name, 64);
+ xkb_keysym_get_name(interp->sym, keysym_name, sizeof(keysym_name));
write_buf(keymap, buf, size, offset, "\t\tinterpret %s+%s(%s) {\n",
keysym_name,
diff --git a/src/text.c b/src/text.c
index d30c4b7..9db34d5 100644
--- a/src/text.c
+++ b/src/text.c
@@ -241,7 +241,7 @@ XkbcActionTypeText(unsigned type)
const char *
XkbcKeysymText(xkb_keysym_t sym)
{
- static char buffer[16];
+ static char buffer[64];
xkb_keysym_get_name(sym, buffer, sizeof buffer);
diff --git a/test/keyseq.c b/test/keyseq.c
index 2177fcc..4bf9d4f 100644
--- a/test/keyseq.c
+++ b/test/keyseq.c
@@ -68,7 +68,7 @@ test_key_seq(struct xkb_keymap *keymap, ...)
const xkb_keysym_t *syms;
unsigned int nsyms, i;
- char ksbuf[16];
+ char ksbuf[64];
state = xkb_state_new(keymap);
assert(state);