Remove a couple more uses of static char buffers
authorRan Benita <ran234@gmail.com>
Thu, 18 Oct 2012 20:55:17 +0000 (22:55 +0200)
committerRan Benita <ran234@gmail.com>
Thu, 18 Oct 2012 20:55:17 +0000 (22:55 +0200)
Signed-off-by: Ran Benita <ran234@gmail.com>
src/text.c
src/xkbcomp/compat.c

index 39fa83e..2d5cefb 100644 (file)
@@ -288,10 +288,8 @@ ActionTypeText(unsigned type)
 const char *
 KeysymText(struct xkb_context *ctx, xkb_keysym_t sym)
 {
-    static char buffer[64];
-
-    xkb_keysym_get_name(sym, buffer, sizeof buffer);
-
+    char *buffer = xkb_context_get_buffer(ctx, 64);
+    xkb_keysym_get_name(sym, buffer, 64);
     return buffer;
 }
 
index 9aca92f..fb654a6 100644 (file)
@@ -271,15 +271,16 @@ typedef struct {
 static const char *
 siText(SymInterpInfo *si, CompatInfo *info)
 {
-    static char buf[128];
+    char *buf = xkb_context_get_buffer(info->keymap->ctx, 128);
 
     if (si == &info->dflt)
         return "default";
 
-    snprintf(buf, sizeof(buf), "%s+%s(%s)",
+    snprintf(buf, 128, "%s+%s(%s)",
              KeysymText(info->keymap->ctx, si->interp.sym),
              SIMatchText(si->interp.match),
              ModMaskText(info->keymap, si->interp.mods));
+
     return buf;
 }