Am Dienstag, 15. Juli 2008 12:18:21 schrieb Michael Schroeder:
On Mon, Jul 14, 2008 at 11:33:23PM +0200, Dirk Mueller wrote:
On Monday 14 July 2008, Dirk Mueller wrote:
hmm, even worse, it seems the src repository is now corrupted. from a fresh checkout:
there are two more bugs in isascii() which might have caused that:
- it read 0 bytes of the file at offset 4096 instead of 4096 bytes from offset 0 - a file containing a newline \r or \n was considered to be binary.
anyway, I think it might be better to just use the perl builtin operator -T for it (and all the other possible bugs still lurking in 5 lines of perl). Sorry, but this is the kind of code which makes it ugly. It takes one compareable long to understand the code - not speaking about nice error possibilities.
@@ -1650,12 +1650,7 @@ sub sourcediff {
sub isascii { my ($file) = @_; - local *F; - open(F, '<', $file) || die("$file: $!\n"); - my $buf = ''; - sysread(F, $buf, 0, 4096); - close F; - return 1 unless $buf =~ /[\000-\037]/s; + return 1 if -T $file; According to manpage: return 1 if( -f $file && -T $file );
I don't like that because it's locale dependant. From the manpage:
| The "-T" and "-B" switches work as follows. The first block or so of the | file is examined for odd characters such as strange control codes or | characters with the high bit set. If too many strange characters (>30%) | are found, it's a "-B" file; otherwise it's a "-T" file. Also, any | file containing null in the first block is considered a binary file. Klaas -- Klaas Freitag Architect OPS/IPD SUSE LINUX Products GmbH - Nuernberg --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org