> Maybe the real issue is that AT&T troff and its derivatives do not
> change to copy mode when reading names:
>
> .ds xx foo
> .ds \\f bar
> \*(\f2xx \n(.f
>
> prints "foo 2" with both 7th Edition troff and Heirloom troff. With
> groff, it prints "bar2xx 1". Consequently, Heirloom troff also does
> not change its mode when reading the contents of a "\[...]" bracket
> sequence. And thus, both occurences of "\E" in "\E*[\E*[foo]]" are
> interpreted as escape characters.
This is now fixed in the CVS -- \E gets expanded in escape names. The
fix was much simpler than expected. Please test.
Werner