Merge remote-tracking branch 'krh/keysyms'
authorDaniel Stone <daniel@fooishbar.org>
Wed, 9 May 2012 19:12:12 +0000 (20:12 +0100)
committerDaniel Stone <daniel@fooishbar.org>
Wed, 9 May 2012 19:15:46 +0000 (20:15 +0100)
Conflicts:
src/keysym.c
src/misc.c
src/text.h
src/xkbcomp/expr.c
src/xkbcomp/parser.y
src/xkbcomp/parseutils.c
src/xkbcomp/symbols.c

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
12 files changed:
1  2 
Makefile.am
include/xkbcommon/xkbcommon.h
makekeys/makekeys.c
src/keysym.c
src/misc.c
src/xkb-priv.h
src/xkbcomp/compat.c
src/xkbcomp/expr.c
src/xkbcomp/parseutils.c
src/xkbcomp/symbols.c
test/state.c
test/xkey.c

diff --cc Makefile.am
@@@ -89,12 -85,16 +89,12 @@@ BUILT_SOURCES = 
        src/ks_tables.h
  CLEANFILES = $(BUILT_SOURCES)
  
 -noinst_PROGRAMS = makekeys/makekeys
 -makekeys_makekeys_SOURCES = makekeys/makekeys.c
 -makekeys_makekeys_CC = $(CC_FOR_BUILD)
 -makekeys_makekeys_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS_FOR_BUILD)
 -makekeys_makekeys_CFLAGS = $(AM_CFLAGS) $(CFLAGS_FOR_BUILD)
 -makekeys_makekeys_LDFLAGS = $(AM_LDFLAGS) $(LDFLAGS_FOR_BUILD)
 -
  src/ks_tables.h: $(KEYSYMDEFS) $(top_builddir)/makekeys/makekeys$(EXEEXT)
-       $(top_builddir)/makekeys/makekeys $(KEYSYMDEFS) > $@
+       $(top_builddir)/makekeys/makekeys $(top_srcdir)/include/xkbcommon/xkbcommon-keysyms.h > $@
  
 +$(top_builddir)/makekeys/makekeys$(EXEEXT): $(top_srcdir)/makekeys/makekeys.c
 +      $(MAKE) -C makekeys
 +
  # Tests
  
  TESTS_ENVIRONMENT =
Simple merge
@@@ -32,8 -32,8 +32,7 @@@ from The Open Group
   */
  
  #include "xkbcommon/xkbcommon.h"
 -#include "xkbcommon/xkbcommon-keysyms.h"
  
- #include <X11/keysymdef.h>
  #include <inttypes.h>
  #include <stdio.h>
  #include <stdlib.h>
diff --cc src/keysym.c
@@@ -28,13 -28,13 +28,12 @@@ authorization from the authors
  #include <stdlib.h>
  #include <stdio.h>
  #include <string.h>
