about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2011-03-11 21:05:59 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2011-03-11 21:05:59 +0000
commit4263d2b8215024e4f93620b791b83c2c7f878f94 (patch)
tree679e9753310047ca4cf498989d8bdb82e8116295
parent336836987fda996158835551942efee01ac8fac2 (diff)
downloadzsh-4263d2b8215024e4f93620b791b83c2c7f878f94.tar.gz
zsh-4263d2b8215024e4f93620b791b83c2c7f878f94.tar.xz
zsh-4263d2b8215024e4f93620b791b83c2c7f878f94.zip
28889: ${##} should return the length of $#
-rw-r--r--ChangeLog7
-rw-r--r--Src/subst.c1
-rw-r--r--Test/D04parameter.ztst8
3 files changed, 15 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 237578f2d..244b58e54 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-03-11  Peter Stephenson  <p.w.stephenson@ntlworld.com>
+
+	* 28889: Src/subst.c, Test/D04parameter.ztst: ${##} should
+	return the length of $#.
+
 2011-03-11  Peter Stephenson  <pws@csr.com>
 
 	* unposted: Completion/Zsh/Context/_dynamic_directory_name:
@@ -14327,5 +14332,5 @@
 
 *****************************************************
 * This is used by the shell to define $ZSH_PATCHLEVEL
-* $Revision: 1.5220 $
+* $Revision: 1.5221 $
 *****************************************************
diff --git a/Src/subst.c b/Src/subst.c
index 9b3699a47..dfe96c890 100644
--- a/Src/subst.c
+++ b/Src/subst.c
@@ -2039,6 +2039,7 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub)
 	} else if ((c == '#' || c == Pound) &&
 		   (itype_end(s+1, IIDENT, 0) != s + 1
 		    || (cc = s[1]) == '*' || cc == Star || cc == '@'
+		    || cc == '#' || cc == Pound
 		    || cc == '-' || (cc == ':' && s[2] == '-')
 		    || (isstring(cc) && (s[2] == Inbrace || s[2] == Inpar)))) {
 	    getlen = 1 + whichlen, s++;
diff --git a/Test/D04parameter.ztst b/Test/D04parameter.ztst
index c0ad1d29a..36462456b 100644
--- a/Test/D04parameter.ztst
+++ b/Test/D04parameter.ztst
@@ -175,6 +175,14 @@
 0:${#...}, $#...
 >8 8 8 8 8 8 8 8
 
+  set 1 2 3 4 5 6 7 8 9
+  print ${##}
+  set 1 2 3 4 5 6 7 8 9 10
+  print ${##}
+0:${##} is length of $#
+>1
+>2
+
   array=(once bitten twice shy)
   print IF${array}THEN
   print IF${^array}THEN