#!/bin/bash

pause() {
	stty -echo # better way?
	read
	stty echo
}

case "$1" in
	*);;  # just use less for now, same is broken
	-*);;
	*)
		if [ $# = 1 ]
		then
			if [ $(($COLUMNS * $LINES)) -gt "`size $1`" ]
			then
				lines=`<$1 wc -l`
				if [ "$lines" -le "$LINES" ]
				then
					cat $1
					pause
					exit
				fi
			fi
		elif [ $# = 0 ]
		then
			A=$LINES
			B=""
			while read L
			do
				if [ $A = 0 ]
				then
					( echo "$B" ; exec cat ) | exec /usr/bin/less -F
				else
					B="$B$L"$'\n'
				fi
				A=$(($A+1))
			done
			echo -n "$B"
			<&2 pause
			exit
		else
			for F
			do
				echo $F
				echo $F | tr '!-~' '-'
				same "$F"
				echo
			done
			exit
		fi
	;;
esac
/usr/bin/less -F "$@"
