opnsense-src/tools/regression/bin/sh/parser/dollar-quote9.0
Jilles Tjoelker a62ab0274a 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.

Exp-run done by: pav (with some other sh(1) changes)
2011-05-05 20:55:55 +00:00

8 lines
246 B
Text

# $FreeBSD$
# POSIX and C99 say D800-DFFF are undefined in a universal character name.
# We reject this but many other shells expand to something that looks like
# CESU-8.
v=$( (eval ": \$'\uD800'") 2>&1 >/dev/null)
[ $? -ne 0 ] && [ -n "$v" ]