Item1822: IF broken for numerical comparisons against zero

pencil
Priority: Urgent
Current State: Closed
Released In: 1.0.7
Target Release: patch
Applies To: Engine
Component:
Branches:
Reported By: MichaelDaum
Waiting For:
Last Change By: KennethLavrsen
You type:
%IF{
  "-1 > 0"
  then="<b>test FAILED</b>"
  else="test PASSED"
}%
You get:
test PASSED

That's an error in BinaryOP and UnaryOP where the sub expression is defaulting to the empty string if their return value is perl-false, i.e. numerically zero.

So any further numerical comparison like -1 > 0 are evaluated lexically - not numerically because the second argument is translated to the empty string.

-- MichaelDaum - 10 Jul 2009

ItemTemplate edit

Summary IF broken for numerical comparisons against zero
ReportedBy MichaelDaum
Codebase
SVN Range Foswiki-1.0.0, Thu, 08 Jan 2009, build 1878
AppliesTo Engine
Component
Priority Urgent
CurrentState Closed
WaitingFor
Checkins distro:0f57c28170b5
TargetRelease patch
ReleasedIn 1.0.7
Topic revision: r6 - 20 Sep 2009, KennethLavrsen
The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. See Copyright Statement. Creative Commons License    Legal Imprint    Privacy Policy