diff --git a/include/xkbfile.h b/include/xkbfile.h index 706f94018..317f15937 100644 --- a/include/xkbfile.h +++ b/include/xkbfile.h @@ -71,21 +71,6 @@ typedef void (*XkbFileAddOnFunc) (FILE * /* file */ , _XFUNCPROTOBEGIN -#define _XkbKSLower (1<<0) -#define _XkbKSUpper (1<<1) - -#define XkbKSIsLower(k) (_XkbKSCheckCase(k)&_XkbKSLower) -#define XkbKSIsUpper(k) (_XkbKSCheckCase(k)&_XkbKSUpper) -#define XkbKSIsKeypad(k) (((k)>=XK_KP_Space)&&((k)<=XK_KP_Equal)) - -extern _X_EXPORT unsigned _XkbKSCheckCase(KeySym /* sym */ - ); - -extern _X_EXPORT int XkbFindKeycodeByName(XkbDescPtr /* xkb */ , - char * /* name */ , - Bool /* use_aliases */ - ); - extern _X_EXPORT Bool XkbWriteXKBKeycodes(FILE * /* file */ , XkbDescPtr /* result */ , Bool /* topLevel */ , @@ -126,14 +111,6 @@ extern _X_EXPORT Bool XkbWriteXKBGeometry(FILE * /* file */ , void * /* priv */ ); -extern _X_EXPORT Bool XkbWriteXKBKeymapForNames(FILE * /* file */ , - XkbComponentNamesPtr /* names */ - , - XkbDescPtr /* xkb */ , - unsigned /* want */ , - unsigned /* need */ - ); - /***====================================================================***/ extern _X_EXPORT unsigned XkmReadFile(FILE * /* file */ , diff --git a/xkb/XKBMisc.c b/xkb/XKBMisc.c index cf582cffd..abbfed90e 100644 --- a/xkb/XKBMisc.c +++ b/xkb/XKBMisc.c @@ -29,9 +29,12 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include #include #include +#include + +#include "xkb/xkbfmisc_priv.h" + #include "misc.h" #include "inputstr.h" -#include #include /***====================================================================***/ diff --git a/xkb/ddxLoad.c b/xkb/ddxLoad.c index 379a555b4..4446af8dc 100644 --- a/xkb/ddxLoad.c +++ b/xkb/ddxLoad.c @@ -40,6 +40,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "dix/dix_priv.h" #include "os/osdep.h" +#include "xkb/xkbfmisc_priv.h" #include "inputstr.h" #include "scrnintstr.h" diff --git a/xkb/xkb.c b/xkb/xkb.c index f553ef739..85659382d 100644 --- a/xkb/xkb.c +++ b/xkb/xkb.c @@ -34,6 +34,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "dix/dix_priv.h" #include "os/osdep.h" +#include "xkb/xkbfmisc_priv.h" #include "misc.h" #include "inputstr.h" diff --git a/xkb/xkbfmisc.c b/xkb/xkbfmisc.c index a2063e40f..c09c11b1a 100644 --- a/xkb/xkbfmisc.c +++ b/xkb/xkbfmisc.c @@ -29,14 +29,15 @@ #include #include #include - #include #include #include - #include #include #include + +#include "xkb/xkbfmisc_priv.h" + #include "misc.h" #include "inputstr.h" #include "dix.h" diff --git a/xkb/xkbfmisc_priv.h b/xkb/xkbfmisc_priv.h new file mode 100644 index 000000000..b08947b91 --- /dev/null +++ b/xkb/xkbfmisc_priv.h @@ -0,0 +1,79 @@ +/* SPDX-License-Identifier: MIT OR X11 + * + * Copyright © 2024 Enrico Weigelt, metux IT consult + */ +#ifndef _XSERVER_XKB_XKBFMISC_PRIV_H +#define _XSERVER_XKB_XKBFMISC_PRIV_H + +/* needed for X11/keysymdef.h to define all symdefs */ +#define XK_MISCELLANY + +#include +#include +#include +#include + +#include "xkbstr.h" + +/* + * return mask bits for _XkbKSCheckCase() + */ +#define _XkbKSLower (1<<0) +#define _XkbKSUpper (1<<1) + +/* + * check whether given KeySym is a upper or lower case key + * + * @param sym the KeySym to check + * @return mask of _XkbKS* flags + */ +unsigned int _XkbKSCheckCase(KeySym sym); + +/* + * check whether given KeySym is an lower case key + * + * @param k the KeySym to check + * @return TRUE if k is a lower case key + */ +static inline Bool XkbKSIsLower(KeySym k) { return _XkbKSCheckCase(k)&_XkbKSLower; } + +/* + * check whether given KeySym is an upper case key + * + * @param k the KeySym to check + * @return TRUE if k is a upper case key + */ +static inline Bool XkbKSIsUpper(KeySym k) { return _XkbKSCheckCase(k)&_XkbKSUpper; } + +/* + * check whether given KeySym is an keypad key + * + * @param k the KeySym to check + * @return TRUE if k is a keypad key + */ +static inline Bool XkbKSIsKeypad(KeySym k) { return (((k)>=XK_KP_Space)&&((k)<=XK_KP_Equal)); } + +/* + * find a keycode by its name + * + * @param xkb pointer to xkb descriptor + * @param name the key name + * @param use_aliases TRUE if aliases should be resolved + * @return keycode ID + */ +int XkbFindKeycodeByName(XkbDescPtr xkb, char *name, Bool use_aliases); + +/* + * write keymap for given component names + * + * @param file the FILE to write to + * @param names pointer to list of keymap component names to write out + * @param xkb pointer to xkb descriptor + * @param want bitmask of wanted elements + * @param need bitmask of needed elements + * @return TRUE if succeeded +*/ +Bool XkbWriteXKBKeymapForNames(FILE *file, XkbComponentNamesPtr names, + XkbDescPtr xkb, unsigned want, unsigned need); + +#endif /* _XSERVER_XKB_XKBFMISC_PRIV_H */ diff --git a/xkb/xkbout.c b/xkb/xkbout.c index 98130fc32..1fd45e7af 100644 --- a/xkb/xkbout.c +++ b/xkb/xkbout.c @@ -35,6 +35,7 @@ #include #include +#include "xkb/xkbfmisc_priv.h" #include "xkb/xkbtext_priv.h" #include "misc.h" diff --git a/xkb/xkmread.c b/xkb/xkmread.c index 45da55660..b40f8fc64 100644 --- a/xkb/xkmread.c +++ b/xkb/xkmread.c @@ -27,14 +27,15 @@ #include #include - #include #include - #include #include #include #include + +#include "xkb/xkbfmisc_priv.h" + #include "misc.h" #include "inputstr.h" #include "xkbstr.h"