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 =
*/
#include "xkbcommon/xkbcommon.h"
-#include "xkbcommon/xkbcommon-keysyms.h"
- #include <X11/keysymdef.h>
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#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;
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;
}
********************************************************/
- #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[]= {
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 */
/**
* 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;
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)
{
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"
/***====================================================================***/
&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;
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);
}