Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , 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 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: <406E4184 DOT 30904 AT cwilson DOT fastmail DOT fm> In-Reply-To: <406E4184.30904@cwilson.fastmail.fm> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit 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/