Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!mtxinu!jaap From: jaap@mtxinu.COM (Jaap Akkerhuis) Newsgroups: comp.soft-sys.andrew Subject: Re: Printing Revisited Message-ID: <1324@mtxinu.UUCP> Date: 15 Aug 90 01:06:03 GMT References: Reply-To: jaap@mtxinu.UUCP (Jaap Akkerhuis) Organization: mt Xinu, Berkeley Lines: 55 In article nsb@THUMPER.BELLCORE.COM (Nathaniel Borenstein) complains: > I know this was discussed a while back on this list, but I can't seem to > dig it up. > > I think that I'm running a down-level version of ditroff or psdit, and > that this is causing embedded Andrew insets (zip, raster) not to print > properly. When I capture the postscript output for an embedded zip, for > example, it starts something like this: > > % included PostScript > \ > %!\ > PB\ > /troffadjust { pop 0 } def\ > 385 troffadjust 215 neg translate\ > %!PS-Adobe-2.0 EPSF-1.2\ > % Begin Zip PostScript Prelude Version 0.0\ > > My printer seems to be dying on the backslashes. I'm sure I've seen > this problem discussed on this list before, so I'm sorry to bring it up > again, but could someone please tell me what, exactly, the problem is? > Thanks. -- Nathaniel Yeah, this has been discussed before. It is a problem in some versions of troff, starting somewhere at DWB2.0. For the people who have the source, the fix is in the ``scaled down version of stdio'' which is part of troff. If you look closely you will find in printf and fprintf a place where troff places a backslash in front of every non-printable character. It does this with a statements in the form of if(c < 32 ) putchar('\'); Well, that should be something more in the style of: if(c < 32) switch(c) { case '\n': case '\t': case '\r': break; default: putchar('\'); } For people who don't have the source, complain loudly at your supplier. And yes, this has been discussed before. jaap PS. All code fragments above are from memory, and the real code will likely be different, but this is the basic idea.