How do I a non-destructive replace? I've realised that my problem is:
(set 'new-filename (replace "." old-file-name "copy."))
- I've destroyed the old-file-name...
It seems wrong to make a safe copy beforehand.
Just wrap the old filename with anything which returns the filename:
> (set 'old "myfile.txt")
"myfile.txt"
> (replace "." (string old) ".copy.")
"myfile.copy.txt"
> old
"myfile.txt"
>
even 'if', 'or', 'and' or 'begin' would work, but 'string' is more descriptive. Or using implicit 'slice'
(replace "." (0 old) ".copy.")
Lutz
Quote
(replace "." (string old) ".copy.")
That's clever - thanks!
Instead of a (string old) you could also use:
(set 'old) or (setq old)
Fanda