Patch #: 66 Type: operational change Priority: none Modification: pass lwsrv -L arguments through to lpr Submitted: Edward Moy Archived: munnari.OZ.AU mac/cap.patches/cap60.patch066 Application: 'cd cap60; patch -p < cap60.patches/cap60.patch066' Summary: '-L' (up to 16 occurrences) File: cap60/applications/lwsrv/lwsrv.c *** applications/lwsrv/lwsrv.c.orig Sat Aug 31 19:27:24 1991 --- applications/lwsrv/lwsrv.c Sun Nov 17 22:25:28 1991 *************** *** 1,6 **** ! static char rcsid[] = "$Author: djh $ $Date: 1991/08/31 09:27:12 $"; ! static char rcsident[] = "$Header: /mac/src/cap60/applications/lwsrv/RCS/lwsrv.c,v 2.11 1991/08/31 09:27:12 djh Rel djh $"; ! static char revision[] = "$Revision: 2.11 $"; /* * lwsrv - UNIX AppleTalk spooling program: act as a laserwriter --- 1,6 ---- ! static char rcsid[] = "$Author: djh $ $Date: 1991/11/17 11:25:16 $"; ! static char rcsident[] = "$Header: /mac/src/cap60/applications/lwsrv/RCS/lwsrv.c,v 2.12 1991/11/17 11:25:16 djh Rel djh $"; ! static char revision[] = "$Revision: 2.12 $"; /* * lwsrv - UNIX AppleTalk spooling program: act as a laserwriter *************** *** 109,114 **** --- 109,118 ---- #ifdef NeXT char *nextdpi = NULL; /* NeXT printer resolution */ #endif NeXT + #ifdef LPRARGS + private char *lprargsbuf[16]; + private char **lprargs = lprargsbuf; + #endif LPRARGS private void usage(s,err) *************** *** 142,147 **** --- 146,154 ---- fprintf(stderr,"\t-A [on|off*] means to turn on or off Adobe document\n"); fprintf(stderr,"\tstructuring revision 2 compatibility\n"); fprintf(stderr,"\t(this can cause problems, *'ed item is default)\n"); + #ifdef LPRARGS + fprintf(stderr,"\t-L Argument to pass to lpr (multiple use)\n"); + #endif LPRARGS #ifdef NeXT fprintf(stderr,"\t-R Specify resolution for NeXT printer\n"); #endif NeXT *************** *** 168,187 **** int c; extern char *optarg; extern int optind; ! #ifndef LWSRV_AUFS_SECURITY #ifdef NeXT ! while ((c = getopt(argc,argv,"a:f:l:p:P:t:d:n:rehNT:A:S:R")) != EOF) { ! #else NeXT ! while ((c = getopt(argc,argv,"a:f:l:p:P:t:d:n:rehNT:A:S")) != EOF) { #endif NeXT ! #else LWSRV_AUFS_SECURITY ! #ifdef NeXT ! while ((c = getopt(argc,argv,"a:f:l:p:P:t:d:n:rehNT:A:SX:R")) != EOF) { ! #else NeXT ! while ((c = getopt(argc,argv,"a:f:l:p:P:t:d:n:rehNT:A:SX:")) != EOF) { ! #endif NeXT ! #endif LWSRV_AUFS_SECURITY switch (c) { case 'a': if (index(optarg, '/') == NULL) { --- 175,192 ---- int c; extern char *optarg; extern int optind; + static char optlist[64] = "a:f:l:p:P:t:d:n:rehNT:A:S"; ! #ifdef LWSRV_AUFS_SECURITY ! strcat(optlist, "X:"); ! #endif LWSRV_AUFS_SECURITY ! #ifdef LPRARGS ! strcat(optlist, "L:"); ! #endif LPRARGS #ifdef NeXT ! strcat(optlist, "R:"); #endif NeXT ! while ((c = getopt(argc,argv,optlist)) != EOF) { switch (c) { case 'a': if (index(optarg, '/') == NULL) { *************** *** 227,232 **** --- 232,242 ---- if (simple_dsc_option(optarg) < 0) usage(argv[0], NULL); break; + #ifdef LPRARGS + case 'L': + *lprargs++ = optarg; + break; + #endif LPRARGS case 'S': singlefork = TRUE; fprintf(stderr, "lwsrv: single fork\n"); *************** *** 257,262 **** --- 267,276 ---- usage(argv[0],"No AppleTalk Printer Name"); if (fontfile == NULL) usage(argv[0],"No FontFile specified"); + #ifdef LPRARGS + *lprargs = NULL; + lprargs = lprargsbuf; + #endif LPRARGS } private void *************** *** 519,525 **** FILE *outfile; char tname[256],status[256]; char pbuf[256],rhbuf[16],jbuf[1024]; ! char *childargv[32]; #ifdef LWSRV_AUFS_SECURITY char bbuf[256]; #endif LWSRV_AUFS_SECURITY --- 533,539 ---- FILE *outfile; char tname[256],status[256]; char pbuf[256],rhbuf[16],jbuf[1024]; ! char *childargv[64]; #ifdef LWSRV_AUFS_SECURITY char bbuf[256]; #endif LWSRV_AUFS_SECURITY *************** *** 688,693 **** --- 702,712 ---- #ifndef USESYSVLP childargv[argc++]="-s"; /* better for > 1M files */ #endif USESYSVLP + #ifdef LPRARGS + while(*lprargs) + childargv[argc++]=*lprargs++; + lprargs=lprargsbuf; + #endif LPRARGS childargv[argc++]=tname; /* our temporary file name */ childargv[argc]=(char *) 0; /* end of argument list */ *** README.orig Sun Nov 17 22:26:43 1991 --- README Sun Nov 17 22:27:13 1991 *************** *** 3,9 **** (For use with AppleTalk/Ethernet bridge) o RELEASE NOTES ! o CAP Distribution 6.0, Patch Level 65, November 1991 Introduction ------------ --- 3,9 ---- (For use with AppleTalk/Ethernet bridge) o RELEASE NOTES ! o CAP Distribution 6.0, Patch Level 66, November 1991 Introduction ------------