Fix: `help': support recursive ghosts; go.c: fix self-recursion detection..
The latter was false for something like
commandalias x q; commandalias q echo au
since the q became expanded to `quit' due to falsely detected
self-recursion (alias expansion equalsnew command word).
On the other hand
help x
would have falsely claimed that x called `quit', because no
recursion evaluation did happen. Well, in the given example it
does indeed...
Do implement an identical algorithm for `help' and in
a_go_evaluate(): allow one level of expansion with identical
names, but stop expanding commandaliases thereafter, e.g.,
commandalias q q; commandalias x q; x
will now be evaluated as
x -> q -> q -> quit
as can be seen
#?0!0/NONE[#/var/spool/mail/steffen]? commandalias q q
#?0!0/NONE[#/var/spool/mail/steffen]? commandalias x q
#?0!0/NONE[#/var/spool/mail/steffen]? ?x
x -> q -> q (quit): Exit session with [<status>], saving messages as necessary
#?0!0/NONE[#/var/spool/mail/steffen]? x
ALI (null) word x
RESTART 1 <q>
ALI q word q
RESTART 1 <q>
NOT LOOKING ALIAS FOR q
ALI (null) word unbind
ELSE not found <unbind>
#?0[steffen@essex nail.git]$