Enlarge keysym name buffers and mention in comment
authorRan Benita <ran234@gmail.com>
Wed, 11 Jul 2012 15:00:31 +0000 (18:00 +0300)
committerDaniel Stone <daniel@fooishbar.org>
Thu, 12 Jul 2012 08:42:20 +0000 (09:42 +0100)
The longest keysym is 27 chars long.

Signed-off-by: Ran Benita <ran234@gmail.com>
include/xkbcommon/xkbcommon.h
src/keymap-dump.c
src/text.c
test/keyseq.c

index 31d0dcf..14d5045 100644 (file)
@@ -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
index 7225fea..faa8d43 100644 (file)
@@ -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,
index d30c4b7..9db34d5 100644 (file)
@@ -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);
 
index 2177fcc..4bf9d4f 100644 (file)
@@ -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);