summaryrefslogtreecommitdiff
path: root/action.c
diff options
context:
space:
mode:
Diffstat (limited to 'action.c')
-rw-r--r--action.c62
1 files changed, 41 insertions, 21 deletions
diff --git a/action.c b/action.c
index fc675c9..7d66e54 100644
--- a/action.c
+++ b/action.c
@@ -396,8 +396,6 @@ HandleSetLatchMods(XkbDescPtr xkb,
unsigned field, ExprDef * array_ndx, ExprDef * value)
{
XkbModAction *act;
- unsigned rtrn;
- unsigned t1, t2;
act = (XkbModAction *) action;
if (array_ndx != NULL)
@@ -414,15 +412,18 @@ HandleSetLatchMods(XkbDescPtr xkb,
{
case F_ClearLocks:
case F_LatchToLock:
- rtrn = act->flags;
+ {
+ unsigned rtrn = act->flags;
if (CheckLatchLockFlags(action->type, field, value, &rtrn))
{
act->flags = rtrn;
return True;
}
return False;
+ }
case F_Modifiers:
- t1 = act->flags;
+ {
+ unsigned t1 = act->flags, t2;
if (CheckModifierField(xkb, action->type, value, &t1, &t2))
{
act->flags = t1;
@@ -433,6 +434,7 @@ HandleSetLatchMods(XkbDescPtr xkb,
}
return False;
}
+ }
return ReportIllegal(action->type, field);
}
@@ -450,8 +452,6 @@ HandleLockMods(XkbDescPtr xkb,
unsigned field, ExprDef * array_ndx, ExprDef * value)
{
XkbModAction *act;
- unsigned t1, t2;
- ExprResult rtrn;
act = (XkbModAction *) action;
if ((array_ndx != NULL) && (field == F_Modifiers || field == F_Affect))
@@ -459,13 +459,17 @@ HandleLockMods(XkbDescPtr xkb,
switch (field)
{
case F_Affect:
+ {
+ ExprResult rtrn;
if (!ExprResolveEnum(value, &rtrn, lockWhich))
return ReportMismatch(action->type, field, "lock or unlock");
act->flags &= ~(XkbSA_LockNoLock | XkbSA_LockNoUnlock);
act->flags |= rtrn.uval;
return True;
+ }
case F_Modifiers:
- t1 = act->flags;
+ {
+ unsigned t1 = act->flags, t2;
if (CheckModifierField(xkb, action->type, value, &t1, &t2))
{
act->flags = t1;
@@ -476,6 +480,7 @@ HandleLockMods(XkbDescPtr xkb,
}
return False;
}
+ }
return ReportIllegal(action->type, field);
}
@@ -534,9 +539,6 @@ HandleSetLatchGroup(XkbDescPtr xkb,
unsigned field, ExprDef * array_ndx, ExprDef * value)
{
XkbGroupAction *act;
- unsigned rtrn;
- unsigned t1;
- int t2;
act = (XkbGroupAction *) action;
if (array_ndx != NULL)
@@ -553,15 +555,19 @@ HandleSetLatchGroup(XkbDescPtr xkb,
{
case F_ClearLocks:
case F_LatchToLock:
- rtrn = act->flags;
+ {
+ unsigned rtrn = act->flags;
if (CheckLatchLockFlags(action->type, field, value, &rtrn))
{
act->flags = rtrn;
return True;
}
return False;
+ }
case F_Group:
- t1 = act->flags;
+ {
+ unsigned t1 = act->flags;
+ int t2;
if (CheckGroupField(action->type, value, &t1, &t2))
{
act->flags = t1;
@@ -570,6 +576,7 @@ HandleSetLatchGroup(XkbDescPtr xkb,
}
return False;
}
+ }
return ReportIllegal(action->type, field);
}
@@ -579,15 +586,14 @@ HandleLockGroup(XkbDescPtr xkb,
unsigned field, ExprDef * array_ndx, ExprDef * value)
{
XkbGroupAction *act;
- unsigned t1;
- int t2;
act = (XkbGroupAction *) action;
if ((array_ndx != NULL) && (field == F_Group))
return ReportActionNotArray(action->type, field);
if (field == F_Group)
{
- t1 = act->flags;
+ unsigned t1 = act->flags;
+ int t2;
if (CheckGroupField(action->type, value, &t1, &t2))
{
act->flags = t1;
@@ -606,7 +612,6 @@ HandleMovePtr(XkbDescPtr xkb,
{
ExprResult rtrn;
XkbPtrAction *act;
- Bool absolute;
act = (XkbPtrAction *) action;
if ((array_ndx != NULL) && ((field == F_X) || (field == F_Y)))
@@ -614,6 +619,8 @@ HandleMovePtr(XkbDescPtr xkb,
if ((field == F_X) || (field == F_Y))
{
+ Bool absolute;
+
if ((value->op == OpNegate) || (value->op == OpUnaryPlus))
absolute = False;
else
@@ -803,13 +810,14 @@ HandleISOLock(XkbDescPtr xkb,
{
ExprResult rtrn;
XkbISOAction *act;
- unsigned flags, mods;
- int group;
+ unsigned flags;
act = (XkbISOAction *) action;
switch (field)
{
case F_Modifiers:
+ {
+ unsigned mods;
if (array_ndx != NULL)
return ReportActionNotArray(action->type, field);
flags = act->flags;
@@ -822,7 +830,10 @@ HandleISOLock(XkbDescPtr xkb,
return True;
}
return False;
+ }
case F_Group:
+ {
+ int group;
if (array_ndx != NULL)
return ReportActionNotArray(action->type, field);
flags = act->flags;
@@ -833,6 +844,7 @@ HandleISOLock(XkbDescPtr xkb,
return True;
}
return False;
+ }
case F_Affect:
if (array_ndx != NULL)
return ReportActionNotArray(action->type, field);
@@ -1064,8 +1076,6 @@ HandleRedirectKey(XkbDescPtr xkb,
{
ExprResult rtrn;
XkbRedirectKeyAction *act;
- unsigned t1, t2, vmods, vmask;
- unsigned long tmp;
if (array_ndx != NULL)
return ReportActionNotArray(action->type, field);
@@ -1074,6 +1084,10 @@ HandleRedirectKey(XkbDescPtr xkb,
switch (field)
{
case F_Keycode:
+ {
+ unsigned int t1;
+ unsigned long tmp;
+
if (!ExprResolveKeyName(value, &rtrn, NULL, NULL))
return ReportMismatch(action->type, field, "key name");
tmp = KeyNameToLong(rtrn.keyName.name);
@@ -1085,11 +1099,16 @@ HandleRedirectKey(XkbDescPtr xkb,
}
act->new_key = t1;
return True;
+ }
case F_ModsToClear:
case F_Modifiers:
- t1 = 0;
+ {
+ unsigned t1 = 0, t2;
+
if (CheckModifierField(xkb, action->type, value, &t1, &t2))
{
+ unsigned vmods, vmask;
+
act->mods_mask |= (t2 & 0xff);
if (field == F_Modifiers)
act->mods |= (t2 & 0xff);
@@ -1110,6 +1129,7 @@ HandleRedirectKey(XkbDescPtr xkb,
}
return True;
}
+ }
return ReportIllegal(action->type, field);
}