summaryrefslogtreecommitdiff
path: root/expr.c
diff options
context:
space:
mode:
Diffstat (limited to 'expr.c')
-rw-r--r--expr.c85
1 files changed, 45 insertions, 40 deletions
diff --git a/expr.c b/expr.c
index 3555d64..12cff10 100644
--- a/expr.c
+++ b/expr.c
@@ -443,23 +443,24 @@ ExprResolveBoolean(ExprDef * expr,
val_rtrn->uval = !val_rtrn->uval;
return ok;
case OpAdd:
- if (bogus == NULL)
- bogus = "Addition";
+ bogus = "Addition";
+ goto boolean;
case OpSubtract:
- if (bogus == NULL)
- bogus = "Subtraction";
+ bogus = "Subtraction";
+ goto boolean;
case OpMultiply:
- if (bogus == NULL)
- bogus = "Multiplication";
+ bogus = "Multiplication";
+ goto boolean;
case OpDivide:
- if (bogus == NULL)
- bogus = "Division";
+ bogus = "Division";
+ goto boolean;
case OpAssign:
- if (bogus == NULL)
- bogus = "Assignment";
+ bogus = "Assignment";
+ goto boolean;
case OpNegate:
- if (bogus == NULL)
- bogus = "Negation";
+ bogus = "Negation";
+ goto boolean;
+ boolean:
ERROR("%s of boolean values not permitted\n", bogus);
break;
case OpUnaryPlus:
@@ -774,23 +775,24 @@ ExprResolveString(ExprDef * expr,
}
return False;
case OpSubtract:
- if (bogus == NULL)
- bogus = "Subtraction";
+ bogus = "Subtraction";
+ goto string;
case OpMultiply:
- if (bogus == NULL)
- bogus = "Multiplication";
+ bogus = "Multiplication";
+ goto string;
case OpDivide:
- if (bogus == NULL)
- bogus = "Division";
+ bogus = "Division";
+ goto string;
case OpAssign:
- if (bogus == NULL)
- bogus = "Assignment";
+ bogus = "Assignment";
+ goto string;
case OpNegate:
- if (bogus == NULL)
- bogus = "Negation";
+ bogus = "Negation";
+ goto string;
case OpInvert:
- if (bogus == NULL)
- bogus = "Bitwise complement";
+ bogus = "Bitwise complement";
+ goto string;
+ string:
ERROR("%s of string values not permitted\n", bogus);
return False;
case OpNot:
@@ -858,26 +860,27 @@ ExprResolveKeyName(ExprDef * expr,
XkbAtomText(NULL, expr->value.field.field, XkbMessage));
return ok;
case OpAdd:
- if (bogus == NULL)
- bogus = "Addition";
+ bogus = "Addition";
+ goto keyname;
case OpSubtract:
- if (bogus == NULL)
- bogus = "Subtraction";
+ bogus = "Subtraction";
+ goto keyname;
case OpMultiply:
- if (bogus == NULL)
- bogus = "Multiplication";
+ bogus = "Multiplication";
+ goto keyname;
case OpDivide:
- if (bogus == NULL)
- bogus = "Division";
+ bogus = "Division";
+ goto keyname;
case OpAssign:
- if (bogus == NULL)
- bogus = "Assignment";
+ bogus = "Assignment";
+ goto keyname;
case OpNegate:
- if (bogus == NULL)
- bogus = "Negation";
+ bogus = "Negation";
+ goto keyname;
case OpInvert:
- if (bogus == NULL)
- bogus = "Bitwise complement";
+ bogus = "Bitwise complement";
+ goto keyname;
+ keyname:
ERROR("%s of key name values not permitted\n", bogus);
return False;
case OpNot:
@@ -979,9 +982,11 @@ ExprResolveMask(ExprDef * expr,
return ok;
case ExprArrayRef:
bogus = "array reference";
+ goto unexpected_mask;
case ExprActionDecl:
- if (bogus == NULL)
- bogus = "function use";
+ bogus = "function use";
+ goto unexpected_mask;
+ unexpected_mask:
ERROR("Unexpected %s in mask expression\n", bogus);
ACTION("Expression ignored\n");
return False;