-binary file
authorshort <>
Sun, 14 Apr 2002 21:34:15 +0000 (21:34 +0000)
committershort <>
Sun, 14 Apr 2002 21:34:15 +0000 (21:34 +0000)
fax [deleted file]

diff --git a/fax b/fax
deleted file mode 100755 (executable)
index b8ea77a..0000000
--- a/fax
+++ /dev/null
@@ -1,1040 +0,0 @@
-#!/bin/sh
-# 
-# fax - script to make, send, receive, view or print a fax
-# Copyright 1993-1999 by Ed Casas 
-# 
-# --- Start of user configuration section --- 
-# 
-# Notes: 
-#
-#  - do not put spaces before or after the equal (=) signs.
-#
-#  - variables can also be set on the command line, for example:
-#       fax DEV=cua0 send file.ps
-#    or in a configuration file (see CONFIGFILES below)
-#
-
-# The names of the fax script, efax and efix, including full path
-# if necessary.
-
-FAX=fax
-EFAX=efax
-EFIX=efix
-
-# The device to which the fax modem is connected (e.g. ttya for
-# /dev/ttya).  Use a dial-out (cua) device if available.  If
-# there are links to this device then all programs must use same
-# name or the UUCP locking mechanism will fail.  For example, if
-# /dev/modem is a link to /dev/cua1, then getty, uucp, kermit,
-# pppd, dip, etc. must *all* use either /dev/modem or /dev/cua1.
-
-DEV=cua1
-
-# Your fax number in international format, 20 characters maximum.
-# Use only digits, spaces, and the "+" character.
-
-FROM="+1 800 555 5555"
-
-# Your name as it should appear on the page header.
-
-NAME="Put Your Name Here"
-
-# The preferred page size for creating and printing faxes.
-# Allowed values are "letter", "legal", and "a4".
-
-PAGE=letter
-# PAGE=legal
-# PAGE=a4
-
-# The type of printer. Use 'pcl' for HP-PCL or 'ps' for
-# Postscript.  See definition of PRINT (below) for more options.
-
-PRTYPE=ps                              # Postscript (e.g. Apple LaserWriter)
-# PRTYPE=pcl                           # HP-PCL (e.g. HP LaserJet) 
-
-# The command to print image files from standard input.  Typically
-# this is "lpr" or "lp".
-
-PRCMD="lpr"
-
-# The command to view a Portable Gray Map (PGM) image from the
-# standard input.  Typically "xv -" or "xloadimage stdin".
-
-VIEWCMD="xloadimage stdin"             # best
-# VIEWCMD="pnmtoxwd | xwud"            # slower alternative
-# VIEWCMD="xv -"                       # much slower alternative       
-
-# The name of the Ghostscript executable including full path if
-# necessary.  Only required if faxing Postscript files.
-
-GS=gs
-
-# Dial string prefix and suffix such as T for tone dialing, P for
-# pulse dialing, 9 to get an external line, commas for delays or
-# W to wait for dial tone.  See definition of TELCVT below if you
-# have more complex requirements.
-
-DIALPREFIX="T"
-DIALSUFFIX=""
-
-# The name(s) of lock file(s) according to your system's
-# conventions. Protect with single quotes for delayed evaluation.
-# Add a leading '#' to the file name to use binary format.
-
-LOCK='-x /var/lock/LCK..$DEV'                  # modern systems
-# LOCK='-x /usr/spool/uucp/LCK..$DEV'          # older systems
-# LOCK='-x /var/lock/LCK..$DEV -x /var/spool/uucp/LCK..$DEV' # both
-# LOCK='-x #/usr/spool/uucp/LCK..$DEV'         # binary format
-# LOCK='-x /usr/spool/locks/LK.047.040.011'    # SysV style names
-# LOCK=''                                      # no lock file
-
-# Uncomment one of the following lines to force xon/xoff flow
-# control only if you have one of the types of modems listed.
-
-# FCINIT='-j\Q4'               # AT&T (Dataport, Paradyne)
-# FCINIT='-j\Q1'               # Motorola (Power Modem, 3400 Pro,...)
-# FCINIT='-j*F1'               # QuickComm (Spirit II)
-# FCINIT='-j&H2'               # USR (Courier, Sportster)
-# FCINIT='-or'                 # Multi-Tech (for bit reversal)
-
-# ****************************************************************
-# The remaining options probably won't need to be changed.
-# ****************************************************************
-
-# Configuration files that are sourced if they exist.  Comment
-# out if you don't need to use config files. Warning: any type of
-# shell command in these files will be executed.
-
-CONFIGFILES="/etc/efax.rc ${HOME:-~}/.efaxrc ./.efaxrc"
-
-# A command that will generate unique names for logs and received
-# files.  'date +%m%d%H%M%S' works on most systems.  Protect with
-# single quotes.
-
-TSTAMP='date +%m%d%H%M%S'
-# TSTAMP='echo $$'             # alternative - use process number
-
-# Shell command to convert aliases to phone numbers when sending
-# faxes.  When executed $1 will be the alias and $f the file name
-# to search.  The example below uses a directory file where alias
-# lines start with the keyword "fax" followed by the alias in
-# parentheses and a colon.  The remainder of the line is taken to
-# be the phone number. Other lines are ignored.  For example, if
-# one of the files in DIRFILES (defined below) contained the line
-# "fax(kpmg): 691-3031", you could use the command "fax send kpmg
-# invoice.24". Protect with single quotes.
-
-LOOKUP='eval sed -n -e "/^fax($1):/{" -e "s/^[^:]*://p" -eq -e"}" $f'
-
-# List of telephone directory file(s) to be searched.  The
-# default is the file .faxdir in the user's home directory.
-
-DIRFILES="${HOME:-.}/.faxdir"
-
-# Shell command to convert phone numbers to dial strings.  This
-# lets you to store numbers without the long distance or
-# alternate carrier access codes, passwords, accounting digits,
-# etc.  In the examples below this is used to convert numbers
-# beginning with '+'; the first substitution handles same-country
-# calls and the second handles international calls.
-
-TELCVT='sed -e s/+1/1/ -e s/+/011/'    # North America
-# TELCVT='sed -e s/+61/0/ -e s/+/0011/' # Australia
-# TELCVT='sed -e s/+44/0/ -e s/+/00/'  # UK
-# TELCVT='sed -e s/+49/0/ -e s/+/00/'  # Germany
-# TELCVT='sed -e s/+852// -e s/+/001/' # Hong Kong
-# TELCVT='sed -e s/+33// -e s/+/19W/'  # France (?)
-# TELCVT='sed -e s/+34/0/ -e s/+/07W/' # Spain
-# TELCVT='sed -e s/+1/10288/'          # use AT&T
-# TELCVT='sed -e s/+/T82W1682W9W/'     # get out of PBX
-
-# efix options to use a bitmap font for text-to-fax conversion.
-# The option -l66 puts 66 lines of text per page, -d1,1 sets 1
-# inch top & left margin.  Comment these out to use the built-in
-# font. Use "fax makefont" to make bitmap fonts from Postscript
-# fonts.
-
-# TEXTFONT="-l66 -d1,1 -f /usr/bin/efaxfont"
-
-# efax options to specify a different font for headers. Generate
-# using "fax makefont."
-
-# HDRFONT="-f /usr/bin/efaxfont"
-
-# Dimensions of page sizes.
-
-PAGE_letter="8.465x11in"       # fax width x letter length
-PAGE_legal="8.465x14in"                # fax width x legal length
-PAGE_a4="21x29.7cm"            # ISO A4
-
-# Default resolution for converting to fax format. Can only be
-# 204x196 or 204x98.
-
-RES=204x196                    # default "Fine" resolution (196 lpi)
-# RES=204x98                   # standard resolution (98 lpi)
-
-# When the print and view commands below are executed, $f will be
-# the input file name and $PAGEDIM will be one of the above page
-# dimensions. Protect with single quotes.
-
-# PRINT: A command to convert fax files to a printable format.
-# For printers other than Postscript or PCL you can use efix's
-# PBM output and an appropriate pbm filter (such as pbmtoepson)
-# or efix's Postsript output and Ghostscript as a filter. Change
-# the scaling (-s) and displacement (-d) options as required to
-# fit the image onto the area your printer can print.
-
-PRINT='$EFIX -ve -p$PAGEDIM -r300 -s0.98 -d0,0.125 -o$PRTYPE $f'
-
-# example using pbm utilities:
-# PRINT='$EFIX -ve -p$PAGEDIM -r60x72 -opbm $f | pbmtoepson'
-
-# example using Ghostscript:
-# PRINT='$EFIX -ve -p$PAGEDIM -r120x144 -ops $f | \
-#      $GS -q  -sPAPERSIZE=$PAGE -sDEVICE=epson -r120x144 \
-#      -dNOPAUSE -dSAFER -sOutputFile=- - '
-
-# VIEW: A command to convert fax files to PGM format for
-# previewing.  efix's pgm output reduces image dimensions by 4X.
-
-# VIEW='$EFIX -ve -p$PAGEDIM -r200 -opgm $f'   # 50dpi: fast, whole-page view
-VIEW='$EFIX -ve -p$PAGEDIM -r300 -opgm $f'     # 75dpi: slower, readable size
-
-# Commands to set up modem.  "-iZ -i&FE&D2S7=120 -i&C0"
-# works with almost all modems.  See the efax(1) man page for
-# details.
-
-INIT="-iZ -i&FE&D2S7=120 -i&C0"
-
-# Command(s) to reset modem when efax finishes. "-kZ" works in
-# almost all cases.
-
-RESET="-kZ"
-# RESET="-kZ -k&F+FCLASS=0"    # for modems that stay in fax mode after reset
-
-# Speaker mode(M) and loudness(L). Mn sets speaker mode where n
-# means: 0:never, 1:until carrier, 2:always, 3:on receive only.
-
-SPKR="-iM1L0"
-
-# Options to use a particular command sets.  Normally efax
-# selects the command set based on the modem's capabilities.  Use
-# -o1 to force Class 1, -o2 for Class 2 and -o0 for Class 2.0.
-
-# CLASSINIT="-o1"      # Class 1
-# CLASSINIT=""         # Class 2
-# CLASSINIT="-o0"      # Class 2.0
-
-# The modem's capabilities for sending faxes.  Normally efax
-# chooses these by querying the modem.  "-c 1,3,0,0,0,0,0,0"
-# forces 9600 bps maximum speed.  See the efax(1) man page for a
-# description of the fields.
-
-# TXCAP="-c 1,3,0,2,0,0,0,0"
-
-# Capabilities for receiving faxes.  Usually the same as TXCAP.
-# If your modem only receives at 4800 bps use "-c 1,1,0,0,0,0,0,0".
-
-# RXCAP="$TXCAP"
-
-# Additional options required only for transmit or only for
-# receive.  None normally required.
-
-RXINIT=""
-TXINIT=""
-
-# Command to make a date for the page header. Protect with single
-# quotes.  'date "+%Y/%m/%d %H:%M"' works on most systems.
-
-DATECMD='date "+%Y/%m/%d %H:%M"'       # YYYY/MM/DD HH:MM (24hour)
-# DATECMD='date'                       # longer, more readable
-
-# Page header format.  You may use $DATE, $NAME, $FROM, $TO, and
-# "%d/%d" (for page number and count).  Protect with single
-# quotes.  Example: '$DATE $FROM $NAME p. %d/%d'.
-
-HDR='$DATE     $FROM      $NAME     p. %d/%d'
-
-# BUSYRETRIES is a list of delays in seconds between attempts to
-# redial busy numbers.  Comment out if you don't want to retry
-# busy numbers.
-
-BUSYRETRIES="30 60 120 300 60 600 60 60 1200 60 60"
-
-# FAILRETRIES is a list of delays in seconds between attempts to
-# retry failed transmissions.  Retries are only attempted if at
-# least one page was sent in the previous attempt. Retries
-# include only pages not already sent. Comment out if you don't
-# want to retry failed transmissions.
-
-FAILRETRIES="300 300"  # try two more times at 5 minute intervals
-
-# Command to run another program (efax) at a higher-than-normal
-# scheduling priority.  This command isn't used if it fails
-# (e.g. because the current user isn't privileged).  Comment this
-# out if it causes problems.
-
-NICE="nice -n -10"
-
-# Standard versions of commands that are often aliased.
-
-RM="/bin/rm -f"
-LS="/bin/ls"
-
-# Messages to display.  VERB sets the messages displayed (stderr)
-# and VERBLOG the messages written to log files (stdout).
-
-VERB="ewin"            # show errors, warnings, progress & negotiation
-VERBLOG="chewmainrxtf" # log everything
-
-# ****************************************************************
-# The remaining configuration options apply only to the `fax
-# answer' command.  You can ignore these if you will only be
-# running efax manually.  See "USING INIT TO RUN EFAX" in the
-# efax man page for more information.
-# ****************************************************************
-
-# device or file where fatal error messages should be written
-
-CONSOLE=/dev/console
-
-# The directory to store incoming faxes and log files.  This directory
-# should already exist and be writable by the user(s) of this script.
-
-FAXDIR=/var/spool/fax
-LOGDIR=/var/log/fax
-
-# The strftime(3) pattern that generates the file name for
-# received files.  For example, at 10:45:36 on February 25,
-# "%m%d%H%M%S" would produce 0225104536, "%j-%H%M" would produce
-# 056-1045, and %d%b%H%M 25Feb1045.
-
-ANSFNAME="%m%d%H%M%S"
-
-# umask for received files. Use 022 to allow anyone to retrieve faxes.
-
-UMASK=022
-
-# The user to be sent mail when a fax is received.
-
-FAXMGR=root
-
-# The sendmail executable including full path if necessary.  Only
-# required if forwarding received faxes by e-mail in $NOTIFY.
-
-SENDMAIL=/usr/sbin/sendmail
-
-# The command to execute when a fax is received.  Normally this
-# sends FAXMGR e-mail or prints the received fax.  The variable
-# $f will be the name of the log file, $FILES will contain the
-# names of the received files, and $REMID will have the remote ID
-# string or '?' if none. The faxmail function will e-mail the fax
-# as MIME image/tiff attachments.  Comment this out to do
-# nothing.  Protect with single quotes.
-
-NOTIFY='faxmail "$REMID" "$f" $FILES | $SENDMAIL $FAXMGR'
-# NOTIFY='mail -s "fax/message from $REMID: $FILES" $FAXMGR <$f'
-# NOTIFY='lpr $f ; $FAX print $OPT $FILES'
-
-# The number of rings to wait before answering.
-
-ANSRINGS=1
-
-# If you want to enable fax/data adaptive answer (AA) read the
-# efax man page and define DATAINIT to be the options that enable
-# AA. Note: AA does not work properly on some (2400/9600) modems
-# unless the modem initialization is done at 2400 bps (not
-# possible with efax). USR modems do not support modem adaptive
-# answer (+FAE=) in Class 1.  &C1 enables most modems' DCD line
-# so a signal can be sent to shells when a call is dropped.  You
-# must also define DCMD (see below).
-
-DATAOPT="-j&C1 -j+FCLASS=0 -jS7=30"
-# DATAINIT="$DATAOPT -j+FAE=1"         # Class 1 modem adaptive answer
-# DATAINIT="$DATAOPT -j+FAA=1"         # Class 2[.0] modem adaptive answer
-# DATAINIT="$DATAOPT -oa"              # software adaptive answer
-# DATAINIT="$DATAOPT"                  # data-only answer
-
-# If you have a voice modem and want to answer in voice mode
-# define VOICEINIT to be the options that enable voice mode.  You
-# must also set VCMD below. Voice support is not yet available.
-
-# VOICEINIT="-j#CLS=8"                 # Rockwell voice modems
-# VOICEINIT="-jM2L2#CLS=8#VLS=4"       #    with speaker on
-
-# Argument to exec(2) of "/bin/sh -c" for incoming data calls.
-# This command will usually exec getty(8) but can include other
-# commands to set up the serial port, etc.  Up to 6 %d arguments
-# are replaced by the baud rate following the CONNECT response
-# from the modem or 19200 if none.  If using getty_ps ensure
-# /etc/gettydefs has entries for all possible %d values
-# (e.g. 19200). Use 'nice' if required to reduce any special
-# priority set by NICE.
-
-DCMD="exec /sbin/getty -h $DEV %d vt100"       # for getty_ps (Linux)
-# DCMD="exec /sbin/agetty -h $DEV %d vt100"    # for agetty (Linux)
-# DCMD="exec pppd $DEV %d"                     # start PPP server
-
-# Argument to exec(2) of "/bin/sh -c" for incoming voice calls.
-# This command will usually be a shell script that interacts with
-# the caller by using efone to play/record audio and detect DTMF
-# tones.  Up to 6 %d arguments are replaced by the modem file
-# descriptor.  VCMD can "exec fax reanswer" to switch to fax or
-# data mode if required.
-
-FONE=/usr/bin/fone                             # minimal voice mail
-VCMD="exec $FONE %d"
-
-# The owner.group and mode to which "fax answer" sets the serial
-# device.  This allows non-root processes to grab the device from
-# efax even if a previous process (e.g. login) has changed it.
-# Comment out if you don't need to reset device ownership.
-
-OWNER=root.tty         # typical
-MODE=666               # anybody
-# MODE=660             # only owner & group
-
-# Regular expression for efax exit codes in log files that will
-# *not* be saved.  For example, use [145] to ignore exits due to
-# `locked' (1), `no modem' (4), and `signal' (5) conditions
-
-NOLOG='[145]'
-
-# ****************************************************************
-# --- End of user configuration section ---
-# ****************************************************************
-
-# --- source configuration files
-
-for f in $CONFIGFILES
-do
-       if [ -r $f ]
-       then
-               eval "`cat $f`"
-       fi
-done
-
-# --- set any variables given on command line
-
-while : ; do
-       case $# in 0) break ;; esac
-       case "$1" in [A-Z]*=*) eval $1 ; shift ;; *) break ;; esac
-done
-
-# -------- initialize 
-
-ERR=0
-
-$NICE true 2>/dev/null ; case $? in 0) ;; *) NICE="" ;; esac
-
-# -------- resolve dependencies on command-line arguments
-
-eval LOCK=\"$LOCK\"                    # depends on DEV
-
-# make device name w/o directories
-
-case $DEV in
-       */*) DEVN=`echo $DEV|sed -e s./._.g` ;;
-       *) DEVN=$DEV ;;
-esac
-
-case $PAGE in
-       letter) PAGEDIM="$PAGE_letter" ;;
-       legal)  PAGEDIM="$PAGE_legal" ;;
-       a4)     PAGEDIM="$PAGE_a4" ;;
-       *)      echo "Error: PAGE=\"${PAGE}\" not valid." ; exit 2 ;;
-esac   
-
-# --- check for a command or alias and optional flags
-
-cmd=""
-case $0 in
-*/faxlpr|faxlpr) cmd=faxlpr ;; 
-*) 
-       while : ; do
-       case $# in 0) case $cmd in '') cmd=receive ;; esac ; break ;; esac
-       case $1 in 
-       -l) OPT="$OPT -l" ; RES=204x98 ; shift ;; 
-       -h) OPT="$OPT -h" ; RES=204x196 ; shift ;; 
-       -v) OPT="$OPT -v" ; VERB=$VERBLOG ; shift ;; 
-       *) 
-               case $cmd in '') cmd=$1 ; shift ;; *) break ;; esac
-       ;;
-       esac
-       done
-;; 
-esac
-
-# -------- functions
-
-faxmail () {
-   echo "Subject: fax/message from $1"
-   shift
-   echo "Content-Type: multipart/mixed; boundary=EFAX_MAIL"
-   echo ""
-   echo "--EFAX_MAIL"
-   echo "Content-Type: text/plain; charset=\"us-ascii\""
-   echo "Content-Transfer-Encoding: 7bit"
-   echo ""
-   cat $1
-   shift
-   for f in $*
-   do
-     echo "--EFAX_MAIL"
-     echo "Content-Type: image/tiff"
-     echo "Content-Transfer-Encoding: base64"
-     echo ""
-     $EFIX -M <$f
-   done
-}
-
-# -------- export variables for fone script
-
-export DEV TSTAMP
-
-# -------- do the appropriate command
-
-while : ; do   # so we can use `break' to get to the end of the script
-
-case $cmd in 
-
-# fax answer : clean up logs and exec efax. normally run by init(8).
-
-       answer)
-
-       if cd $FAXDIR ; then :
-       else
-               echo "Error: $FAX cannot cd to $FAXDIR" >>$CONSOLE
-               sleep 30
-               break
-       fi
-
-       while [ -f ${DEVN}.stop ] ; do sleep 15 ; done
-
-       umask $UMASK
-       case $OWNER in '') ;; *) chown $OWNER /dev/$DEV ;; esac
-       case $MODE  in '') ;; *) chmod $MODE  /dev/$DEV ;; esac
-
-       for f in ${DEVN}.[0-9]*         # clean up old log files
-       do
-         egrep "done, returning $NOLOG|exec'ing" $f >/dev/null 2>/dev/null
-         case $? in
-         0) 
-               $RM $f
-         ;;
-         1)    FILES=`sed -n -e  '/received ->/s/^.*-> \(.*\)$/\1/p' $f`
-               FILES=`echo $FILES`
-               REMID=`sed -n -e '/remote ID ->/s/^.*-> \(.*\)$/\1/p' \
-                       -e tok -e b -e ':ok' -e q $f`
-               case $REMID in '') REMID='?' ;; esac
-               eval $NOTIFY
-               echo   >>${LOGDIR}/${DEVN}.log
-               cat $f >>${LOGDIR}/${DEVN}.log
-               $RM $f
-         ;;
-         esac
-       done    
-
-       exec $NICE $EFAX -v "" -v "$VERBLOG" -d/dev/$DEV $INIT $SPKR \
-       $CLASSINIT $FCINIT $RXINIT $LOCK \
-       $RXCAP -l "$FROM" $RESET \
-       $DATAINIT -g "$DCMD" $VOICEINIT -e "$VCMD" \
-       -jS0=$ANSRINGS -w -s -r "$ANSFNAME" 2>$CONSOLE >${DEVN}.$$
-
-       echo ERROR: $FAX answer exec failed >>$CONSOLE ; sleep 30
-
-       break
-       ;;
-
-
-# fax reanswer : switch from voice mode to fax[/data] mode
-
-       reanswer)
-
-       # we should already be in the fax spool directory, the
-       # device locked, the modem answered and initialized in
-       # voice mode and stdout/stderr redirected appropriately
-
-       umask $UMASK
-
-       exec $NICE $EFAX -v "" -v "$VERBLOG" -d/dev/$DEV '-i#CLS=0' \
-       $CLASSINIT $FCINIT $RXINIT \
-       $RXCAP -l "$FROM" $RESET \
-       $DATAINIT -g "$DCMD" \
-       -r "$ANSFNAME"
-
-       echo ERROR: $FAX reanswer exec failed >>$CONSOLE ; sleep 30
-
-       break
-       ;;
-
-# fax queue : list received fax files
-
-       q*)
-
-       cd $FAXDIR
-       case $? in 0) ;; *) echo "cannot cd to $FAXDIR" ; break ;; esac
-       for f in [0-9]*.[0-9][0-9][0-9] [0-9]*.v
-       do
-               if [ -r $f ]
-               then
-                       echo
-                       echo Fax files in `pwd` :
-                       echo
-                       $LS -l [0-9]*.[0-9][0-9][0-9]  [0-9]*.v
-                       echo
-                       break
-               fi
-       done
-
-       break 
-       ;;      
-
-# faxlpr : get phone number and user from current cf* file and run fax send 
-
-       faxlpr)
-
-       cd $FAXDIR              # the lpr spool directory for printer 'fax'
-       case $? in 0) ;; *) echo "$0: cannot cd to $FAXDIR" ; break ;; esac
-
-       test -r lock
-       case $? in 0) ;; *) echo "$0: can't read lock file" ; break ;; esac
-       
-       cfile=`tail -1 lock`
-
-       test -r $cfile
-       case $? in 0) ;; *) echo "$0: can't read control file" ; break ;; esac
-
-       cfile=`cat $cfile`
-
-       num=` echo "$cfile" | sed -e /^[^J]/d -e s/.//`
-       host=`echo "$cfile" | sed -e /^[^H]/d -e s/.//`
-       user=`echo "$cfile" | sed -e /^[^P]/d -e s/.//`
-
-       test "$num"
-       case $? in 0) ;; *) echo "$0: can't read phone number" ; break ;; esac
-
-       cat - >> fax$$                  # save in a file
-
-       l=`$FAX send "$num" fax$$`
-
-       case $? in
-       0) echo "$l" | mail -s "fax to $num succeeded" $user@$host ;;
-       *) echo "$l" | mail -s "fax to $num failed   " $user@$host ;;
-       esac
-
-       $RM fax$$ fax$$.???
-
-       break 
-       ;;      
-
-# fax start/stop/status : manage fax receive daemon
-
-       start|stop|st*)         # common section
-
-       cd $FAXDIR ; 
-       case $? in 0) ;; *) echo "cannot cd to $FAXDIR" ; break ;; esac
-
-       n= ; for f in ${DEVN}.[0-9]* ; do logfile="$f" ; n=x$n ; done
-
-       case $n in 
-       xx*) echo Warning: multiple logs for $DEV : ; ls ${DEVN}.[0-9]* ;;
-       esac
-
-       case $logfile in 
-       *\*) echo no fax answer process for device $DEV ; break ;;
-       esac
-
-       efaxpid=`echo $logfile | sed -e "s/${DEVN}\.//g"`
-
-       case $cmd in
-
-# fax start - remove stop file so fax answer will continue
-
-       start)
-
-       if [ ! -w . ] ; then echo "can't write  `pwd`" ; break ; fi
-        $RM ${DEVN}.stop
-       break 
-       ;;
-
-# fax stop - make a stop file and kill current fax answer daemon
-
-       stop)
-
-       if [ ! -w . ] ; then echo "can't write `pwd`" ; break ; fi
-       touch ${DEVN}.stop
-       echo stopping fax daemon for ${DEV}, pid=$efaxpid
-       kill -HUP $efaxpid
-       break 
-       ;;
-
-
-# fax status - display pid and log file for current daemon
-
-       st*)
-
-       if [ -f ${DEVN}.stop ] ; then stat="(set to stop)" ; fi
-
-       if ps -u $efaxpid 2>/dev/null ; then :
-       else
-               echo "NOT ACTIVE (last daemon was $efaxpid)"
-       fi
-
-       echo
-       echo from: $FAXDIR/$logfile
-       echo
-
-       egrep "Warning|Error|starts|activity|opened|received -|done" $logfile
-
-       case $# in 
-       0) ;; *) echo "---------------" ; sleep $1 ; exec $FAX status $1 ;;
-       esac
-
-       break
-       ;;
-
-       esac    # common section
-       ;;
-
-# fax makefont : rasterize a PS font into a 256-character-wide bitmap
-
-       makefont)
-
-       if [ $# -lt 5 ]
-       then
-               echo Usage: fax makefont fontname fontsize \
-                       cellwidth cellheight filename
-               echo "(cellwidth and cellheight in pixels, fontsize in points)"
-               echo "Example: fax makefont Courier-Bold 8 16 24 efaxfont"
-               echo "will make an 8pt font (there are about 3 pixels per pt)"
-               exit 1
-       fi
-
-       FNTFMT=pbmraw   # format for font files
-       # FNTFMT=tiffg3 # smaller, available with Ghostscript 3.x or later
-
-       pelwidth=`expr 256 \* $3`
-       gs -q -sDEVICE=$FNTFMT -r204x196 -g${pelwidth}x$4 \
-               -sOutputFile=$5 - <<EOF
-        /$1 findfont $2 scalefont setfont 
-        /buf 1 string def
-        /dx $3 204 div 72 mul def      % x offset per character
-        0 1 255 { 
-           dup dx mul 0.7 add 3 moveto
-           buf exch 0 exch put 
-           buf show
-        } for
-        showpage
-EOF
-       break
-       ;;
-
-# fax make : convert a text or Postscript file to fax format
-
-       m*)
-
-       case $# in 0) echo "No files specified" ; ERR=2 ; break ;; esac
-
-       if [ ! -r $1 ] ; then echo "Can't read $1" ; ERR=2 ; break ; fi
-
-
-       read x <$1
-       case $x in
-       %!*|?%!*)
-               echo "$1 is postscript..."
-               # GS can't deal with long paths so we 'cd' 
-               DIRNAME=`dirname $1` ; BASENAME=`basename $1`
-               ( cd $DIRNAME ; \
-               $GS -q -sDEVICE=tiffg3 -r$RES -dNOPAUSE -dSAFER \
-               -sOutputFile=$BASENAME.%03d \
-               -sPAPERSIZE=$PAGE \
-               $BASENAME </dev/null >/dev/null )
-               ;;
-       II*|MM*|P4*)
-               echo "$1 is an image file..."
-               $EFIX -ve -otiffg3 -p$PAGEDIM -r$RES -n $1.%03d $1
-               ;;
-       *)      echo "$1 is text..."
-               $EFIX -ve -otiffg3 -p$PAGEDIM -r$RES -n $1.%03d $TEXTFONT $1
-               ;;
-       esac
-
-       break
-       ;;
-
-# fax send : fax files to given number, converting first if necessary
-
-       s*)
-       
-       case $# in
-       0) echo "missing phone number to call" ; ERR=2 ; break ;;
-       esac
-
-       # look up names
-
-       case $1 in 
-               [A-Za-z]*) 
-               for f in $DIRFILES ; do
-                       if [ -r $f ] ; then TELNO=`$LOOKUP` ; fi
-                       case "$TELNO" in '') continue ;; *) break ;; esac
-               done
-               case "$TELNO" in
-                       '') echo "Name lookup for $1 failed" ; ERR=2 ; break ;;
-                       *) echo "Lookup: $1 = $TELNO" ;;
-               esac
-               ;;
-               *) TELNO="$1" ;;
-       esac
-
-       shift 
-
-       case "$TO" in '') TO="$TELNO" ;; *) ;; esac
-
-       TELNO=`echo $TELNO|sed "s/[     ()][    ()]*//g"`
-
-       # handle manual dialing and number->dial string conversions
-
-       case "$TELNO" in
-       -m*)    MANINIT="-jX3" ; TELNO="" ;;
-       +*)     TELNO=`echo $TELNO | $TELCVT` ;;
-       esac
-       
-       case $TELNO in 
-       '')     ;; 
-       *)      TELNO="${DIALPREFIX}${TELNO}${DIALSUFFIX}" ;; 
-       esac
-
-       # use `fax make' to convert files if they need to be updated
-
-       FILES=""
-       for f in $* ; do
-               case $f in -) FILES="$FILES -" ; continue ;; esac
-               if [ ! -r $f ] ; then
-                       echo "can't read file $f" ; ERR=2 ; break 2 
-               fi
-               case $f in
-               *.[0-9][0-9][0-9]) FILES="$FILES $f" ;; # skip image files
-               *)      if echo ${f}.001: $f \; x | make -r -q -f - ; then
-                               echo ${f}.nnn is up-to-date
-                       else
-                               $RM ${f}.[0-9][0-9][0-9]
-                               $FAX make $OPT $f
-                       fi
-                       if [ -r $f.001 ] ; then 
-                               FILES="$FILES $f.[0-9][0-9][0-9]"
-                       else            # something's wrong, catch it later
-                               FILES="$FILES $f.001"
-                       fi
-                       ;;
-               esac
-        done
-
-       # check that all files are OK
-
-       for f in $FILES ; do
-               case $f in -) continue ;; esac
-               if [ ! -r $f ] ; then
-                       echo "can't read file $f" ; ERR=2 ; break 2 
-               fi
-       done
-
-       # send it
-
-       for s in 0 $FAILRETRIES ; do
-
-       case $s in
-       0) ;; *) echo "Will try again in $s seconds" ; sleep $s ;;
-       esac
-
-#      logfile=`$TSTAMP`.log
-        logfile="$TELNO".log
-
-       for t in 0 $BUSYRETRIES ; do
-
-               case $t in 
-               0) ;; *) echo "Will try again in $t seconds" ; sleep $t ;;
-               esac
-
-               DATE=`eval "$DATECMD"`
-               eval HDR=\"$HDR\"
-
-               $NICE $EFAX -v "$VERB" -v "$VERBLOG" \
-               -d/dev/$DEV $LOCK $INIT $SPKR \
-               $CLASSINIT $FCINIT $TXINIT \
-               $TXCAP -l "$FROM" $RESET $HDRFONT -h "$HDR" \
-               $MANINIT -t "$TELNO" $FILES >$logfile
-
-               ERR=$?
-
-               case $ERR in
-               0)      $RM $logfile ; break 2 ;;
-               1)      echo Busy... ;;
-               *)      echo "There were errors (see ${logfile})." ; break ;;
-               esac
-
-       done
-
-       SENT=` sed -n -e '/sent ->/s/^.*-> \([^ ]*\).*/\1/p' $logfile`
-       FILES=`sed -n -e '/failed ->/s/^.*-> \([^ ]*\).*/\1/p' $logfile`
-       case $SENT  in '') break ;; esac
-       case $FILES in '') break ;; esac
-       echo Failed...
-
-       done
-
-       break 
-       ;;
-
-# fax hangup : hang up the phone
-
-       hangup*)
-       $NICE exec $EFAX -v $VERB -d/dev/$DEV $LOCK -iZ -T 
-       break
-       ;;
-
-# fax fone : open modem device and exec fone script
-
-       fone)
-       
-       cd $FAXDIR
-       case $? in 0) ;; *) echo "cannot cd to $FAXDIR" ; break ;; esac
-       $NICE exec $EFAX -v $VERB -d/dev/$DEV $LOCK $INIT \
-               -j#CLS=8 -a#VLS=1 -e "$VCMD $*"
-
-       break
-       ;;
-
-# fax (rm|print|view) commands possibly on files in spool directory
-
-       rm|p*|v*)       # common code
-
-       # switch to spool directory if first file is found there
-
-       for f in $FAXDIR/$1 ; do 
-               if test -r $f ; then cd $FAXDIR ; break ; fi
-       done
-       
-       for f in $* ; do
-               case $cmd in 
-
-               rm)     # fax rm : delete files
-               if $RM $f ; then echo deleted $f ; fi
-               ;;
-
-               p*)     # fax print : print files
-               echo "$f ... "
-               eval "$PRINT | $PRCMD"
-               ;;
-               
-               v*)     # fax view : display images
-               echo "$f ... "
-               eval "$VIEW | $VIEWCMD"
-               ;;
-
-               esac
-       done
-
-       break
-       ;;
-
-# fax [receive] : answer phone now and receive fax files
-
-       r*)
-       
-       case $1 in '') file=`$TSTAMP` ;; *) file=$1 ;; esac
-       logfile=${file}.log
-
-       $NICE $EFAX -v "$VERB" -v "$VERBLOG" -d/dev/$DEV $LOCK $INIT $SPKR \
-       $CLASSINIT $FCINIT $RXINIT \
-       $RXCAP -l "$FROM" $RESET \
-       -r $file >$logfile
-
-       ERR=$?
-
-       case $ERR in
-       0)      $RM $logfile ; break ;;
-       1)      echo Busy... ;;
-       *)      echo "There were errors (see ${logfile})." ; break ;;
-       esac
-
-       break
-       ;;
-
-# fax new : create a cover page for a fax (needs work)
-
-       new)
-
-       fname=${1-new.fax}
-       DATE=`date "+%B %d %Y"`
-       cat >$fname 2>/dev/null << EOF
-
-       ________________________________________________
-
-                        FAX COVER PAGE
-       ________________________________________________
-
-        To:    x
-       fax:
-
-       ________________________________________________
-
-       From:   $NAME
-        fax:   $FROM
-
-       Date:   $DATE
-
-       Pages:  1 (including this page)
-
-       ________________________________________________
-
-EOF
-       ${VISUAL-${EDITOR-vi}} $fname
-
-       break
-       ;;
-
-# fax help : show command arguments
-
-       -\?|\?|-h*|h*)
-
-cat 1>&2 <<EOF
- Usage: 
-
-   fax [ r[eceive] [-v] [filename-prefix] ]
-   fax m[ake] [-l] { postscript-file-name | text-file-name }
-   fax s[end] [-l] [-v] { -m | telephone-number } filename...
-   fax { p[rint] | v[iew] | rm } [-l] filename...
-
-   fax [ stop | start | st[atus] | q[ueue] ]
-   fax answer
-
- use -l to create low resolution (98 lpi) faxes
- use -m if the number has been dialed manually         
- use -v for verbose output 
-
- if given no arguments, answers the phone and receives a fax.
-
- use VAR=value to set variables (e.g. "fax DEV=cua2 receive")
-
- session logs are written to a file with the date/time as the
- file name and extension of .log (except for automatic reception).
-
- fax device is /dev/$DEV, incoming spool directory is $FAXDIR
-
-EOF
-
-       ERR=1
-       break
-       ;;
-
-       *)
-       echo "Error. Invalid command ($cmd)" ; ERR=2 ; break
-       ;;
-
-esac   
-done
-
-exit $ERR