This is a regression introduced in 8.1.0 in [r5689] in eval.cpp. That change fixed a bug in the handling of commands that are run from the commander on GNU/Linux but introduced a change in the handling of \n.
This bug only impacts instructions that are run from the commander. It does not apply to instructions that are run in procedures.
The bug is that if "\n" is used without being vbarred, it is replaced with a newline BUT the word is not marked as backslashed. When it is later parsed into an instruction, the newline acts like a normal newline and is not part of a preceding word.
Also introduced but this change: trying to execute an instruction that ends in a backslash can cause FMSLogo to crash in rare cases.
How Reproducible:
Every Time
Steps to Reproduce
SHOW "a\nbWhat Happens:
FMSLogo prints "a" on a line by itself, then prints "I don't know how to b" in red text. That is, it acts is if SHOW "a b were entered.
Expected Result:
FMSLogo prints "a" on a line by itself, then prints "b" on a line by itself.
I have committed a fix for this as [r5891]. I expect to release this as 8.3.1 (a micro version) since it was a recent regression.
Unfortunately, automated testing is currently not possible because neither the commander's edit box nor the commander history is accessible.
Related
Commit: [r5891]