COPYDEF creates an exact copy of a procedure and buries the new version. However, if you unbury or edit the new procedure, you'll find that the new procedure has the exact same TO line as the old one, which means that when you save the definition, it will overwrite the original, not the copy. This can lead to some very unintuitive behavior.
This is not reproducible in UCBLogo 5.5. Fixing this bug is probably as simple as copying the fix from the UCB source code.
How Reproducible:
Every Time
Steps to Reproduce:
TO SQUARE
REPEAT 4 [ FD 100 RT 90 ]
END
COPYDEF "SQ "SQUARE
PO "SQ
What Happens:
TO SQUARE
REPEAT 4 [ FD 100 RT 90 ]
END
Expected Result:
TO SQ
REPEAT 4 [ FD 100 RT 90 ]
END
I have checked in a fix for this (copied from UCBLogo 5.5). It will be available in FMSLogo 6.23.0.