nmh-workers
[Top] [All Lists]

Re: mhbuild: extraneous information in message

2021-05-13 10:15:55
Hello Ralph.

Ralph Corderoy wrote in
 <20210513082404.40C9A208CA@orac.inputplus.co.uk>:
 |> For example it treats un/even reverse solidus at EOLs nice, which is
 |> still not true as of today for shells, for example:
 |>
 |>   #?0|kent:steffen$ echo du \\\\\
 |>> hey
 |>   du \\hey
 |>   #?0|kent:steffen$ dash
 |>   #kent:$ echo du \\\\\
 |>> das
 |>   du \das
 |>   #kent:$
 |
 |I don't think the backslash at the end of the line is relevant.  Trying
 |four Bourne-alike shells, I get two outputs.
 ...
[I see you use it, please note heirloom has had problems with
":>FILE", my web42 test script failed many years ago and i find

  rm_file() {
          # This does not work with Heirloom sh(1), even though the construct
          # works as such; this was reproducable as long as i was tired to find
          # the problem; let us just use printf(1) instead
          #: > "${1}"
          printf '' > "${1}"
  }

I do not use :>X ever since for things possibly ending in the
public or meant to be portable.  Whatever it may be, does it still
use mysterious memory handling, was it a miscompilation, pfff.]

 |Clearly, echo's argv[2] will start with two backslashes.  The issue is
 |whether echo(1) should interpret that as an escape and print out just
 |one as seen in B.
 |
 |My echo(1p) here says
 |
 |   ‘If the first operand is −n, or if any of the operands contain
 |    a <backslash> character, the results are implementation-defined.’
 |
 |It says that because there were two entrenched divergent implementations
 |which couldn't be standardised, thus printf(1).

Harald van Dijk answered the message for dash like this:

  This is expected as dash's echo always processes backslashes. bash will
  give the same output when its xpg_echo option is enabled.

Yes i did not know this.  The last time i read a bash manual was
maybe 2.*, a very long time ago.  Then a decade mksh, what do
i know.  And do not rely on echo(1), ..yes.  (It is just, not that
long ago, and if i recall correctly, newline escaping with \ to
come to a $PS2 line, where the reverse solidus was the last of
a couple thereof, was broken here and there, for whatever reason,
maybe it appeared to me as something related.)

Thanks for the effort.

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)


<Prev in Thread] Current Thread [Next in Thread>