Revert "Disallow escaped characters in variable expansion"

This reverts commit 555af37616.
This commit is contained in:
Fabian Homborg 2021-06-10 16:45:30 +02:00
parent d2b210ee15
commit 7059eaa4ab
3 changed files with 0 additions and 18 deletions

View File

@ -9,7 +9,6 @@ Notable improvements and fixes
Syntax changes and new commands
-------------------------------
- Empty variable names are no longer allowed.
- Escaped characters like ``\x41`` are no longer valid in a variable name (:issue:`7969`).
Deprecations and removed features
---------------------------------

View File

@ -1244,9 +1244,6 @@ maybe_t<size_t> read_unquoted_escape(const wchar_t *input, wcstring *result, boo
}
if (res <= max_val) {
// Prepend internal sep so this does not get treated as part of a variable.
// See #7969.
if (unescape_special) result->push_back(INTERNAL_SEPARATOR);
result_char_or_none =
static_cast<wchar_t>((byte_literal ? ENCODE_DIRECT_BASE : 0) + res);
} else {

View File

@ -78,17 +78,3 @@ echo $list # CHECK: 2 1 3
set -l list 1 2 3
set list[2..] $list[-1..2]
echo $list # CHECK: 1 3 2
# Regression test for #7969.
set fo shorty
set foo A B C
echo $foo[1]
# CHECK: A
echo $foo\1331\135
# CHECK: A[1] B[1] C[1]
echo $foo\x5b1\x5d
# CHECK: A[1] B[1] C[1]
echo $foo\1331\135
# CHECK: A[1] B[1] C[1]
echo $fo\157
# CHECK: shortyo