From: Daniel Stone Date: Mon, 20 Feb 2012 15:47:38 +0000 (+0000) Subject: Add ExprResolveButton helper X-Git-Tag: accepted/2.0alpha-wayland/20121109.204519~289 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8b47dbbf614f2c2693da9ee6df53b0ebff6f32dd;p=profile%2Fivi%2Flibxkbcommon.git Add ExprResolveButton helper Just a dumb wrapper around ExprResolveInteger. Signed-off-by: Daniel Stone --- diff --git a/src/xkbcomp/action.c b/src/xkbcomp/action.c index eaaacd4..0ab932c 100644 --- a/src/xkbcomp/action.c +++ b/src/xkbcomp/action.c @@ -628,16 +628,6 @@ HandleMovePtr(struct xkb_desc * xkb, return ReportIllegal(action->type, field); } -static LookupEntry btnNames[] = { - {"button1", 1}, - {"button2", 2}, - {"button3", 3}, - {"button4", 4}, - {"button5", 5}, - {"default", 0}, - {NULL, 0} -}; - static LookupEntry lockWhich[] = { {"both", 0}, {"lock", XkbSA_LockNoUnlock}, @@ -659,8 +649,7 @@ HandlePtrBtn(struct xkb_desc * xkb, { if (array_ndx != NULL) return ReportActionNotArray(action->type, field); - if (!ExprResolveInteger - (value, &rtrn, SimpleLookup, (char *) btnNames)) + if (!ExprResolveButton(value, &rtrn)) return ReportMismatch(action->type, field, "integer (range 1..5)"); if ((rtrn.ival < 0) || (rtrn.ival > 5)) @@ -686,8 +675,7 @@ HandlePtrBtn(struct xkb_desc * xkb, { if (array_ndx != NULL) return ReportActionNotArray(action->type, field); - if (!ExprResolveInteger - (value, &rtrn, SimpleLookup, (char *) btnNames)) + if (!ExprResolveButton(value, &rtrn)) return ReportMismatch(action->type, field, "integer"); if ((rtrn.ival < 0) || (rtrn.ival > 255)) { @@ -742,8 +730,7 @@ HandleSetPtrDflt(struct xkb_desc * xkb, btn = value; } - if (!ExprResolveInteger - (btn, &rtrn, SimpleLookup, (char *) btnNames)) + if (!ExprResolveButton(btn, &rtrn)) return ReportMismatch(action->type, field, "integer (range 1..5)"); if ((rtrn.ival < 0) || (rtrn.ival > 5)) @@ -1121,8 +1108,7 @@ HandleDeviceBtn(struct xkb_desc * xkb, { if (array_ndx != NULL) return ReportActionNotArray(action->type, field); - if (!ExprResolveInteger - (value, &rtrn, SimpleLookup, (char *) btnNames)) + if (!ExprResolveButton(value, &rtrn)) return ReportMismatch(action->type, field, "integer"); if ((rtrn.ival < 0) || (rtrn.ival > 255)) { diff --git a/src/xkbcomp/expr.c b/src/xkbcomp/expr.c index d266334..bff5d64 100644 --- a/src/xkbcomp/expr.c +++ b/src/xkbcomp/expr.c @@ -678,6 +678,24 @@ ExprResolveLevel(ExprDef * expr, } int +ExprResolveButton(ExprDef * expr, + ExprResult * val_rtrn) +{ + static LookupEntry button_names[] = { + { "button1", 1 }, + { "button2", 2 }, + { "button3", 3 }, + { "button4", 4 }, + { "button5", 5 }, + { "default", 0 }, + { NULL, 0 } + }; + + return ExprResolveInteger(expr, val_rtrn, SimpleLookup, + (char *) button_names); +} + +int ExprResolveString(ExprDef * expr, ExprResult * val_rtrn) { diff --git a/src/xkbcomp/expr.h b/src/xkbcomp/expr.h index f11d9ea..b3c1528 100644 --- a/src/xkbcomp/expr.h +++ b/src/xkbcomp/expr.h @@ -124,6 +124,10 @@ extern int ExprResolveLevel(ExprDef * /* expr */ , ExprResult * /* val_rtrn */ ); +extern int ExprResolveButton(ExprDef * /* expr */ , + ExprResult * /* val_rtrn */ + ); + extern int ExprResolveFloat(ExprDef * /* expr */ , ExprResult * /* val_rtrn */ );