Re: [PATCH] Avoid difference in tr semantics between System V and BSD
- From
Johannes Sixt <j6t@kdbg.org>
- Date
- Oct 28, 2013, 18:07 UTC
- Message-ID
- <526EA7C8.2020607@kdbg.org>
- In-Reply-To
- <1382951633-6456-1-git-send-email-bdwalton@gmail.com>
Am 28.10.2013 10:13, schrieb Ben Walton:
Show 17 quoted lines
> Solaris' tr (both /usr/bin/ and /usr/xpg4/bin) uses the System V > semantics for tr whereby string1's length is truncated to the length > of string2 if string2 is shorter. The BSD semantics, as used by GNU tr > see string2 padded to the length of string1 using the final character > in string2. POSIX explicitly doesn't specify the correct behavior > here, making both equally valid. > > This difference means that Solaris' native tr implementations produce > different results for tr ":\t\n" "\0" than GNU tr. This breaks a few > tests in t0008-ignores.sh. > > Possible fixes for this are to make string2 be "\0\0\0" or "[\0*]". > > Instead, use perl to perform these transliterations which means we > don't need to worry about the difference at all. Since we're replacing > tr with perl, we also use perl to replace the sed invocations used to > transform the files.
In other tests, we check for prerequisite PERL, i.e., we are prepared that perl is not available. Shouldn't we do that here, too?
But OTOH, I think that we should skip as few test cases as possible in such a basic test as t0008.
Just some food for thought... -- Hannes