Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin-developers AT sourceware DOT cygnus DOT com X-Authentication-Warning: hp2.xraylith.wisc.edu: khan owned process doing -bs Date: Mon, 24 Apr 2000 16:36:58 -0500 (CDT) From: Mumit Khan To: cygwin-developers AT sourceware DOT cygnus DOT com Subject: Re: hybrid text/binary mount In-Reply-To: <20000424150424.A1421@cygnus.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Mon, 24 Apr 2000, Chris Faylor wrote: > On Mon, Apr 24, 2000 at 02:31:19PM -0400, DJ Delorie wrote: > >Hey, I've got an idea. How about a mount mode where files opened for > >reading do CR/LF conversion *if* they look like text files (i.e. no > >binary characters, all CR/LF are part of CR/LF pair), and files open > >for writing always write files in binary mode. > > That's amazing. I have been thinking about the same thing for several > days. I have started to type this in several time but always hit a wall > when I realized that given the nature of this mailing list, either no one > would respond or somewone will respond with a twenty page treatise on the > way they think it should be done with no hint of an effort to volunteer to > do the actual work. > > I was thinking that if a file had any characters whose ASCII code was > < ' ' or >= DEL before the first \n, then the file would be considered > binary. Otherwise, the file would be text. You could apply this heuristic > to both input and output. > > This might catch a majority of the cases where people really want binary > code but it is so non-deterministic that it might make problems harder > to track down. > > I was thinking of a CYGWIN=autobinmode and a mount '-a' option. I have yet to read the whole thread, so apologies in advance if I'm missing anything. I implemented something along these lines for glibc2 win32 port, and it works well in theory, but ran into a whole bunch of weird problems. My main motivation was to support scripts written using native editors that use CR-LF line endings; writing is always binary, since there is distinction made in the runtime between text vs binary streams, and all streams are binary. All was well, until someone who used a file that had innocent looking text as the first line (eg., "This file cannot be run in MSDOS mode"), and the rest was binary, and of course the reader failed miserably. I believe I have two other bug reports from other testers that got bitten by something similar. After this I had reverted the change, but now rethinking how to do this right. Regards, Mumit