- #include <X11/keysym.h>
  
 +#include "xkb-priv.h"
  #include "ks_tables.h"
 -#include "xkbmisc.h"
 -#include "xkbcommon/xkbcommon.h"
  
  _X_EXPORT void
 -xkb_keysym_to_string(xkb_keysym_t ks, char *buffer, size_t size)
 +xkb_keysym_get_name(xkb_keysym_t ks, char *buffer, size_t size)
  {
      int i, n, h, idx;
      const unsigned char *entry;
@@@ -156,9 -156,9 +155,9 @@@ xkb_keysym_from_name(const char *s
          xkb_keysym_t ret;
          tmp = strdup(s);
          if (!tmp)
-             return XKB_KEYSYM_NO_SYMBOL;
+             return XKB_KEY_NoSymbol;
          memmove(&tmp[4], &tmp[5], strlen(s) - 5 + 1);
 -        ret = xkb_string_to_keysym(tmp);
 +        ret = xkb_keysym_from_name(tmp);
          free(tmp);
          return ret;
      }
diff --cc src/misc.c
@@@ -24,10 -24,10 +24,8 @@@ THE USE OR PERFORMANCE OF THIS SOFTWARE
  
  ********************************************************/
  
- #include <X11/keysym.h>
 -#include "xkballoc.h"
 -#include "xkbmisc.h"
 -#include "xkbcommon/xkbcommon.h"
 -#include "XKBcommonint.h"
 +#include "xkb-priv.h"
 +#include "alloc.h"
  
  #define mapSize(m) (sizeof(m) / sizeof(struct xkb_kt_map_entry))
  static struct xkb_kt_map_entry map2Level[]= {
diff --cc src/xkb-priv.h
@@@ -415,54 -428,7 +415,54 @@@ struct xkb_state 
          int refcnt;
          void *filters;
          int num_filters;
 -        struct xkb_keymap *xkb;
 +        struct xkb_keymap *keymap;
  };
  
 -#endif /* _XKBCOMMONINT_H_ */
 +typedef uint32_t xkb_atom_t;
 +
 +#define XKB_ATOM_NONE 0
 +
 +xkb_atom_t
 +xkb_atom_intern(struct xkb_ctx *ctx, const char *string);
 +
 +char *
 +xkb_atom_strdup(struct xkb_ctx *ctx, xkb_atom_t atom);
 +
 +const char *
 +xkb_atom_text(struct xkb_ctx *ctx, xkb_atom_t atom);
 +
 +extern unsigned int
 +xkb_key_get_group(struct xkb_state *state, xkb_keycode_t key);
 +
 +extern unsigned int
 +xkb_key_get_level(struct xkb_state *state, xkb_keycode_t key,
 +                  unsigned int group);
 +
 +extern unsigned int
 +xkb_key_get_syms_by_level(struct xkb_keymap *keymap, xkb_keycode_t key,
 +                          unsigned int group, unsigned int level,
 +                          const xkb_keysym_t **syms_out);
 +
 +extern int
 +xkb_ctx_take_file_id(struct xkb_ctx *ctx);
 +
 +extern bool
 +XkbcComputeEffectiveMap(struct xkb_keymap *keymap, struct xkb_key_type *type,
 +                        unsigned char *map_rtrn);
 +
 +extern int
 +XkbcInitCanonicalKeyTypes(struct xkb_keymap *keymap, unsigned which,
 +                          int keypadVMod);
 +
 +extern unsigned
 +_XkbcKSCheckCase(xkb_keysym_t sym);
 +
 +#define _XkbKSLower (1 << 0)
 +#define _XkbKSUpper (1 << 1)
 +
 +#define XkbcKSIsLower(k) (_XkbcKSCheckCase(k) & _XkbKSLower)
 +#define XkbcKSIsUpper(k) (_XkbcKSCheckCase(k) & _XkbKSUpper)
 +
- #define XkbKSIsKeypad(k) (((k) >= XK_KP_Space) && ((k) <= XK_KP_Equal))
++#define XkbKSIsKeypad(k) (((k) >= XKB_KEY_KP_Space) && ((k) <= XKB_KEY_KP_Equal))
 +
 +#endif /* XKB_PRIV_H */
@@@ -886,11 -892,10 +886,11 @@@ UpdateActionMods(struct xkb_keymap *key
  /**
   * Find an interpretation which applies to this particular level, either by
   * finding an exact match for the symbol and modifier combination, or a
-  * generic XKB_KEYSYM_NO_SYMBOL match.
+  * generic XKB_KEY_NoSymbol match.
   */
  static struct xkb_sym_interpret *
 -FindInterpForKey(struct xkb_keymap *xkb, xkb_keycode_t key, uint32_t group, uint32_t level)
 +FindInterpForKey(struct xkb_keymap *keymap, xkb_keycode_t key,
 +                 uint32_t group, uint32_t level)
  {
      struct xkb_sym_interpret *ret = NULL;
      const xkb_keysym_t *syms;
@@@ -985,10 -982,10 +985,10 @@@ ExprResolveKeySym(struct xkb_ctx *ctx, 
      if (expr->op == ExprIdent)
      {
          const char *str;
 -        str = XkbcAtomText(expr->value.str);
 +        str = xkb_atom_text(ctx, expr->value.str);
          if (str) {
 -            sym = xkb_string_to_keysym(str);
 +            sym = xkb_keysym_from_name(str);
-             if (sym != XKB_KEYSYM_NO_SYMBOL) {
+             if (sym != XKB_KEY_NoSymbol) {
                  val_rtrn->uval = sym;
                  return true;
              }
   ********************************************************/
  
  #include "parseutils.h"
 -#include "xkbmisc.h"
 -#include "xkbpath.h"
 -#include "xkbparse.h"
  
- #include <X11/keysym.h>
  ParseCommon *
  AppendStmt(ParseCommon * to, ParseCommon * append)
  {
@@@ -543,11 -544,11 +541,11 @@@ LookupKeysym(const char *str, xkb_keysy
      else if ((strcasecmp(str, "none") == 0) ||
               (strcasecmp(str, "voidsymbol") == 0))
      {
-         *sym_rtrn = XK_VoidSymbol;
+         *sym_rtrn = XKB_KEY_VoidSymbol;
          return 1;
      }
 -    sym = xkb_string_to_keysym(str);
 +    sym = xkb_keysym_from_name(str);
-     if (sym != XKB_KEYSYM_NO_SYMBOL)
+     if (sym != XKB_KEY_NoSymbol)
      {
          *sym_rtrn = sym;
          return 1;
  
   ********************************************************/
  
- #include <X11/keysym.h>
 -#include "xkbcomp.h"
 -#include "xkballoc.h"
 -#include "xkbmisc.h"
 -#include "expr.h"
 +#include "xkbcomp-priv.h"
  #include "parseutils.h"
 -
 -#include <stdlib.h>
 -
 -#include "expr.h"
 -#include "vmod.h"
  #include "action.h"
 -#include "keycodes.h"
 -#include "misc.h"
  #include "alias.h"
 +#include "keycodes.h"
 +#include "vmod.h"
  
  /***====================================================================***/
  
@@@ -1070,9 -1076,9 +1068,9 @@@ AddSymbolsToKey(KeyInfo *key, struct xk
                                &key->syms[ndx][key->symsMapIndex[ndx][i] + j])) {
                  WARN("Could not resolve keysym %s for key %s, group %d (%s), level %d\n",
                       value->value.list.syms[i], longText(key->name), ndx + 1,
 -                     XkbcAtomText(info->groupNames[ndx]), nSyms);
 +                     xkb_atom_text(keymap->ctx, info->groupNames[ndx]), nSyms);
                  while (--j >= 0)
-                     key->syms[ndx][key->symsMapIndex[ndx][i] + j] = NoSymbol;
+                     key->syms[ndx][key->symsMapIndex[ndx][i] + j] = XKB_KEY_NoSymbol;
                  key->symsMapIndex[ndx][i] = -1;
                  key->symsMapNumEntries[ndx][i] = 0;
                  break;
diff --cc test/state.c
@@@ -151,20 -130,20 +150,20 @@@ test_update_key(struct xkb_keymap *keym
      xkb_state_update_key(state, KEY_CAPSLOCK + EVDEV_OFFSET, XKB_KEY_UP);
      fprintf(stderr, "dumping state for Caps Lock:\n");
      print_state(state);
 -    assert(xkb_state_mod_name_is_active(state, "Caps Lock",
 +    assert(xkb_state_mod_name_is_active(state, XKB_MOD_NAME_CAPS,
                                          XKB_STATE_LOCKED));
 -    assert(xkb_state_led_name_is_active(state, "Caps Lock"));
 +    assert(xkb_state_led_name_is_active(state, XKB_MOD_NAME_CAPS));
      num_syms = xkb_key_get_syms(state, KEY_Q + EVDEV_OFFSET, &syms);
-     assert(num_syms == 1 && syms[0] == XK_Q);
+     assert(num_syms == 1 && syms[0] == XKB_KEY_Q);
  
      /* Caps unlocked */
      xkb_state_update_key(state, KEY_CAPSLOCK + EVDEV_OFFSET, XKB_KEY_DOWN);
      xkb_state_update_key(state, KEY_CAPSLOCK + EVDEV_OFFSET, XKB_KEY_UP);
 -    assert(!xkb_state_mod_name_is_active(state, "Caps Lock",
 +    assert(!xkb_state_mod_name_is_active(state, XKB_MOD_NAME_CAPS,
                                           XKB_STATE_EFFECTIVE));
 -    assert(!xkb_state_led_name_is_active(state, "Caps Lock"));
 +    assert(!xkb_state_led_name_is_active(state, XKB_MOD_NAME_CAPS));
      num_syms = xkb_key_get_syms(state, KEY_Q + EVDEV_OFFSET, &syms);
-     assert(num_syms == 1 && syms[0] == XK_q);
+     assert(num_syms == 1 && syms[0] == XKB_KEY_q);
  
      xkb_state_unref(state);
  }
diff --cc test/xkey.c
Simple merge