Hi,
In the attached patch, I try to dynamically create an object (in the example an [s]) by sending a message to the canvas, and I want this object to have a creation argument $1-foo1 or $1-foo2, etc... That is, the creation argument of the object must contain a "$1" that must not be evaluated when creating the object, plus some fixed part and a number that must be evaluated when creating the object. Then I create at the same time a second object that has a creation argument that is just a clean $1 (not evaluated at creation time).
Look at the attached patch and click on the [3( message box.
Can anyone tell why the object on the left is created with creation argument $1-foo3 rather than $1-foo3, while the object on the right is created with creation argument $1 (not $1)?
Shouldn't the two behave the same way? (in my opinion like the one on the right)
If I then save the patch and look at it as a text file, I see that the object on the left is saved as \$1-foo3 with four slashes!!!
If I then open the patch I saved, it looks fine ([s $1-foo3] with no slash) and if I re-save it the 3 extra slashes are eliminated.
I have often come across similar situations in which either the dollar argument is evaluated or too many slashes are added, but you can't obtain an unevaluated dollar argument with no slashes (i.e. internally only one slash).
If this is by design, I really don't understand it.
Matteo Sisti Sette wrote:
object on the left is saved as \$1-foo3 with four slashes!!!
i love that one.
If this is by design, I really don't understand it.
i thikn the problem might be related to a generally different handling of DOLLARG (e.g. "$1") vs DOLLSYM ("$1-bla"). apart from that, i never understood the reason for "escaping" the $ (that is: putting a backslash before it); i think it was originally meant to help the parser distinguis between real dollarg/dollsyms and spurious dollars. (e.g. "bla$blu")
i would suggest to remove all backslashes where they are not necessary (currently: everywhere)
fgma.sdr IOhannes