Remove bogus euro sign entry from keysymtab
[platform/upstream/libxkbcommon.git] / src / text.c
index 8d26d19..60edb03 100644 (file)
@@ -24,6 +24,8 @@
  *
  ********************************************************/
 
+#include "config.h"
+
 #include "keymap.h"
 #include "text.h"
 
@@ -204,6 +206,7 @@ const LookupEntry symInterpretMatchMaskNames[] = {
     { "AnyOf", MATCH_ANY },
     { "AllOf", MATCH_ALL },
     { "Exactly", MATCH_EXACTLY },
+    { NULL, 0 },
 };
 
 const char *
@@ -213,10 +216,10 @@ ModIndexText(struct xkb_context *ctx, const struct xkb_mod_set *mods,
     if (ndx == XKB_MOD_INVALID)
         return "none";
 
-    if (ndx >= darray_size(mods->mods))
+    if (ndx >= mods->num_mods)
         return NULL;
 
-    return xkb_atom_text(ctx, darray_item(mods->mods, ndx).name);
+    return xkb_atom_text(ctx, mods->mods[ndx].name);
 }
 
 const char *
@@ -254,7 +257,7 @@ const char *
 ModMaskText(struct xkb_context *ctx, const struct xkb_mod_set *mods,
             xkb_mod_mask_t mask)
 {
-    char buf[1024];
+    char buf[1024] = {0};
     size_t pos = 0;
     xkb_mod_index_t i;
     const struct xkb_mod *mod;
@@ -265,7 +268,7 @@ ModMaskText(struct xkb_context *ctx, const struct xkb_mod_set *mods,
     if (mask == MOD_REAL_MASK_ALL)
         return "all";
 
-    darray_enumerate(i, mod, mods->mods) {
+    xkb_mods_enumerate(i, mod, mods) {
         int ret;
 
         if (!(mask & (1u << i)))