From 88ac97d02dfeb4d3bd9efda45ceb64608cfedd53 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Sat, 1 Oct 2016 20:55:02 +0200 Subject: ash: [EXPAND] Do not split quoted VSLENGTH and VSTRIM Upstream patch: Date: Wed, 8 Oct 2014 15:42:08 +0800 [EXPAND] Do not split quoted VSLENGTH and VSTRIM Currently VSLENGTH and VSTRIM* are field-split even within quotes. This is obviously wrong. This patch fixes that. Signed-off-by: Herbert Xu Signed-off-by: Denys Vlasenko --- shell/hush_test/hush-vars/var_wordsplit_ifs2.right | 3 +++ shell/hush_test/hush-vars/var_wordsplit_ifs2.tests | 13 +++++++++++++ shell/hush_test/hush-vars/var_wordsplit_ifs3.right | 12 ++++++++++++ shell/hush_test/hush-vars/var_wordsplit_ifs3.tests | 5 +++++ 4 files changed, 33 insertions(+) create mode 100644 shell/hush_test/hush-vars/var_wordsplit_ifs2.right create mode 100755 shell/hush_test/hush-vars/var_wordsplit_ifs2.tests create mode 100644 shell/hush_test/hush-vars/var_wordsplit_ifs3.right create mode 100755 shell/hush_test/hush-vars/var_wordsplit_ifs3.tests (limited to 'shell/hush_test') diff --git a/shell/hush_test/hush-vars/var_wordsplit_ifs2.right b/shell/hush_test/hush-vars/var_wordsplit_ifs2.right new file mode 100644 index 000000000..c234193fe --- /dev/null +++ b/shell/hush_test/hush-vars/var_wordsplit_ifs2.right @@ -0,0 +1,3 @@ +Unquoted:<1> +Unquoted:<3> +Quoted:<123> diff --git a/shell/hush_test/hush-vars/var_wordsplit_ifs2.tests b/shell/hush_test/hush-vars/var_wordsplit_ifs2.tests new file mode 100755 index 000000000..47523549c --- /dev/null +++ b/shell/hush_test/hush-vars/var_wordsplit_ifs2.tests @@ -0,0 +1,13 @@ +# 123 chars long +a="\ +01234567890123456789\ +01234567890123456789\ +01234567890123456789\ +01234567890123456789\ +01234567890123456789\ +0123456789\ +0123456789\ +012" + +IFS=2; for v in ${#a}; do echo Unquoted:"<$v>"; done +IFS=2; for v in "${#a}"; do echo Quoted:"<$v>"; done diff --git a/shell/hush_test/hush-vars/var_wordsplit_ifs3.right b/shell/hush_test/hush-vars/var_wordsplit_ifs3.right new file mode 100644 index 000000000..5ab72e1cd --- /dev/null +++ b/shell/hush_test/hush-vars/var_wordsplit_ifs3.right @@ -0,0 +1,12 @@ +Unquoted%: +Unquoted%: +Unquoted%: +Unquoted%: +Unquoted%: +Unquoted#: +Unquoted#: +Unquoted#: +Unquoted#: +Unquoted#: +Quoted%: +Quoted#:< w e r t y> diff --git a/shell/hush_test/hush-vars/var_wordsplit_ifs3.tests b/shell/hush_test/hush-vars/var_wordsplit_ifs3.tests new file mode 100755 index 000000000..4aa65574a --- /dev/null +++ b/shell/hush_test/hush-vars/var_wordsplit_ifs3.tests @@ -0,0 +1,5 @@ +a="q w e r t y" +for v in ${a%y}; do echo Unquoted%:"<$v>"; done +for v in ${a#q}; do echo Unquoted#:"<$v>"; done +for v in "${a%y}"; do echo Quoted%:"<$v>"; done +for v in "${a#q}"; do echo Quoted#:"<$v>"; done -- cgit v1.2.3