Path: utzoo!utgpu!watmath!uunet!shelby!apple!gem.mps.ohio-state.edu!tut.cis.ohio-state.edu!MITVMA.MIT.EDU!trost%REED.BITNET
From: trost%REED.BITNET@MITVMA.MIT.EDU
Newsgroups: gnu.bash.bug
Subject: yacc/bison incompatibility?
Message-ID: <8909280321.AA03984@.reed.bitnet>
Date: 28 Sep 89 03:21:30 GMT
Sender: daemon@tut.cis.ohio-state.edu
Distribution: gnu
Organization: GNUs Not Usenet
Lines: 50

Details that Brian asked about:

Subshell in emacs was usually /bin/csh.

gcc got the appropriate flags (like -traditional) --- it did, after
all, compile.  The include files have not been "fixed".

I have made no changes to the sources; they are made from literally
the same source files.  I have made no patches, no nothin'.  Just
compile and go --- your configuration management is very clean.

I finally understand the bit about not reading the .bashrc.  Trouble
is, bash being run under an xterm isn't really a login shell.  How is
loginness being determined?  (I know --- UTSL).

*And*, it looks like I dropped a critical part of the bug report.
After reading the .bashrc, if I put the entire for loop on one line,
it works --- if I break it up, it doesn't.  This is almost definetely
a grammar problem.

Our bison is version 1.03.

Oh, and why does "rsh reed xterm -display bassoon:0" cause my .profile
to be executed?  This is confusing; I thought non-interactive
processes weren't supposed to get anything?  (I switched shells last
night, so my environ has changed slightly).

----------------

STOP THE PRESSES!

A little experimentation points out the problem.  Setting the shell
variable PROMPT_COMMAND causes the error I described when the shell is
compiled with yacc.  Record follows:

% bash -norc
bash$ PROMPT_COMMAND='dirs'
/reed/u/ss/trost
bash$ for i in a b; do
/reed/u/ss/trost
bash>echo $i
/reed/u/ss/trost
bash>done
`done' is not a valid identifier
/reed/u/ss/trost
bash$ for i in a b; do echo $i; done
a
b
/reed/u/ss/trost
bash$