Re: Boolean Tests with dereferenced arrays are broken in
This WebDNA talk-list message is from 2003
It keeps the original formatting.
numero = 53166
interpreted = N
texte = Okay, just had to refresh my memory for how we intended this to work.This is not a bug with the ArrayGet context. Here's why:The ArrayGet context was provided as a means to retrieve several array indexvalues at once. ArrayGet expects the inner content to be a series of(x,y,z...) index tokens. You can have any WebDNA inside the ArrayGetcontext, but it will be pre-parsed, and is expected to parse to (x,y,z...)type tokens.For example, given the following code:[ArraySet name=array1&dim=3](1)=a&(2)=b&(3)=[/ArraySet][ArrayGet][loop start=1&end=3]([index])[/loop][/ArrayGet]The ArrayGet context is going to pre-parse the inner content first. So thiswould parse to:(1)(2)(3)Then the ArrayGet context will search for and interpret any (x,y,z...) typetokens it finds, ignoring anything else that exists. So the final resultis:abcThe Array tutorial demonstrates this fairly clearly, but perhaps thedocumentation could be improved.-----Original Message-----From: Bob Minor [mailto:bob@cybermill.com]Sent: Saturday, September 27, 2003 11:51 AMTo: WebDNA TalkSubject: Boolean Tests with dereferenced arrays are broken in WebDNA5.1dDevelopers are reporting the dereferenced arrays are broken.Here is the test results:[if "[test_var]" = "[none]"]The boolean engine works.Item 1 is [none].[if "[none]" = "[none]"]The boolean engine is broken with respect to dereferenced array values.temp_var is [none].[if "[temp_var]" = "[none]"]The boolean engine is broken with respect to dereferenced array valueseven if the value is deposited in a temporary variable.[if "[none]" = [interpret]"[none]"[/interpret]]The boolean engine is broken with respect to dereferenced array valueseven if the compared value is dereferenced by an [interpret] context.[if "[none]" = "none"]The boolean engine is broken with respect to dereferenced array valueseven if the compared value is a simple string.Here is the test:WebDNA version: [version]
[text]test_var=[none][/text][raw][if "[test_var]" = "[none]"][/raw]
[if "[test_var]" = "[none]"] [then] The boolean engine works.
[/then] [else]
The boolean engine is broken. [/else][/if][arrayset name=test_array&dim=1](1)=[none][/arrayset][arrayget name=test_array]
Item 1 is (1).
[raw][if "(1)" = "[none]"][/raw]
[if "(1)" = "[none]"] [then] The boolean engine works with respect to dereferenced arrayvalues.
[/then] [else]
The boolean engine is broken with respect to dereferencedarrayvalues.
[/else][/if][text]temp_var=(1)[/text]
temp_var is [temp_var].
[raw][if "[temp_var]" = "[none]"][/raw]
[if "[temp_var]" = "[none]"] [then] The boolean engine works with respect to dereferenced array valuesonlyif the value is deposited in a temporary variable.
[/then] [else]
The boolean engine is broken with respect to dereferencedarrayvalues even if the value is deposited in a temporary variable.
[/else][/if]
[raw][if "(1)" = [interpret]"[none]"[/interpret]][/raw]
[if "(1)" = [interpret]"[none]"[/interpret]] [then] The boolean engine works with respect to dereferenced array valuesonlyif the compared value is dereferenced by an [raw][interpret][/raw]context.
[/then] [else]
The boolean engine is broken with respect to dereferencedarrayvalues even if the compared value is dereferenced by an[raw][interpret][/raw] context.
[/else][/if]
[raw][if "(1)" = "none"][/raw]
[if "(1)" = "none"] [then] The boolean engine works with respect to dereferenced array valuesonlyif the compared value is a simple string.
[/then] [else]
The boolean engine is broken with respect to dereferencedarrayvalues even if the compared value is a simple string.
[/else][/if][/arrayget]-------------------------------------------------------------This message is sent to you because you are subscribed to the mailing list
.To unsubscribe, E-mail to: To switch to the DIGEST mode, E-mail toWeb Archive of this list is at: http://webdna.smithmicro.com/-------------------------------------------------------------This message is sent to you because you are subscribed to the mailing list .To unsubscribe, E-mail to: To switch to the DIGEST mode, E-mail to Web Archive of this list is at: http://webdna.smithmicro.com/
Associated Messages, from the most recent to the oldest:
Okay, just had to refresh my memory for how we intended this to work.This is not a bug with the ArrayGet context. Here's why:The ArrayGet context was provided as a means to retrieve several array indexvalues at once. ArrayGet expects the inner content to be a series of(x,y,z...) index tokens. You can have any WebDNA inside the ArrayGetcontext, but it will be pre-parsed, and is expected to parse to (x,y,z...)type tokens.For example, given the following code:[ArraySet name=array1&dim=3](1)=a&(2)=b&(3)=[/ArraySet][ArrayGet][loop start=1&end=3]([index])[/loop][/ArrayGet]The ArrayGet context is going to pre-parse the inner content first. So thiswould parse to:(1)(2)(3)Then the ArrayGet context will search for and interpret any (x,y,z...) typetokens it finds, ignoring anything else that exists. So the final resultis:abcThe Array tutorial demonstrates this fairly clearly, but perhaps thedocumentation could be improved.-----Original Message-----From: Bob Minor [mailto:bob@cybermill.com]Sent: Saturday, September 27, 2003 11:51 AMTo: WebDNA TalkSubject: Boolean Tests with dereferenced arrays are broken in WebDNA5.1dDevelopers are reporting the dereferenced arrays are broken.Here is the test results:[if "[test_var]" = "[none]"]The boolean engine works.Item 1 is [none].[if "[none]" = "[none]"]The boolean engine is broken with respect to dereferenced array values.temp_var is [none].[if "[temp_var]" = "[none]"]The boolean engine is broken with respect to dereferenced array valueseven if the value is deposited in a temporary variable.[if "[none]" = [interpret]"[none]"[/interpret]]The boolean engine is broken with respect to dereferenced array valueseven if the compared value is dereferenced by an [interpret] context.[if "[none]" = "none"]The boolean engine is broken with respect to dereferenced array valueseven if the compared value is a simple string.Here is the test:WebDNA version: [version]
[text]test_var=[none][/text][raw][if "[test_var]" = "[none]"][/raw]
[if "[test_var]" = "[none]"] [then] The boolean engine works.
[/then] [else] The boolean engine is broken.
[/else][/if][arrayset name=test_array&dim=1](1)=[none][/arrayset][arrayget name=test_array]
Item 1 is (1).
[raw][if "(1)" = "[none]"][/raw]
[if "(1)" = "[none]"] [then] The boolean engine works with respect to dereferenced arrayvalues.
[/then] [else] The boolean engine is broken with respect to dereferencedarrayvalues.
[/else][/if][text]temp_var=(1)[/text]
temp_var is [temp_var].
[raw][if "[temp_var]" = "[none]"][/raw]
[if "[temp_var]" = "[none]"] [then] The boolean engine works with respect to dereferenced array valuesonlyif the value is deposited in a temporary variable.
[/then] [else] The boolean engine is broken with respect to dereferencedarrayvalues even if the value is deposited in a temporary variable.
[/else][/if]
[raw][if "(1)" = [interpret]"[none]"[/interpret]][/raw]
[if "(1)" = [interpret]"[none]"[/interpret]] [then] The boolean engine works with respect to dereferenced array valuesonlyif the compared value is dereferenced by an [raw][interpret][/raw]context.
[/then] [else] The boolean engine is broken with respect to dereferencedarrayvalues even if the compared value is dereferenced by an[raw][interpret][/raw] context.
[/else][/if]
[raw][if "(1)" = "none"][/raw]
[if "(1)" = "none"] [then] The boolean engine works with respect to dereferenced array valuesonlyif the compared value is a simple string.
[/then] [else] The boolean engine is broken with respect to dereferencedarrayvalues even if the compared value is a simple string.
[/else][/if][/arrayget]-------------------------------------------------------------This message is sent to you because you are subscribed to the mailing list .To unsubscribe, E-mail to: To switch to the DIGEST mode, E-mail toWeb Archive of this list is at: http://webdna.smithmicro.com/-------------------------------------------------------------This message is sent to you because you are subscribed to the mailing list .To unsubscribe, E-mail to: To switch to the DIGEST mode, E-mail to Web Archive of this list is at: http://webdna.smithmicro.com/
"Scott Anderson"
DOWNLOAD WEBDNA NOW!
Top Articles:
Talk List
The WebDNA community talk-list is the best place to get some help: several hundred extremely proficient programmers with an excellent knowledge of WebDNA and an excellent spirit will deliver all the tips and tricks you can imagine...
Related Readings:
HTML encoding in URLs (1997)
Help! WebCat2 bug (1997)
Errata: WCS Newbie question (1997)
First postarg not taking in $Commands (1997)
need some help with a loop (1999)
Upload file limits (2000)
Running webcat 6 on Windows XP Prof. (2005)
converchars in sendmail context.... (2004)
FireSite and PIXO (1998)
Denying access by IP address (2000)
[LOOKUP] (1997)
Webdna is dead! (2003)
Flag checking (2000)
WebDNA 6.0 & MAC OS X Server 10.4.10 (2007)
[SHOWIF]s and empty arguments (1997)
Sendmail - Attachment / My First Post (2001)
problem with NT beta (1997)
New [math] variable not working... (2001)
Bug Report, maybe (1997)
Where is f2? (1997)