aboutsummaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorMark Edgar <medgar123@gmail.com>2020-05-30 19:05:46 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2020-06-09 15:40:49 +0200
commitb2ab920716f640cbaaf486512ba177f4e0b597c5 (patch)
treeae3c6cb964bedf4f59f917c93172f8c9197af0d2 /testsuite
parent9b4a9d96b89f06355ad9551d782d34506699aac8 (diff)
downloadbusybox-b2ab920716f640cbaaf486512ba177f4e0b597c5.tar.gz
unexpand: correct behavior for --first-only --tabs=4
Prior to the patch, both -f and --first-only are in all cases either no-op or ignored. Without --tabs, --first-only is the default so specifying it is a no-op. With --tabs, --all is implied, and --first-only is intended to reset this. function old new delta expand_main 690 694 +4 Signed-off-by: Mark Edgar <medgar123@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'testsuite')
-rwxr-xr-xtestsuite/unexpand.tests33
1 files changed, 33 insertions, 0 deletions
diff --git a/testsuite/unexpand.tests b/testsuite/unexpand.tests
index 7b326dc2c..4ab693ec8 100755
--- a/testsuite/unexpand.tests
+++ b/testsuite/unexpand.tests
@@ -31,6 +31,39 @@ testing "unexpand case 7" "unexpand" \
testing "unexpand case 8" "unexpand" \
"a b\n" "" "a b\n" \
+testcase()
+{
+ testing "unexpand flags $*" "unexpand $*" \
+ "$want" "" ' a b c'
+}
+
+# tabs=8, Convert only leading sequences of blanks
+want='\ta b c'
+testcase
+testcase -f
+testcase -f -t8
+testcase -t8 -f
+testcase -t8 --first-only
+
+# tabs=8, Convert all blanks
+want='\ta\tb c'
+testcase -a
+testcase -t8
+testcase -a -t8
+
+# tabs=4, Convert all blanks
+want='\t\ta\t\tb\t c'
+testcase -t4
+testcase -a -t4
+testcase -t4 -a
+
+# tabs=4, Convert only leading sequences of blanks
+want='\t\ta b c'
+testcase -t4 -f
+testcase -f -t4
+testcase -t4 --first-only
+testcase --first-only -t4
+
test x"$CONFIG_UNICODE_SUPPORT" = x"y" \
&& test x"$CONFIG_UNICODE_USING_LOCALE" != x"y" \
&& testing "unexpand with unicode characher 0x394" "unexpand" \