patch 9.0.1647: insufficient testing for syntax plugins

Problem:    Insufficient testing for syntax plugins.
Solution:   Add shell file examples. (Charles Campbell)  Create a messages
            file for easier debugging and reporting the test results.
diff --git a/runtime/syntax/testdir/input/sh_08.sh b/runtime/syntax/testdir/input/sh_08.sh
new file mode 100644
index 0000000..2b80d43
--- /dev/null
+++ b/runtime/syntax/testdir/input/sh_08.sh
@@ -0,0 +1,82 @@
+#!/bin/ksh -p
+
+# Note that this is special test file for ksh. sh is an extra file.
+# Note too, that this file contains ONLY things which works for ksh BUT NOT
+# for sh
+
+# This all should be OK
+
+# Several keywords without any quotes!
+# Case 1a. Several Constants 
+[ -t 0 ] && date
+Variable1=${VariableA:-This is a Text}
+Variable2=${VariableA:=This is a Text}
+Variable3=${VariableA:?This is a Text}
+echo "$Variable1" ; echo "$Variable2" ; echo "$Variable3"
+
+# Case 1b. Variable and Constant
+[ -t 0 ] && echo "\n`date`" && unset VariableA
+Variable1=${VariableA:-$HOME This is a Text}
+Variable2=${VariableA:=$HOME This is a Text}
+Variable3=${VariableA:?$HOME This is a Text}
+echo "$Variable1" ; echo "$Variable2" ; echo "$Variable3"
+
+# Case 1c. Constant and Variable
+[ -t 0 ] && echo "\n`date`" && unset VariableA
+Variable1=${VariableA:-This is a Text in $HOME}
+Variable2=${VariableA:=This is a Text in $HOME}
+Variable3=${VariableA:+This is a Text in $HOME}       #! :+ is bash-only, error here expected
+Variable1=${VariableA:-This is a Text in $HOME too}
+Variable2=${VariableA:=This is a Text in $HOME too}
+Variable3=${VariableA:+This is a Text in $HOME too}
+echo "$Variable1" ; echo "$Variable2" ; echo "$Variable3"
+
+# Case 1d. More Variables and Constants. Starting with a Variable.
+[ -t 0 ] && echo "\n`date`" && unset VariableA
+Variable1=${VariableA:-$SHELL}
+Variable1=${VariableA:-$SHELL This is a Text in $HOME}
+Variable2=${VariableA:=$SHELL This is a Text in $HOME}
+Variable3=${VariableA:+$SHELL This is a Text in $HOME}
+echo "$Variable1" ; echo "$Variable2" ; echo "$Variable3"
+
+# Case 1e. More Constants and Variables. Starting with a Constant.
+[ -t 0 ] && echo "\n`date`" && unset VariableA
+Variable1=${VariableA:-"This is a Text in $HOME $SHELL"}
+Variable1=${VariableA:-This is a Text in $HOME $SHELL}
+Variable2=${VariableA:=This is a Text in $HOME $SHELL}
+Variable3=${VariableA:+This is a Text in $HOME $SHELL}
+echo "$Variable1" ; echo "$Variable2" ; echo "$Variable3"
+
+# Case 1x. The same with ':'
+[ -t 0 ] && echo "\n`date`" && unset VariableA
+: ${VariableA:-This is a Text}
+: ${VariableA:-$HOME This is a Text}
+: ${VariableA:-This is a Text in $HOME}
+: ${VariableA:-$SHELL This is a Text in $HOME}
+: ${VariableA:-This is a Text in $HOME $SHELL}
+
+# Case 1y. The same with ':' and without the ':' in the parameter substitution
+[ -t 0 ] && echo "\n`date`" && unset VariableA
+: ${VariableA-This is a Text}
+: ${VariableA-$HOME This is a Text}
+: ${VariableA-This is a Text in $HOME}
+: ${VariableA-$SHELL This is a Text in $HOME}
+: ${VariableA-This is a Text in $HOME $SHELL}
+
+################################################################################
+#
+# This are valid usages for ${Var:?} in ksh!
+#
+Variable4=${Variable4:?This is an Error Message}
+Variable4=${Variable4:?This is an Error Message from `date`}
+
+: ${Variable4:?This is an Error Message}
+: ${Variable4:?This is an Error Message from `date`}
+
+exit $?
+
+# Michael Soulier
+if [ $# -ne 1 ]; then
+	echo whatever
+	exit 1
+fi