Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Possible ZSH bug with IO direction

On Mon, 25 Apr 2016, Bart Schaefer wrote:

Date: Mon, 25 Apr 2016 10:47:49 -0700
From: Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
To: Peter A. Castro <doctor@xxxxxxxxxxxx>
Cc: Zsh hackers list <zsh-workers@xxxxxxx>
Subject: Re: Possible ZSH bug with IO direction

On Mon, Apr 25, 2016 at 10:31 AM, Peter A. Castro <doctor@xxxxxxxxxxxx> wrote:

I believe the best solution is to teach Zsh code to handle CR+LF properly,

Which means we're back to the "dozens of source modules" you mentioned.
There's no central place for this; because of vagaries of other I/O systems
(e.g. STREAMS modules), there's not even a consistent use of stdio vs.
low-level read/write (though at least they're usually not mixed on the same

Yes...I had noticed that in my first few attempts at "fixing" the code.
I quickly became overwhelmed at the scope of things.

I haven't looked closely at this (and have no idea whether it's possible with
the pre-main hook in place) but perhaps put the descriptors back into
binary mode somewhere in exec.c between whatever passes for zfork()
on cygwin and the actual execve() of any external process?  We mostly
know when a zsh builtin vs. an external command is being run.

I did consider this, but there's something about using the pre-main hooks that prevents resetting the attributes. I'll ask Corinna about it, but I suspect there isn't a way of doing it once the pre-main has been invoked.

In anycase, this also leads to your next comment:

Either way the external commands are on their own -- the question is
whether they're better off getting binary when they expect text or the
other way around (as currently).

That is its own can of worms. The later is what mostly-works for 95% of the use-cases. There is no good solution here, I'm afraid.

So, to sum things up:
  pre-main hook is bad.
  CR+LF is evil.
  Teaching the code to grok CR+LF is hard.
  Users don't like change and expect things to "just work".

Am I missing anything?  :-/

--=> Peter A. Castro
Email: doctor at fruitbat dot org / Peter dot Castro at oracle dot com
	"Cats are just autistic Dogs" -- Dr. Tony Attwood

Messages sorted by: Reverse Date, Date, Thread, Author