about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--Test/D04parameter.ztst25
2 files changed, 28 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 08c7f43b8..4c6f06b56 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2020-01-01  Daniel Shahaf  <danielsh@apache.org>
 
+	* unposted: Test/D04parameter.ztst: Add some tests for ${(S)},
+	including a regression test for workers/45164.
+
 	* 45169/0002 (tweaked for trailing newlines): Etc/BUGS,
 	Test/C03traps.ztst: Add an expected-to-fail test for
 	workers/44007.
diff --git a/Test/D04parameter.ztst b/Test/D04parameter.ztst
index 899b8f498..f4af5d59c 100644
--- a/Test/D04parameter.ztst
+++ b/Test/D04parameter.ztst
@@ -2625,3 +2625,28 @@ F:behavior, see http://austingroupbugs.net/view.php?id=888
  print ${foo%%*}
 0:Largest match at end matches entire string
 >
+
+ foo=pws
+ print 1: ${(S)foo#*}
+ print 2: ${(S)foo##*}
+ print 3: ${(S)foo#?}
+ print 4: ${(S)foo##?}
+0:(S) with zero-length matches at start
+>1: pws
+>2:
+>3: ws
+>4: ws
+
+ foo=pws
+ print 2: ${(S)foo%%*}
+-f:(S) with zero-length matches at end, part 1 (workers/45164)
+>2: pws
+
+ foo=pws
+ print 1: ${(S)foo%*}
+ print 3: ${(S)foo%?}
+ print 4: ${(S)foo%%?}
+0:(S) with zero-length matches at end, part 2
+>1: pws
+>3: pw
+>4: pw