On Wed, Nov 28, 2018 at 10:40:05AM -0600, Eric Blake wrote:

> > Or is this an independent fix?
> 
> Hard to say.  Note that:
> 
> printf %s "\015"
> printf %s "\\015"
> 
> both output five bytes (single backslash, three digits, and a newline) -
> that's because in "", \ followed by an unknown character still outputs the \
> verbatim.  So the tr process is not seeing any change to its arguments -
> `"\015"` and $("\015") are the same as `"\\\\015"` and $("\\015") (the
> former two relying on the character after \ not being special and therefore
> the \ being used literally, the latter two being fully escaped to ensure
> that a single literal \ results).  But switching between non-special form
> and fully-escaped form is odd, and should be done independently if at all -
> in general, the conversion from `` to $() should only ever remove \ that
> were special to `` but not needed for $(), and not ever need to add \.

Sorry. That was an independent fix that slipped into the patch.

Ben

Attachment: signature.asc
Description: PGP signature

Reply via email to