1#!@SHELL@
2# this is an example of how to use /bin/sh and LPRng
3# to get the command line and printcap option values
4# and set shell variables from them
5#  Note that we use a couple of variables
6#PATH=/bin:/usr/bin
7Args=""
8vAr=""
9vAlue=""
10vAls=""
11iI=""
12Tf=""
13if -n $Debug ; then
14	set >/tmp/before
15fi
16Args="$@"
17if -n $Debug ; then
18	echo "$@" >>/tmp/before
19fi
20while expr "$1" : '-.*' >/dev/null ; do
21  vAr=`expr "$1" : '-\(.\).*'`;
22  vAlue=`expr "$1" : '-.\(.*\)'`;
23  case "$vAr" in
24    - ) break;;
25    c ) c=1;;
26    [a-zA-Z] )
27      if test "X$vAlue" = "X" ; then shift; vAlue=$1; fi;
28      eval $vAr='$vAlue';
29      #setvar $vAr "$vAlue"
30      ;;
31  esac;
32  shift;
33done
34
35# set shell variables to the printcap options
36#  flag   ->  flag=1
37#  flag@  ->  flag=0
38#  option=value ->  option='value'
39#
40setpcvals () {
41    while test "$#" -gt 0 ; do
42      iI=$1
43      if expr "$iI" : " *\:" >/dev/null ; then
44        vAr=`expr "$iI" : " *\:\([^#=][^#=]*\)[#=].*"`;
45        vAlue=`expr "$iI" : " *\:[^#=][^#=]*[#=]\(.*\)"`;
46        if test "X$vAr" = "X" ; then
47          vAr=`expr "$iI" : " *:\(.*\)@"`;
48          vAlue=0;
49        fi
50        if test "X$vAr" = "X" ; then
51          vAr=`expr "$iI" : " *:\(.*\)"`;
52          vAlue=1;
53        fi
54        if test "X$vAr" != "X" ; then
55          eval $vAr='$vAlue';
56          #setvar $vAr "$vAlue"
57        fi
58      else
59        vAr=`expr "$iI" : " *\([^|][^|]*\).*"`;
60        if test "X$vAr" != "X" ; then
61          eval Printer="$vAr"
62        fi
63      fi;
64	  shift
65    done
66}
67
68# set shell variables to the printcap options
69#  flag   ->  flag=1
70#  flag@  ->  flag=0
71#  option=value ->  option='value'
72#
73setcontrolvals () {
74    while test "$#" -gt 0 ; do
75      iI=$1
76      vAr=`expr "$iI" : " *\([A-Z]\).*"`;
77      vAlue=`expr "$iI" : " *[A-Z]\(.*\)"`;
78      if test "X$vAr" != "X" ; then
79        eval $vAr='$vAlue';
80        #setvar $vAr "$vAlue";
81      fi;
82	  shift
83    done
84}
85
86Tf=$IFS
87IFS="
88"
89setpcvals $PRINTCAP_ENTRY
90setcontrolvals $CONTROL
91IFS=$Tf
92
93# 
94# restore argument list
95set -- $Args
96Args=""
97vAr=""
98vAlue=""
99vAls=""
100iI=""
101Tf=""
102
103if test -n "$Debug" ; then
104	set >/tmp/after
105	echo "$@" >>/tmp/after
106	diff /tmp/before /tmp/after
107fi
108cat
109exit 0
110