diff options
author | mrwastl <mrwastl@users.sourceforge.net> | 2012-06-08 17:18:07 +0200 |
---|---|---|
committer | mrwastl <mrwastl@users.sourceforge.net> | 2012-06-08 17:18:07 +0200 |
commit | d93490418d190adaa901c9deb05d817d074244ff (patch) | |
tree | 9a2ac46cf1ee79ba87517ec84860333d9fdb3739 /glcdskin/function.c | |
parent | dbd4bd72007e382bea3a123cc2d86fefd962cf37 (diff) | |
download | graphlcd-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.c | 12 |
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()); |