summaryrefslogtreecommitdiff
path: root/glcdskin/function.c
diff options
context:
space:
mode:
authormrwastl <mrwastl@users.sourceforge.net>2012-06-08 17:18:07 +0200
committermrwastl <mrwastl@users.sourceforge.net>2012-06-08 17:18:07 +0200
commitd93490418d190adaa901c9deb05d817d074244ff (patch)
tree9a2ac46cf1ee79ba87517ec84860333d9fdb3739 /glcdskin/function.c
parentdbd4bd72007e382bea3a123cc2d86fefd962cf37 (diff)
downloadgraphlcd-base-d93490418d190adaa901c9deb05d817d074244ff.tar.gz
graphlcd-base-d93490418d190adaa901c9deb05d817d074244ff.tar.bz2
improved relieability of eq()/ne()/gt()/lt()/ge()/le() if comparing 'mixture' of string / bool / value; fixed a bug which could lead to an infinitive loop under rare circumstances
Diffstat (limited to 'glcdskin/function.c')
-rw-r--r--glcdskin/function.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/glcdskin/function.c b/glcdskin/function.c
index fce45b6..a2d58ca 100644
--- a/glcdskin/function.c
+++ b/glcdskin/function.c
@@ -406,22 +406,22 @@ cType cSkinFunction::Evaluate(void) const
case fun_equal:
case fun_eq:
- return mParams[0]->Evaluate() == mParams[1]->Evaluate();
+ return (std::string) mParams[0]->Evaluate() == (std::string) mParams[1]->Evaluate();
case fun_ne:
- return mParams[0]->Evaluate() != mParams[1]->Evaluate();
+ return (std::string) mParams[0]->Evaluate() != (std::string) mParams[1]->Evaluate();
case fun_gt:
- return mParams[0]->Evaluate() > mParams[1]->Evaluate();
+ return (int) mParams[0]->Evaluate() > (int) mParams[1]->Evaluate();
case fun_lt:
- return mParams[0]->Evaluate() < mParams[1]->Evaluate();
+ return (int) mParams[0]->Evaluate() < (int) mParams[1]->Evaluate();
case fun_ge:
- return mParams[0]->Evaluate() >= mParams[1]->Evaluate();
+ return (int) mParams[0]->Evaluate() >= (int) mParams[1]->Evaluate();
case fun_le:
- return mParams[0]->Evaluate() <= mParams[1]->Evaluate();
+ return (int) mParams[0]->Evaluate() <= (int) mParams[1]->Evaluate();
case fun_file:
return FunFile(mParams[0]->Evaluate());