[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/