with the advent of the new and better $arg-expansion
(namely: expansion of $args _within_ an argument, like
bla-$2-blu), old patches (<0.40) that used dollars
within symbols are somewhat broken.
example1: iemlib provides an object [parentdollarnull]
with an alias [parent$0]; the latter gets expanded
(e.g. to [parent1003]) and cannot be created.
THIS IS NO BUG (imho)
however, $0 is not only expanded on a logic level, but
also on a visible level (i really see [parent1003]);
this i believe IS a bug.
example2 (more important!): in the olde times, if a
symbol contained dollars within, it was saved (in the
.pd file) like "bla-$2-blu".
in pd=0.40.0, the same symbol gets saved as
"bla-\$2-blu" (note the backslash).
loading an old abstraction yields an error ("argument
out of range"), even if enough arguments (in this case:
2) are supplied.
the expansion works correctly though!
imho, either the warning should be supressed or the old
behaviour (no expansion) should be preserved.
(it would be good if the pd-version at the time of
saving would be stored in the .pd-fileformat in order
to allow such things)
this little script should replace all "$<n>" with a
missing backslash at the beginning with "\$<n>"
find . -name "*.pd" | while read f
sed -i -e 's|\([^\\]\)\$|\1\\$|g' $f
note on the script: i haven't done excessive testing,
but it seems to work; make backups before you apply it,
since it will change all affected files without asking)
note: it seems like old versions (tested with
pd-0.39-2) seem to be able to correctly read files
saved with pd-0.40-0