Author: jilles
Date: Sun Dec  6 14:09:31 2015
New Revision: 291903
URL: https://svnweb.freebsd.org/changeset/base/291903

Log:
  sh: Add limited test for ${#@} and ${#*}.
  
  POSIX leaves the result of expanding ${#@} and ${#*} unspecified, but ensure
  it is numeric.

Added:
  head/bin/sh/tests/parameters/positional9.0   (contents, props changed)
Modified:
  head/bin/sh/tests/parameters/Makefile

Modified: head/bin/sh/tests/parameters/Makefile
==============================================================================
--- head/bin/sh/tests/parameters/Makefile       Sun Dec  6 14:07:57 2015        
(r291902)
+++ head/bin/sh/tests/parameters/Makefile       Sun Dec  6 14:09:31 2015        
(r291903)
@@ -21,6 +21,7 @@ FILES+=               positional5.0
 FILES+=                positional6.0
 FILES+=                positional7.0
 FILES+=                positional8.0
+FILES+=                positional9.0
 FILES+=                pwd1.0
 FILES+=                pwd2.0
 

Added: head/bin/sh/tests/parameters/positional9.0
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/bin/sh/tests/parameters/positional9.0  Sun Dec  6 14:09:31 2015        
(r291903)
@@ -0,0 +1,18 @@
+# $FreeBSD$
+# Although POSIX leaves the result of expanding ${#@} and ${#*} unspecified,
+# make sure it is at least numeric.
+
+set -- bb cc ddd
+set -f
+lengths=${#*}${#@}"${#*}${#@}"$(echo ${#*}${#@}"${#*}${#@}")
+IFS=
+lengths=$lengths${#*}${#@}"${#*}${#@}"$(echo ${#*}${#@}"${#*}${#@}")
+case $lengths in
+*[!0-9]*)
+       printf 'bad: %s\n' "$lengths"
+       exit 3 ;;
+????????????????*) ;;
+*)
+       printf 'too short: %s\n' "$lengths"
+       exit 3 ;;
+esac
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to