Subject: Re: bug#32703: echo_man_error

From: Pádraig Brady <[email-masked]>
Date: Sat, 15 Sep 2018 23:43:34 -0700

On 11/09/18 11:07, Eric Blake wrote:
> On 9/11/18 11:01 AM, Eric Blake wrote:
> 
>> $ POSIXLY_CORRECT=1 /bin/echo a\\nb
>> a\nb
>>
>> Yikes!  Even though we asked for POSIX correctness, we are NOT 
>> interpreting backslashes.  I think this is a bug in GNU coreutils' echo, 
>> and could be fixed by the patch below (but the testsuite would also need 
>> updates).
> 
> And it might even be a regression.  Reading through NEWS, I found this 
> back in 5.3.0:
> 
>    echo now conforms to POSIX better.  It supports the \0ooo syntax for
>    octal escapes, and \c now terminates printing immediately.  If
>    POSIXLY_CORRECT is set and the first argument is not "-n", echo now
>    outputs all option-like arguments instead of treating them as options.
> 
> although I haven't actually tested prior versions to see if behavior has 
> changed over time.

I agree that we shouldn't be divergent here.
POSIXLY_CORRECT should enable interpretation of escapes.

I don't think it's a regression though.
>From a quick review, default interpretation of escapes
was only controllable at compile time, until -e allowed
interpretation as of commit b7bfc2d2 (textutils-1.22).

  Author: Jim Meyering <[email-masked]>
  Date:   Thu Sep 25 12:58:50 1997 +0000
    Make echo conform to POSIX.  By default, don't
    interpret backslash escape sequences.

POSIX may have changed in the meantime, but POSIXLY_CORRECT
was never used as a condition for enabling interpretation of escapes.

cheers,
Pádraig