Zsh Mailing List Archive
Messages sorted by:
Re: Bugreport zsh 3.1.2: Shell exits prematurely after aborting history-incremental-search-backward
- X-seq: zsh-workers 4107
- From: Torsten Hilbrich <Torsten.Hilbrich@xxxxxxx>
- To: Peter Stephenson <pws@xxxxxxxxxxxxxxxxx>
- Subject: Re: Bugreport zsh 3.1.2: Shell exits prematurely after aborting history-incremental-search-backward
- Date: 12 Jun 1998 23:41:10 +0200
- Cc: zsh-workers@xxxxxxxxxxxxxxx
- In-reply-to: Peter Stephenson's message of "Thu, 11 Jun 1998 17:26:04 +0200"
- References: <9806111526.AA19795@xxxxxxxxxxxxxxxxx>
- Sender: hilbrich@xxxxxxxxxx
On: Thu, 11 Jun 1998 17:26:04 +0200 Peter Stephenson writes:
> Torsten Hilbrich wrote:
>> If I startup the zsh I immediatly
>> history-incremental-search-backward (^R) in the history. Instead
>> of executing the found command I simply abort using ^C. Then the
>> next return with or without any command given will immediatly exit
>> the shell. It also happens if there is no match found in the
>> backward search.
> I had a look at this again, and I believe my previous analysis, that
> the lastc variable wasn't getting set properly, was the correct one.
> This time I followed the problem at bit further back. In my case,
> /etc/zshenv was being sourced immediately before the command loop
> started. At EOF, inputline() returned false; this caused ingetc()
> to set lastc to ' ', the behaviour which I found suspect. Thus the
> first time from zleread(), inerrflush() tested lastc, found it
> wasn't \n, and assumed, wrongly, there was some junk to flush out.
> Knock-on errors from this caused the shell to exit. Later on, lastc
> would be \n because the last input operation was a read from stdin
> which didn't return EOF. (You can get the same behaviour at any time
> by sourcing a file, followed by the actions Torsten described.)
> If there was no /etc/zshenv to source, lastc still wouldn't be \n
> because it wasn't initialised, so the same thing happens.
> So my patch was correct, with one thing I forgot about: lastc should
> be initialised to \n at startup as a flag that there is no input to
> flush. Here is the complete thing.
> [patch removed]
I just applied the patch and the error is gone. If there are any
side-effects that I notice, I will reply directly to Peter.
Thanks to everyone for your efforts,
Whenever a system becomes completely defined, some damn fool discovers
something which either abolishes the system or expands it beyond recognition.
PGP Public key available
Messages sorted by: