diff options
Diffstat (limited to 'action.c')
-rw-r--r-- | action.c | 255 |
1 files changed, 20 insertions, 235 deletions
@@ -24,6 +24,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ +/* $XFree86: xc/programs/xkbcomp/action.c,v 3.11 2002/11/22 22:56:04 tsi Exp $ */ #include "xkbcomp.h" #include "tokens.h" @@ -31,6 +32,7 @@ #include "keycodes.h" #include "vmod.h" +#include "misc.h" #include "action.h" #include "misc.h" @@ -41,13 +43,7 @@ static ExprDef constFalse; /***====================================================================***/ static Bool -#if NeedFunctionPrototypes stringToAction(char *str,unsigned *type_rtrn) -#else -stringToAction(str,type_rtrn) - char * str; - unsigned * type_rtrn; -#endif { if (str==NULL) return False; @@ -108,13 +104,7 @@ stringToAction(str,type_rtrn) } static Bool -#if NeedFunctionPrototypes stringToField(char *str,unsigned *field_rtrn) -#else -stringToField(str,field_rtrn) - char * str; - unsigned * field_rtrn; -#endif { if (str==NULL) @@ -159,12 +149,7 @@ stringToField(str,field_rtrn) } static char * -#if NeedFunctionPrototypes fieldText(unsigned field) -#else -fieldText(field) - unsigned field; -#endif { static char buf[32]; @@ -200,14 +185,7 @@ static char buf[32]; /***====================================================================***/ static Bool -#if NeedFunctionPrototypes ReportMismatch(unsigned action,unsigned field,char *type) -#else -ReportMismatch(action,field,type) - unsigned action; - unsigned field; - char * type; -#endif { ERROR2("Value of %s field must be of type %s\n",fieldText(field),type); ACTION1("Action %s definition ignored\n", @@ -216,13 +194,7 @@ ReportMismatch(action,field,type) } static Bool -#if NeedFunctionPrototypes ReportIllegal(unsigned action,unsigned field) -#else -ReportIllegal(action,field) - unsigned action; - unsigned field; -#endif { ERROR2("Field %s is not defined for an action of type %s\n", fieldText(field), @@ -232,13 +204,7 @@ ReportIllegal(action,field) } static Bool -#if NeedFunctionPrototypes ReportActionNotArray(unsigned action,unsigned field) -#else -ReportActionNotArray(action,field) - unsigned action; - unsigned field; -#endif { ERROR2("The %s field in the %s action is not an array\n", fieldText(field), @@ -248,15 +214,7 @@ ReportActionNotArray(action,field) } static Bool -#if NeedFunctionPrototypes ReportNotFound(unsigned action,unsigned field,char *what,char *bad) -#else -ReportNotFound(action,field,what,bad) - unsigned action; - unsigned field; - char * what; - char * bad; -#endif { ERROR2("%s named %s not found\n",what,bad); ACTION2("Ignoring the %s field of an %s action\n",fieldText(field), @@ -265,37 +223,20 @@ ReportNotFound(action,field,what,bad) } static Bool -#if NeedFunctionPrototypes HandleNoAction( XkbDescPtr xkb, XkbAnyAction * action, unsigned field, ExprDef * array_ndx, ExprDef * value) -#else -HandleNoAction(xkb,action,field,array_ndx,value) - XkbDescPtr xkb; - XkbAnyAction * action; - unsigned field; - ExprDef * array_ndx; - ExprDef * value; -#endif { return ReportIllegal(action->type,field); } static Bool -#if NeedFunctionPrototypes CheckLatchLockFlags( unsigned action, unsigned field, ExprDef * value, unsigned * flags_inout) -#else -CheckLatchLockFlags(action,field,value,flags_inout) - unsigned action; - unsigned field; - ExprDef * value; - unsigned * flags_inout; -#endif { unsigned tmp; ExprResult result; @@ -311,20 +252,11 @@ ExprResult result; } static Bool -#if NeedFunctionPrototypes CheckModifierField( XkbDescPtr xkb, unsigned action, ExprDef * value, unsigned * flags_inout, unsigned * mods_rtrn) -#else -CheckModifierField(xkb,action,value,flags_inout,mods_rtrn) - XkbDescPtr xkb; - unsigned action; - ExprDef * value; - unsigned * flags_inout; - unsigned * mods_rtrn; -#endif { ExprResult rtrn; @@ -347,20 +279,11 @@ ExprResult rtrn; } static Bool -#if NeedFunctionPrototypes HandleSetLatchMods( XkbDescPtr xkb, XkbAnyAction * action, unsigned field, ExprDef * array_ndx, ExprDef * value) -#else -HandleSetLatchMods(xkb,action,field,array_ndx,value) - XkbDescPtr xkb; - XkbAnyAction * action; - unsigned field; - ExprDef * array_ndx; - ExprDef * value; -#endif { XkbModAction * act; unsigned rtrn; @@ -398,20 +321,11 @@ unsigned t1,t2; } static Bool -#if NeedFunctionPrototypes HandleLockMods( XkbDescPtr xkb, XkbAnyAction * action, unsigned field, ExprDef * array_ndx, ExprDef * value) -#else -HandleLockMods(xkb,action,field,array_ndx,value) - XkbDescPtr xkb; - XkbAnyAction * action; - unsigned field; - ExprDef * array_ndx; - ExprDef * value; -#endif { XkbModAction * act; unsigned t1,t2; @@ -447,18 +361,10 @@ static LookupEntry groupNames[] = { }; static Bool -#if NeedFunctionPrototypes CheckGroupField( unsigned action, ExprDef * value, unsigned * flags_inout, int * grp_rtrn) -#else -CheckGroupField(action,value,flags_inout,grp_rtrn) - unsigned action; - ExprDef * value; - unsigned * flags_inout; - int * grp_rtrn; -#endif { ExprDef * spec; ExprResult rtrn; @@ -488,20 +394,11 @@ ExprResult rtrn; } static Bool -#if NeedFunctionPrototypes HandleSetLatchGroup( XkbDescPtr xkb, XkbAnyAction * action, unsigned field, ExprDef * array_ndx, ExprDef * value) -#else -HandleSetLatchGroup(xkb,action,field,array_ndx,value) - XkbDescPtr xkb; - XkbAnyAction * action; - unsigned field; - ExprDef * array_ndx; - ExprDef * value; -#endif { XkbGroupAction * act; unsigned rtrn; @@ -538,20 +435,11 @@ int t2; } static Bool -#if NeedFunctionPrototypes HandleLockGroup( XkbDescPtr xkb, XkbAnyAction * action, unsigned field, ExprDef * array_ndx, ExprDef * value) -#else -HandleLockGroup(xkb,action,field,array_ndx,value) - XkbDescPtr xkb; - XkbAnyAction * action; - unsigned field; - ExprDef * array_ndx; - ExprDef * value; -#endif { XkbGroupAction * act; unsigned t1; @@ -573,20 +461,11 @@ int t2; } static Bool -#if NeedFunctionPrototypes HandleMovePtr( XkbDescPtr xkb, XkbAnyAction * action, unsigned field, ExprDef * array_ndx, ExprDef * value) -#else -HandleMovePtr(xkb,action,field,array_ndx,value) - XkbDescPtr xkb; - XkbAnyAction * action; - unsigned field; - ExprDef * array_ndx; - ExprDef * value; -#endif { ExprResult rtrn; XkbPtrAction * act; @@ -642,20 +521,11 @@ static LookupEntry lockWhich[] = { }; static Bool -#if NeedFunctionPrototypes HandlePtrBtn( XkbDescPtr xkb, XkbAnyAction * action, unsigned field, ExprDef * array_ndx, ExprDef * value) -#else -HandlePtrBtn(xkb,action,field,array_ndx,value) - XkbDescPtr xkb; - XkbAnyAction * action; - unsigned field; - ExprDef * array_ndx; - ExprDef * value; -#endif { ExprResult rtrn; XkbPtrBtnAction * act; @@ -707,20 +577,11 @@ static LookupEntry ptrDflts[] = { }; static Bool -#if NeedFunctionPrototypes HandleSetPtrDflt( XkbDescPtr xkb, XkbAnyAction * action, unsigned field, ExprDef * array_ndx, ExprDef * value) -#else -HandleSetPtrDflt(xkb,action,field,array_ndx,value) - XkbDescPtr xkb; - XkbAnyAction * action; - unsigned field; - ExprDef * array_ndx; - ExprDef * value; -#endif { ExprResult rtrn; XkbPtrDfltAction * act; @@ -782,20 +643,11 @@ static LookupEntry isoNames[] = { }; static Bool -#if NeedFunctionPrototypes HandleISOLock( XkbDescPtr xkb, XkbAnyAction * action, unsigned field, ExprDef * array_ndx, ExprDef * value) -#else -HandleISOLock(xkb,action,field,array_ndx,value) - XkbDescPtr xkb; - XkbAnyAction * action; - unsigned field; - ExprDef * array_ndx; - ExprDef * value; -#endif { ExprResult rtrn; XkbISOAction * act; @@ -838,20 +690,11 @@ int group; } static Bool -#if NeedFunctionPrototypes HandleSwitchScreen( XkbDescPtr xkb, XkbAnyAction * action, unsigned field, ExprDef * array_ndx, ExprDef * value) -#else -HandleSwitchScreen(xkb,action,field,array_ndx,value) - XkbDescPtr xkb; - XkbAnyAction * action; - unsigned field; - ExprDef * array_ndx; - ExprDef * value; -#endif { ExprResult rtrn; XkbSwitchScreenAction * act; @@ -906,7 +749,6 @@ LookupEntry ctrlNames[]= { { "accessxkeys", XkbAccessXKeysMask }, { "accessxtimeout", XkbAccessXTimeoutMask }, { "accessxfeedback", XkbAccessXFeedbackMask }, - { "groupswrap", XkbGroupsWrapMask }, { "audiblebell", XkbAudibleBellMask }, { "overlay1", XkbOverlay1Mask }, { "overlay2", XkbOverlay2Mask }, @@ -917,20 +759,11 @@ LookupEntry ctrlNames[]= { }; static Bool -#if NeedFunctionPrototypes HandleSetLockControls( XkbDescPtr xkb, XkbAnyAction * action, unsigned field, ExprDef * array_ndx, ExprDef * value) -#else -HandleSetLockControls(xkb,action,field,array_ndx,value) - XkbDescPtr xkb; - XkbAnyAction * action; - unsigned field; - ExprDef * array_ndx; - ExprDef * value; -#endif { ExprResult rtrn; XkbCtrlsAction * act; @@ -958,20 +791,11 @@ static LookupEntry evNames[]= { }; static Bool -#if NeedFunctionPrototypes HandleActionMessage( XkbDescPtr xkb, XkbAnyAction * action, unsigned field, ExprDef * array_ndx, ExprDef * value) -#else -HandleActionMessage(xkb,action,field,array_ndx,value) - XkbDescPtr xkb; - XkbAnyAction * action; - unsigned field; - ExprDef * array_ndx; - ExprDef * value; -#endif { ExprResult rtrn; XkbMessageAction * act; @@ -1036,20 +860,11 @@ XkbMessageAction * act; } static Bool -#if NeedFunctionPrototypes HandleRedirectKey( XkbDescPtr xkb, XkbAnyAction * action, unsigned field, ExprDef * array_ndx, ExprDef * value) -#else -HandleRedirectKey(xkb,action,field,array_ndx,value) - XkbDescPtr xkb; - XkbAnyAction * action; - unsigned field; - ExprDef * array_ndx; - ExprDef * value; -#endif { ExprResult rtrn; XkbRedirectKeyAction * act; @@ -1097,20 +912,11 @@ unsigned long tmp; } static Bool -#if NeedFunctionPrototypes HandleDeviceBtn( XkbDescPtr xkb, XkbAnyAction * action, unsigned field, ExprDef * array_ndx, ExprDef * value) -#else -HandleDeviceBtn(xkb,action,field,array_ndx,value) - XkbDescPtr xkb; - XkbAnyAction * action; - unsigned field; - ExprDef * array_ndx; - ExprDef * value; -#endif { ExprResult rtrn; XkbDeviceBtnAction * act; @@ -1168,20 +974,28 @@ XkbDeviceBtnAction * act; } static Bool -#if NeedFunctionPrototypes +HandleDeviceValuator( XkbDescPtr xkb, + XkbAnyAction * action, + unsigned field, + ExprDef * array_ndx, + ExprDef * value) +{ +#if 0 +ExprResult rtrn; +XkbDeviceValuatorAction * act; + + act= (XkbDeviceValuatorAction *)action; + /* XXX - Not yet implemented */ +#endif + return False; +} + +static Bool HandlePrivate( XkbDescPtr xkb, XkbAnyAction * action, unsigned field, ExprDef * array_ndx, ExprDef * value) -#else -HandlePrivate(xkb,action,field,array_ndx,value) - XkbDescPtr xkb; - XkbAnyAction * action; - unsigned field; - ExprDef * array_ndx; - ExprDef * value; -#endif { ExprResult rtrn; @@ -1239,13 +1053,11 @@ ExprResult rtrn; } typedef Bool (*actionHandler)( -#if NeedFunctionPrototypes XkbDescPtr /* xkb */, XkbAnyAction * /* action */, unsigned /* field */, ExprDef * /* array_ndx */, ExprDef * /* value */ -#endif ); static actionHandler handleAction[XkbSA_NumActions+1] = { @@ -1269,18 +1081,14 @@ static actionHandler handleAction[XkbSA_NumActions+1] = { HandleRedirectKey /* RedirectKey */, HandleDeviceBtn /* DeviceBtn */, HandleDeviceBtn /* LockDeviceBtn*/, + HandleDeviceValuator /* DeviceValuatr*/, HandlePrivate /* Private */ }; /***====================================================================***/ static void -#if NeedFunctionPrototypes ApplyActionFactoryDefaults(XkbAction *action) -#else -ApplyActionFactoryDefaults(action) - XkbAction * action; -#endif { if (action->type==XkbSA_SetPtrDflt) { /* increment default button */ action->dflt.affect= XkbSA_AffectDfltBtn; @@ -1295,20 +1103,11 @@ ApplyActionFactoryDefaults(action) int -#if NeedFunctionPrototypes HandleActionDef( ExprDef * def, XkbDescPtr xkb, XkbAnyAction * action, unsigned mergeMode, ActionInfo * info) -#else -HandleActionDef(def,xkb,action,mergeMode,info) - ExprDef * def; - XkbDescPtr xkb; - XkbAnyAction * action; - unsigned mergeMode; - ActionInfo * info; -#endif { ExprDef * arg; register char * str; @@ -1386,22 +1185,12 @@ unsigned tmp,hndlrType; /***====================================================================***/ int -#if NeedFunctionPrototypes SetActionField( XkbDescPtr xkb, char * elem, char * field, ExprDef * array_ndx, ExprDef * value, ActionInfo ** info_rtrn) -#else -SetActionField(xkb,elem,field,array_ndx,value,info_rtrn) - XkbDescPtr xkb; - char * elem; - char * field; - ExprDef * array_ndx; - ExprDef * value; - ActionInfo ** info_rtrn; -#endif { ActionInfo *new,*old; @@ -1441,11 +1230,7 @@ ActionInfo *new,*old; /***====================================================================***/ void -#if NeedFunctionPrototypes ActionsInit(void) -#else -ActionsInit() -#endif { if (!actionsInitialized) { bzero((char *)&constTrue,sizeof(constTrue)); |