delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2004/04/03/23:46:03

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Message-ID: <406F92EC.707@att.net>
Date: Sat, 03 Apr 2004 23:45:32 -0500
From: David Fritz <zeroxdf AT att DOT net>
User-Agent: Mozilla Thunderbird 0.5 (Windows/20040207)
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: Bogus assumption prevents d2u/u2d/conv/etal working on mixed files.
References: <NUTMEGuwtvWNkywIUEh00000336 AT NUTMEG DOT CAM DOT ARTIMI DOT COM> <406E4184 DOT 30904 AT cwilson DOT fastmail DOT fm>
In-Reply-To: <406E4184.30904@cwilson.fastmail.fm>
X-IsSubscribed: yes

Charles Wilson wrote:
[...]
>   (2) it's an attempt to prevent users from permanently scrogging binary 
> files.  See: d2u, on a binary file, is an irreversible operation.  So, 
> if you do "d2u *" you'll probably kill something deep inside some binary 
> file, and you can't fix it -- unless some minimal safeguards are in place.
> 
>   u2d MAY be reversible -- IF there were no pre-exising \r\n 
> combinations in the file to begin with -- so when (OMG-fixit-)d2u is 
> run, obviously the first '\n' is preceeded by a (newly-added) '\r\n', so 
> the prog merrily replaces ALL '\r\n' with '\n'...which MAY fix your 
> oops, but maybe not.
> 
> 
> So, with the current code, if you snarf the first "line" -- all chars 
> until the first '\n' -- if it's a binary file the odds are pretty low 
> that the immediately-preceeding character is a '\r' -- so d2u as 
> currently coded will bail out, and no harm is done.
> 
> It doesn't work so well in the other direction -- by the same logic 
> above, you'll almost never bail out early if you run 'u2d' on a binary 
> file -- but if you immediately do a 'd2u' you MIGHT be able to recover.)
> 
[...]

If detection of binary files is desirable, why not use an explicit test with a 
more robust methodology?  GNU grep detects binary files by looking for a '\0' 
byte.  Such a test could be used by both d2u and u2d; they could bail out with a 
message like "skipping binary file".

Cheers


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


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