sh: Add $'quoting' (C-style escape sequences).
authorPeter Avalos <pavalos@dragonflybsd.org>
Sun, 3 Jul 2011 00:29:49 +0000 (14:29 -1000)
committerPeter Avalos <pavalos@dragonflybsd.org>
Sun, 21 Aug 2011 19:10:25 +0000 (12:10 -0700)
commite1489450c38a053dad66768fc12706aa2968f646
tree45a00bbb41f9aaf07783ad73820c198a8536d3d3
parent024481c1f7126a45bec71491e1287c2fff512050
sh: Add $'quoting' (C-style escape sequences).

A string between $' and ' may contain backslash escape sequences similar
to the ones in a C string constant (except that a single-quote must be
escaped and a double-quote need not be). Details are in the sh(1) man
page.

This construct is useful to include unprintable characters, tabs and
newlines in strings; while this can be done with a command substitution
containing a printf command, that needs ugly workarounds if the result
is to end with a newline as command substitution removes all trailing
newlines.

The construct may also be useful in future to describe unprintable
characters without needing to write those characters themselves in 'set
-x', 'export -p' and the like.

The implementation attempts to comply to the proposal for the next issue
of the POSIX specification. Because this construct is not in
POSIX.1-2008, using it in scripts intended to be portable is unwise.

Matching the minimal locale support in the rest of sh, the \u and \U
sequences are currently not useful.

Obtained-from:   FreeBSD SVN rev 221513
12 files changed:
bin/sh/mksyntax.c
bin/sh/parser.c
bin/sh/sh.1
tools/regression/bin/sh/parser/dollar-quote1.0 [new file with mode: 0644]
tools/regression/bin/sh/parser/dollar-quote2.0 [new file with mode: 0644]
tools/regression/bin/sh/parser/dollar-quote3.0 [new file with mode: 0644]
tools/regression/bin/sh/parser/dollar-quote4.0 [new file with mode: 0644]
tools/regression/bin/sh/parser/dollar-quote5.0 [new file with mode: 0644]
tools/regression/bin/sh/parser/dollar-quote6.0 [new file with mode: 0644]
tools/regression/bin/sh/parser/dollar-quote7.0 [new file with mode: 0644]
tools/regression/bin/sh/parser/dollar-quote8.0 [new file with mode: 0644]
tools/regression/bin/sh/parser/dollar-quote9.0 [new file with mode: 0644]