#!/bin/sh

# wbanner -- wide banner: rotate banner output 90 degrees.
# $Id$
# Carlos Duarte, 960726/980724

# wbanner supports all chars, except: <>[\]^_{|}~
# wbanner '!"#$%&'\''()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ`abcdefghijklmnopqrstuvwxyz'


: ${LINES=60} ${COLS=80}

xy() 	{ echo -en '\033['$1';'$2'H'; }
up() 	{ echo -en '\033['$1'A'; } 
down() 	{ echo -en '\033['$1'B'; }
right() { echo -en '\033['$1'C'; }
left() 	{ echo -en '\033['$1'D'; }
clear()	{ tput clear; }
bottom(){ xy $LINES 1; }

UP1=`echo -en '\033[A'`
DOWN1=`echo -en '\033[B'`
RIGHT1=`echo -en '\033[C'`
#LEFT1=`echo -en '\033[D'`
LEFT1=`echo -en '\010'`
BOTTOM=`bottom`
DOWN_LINES=`down $LINES`

HSCROLL=`awk -v nl=$LINES '
BEGIN { 
	printf "%c%d", 27, 7
	printf "%c[%d;%dH%c[P", 27, 1, 1, 27
	for(i=2; i<=nl; i++)
		printf "%c[B%c[P", 27, 27
	printf "%c%d", 27, 8
}'`

clear

banner -w$LINES "$@" | sed '

1i\
'$BOTTOM'

s/^ *$/'$RIGHT1'/
tn

s/./&'$UP1$LEFT1'/g

s/$/'$DOWN_LINES$RIGHT1'/

:n

'$COLS',${
i\
'$HSCROLL'
}

' | tr -d '\n' 

bottom
