[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: javacomp: portability fix

From: Eric Blake
Subject: Re: javacomp: portability fix
Date: Tue, 29 Dec 2009 19:33:32 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

Ralf Wildenhues <Ralf.Wildenhues <at> gmx.de> writes:

> > The creation of a binary file from within javacomp.m4 created a wrong file
> > on Solaris, because Solaris 'tr' (all of /usr/bin/tr, /usr/xpg4/bin/tr,
> > /usr/xpg6/bin/tr) behave differently than GNU 'tr' in a particular case.
> I've tried to read the patch, but it's too much line noise to decipher
> quickly.  What's the difference in behavior here, and is this something
> that we should document in autoconf.texi's portability section?

If I'm reading the patch correctly, the difference shows up in the last hunk of 
the diff, where Bruno changed ',-.' to ',.', and shuffled all remaining 
translations by one byte, changing from a translation of 85 distinct bytes to 
one of 84.  But I can't seem to spot the portability problem with -, even when 

$ echo ',+-/.' | coreutils/tr ',-.' '.,-'
$ echo ',+-/.' | /usr/bin/tr ',-.' '.,-' 
$ echo ',+-/.' | /usr/xpg4/bin/tr ',-.' '.,-'

Oh, I finally see it now.  There are only 84 bytes being translated; pre-patch, 
the invocation was "tr [85] [84]", post-patch it is "tr [84] [84]".  So the 
problem was not with '-' (although that can potentially be problematic in its 
own right), but in the mismatch in charset sizes.  And no, I don't see that in 
the autoconf manual (yet).

$ echo 'abc' | coreutils/tr 'bc' 'd'
$ echo 'abc' | /usr/bin/tr 'bc' 'd'
$ echo 'abc' | /usr/xpg4/bin/tr 'bc' 'd' 

Hmm.  It also appears that Solaris /usr/bin/tr handles \0 on output, just not 
on input; so the autoconf manual needs a tweak anyways.

$ printf 'a\0c' | /usr/bin/tr '\0' 'b' | od -tx1
0000000 61 63
% printf 'abc' | /usr/bin/tr 'b' '\0' | od -tx1
0000000 61 00 63

I'll see what I can whip up.

Eric Blake

reply via email to

[Prev in Thread] Current Thread [Next in Thread]