tr: more of code shrink (getopt32-ification)
runtest: cleanup. Method of getting $applets was truly bizarre

function                                             old     new   delta
tr_main                                              655     527    -128

diff --git a/testsuite/runtest b/testsuite/runtest
index 279f51f..4946cbd 100755
--- a/testsuite/runtest
+++ b/testsuite/runtest
@@ -1,9 +1,5 @@
 #!/bin/sh
 
-[ -n "$srcdir" ] || srcdir=$(pwd)
-[ -n "$bindir" ] || bindir=$(dirname $(pwd))
-PATH=$bindir:$PATH
-
 # Run old-style test.
 
 run_applet_testcase()
@@ -35,9 +31,9 @@
 	mkdir -p tmp
 	pushd tmp > /dev/null
 
-	d=$srcdir sh -x -e $testcase >.logfile.txt 2>&1 || status=$?
+	d=$tsdir sh -x -e $testcase >.logfile.txt 2>&1 || status=$?
 
-	if [ $status -ne 0 ] ; then
+	if [ $status -ne 0 ]; then
 		echo FAIL: $testname
 		if [ $verbose -gt 0 ]; then
 			cat .logfile.txt
@@ -61,14 +57,11 @@
 
 	local status=0
 
-	for testcase in $srcdir/$applet/*; do
-		if [ "$testcase" = "$srcdir/$applet/CVS" ]; then
+	for testcase in $tsdir/$applet/*; do
+		if [ "$testcase" = "$tsdir/$applet/CVS" ]; then
 			continue
 		fi
-
-		if run_applet_testcase $applet $testcase; then
-			:
-		else
+		if ! run_applet_testcase $applet $testcase; then
 			status=1
 		fi
 	done
@@ -80,64 +73,61 @@
 status=0
 verbose=0
 
+[ -n "$tsdir" ] || tsdir=$(pwd)
+[ -n "$bindir" ] || bindir=$(dirname $(pwd))
+PATH="$bindir:$PATH"
+
 if [ x"$1" = x"-v" ]; then
 	verbose=1
 	export VERBOSE=$verbose
 	shift
 fi
 
-if [ $# -ne 0 ]; then
-	applets=$(cd $srcdir ; for i in $@; do ls ${i}* ; done)
-else
-	applets=$(ls $srcdir)
-fi
-
-# Populate a directory with links to all busybox applets
-
-LINKSDIR="$bindir/runtest-tempdir-links"
-implemented=$($bindir/busybox 2>&1 |
-	while read line
-	do
-		if test x"$line" = x"Currently defined functions:"
-		then
+implemented=$(
+	$bindir/busybox 2>&1 |
+	while read line; do
+		if test x"$line" = x"Currently defined functions:"; then
 			xargs | sed 's/,//g'
 			break
 		fi
 	done
 	)
+
+applets="$implemented"
+if [ $# -ne 0 ]; then
+	applets="$@"
+fi
+
+# Populate a directory with links to all busybox applets
+
+LINKSDIR="$bindir/runtest-tempdir-links"
 rm -rf "$LINKSDIR" 2>/dev/null
 mkdir "$LINKSDIR"
-for i in $implemented
-do
+for i in $implemented; do
 	ln -s $bindir/busybox "$LINKSDIR"/$i
 done
 
 # Set up option flags so tests can be selective.
 
-configfile=${bindir:-../../}/.config
-export OPTIONFLAGS=:$(echo $(sed -nr 's/^CONFIG_(.*)=.*/\1/p' $configfile) | sed 's/ /:/g')
+configfile=${bindir}/.config
+export OPTIONFLAGS=:$(sed -nr 's/^CONFIG_(.*)=.*/\1/p' $configfile | xargs | sed 's/ /:/g')
 
 for applet in $applets; do
 	if [ "$applet" = "links" ]; then continue; fi
-	if [ "$applet" != "CVS" -a -d "$srcdir/$applet" ]; then
-		if run_applet_tests $applet; then
-			:
-		else
+	if [ "$applet" != "CVS" -a -d "$tsdir/$applet" ]; then
+		if ! run_applet_tests $applet; then
 			status=1
 		fi
 	fi
 
 	# Is this a new-style test?
-	applet=$(echo "$applet" | sed -n 's/\.tests$//p')
-	if [ ${#applet} -ne 0 ]
-	then
-		if [ ! -h "$LINKSDIR/$applet" ] && [ "${applet:0:4}" != "all_" ]
-		then
+	if [ -f ${applet}.tests ]; then
+		if [ ! -h "$LINKSDIR/$applet" ] && [ "${applet:0:4}" != "all_" ]; then
 			echo "SKIPPED: $applet (not built)"
 			continue
 		fi
-		if PATH="$LINKSDIR":$srcdir:$bindir:$PATH \
-				"${srcdir:-.}/$applet".tests
+		if PATH="$LINKSDIR":$tsdir:$bindir:$PATH \
+				"${tsdir:-.}/$applet".tests
 		then
 			:
 		else