Path: utzoo!mnetor!uunet!husc6!uwvax!dogie!uwmcsd1!ig!agate!ucbvax!GNOME.CS.CMU.EDU!Ravinder.Chandhok From: Ravinder.Chandhok@GNOME.CS.CMU.EDU Newsgroups: comp.protocols.appletalk Subject: Re: CAP and Transcript Message-ID: <18816.574371858@GNOME.CS.CMU.EDU> Date: 14 Mar 88 19:44:18 GMT References: <8803110610.AA28344@sunc.ICS> Sender: usenet@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 61 Mark, Good it hear it wasn't just me having problems with transcript and lwsrv. Here is what I had to do for each problem: (1) transcript doesn't deal with ^M's in the postscript files. PostScript *may legally* contain a ^M as data, but no one does this,as far as I can tell. Besides, the PostScript doc says if you want to do this, use \000 notation, so it goes through normal data channels. The fix: in lwsrv.c::scantoken() At the end of comment lines, ^M was converted to ^J already. Other places the check was "isascii()". I changed that section of the code to look like: /* papif handles it right, but others like transcript don't, so... */ if (echo) { /* do we want to echo this? */ if (c == '\r') /* is this a CR ? */ putchar('\n'); /* Yes, translate to newline */ else if (isascii(c)) /* is it standard ascii? */ putchar(c); /* yes... so echo */ else /* otherwise echo \ddd */ printf("\\%03o",(unsigned char) c); } (2) transcript (either pscomm or something) insists on mucking with files that "conform" to "PS-Adobe-" in such a way that the dictionary doesn't get output to the printer in the right order IF your local options to transcript specify page reversal by default. I don't maintain the local version of transcript, so I had to fix lwsrv. The fix: Not that the beginning of the file is what determines the level of "conformity". The mac advertises it conforms at "PS-Adobe-2.0". After inserting the laser prep file, transcript claims it no longer conforms (the indication of this is postscript errors from pscomm). My fix was to prepend something to the beginning of EVERY JOB that limited lwsrv's liability by not claiming to conform to Adobe's standard. In routine childjob(): ... sprintf(status,"receiving job for %s",prtname); /* Ensure we do not advertise we are anything but min. conforming */ printf("%%!PS-Adobe * Captured by lwsrv *\n%% ******"); while (getjob(pf)) { /* while still open... */ ... (3) Printing on non-laserwriter's involves more changes to the prep file. The fix: define "legal" to be a lnop, and most things print ok on an LPS40. Although I don't know how to get bitmaps working yet since I can't use the 68000 codes for smoothing.... Rob