1From pst@anise.acc.com Sat Aug 12 12:08:59 1989 2Date: Sat, 12 Aug 89 12:09:28 -0700 3From: pst@anise.acc.com (Paul Traina) 4To: bostic@okeeffe.Berkeley.EDU 5Subject: a lpr/lpd hack (the shar file) 6 7#! /bin/sh 8# This is a shell archive. Remove anything before this line, then unpack 9# it by saving it into a file and typing "sh file". To overwrite existing 10# files, type "sh file -c". You can also feed this as standard input via 11# unshar, or by typing "sh <file", e.g.. If this archive is complete, you 12# will see the following message at the end: 13# "End of shell archive." 14# Contents: lpr.diff aux.printcap 15# Wrapped by pst@anise on Sat Aug 12 11:55:57 1989 16PATH=/bin:/usr/bin:/usr/ucb ; export PATH 17if test -f 'lpr.diff' -a "${1}" != "-c" ; then 18 echo shar: Will not clobber existing file \"'lpr.diff'\" 19else 20echo shar: Extracting \"'lpr.diff'\" \(28134 characters\) 21sed "s/^X//" >'lpr.diff' <<'END_OF_FILE' 22X*** lpr/Makefile Mon Apr 24 20:25:37 1989 23X--- newlpr/Makefile Fri Aug 11 16:31:16 1989 24X*************** 25X*** 21,29 26X # DAEMON someone special 27X # SPGRP the group id of the spooling programs 28X # 29X! CFLAGS= -O 30X! LIBDIR= /usr/lib 31X! BINDIR= /usr/ucb 32X SPLDIR= /usr/spool/lpd 33X ROOT= root 34X DAEMON= daemon 35X 36X--- 21,29 ----- 37X # DAEMON someone special 38X # SPGRP the group id of the spooling programs 39X # 40X! CFLAGS= -O -DmacII 41X! LIBDIR= /usr/local/lib 42X! BINDIR= /usr/local/bin 43X SPLDIR= /usr/spool/lpd 44X INS= bsdinstall 45X ROOT= root 46X*************** 47X*** 25,30 48X LIBDIR= /usr/lib 49X BINDIR= /usr/ucb 50X SPLDIR= /usr/spool/lpd 51X ROOT= root 52X DAEMON= daemon 53X SPGRP= daemon 54X 55X--- 25,31 ----- 56X LIBDIR= /usr/local/lib 57X BINDIR= /usr/local/bin 58X SPLDIR= /usr/spool/lpd 59X+ INS= bsdinstall 60X ROOT= root 61X DAEMON= daemon 62X SPGRP= daemon 63X*************** 64X*** 91,104 65X cd vfilters; make ${MFLAGS} depend 66X 67X install: FRC 68X! install -s -o ${ROOT} -g ${SPGRP} -m 6711 lpd ${DESTDIR}/${LIBDIR}/lpd 69X! install -s -o ${ROOT} -g ${SPGRP} -m 6711 lpr ${DESTDIR}/${BINDIR}/lpr 70X! install -s -o ${ROOT} -g ${SPGRP} -m 6711 lpq ${DESTDIR}/${BINDIR}/lpq 71X! install -s -o ${ROOT} -g ${SPGRP} -m 6711 lprm ${DESTDIR}/${BINDIR}/lprm 72X! install -s -o bin -g ${SPGRP} -m 2711 lpc ${DESTDIR}/etc/lpc 73X! install -s -o bin -g bin -m 755 lptest ${DESTDIR}/${BINDIR}/lptest 74X! install -s -o bin -g bin -m 755 pac ${DESTDIR}/etc/pac 75X! /etc/chown ${DAEMON} ${DESTDIR}/${SPLDIR} 76X chgrp ${SPGRP} ${DESTDIR}/${SPLDIR} 77X chmod 775 ${DESTDIR}/${SPLDIR} 78X cd filters; make ${MFLAGS} DESTDIR=${DESTDIR} install 79X 80X--- 92,105 ----- 81X cd vfilters; make ${MFLAGS} depend 82X 83X install: FRC 84X! $(INS) -s -o ${ROOT} -g ${SPGRP} -m 6711 lpd ${DESTDIR}/${LIBDIR}/lpd 85X! $(INS) -s -o ${ROOT} -g ${SPGRP} -m 6711 lpr ${DESTDIR}/${BINDIR}/lpr 86X! $(INS) -s -o ${ROOT} -g ${SPGRP} -m 6711 lpq ${DESTDIR}/${BINDIR}/lpq 87X! $(INS) -s -o ${ROOT} -g ${SPGRP} -m 6711 lprm ${DESTDIR}/${BINDIR}/lprm 88X! $(INS) -s -o bin -g ${SPGRP} -m 2711 lpc ${DESTDIR}/etc/lpc 89X! $(INS) -s -o bin -g bin -m 755 lptest ${DESTDIR}/${BINDIR}/lptest 90X! $(INS) -s -o bin -g bin -m 755 pac ${DESTDIR}/etc/pac 91X! chown ${DAEMON} ${DESTDIR}/${SPLDIR} 92X chgrp ${SPGRP} ${DESTDIR}/${SPLDIR} 93X chmod 775 ${DESTDIR}/${SPLDIR} 94X cd filters; make ${MFLAGS} DESTDIR=${DESTDIR} install 95X*************** 96X*** 127,265 97X 98X # DO NOT DELETE THIS LINE -- mkdep uses it. 99X # DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. 100X- 101X- lpd.o: lpd.c lp.h /usr/include/stdio.h /usr/include/sys/param.h 102X- lpd.o: /usr/include/sys/types.h /usr/include/signal.h 103X- lpd.o: /usr/include/machine/trap.h /usr/include/machine/machparam.h 104X- lpd.o: /usr/include/machine/endian.h /usr/include/sys/file.h 105X- lpd.o: /usr/include/sys/dir.h /usr/include/sys/stat.h /usr/include/sys/socket.h 106X- lpd.o: /usr/include/sys/un.h /usr/include/netinet/in.h /usr/include/netdb.h 107X- lpd.o: /usr/include/pwd.h /usr/include/syslog.h /usr/include/signal.h 108X- lpd.o: /usr/include/sys/wait.h /usr/include/sgtty.h /usr/include/sys/ioctl.h 109X- lpd.o: /usr/include/sys/ttychars.h /usr/include/sys/ttydev.h 110X- lpd.o: /usr/include/ctype.h /usr/include/errno.h lp.local.h 111X- lpd.o: /usr/include/a.out.h /usr/include/sys/exec.h /usr/include/ar.h 112X- lpr.o: lpr.c /usr/include/stdio.h /usr/include/sys/types.h 113X- lpr.o: /usr/include/sys/file.h /usr/include/sys/stat.h /usr/include/pwd.h 114X- lpr.o: /usr/include/grp.h /usr/include/signal.h /usr/include/machine/trap.h 115X- lpr.o: /usr/include/ctype.h /usr/include/syslog.h lp.local.h 116X- lpr.o: /usr/include/a.out.h /usr/include/sys/exec.h /usr/include/ar.h 117X- lpq.o: lpq.c lp.h /usr/include/stdio.h /usr/include/sys/param.h 118X- lpq.o: /usr/include/sys/types.h /usr/include/signal.h 119X- lpq.o: /usr/include/machine/trap.h /usr/include/machine/machparam.h 120X- lpq.o: /usr/include/machine/endian.h /usr/include/sys/file.h 121X- lpq.o: /usr/include/sys/dir.h /usr/include/sys/stat.h /usr/include/sys/socket.h 122X- lpq.o: /usr/include/sys/un.h /usr/include/netinet/in.h /usr/include/netdb.h 123X- lpq.o: /usr/include/pwd.h /usr/include/syslog.h /usr/include/signal.h 124X- lpq.o: /usr/include/sys/wait.h /usr/include/sgtty.h /usr/include/sys/ioctl.h 125X- lpq.o: /usr/include/sys/ttychars.h /usr/include/sys/ttydev.h 126X- lpq.o: /usr/include/ctype.h /usr/include/errno.h lp.local.h 127X- lpq.o: /usr/include/a.out.h /usr/include/sys/exec.h /usr/include/ar.h 128X- lprm.o: lprm.c lp.h /usr/include/stdio.h /usr/include/sys/param.h 129X- lprm.o: /usr/include/sys/types.h /usr/include/signal.h 130X- lprm.o: /usr/include/machine/trap.h /usr/include/machine/machparam.h 131X- lprm.o: /usr/include/machine/endian.h /usr/include/sys/file.h 132X- lprm.o: /usr/include/sys/dir.h /usr/include/sys/stat.h 133X- lprm.o: /usr/include/sys/socket.h /usr/include/sys/un.h 134X- lprm.o: /usr/include/netinet/in.h /usr/include/netdb.h /usr/include/pwd.h 135X- lprm.o: /usr/include/syslog.h /usr/include/signal.h /usr/include/sys/wait.h 136X- lprm.o: /usr/include/sgtty.h /usr/include/sys/ioctl.h 137X- lprm.o: /usr/include/sys/ttychars.h /usr/include/sys/ttydev.h 138X- lprm.o: /usr/include/ctype.h /usr/include/errno.h lp.local.h 139X- lprm.o: /usr/include/a.out.h /usr/include/sys/exec.h /usr/include/ar.h 140X- pac.o: pac.c /usr/include/stdio.h lp.local.h /usr/include/a.out.h 141X- pac.o: /usr/include/sys/exec.h /usr/include/ar.h 142X- lpd.o: lpd.c lp.h /usr/include/stdio.h /usr/include/sys/param.h 143X- lpd.o: /usr/include/sys/types.h /usr/include/signal.h 144X- lpd.o: /usr/include/machine/trap.h /usr/include/machine/machparam.h 145X- lpd.o: /usr/include/machine/endian.h /usr/include/sys/file.h 146X- lpd.o: /usr/include/sys/dir.h /usr/include/sys/stat.h /usr/include/sys/socket.h 147X- lpd.o: /usr/include/sys/un.h /usr/include/netinet/in.h /usr/include/netdb.h 148X- lpd.o: /usr/include/pwd.h /usr/include/syslog.h /usr/include/signal.h 149X- lpd.o: /usr/include/sys/wait.h /usr/include/sgtty.h /usr/include/sys/ioctl.h 150X- lpd.o: /usr/include/sys/ttychars.h /usr/include/sys/ttydev.h 151X- lpd.o: /usr/include/ctype.h /usr/include/errno.h lp.local.h 152X- lpd.o: /usr/include/a.out.h /usr/include/sys/exec.h /usr/include/ar.h 153X- cmds.o: cmds.c lp.h /usr/include/stdio.h /usr/include/sys/param.h 154X- cmds.o: /usr/include/sys/types.h /usr/include/signal.h 155X- cmds.o: /usr/include/machine/trap.h /usr/include/machine/machparam.h 156X- cmds.o: /usr/include/machine/endian.h /usr/include/sys/file.h 157X- cmds.o: /usr/include/sys/dir.h /usr/include/sys/stat.h 158X- cmds.o: /usr/include/sys/socket.h /usr/include/sys/un.h 159X- cmds.o: /usr/include/netinet/in.h /usr/include/netdb.h /usr/include/pwd.h 160X- cmds.o: /usr/include/syslog.h /usr/include/signal.h /usr/include/sys/wait.h 161X- cmds.o: /usr/include/sgtty.h /usr/include/sys/ioctl.h 162X- cmds.o: /usr/include/sys/ttychars.h /usr/include/sys/ttydev.h 163X- cmds.o: /usr/include/ctype.h /usr/include/errno.h lp.local.h 164X- cmds.o: /usr/include/a.out.h /usr/include/sys/exec.h /usr/include/ar.h 165X- cmds.o: /usr/include/sys/time.h /usr/include/time.h 166X- cmdtab.o: cmdtab.c lpc.h 167X- printjob.o: printjob.c lp.h /usr/include/stdio.h /usr/include/sys/param.h 168X- printjob.o: /usr/include/sys/types.h /usr/include/signal.h 169X- printjob.o: /usr/include/machine/trap.h /usr/include/machine/machparam.h 170X- printjob.o: /usr/include/machine/endian.h /usr/include/sys/file.h 171X- printjob.o: /usr/include/sys/dir.h /usr/include/sys/stat.h 172X- printjob.o: /usr/include/sys/socket.h /usr/include/sys/un.h 173X- printjob.o: /usr/include/netinet/in.h /usr/include/netdb.h /usr/include/pwd.h 174X- printjob.o: /usr/include/syslog.h /usr/include/signal.h /usr/include/sys/wait.h 175X- printjob.o: /usr/include/sgtty.h /usr/include/sys/ioctl.h 176X- printjob.o: /usr/include/sys/ttychars.h /usr/include/sys/ttydev.h 177X- printjob.o: /usr/include/ctype.h /usr/include/errno.h lp.local.h 178X- printjob.o: /usr/include/a.out.h /usr/include/sys/exec.h /usr/include/ar.h 179X- recvjob.o: recvjob.c lp.h /usr/include/stdio.h /usr/include/sys/param.h 180X- recvjob.o: /usr/include/sys/types.h /usr/include/signal.h 181X- recvjob.o: /usr/include/machine/trap.h /usr/include/machine/machparam.h 182X- recvjob.o: /usr/include/machine/endian.h /usr/include/sys/file.h 183X- recvjob.o: /usr/include/sys/dir.h /usr/include/sys/stat.h 184X- recvjob.o: /usr/include/sys/socket.h /usr/include/sys/un.h 185X- recvjob.o: /usr/include/netinet/in.h /usr/include/netdb.h /usr/include/pwd.h 186X- recvjob.o: /usr/include/syslog.h /usr/include/signal.h /usr/include/sys/wait.h 187X- recvjob.o: /usr/include/sgtty.h /usr/include/sys/ioctl.h 188X- recvjob.o: /usr/include/sys/ttychars.h /usr/include/sys/ttydev.h 189X- recvjob.o: /usr/include/ctype.h /usr/include/errno.h lp.local.h 190X- recvjob.o: /usr/include/a.out.h /usr/include/sys/exec.h /usr/include/ar.h 191X- recvjob.o: /usr/include/sys/fs.h 192X- displayq.o: displayq.c lp.h /usr/include/stdio.h /usr/include/sys/param.h 193X- displayq.o: /usr/include/sys/types.h /usr/include/signal.h 194X- displayq.o: /usr/include/machine/trap.h /usr/include/machine/machparam.h 195X- displayq.o: /usr/include/machine/endian.h /usr/include/sys/file.h 196X- displayq.o: /usr/include/sys/dir.h /usr/include/sys/stat.h 197X- displayq.o: /usr/include/sys/socket.h /usr/include/sys/un.h 198X- displayq.o: /usr/include/netinet/in.h /usr/include/netdb.h /usr/include/pwd.h 199X- displayq.o: /usr/include/syslog.h /usr/include/signal.h /usr/include/sys/wait.h 200X- displayq.o: /usr/include/sgtty.h /usr/include/sys/ioctl.h 201X- displayq.o: /usr/include/sys/ttychars.h /usr/include/sys/ttydev.h 202X- displayq.o: /usr/include/ctype.h /usr/include/errno.h lp.local.h 203X- displayq.o: /usr/include/a.out.h /usr/include/sys/exec.h /usr/include/ar.h 204X- rmjob.o: rmjob.c lp.h /usr/include/stdio.h /usr/include/sys/param.h 205X- rmjob.o: /usr/include/sys/types.h /usr/include/signal.h 206X- rmjob.o: /usr/include/machine/trap.h /usr/include/machine/machparam.h 207X- rmjob.o: /usr/include/machine/endian.h /usr/include/sys/file.h 208X- rmjob.o: /usr/include/sys/dir.h /usr/include/sys/stat.h 209X- rmjob.o: /usr/include/sys/socket.h /usr/include/sys/un.h 210X- rmjob.o: /usr/include/netinet/in.h /usr/include/netdb.h /usr/include/pwd.h 211X- rmjob.o: /usr/include/syslog.h /usr/include/signal.h /usr/include/sys/wait.h 212X- rmjob.o: /usr/include/sgtty.h /usr/include/sys/ioctl.h 213X- rmjob.o: /usr/include/sys/ttychars.h /usr/include/sys/ttydev.h 214X- rmjob.o: /usr/include/ctype.h /usr/include/errno.h lp.local.h 215X- rmjob.o: /usr/include/a.out.h /usr/include/sys/exec.h /usr/include/ar.h 216X- startdaemon.o: startdaemon.c /usr/include/stdio.h /usr/include/sys/types.h 217X- startdaemon.o: /usr/include/sys/socket.h /usr/include/sys/un.h lp.local.h 218X- startdaemon.o: /usr/include/a.out.h /usr/include/sys/exec.h /usr/include/ar.h 219X- common.o: common.c lp.h /usr/include/stdio.h /usr/include/sys/param.h 220X- common.o: /usr/include/sys/types.h /usr/include/signal.h 221X- common.o: /usr/include/machine/trap.h /usr/include/machine/machparam.h 222X- common.o: /usr/include/machine/endian.h /usr/include/sys/file.h 223X- common.o: /usr/include/sys/dir.h /usr/include/sys/stat.h 224X- common.o: /usr/include/sys/socket.h /usr/include/sys/un.h 225X- common.o: /usr/include/netinet/in.h /usr/include/netdb.h /usr/include/pwd.h 226X- common.o: /usr/include/syslog.h /usr/include/signal.h /usr/include/sys/wait.h 227X- common.o: /usr/include/sgtty.h /usr/include/sys/ioctl.h 228X- common.o: /usr/include/sys/ttychars.h /usr/include/sys/ttydev.h 229X- common.o: /usr/include/ctype.h /usr/include/errno.h lp.local.h 230X- common.o: /usr/include/a.out.h /usr/include/sys/exec.h /usr/include/ar.h 231X- printcap.o: printcap.c /usr/include/ctype.h /usr/include/stdio.h 232X- lpdchar.o: lpdchar.c lp.local.h /usr/include/a.out.h /usr/include/sys/exec.h 233X- lpdchar.o: /usr/include/ar.h 234X- 235X- # IF YOU PUT ANYTHING HERE IT WILL GO AWAY 236X 237X--- 128,130 ----- 238X 239X # DO NOT DELETE THIS LINE -- mkdep uses it. 240X # DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. 241X*** lpr/common.c Thu Jun 30 18:00:19 1988 242X--- newlpr/common.c Fri Aug 11 14:15:40 1989 243X*************** 244X*** 59,64 245X short PX; /* page width in pixels */ 246X short PY; /* page length in pixels */ 247X short BR; /* baud rate if lp is a tty */ 248X int FC; /* flags to clear if lp is a tty */ 249X int FS; /* flags to set if lp is a tty */ 250X int XC; /* flags to clear for local mode */ 251X 252X--- 59,72 ----- 253X short PX; /* page width in pixels */ 254X short PY; /* page length in pixels */ 255X short BR; /* baud rate if lp is a tty */ 256X+ #ifdef macII 257X+ int IC; /* input flags to clear if lp is a tty */ 258X+ int IS; /* input flags to set if lp is a tty */ 259X+ int OC; /* output flags to clear if lp is a tty */ 260X+ int OS; /* output flags to set if lp is a tty */ 261X+ int CC; /* control flags to clear if lp is a tty */ 262X+ int CS; /* control flags to set if lp is a tty */ 263X+ #else 264X int FC; /* flags to clear if lp is a tty */ 265X int FS; /* flags to set if lp is a tty */ 266X int XC; /* flags to clear for local mode */ 267X*************** 268X*** 63,68 269X int FS; /* flags to set if lp is a tty */ 270X int XC; /* flags to clear for local mode */ 271X int XS; /* flags to set for local mode */ 272X short RS; /* restricted to those with local accounts */ 273X 274X char line[BUFSIZ]; 275X 276X--- 71,77 ----- 277X int FS; /* flags to set if lp is a tty */ 278X int XC; /* flags to clear for local mode */ 279X int XS; /* flags to set for local mode */ 280X+ #endif 281X short RS; /* restricted to those with local accounts */ 282X 283X char line[BUFSIZ]; 284X*** lpr/lp.h Thu Jun 30 18:00:21 1988 285X--- newlpr/lp.h Fri Aug 11 14:05:55 1989 286X*************** 287X*** 34,39 288X #include <syslog.h> 289X #include <signal.h> 290X #include <sys/wait.h> 291X #include <sgtty.h> 292X #include <ctype.h> 293X #include <errno.h> 294X 295X--- 34,40 ----- 296X #include <syslog.h> 297X #include <signal.h> 298X #include <sys/wait.h> 299X+ #ifndef macII 300X #include <sgtty.h> 301X #endif 302X #include <ctype.h> 303X*************** 304X*** 35,40 305X #include <signal.h> 306X #include <sys/wait.h> 307X #include <sgtty.h> 308X #include <ctype.h> 309X #include <errno.h> 310X #include "lp.local.h" 311X 312X--- 36,42 ----- 313X #include <sys/wait.h> 314X #ifndef macII 315X #include <sgtty.h> 316X+ #endif 317X #include <ctype.h> 318X #include <errno.h> 319X #ifdef macII 320X*************** 321X*** 37,42 322X #include <sgtty.h> 323X #include <ctype.h> 324X #include <errno.h> 325X #include "lp.local.h" 326X 327X extern int DU; /* daeomon user-id */ 328X 329X--- 39,50 ----- 330X #endif 331X #include <ctype.h> 332X #include <errno.h> 333X+ #ifdef macII 334X+ #undef FIOCLEX 335X+ #undef FIONCLEX 336X+ #include <sys/ioctl.h> 337X+ #include <termio.h> 338X+ #endif 339X #include "lp.local.h" 340X 341X extern int DU; /* daeomon user-id */ 342X*************** 343X*** 73,78 344X extern short PY; /* page length in pixels */ 345X extern short PL; /* page length */ 346X extern short BR; /* baud rate if lp is a tty */ 347X extern int FC; /* flags to clear if lp is a tty */ 348X extern int FS; /* flags to set if lp is a tty */ 349X extern int XC; /* flags to clear for local mode */ 350X 351X--- 81,94 ----- 352X extern short PY; /* page length in pixels */ 353X extern short PL; /* page length */ 354X extern short BR; /* baud rate if lp is a tty */ 355X+ #ifdef macII 356X+ extern int IC; /* input flags to clear if lp is a tty */ 357X+ extern int IS; /* input flags to set if lp is a tty */ 358X+ extern int OC; /* output flags to clear if lp is a tty */ 359X+ extern int OS; /* output flags to set if lp is a tty */ 360X+ extern int CC; /* control flags to clear if lp is a tty */ 361X+ extern int CS; /* control flags to set if lp is a tty */ 362X+ #else 363X extern int FC; /* flags to clear if lp is a tty */ 364X extern int FS; /* flags to set if lp is a tty */ 365X extern int XC; /* flags to clear for local mode */ 366X*************** 367X*** 77,82 368X extern int FS; /* flags to set if lp is a tty */ 369X extern int XC; /* flags to clear for local mode */ 370X extern int XS; /* flags to set for local mode */ 371X extern short RS; /* restricted to those with local accounts */ 372X 373X extern char line[BUFSIZ]; 374X 375X--- 93,99 ----- 376X extern int FS; /* flags to set if lp is a tty */ 377X extern int XC; /* flags to clear for local mode */ 378X extern int XS; /* flags to set for local mode */ 379X+ #endif 380X extern short RS; /* restricted to those with local accounts */ 381X 382X extern char line[BUFSIZ]; 383X*** lpr/lp.local.h Thu Jun 30 18:00:21 1988 384X--- newlpr/lp.local.h Fri Aug 11 15:38:14 1989 385X*************** 386X*** 29,35 387X #include <a.out.h> 388X #include <ar.h> 389X 390X! #ifndef A_MAGIC1 /* must be a VM/UNIX system */ 391X # define A_MAGIC1 OMAGIC 392X # define A_MAGIC2 NMAGIC 393X # define A_MAGIC3 ZMAGIC 394X 395X--- 29,45 ----- 396X #include <a.out.h> 397X #include <ar.h> 398X 399X! #ifdef macII 400X! # ifndef A_MAGIC1 401X! # define A_MAGIC1 0520 /* COFF object */ 402X! # define A_MAGIC2 0407 /* 4.0 executable */ 403X! # define A_MAGIC3 0410 /* 4.0 pure executable */ 404X! # define A_MAGIC4 0570 /* 5.0 executable */ 405X! # undef ARMAG 406X! # define ARMAG 0177545 /* archive magic */ 407X! # endif 408X! #else 409X! # ifndef A_MAGIC1 /* must be a VM/UNIX system */ 410X # define A_MAGIC1 OMAGIC 411X # define A_MAGIC2 NMAGIC 412X # define A_MAGIC3 ZMAGIC 413X*************** 414X*** 35,40 415X # define A_MAGIC3 ZMAGIC 416X # undef ARMAG 417X # define ARMAG 0177545 418X #endif 419X 420X /* 421X 422X--- 45,51 ----- 423X # define A_MAGIC3 ZMAGIC 424X # undef ARMAG 425X # define ARMAG 0177545 426X+ # endif 427X #endif 428X 429X /* 430X*************** 431X*** 44,50 432X #define DEFLOCK "lock" 433X #define DEFSTAT "status" 434X #define DEFSPOOL "/usr/spool/lpd" 435X- #define DEFDAEMON "/usr/lib/lpd" 436X #define DEFLOGF "/dev/console" 437X #define DEFDEVLP "/dev/lp" 438X #define DEFRLPR "/usr/lib/rlpr" 439X 440X--- 55,60 ----- 441X #define DEFLOCK "lock" 442X #define DEFSTAT "status" 443X #define DEFSPOOL "/usr/spool/lpd" 444X #define DEFLOGF "/dev/console" 445X #define DEFDEVLP "/dev/lp" 446X #ifdef macII 447X*************** 448X*** 47,52 449X #define DEFDAEMON "/usr/lib/lpd" 450X #define DEFLOGF "/dev/console" 451X #define DEFDEVLP "/dev/lp" 452X #define DEFRLPR "/usr/lib/rlpr" 453X #define DEFBINDIR "/usr/ucb" 454X #define DEFMX 1000 455X 456X--- 57,68 ----- 457X #define DEFSPOOL "/usr/spool/lpd" 458X #define DEFLOGF "/dev/console" 459X #define DEFDEVLP "/dev/lp" 460X+ #ifdef macII 461X+ #define DEFDAEMON "/usr/local/lib/lpd" 462X+ #define DEFRLPR "/usr/local/lib/rlpr" 463X+ #define DEFBINDIR "/usr/local/bin" 464X+ #else 465X+ #define DEFDAEMON "/usr/lib/lpd" 466X #define DEFRLPR "/usr/lib/rlpr" 467X #define DEFBINDIR "/usr/ucb" 468X #endif 469X*************** 470X*** 49,54 471X #define DEFDEVLP "/dev/lp" 472X #define DEFRLPR "/usr/lib/rlpr" 473X #define DEFBINDIR "/usr/ucb" 474X #define DEFMX 1000 475X #define DEFMAXCOPIES 0 476X #define DEFFF "\f" 477X 478X--- 65,71 ----- 479X #define DEFDAEMON "/usr/lib/lpd" 480X #define DEFRLPR "/usr/lib/rlpr" 481X #define DEFBINDIR "/usr/ucb" 482X+ #endif 483X #define DEFMX 1000 484X #define DEFMAXCOPIES 0 485X #define DEFFF "\f" 486X*** lpr/lpr.c Thu Jun 30 18:00:24 1988 487X--- newlpr/lpr.c Fri Aug 11 15:25:11 1989 488X*************** 489X*** 512,517 490X * Return -1 if it is not, 0 if its printable, and 1 if 491X * we should remove it after printing. 492X */ 493X test(file) 494X char *file; 495X { 496X 497X--- 512,523 ----- 498X * Return -1 if it is not, 0 if its printable, and 1 if 499X * we should remove it after printing. 500X */ 501X+ #ifdef macII 502X+ #define exec filehdr 503X+ #define execb filehdrb 504X+ #define a_magic f_magic 505X+ #endif 506X+ 507X test(file) 508X char *file; 509X { 510X*************** 511X*** 575,580 512X (void) close(fd); 513X return(-1); 514X } 515X 516X /* 517X * itoa - integer to string conversion 518X 519X--- 581,592 ----- 520X (void) close(fd); 521X return(-1); 522X } 523X+ 524X+ #ifdef macII 525X+ #undef exec 526X+ #undef execb 527X+ #undef a_magic 528X+ #endif 529X 530X /* 531X * itoa - integer to string conversion 532X*** lpr/printjob.c Thu Jun 30 18:00:26 1988 533X--- newlpr/printjob.c Fri Aug 11 16:22:50 1989 534X*************** 535X*** 65,71 536X char pxwidth[10] = "-x"; /* page width in pixels */ 537X char pxlength[10] = "-y"; /* page length in pixels */ 538X char indent[10] = "-i0"; /* indentation size in characters */ 539X! char tmpfile[] = "errsXXXXXX"; /* file name for filter output */ 540X 541X printjob() 542X { 543X 544X--- 65,71 ----- 545X char pxwidth[10] = "-x"; /* page width in pixels */ 546X char pxlength[10] = "-y"; /* page length in pixels */ 547X char indent[10] = "-i0"; /* indentation size in characters */ 548X! char tmpfil[] = "errsXXXXXX"; /* file name for filter output */ 549X 550X printjob() 551X { 552X*************** 553X*** 92,98 554X signal(SIGQUIT, abortpr); 555X signal(SIGTERM, abortpr); 556X 557X! (void) mktemp(tmpfile); 558X 559X /* 560X * uses short form file names 561X 562X--- 92,98 ----- 563X signal(SIGQUIT, abortpr); 564X signal(SIGTERM, abortpr); 565X 566X! (void) mktemp(tmpfil); 567X 568X /* 569X * uses short form file names 570X*************** 571X*** 210,216 572X if (TR != NULL) /* output trailer */ 573X (void) write(ofd, TR, strlen(TR)); 574X } 575X! (void) unlink(tmpfile); 576X exit(0); 577X } 578X goto again; 579X 580X--- 210,216 ----- 581X if (TR != NULL) /* output trailer */ 582X (void) write(ofd, TR, strlen(TR)); 583X } 584X! (void) unlink(tmpfil); 585X exit(0); 586X } 587X goto again; 588X*************** 589X*** 580,586 590X if ((child = dofork(DORETURN)) == 0) { /* child */ 591X dup2(fi, 0); 592X dup2(fo, 1); 593X! n = open(tmpfile, O_WRONLY|O_CREAT|O_TRUNC, 0664); 594X if (n >= 0) 595X dup2(n, 2); 596X for (n = 3; n < NOFILE; n++) 597X 598X--- 580,586 ----- 599X if ((child = dofork(DORETURN)) == 0) { /* child */ 600X dup2(fi, 0); 601X dup2(fo, 1); 602X! n = open(tmpfil, O_WRONLY|O_CREAT|O_TRUNC, 0664); 603X if (n >= 0) 604X dup2(n, 2); 605X for (n = 3; n < NOFILE; n++) 606X*************** 607X*** 947,954 608X printf("\ncould not be printed without an account on %s\n", host); 609X break; 610X case FILTERERR: 611X! if (stat(tmpfile, &stb) < 0 || stb.st_size == 0 || 612X! (fp = fopen(tmpfile, "r")) == NULL) { 613X printf("\nwas printed but had some errors\n"); 614X break; 615X } 616X 617X--- 947,954 ----- 618X printf("\ncould not be printed without an account on %s\n", host); 619X break; 620X case FILTERERR: 621X! if (stat(tmpfil, &stb) < 0 || stb.st_size == 0 || 622X! (fp = fopen(tmpfil, "r")) == NULL) { 623X printf("\nwas printed but had some errors\n"); 624X break; 625X } 626X*************** 627X*** 1007,1013 628X */ 629X abortpr() 630X { 631X! (void) unlink(tmpfile); 632X kill(0, SIGINT); 633X if (ofilter > 0) 634X kill(ofilter, SIGCONT); 635X 636X--- 1007,1013 ----- 637X */ 638X abortpr() 639X { 640X! (void) unlink(tmpfil); 641X kill(0, SIGINT); 642X if (ofilter > 0) 643X kill(ofilter, SIGCONT); 644X*************** 645X*** 1107,1112 646X HL = pgetflag("hl"); 647X RW = pgetflag("rw"); 648X BR = pgetnum("br"); 649X if ((FC = pgetnum("fc")) < 0) 650X FC = 0; 651X if ((FS = pgetnum("fs")) < 0) 652X 653X--- 1107,1126 ----- 654X HL = pgetflag("hl"); 655X RW = pgetflag("rw"); 656X BR = pgetnum("br"); 657X+ #ifdef macII 658X+ if ((IC = pgetnum("ic")) < 0) 659X+ IC = 0; 660X+ if ((IS = pgetnum("is")) < 0) 661X+ IS = 0; 662X+ if ((OC = pgetnum("oc")) < 0) 663X+ OC = 0; 664X+ if ((OS = pgetnum("os")) < 0) 665X+ OS = 0; 666X+ if ((CC = pgetnum("cc")) < 0) 667X+ CC = 0; 668X+ if ((CS = pgetnum("cs")) < 0) 669X+ CS = 0; 670X+ #else 671X if ((FC = pgetnum("fc")) < 0) 672X FC = 0; 673X if ((FS = pgetnum("fs")) < 0) 674X*************** 675X*** 1115,1120 676X XC = 0; 677X if ((XS = pgetnum("xs")) < 0) 678X XS = 0; 679X tof = !pgetflag("fo"); 680X } 681X 682X 683X--- 1129,1135 ----- 684X XC = 0; 685X if ((XS = pgetnum("xs")) < 0) 686X XS = 0; 687X+ #endif 688X tof = !pgetflag("fo"); 689X } 690X 691X*************** 692X*** 1227,1233 693X */ 694X setty() 695X { 696X- struct sgttyb ttybuf; 697X register struct bauds *bp; 698X 699X if (ioctl(pfd, TIOCEXCL, (char *)0) < 0) { 700X 701X--- 1242,1247 ----- 702X */ 703X setty() 704X { 705X register struct bauds *bp; 706X 707X #ifdef macII 708X*************** 709X*** 1230,1235 710X struct sgttyb ttybuf; 711X register struct bauds *bp; 712X 713X if (ioctl(pfd, TIOCEXCL, (char *)0) < 0) { 714X syslog(LOG_ERR, "%s: ioctl(TIOCEXCL): %m", printer); 715X exit(1); 716X 717X--- 1244,1285 ----- 718X { 719X register struct bauds *bp; 720X 721X+ #ifdef macII 722X+ struct termio ttybuf; 723X+ 724X+ /* can't do exclusive lock on device once its opened, can we? */ 725X+ 726X+ if (ioctl(pfd, TCGETA, (char *)&ttybuf) < 0) { 727X+ syslog(LOG_ERR, "%s: ioctl(TCGETA): %m", printer); 728X+ exit(1); 729X+ } 730X+ 731X+ if (BR > 0) { 732X+ for (bp = bauds; bp->baud; bp++) 733X+ if (BR == bp->baud) 734X+ break; 735X+ if (!bp->baud) { 736X+ syslog(LOG_ERR, "%s: illegal baud rate %d", printer, BR); 737X+ exit(1); 738X+ } 739X+ ttybuf.c_cflag &= ~CC; 740X+ ttybuf.c_cflag |= CS; 741X+ ttybuf.c_cflag = (ttybuf.c_cflag & ~CBAUD) | bp->baud; 742X+ } 743X+ 744X+ ttybuf.c_iflag &= ~IC; 745X+ ttybuf.c_iflag |= IS; 746X+ 747X+ ttybuf.c_oflag &= ~OC; 748X+ ttybuf.c_oflag |= OS; 749X+ 750X+ if (ioctl(pfd, TCSETA, (char *)&ttybuf) < 0) { 751X+ syslog(LOG_ERR, "%s: ioctl(TCSETA): %m", printer); 752X+ exit(1); 753X+ } 754X+ #else 755X+ struct sgttyb ttybuf; 756X+ 757X if (ioctl(pfd, TIOCEXCL, (char *)0) < 0) { 758X syslog(LOG_ERR, "%s: ioctl(TIOCEXCL): %m", printer); 759X exit(1); 760X*************** 761X*** 1234,1239 762X syslog(LOG_ERR, "%s: ioctl(TIOCEXCL): %m", printer); 763X exit(1); 764X } 765X if (ioctl(pfd, TIOCGETP, (char *)&ttybuf) < 0) { 766X syslog(LOG_ERR, "%s: ioctl(TIOCGETP): %m", printer); 767X exit(1); 768X 769X--- 1284,1290 ----- 770X syslog(LOG_ERR, "%s: ioctl(TIOCEXCL): %m", printer); 771X exit(1); 772X } 773X+ 774X if (ioctl(pfd, TIOCGETP, (char *)&ttybuf) < 0) { 775X syslog(LOG_ERR, "%s: ioctl(TIOCGETP): %m", printer); 776X exit(1); 777X*************** 778X*** 1238,1243 779X syslog(LOG_ERR, "%s: ioctl(TIOCGETP): %m", printer); 780X exit(1); 781X } 782X if (BR > 0) { 783X for (bp = bauds; bp->baud; bp++) 784X if (BR == bp->baud) 785X 786X--- 1289,1295 ----- 787X syslog(LOG_ERR, "%s: ioctl(TIOCGETP): %m", printer); 788X exit(1); 789X } 790X+ 791X if (BR > 0) { 792X for (bp = bauds; bp->baud; bp++) 793X if (BR == bp->baud) 794X*************** 795X*** 1274,1279 796X exit(1); 797X } 798X } 799X } 800X 801X /*VARARGS1*/ 802X 803X--- 1326,1332 ----- 804X exit(1); 805X } 806X } 807X+ #endif 808X } 809X 810X /*VARARGS1*/ 811X*** lpr/recvjob.c Thu Jun 30 18:00:27 1988 812X--- newlpr/recvjob.c Fri Aug 11 15:19:11 1989 813X*************** 814X*** 25,30 815X */ 816X 817X #include "lp.h" 818X #include <sys/fs.h> 819X 820X char *sp = ""; 821X 822X--- 25,31 ----- 823X */ 824X 825X #include "lp.h" 826X+ #ifndef macII 827X #include <sys/fs.h> 828X #endif 829X 830X*************** 831X*** 26,31 832X 833X #include "lp.h" 834X #include <sys/fs.h> 835X 836X char *sp = ""; 837X #define ack() (void) write(1, sp, 1); 838X 839X--- 27,33 ----- 840X #include "lp.h" 841X #ifndef macII 842X #include <sys/fs.h> 843X+ #endif 844X 845X #ifdef macII 846X #define major(x) (x >> 8 & 255) 847X*************** 848X*** 27,32 849X #include "lp.h" 850X #include <sys/fs.h> 851X 852X char *sp = ""; 853X #define ack() (void) write(1, sp, 1); 854X 855X 856X--- 29,39 ----- 857X #include <sys/fs.h> 858X #endif 859X 860X+ #ifdef macII 861X+ #define major(x) (x >> 8 & 255) 862X+ #define minor(x) (x & 255) 863X+ #endif 864X+ 865X char *sp = ""; 866X #define ack() (void) write(1, sp, 1); 867X 868X*************** 869X*** 262,267 870X struct stat stb; 871X register char *ddev; 872X int spacefree; 873X struct fs fs; 874X 875X if (dfd < 0 || lseek(dfd, (long)(SBOFF), 0) < 0) 876X 877X--- 269,275 ----- 878X struct stat stb; 879X register char *ddev; 880X int spacefree; 881X+ #ifndef macII 882X struct fs fs; 883X 884X if (dfd < 0 || lseek(dfd, (long)(SBOFF), 0) < 0) 885X*************** 886X*** 272,277 887X size = (size + 1023) / 1024; 888X if (minfree + size > spacefree) 889X return(0); 890X return(1); 891X } 892X 893X 894X--- 280,286 ----- 895X size = (size + 1023) / 1024; 896X if (minfree + size > spacefree) 897X return(0); 898X+ #endif 899X return(1); 900X } 901X 902X*************** 903X*** 317,319 904X putchar('\1'); /* return error code */ 905X exit(1); 906X } 907X 908X--- 326,401 ----- 909X putchar('\1'); /* return error code */ 910X exit(1); 911X } 912X+ 913X+ #ifdef macII 914X+ 915X+ #define MAXHOSTNAMELEN 128 916X+ 917X+ _validuser(hostf, rhost, luser, ruser, baselen) 918X+ char *rhost, *luser, *ruser; 919X+ FILE *hostf; 920X+ int baselen; 921X+ { 922X+ char *user; 923X+ char ahost[MAXHOSTNAMELEN]; 924X+ register char *p; 925X+ 926X+ while (fgets(ahost, sizeof (ahost), hostf)) { 927X+ p = ahost; 928X+ while (*p != '\n' && *p != ' ' && *p != '\t' && *p != '\0') { 929X+ *p = isupper(*p) ? tolower(*p) : *p; 930X+ p++; 931X+ } 932X+ if (*p == ' ' || *p == '\t') { 933X+ *p++ = '\0'; 934X+ while (*p == ' ' || *p == '\t') 935X+ p++; 936X+ user = p; 937X+ while (*p != '\n' && *p != ' ' && *p != '\t' && *p != '\0') 938X+ p++; 939X+ } else 940X+ user = p; 941X+ *p = '\0'; 942X+ if (_checkhost(rhost, ahost, baselen) && 943X+ !strcmp(ruser, *user ? user : luser)) { 944X+ return (0); 945X+ } 946X+ } 947X+ return (-1); 948X+ } 949X+ 950X+ _checkhost(rhost, lhost, len) 951X+ char *rhost, *lhost; 952X+ int len; 953X+ { 954X+ static char ldomain[MAXHOSTNAMELEN + 1]; 955X+ static char *domainp = NULL; 956X+ register char *cp; 957X+ 958X+ if (len == -1) 959X+ return(!strcmp(rhost, lhost)); 960X+ if (strncmp(rhost, lhost, len)) 961X+ return(0); 962X+ if (!strcmp(rhost, lhost)) 963X+ return(1); 964X+ if (*(lhost + len) != '\0') 965X+ return(0); 966X+ if (!domainp) { 967X+ if (gethostname(ldomain, sizeof(ldomain)) == -1) { 968X+ domainp = (char *)1; 969X+ return(0); 970X+ } 971X+ ldomain[MAXHOSTNAMELEN] = NULL; 972X+ if ((domainp = index(ldomain, '.') + 1) == (char *)1) 973X+ return(0); 974X+ cp = domainp; 975X+ while (*cp) { 976X+ *cp = isupper(*cp) ? tolower(*cp) : *cp; 977X+ cp++; 978X+ } 979X+ } 980X+ if (domainp == (char *)1) 981X+ return(0); 982X+ return(!strcmp(domainp, rhost + len +1)); 983X+ } 984X+ #endif macII 985END_OF_FILE 986if test 28134 -ne `wc -c <'lpr.diff'`; then 987 echo shar: \"'lpr.diff'\" unpacked with wrong size! 988fi 989# end of 'lpr.diff' 990fi 991if test -f 'aux.printcap' -a "${1}" != "-c" ; then 992 echo shar: Will not clobber existing file \"'aux.printcap'\" 993else 994echo shar: Extracting \"'aux.printcap'\" \(1353 characters\) 995sed "s/^X//" >'aux.printcap' <<'END_OF_FILE' 996X# 997X# Copyright (c) 1983 Regents of the University of California. 998X# All rights reserved. 999X# 1000X# Redistribution and use in source and binary forms are permitted 1001X# provided that this notice is preserved and that due credit is given 1002X# to the University of California at Berkeley. The name of the University 1003X# may not be used to endorse or promote products derived from this 1004X# software without specific prior written permission. This software 1005X# is provided ``as is'' without express or implied warranty. 1006X# 1007X# @(#)etc.printcap 5.2 (Berkeley) 5/5/88 1008X# 1009X# DecWriter over a tty line. 1010X#lp|ap|arpa|ucbarpa|LA-180 DecWriter III:\ 1011X# :br#1200:cs#04260:cc#03500:os#05:oc#0177772:is#012541:ic#0472: 1012X# :tr=\f:of=/usr/local/lib/lpf:lf=/usr/adm/lpd-errs: 1013X# typical remote printer entry 1014X#ucbvax|vax|vx|ucbvax line printer:\ 1015X# :lp=:rm=ucbvax:sd=/usr/spool/vaxlpd:lf=/usr/adm/lpd-errs: 1016X# 1017Xlp|Printronix P-300 in coffee room:\ 1018X :lp=:rp=lp:rm=salt:sd=/usr/spool/remote/lp:lf=/usr/adm/lpd-errs: 1019Xmac2|ps|PostScript|PostScript|LaserWriter in Engineering:\ 1020X :lp=:rp=mac2:rm=salt:sd=/usr/spool/remote/mac2:lf=/usr/adm/lpd-errs: 1021Xmac5|ps|PostScript|PostScript|LaserWriter in Personnel:\ 1022X :lp=:rp=mac5:rm=salt:sd=/usr/spool/remote/mac5:lf=/usr/adm/lpd-errs: 1023Xmac7|ps|PostScript|PostScript|LaserWriter in Customer Service:\ 1024X :lp=:rp=mac7:rm=salt:sd=/usr/spool/remote/mac7:lf=/usr/adm/lpd-errs: 1025END_OF_FILE 1026if test 1353 -ne `wc -c <'aux.printcap'`; then 1027 echo shar: \"'aux.printcap'\" unpacked with wrong size! 1028fi 1029# end of 'aux.printcap' 1030fi 1031echo shar: End of shell archive. 1032exit 0 1033 1034