I'm replying to this report, because it's the latest.

This seems to be caused by last_read_token having an incorrect value set.
`alias_expand_token' in parse.y relies on
`command_token_position (last_read_token)' (and parser_state), to determine if
an alias expansion should be performed.

The correct value of last_read_token there should be of 10:

  alias_expand_token: last_read_token = 10

But, for some reason (I don't know if it's parse_and_execute or
parse_command), after calling `evalstring', this value isn't restored to the
correct one (shouldn't we care about toplevel's parser status?).

Anyways, I wasn't able to produce a patch for this, because I don't know where
last_read_token should be reset, or if there's some magic unwind_protect code
to restore the tokens to the value before calling source/eval, but I hope this
information makes it easier for Chet to produce a patch.


Also, while looking at this, I found this:

dualbus@yaqui ~ % bash -c 'eval \\; echo y'
y
dualbus@yaqui ~ % bash -ic 'eval \\; echo y'
exit

So, that eval is triggering a yacc_EOF, so that triggers the `exit' in the
interactive shell.

-- 
Eduardo Bustamante
https://dualbus.me/

Reply via email to