hi,
the following sequence of events causes creation of a strange kind of a subcanvas having its own environment, and therefore detached from its parent.
on an object, whose help file does not exist (like [table]).
2 to n-1. User performs any number of other actions, but no new canvases are created.
n. User creates a subcanvas object by typing [pd <name>] into an object box.
After that [pd <name>] box and <name> subcanvas are causing various troubles and generally misbehave.
The reason: a value of a canvas_newdirectory static variable, used as a flag indicating if the next created canvas deserves getting its own environment, sticks around after being set during unsuccesful execution of binbuf_evalfile(), and not being cleared after that.
The remedy: this value should be cleared, for example by modifying binbuf_evalfile() in m_binbuf.c:
perror(name->s_name);
glob_setfilename(0, &s_, &s_);
or in any other way.
K-ind-of