PITS /
00697: Strange compound conditional behavior
Summary: Strange compound conditional behavior
Created: 20060311 21:19
Status: Closed  not a bug
Category: Bug
From: hartwork
Assigned:
Priority: 3
Version: 2.1.2
OS:
Description:
My experiences with compound conditionals
were quite strange so I wrote some test code:
Compound conditionals
Shouln't all these 6 give One two three?:

One (:if true  false:)two(:if:) three
 One two three

One (:if false  true:)two(:if:) three
 One three

One (:if [false]  [true]:)two(:if:) three
 One two three

One (:if [false]  true:)two(:if:) three
 One two three

One (:if false  [true]:)two(:if:) three
 One three

One (:if [false  true]:)two(:if:) three
 One two three
Nested conditionals

(:if false:)(:if true:)This text should never show(:if:)(:if:)
 This text should never show
hartwork
Some notes on the above:
 Compound conditionals require the use of "expr" or a leading bracket
 Every operator (including brackets) has to be surrounded by spaces
Thus, rewriting the above conditionals:
* One (:if expr true  false:)two(:if:) three * One (:if expr false  true:)two(:if:) three * One (:if expr ( false )  ( true ):)two(:if:) three * One (:if expr ( false )  true:)two(:if:) three * One (:if expr false  ( true ):)two(:if:) three * One (:if [ false  true ]:)two(:if:) three 

 Nested conditionals appeared in recent 2.2beta series and require
(:if2 cond:)
to be numbered. See ConditionalMarkup for examples.