www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-apps/2002/05/24/16:05:48

Mailing-List: contact cygwin-apps-help AT cygwin DOT com; run by ezmlm
Sender: cygwin-apps-owner AT cygwin DOT com
List-Subscribe: <mailto:cygwin-apps-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin-apps/>
List-Post: <mailto:cygwin-apps AT cygwin DOT com>
List-Help: <mailto:cygwin-apps-help AT cygwin DOT com>, <http://sources.redhat.com/lists.html#faqs>
Mail-Followup-To: cygwin-apps AT cygwin DOT com
Delivered-To: mailing list cygwin-apps AT cygwin DOT com
Date: Fri, 24 May 2002 13:02:27 -0700 (PDT)
From: "Peter A. Castro" <doctor AT fruitbat DOT org>
To: Charles Wilson <cwilson AT ece DOT gatech DOT edu>
cc: Matthew Smith <matts AT bluesguitar DOT org>, cygwin-apps AT cygwin DOT com
Subject: Re: new package offering: zsh
In-Reply-To: <3CECAFE4.4090703@ece.gatech.edu>
Message-ID: <Pine.LNX.4.21.0205241255410.14210-100000@gremlin.fruitbat.org>
MIME-Version: 1.0

On Thu, 23 May 2002, Charles Wilson wrote:

> Peter A. Castro wrote:
> 
> > On Wed, 22 May 2002, Charles Wilson wrote:
> > 
> >>No -- if zsh can handle cr+lf internally, then let it do so.  Explicitly 
> >>open function files in binary mode -- this will override the "textmode 
> >>mount" which sets the default read mode.
> > 
> > zsh uses the open() call, not fopen().  There is no "binary" vs. "text"
> > mode to specify.  Theoretically, open() should be opening the file in
> > binary mode already (ie: no text translation/interpretation), yet the
> > data read in clearly is being cooked under some scenarios.  No, if I
> > understand how things are work here, I believe the carriage control
> > processing is being done at the filesystem level, which is below open()
> > and beyond my control.
> > But, like I said, if this causes enough trouble for people, I'll update
> > the code to be more relaxed on the size checking.
> 
> You can use the "O_BINARY" flag in open() calls -- but since some 
> platforms don't define it, you must include something like
> 
> #ifndef O_BINARY
> #define O_BINARY 0
> #endif
> 
> somewhere in zsh's header files....
> 
> open() will still obey the default mount mode settings of the underlying 
> cygwin system; that is, if the file is on a text mount, it will be 
> opened using CR/LF-->LF translation.   If the file is on a binary mount, 
> it will be opened in O_BINARY mode.
> 
> include O_BINARY in your open call to force binary mode on the file.

I'll give this a try, as it has the virtue of making the stream read in
as-is and is an attribute of the open() call.  Also, Egor Duda suggested
using setmode(), but I don't see a manpage for this function (but did
find the prototype in io.h). 

> But, an ounce of experience is worth a pound of theory...all I've got is 
> theory. :-)

You are wise beyond your ears :-)

> --Chuck

-- 
Peter A. Castro <doctor AT fruitbat DOT org> or <Peter DOT Castro AT oracle DOT com>
	"Cats are just autistic Dogs" -- Dr. Tony Attwood

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019