#! /bin/sh # Test "stty" with rows and columns. # Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006 Free # Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # This script takes no arguments. if test "$VERBOSE" = yes; then set -x stty --version fi # Setting this envvar to a very small value used to cause e.g., `stty size' # to generate slightly different output on certain systems. COLUMNS=80 export COLUMNS # Make sure we get English-language behavior. # See the report about a possibly-related Solaris problem by Alexandre Peshansky # . # Currently stty isn't localized, but it might be in the future. LC_ALL=C export LC_ALL # Make sure there's a tty on stdin. . $srcdir/../input-tty # Versions of GNU stty from shellutils-1.9.2c and earlier failed # tests #2 and #4 when run on SunOS 4.1.3. tests=' 1 rows_40_columns_80 40_80 2 rows_1_columns_1 1_1 3 rows_40_columns_80 40_80 4 rows_1 1_80 5 columns_1 1_1 6 rows_40 40_1 7 rows_1 1_1 8 columns_80 1_80 9 rows_30 30_80 NA LAST NA ' set $tests saved_size=`stty size` && test -n "$saved_size" \ || { echo "$0: skipping this test: can't get window size" 1>&2; exit 77; exit; } fail=0 while :; do test_name=$1 args=$2 expected_result="`echo $3|tr _ ' '`" test "$args" = empty && args='' test "x$args" = xLAST && break args=`echo x$args|tr _ ' '|sed 's/^x//'` if test "$VERBOSE" = yes; then # echo "testing \`stty $args; stty size\` = $expected_result ..." echo "test $test_name... " | tr -d '\n' fi stty $args || exit 1 test x"`stty size 2> /dev/null`" = "x$expected_result" \ && ok=ok || ok=FAIL fail=1 test "$VERBOSE" = yes && echo $ok shift; shift; shift done set x $saved_size stty rows $2 columns $3 || exit 1 exit $fail