home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 1997 November
/
PCWorld_1997-11_cd.bin
/
software
/
programy
/
FBL
/
Arctel
/
UNIX~1.LON
/
LPRINT
next >
Wrap
Text File
|
1997-06-04
|
3KB
|
153 lines
#! /bin/sh
#
# lprint
#
# Script pro tisk na lokalni tiskarnu terminalovym emulatorem ArcTel
# verze 3.40, rev 960819
#
# (C) FBL Systems, 1992 - 1996
# Firma FBL Vam dava plne opravneni tento program menit, volne sirit
# nebo pouzit jako soucast jineho programu za techto predpokladu:
# - zustane zachovano oznaceni autorskych prav (copyright)
# - zustane zachovan tento text
# - tento ci odvozeny program nebude komercne siren
# (t.j. prodavan za ucelem dosazeni zisku)
#
usage() {
echo "Pouziti: $0 [-n] [-a] [-b] [-m mode] [-p] [-v] soubor [soubor...]"
echo " n....cislo kanalu"
echo " -a...tisk s konverzi NL na CR LF"
echo " -b...binarni tisk"
echo " -m mode...rezim tisku (condens ...)"
echo " -p...prechod na novou stranku za souborem"
echo " -v...viditelne, tisk jde zaroven na terminal"
echo "Tisk standardniho vstupu uvedete parametrem - misto jmena souboru."
}
if [ -z "$1" ]; then
usage
exit 1
fi
# definice prikazu echo
# priklad 1.
# echo potrebuje \c na konci pro potlaceni noveho radku
echo="echo"
nnl="\c"
# priklad 2. (linux)
# echo potlaci novy radek po parametru -n, interpretuje \ znaky po -e
#echo="echo -en"
#nnl=""
# priklad 3. (SCO)
# echo potlaci novy radek po parametru -n, interpretuje \ znaky po -e
#echo="echo -n"
#nnl=""
# definice ridicich sekvenci tiskarny
esc="\033"
ff="\014"
standard="\022${nnl}"
condens="\017${nnl}"
chan=
vis="5"
autoprn=
page=
ttyst=
endsq=
outdev="/dev/tty"
mode=
parmode=
startprint () {
if [ -z "$endsq" ]; then
$echo "${esc}[${autoprn}${vis}${chan}i${nnl}" >> $outdev
endsq="${esc}[${autoprn}4i${nnl}"
fi
if [ -n "$mode" ]; then
eval $echo '$'$mode >> $outdev
fi
}
endprint() {
if [ -n "$mode" ]; then
$echo "$standard" >> $outdev
fi
if [ -n "$endsq" ]; then
$echo "$endsq" >> $outdev
fi
if [ -n "$ttyst" ]; then
# sem vlozte pripadne obnoveni mapovani kanalu prikazem mapchan
stty "$ttyst" < /dev/tty 2>&-
fi
}
trap endprint 1
trap endprint 2
trap endprint 15
for par
do
if [ -n "$parmode" ]; then
parmode=
mode="$par"
else
case "$par" in
-[?] ) endprint; usage; exit 1;;
-1 ) chan=";1";;
-2 ) chan=";2";;
-3 ) chan=";3";;
-a ) if [ -z "$ttyst" ]; then
ttyst=`stty -g < /dev/tty`
fi
stty opost -olcuc onlcr -ocrnl -onocr -onlret -ofill < /dev/tty;;
-b ) if [ -z "$ttyst" ]; then
ttyst=`stty -g < /dev/tty`
fi
# sem vlozte pripadne zruseni mapovani kanalu prikazem mapchan
stty -opost < /dev/tty;;
-m ) parmode="$par";;
-p ) page="${ff}${nnl}"; page_only=1;;
-v ) if [ "$TERM" = ansi ]; then
vis="6"
else
autoprn='?'
fi;;
* ) if [ "$par" = "-" -o -r "$par" ]; then
startprint
cat "$par" >> $outdev
if [ -n "$page" ]; then
$echo "$page" >> $outdev
page_only=
fi
else
endprint
echo "Nemohu cist soubor $par!" >&2
exit 2
fi;;
esac
fi
done
if [ -n "$page_only" ]; then
startprint
$echo "$page" >> $outdev
fi
endprint