git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

Previous: Ben WaltonNext: Jonathan Nieder
Message 5 of 24 in “Avoid broken Solaris tr”
  1. Avoid broken Solaris trBen Walton, Jun 18, 2013
  2. Junio C HamanoJun 18, 2013
  3. Ben WaltonOct 28, 2013
  4. Avoid difference in tr semantics between System V and BSDBen Walton, Oct 28, 2013
  5. Johannes SixtOct 28, 2013
  6. Jonathan NiederOct 28, 2013
  7. Junio C HamanoOct 28, 2013
  8. t/README: tests can use perl even with NO_PERLJonathan Nieder, Oct 28, 2013
  9. Johannes SixtOct 28, 2013
  10. Jeff KingOct 28, 2013
  11. Jonathan NiederOct 28, 2013
  12. Ben WaltonOct 28, 2013
  13. 0/3 perlJeff King, Oct 29, 2013
  14. 1/3 use @@PERL@@ in built scriptsJeff King, Oct 29, 2013
  15. Junio C HamanoOct 29, 2013
  16. 2/3 t: provide a perl() function which uses $PERL_PATHJeff King, Oct 29, 2013
  17. 3/3 t: use perl instead of "$PERL_PATH" where applicableJeff King, Oct 29, 2013
  18. Ben WaltonOct 28, 2013
  19. Ben WaltonOct 28, 2013
  20. Junio C HamanoOct 28, 2013
  21. Avoid difference in tr semantics between System V and BSDBen Walton, Oct 28, 2013
  22. Ben WaltonOct 28, 2013
  23. Avoid difference in tr semantics between System V and BSDBen Walton, Oct 28, 2013
  24. Junio C HamanoOct 30, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.