Bug or feature? or: Don't I love the mechanics of expansion---snip
* From: Victor Eijkhout
* Subject: Bug or feature? or: Don't I love the mechanics of expansion
* Date: Sun, 16 Mar 2003 17:42:18 -0800
This bug took me an hour or two to find. I don't think I like it.
on tt arg put arg end tt
on t set the aaa of me to "a" put 1 into a send "tt" && the aaa of me to me end t
Anyway, solution:------snip
send "tt" && quote & the aaa of me & quote
on t arg1,arg2 put arg1 end t
on tt set the aa of me to 3,4 send "t" && the aa of me to me end tt
(I guess, for clarity, another clause is could be added in the above definition.)
--
Victor Eijkhout <[EMAIL PROTECTED]>
tel: 865 974 9308 (W), 865 673 6998 (H), 865 974 8296 (F)
http://www.cs.utk.edu/~eijkhout/
_______________________________________________
Hi Victor,
AFAICS it is all very consistent. No bug at all.
In the first handler :
on tt arg put arg end tt
on t
set the aaa of me to "a"
##### makes a custom property called "aaa" and the char "a" is put into it
put 1 into a
##### a variable "a" is initiated with "1"
send "tt" && the aaa of me to me
##### the send command resolves to send "tt" && "a"
##### In this case there is also a variable a which contains "1" so this variable is passed
end t
if one uses : send "tt" && quote & the aaa of me & quote then the output is "a"
If "3,4" is put into a then the output of this handler is "3,4"
One can see that the params are resolved 1 time (hope I used the right expression as I am not a pro)
In the next case :
on t arg1,arg2 put arg1 end t
on tt set the aa of me to 3,4 send "t" && the aa of me to me end tt
The custom property is set to "3,4"
The send command is resolved to send "tt" && "3,4" which is as if passing 2 parameters
If one replaces set the aa of me to "3,4" with set the aa of me to "3 - 4" then
the send command resolves to send "tt" && "-1"
Try this :
on t arg1,arg2,arg3 put arg1 && arg2 && arg3 end t
on tt set the aa of me to "a,b" put "3,4" into a send "t" && the aa of me to me end tt
then the send command resolves to send "t" && "3,4,b"
If this is a feature, it's a nasty one.
* From: Victor Eijkhout * Subject: If this is a feature, it's a nasty one. * Date: Mon, 17 Mar 2003 15:22:12 -0800
In other words, I consider this a bug.
on mouseup send "t 1" to me end mouseup
on t a set the a of me to "bar" end t
Guess what property gets set on mouseup?
And what's worse, I don't see how I can hack my way around it, because <set the "a" of me> is illegal. Ok, take a different name for the parameter, but I want to use logical sounding names.
The above case :
on mouseup send "t 1" to me end mouseup
on t a set the a of me to "bar" end t
Here a custom property is created with the name contained in a.
In this case if a custom property has a number as name or even a space as name then it can only be called by a variable containing the number or the space.
on t a set the a of me to "bar" put the a of me ##### or put 1 into b; put the b of me end t
So as you can see it is rather consistent ( and if I'm wrong, shoot me :-)
Have a nice day,
WA
_______________________________________________ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
