If you run COPYDEF on a procedure that is defined with DEFINE, then the title line of the original procedure is changed such that its name matches the name of the new procedure. The original procedure can still be run with the original name, but any workspace procedure on the original procedure shows the name of the new procedure. As a result, if you try to EDALL, you end up with only one of the definitions and saving the workspace will erase the original procedure.
This is reproducible as far back as FMSLogo 6.23.0. FMSLogo 6.22.0 and earlier don't have this bug. This bug is not reproducible in UCBLogo 6.2.5. I expect that I introduced this bug when I fixed Bug #317 by copying code from UCBLogo and that this bug was later fixed in UCBLogo.
This may be a duplicate of Bug #612, but since UCBLogo has that bug and not this bug, it's possible to fix this bug independently. Therefore, I'm tracking them as separate bugs.
Steps to Reproduce:
DEFINE "a [[]]
COPYDEF "b "a
POT "a
What Happens:
FMSLogo prints
to b
Expected Result:
FMSLogo prints
to a