bug-bash
[Top][All Lists]
Advanced

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

Re: bash-3.2 breaks mc (echo -e '\137')


From: Chet Ramey
Subject: Re: bash-3.2 breaks mc (echo -e '\137')
Date: Wed, 07 Feb 2007 09:49:01 -0500
User-agent: Thunderbird 1.5.0.9 (Macintosh/20061207)

H.Koenig@science-computing.de wrote:
> Configuration Information [Automatically generated, do not change]:
> Machine: amd64-linux
> OS: suse90
> Compiler: gcc
> Compilation CFLAGS:  -DPROGRAM='bash' -DCONF_HOSTTYPE='amd64-linux' 
> -DCONF_OSTYPE='suse90' -DCONF_MACHTYPE='x86_64-unknown-linux-gnu' 
> -DCONF_VENDOR='unknown' 
> -DLOCALEDIR='/scr/os2-suse90/koenig/bash-3.2.1-1/PREINSTALL//usr/local//share/locale'
>  -DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H   -I.  -I. -I./include -I./lib   
> -O2 -D_LARGE_FILES -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
> uname output: Linux atuin 2.6.16.21-0.25-smp #1 SMP Tue Sep 19 07:26:15 UTC 
> 2006 x86_64 x86_64 x86_64 GNU/Linux
> Machine Type: x86_64-unknown-linux-gnu
> 
> Bash Version: 3.2
> Patch Level: 1
> Release Status: release
> 
> Description:
> 
> bash versions before 3.2 all allowed 
> 
>       echo -e '\137'
> 
> to display an underscore, but now in 3.2 _only_ 
> 
>       echo -e '\0137'
> 
> seems to be valid.  this breaks apps and scripts which (still)
> use the old (non-posix) always-three-digit-oactal-number scheme.

Here is what I wrote when this issue first came up last October:

It's intentional.  The xpg_echo and `echo -e' code should be identical,
and the xpg_echo code is required by POSIX/XSI to interpret octal constants
only with the leading `0'.  There are lots of ways to indicate that
backslash escapes should be interpreted -- maybe too many -- but when
they are, they should behave consistently.

echo is crazy enough without more differing interpretations of backslash
escapes.

Any application wanting to use a standard utility for output should use
printf.

It was not in my summary of changes between 3.1 and 3.2 (an oversight),
but it certainly appears in the changelog (CWRU/changelog):

lib/sh/strtrans.c
        - add code to echo -e and echo with xpg_echo enabled to require
          a leading 0 to specify octal constants

Chet
-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                       Live Strong.  No day but today.
Chet Ramey, ITS, CWRU    chet@case.edu    http://cnswww.cns.cwru.edu/~chet/




reply via email to

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