From 42ba757d5e80ba25cc192939aa3525049f9e092f Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Fri, 21 Jul 2017 13:20:14 +0200 Subject: ash: improve set -x to quote strings as necessary Basen on the patch from Martijn Dekker function old new delta evalcommand 1161 1302 +141 maybe_single_quote - 60 +60 getoptscmd 527 546 +19 readtoken1 2819 2823 +4 localcmd 366 364 -2 evaltreenr 495 479 -16 evaltree 495 479 -16 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 3/3 up/down: 224/-34) Total: 190 bytes Signed-off-by: Denys Vlasenko --- shell/ash_test/ash-quoting/mode_x.right | 10 ++++++++++ shell/ash_test/ash-quoting/mode_x.tests | 14 ++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 shell/ash_test/ash-quoting/mode_x.right create mode 100755 shell/ash_test/ash-quoting/mode_x.tests (limited to 'shell/ash_test') diff --git a/shell/ash_test/ash-quoting/mode_x.right b/shell/ash_test/ash-quoting/mode_x.right new file mode 100644 index 000000000..c2dd3550c --- /dev/null +++ b/shell/ash_test/ash-quoting/mode_x.right @@ -0,0 +1,10 @@ ++ var1=val ++ var2='one two' ++ true '%s\n' one 'two '"'"'three' four ++ this=command ++ 'this=command' +./mode_x.tests: line 1: this=command: not found ++ true ++ true ++ 'if' true +./mode_x.tests: line 1: if: not found diff --git a/shell/ash_test/ash-quoting/mode_x.tests b/shell/ash_test/ash-quoting/mode_x.tests new file mode 100755 index 000000000..16dae3f4b --- /dev/null +++ b/shell/ash_test/ash-quoting/mode_x.tests @@ -0,0 +1,14 @@ +set -x + +var1=val +var2='one two' +true %s\\n one "two 'three" four + +# assignment: +this=command +# NOT assignment, +x code should show it quoted: +"this=command" + +if true; then true; fi +# +x code should quote 'if' here: +"if" true -- cgit v1.2.3