autoconf-patches
[Top][All Lists]
Advanced

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

Re: doc improvements


From: Bruno Haible
Subject: Re: doc improvements
Date: Thu, 31 Dec 2009 14:28:39 +0100
User-agent: KMail/1.9.9

Hi Eric,

About 'tr' on Solaris:

> +Solaris @command{/usr/ucb/tr} fails to handle @samp{\0} as the octal
> +escape for @code{NUL}, and Solaris @command{/usr/bin/tr} silently
> +discards @code{NUL} in the input prior to doing any translation.  When

So it's indeed two different bugs: one regarding NUL bytes in the input,
another one regarding '\0' as part of the arguments. I propose to make
this clearer, including the examples. In particular, make it clear that
the first bug occurs also when the arguments don't ask to convert from or
to '\0'.

Proposed patch, to be applied with "patch -p0".


2009-12-31  Bruno Haible  <address@hidden>

        Improve documentation on Solaris tr bugs.
        * doc/autoconf.texi (Limitations of Usual Tools) <tr>: Refine
        description of NUL handling by Solaris tr.

*** doc/autoconf.texi.orig      Thu Dec 31 14:14:35 2009
--- doc/autoconf.texi   Thu Dec 31 14:12:27 2009
***************
*** 18347,18366 ****
  @end example
  
  Posix requires @command{tr} to operate on binary files.  But at least
! Solaris @command{/usr/ucb/tr} fails to handle @samp{\0} as the octal
! escape for @code{NUL}, and Solaris @command{/usr/bin/tr} silently
! discards @code{NUL} in the input prior to doing any translation.  When
! using @command{tr} to process a binary file that may contain @code{NUL}
! bytes, it is necessary to use @command{/usr/xpg4/bin/tr} instead, or
  @command{/usr/xpg6/bin/tr} if that is available.
  
  @example
! $ @kbd{printf 'ab\0c' | /usr/ucb/tr 'a\0' '\0d' | od -An -tx1}
   61 62 63
! $ @kbd{printf 'ab\0c' | /usr/bin/tr 'a\0' '\0d' | od -An -tx1}
!  00 62 63
! $ @kbd{printf 'ab\0c' | /usr/xpg4/bin/tr 'a\0' '\0d' | od -An -tx1}
!  00 62 64 63
  @end example
  
  @end table
--- 18347,18377 ----
  @end example
  
  Posix requires @command{tr} to operate on binary files.  But at least
! Solaris @command{/usr/ucb/tr} and @command{/usr/bin/tr} silently discard
! @code{NUL} in the input prior to doing any translation.  When using
! @command{tr} to process a binary file that may contain @code{NUL} bytes,
! it is necessary to use @command{/usr/xpg4/bin/tr} instead, or
  @command{/usr/xpg6/bin/tr} if that is available.
  
  @example
! $ @kbd{printf 'a\0b' | /usr/ucb/tr x x | od -An -tx1}
!  61 62
! $ @kbd{printf 'a\0b' | /usr/bin/tr x x | od -An -tx1}
!  61 62
! $ @kbd{printf 'a\0b' | /usr/xpg4/bin/tr x x | od -An -tx1}
!  61 00 62
! @end example
! 
! Solaris @command{/usr/ucb/tr} additionally fails to handle @samp{\0} as the
! octal escape for @code{NUL}.
! 
! @example
! $ @kbd{printf 'abc' | /usr/ucb/tr 'bc' '\0d' | od -An -tx1}
   61 62 63
! $ @kbd{printf 'abc' | /usr/bin/tr 'bc' '\0d' | od -An -tx1}
!  61 00 64
! $ @kbd{printf 'abc' | /usr/xpg4/bin/tr 'bc' '\0d' | od -An -tx1}
!  61 00 64
  @end example
  
  @end table




reply via email to

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