home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 2 / 2351 < prev    next >
SHell self-extracting ARchive  |  1990-12-28  |  38.9 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: SHell self-extracting ARchive (archive/shar).

You can browse this item here: 2351

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert Newsgroup Content (archive/news) magic Supported
100% dexvert SHell self-extracting ARchive (archive/shar) magic Supported
100% dexvert Internet Message Format (text/imf) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file news or mail, ASCII text default
100% TrID E-Mail message (Var. 2) default
100% checkBytes Printable ASCII default
100% perlTextCheck Likely Text (Perl) default
100% siegfried fmt/329 Shell Archive Format default
100% detectItEasy Format: plain text[LF] default (weak)
100% xdgMime message/rfc822 default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 46 72 6f 6d 3a 20 6a 6a | 63 40 6a 63 6c 61 72 6b |From: jj|c@jclark|
|00000010| 2e 55 55 43 50 20 28 4a | 61 6d 65 73 20 43 6c 61 |.UUCP (J|ames Cla|
|00000020| 72 6b 29 0a 4e 65 77 73 | 67 72 6f 75 70 73 3a 20 |rk).News|groups: |
|00000030| 61 6c 74 2e 73 6f 75 72 | 63 65 73 0a 53 75 62 6a |alt.sour|ces.Subj|
|00000040| 65 63 74 3a 20 6c 70 72 | 70 73 3a 20 75 73 65 20 |ect: lpr|ps: use |
|00000050| 6c 70 72 20 77 69 74 68 | 20 61 20 50 6f 73 74 53 |lpr with| a PostS|
|00000060| 63 72 69 70 74 20 70 72 | 69 6e 74 65 72 2c 20 50 |cript pr|inter, P|
|00000070| 61 72 74 30 31 2f 30 31 | 0a 4d 65 73 73 61 67 65 |art01/01|.Message|
|00000080| 2d 49 44 3a 20 3c 4a 4a | 43 2e 39 30 44 65 63 31 |-ID: <JJ|C.90Dec1|
|00000090| 38 31 31 34 38 31 39 40 | 6a 63 6c 61 72 6b 2e 6a |8114819@|jclark.j|
|000000a0| 63 6c 61 72 6b 2e 55 55 | 43 50 3e 0a 44 61 74 65 |clark.UU|CP>.Date|
|000000b0| 3a 20 31 38 20 44 65 63 | 20 39 30 20 31 31 3a 34 |: 18 Dec| 90 11:4|
|000000c0| 38 3a 31 39 20 47 4d 54 | 0a 0a 0a 41 72 63 68 69 |8:19 GMT|...Archi|
|000000d0| 76 65 2d 6e 61 6d 65 3a | 20 6c 70 72 70 73 2d 30 |ve-name:| lprps-0|
|000000e0| 2e 31 2f 70 61 72 74 30 | 31 0a 0a 54 68 69 73 20 |.1/part0|1..This |
|000000f0| 69 73 20 6c 70 72 70 73 | 20 76 65 72 73 69 6f 6e |is lprps| version|
|00000100| 20 30 2e 31 2e 0a 0a 54 | 68 69 73 20 69 73 20 61 | 0.1...T|his is a|
|00000110| 20 63 6f 6c 6c 65 63 74 | 69 6f 6e 20 6f 66 20 70 | collect|ion of p|
|00000120| 72 6f 67 72 61 6d 73 20 | 66 6f 72 20 75 73 69 6e |rograms |for usin|
|00000130| 67 20 6c 70 72 20 77 69 | 74 68 20 61 20 50 6f 73 |g lpr wi|th a Pos|
|00000140| 74 53 63 72 69 70 74 20 | 6c 61 73 65 72 0a 70 72 |tScript |laser.pr|
|00000150| 69 6e 74 65 72 2e 20 20 | 49 20 68 61 76 65 20 75 |inter. |I have u|
|00000160| 73 65 64 20 69 74 20 66 | 6f 72 20 61 62 6f 75 74 |sed it f|or about|
|00000170| 20 61 20 79 65 61 72 20 | 6f 6e 20 61 20 53 75 6e | a year |on a Sun|
|00000180| 20 34 20 72 75 6e 6e 69 | 6e 67 20 53 75 6e 4f 53 | 4 runni|ng SunOS|
|00000190| 0a 34 2e 30 2e 33 20 77 | 69 74 68 20 61 20 51 4d |.4.0.3 w|ith a QM|
|000001a0| 53 2d 50 53 20 38 30 30 | 2b 20 70 72 69 6e 74 65 |S-PS 800|+ printe|
|000001b0| 72 2e 20 20 49 74 20 68 | 61 73 20 6e 6f 74 20 62 |r. It h|as not b|
|000001c0| 65 65 6e 20 74 65 73 74 | 65 64 20 6f 6e 20 61 6e |een test|ed on an|
|000001d0| 79 20 6f 74 68 65 72 0a | 73 79 73 74 65 6d 73 2e |y other.|systems.|
|000001e0| 0a 0a 49 74 20 63 6f 6e | 74 61 69 6e 73 20 74 68 |..It con|tains th|
|000001f0| 65 20 66 6f 6c 6c 6f 77 | 69 6e 67 20 70 72 6f 67 |e follow|ing prog|
|00000200| 72 61 6d 73 3a 0a 0a 6c | 70 72 70 73 09 68 61 6e |rams:..l|prps.han|
|00000210| 64 6c 65 73 20 63 6f 6d | 6d 75 6e 69 63 61 74 69 |dles com|municati|
|00000220| 6f 6e 20 77 69 74 68 20 | 74 68 65 20 70 72 69 6e |on with |the prin|
|00000230| 74 65 72 0a 70 73 69 66 | 09 61 6c 6c 6f 77 73 20 |ter.psif|.allows |
|00000240| 73 65 70 61 72 61 74 65 | 20 66 69 6c 74 65 72 73 |separate| filters|
|00000250| 20 74 6f 20 62 65 20 75 | 73 65 64 20 66 6f 72 20 | to be u|sed for |
|00000260| 74 65 78 74 20 61 6e 64 | 20 50 6f 73 74 53 63 72 |text and| PostScr|
|00000270| 69 70 74 0a 74 65 78 74 | 70 73 09 73 69 6d 70 6c |ipt.text|ps.simpl|
|00000280| 65 20 74 65 78 74 20 74 | 6f 20 50 6f 73 74 53 63 |e text t|o PostSc|
|00000290| 72 69 70 74 20 66 69 6c | 74 65 72 20 28 69 6e 20 |ript fil|ter (in |
|000002a0| 63 61 73 65 20 79 6f 75 | 20 64 6f 6e 27 74 20 61 |case you| don't a|
|000002b0| 6c 72 65 61 64 79 20 68 | 61 76 65 20 6f 6e 65 29 |lready h|ave one)|
|000002c0| 0a 70 73 72 65 76 09 50 | 6f 73 74 53 63 72 69 70 |.psrev.P|ostScrip|
|000002d0| 74 20 70 61 67 65 20 72 | 65 76 65 72 73 61 6c 20 |t page r|eversal |
|000002e0| 66 69 6c 74 65 72 0a 0a | 53 6f 6d 65 20 66 65 61 |filter..|Some fea|
|000002f0| 74 75 72 65 73 20 61 72 | 65 3a 0a 20 0a 2a 20 44 |tures ar|e:. .* D|
|00000300| 65 61 6c 73 20 69 6e 74 | 65 6c 6c 69 67 65 6e 74 |eals int|elligent|
|00000310| 6c 79 20 77 69 74 68 20 | 6f 75 74 70 75 74 20 67 |ly with |output g|
|00000320| 65 6e 65 72 61 74 65 64 | 20 62 79 20 74 68 65 20 |enerated| by the |
|00000330| 70 72 69 6e 74 65 72 3a | 20 70 72 69 6e 74 65 72 |printer:| printer|
|00000340| 0a 20 20 65 72 72 6f 72 | 73 20 28 73 75 63 68 20 |. error|s (such |
|00000350| 61 73 20 60 60 6f 75 74 | 20 6f 66 20 70 61 70 65 |as ``out| of pape|
|00000360| 72 27 27 29 20 61 72 65 | 20 6c 6f 67 67 65 64 20 |r'') are| logged |
|00000370| 75 73 69 6e 67 20 73 79 | 73 6c 6f 67 3b 20 6f 74 |using sy|slog; ot|
|00000380| 68 65 72 0a 20 20 65 72 | 72 6f 72 73 20 61 6e 64 |her. er|rors and|
|00000390| 20 6f 75 74 70 75 74 20 | 67 65 6e 65 72 61 74 65 | output |generate|
|000003a0| 64 20 62 79 20 74 68 65 | 20 75 73 65 72 27 73 20 |d by the| user's |
|000003b0| 6a 6f 62 20 61 72 65 20 | 6d 61 69 6c 65 64 20 62 |job are |mailed b|
|000003c0| 61 63 6b 20 74 6f 20 74 | 68 65 0a 20 20 75 73 65 |ack to t|he. use|
|000003d0| 72 2e 0a 0a 2a 20 50 65 | 72 66 6f 72 6d 73 20 70 |r...* Pe|rforms p|
|000003e0| 72 69 6e 74 65 72 20 61 | 63 63 6f 75 6e 74 69 6e |rinter a|ccountin|
|000003f0| 67 2e 0a 0a 2a 20 45 6e | 73 75 72 65 73 20 74 68 |g...* En|sures th|
|00000400| 61 74 20 74 68 65 20 70 | 72 69 6e 74 65 72 20 69 |at the p|rinter i|
|00000410| 73 20 72 65 61 64 79 20 | 74 6f 20 72 65 63 65 69 |s ready |to recei|
|00000420| 76 65 20 74 68 65 20 6a | 6f 62 2e 0a 0a 2a 20 44 |ve the j|ob...* D|
|00000430| 65 74 65 72 6d 69 6e 65 | 73 20 77 68 65 74 68 65 |etermine|s whethe|
|00000440| 72 20 66 69 6c 65 20 69 | 73 20 50 6f 73 74 53 63 |r file i|s PostSc|
|00000450| 72 69 70 74 20 6f 72 20 | 74 65 78 74 20 28 62 79 |ript or |text (by|
|00000460| 20 6c 6f 6f 6b 69 6e 67 | 20 61 74 20 74 68 65 0a | looking| at the.|
|00000470| 20 20 66 69 72 73 74 20 | 32 20 62 79 74 65 73 29 | first |2 bytes)|
|00000480| 2c 20 61 6e 64 20 75 73 | 65 73 20 74 68 65 20 61 |, and us|es the a|
|00000490| 70 70 72 6f 70 72 69 61 | 74 65 20 66 69 6c 74 65 |ppropria|te filte|
|000004a0| 72 3b 20 74 68 69 73 20 | 69 73 20 64 6f 6e 65 0a |r; this |is done.|
|000004b0| 20 20 63 6c 65 61 6e 6c | 79 20 73 6f 20 74 68 61 | cleanl|y so tha|
|000004c0| 74 20 79 6f 75 20 63 61 | 6e 20 75 73 65 20 79 6f |t you ca|n use yo|
|000004d0| 75 72 20 66 61 76 6f 75 | 72 69 74 65 20 74 65 78 |ur favou|rite tex|
|000004e0| 74 2d 74 6f 2d 50 6f 73 | 74 53 63 72 69 70 74 0a |t-to-Pos|tScript.|
|000004f0| 20 20 66 69 6c 74 65 72 | 2e 0a 0a 53 65 65 20 74 | filter|...See t|
|00000500| 68 65 20 66 69 6c 65 20 | 49 4e 53 54 41 4c 4c 20 |he file |INSTALL |
|00000510| 66 6f 72 20 69 6e 73 74 | 61 6c 6c 61 74 69 6f 6e |for inst|allation|
|00000520| 20 69 6e 66 6f 72 6d 61 | 74 69 6f 6e 2e 0a 0a 54 | informa|tion...T|
|00000530| 68 65 72 65 20 61 72 65 | 6e 27 74 20 61 6e 79 20 |here are|n't any |
|00000540| 6d 61 6e 20 70 61 67 65 | 73 2e 0a 0a 54 68 65 72 |man page|s...Ther|
|00000550| 65 20 69 73 20 6e 6f 20 | 63 6f 70 79 72 69 67 68 |e is no |copyrigh|
|00000560| 74 20 6f 6e 20 6c 70 72 | 70 73 2e 0a 0a 49 20 77 |t on lpr|ps...I w|
|00000570| 6f 75 6c 64 20 61 70 70 | 72 65 63 69 61 74 65 20 |ould app|reciate |
|00000580| 68 65 61 72 69 6e 67 20 | 61 62 6f 75 74 20 61 6e |hearing |about an|
|00000590| 79 20 69 6d 70 72 6f 76 | 65 6d 65 6e 74 73 20 74 |y improv|ements t|
|000005a0| 68 61 74 20 79 6f 75 20 | 6d 61 6b 65 20 74 6f 0a |hat you |make to.|
|000005b0| 6c 70 72 70 73 2e 0a 0a | 4a 61 6d 65 73 20 43 6c |lprps...|James Cl|
|000005c0| 61 72 6b 0a 6a 6a 63 40 | 6a 63 6c 61 72 6b 2e 75 |ark.jjc@|jclark.u|
|000005d0| 75 63 70 0a 6a 6a 63 25 | 6a 63 6c 61 72 6b 40 72 |ucp.jjc%|jclark@r|
|000005e0| 65 6c 61 79 2e 65 75 2e | 6e 65 74 0a 0a 23 21 20 |elay.eu.|net..#! |
|000005f0| 2f 62 69 6e 2f 73 68 0a | 23 20 54 68 69 73 20 69 |/bin/sh.|# This i|
|00000600| 73 20 61 20 73 68 65 6c | 6c 20 61 72 63 68 69 76 |s a shel|l archiv|
|00000610| 65 2e 20 20 52 65 6d 6f | 76 65 20 61 6e 79 74 68 |e. Remo|ve anyth|
|00000620| 69 6e 67 20 62 65 66 6f | 72 65 20 74 68 69 73 20 |ing befo|re this |
|00000630| 6c 69 6e 65 2c 20 74 68 | 65 6e 20 75 6e 70 61 63 |line, th|en unpac|
|00000640| 6b 0a 23 20 69 74 20 62 | 79 20 73 61 76 69 6e 67 |k.# it b|y saving|
|00000650| 20 69 74 20 69 6e 74 6f | 20 61 20 66 69 6c 65 20 | it into| a file |
|00000660| 61 6e 64 20 74 79 70 69 | 6e 67 20 22 73 68 20 66 |and typi|ng "sh f|
|00000670| 69 6c 65 22 2e 20 20 54 | 6f 20 6f 76 65 72 77 72 |ile". T|o overwr|
|00000680| 69 74 65 20 65 78 69 73 | 74 69 6e 67 0a 23 20 66 |ite exis|ting.# f|
|00000690| 69 6c 65 73 2c 20 74 79 | 70 65 20 22 73 68 20 66 |iles, ty|pe "sh f|
|000006a0| 69 6c 65 20 2d 63 22 2e | 20 20 59 6f 75 20 63 61 |ile -c".| You ca|
|000006b0| 6e 20 61 6c 73 6f 20 66 | 65 65 64 20 74 68 69 73 |n also f|eed this|
|000006c0| 20 61 73 20 73 74 61 6e | 64 61 72 64 20 69 6e 70 | as stan|dard inp|
|000006d0| 75 74 20 76 69 61 0a 23 | 20 75 6e 73 68 61 72 2c |ut via.#| unshar,|
|000006e0| 20 6f 72 20 62 79 20 74 | 79 70 69 6e 67 20 22 73 | or by t|yping "s|
|000006f0| 68 20 3c 66 69 6c 65 22 | 2c 20 65 2e 67 2e 2e 20 |h <file"|, e.g.. |
|00000700| 20 49 66 20 74 68 69 73 | 20 61 72 63 68 69 76 65 | If this| archive|
|00000710| 20 69 73 20 63 6f 6d 70 | 6c 65 74 65 2c 20 79 6f | is comp|lete, yo|
|00000720| 75 0a 23 20 77 69 6c 6c | 20 73 65 65 20 74 68 65 |u.# will| see the|
|00000730| 20 66 6f 6c 6c 6f 77 69 | 6e 67 20 6d 65 73 73 61 | followi|ng messa|
|00000740| 67 65 20 61 74 20 74 68 | 65 20 65 6e 64 3a 0a 23 |ge at th|e end:.#|
|00000750| 09 09 22 45 6e 64 20 6f | 66 20 73 68 65 6c 6c 20 |.."End o|f shell |
|00000760| 61 72 63 68 69 76 65 2e | 22 0a 23 20 43 6f 6e 74 |archive.|".# Cont|
|00000770| 65 6e 74 73 3a 20 20 52 | 45 41 44 4d 45 20 49 4e |ents: R|EADME IN|
|00000780| 53 54 41 4c 4c 20 4d 61 | 6b 65 66 69 6c 65 20 70 |STALL Ma|kefile p|
|00000790| 73 72 65 76 2e 63 20 6c | 70 72 70 73 2e 63 20 70 |srev.c l|prps.c p|
|000007a0| 73 69 66 2e 63 20 74 65 | 78 74 70 73 2e 63 0a 23 |sif.c te|xtps.c.#|
|000007b0| 20 57 72 61 70 70 65 64 | 20 62 79 20 6a 6a 63 40 | Wrapped| by jjc@|
|000007c0| 6a 63 6c 61 72 6b 20 6f | 6e 20 54 75 65 20 44 65 |jclark o|n Tue De|
|000007d0| 63 20 31 38 20 31 31 3a | 33 38 3a 35 39 20 31 39 |c 18 11:|38:59 19|
|000007e0| 39 30 0a 50 41 54 48 3d | 2f 62 69 6e 3a 2f 75 73 |90.PATH=|/bin:/us|
|000007f0| 72 2f 62 69 6e 3a 2f 75 | 73 72 2f 75 63 62 20 3b |r/bin:/u|sr/ucb ;|
|00000800| 20 65 78 70 6f 72 74 20 | 50 41 54 48 0a 69 66 20 | export |PATH.if |
|00000810| 74 65 73 74 20 2d 66 20 | 27 52 45 41 44 4d 45 27 |test -f |'README'|
|00000820| 20 2d 61 20 22 24 7b 31 | 7d 22 20 21 3d 20 22 2d | -a "${1|}" != "-|
|00000830| 63 22 20 3b 20 74 68 65 | 6e 20 0a 20 20 65 63 68 |c" ; the|n . ech|
|00000840| 6f 20 73 68 61 72 3a 20 | 57 69 6c 6c 20 6e 6f 74 |o shar: |Will not|
|00000850| 20 63 6c 6f 62 62 65 72 | 20 65 78 69 73 74 69 6e | clobber| existin|
|00000860| 67 20 66 69 6c 65 20 5c | 22 27 52 45 41 44 4d 45 |g file \|"'README|
|00000870| 27 5c 22 0a 65 6c 73 65 | 0a 65 63 68 6f 20 73 68 |'\".else|.echo sh|
|00000880| 61 72 3a 20 45 78 74 72 | 61 63 74 69 6e 67 20 5c |ar: Extr|acting \|
|00000890| 22 27 52 45 41 44 4d 45 | 27 5c 22 20 5c 28 31 33 |"'README|'\" \(13|
|000008a0| 35 31 20 63 68 61 72 61 | 63 74 65 72 73 5c 29 0a |51 chara|cters\).|
|000008b0| 73 65 64 20 22 73 2f 5e | 58 2f 2f 22 20 3e 27 52 |sed "s/^|X//" >'R|
|000008c0| 45 41 44 4d 45 27 20 3c | 3c 27 45 4e 44 5f 4f 46 |EADME' <|<'END_OF|
|000008d0| 5f 46 49 4c 45 27 0a 58 | 54 68 69 73 20 69 73 20 |_FILE'.X|This is |
|000008e0| 6c 70 72 70 73 20 76 65 | 72 73 69 6f 6e 20 30 2e |lprps ve|rsion 0.|
|000008f0| 31 2e 0a 58 0a 58 54 68 | 69 73 20 69 73 20 61 20 |1..X.XTh|is is a |
|00000900| 63 6f 6c 6c 65 63 74 69 | 6f 6e 20 6f 66 20 70 72 |collecti|on of pr|
|00000910| 6f 67 72 61 6d 73 20 66 | 6f 72 20 75 73 69 6e 67 |ograms f|or using|
|00000920| 20 6c 70 72 20 77 69 74 | 68 20 61 20 50 6f 73 74 | lpr wit|h a Post|
|00000930| 53 63 72 69 70 74 20 6c | 61 73 65 72 0a 58 70 72 |Script l|aser.Xpr|
|00000940| 69 6e 74 65 72 2e 20 20 | 49 20 68 61 76 65 20 75 |inter. |I have u|
|00000950| 73 65 64 20 69 74 20 66 | 6f 72 20 61 62 6f 75 74 |sed it f|or about|
|00000960| 20 61 20 79 65 61 72 20 | 6f 6e 20 61 20 53 75 6e | a year |on a Sun|
|00000970| 20 34 20 72 75 6e 6e 69 | 6e 67 20 53 75 6e 4f 53 | 4 runni|ng SunOS|
|00000980| 0a 58 34 2e 30 2e 33 20 | 77 69 74 68 20 61 20 51 |.X4.0.3 |with a Q|
|00000990| 4d 53 2d 50 53 20 38 30 | 30 2b 20 70 72 69 6e 74 |MS-PS 80|0+ print|
|000009a0| 65 72 2e 20 20 49 74 20 | 68 61 73 20 6e 6f 74 20 |er. It |has not |
|000009b0| 62 65 65 6e 20 74 65 73 | 74 65 64 20 6f 6e 20 61 |been tes|ted on a|
|000009c0| 6e 79 20 6f 74 68 65 72 | 0a 58 73 79 73 74 65 6d |ny other|.Xsystem|
|000009d0| 73 2e 0a 58 0a 58 49 74 | 20 63 6f 6e 74 61 69 6e |s..X.XIt| contain|
|000009e0| 73 20 74 68 65 20 66 6f | 6c 6c 6f 77 69 6e 67 20 |s the fo|llowing |
|000009f0| 70 72 6f 67 72 61 6d 73 | 3a 0a 58 0a 58 6c 70 72 |programs|:.X.Xlpr|
|00000a00| 70 73 09 68 61 6e 64 6c | 65 73 20 63 6f 6d 6d 75 |ps.handl|es commu|
|00000a10| 6e 69 63 61 74 69 6f 6e | 20 77 69 74 68 20 74 68 |nication| with th|
|00000a20| 65 20 70 72 69 6e 74 65 | 72 0a 58 70 73 69 66 09 |e printe|r.Xpsif.|
|00000a30| 61 6c 6c 6f 77 73 20 73 | 65 70 61 72 61 74 65 20 |allows s|eparate |
|00000a40| 66 69 6c 74 65 72 73 20 | 74 6f 20 62 65 20 75 73 |filters |to be us|
|00000a50| 65 64 20 66 6f 72 20 74 | 65 78 74 20 61 6e 64 20 |ed for t|ext and |
|00000a60| 50 6f 73 74 53 63 72 69 | 70 74 0a 58 74 65 78 74 |PostScri|pt.Xtext|
|00000a70| 70 73 09 73 69 6d 70 6c | 65 20 74 65 78 74 20 74 |ps.simpl|e text t|
|00000a80| 6f 20 50 6f 73 74 53 63 | 72 69 70 74 20 66 69 6c |o PostSc|ript fil|
|00000a90| 74 65 72 20 28 69 6e 20 | 63 61 73 65 20 79 6f 75 |ter (in |case you|
|00000aa0| 20 64 6f 6e 27 74 20 61 | 6c 72 65 61 64 79 20 68 | don't a|lready h|
|00000ab0| 61 76 65 20 6f 6e 65 29 | 0a 58 70 73 72 65 76 09 |ave one)|.Xpsrev.|
|00000ac0| 50 6f 73 74 53 63 72 69 | 70 74 20 70 61 67 65 20 |PostScri|pt page |
|00000ad0| 72 65 76 65 72 73 61 6c | 20 66 69 6c 74 65 72 0a |reversal| filter.|
|00000ae0| 58 0a 58 53 6f 6d 65 20 | 66 65 61 74 75 72 65 73 |X.XSome |features|
|00000af0| 20 61 72 65 3a 0a 58 20 | 0a 58 2a 20 44 65 61 6c | are:.X |.X* Deal|
|00000b00| 73 20 69 6e 74 65 6c 6c | 69 67 65 6e 74 6c 79 20 |s intell|igently |
|00000b10| 77 69 74 68 20 6f 75 74 | 70 75 74 20 67 65 6e 65 |with out|put gene|
|00000b20| 72 61 74 65 64 20 62 79 | 20 74 68 65 20 70 72 69 |rated by| the pri|
|00000b30| 6e 74 65 72 3a 20 70 72 | 69 6e 74 65 72 0a 58 20 |nter: pr|inter.X |
|00000b40| 20 65 72 72 6f 72 73 20 | 28 73 75 63 68 20 61 73 | errors |(such as|
|00000b50| 20 60 60 6f 75 74 20 6f | 66 20 70 61 70 65 72 27 | ``out o|f paper'|
|00000b60| 27 29 20 61 72 65 20 6c | 6f 67 67 65 64 20 75 73 |') are l|ogged us|
|00000b70| 69 6e 67 20 73 79 73 6c | 6f 67 3b 20 6f 74 68 65 |ing sysl|og; othe|
|00000b80| 72 0a 58 20 20 65 72 72 | 6f 72 73 20 61 6e 64 20 |r.X err|ors and |
|00000b90| 6f 75 74 70 75 74 20 67 | 65 6e 65 72 61 74 65 64 |output g|enerated|
|00000ba0| 20 62 79 20 74 68 65 20 | 75 73 65 72 27 73 20 6a | by the |user's j|
|00000bb0| 6f 62 20 61 72 65 20 6d | 61 69 6c 65 64 20 62 61 |ob are m|ailed ba|
|00000bc0| 63 6b 20 74 6f 20 74 68 | 65 0a 58 20 20 75 73 65 |ck to th|e.X use|
|00000bd0| 72 2e 0a 58 0a 58 2a 20 | 50 65 72 66 6f 72 6d 73 |r..X.X* |Performs|
|00000be0| 20 70 72 69 6e 74 65 72 | 20 61 63 63 6f 75 6e 74 | printer| account|
|00000bf0| 69 6e 67 2e 0a 58 0a 58 | 2a 20 45 6e 73 75 72 65 |ing..X.X|* Ensure|
|00000c00| 73 20 74 68 61 74 20 74 | 68 65 20 70 72 69 6e 74 |s that t|he print|
|00000c10| 65 72 20 69 73 20 72 65 | 61 64 79 20 74 6f 20 72 |er is re|ady to r|
|00000c20| 65 63 65 69 76 65 20 74 | 68 65 20 6a 6f 62 2e 0a |eceive t|he job..|
|00000c30| 58 0a 58 2a 20 44 65 74 | 65 72 6d 69 6e 65 73 20 |X.X* Det|ermines |
|00000c40| 77 68 65 74 68 65 72 20 | 66 69 6c 65 20 69 73 20 |whether |file is |
|00000c50| 50 6f 73 74 53 63 72 69 | 70 74 20 6f 72 20 74 65 |PostScri|pt or te|
|00000c60| 78 74 20 28 62 79 20 6c | 6f 6f 6b 69 6e 67 20 61 |xt (by l|ooking a|
|00000c70| 74 20 74 68 65 0a 58 20 | 20 66 69 72 73 74 20 32 |t the.X | first 2|
|00000c80| 20 62 79 74 65 73 29 2c | 20 61 6e 64 20 75 73 65 | bytes),| and use|
|00000c90| 73 20 74 68 65 20 61 70 | 70 72 6f 70 72 69 61 74 |s the ap|propriat|
|00000ca0| 65 20 66 69 6c 74 65 72 | 3b 20 74 68 69 73 20 69 |e filter|; this i|
|00000cb0| 73 20 64 6f 6e 65 0a 58 | 20 20 63 6c 65 61 6e 6c |s done.X| cleanl|
|00000cc0| 79 20 73 6f 20 74 68 61 | 74 20 79 6f 75 20 63 61 |y so tha|t you ca|
|00000cd0| 6e 20 75 73 65 20 79 6f | 75 72 20 66 61 76 6f 75 |n use yo|ur favou|
|00000ce0| 72 69 74 65 20 74 65 78 | 74 2d 74 6f 2d 50 6f 73 |rite tex|t-to-Pos|
|00000cf0| 74 53 63 72 69 70 74 0a | 58 20 20 66 69 6c 74 65 |tScript.|X filte|
|00000d00| 72 2e 0a 58 0a 58 53 65 | 65 20 74 68 65 20 66 69 |r..X.XSe|e the fi|
|00000d10| 6c 65 20 49 4e 53 54 41 | 4c 4c 20 66 6f 72 20 69 |le INSTA|LL for i|
|00000d20| 6e 73 74 61 6c 6c 61 74 | 69 6f 6e 20 69 6e 66 6f |nstallat|ion info|
|00000d30| 72 6d 61 74 69 6f 6e 2e | 0a 58 0a 58 54 68 65 72 |rmation.|.X.XTher|
|00000d40| 65 20 61 72 65 6e 27 74 | 20 61 6e 79 20 6d 61 6e |e aren't| any man|
|00000d50| 20 70 61 67 65 73 2e 0a | 58 0a 58 54 68 65 72 65 | pages..|X.XThere|
|00000d60| 20 69 73 20 6e 6f 20 63 | 6f 70 79 72 69 67 68 74 | is no c|opyright|
|00000d70| 20 6f 6e 20 6c 70 72 70 | 73 2e 0a 58 0a 58 49 20 | on lprp|s..X.XI |
|00000d80| 77 6f 75 6c 64 20 61 70 | 70 72 65 63 69 61 74 65 |would ap|preciate|
|00000d90| 20 68 65 61 72 69 6e 67 | 20 61 62 6f 75 74 20 61 | hearing| about a|
|00000da0| 6e 79 20 69 6d 70 72 6f | 76 65 6d 65 6e 74 73 20 |ny impro|vements |
|00000db0| 74 68 61 74 20 79 6f 75 | 20 6d 61 6b 65 20 74 6f |that you| make to|
|00000dc0| 0a 58 6c 70 72 70 73 2e | 0a 58 0a 58 4a 61 6d 65 |.Xlprps.|.X.XJame|
|00000dd0| 73 20 43 6c 61 72 6b 0a | 58 6a 6a 63 40 6a 63 6c |s Clark.|Xjjc@jcl|
|00000de0| 61 72 6b 2e 75 75 63 70 | 0a 58 6a 6a 63 25 6a 63 |ark.uucp|.Xjjc%jc|
|00000df0| 6c 61 72 6b 40 72 65 6c | 61 79 2e 65 75 2e 6e 65 |lark@rel|ay.eu.ne|
|00000e00| 74 0a 58 0a 58 24 48 65 | 61 64 65 72 3a 20 2f 75 |t.X.X$He|ader: /u|
|00000e10| 73 72 2f 6a 6a 63 2f 6c | 70 72 70 73 2f 52 43 53 |sr/jjc/l|prps/RCS|
|00000e20| 2f 52 45 41 44 4d 45 2c | 76 20 31 2e 33 20 39 30 |/README,|v 1.3 90|
|00000e30| 2f 31 32 2f 31 38 20 31 | 31 3a 31 33 3a 34 39 20 |/12/18 1|1:13:49 |
|00000e40| 6a 6a 63 20 52 65 6c 20 | 24 0a 45 4e 44 5f 4f 46 |jjc Rel |$.END_OF|
|00000e50| 5f 46 49 4c 45 0a 69 66 | 20 74 65 73 74 20 31 33 |_FILE.if| test 13|
|00000e60| 35 31 20 2d 6e 65 20 60 | 77 63 20 2d 63 20 3c 27 |51 -ne `|wc -c <'|
|00000e70| 52 45 41 44 4d 45 27 60 | 3b 20 74 68 65 6e 0a 20 |README'`|; then. |
|00000e80| 20 20 20 65 63 68 6f 20 | 73 68 61 72 3a 20 5c 22 | echo |shar: \"|
|00000e90| 27 52 45 41 44 4d 45 27 | 5c 22 20 75 6e 70 61 63 |'README'|\" unpac|
|00000ea0| 6b 65 64 20 77 69 74 68 | 20 77 72 6f 6e 67 20 73 |ked with| wrong s|
|00000eb0| 69 7a 65 21 0a 66 69 0a | 23 20 65 6e 64 20 6f 66 |ize!.fi.|# end of|
|00000ec0| 20 27 52 45 41 44 4d 45 | 27 0a 66 69 0a 69 66 20 | 'README|'.fi.if |
|00000ed0| 74 65 73 74 20 2d 66 20 | 27 49 4e 53 54 41 4c 4c |test -f |'INSTALL|
|00000ee0| 27 20 2d 61 20 22 24 7b | 31 7d 22 20 21 3d 20 22 |' -a "${|1}" != "|
|00000ef0| 2d 63 22 20 3b 20 74 68 | 65 6e 20 0a 20 20 65 63 |-c" ; th|en . ec|
|00000f00| 68 6f 20 73 68 61 72 3a | 20 57 69 6c 6c 20 6e 6f |ho shar:| Will no|
|00000f10| 74 20 63 6c 6f 62 62 65 | 72 20 65 78 69 73 74 69 |t clobbe|r existi|
|00000f20| 6e 67 20 66 69 6c 65 20 | 5c 22 27 49 4e 53 54 41 |ng file |\"'INSTA|
|00000f30| 4c 4c 27 5c 22 0a 65 6c | 73 65 0a 65 63 68 6f 20 |LL'\".el|se.echo |
|00000f40| 73 68 61 72 3a 20 45 78 | 74 72 61 63 74 69 6e 67 |shar: Ex|tracting|
|00000f50| 20 5c 22 27 49 4e 53 54 | 41 4c 4c 27 5c 22 20 5c | \"'INST|ALL'\" \|
|00000f60| 28 32 37 34 32 20 63 68 | 61 72 61 63 74 65 72 73 |(2742 ch|aracters|
|00000f70| 5c 29 0a 73 65 64 20 22 | 73 2f 5e 58 2f 2f 22 20 |\).sed "|s/^X//" |
|00000f80| 3e 27 49 4e 53 54 41 4c | 4c 27 20 3c 3c 27 45 4e |>'INSTAL|L' <<'EN|
|00000f90| 44 5f 4f 46 5f 46 49 4c | 45 27 0a 58 59 6f 75 20 |D_OF_FIL|E'.XYou |
|00000fa0| 77 69 6c 6c 20 6e 65 65 | 64 20 74 6f 20 65 64 69 |will nee|d to edi|
|00000fb0| 74 20 74 68 65 20 4d 61 | 6b 65 66 69 6c 65 2e 20 |t the Ma|kefile. |
|00000fc0| 54 68 65 20 63 6f 6d 6d | 65 6e 74 73 20 73 68 6f |The comm|ents sho|
|00000fd0| 75 6c 64 20 6d 61 6b 65 | 20 69 74 20 63 6c 65 61 |uld make| it clea|
|00000fe0| 72 0a 58 77 68 61 74 20 | 6e 65 65 64 73 20 63 68 |r.Xwhat |needs ch|
|00000ff0| 61 6e 67 69 6e 67 2e 20 | 44 6f 20 61 20 6d 61 6b |anging. |Do a mak|
|00001000| 65 3b 20 74 68 65 6e 20 | 64 6f 20 61 20 6d 61 6b |e; then |do a mak|
|00001010| 65 20 69 6e 73 74 61 6c | 6c 20 61 73 20 72 6f 6f |e instal|l as roo|
|00001020| 74 2e 0a 58 0a 58 59 6f | 75 20 6e 65 65 64 20 74 |t..X.XYo|u need t|
|00001030| 6f 20 64 65 63 69 64 65 | 20 77 68 61 74 20 62 61 |o decide| what ba|
|00001040| 75 64 20 72 61 74 65 20 | 79 6f 75 20 61 72 65 20 |ud rate |you are |
|00001050| 67 6f 69 6e 67 20 74 6f | 20 75 73 65 2e 20 49 66 |going to| use. If|
|00001060| 20 79 6f 75 20 68 61 76 | 65 20 61 0a 58 76 65 72 | you hav|e a.Xver|
|00001070| 79 20 6f 6c 64 20 4c 61 | 73 65 72 77 72 69 74 65 |y old La|serwrite|
|00001080| 72 20 28 6e 6f 74 20 61 | 20 70 6c 75 73 29 2c 20 |r (not a| plus), |
|00001090| 79 6f 75 20 77 69 6c 6c | 20 68 61 76 65 20 74 6f |you will| have to|
|000010a0| 20 75 73 65 20 39 36 30 | 30 3b 0a 58 6f 74 68 65 | use 960|0;.Xothe|
|000010b0| 72 77 69 73 65 20 79 6f | 75 20 73 68 6f 75 6c 64 |rwise yo|u should|
|000010c0| 20 62 65 20 61 62 6c 65 | 20 74 6f 20 75 73 65 20 | be able| to use |
|000010d0| 33 38 34 30 30 2e 0a 58 | 0a 58 59 6f 75 20 6e 65 |38400..X|.XYou ne|
|000010e0| 65 64 20 74 6f 20 61 64 | 64 20 61 6e 20 65 6e 74 |ed to ad|d an ent|
|000010f0| 72 79 20 69 6e 20 2f 65 | 74 63 2f 70 72 69 6e 74 |ry in /e|tc/print|
|00001100| 63 61 70 2e 20 20 48 65 | 72 65 27 73 20 74 68 65 |cap. He|re's the|
|00001110| 20 65 6e 74 72 79 20 49 | 20 75 73 65 3a 0a 58 0a | entry I| use:.X.|
|00001120| 58 6c 70 7c 70 73 3a 5c | 0a 58 09 3a 62 72 23 33 |Xlp|ps:\|.X.:br#3|
|00001130| 38 34 30 30 3a 6c 70 3d | 2f 64 65 76 2f 74 74 79 |8400:lp=|/dev/tty|
|00001140| 61 3a 6d 78 23 30 3a 73 | 66 3a 73 68 3a 72 77 3a |a:mx#0:s|f:sh:rw:|
|00001150| 5c 0a 58 09 3a 66 63 23 | 30 31 37 37 37 37 37 3a |\.X.:fc#|0177777:|
|00001160| 66 73 23 30 30 33 3a 6d | 73 3d 2d 69 73 69 67 2c |fs#003:m|s=-isig,|
|00001170| 69 67 6e 63 72 2c 63 73 | 74 6f 70 62 2c 2d 65 63 |igncr,cs|topb,-ec|
|00001180| 68 6f 6b 3a 5c 0a 58 09 | 3a 61 66 3d 2f 75 73 72 |hok:\.X.|:af=/usr|
|00001190| 2f 61 64 6d 2f 70 73 61 | 63 63 74 3a 6c 66 3d 2f |/adm/psa|cct:lf=/|
|000011a0| 75 73 72 2f 61 64 6d 2f | 70 73 6c 6f 67 3a 73 64 |usr/adm/|pslog:sd|
|000011b0| 3d 2f 75 73 72 2f 73 70 | 6f 6f 6c 2f 70 73 6c 70 |=/usr/sp|ool/pslp|
|000011c0| 64 3a 5c 0a 58 09 3a 69 | 66 3d 2f 75 73 72 2f 6c |d:\.X.:i|f=/usr/l|
|000011d0| 6f 63 61 6c 2f 6c 69 62 | 2f 70 73 69 66 3a 0a 58 |ocal/lib|/psif:.X|
|000011e0| 0a 58 54 68 69 73 20 65 | 6e 74 72 79 20 77 6f 75 |.XThis e|ntry wou|
|000011f0| 6c 64 20 62 65 20 61 70 | 70 72 6f 70 72 69 61 74 |ld be ap|propriat|
|00001200| 65 20 69 66 20 79 6f 75 | 20 77 65 72 65 20 75 73 |e if you| were us|
|00001210| 69 6e 67 20 2f 64 65 76 | 2f 74 74 79 61 20 61 6e |ing /dev|/ttya an|
|00001220| 64 20 61 20 62 61 75 64 | 0a 58 72 61 74 65 20 6f |d a baud|.Xrate o|
|00001230| 66 20 33 38 34 30 30 2e | 20 20 59 6f 75 20 6e 65 |f 38400.| You ne|
|00001240| 65 64 20 74 6f 20 63 72 | 65 61 74 65 20 74 68 65 |ed to cr|eate the|
|00001250| 20 73 70 6f 6f 6c 20 64 | 69 72 65 63 74 6f 72 79 | spool d|irectory|
|00001260| 0a 58 28 2f 75 73 72 2f | 73 70 6f 6f 6c 2f 70 73 |.X(/usr/|spool/ps|
|00001270| 6c 70 64 29 2c 20 74 68 | 65 20 61 63 63 6f 75 6e |lpd), th|e accoun|
|00001280| 74 69 6e 67 20 66 69 6c | 65 20 28 2f 75 73 72 2f |ting fil|e (/usr/|
|00001290| 61 64 6d 2f 70 73 61 63 | 63 74 29 2c 20 61 6e 64 |adm/psac|ct), and|
|000012a0| 20 74 68 65 20 6c 6f 67 | 0a 58 66 69 6c 65 20 28 | the log|.Xfile (|
|000012b0| 2f 75 73 72 2f 61 64 6d | 2f 70 73 6c 6f 67 29 2e |/usr/adm|/pslog).|
|000012c0| 20 20 54 68 65 20 73 70 | 6f 6f 6c 20 64 69 72 65 | The sp|ool dire|
|000012d0| 63 74 6f 72 79 20 61 6e | 64 20 74 68 65 20 61 63 |ctory an|d the ac|
|000012e0| 63 6f 75 6e 74 69 6e 67 | 20 66 69 6c 65 0a 58 73 |counting| file.Xs|
|000012f0| 68 6f 75 6c 64 20 62 65 | 20 6f 77 6e 65 64 20 62 |hould be| owned b|
|00001300| 79 20 64 61 65 6d 6f 6e | 2c 20 74 68 65 20 6c 6f |y daemon|, the lo|
|00001310| 67 20 66 69 6c 65 20 62 | 79 20 72 6f 6f 74 2e 20 |g file b|y root. |
|00001320| 59 6f 75 20 63 61 6e 20 | 75 73 65 20 6f 74 68 65 |You can |use othe|
|00001330| 72 0a 58 6e 61 6d 65 73 | 20 69 66 20 79 6f 75 20 |r.Xnames| if you |
|00001340| 77 61 6e 74 2e 20 20 49 | 20 62 65 6c 69 65 76 65 |want. I| believe|
|00001350| 20 74 68 65 20 60 6d 73 | 27 20 63 61 70 61 62 61 | the `ms|' capaba|
|00001360| 62 69 6c 69 74 79 20 69 | 73 20 61 20 53 75 6e 0a |bility i|s a Sun.|
|00001370| 58 65 78 74 65 6e 73 69 | 6f 6e 2c 20 73 6f 20 69 |Xextensi|on, so i|
|00001380| 66 20 79 6f 75 27 72 65 | 20 6e 6f 74 20 75 73 69 |f you're| not usi|
|00001390| 6e 67 20 61 20 53 75 6e | 20 79 6f 75 27 6c 6c 20 |ng a Sun| you'll |
|000013a0| 68 61 76 65 20 74 6f 20 | 72 65 6d 6f 76 65 20 69 |have to |remove i|
|000013b0| 74 2e 0a 58 0a 58 59 6f | 75 20 63 61 6e 20 61 64 |t..X.XYo|u can ad|
|000013c0| 64 20 65 61 73 69 6c 79 | 20 61 64 64 20 6f 74 68 |d easily| add oth|
|000013d0| 65 72 20 66 69 6c 74 65 | 72 73 2e 20 46 6f 72 20 |er filte|rs. For |
|000013e0| 65 78 61 6d 70 6c 65 2c | 20 73 75 70 70 6f 73 65 |example,| suppose|
|000013f0| 20 79 6f 75 0a 58 77 61 | 6e 74 20 74 6f 20 61 64 | you.Xwa|nt to ad|
|00001400| 64 20 61 20 66 69 6c 74 | 65 72 20 66 6f 72 20 64 |d a filt|er for d|
|00001410| 76 69 20 66 69 6c 65 73 | 2e 20 54 68 65 6e 20 61 |vi files|. Then a|
|00001420| 64 64 20 61 6e 20 65 6e | 74 72 79 20 74 6f 20 2f |dd an en|try to /|
|00001430| 65 74 63 2f 70 72 69 6e | 74 63 61 70 3a 0a 58 0a |etc/prin|tcap:.X.|
|00001440| 58 20 20 3a 64 66 3d 2f | 75 73 72 2f 6c 6f 63 61 |X :df=/|usr/loca|
|00001450| 6c 2f 6c 69 62 2f 70 73 | 64 66 3a 0a 58 0a 58 54 |l/lib/ps|df:.X.XT|
|00001460| 68 65 6e 20 63 72 65 61 | 74 65 20 61 20 73 68 65 |hen crea|te a she|
|00001470| 6c 6c 20 73 63 72 69 70 | 74 20 2f 75 73 72 2f 6c |ll scrip|t /usr/l|
|00001480| 6f 63 61 6c 2f 6c 69 62 | 2f 70 73 64 66 0a 58 0a |ocal/lib|/psdf.X.|
|00001490| 58 23 21 2f 62 69 6e 2f | 73 68 0a 58 2f 75 73 72 |X#!/bin/|sh.X/usr|
|000014a0| 2f 6c 6f 63 61 6c 2f 62 | 69 6e 2f 64 76 69 74 6f |/local/b|in/dvito|
|000014b0| 70 73 20 7c 20 2f 75 73 | 72 2f 6c 6f 63 61 6c 2f |ps | /us|r/local/|
|000014c0| 6c 69 62 2f 6c 70 72 70 | 73 20 24 2a 0a 58 0a 58 |lib/lprp|s $*.X.X|
|000014d0| 52 65 70 6c 61 63 65 20 | 60 2f 75 73 72 2f 6c 6f |Replace |`/usr/lo|
|000014e0| 63 61 6c 2f 62 69 6e 2f | 64 76 69 74 6f 70 73 27 |cal/bin/|dvitops'|
|000014f0| 20 62 79 20 74 68 65 20 | 6e 61 6d 65 20 6f 66 20 | by the |name of |
|00001500| 79 6f 75 72 20 66 61 76 | 6f 75 72 69 74 65 20 64 |your fav|ourite d|
|00001510| 76 69 20 74 6f 0a 58 70 | 73 20 70 72 6f 67 72 61 |vi to.Xp|s progra|
|00001520| 6d 20 28 69 74 20 6d 75 | 73 74 20 62 65 20 61 62 |m (it mu|st be ab|
|00001530| 6c 65 20 74 6f 20 72 65 | 61 64 20 66 72 6f 6d 20 |le to re|ad from |
|00001540| 74 68 65 20 73 74 61 6e | 64 61 72 64 20 69 6e 70 |the stan|dard inp|
|00001550| 75 74 29 2e 20 54 68 65 | 6e 20 79 6f 75 0a 58 63 |ut). The|n you.Xc|
|00001560| 61 6e 20 70 72 69 6e 74 | 20 64 76 69 20 66 69 6c |an print| dvi fil|
|00001570| 65 73 20 77 69 74 68 20 | 60 6c 70 72 20 2d 64 27 |es with |`lpr -d'|
|00001580| 2e 0a 58 0a 58 59 6f 75 | 20 6d 75 73 74 20 61 6c |..X.XYou| must al|
|00001590| 73 6f 20 73 65 74 20 74 | 68 65 20 70 72 69 6e 74 |so set t|he print|
|000015a0| 65 72 27 73 20 63 6f 6d | 6d 75 6e 69 63 61 74 69 |er's com|municati|
|000015b0| 6f 6e 20 70 61 72 61 6d | 65 74 65 72 73 2e 20 4d |on param|eters. M|
|000015c0| 61 6b 65 20 73 75 72 65 | 0a 58 79 6f 75 20 68 61 |ake sure|.Xyou ha|
|000015d0| 76 65 20 61 6e 20 65 6e | 74 72 79 20 6c 69 6b 65 |ve an en|try like|
|000015e0| 20 74 68 69 73 20 69 6e | 20 2f 65 74 63 2f 72 65 | this in| /etc/re|
|000015f0| 6d 6f 74 65 3a 0a 58 0a | 58 20 20 74 74 79 61 3a |mote:.X.|X ttya:|
|00001600| 64 76 3d 2f 64 65 76 2f | 74 74 79 61 3a 62 72 23 |dv=/dev/|ttya:br#|
|00001610| 31 32 30 30 3a 65 6c 3d | 5e 44 3a 0a 58 0a 58 53 |1200:el=|^D:.X.XS|
|00001620| 65 74 20 74 68 65 20 73 | 77 69 74 63 68 20 6f 6e |et the s|witch on|
|00001630| 20 79 6f 75 72 20 70 72 | 69 6e 74 65 72 20 74 6f | your pr|inter to|
|00001640| 20 70 6f 73 69 74 69 6f | 6e 20 6c 61 62 65 6c 6c | positio|n labell|
|00001650| 65 64 20 31 32 30 30 20 | 6f 72 20 30 2e 20 54 68 |ed 1200 |or 0. Th|
|00001660| 65 6e 20 0a 58 0a 58 20 | 20 74 69 70 20 74 74 79 |en .X.X | tip tty|
|00001670| 61 0a 58 0a 58 28 2a 29 | 4e 6f 77 20 63 61 72 65 |a.X.X(*)|Now care|
|00001680| 66 75 6c 6c 79 20 74 79 | 70 65 0a 58 0a 58 20 20 |fully ty|pe.X.X |
|00001690| 65 78 65 63 75 74 69 76 | 65 0a 58 0a 58 61 6e 64 |executiv|e.X.Xand|
|000016a0| 20 74 68 65 6e 20 52 45 | 54 55 52 4e 2e 20 54 68 | then RE|TURN. Th|
|000016b0| 65 20 70 72 69 6e 74 65 | 72 20 77 69 6c 6c 20 6e |e printe|r will n|
|000016c0| 6f 74 20 65 63 68 6f 20 | 74 68 69 73 20 77 68 69 |ot echo |this whi|
|000016d0| 6c 65 20 79 6f 75 20 61 | 72 65 20 74 79 70 69 6e |le you a|re typin|
|000016e0| 67 2e 0a 58 49 66 20 79 | 6f 75 20 74 79 70 65 64 |g..XIf y|ou typed|
|000016f0| 20 69 74 20 63 6f 72 72 | 65 63 74 6c 79 2c 20 74 | it corr|ectly, t|
|00001700| 68 65 20 70 72 69 6e 74 | 65 72 20 77 69 6c 6c 20 |he print|er will |
|00001710| 70 72 69 6e 74 20 61 20 | 62 61 6e 6e 65 72 20 61 |print a |banner a|
|00001720| 6e 64 20 61 0a 58 70 72 | 6f 6d 70 74 2e 20 20 49 |nd a.Xpr|ompt. I|
|00001730| 66 20 79 6f 75 20 67 65 | 74 20 61 6e 20 65 72 72 |f you ge|t an err|
|00001740| 6f 72 20 6d 65 73 73 61 | 67 65 20 66 72 6f 6d 20 |or messa|ge from |
|00001750| 74 68 65 20 70 72 69 6e | 74 65 72 2c 20 74 79 70 |the prin|ter, typ|
|00001760| 65 20 43 54 52 4c 2d 44 | 20 61 6e 64 0a 58 74 72 |e CTRL-D| and.Xtr|
|00001770| 79 20 61 67 61 69 6e 2e | 20 20 49 66 20 79 6f 75 |y again.| If you|
|00001780| 20 64 6f 6e 27 74 20 67 | 65 74 20 61 6e 79 20 72 | don't g|et any r|
|00001790| 65 73 70 6f 6e 73 65 20 | 61 74 20 61 6c 6c 2c 20 |esponse |at all, |
|000017a0| 79 6f 75 20 70 72 6f 62 | 61 62 6c 79 20 68 61 76 |you prob|ably hav|
|000017b0| 65 20 61 0a 58 63 61 62 | 6c 65 20 70 72 6f 62 6c |e a.Xcab|le probl|
|000017c0| 65 6d 2e 20 54 68 65 6e | 20 74 79 70 65 0a 58 0a |em. Then| type.X.|
|000017d0| 58 20 20 73 65 72 76 65 | 72 64 69 63 74 20 62 65 |X serve|rdict be|
|000017e0| 67 69 6e 20 30 20 65 78 | 69 74 73 65 72 76 65 72 |gin 0 ex|itserver|
|000017f0| 0a 58 0a 58 61 6e 64 20 | 52 45 54 55 52 4e 2e 20 |.X.Xand |RETURN. |
|00001800| 54 68 65 20 70 72 69 6e | 74 65 72 20 73 68 6f 75 |The prin|ter shou|
|00001810| 6c 64 20 73 61 79 20 73 | 6f 6d 65 74 68 69 6e 67 |ld say s|omething|
|00001820| 20 6c 69 6b 65 0a 58 0a | 58 20 20 25 25 5b 20 65 | like.X.|X %%[ e|
|00001830| 78 69 74 73 65 72 76 65 | 72 3a 20 70 65 72 6d 61 |xitserve|r: perma|
|00001840| 6e 65 6e 74 20 73 74 61 | 74 65 20 6d 61 79 20 62 |nent sta|te may b|
|00001850| 65 20 63 68 61 6e 67 65 | 64 20 5d 25 25 0a 58 0a |e change|d ]%%.X.|
|00001860| 58 54 68 65 6e 20 74 79 | 70 65 0a 58 0a 58 20 20 |XThen ty|pe.X.X |
|00001870| 73 74 61 74 75 73 64 69 | 63 74 20 62 65 67 69 6e |statusdi|ct begin|
|00001880| 20 32 35 20 33 38 34 30 | 30 20 33 20 73 65 74 73 | 25 3840|0 3 sets|
|00001890| 63 63 62 61 74 63 68 20 | 65 6e 64 0a 58 0a 58 61 |ccbatch |end.X.Xa|
|000018a0| 6e 64 20 52 45 54 55 52 | 4e 2e 20 54 68 65 20 70 |nd RETUR|N. The p|
|000018b0| 72 69 6e 74 65 72 20 77 | 69 6c 6c 20 6e 6f 74 20 |rinter w|ill not |
|000018c0| 65 63 68 6f 20 74 68 69 | 73 2e 20 49 66 20 79 6f |echo thi|s. If yo|
|000018d0| 75 20 67 65 74 20 61 6e | 20 65 72 72 6f 72 20 6d |u get an| error m|
|000018e0| 65 73 73 61 67 65 2c 0a | 58 74 79 70 65 20 43 54 |essage,.|Xtype CT|
|000018f0| 52 4c 2d 44 20 61 6e 64 | 20 67 6f 20 62 61 63 6b |RL-D and| go back|
|00001900| 20 74 6f 20 28 2a 29 2e | 20 4f 74 68 65 72 77 69 | to (*).| Otherwi|
|00001910| 73 65 20 74 79 70 65 20 | 43 54 52 4c 2d 44 2e 0a |se type |CTRL-D..|
|00001920| 58 0a 58 4e 6f 77 20 63 | 68 65 63 6b 20 74 6f 20 |X.XNow c|heck to |
|00001930| 73 65 65 20 74 68 61 74 | 20 74 68 69 73 20 77 6f |see that| this wo|
|00001940| 72 6b 65 64 2e 20 54 79 | 70 65 0a 58 0a 58 20 20 |rked. Ty|pe.X.X |
|00001950| 65 78 65 63 75 74 69 76 | 65 20 0a 58 0a 58 61 67 |executiv|e .X.Xag|
|00001960| 61 69 6e 2e 20 54 68 65 | 6e 0a 58 0a 58 20 20 73 |ain. The|n.X.X s|
|00001970| 74 61 74 75 73 64 69 63 | 74 20 62 65 67 69 6e 20 |tatusdic|t begin |
|00001980| 32 35 20 73 63 63 62 61 | 74 63 68 20 65 6e 64 20 |25 sccba|tch end |
|00001990| 3d 20 3d 20 0a 58 0a 58 | 54 68 65 20 70 72 69 6e |= = .X.X|The prin|
|000019a0| 74 65 72 20 73 68 6f 75 | 6c 64 20 73 61 79 0a 58 |ter shou|ld say.X|
|000019b0| 0a 58 20 20 33 0a 58 20 | 20 33 38 34 30 30 0a 58 |.X 3.X | 38400.X|
|000019c0| 0a 58 49 66 20 69 74 20 | 64 6f 65 73 2c 20 74 79 |.XIf it |does, ty|
|000019d0| 70 65 20 43 54 52 4c 2d | 44 2c 20 65 78 69 74 20 |pe CTRL-|D, exit |
|000019e0| 74 69 70 2c 20 61 6e 64 | 20 73 65 74 20 74 68 65 |tip, and| set the|
|000019f0| 20 73 77 69 74 63 68 20 | 6f 6e 20 74 68 65 20 70 | switch |on the p|
|00001a00| 72 69 6e 74 65 72 0a 58 | 62 61 63 6b 20 74 6f 20 |rinter.X|back to |
|00001a10| 74 68 65 20 70 6f 73 69 | 74 69 6f 6e 20 6c 61 62 |the posi|tion lab|
|00001a20| 65 6c 6c 65 64 20 39 36 | 30 30 20 6f 72 20 31 2e |elled 96|00 or 1.|
|00001a30| 20 20 49 66 20 6e 6f 74 | 2c 20 74 79 70 65 20 43 | If not|, type C|
|00001a40| 54 52 4c 2d 44 20 61 6e | 64 20 74 72 79 0a 58 61 |TRL-D an|d try.Xa|
|00001a50| 67 61 69 6e 20 66 72 6f | 6d 20 28 2a 29 2e 0a 58 |gain fro|m (*)..X|
|00001a60| 0a 58 24 48 65 61 64 65 | 72 3a 20 2f 75 73 72 2f |.X$Heade|r: /usr/|
|00001a70| 6a 6a 63 2f 6c 70 72 70 | 73 2f 52 43 53 2f 49 4e |jjc/lprp|s/RCS/IN|
|00001a80| 53 54 41 4c 4c 2c 76 20 | 31 2e 34 20 39 30 2f 31 |STALL,v |1.4 90/1|
|00001a90| 32 2f 31 38 20 31 31 3a | 33 33 3a 31 39 20 6a 6a |2/18 11:|33:19 jj|
|00001aa0| 63 20 52 65 6c 20 24 0a | 45 4e 44 5f 4f 46 5f 46 |c Rel $.|END_OF_F|
|00001ab0| 49 4c 45 0a 69 66 20 74 | 65 73 74 20 32 37 34 32 |ILE.if t|est 2742|
|00001ac0| 20 2d 6e 65 20 60 77 63 | 20 2d 63 20 3c 27 49 4e | -ne `wc| -c <'IN|
|00001ad0| 53 54 41 4c 4c 27 60 3b | 20 74 68 65 6e 0a 20 20 |STALL'`;| then. |
|00001ae0| 20 20 65 63 68 6f 20 73 | 68 61 72 3a 20 5c 22 27 | echo s|har: \"'|
|00001af0| 49 4e 53 54 41 4c 4c 27 | 5c 22 20 75 6e 70 61 63 |INSTALL'|\" unpac|
|00001b00| 6b 65 64 20 77 69 74 68 | 20 77 72 6f 6e 67 20 73 |ked with| wrong s|
|00001b10| 69 7a 65 21 0a 66 69 0a | 23 20 65 6e 64 20 6f 66 |ize!.fi.|# end of|
|00001b20| 20 27 49 4e 53 54 41 4c | 4c 27 0a 66 69 0a 69 66 | 'INSTAL|L'.fi.if|
|00001b30| 20 74 65 73 74 20 2d 66 | 20 27 4d 61 6b 65 66 69 | test -f| 'Makefi|
|00001b40| 6c 65 27 20 2d 61 20 22 | 24 7b 31 7d 22 20 21 3d |le' -a "|${1}" !=|
|00001b50| 20 22 2d 63 22 20 3b 20 | 74 68 65 6e 20 0a 20 20 | "-c" ; |then . |
|00001b60| 65 63 68 6f 20 73 68 61 | 72 3a 20 57 69 6c 6c 20 |echo sha|r: Will |
|00001b70| 6e 6f 74 20 63 6c 6f 62 | 62 65 72 20 65 78 69 73 |not clob|ber exis|
|00001b80| 74 69 6e 67 20 66 69 6c | 65 20 5c 22 27 4d 61 6b |ting fil|e \"'Mak|
|00001b90| 65 66 69 6c 65 27 5c 22 | 0a 65 6c 73 65 0a 65 63 |efile'\"|.else.ec|
|00001ba0| 68 6f 20 73 68 61 72 3a | 20 45 78 74 72 61 63 74 |ho shar:| Extract|
|00001bb0| 69 6e 67 20 5c 22 27 4d | 61 6b 65 66 69 6c 65 27 |ing \"'M|akefile'|
|00001bc0| 5c 22 20 5c 28 31 36 34 | 35 20 63 68 61 72 61 63 |\" \(164|5 charac|
|00001bd0| 74 65 72 73 5c 29 0a 73 | 65 64 20 22 73 2f 5e 58 |ters\).s|ed "s/^X|
|00001be0| 2f 2f 22 20 3e 27 4d 61 | 6b 65 66 69 6c 65 27 20 |//" >'Ma|kefile' |
|00001bf0| 3c 3c 27 45 4e 44 5f 4f | 46 5f 46 49 4c 45 27 0a |<<'END_O|F_FILE'.|
|00001c00| 58 23 20 24 48 65 61 64 | 65 72 3a 20 2f 75 73 72 |X# $Head|er: /usr|
|00001c10| 2f 6a 6a 63 2f 6c 70 72 | 70 73 2f 52 43 53 2f 4d |/jjc/lpr|ps/RCS/M|
|00001c20| 61 6b 65 66 69 6c 65 2c | 76 20 31 2e 33 20 39 30 |akefile,|v 1.3 90|
|00001c30| 2f 31 32 2f 31 38 20 31 | 30 3a 30 37 3a 32 32 20 |/12/18 1|0:07:22 |
|00001c40| 6a 6a 63 20 52 65 6c 20 | 24 0a 58 23 20 44 65 66 |jjc Rel |$.X# Def|
|00001c50| 69 6e 65 20 41 34 20 69 | 66 20 79 6f 75 20 75 73 |ine A4 i|f you us|
|00001c60| 65 20 41 34 20 72 61 74 | 68 65 72 20 74 68 61 6e |e A4 rat|her than|
|00001c70| 20 6c 65 74 74 65 72 20 | 73 69 7a 65 20 70 61 70 | letter |size pap|
|00001c80| 65 72 2e 0a 58 44 45 46 | 49 4e 45 53 3d 2d 44 41 |er..XDEF|INES=-DA|
|00001c90| 34 0a 58 23 20 57 68 65 | 72 65 20 74 6f 20 69 6e |4.X# Whe|re to in|
|00001ca0| 73 74 61 6c 6c 20 70 75 | 62 6c 69 63 20 65 78 65 |stall pu|blic exe|
|00001cb0| 63 75 74 61 62 6c 65 73 | 2e 0a 58 42 49 4e 44 49 |cutables|..XBINDI|
|00001cc0| 52 3d 2f 75 73 72 2f 6c | 6f 63 61 6c 2f 62 69 6e |R=/usr/l|ocal/bin|
|00001cd0| 0a 58 23 20 57 68 65 72 | 65 20 74 6f 20 69 6e 73 |.X# Wher|e to ins|
|00001ce0| 74 61 6c 6c 20 70 72 69 | 76 61 74 65 20 65 78 65 |tall pri|vate exe|
|00001cf0| 63 75 74 61 62 6c 65 73 | 2e 0a 58 4c 49 42 44 49 |cutables|..XLIBDI|
|00001d00| 52 3d 2f 75 73 72 2f 6c | 6f 63 61 6c 2f 6c 69 62 |R=/usr/l|ocal/lib|
|00001d10| 0a 58 23 20 44 65 66 69 | 6e 65 20 52 45 56 5f 43 |.X# Defi|ne REV_C|
|00001d20| 4f 4d 4d 41 4e 44 20 74 | 6f 20 62 65 20 65 6d 70 |OMMAND t|o be emp|
|00001d30| 74 79 20 69 66 20 64 6f | 63 75 6d 65 6e 74 73 20 |ty if do|cuments |
|00001d40| 64 6f 6e 27 74 20 6e 65 | 65 64 20 74 6f 0a 58 23 |don't ne|ed to.X#|
|00001d50| 20 62 65 20 70 72 69 6e | 74 65 64 20 69 6e 20 72 | be prin|ted in r|
|00001d60| 65 76 65 72 73 65 20 6f | 72 64 65 72 2e 0a 58 52 |everse o|rder..XR|
|00001d70| 45 56 5f 43 4f 4d 4d 41 | 4e 44 3d 24 28 42 49 4e |EV_COMMA|ND=$(BIN|
|00001d80| 44 49 52 29 2f 70 73 72 | 65 76 20 7c 0a 58 23 20 |DIR)/psr|ev |.X# |
|00001d90| 57 68 65 72 65 20 74 6f | 20 69 6e 73 74 61 6c 6c |Where to| install|
|00001da0| 20 74 68 65 20 66 69 6c | 74 65 72 20 66 6f 72 20 | the fil|ter for |
|00001db0| 74 65 78 74 20 66 69 6c | 65 73 2e 0a 58 54 45 58 |text fil|es..XTEX|
|00001dc0| 54 5f 46 49 4c 54 45 52 | 3d 24 28 4c 49 42 44 49 |T_FILTER|=$(LIBDI|
|00001dd0| 52 29 2f 70 73 69 66 2d | 74 65 78 74 0a 58 23 20 |R)/psif-|text.X# |
|00001de0| 57 68 65 72 65 20 74 6f | 20 69 6e 73 74 61 6c 6c |Where to| install|
|00001df0| 20 74 68 65 20 66 69 6c | 74 65 72 20 66 6f 72 20 | the fil|ter for |
|00001e00| 50 6f 73 74 53 63 72 69 | 70 74 20 66 69 6c 65 73 |PostScri|pt files|
|00001e10| 2e 0a 58 50 53 5f 46 49 | 4c 54 45 52 3d 24 28 4c |..XPS_FI|LTER=$(L|
|00001e20| 49 42 44 49 52 29 2f 70 | 73 69 66 2d 70 73 0a 58 |IBDIR)/p|sif-ps.X|
|00001e30| 23 20 46 69 6c 74 65 72 | 20 74 6f 20 63 6f 6e 76 |# Filter| to conv|
|00001e40| 65 72 74 20 74 65 78 74 | 20 74 6f 20 50 6f 73 74 |ert text| to Post|
|00001e50| 53 63 72 69 70 74 2e 20 | 20 59 6f 75 20 63 61 6e |Script. | You can|
|00001e60| 20 75 73 65 20 79 6f 75 | 72 20 6f 77 6e 20 69 6e | use you|r own in|
|00001e70| 73 74 65 61 64 2e 0a 58 | 23 20 49 74 20 6d 75 73 |stead..X|# It mus|
|00001e80| 74 20 62 65 20 61 62 6c | 65 20 74 6f 20 72 65 61 |t be abl|e to rea|
|00001e90| 64 20 66 72 6f 6d 20 73 | 74 61 6e 64 61 72 64 20 |d from s|tandard |
|00001ea0| 69 6e 70 75 74 2e 0a 58 | 54 45 58 54 5f 54 4f 5f |input..X|TEXT_TO_|
|00001eb0| 50 53 3d 24 28 42 49 4e | 44 49 52 29 2f 74 65 78 |PS=$(BIN|DIR)/tex|
|00001ec0| 74 70 73 0a 58 43 43 3d | 63 63 0a 58 43 46 4c 41 |tps.XCC=|cc.XCFLA|
|00001ed0| 47 53 3d 2d 67 20 2d 42 | 73 74 61 74 69 63 20 24 |GS=-g -B|static $|
|00001ee0| 28 44 45 46 49 4e 45 53 | 29 0a 58 49 4e 53 54 41 |(DEFINES|).XINSTA|
|00001ef0| 4c 4c 3d 69 6e 73 74 61 | 6c 6c 0a 58 0a 58 53 4f |LL=insta|ll.X.XSO|
|00001f00| 55 52 43 45 53 3d 52 45 | 41 44 4d 45 20 49 4e 53 |URCES=RE|ADME INS|
|00001f10| 54 41 4c 4c 20 4d 61 6b | 65 66 69 6c 65 20 70 73 |TALL Mak|efile ps|
|00001f20| 72 65 76 2e 63 20 6c 70 | 72 70 73 2e 63 20 70 73 |rev.c lp|rps.c ps|
|00001f30| 69 66 2e 63 20 74 65 78 | 74 70 73 2e 63 0a 58 0a |if.c tex|tps.c.X.|
|00001f40| 58 61 6c 6c 3a 20 70 73 | 72 65 76 20 70 73 69 66 |Xall: ps|rev psif|
|00001f50| 20 6c 70 72 70 73 20 74 | 65 78 74 70 73 20 70 73 | lprps t|extps ps|
|00001f60| 69 66 2d 74 65 78 74 20 | 70 73 69 66 2d 70 73 0a |if-text |psif-ps.|
|00001f70| 58 0a 58 69 6e 73 74 61 | 6c 6c 3a 20 61 6c 6c 0a |X.Xinsta|ll: all.|
|00001f80| 58 09 24 28 49 4e 53 54 | 41 4c 4c 29 20 70 73 69 |X.$(INST|ALL) psi|
|00001f90| 66 20 6c 70 72 70 73 20 | 24 28 4c 49 42 44 49 52 |f lprps |$(LIBDIR|
|00001fa0| 29 0a 58 09 24 28 49 4e | 53 54 41 4c 4c 29 20 74 |).X.$(IN|STALL) t|
|00001fb0| 65 78 74 70 73 20 70 73 | 72 65 76 20 24 28 42 49 |extps ps|rev $(BI|
|00001fc0| 4e 44 49 52 29 0a 58 09 | 24 28 49 4e 53 54 41 4c |NDIR).X.|$(INSTAL|
|00001fd0| 4c 29 20 70 73 69 66 2d | 74 65 78 74 20 24 28 54 |L) psif-|text $(T|
|00001fe0| 45 58 54 5f 46 49 4c 54 | 45 52 29 0a 58 09 24 28 |EXT_FILT|ER).X.$(|
|00001ff0| 49 4e 53 54 41 4c 4c 29 | 20 70 73 69 66 2d 70 73 |INSTALL)| psif-ps|
|00002000| 20 24 28 50 53 5f 46 49 | 4c 54 45 52 29 0a 58 09 | $(PS_FI|LTER).X.|
|00002010| 40 65 63 68 6f 20 4e 6f | 77 20 65 64 69 74 20 2f |@echo No|w edit /|
|00002020| 65 74 63 2f 70 72 69 6e | 74 63 61 70 0a 58 0a 58 |etc/prin|tcap.X.X|
|00002030| 6c 70 72 70 73 3a 20 6c | 70 72 70 73 2e 63 0a 58 |lprps: l|prps.c.X|
|00002040| 09 24 28 43 43 29 20 24 | 28 43 46 4c 41 47 53 29 |.$(CC) $|(CFLAGS)|
|00002050| 20 2d 6f 20 24 40 20 24 | 3c 0a 58 0a 58 70 73 69 | -o $@ $|<.X.Xpsi|
|00002060| 66 3a 20 70 73 69 66 2e | 63 0a 58 09 24 28 43 43 |f: psif.|c.X.$(CC|
|00002070| 29 20 24 28 43 46 4c 41 | 47 53 29 20 2d 44 54 45 |) $(CFLA|GS) -DTE|
|00002080| 58 54 5f 46 49 4c 54 45 | 52 3d 5c 22 24 28 54 45 |XT_FILTE|R=\"$(TE|
|00002090| 58 54 5f 46 49 4c 54 45 | 52 29 5c 22 20 5c 0a 58 |XT_FILTE|R)\" \.X|
|000020a0| 09 2d 44 50 53 5f 46 49 | 4c 54 45 52 3d 5c 22 24 |.-DPS_FI|LTER=\"$|
|000020b0| 28 50 53 5f 46 49 4c 54 | 45 52 29 5c 22 20 2d 6f |(PS_FILT|ER)\" -o|
|000020c0| 20 24 40 20 24 3c 0a 58 | 0a 58 74 65 78 74 70 73 | $@ $<.X|.Xtextps|
|000020d0| 3a 20 74 65 78 74 70 73 | 2e 63 0a 58 09 24 28 43 |: textps|.c.X.$(C|
|000020e0| 43 29 20 24 28 43 46 4c | 41 47 53 29 20 2d 6f 20 |C) $(CFL|AGS) -o |
|000020f0| 24 40 20 24 3c 0a 58 0a | 58 70 73 72 65 76 3a 20 |$@ $<.X.|Xpsrev: |
|00002100| 70 73 72 65 76 2e 63 0a | 58 09 24 28 43 43 29 20 |psrev.c.|X.$(CC) |
|00002110| 24 28 43 46 4c 41 47 53 | 29 20 2d 6f 20 24 40 20 |$(CFLAGS|) -o $@ |
|00002120| 24 3c 0a 58 0a 58 70 73 | 69 66 2d 74 65 78 74 3a |$<.X.Xps|if-text:|
|00002130| 20 4d 61 6b 65 66 69 6c | 65 0a 58 09 40 65 63 68 | Makefil|e.X.@ech|
|00002140| 6f 20 43 72 65 61 74 69 | 6e 67 20 24 40 0a 58 09 |o Creati|ng $@.X.|
|00002150| 40 65 63 68 6f 20 22 23 | 21 20 2f 62 69 6e 2f 73 |@echo "#|! /bin/s|
|00002160| 68 22 20 3e 20 24 40 0a | 58 09 40 65 63 68 6f 20 |h" > $@.|X.@echo |
|00002170| 22 24 28 54 45 58 54 5f | 54 4f 5f 50 53 29 20 7c |"$(TEXT_|TO_PS) ||
|00002180| 20 24 28 52 45 56 5f 43 | 4f 4d 4d 41 4e 44 29 20 | $(REV_C|OMMAND) |
|00002190| 24 28 4c 49 42 44 49 52 | 29 2f 6c 70 72 70 73 20 |$(LIBDIR|)/lprps |
|000021a0| 5c 24 24 2a 22 20 3e 3e | 24 40 0a 58 09 40 63 68 |\$$*" >>|$@.X.@ch|
|000021b0| 6d 6f 64 20 2b 78 20 24 | 40 0a 58 0a 58 70 73 69 |mod +x $|@.X.Xpsi|
|000021c0| 66 2d 70 73 3a 20 4d 61 | 6b 65 66 69 6c 65 0a 58 |f-ps: Ma|kefile.X|
|000021d0| 09 40 65 63 68 6f 20 43 | 72 65 61 74 69 6e 67 20 |.@echo C|reating |
|000021e0| 24 40 0a 58 09 40 65 63 | 68 6f 20 22 23 21 20 2f |$@.X.@ec|ho "#! /|
|000021f0| 62 69 6e 2f 73 68 22 20 | 3e 20 24 40 0a 58 09 40 |bin/sh" |> $@.X.@|
|00002200| 65 63 68 6f 20 22 24 28 | 52 45 56 5f 43 4f 4d 4d |echo "$(|REV_COMM|
|00002210| 41 4e 44 29 20 24 28 4c | 49 42 44 49 52 29 2f 6c |AND) $(L|IBDIR)/l|
|00002220| 70 72 70 73 20 5c 24 24 | 2a 22 20 3e 3e 24 40 0a |prps \$$|*" >>$@.|
|00002230| 58 09 40 63 68 6d 6f 64 | 20 2b 78 20 24 40 0a 58 |X.@chmod| +x $@.X|
|00002240| 0a 58 6c 70 72 70 73 2e | 73 68 61 72 3a 20 24 28 |.Xlprps.|shar: $(|
|00002250| 53 4f 55 52 43 45 53 29 | 0a 58 09 73 68 61 72 20 |SOURCES)|.X.shar |
|00002260| 24 28 53 4f 55 52 43 45 | 53 29 20 3e 24 40 0a 58 |$(SOURCE|S) >$@.X|
|00002270| 0a 58 63 6c 65 61 6e 3a | 0a 58 09 72 6d 20 2d 66 |.Xclean:|.X.rm -f|
|00002280| 20 70 73 72 65 76 20 70 | 73 69 66 20 6c 70 72 70 | psrev p|sif lprp|
|00002290| 73 20 74 65 78 74 70 73 | 20 70 73 69 66 2d 74 65 |s textps| psif-te|
|000022a0| 78 74 20 70 73 69 66 2d | 70 73 0a 45 4e 44 5f 4f |xt psif-|ps.END_O|
|000022b0| 46 5f 46 49 4c 45 0a 69 | 66 20 74 65 73 74 20 31 |F_FILE.i|f test 1|
|000022c0| 36 34 35 20 2d 6e 65 20 | 60 77 63 20 2d 63 20 3c |645 -ne |`wc -c <|
|000022d0| 27 4d 61 6b 65 66 69 6c | 65 27 60 3b 20 74 68 65 |'Makefil|e'`; the|
|000022e0| 6e 0a 20 20 20 20 65 63 | 68 6f 20 73 68 61 72 3a |n. ec|ho shar:|
|000022f0| 20 5c 22 27 4d 61 6b 65 | 66 69 6c 65 27 5c 22 20 | \"'Make|file'\" |
|00002300| 75 6e 70 61 63 6b 65 64 | 20 77 69 74 68 20 77 72 |unpacked| with wr|
|00002310| 6f 6e 67 20 73 69 7a 65 | 21 0a 66 69 0a 23 20 65 |ong size|!.fi.# e|
|00002320| 6e 64 20 6f 66 20 27 4d | 61 6b 65 66 69 6c 65 27 |nd of 'M|akefile'|
|00002330| 0a 66 69 0a 69 66 20 74 | 65 73 74 20 2d 66 20 27 |.fi.if t|est -f '|
|00002340| 70 73 72 65 76 2e 63 27 | 20 2d 61 20 22 24 7b 31 |psrev.c'| -a "${1|
|00002350| 7d 22 20 21 3d 20 22 2d | 63 22 20 3b 20 74 68 65 |}" != "-|c" ; the|
|00002360| 6e 20 0a 20 20 65 63 68 | 6f 20 73 68 61 72 3a 20 |n . ech|o shar: |
|00002370| 57 69 6c 6c 20 6e 6f 74 | 20 63 6c 6f 62 62 65 72 |Will not| clobber|
|00002380| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 5c | existin|g file \|
|00002390| 22 27 70 73 72 65 76 2e | 63 27 5c 22 0a 65 6c 73 |"'psrev.|c'\".els|
|000023a0| 65 0a 65 63 68 6f 20 73 | 68 61 72 3a 20 45 78 74 |e.echo s|har: Ext|
|000023b0| 72 61 63 74 69 6e 67 20 | 5c 22 27 70 73 72 65 76 |racting |\"'psrev|
|000023c0| 2e 63 27 5c 22 20 5c 28 | 36 36 32 36 20 63 68 61 |.c'\" \(|6626 cha|
|000023d0| 72 61 63 74 65 72 73 5c | 29 0a 73 65 64 20 22 73 |racters\|).sed "s|
|000023e0| 2f 5e 58 2f 2f 22 20 3e | 27 70 73 72 65 76 2e 63 |/^X//" >|'psrev.c|
|000023f0| 27 20 3c 3c 27 45 4e 44 | 5f 4f 46 5f 46 49 4c 45 |' <<'END|_OF_FILE|
|00002400| 27 0a 58 2f 2a 20 70 73 | 72 65 76 2e 63 20 2a 2f |'.X/* ps|rev.c */|
|00002410| 0a 58 0a 58 23 69 66 6e | 64 65 66 20 6c 69 6e 74 |.X.X#ifn|def lint|
|00002420| 0a 58 73 74 61 74 69 63 | 20 63 68 61 72 20 72 63 |.Xstatic| char rc|
|00002430| 73 69 64 5b 5d 20 3d 20 | 22 24 48 65 61 64 65 72 |sid[] = |"$Header|
|00002440| 3a 20 2f 75 73 72 2f 6a | 6a 63 2f 6c 70 72 70 73 |: /usr/j|jc/lprps|
|00002450| 2f 52 43 53 2f 70 73 72 | 65 76 2e 63 2c 76 20 31 |/RCS/psr|ev.c,v 1|
|00002460| 2e 32 20 39 30 2f 31 32 | 2f 31 38 20 30 39 3a 35 |.2 90/12|/18 09:5|
|00002470| 38 3a 33 35 20 6a 6a 63 | 20 52 65 6c 20 24 22 3b |8:35 jjc| Rel $";|
|00002480| 0a 58 23 65 6e 64 69 66 | 0a 58 0a 58 23 69 6e 63 |.X#endif|.X.X#inc|
|00002490| 6c 75 64 65 20 3c 73 74 | 64 69 6f 2e 68 3e 0a 58 |lude <st|dio.h>.X|
|000024a0| 23 69 6e 63 6c 75 64 65 | 20 3c 63 74 79 70 65 2e |#include| <ctype.|
|000024b0| 68 3e 0a 58 0a 58 63 68 | 61 72 20 2a 6d 61 6c 6c |h>.X.Xch|ar *mall|
|000024c0| 6f 63 28 29 3b 0a 58 63 | 68 61 72 20 2a 72 65 61 |oc();.Xc|har *rea|
|000024d0| 6c 6c 6f 63 28 29 3b 0a | 58 0a 58 63 68 61 72 20 |lloc();.|X.Xchar |
|000024e0| 2a 78 6d 61 6c 6c 6f 63 | 28 29 3b 0a 58 63 68 61 |*xmalloc|();.Xcha|
|000024f0| 72 20 2a 78 72 65 61 6c | 6c 6f 63 28 29 3b 0a 58 |r *xreal|loc();.X|
|00002500| 63 68 61 72 20 2a 70 72 | 6f 67 3b 0a 58 0a 58 74 |char *pr|og;.X.Xt|
|00002510| 79 70 65 64 65 66 20 73 | 74 72 75 63 74 20 6c 69 |ypedef s|truct li|
|00002520| 6e 65 5f 62 75 66 20 7b | 0a 58 20 20 63 68 61 72 |ne_buf {|.X char|
|00002530| 20 2a 62 75 66 3b 0a 58 | 20 20 69 6e 74 20 6c 65 | *buf;.X| int le|
|00002540| 6e 3b 0a 58 20 20 69 6e | 74 20 73 69 7a 65 3b 0a |n;.X in|t size;.|
|00002550| 58 7d 20 6c 69 6e 65 5f | 62 75 66 3b 0a 58 0a 58 |X} line_|buf;.X.X|
|00002560| 69 6e 74 20 67 65 74 5f | 6c 69 6e 65 28 6c 62 2c |int get_|line(lb,|
|00002570| 20 66 70 29 0a 58 6c 69 | 6e 65 5f 62 75 66 20 2a | fp).Xli|ne_buf *|
|00002580| 6c 62 3b 0a 58 46 49 4c | 45 20 2a 66 70 3b 0a 58 |lb;.XFIL|E *fp;.X|
|00002590| 7b 0a 58 20 20 69 6e 74 | 20 6c 65 66 74 3b 0a 58 |{.X int| left;.X|
|000025a0| 20 20 63 68 61 72 20 2a | 70 74 72 3b 0a 58 20 20 | char *|ptr;.X |
|000025b0| 69 66 20 28 6c 62 2d 3e | 62 75 66 20 3d 3d 20 4e |if (lb->|buf == N|
|000025c0| 55 4c 4c 29 20 7b 0a 58 | 20 20 20 20 6c 62 2d 3e |ULL) {.X| lb->|
|000025d0| 73 69 7a 65 20 3d 20 31 | 36 3b 0a 58 20 20 20 20 |size = 1|6;.X |
|000025e0| 6c 62 2d 3e 62 75 66 20 | 3d 20 78 6d 61 6c 6c 6f |lb->buf |= xmallo|
|000025f0| 63 28 31 36 29 3b 0a 58 | 20 20 7d 0a 58 20 20 70 |c(16);.X| }.X p|
|00002600| 74 72 20 3d 20 6c 62 2d | 3e 62 75 66 3b 0a 58 20 |tr = lb-|>buf;.X |
|00002610| 20 6c 65 66 74 20 3d 20 | 6c 62 2d 3e 73 69 7a 65 | left = |lb->size|
|00002620| 20 2d 20 31 3b 0a 58 20 | 20 66 6f 72 20 28 3b 3b | - 1;.X | for (;;|
|00002630| 29 20 7b 0a 58 20 20 20 | 20 69 6e 74 20 63 20 3d |) {.X | int c =|
|00002640| 20 67 65 74 63 28 66 70 | 29 3b 0a 58 20 20 20 20 | getc(fp|);.X |
|00002650| 69 66 20 28 63 20 3d 3d | 20 45 4f 46 29 20 7b 0a |if (c ==| EOF) {.|
|00002660| 58 20 20 20 20 20 20 69 | 66 20 28 66 65 72 72 6f |X i|f (ferro|
|00002670| 72 28 66 70 29 29 0a 58 | 09 72 65 74 75 72 6e 20 |r(fp)).X|.return |
|00002680| 30 3b 0a 58 20 20 20 20 | 20 20 69 66 20 28 70 74 |0;.X | if (pt|
|00002690| 72 20 3d 3d 20 6c 62 2d | 3e 62 75 66 29 0a 58 09 |r == lb-|>buf).X.|
|000026a0| 72 65 74 75 72 6e 20 30 | 3b 0a 58 20 20 20 20 20 |return 0|;.X |
|000026b0| 20 6c 62 2d 3e 6c 65 6e | 20 3d 20 70 74 72 20 2d | lb->len| = ptr -|
|000026c0| 20 6c 62 2d 3e 62 75 66 | 3b 0a 58 20 20 20 20 20 | lb->buf|;.X |
|000026d0| 20 2a 70 74 72 2b 2b 20 | 3d 20 27 5c 30 27 3b 0a | *ptr++ |= '\0';.|
|000026e0| 58 20 20 20 20 20 20 72 | 65 74 75 72 6e 20 31 3b |X r|eturn 1;|
|000026f0| 0a 58 20 20 20 20 7d 0a | 58 20 20 20 20 69 66 20 |.X }.|X if |
|00002700| 28 6c 65 66 74 20 3c 3d | 20 30 29 20 7b 0a 58 20 |(left <=| 0) {.X |
|00002710| 20 20 20 20 20 69 6e 74 | 20 6e 20 3d 20 70 74 72 | int| n = ptr|
|00002720| 20 2d 20 6c 62 2d 3e 62 | 75 66 3b 0a 58 20 20 20 | - lb->b|uf;.X |
|00002730| 20 20 20 6c 62 2d 3e 73 | 69 7a 65 20 2a 3d 20 32 | lb->s|ize *= 2|
|00002740| 3b 0a 58 20 20 20 20 20 | 20 6c 62 2d 3e 62 75 66 |;.X | lb->buf|
|00002750| 20 3d 20 78 72 65 61 6c | 6c 6f 63 28 6c 62 2d 3e | = xreal|loc(lb->|
|00002760| 62 75 66 2c 20 6c 62 2d | 3e 73 69 7a 65 29 3b 0a |buf, lb-|>size);.|
|00002770| 58 20 20 20 20 20 20 6c | 65 66 74 20 3d 20 6c 62 |X l|eft = lb|
|00002780| 2d 3e 73 69 7a 65 20 2d | 20 6e 20 2d 20 31 3b 0a |->size -| n - 1;.|
|00002790| 58 20 20 20 20 20 20 70 | 74 72 20 3d 20 6c 62 2d |X p|tr = lb-|
|000027a0| 3e 62 75 66 20 2b 20 6e | 3b 0a 58 20 20 20 20 7d |>buf + n|;.X }|
|000027b0| 0a 58 20 20 20 20 2a 70 | 74 72 2b 2b 20 3d 20 63 |.X *p|tr++ = c|
|000027c0| 3b 0a 58 20 20 20 20 6c | 65 66 74 20 2d 3d 20 31 |;.X l|eft -= 1|
|000027d0| 3b 0a 58 20 20 20 20 69 | 66 20 28 63 20 3d 3d 20 |;.X i|f (c == |
|000027e0| 27 5c 6e 27 29 20 7b 0a | 58 20 20 20 20 20 20 6c |'\n') {.|X l|
|000027f0| 62 2d 3e 6c 65 6e 20 3d | 20 70 74 72 20 2d 20 6c |b->len =| ptr - l|
|00002800| 62 2d 3e 62 75 66 3b 0a | 58 20 20 20 20 20 20 2a |b->buf;.|X *|
|00002810| 70 74 72 2b 2b 20 3d 20 | 27 5c 30 27 3b 0a 58 20 |ptr++ = |'\0';.X |
|00002820| 20 20 20 20 20 72 65 74 | 75 72 6e 20 31 3b 0a 58 | ret|urn 1;.X|
|00002830| 20 20 20 20 7d 0a 58 20 | 20 7d 0a 58 7d 0a 58 0a | }.X | }.X}.X.|
|00002840| 58 76 6f 69 64 20 70 75 | 74 5f 6c 69 6e 65 28 6c |Xvoid pu|t_line(l|
|00002850| 62 2c 20 66 70 29 0a 58 | 6c 69 6e 65 5f 62 75 66 |b, fp).X|line_buf|
|00002860| 20 2a 6c 62 3b 0a 58 46 | 49 4c 45 20 2a 66 70 3b | *lb;.XF|ILE *fp;|
|00002870| 0a 58 7b 0a 58 20 20 66 | 77 72 69 74 65 28 6c 62 |.X{.X f|write(lb|
|00002880| 2d 3e 62 75 66 2c 20 31 | 2c 20 6c 62 2d 3e 6c 65 |->buf, 1|, lb->le|
|00002890| 6e 2c 20 66 70 29 3b 0a | 58 7d 0a 58 0a 58 2f 2a |n, fp);.|X}.X.X/*|
|000028a0| 20 69 73 20 73 32 20 61 | 20 70 72 65 66 69 78 20 | is s2 a| prefix |
|000028b0| 6f 66 20 73 31 3f 20 2a | 2f 0a 58 69 6e 74 20 73 |of s1? *|/.Xint s|
|000028c0| 74 72 70 72 65 66 69 78 | 28 73 31 2c 20 73 32 29 |trprefix|(s1, s2)|
|000028d0| 0a 58 63 68 61 72 20 2a | 73 31 2c 20 2a 73 32 3b |.Xchar *|s1, *s2;|
|000028e0| 0a 58 7b 0a 58 20 20 66 | 6f 72 20 28 3b 20 2a 73 |.X{.X f|or (; *s|
|000028f0| 31 20 21 3d 20 27 5c 30 | 27 20 26 26 20 2a 73 31 |1 != '\0|' && *s1|
|00002900| 20 3d 3d 20 2a 73 32 3b | 20 73 31 2b 2b 2c 20 73 | == *s2;| s1++, s|
|00002910| 32 2b 2b 29 0a 58 20 20 | 20 20 3b 0a 58 20 20 72 |2++).X | ;.X r|
|00002920| 65 74 75 72 6e 20 2a 73 | 32 20 3d 3d 20 27 5c 30 |eturn *s|2 == '\0|
|00002930| 27 3b 0a 58 7d 0a 58 0a | 58 76 6f 69 64 20 63 6f |';.X}.X.|Xvoid co|
|00002940| 70 79 5f 61 6e 64 5f 65 | 78 69 74 28 66 70 29 0a |py_and_e|xit(fp).|
|00002950| 58 46 49 4c 45 20 2a 66 | 70 3b 0a 58 7b 0a 58 20 |XFILE *f|p;.X{.X |
|00002960| 20 69 6e 74 20 63 3b 0a | 58 20 20 77 68 69 6c 65 | int c;.|X while|
|00002970| 20 28 28 63 20 3d 20 67 | 65 74 63 28 66 70 29 29 | ((c = g|etc(fp))|
|00002980| 20 21 3d 20 45 4f 46 29 | 0a 58 20 20 20 20 70 75 | != EOF)|.X pu|
|00002990| 74 63 68 61 72 28 63 29 | 3b 0a 58 20 20 65 78 69 |tchar(c)|;.X exi|
|000029a0| 74 28 30 29 3b 0a 58 7d | 0a 58 0a 58 74 79 70 65 |t(0);.X}|.X.Xtype|
|000029b0| 64 65 66 20 73 74 72 75 | 63 74 20 70 61 67 65 5f |def stru|ct page_|
|000029c0| 6c 69 73 74 20 7b 0a 58 | 20 20 6c 6f 6e 67 20 70 |list {.X| long p|
|000029d0| 6f 73 3b 0a 58 20 20 73 | 74 72 75 63 74 20 70 61 |os;.X s|truct pa|
|000029e0| 67 65 5f 6c 69 73 74 20 | 2a 6e 65 78 74 3b 0a 58 |ge_list |*next;.X|
|000029f0| 7d 20 70 61 67 65 5f 6c | 69 73 74 3b 0a 58 0a 58 |} page_l|ist;.X.X|
|00002a00| 6d 61 69 6e 28 61 72 67 | 63 2c 20 61 72 67 76 29 |main(arg|c, argv)|
|00002a10| 0a 58 69 6e 74 20 61 72 | 67 63 3b 0a 58 63 68 61 |.Xint ar|gc;.Xcha|
|00002a20| 72 20 2a 2a 61 72 67 76 | 3b 0a 58 7b 0a 58 20 20 |r **argv|;.X{.X |
|00002a30| 69 6e 74 20 64 6f 6e 74 | 5f 72 65 76 65 72 73 65 |int dont|_reverse|
|00002a40| 20 3d 20 30 3b 0a 58 20 | 20 69 6e 74 20 70 61 67 | = 0;.X | int pag|
|00002a50| 65 6e 6f 3b 0a 58 20 20 | 69 6e 74 20 70 65 6e 64 |eno;.X |int pend|
|00002a60| 69 6e 67 5f 6c 69 6e 65 | 20 3d 20 30 3b 0a 58 20 |ing_line| = 0;.X |
|00002a70| 20 69 6e 74 20 68 61 64 | 5f 70 61 67 65 73 5f 63 | int had|_pages_c|
|00002a80| 6f 6d 6d 65 6e 74 20 3d | 20 30 3b 0a 58 20 20 69 |omment =| 0;.X i|
|00002a90| 6e 74 20 70 61 67 65 73 | 5f 63 6f 6d 6d 65 6e 74 |nt pages|_comment|
|00002aa0| 5f 61 74 65 6e 64 20 3d | 20 30 3b 0a 58 20 20 69 |_atend =| 0;.X i|
|00002ab0| 6e 74 20 6e 70 61 67 65 | 73 20 3d 20 2d 31 3b 0a |nt npage|s = -1;.|
|00002ac0| 58 20 20 69 6e 74 20 70 | 61 67 65 5f 6f 72 64 65 |X int p|age_orde|
|00002ad0| 72 3b 0a 58 20 20 69 6e | 74 20 68 61 64 5f 70 61 |r;.X in|t had_pa|
|00002ae0| 67 65 5f 6f 72 64 65 72 | 3b 0a 58 20 20 46 49 4c |ge_order|;.X FIL|
|00002af0| 45 20 2a 74 65 6d 70 66 | 70 20 3d 20 4e 55 4c 4c |E *tempf|p = NULL|
|00002b00| 3b 0a 58 20 20 70 61 67 | 65 5f 6c 69 73 74 20 2a |;.X pag|e_list *|
|00002b10| 70 6c 20 3d 20 30 3b 0a | 58 20 20 6c 6f 6e 67 20 |pl = 0;.|X long |
|00002b20| 74 72 61 69 6c 65 72 5f | 70 6f 73 20 3d 20 2d 31 |trailer_|pos = -1|
|00002b30| 3b 0a 58 20 20 6c 6f 6e | 67 20 70 72 65 76 5f 70 |;.X lon|g prev_p|
|00002b40| 6f 73 3b 0a 58 20 20 69 | 6e 74 20 6c 65 76 65 6c |os;.X i|nt level|
|00002b50| 20 3d 20 30 3b 0a 58 20 | 20 6c 69 6e 65 5f 62 75 | = 0;.X | line_bu|
|00002b60| 66 20 6c 62 3b 0a 58 20 | 20 70 72 6f 67 20 3d 20 |f lb;.X | prog = |
|00002b70| 61 72 67 76 5b 30 5d 3b | 0a 58 20 20 6c 62 2e 62 |argv[0];|.X lb.b|
|00002b80| 75 66 20 3d 20 30 3b 0a | 58 20 20 69 66 20 28 21 |uf = 0;.|X if (!|
|00002b90| 67 65 74 5f 6c 69 6e 65 | 28 26 6c 62 2c 20 73 74 |get_line|(&lb, st|
|00002ba0| 64 69 6e 29 29 0a 58 20 | 20 20 20 65 78 69 74 28 |din)).X | exit(|
|00002bb0| 30 29 3b 0a 58 20 20 70 | 75 74 5f 6c 69 6e 65 28 |0);.X p|ut_line(|
|00002bc0| 26 6c 62 2c 20 73 74 64 | 6f 75 74 29 3b 0a 58 20 |&lb, std|out);.X |
|00002bd0| 20 69 66 20 28 21 73 74 | 72 70 72 65 66 69 78 28 | if (!st|rprefix(|
|00002be0| 6c 62 2e 62 75 66 2c 20 | 22 25 21 50 53 2d 41 64 |lb.buf, |"%!PS-Ad|
|00002bf0| 6f 62 65 2d 22 29 29 0a | 58 20 20 20 20 63 6f 70 |obe-")).|X cop|
|00002c00| 79 5f 61 6e 64 5f 65 78 | 69 74 28 73 74 64 69 6e |y_and_ex|it(stdin|
|00002c10| 29 3b 0a 58 0a 58 20 20 | 2f 2a 20 70 72 6f 63 65 |);.X.X |/* proce|
|00002c20| 73 73 20 74 68 65 20 68 | 65 61 64 65 72 20 73 65 |ss the h|eader se|
|00002c30| 63 74 69 6f 6e 20 2a 2f | 0a 58 20 20 77 68 69 6c |ction */|.X whil|
|00002c40| 65 20 28 67 65 74 5f 6c | 69 6e 65 28 26 6c 62 2c |e (get_l|ine(&lb,|
|00002c50| 20 73 74 64 69 6e 29 29 | 20 7b 0a 58 20 20 20 20 | stdin))| {.X |
|00002c60| 69 6e 74 20 73 75 70 70 | 72 65 73 73 20 3d 20 30 |int supp|ress = 0|
|00002c70| 3b 0a 58 20 20 20 20 69 | 66 20 28 21 73 74 72 70 |;.X i|f (!strp|
|00002c80| 72 65 66 69 78 28 6c 62 | 2e 62 75 66 2c 20 22 25 |refix(lb|.buf, "%|
|00002c90| 25 22 29 29 20 7b 0a 58 | 20 20 20 20 20 20 70 65 |%")) {.X| pe|
|00002ca0| 6e 64 69 6e 67 5f 6c 69 | 6e 65 20 3d 20 31 3b 0a |nding_li|ne = 1;.|
|00002cb0| 58 20 20 20 20 20 20 62 | 72 65 61 6b 3b 0a 58 20 |X b|reak;.X |
|00002cc0| 20 20 20 7d 0a 58 20 20 | 20 20 65 6c 73 65 20 69 | }.X | else i|
|00002cd0| 66 20 28 73 74 72 70 72 | 65 66 69 78 28 6c 62 2e |f (strpr|efix(lb.|
|00002ce0| 62 75 66 2c 20 22 25 25 | 50 61 67 65 73 3a 22 29 |buf, "%%|Pages:")|
|00002cf0| 29 20 7b 0a 58 20 20 20 | 20 20 20 73 75 70 70 72 |) {.X | suppr|
|00002d00| 65 73 73 20 3d 20 31 3b | 09 09 2f 2a 20 64 6f 6e |ess = 1;|../* don|
|00002d10| 27 74 20 70 72 69 6e 74 | 20 69 74 20 79 65 74 20 |'t print| it yet |
|00002d20| 2a 2f 0a 58 20 20 20 20 | 20 20 2f 2a 20 74 68 65 |*/.X | /* the|
|00002d30| 20 66 69 72 73 74 20 25 | 25 50 61 67 65 73 20 63 | first %|%Pages c|
|00002d40| 6f 6d 6d 65 6e 74 20 69 | 73 20 74 68 65 20 73 69 |omment i|s the si|
|00002d50| 67 6e 69 66 69 63 61 6e | 74 20 6f 6e 65 20 2a 2f |gnifican|t one */|
|00002d60| 0a 58 20 20 20 20 20 20 | 69 66 20 28 21 68 61 64 |.X |if (!had|
|00002d70| 5f 70 61 67 65 73 5f 63 | 6f 6d 6d 65 6e 74 29 20 |_pages_c|omment) |
|00002d80| 7b 0a 58 09 63 68 61 72 | 20 2a 70 74 72 20 3d 20 |{.X.char| *ptr = |
|00002d90| 6c 62 2e 62 75 66 20 2b | 20 38 3b 0a 58 09 77 68 |lb.buf +| 8;.X.wh|
|00002da0| 69 6c 65 20 28 2a 70 74 | 72 20 3d 3d 20 27 20 27 |ile (*pt|r == ' '|
|00002db0| 29 0a 58 09 20 20 70 74 | 72 2b 2b 3b 0a 58 09 68 |).X. pt|r++;.X.h|
|00002dc0| 61 64 5f 70 61 67 65 73 | 5f 63 6f 6d 6d 65 6e 74 |ad_pages|_comment|
|00002dd0| 20 3d 20 31 3b 0a 58 09 | 69 66 20 28 73 74 72 70 | = 1;.X.|if (strp|
|00002de0| 72 65 66 69 78 28 70 74 | 72 2c 20 22 28 61 74 65 |refix(pt|r, "(ate|
|00002df0| 6e 64 29 22 29 29 0a 58 | 09 20 20 70 61 67 65 73 |nd)")).X|. pages|
|00002e00| 5f 63 6f 6d 6d 65 6e 74 | 5f 61 74 65 6e 64 20 3d |_comment|_atend =|
|00002e10| 20 31 3b 0a 58 09 65 6c | 73 65 20 7b 0a 58 09 20 | 1;.X.el|se {.X. |
|00002e20| 20 69 66 20 28 73 73 63 | 61 6e 66 28 70 74 72 2c | if (ssc|anf(ptr,|
|00002e30| 20 22 25 64 20 25 64 22 | 2c 20 26 6e 70 61 67 65 | "%d %d"|, &npage|
|00002e40| 73 2c 20 26 70 61 67 65 | 5f 6f 72 64 65 72 29 20 |s, &page|_order) |
|00002e50| 3d 3d 20 32 29 0a 58 09 | 20 20 20 20 68 61 64 5f |== 2).X.| had_|
|00002e60| 70 61 67 65 5f 6f 72 64 | 65 72 20 3d 20 31 3b 0a |page_ord|er = 1;.|
|00002e70| 58 09 7d 0a 58 20 20 20 | 20 20 20 7d 0a 58 20 20 |X.}.X | }.X |
|00002e80| 20 20 7d 0a 58 20 20 20 | 20 69 66 20 28 73 74 72 | }.X | if (str|
|00002e90| 70 72 65 66 69 78 28 6c | 62 2e 62 75 66 2c 20 22 |prefix(l|b.buf, "|
|00002ea0| 25 25 45 6e 64 43 6f 6d | 6d 65 6e 74 73 22 29 29 |%%EndCom|ments"))|
|00002eb0| 0a 58 20 20 20 20 20 20 | 62 72 65 61 6b 3b 0a 58 |.X |break;.X|
|00002ec0| 20 20 20 20 69 66 20 28 | 21 73 75 70 70 72 65 73 | if (|!suppres|
|00002ed0| 73 29 0a 58 20 20 20 20 | 20 20 70 75 74 5f 6c 69 |s).X | put_li|
|00002ee0| 6e 65 28 26 6c 62 2c 20 | 73 74 64 6f 75 74 29 3b |ne(&lb, |stdout);|
|00002ef0| 0a 58 20 20 7d 0a 58 0a | 58 20 20 69 66 20 28 68 |.X }.X.|X if (h|
|00002f00| 61 64 5f 70 61 67 65 73 | 5f 63 6f 6d 6d 65 6e 74 |ad_pages|_comment|
|00002f10| 29 20 7b 0a 58 20 20 20 | 20 69 66 20 28 70 61 67 |) {.X | if (pag|
|00002f20| 65 73 5f 63 6f 6d 6d 65 | 6e 74 5f 61 74 65 6e 64 |es_comme|nt_atend|
|00002f30| 29 0a 58 20 20 20 20 20 | 20 70 72 69 6e 74 66 28 |).X | printf(|
|00002f40| 22 25 25 25 25 50 61 67 | 65 73 3a 20 28 61 74 65 |"%%%%Pag|es: (ate|
|00002f50| 6e 64 29 5c 6e 22 29 3b | 0a 58 20 20 20 20 65 6c |nd)\n");|.X el|
|00002f60| 73 65 20 69 66 20 28 68 | 61 64 5f 70 61 67 65 5f |se if (h|ad_page_|
|00002f70| 6f 72 64 65 72 29 20 7b | 0a 58 20 20 20 20 20 20 |order) {|.X |
|00002f80| 73 77 69 74 63 68 20 28 | 70 61 67 65 5f 6f 72 64 |switch (|page_ord|
|00002f90| 65 72 29 20 7b 0a 58 20 | 20 20 20 20 20 63 61 73 |er) {.X | cas|
|00002fa0| 65 20 31 3a 0a 58 09 70 | 72 69 6e 74 66 28 22 25 |e 1:.X.p|rintf("%|
|00002fb0| 25 25 25 50 61 67 65 73 | 3a 20 25 64 20 2d 31 5c |%%%Pages|: %d -1\|
|00002fc0| 6e 22 2c 20 6e 70 61 67 | 65 73 29 3b 0a 58 09 62 |n", npag|es);.X.b|
|00002fd0| 72 65 61 6b 3b 0a 58 20 | 20 20 20 20 20 63 61 73 |reak;.X | cas|
|00002fe0| 65 20 2d 31 3a 0a 58 09 | 64 6f 6e 74 5f 72 65 76 |e -1:.X.|dont_rev|
|00002ff0| 65 72 73 65 20 3d 20 31 | 3b 0a 58 09 70 72 69 6e |erse = 1|;.X.prin|
|00003000| 74 66 28 22 25 25 25 25 | 50 61 67 65 73 3a 20 25 |tf("%%%%|Pages: %|
|00003010| 64 20 2d 31 5c 6e 22 2c | 20 6e 70 61 67 65 73 29 |d -1\n",| npages)|
|00003020| 3b 0a 58 09 62 72 65 61 | 6b 3b 0a 58 20 20 20 20 |;.X.brea|k;.X |
|00003030| 20 20 63 61 73 65 20 30 | 3a 0a 58 09 2f 2a 20 77 | case 0|:.X./* w|
|00003040| 68 61 74 20 73 68 6f 75 | 6c 64 20 77 65 20 64 6f |hat shou|ld we do|
|00003050| 20 68 65 72 65 3f 20 2a | 2f 0a 58 20 20 20 20 20 | here? *|/.X |
|00003060| 20 64 65 66 61 75 6c 74 | 3a 0a 58 09 70 72 69 6e | default|:.X.prin|
|00003070| 74 66 28 22 25 25 25 25 | 50 61 67 65 73 3a 20 25 |tf("%%%%|Pages: %|
|00003080| 64 20 25 64 5c 6e 22 2c | 20 6e 70 61 67 65 73 2c |d %d\n",| npages,|
|00003090| 20 70 61 67 65 5f 6f 72 | 64 65 72 29 3b 0a 58 09 | page_or|der);.X.|
|000030a0| 62 72 65 61 6b 3b 0a 58 | 20 20 20 20 20 20 7d 0a |break;.X| }.|
|000030b0| 58 20 20 20 20 7d 0a 58 | 20 20 20 20 65 6c 73 65 |X }.X| else|
|000030c0| 20 69 66 20 28 6e 70 61 | 67 65 73 20 3e 3d 20 30 | if (npa|ges >= 0|
|000030d0| 29 0a 58 20 20 20 20 20 | 20 70 72 69 6e 74 66 28 |).X | printf(|
|000030e0| 22 25 25 25 25 50 61 67 | 65 73 3a 20 25 64 5c 6e |"%%%%Pag|es: %d\n|
|000030f0| 22 2c 20 6e 70 61 67 65 | 73 29 3b 0a 58 20 20 7d |", npage|s);.X }|
|00003100| 0a 58 20 20 65 6c 73 65 | 0a 58 20 20 20 20 64 6f |.X else|.X do|
|00003110| 6e 74 5f 72 65 76 65 72 | 73 65 20 3d 20 31 3b 0a |nt_rever|se = 1;.|
|00003120| 58 20 20 0a 58 20 20 70 | 72 69 6e 74 66 28 22 25 |X .X p|rintf("%|
|00003130| 25 25 25 45 6e 64 43 6f | 6d 6d 65 6e 74 73 5c 6e |%%%EndCo|mments\n|
|00003140| 22 29 3b 0a 58 0a 58 20 | 20 69 66 20 28 64 6f 6e |");.X.X | if (don|
|00003150| 74 5f 72 65 76 65 72 73 | 65 29 0a 58 20 20 20 20 |t_revers|e).X |
|00003160| 63 6f 70 79 5f 61 6e 64 | 5f 65 78 69 74 28 73 74 |copy_and|_exit(st|
|00003170| 64 69 6e 29 3b 0a 58 0a | 58 20 20 2f 2a 20 70 72 |din);.X.|X /* pr|
|00003180| 6f 63 65 73 73 20 74 68 | 65 20 70 72 6f 6c 6f 67 |ocess th|e prolog|
|00003190| 75 65 20 2a 2f 0a 58 20 | 20 77 68 69 6c 65 20 28 |ue */.X | while (|
|000031a0| 70 65 6e 64 69 6e 67 5f | 6c 69 6e 65 20 7c 7c 20 |pending_|line || |
|000031b0| 67 65 74 5f 6c 69 6e 65 | 28 26 6c 62 2c 20 73 74 |get_line|(&lb, st|
|000031c0| 64 69 6e 29 29 20 7b 0a | 58 20 20 20 20 70 65 6e |din)) {.|X pen|
|000031d0| 64 69 6e 67 5f 6c 69 6e | 65 20 3d 20 30 3b 0a 58 |ding_lin|e = 0;.X|
|000031e0| 20 20 20 20 69 66 20 28 | 73 74 72 70 72 65 66 69 | if (|strprefi|
|000031f0| 78 28 6c 62 2e 62 75 66 | 2c 20 22 25 25 42 65 67 |x(lb.buf|, "%%Beg|
|00003200| 69 6e 44 6f 63 75 6d 65 | 6e 74 22 29 29 0a 58 20 |inDocume|nt")).X |
|00003210| 20 20 20 20 20 2b 2b 6c | 65 76 65 6c 3b 0a 58 20 | ++l|evel;.X |
|00003220| 20 20 20 65 6c 73 65 20 | 69 66 20 28 73 74 72 70 | else |if (strp|
|00003230| 72 65 66 69 78 28 6c 62 | 2e 62 75 66 2c 20 22 25 |refix(lb|.buf, "%|
|00003240| 25 45 6e 64 44 6f 63 75 | 6d 65 6e 74 22 29 29 20 |%EndDocu|ment")) |
|00003250| 7b 0a 58 20 20 20 20 20 | 20 69 66 20 28 6c 65 76 |{.X | if (lev|
|00003260| 65 6c 20 3e 20 30 29 0a | 58 09 2d 2d 6c 65 76 65 |el > 0).|X.--leve|
|00003270| 6c 3b 0a 58 20 20 20 20 | 7d 0a 58 20 20 20 20 65 |l;.X |}.X e|
|00003280| 6c 73 65 20 69 66 20 28 | 6c 65 76 65 6c 20 3d 3d |lse if (|level ==|
|00003290| 20 30 20 26 26 20 73 74 | 72 70 72 65 66 69 78 28 | 0 && st|rprefix(|
|000032a0| 6c 62 2e 62 75 66 2c 20 | 22 25 25 50 61 67 65 3a |lb.buf, |"%%Page:|
|000032b0| 22 29 29 20 7b 0a 58 20 | 20 20 20 20 20 70 65 6e |")) {.X | pen|
|000032c0| 64 69 6e 67 5f 6c 69 6e | 65 20 3d 20 31 3b 0a 58 |ding_lin|e = 1;.X|
|000032d0| 20 20 20 20 20 20 62 72 | 65 61 6b 3b 0a 58 20 20 | br|eak;.X |
|000032e0| 20 20 7d 0a 58 20 20 20 | 20 70 75 74 5f 6c 69 6e | }.X | put_lin|
|000032f0| 65 28 26 6c 62 2c 20 73 | 74 64 6f 75 74 29 3b 0a |e(&lb, s|tdout);.|
|00003300| 58 20 20 7d 0a 58 0a 58 | 20 20 2f 2a 20 69 66 20 |X }.X.X| /* if |
|00003310| 77 65 20 64 69 64 6e 27 | 74 20 66 69 6e 64 20 61 |we didn'|t find a|
|00003320| 6e 79 20 25 25 50 61 67 | 65 20 63 6f 6d 6d 65 6e |ny %%Pag|e commen|
|00003330| 74 73 2c 20 77 65 27 72 | 65 20 64 6f 6e 65 20 2a |ts, we'r|e done *|
|00003340| 2f 0a 58 20 20 69 66 20 | 28 21 70 65 6e 64 69 6e |/.X if |(!pendin|
|00003350| 67 5f 6c 69 6e 65 29 0a | 58 20 20 20 20 65 78 69 |g_line).|X exi|
|00003360| 74 28 30 29 3b 0a 58 0a | 58 20 20 2f 2a 20 6f 70 |t(0);.X.|X /* op|
|00003370| 65 6e 20 61 20 74 65 6d | 70 6f 72 61 72 79 20 66 |en a tem|porary f|
|00003380| 69 6c 65 20 69 66 20 6e | 65 63 65 73 73 61 72 79 |ile if n|ecessary|
|00003390| 20 2a 2f 0a 58 20 20 69 | 66 20 28 66 74 65 6c 6c | */.X i|f (ftell|
|000033a0| 28 73 74 64 69 6e 29 20 | 3d 3d 20 2d 31 29 20 7b |(stdin) |== -1) {|
|000033b0| 0a 58 20 20 20 20 74 65 | 6d 70 66 70 20 3d 20 74 |.X te|mpfp = t|
|000033c0| 6d 70 66 69 6c 65 28 29 | 3b 0a 58 20 20 20 20 63 |mpfile()|;.X c|
|000033d0| 6c 65 61 72 65 72 72 28 | 73 74 64 69 6e 29 3b 0a |learerr(|stdin);.|
|000033e0| 58 20 20 7d 0a 58 0a 58 | 20 20 2f 2a 20 70 72 6f |X }.X.X| /* pro|
|000033f0| 63 65 73 73 20 74 68 65 | 20 62 6f 64 79 20 2a 2f |cess the| body */|
|00003400| 0a 58 20 20 77 68 69 6c | 65 20 28 70 65 6e 64 69 |.X whil|e (pendi|
|00003410| 6e 67 5f 6c 69 6e 65 20 | 7c 7c 20 67 65 74 5f 6c |ng_line ||| get_l|
|00003420| 69 6e 65 28 26 6c 62 2c | 20 73 74 64 69 6e 29 29 |ine(&lb,| stdin))|
|00003430| 20 7b 0a 58 20 20 20 20 | 70 65 6e 64 69 6e 67 5f | {.X |pending_|
|00003440| 6c 69 6e 65 20 3d 20 30 | 3b 0a 58 20 20 20 20 69 |line = 0|;.X i|
|00003450| 66 20 28 73 74 72 70 72 | 65 66 69 78 28 6c 62 2e |f (strpr|efix(lb.|
|00003460| 62 75 66 2c 20 22 25 25 | 42 65 67 69 6e 44 6f 63 |buf, "%%|BeginDoc|
|00003470| 75 6d 65 6e 74 22 29 29 | 0a 58 20 20 20 20 20 20 |ument"))|.X |
|00003480| 2b 2b 6c 65 76 65 6c 3b | 0a 58 20 20 20 20 65 6c |++level;|.X el|
|00003490| 73 65 20 69 66 20 28 73 | 74 72 70 72 65 66 69 78 |se if (s|trprefix|
|000034a0| 28 6c 62 2e 62 75 66 2c | 20 22 25 25 45 6e 64 44 |(lb.buf,| "%%EndD|
|000034b0| 6f 63 75 6d 65 6e 74 22 | 29 29 20 7b 0a 58 20 20 |ocument"|)) {.X |
|000034c0| 20 20 20 20 69 66 20 28 | 6c 65 76 65 6c 20 3e 20 | if (|level > |
|000034d0| 30 29 0a 58 09 2d 2d 6c | 65 76 65 6c 3b 0a 58 20 |0).X.--l|evel;.X |
|000034e0| 20 20 20 7d 0a 58 20 20 | 20 20 65 6c 73 65 20 69 | }.X | else i|
|000034f0| 66 20 28 6c 65 76 65 6c | 20 3d 3d 20 30 29 20 7b |f (level| == 0) {|
|00003500| 0a 58 20 20 20 20 20 20 | 69 66 20 28 73 74 72 70 |.X |if (strp|
|00003510| 72 65 66 69 78 28 6c 62 | 2e 62 75 66 2c 20 22 25 |refix(lb|.buf, "%|
|00003520| 25 50 61 67 65 3a 22 29 | 29 20 7b 0a 58 09 70 61 |%Page:")|) {.X.pa|
|00003530| 67 65 5f 6c 69 73 74 20 | 2a 74 65 6d 20 3d 20 28 |ge_list |*tem = (|
|00003540| 70 61 67 65 5f 6c 69 73 | 74 20 2a 29 78 6d 61 6c |page_lis|t *)xmal|
|00003550| 6c 6f 63 28 73 69 7a 65 | 6f 66 28 70 61 67 65 5f |loc(size|of(page_|
|00003560| 6c 69 73 74 29 29 3b 0a | 58 09 74 65 6d 2d 3e 6e |list));.|X.tem->n|
|00003570| 65 78 74 20 3d 20 70 6c | 3b 0a 58 09 74 65 6d 2d |ext = pl|;.X.tem-|
|00003580| 3e 70 6f 73 20 3d 20 74 | 65 6d 70 66 70 20 3f 20 |>pos = t|empfp ? |
|00003590| 66 74 65 6c 6c 28 74 65 | 6d 70 66 70 29 20 3a 20 |ftell(te|mpfp) : |
|000035a0| 66 74 65 6c 6c 28 73 74 | 64 69 6e 29 20 2d 20 6c |ftell(st|din) - l|
|000035b0| 62 2e 6c 65 6e 3b 0a 58 | 09 70 6c 20 3d 20 74 65 |b.len;.X|.pl = te|
|000035c0| 6d 3b 0a 58 20 20 20 20 | 20 20 7d 0a 58 20 20 20 |m;.X | }.X |
|000035d0| 20 20 20 65 6c 73 65 20 | 69 66 20 28 73 74 72 70 | else |if (strp|
|000035e0| 72 65 66 69 78 28 6c 62 | 2e 62 75 66 2c 20 22 25 |refix(lb|.buf, "%|
|000035f0| 25 54 72 61 69 6c 65 72 | 22 29 29 20 7b 0a 58 09 |%Trailer|")) {.X.|
|00003600| 70 65 6e 64 69 6e 67 5f | 6c 69 6e 65 20 3d 20 31 |pending_|line = 1|
|00003610| 3b 0a 58 09 62 72 65 61 | 6b 3b 0a 58 20 20 20 20 |;.X.brea|k;.X |
|00003620| 20 20 7d 0a 58 20 20 20 | 20 7d 0a 58 20 20 20 20 | }.X | }.X |
|00003630| 69 66 20 28 74 65 6d 70 | 66 70 20 21 3d 20 4e 55 |if (temp|fp != NU|
|00003640| 4c 4c 29 0a 58 20 20 20 | 20 20 20 70 75 74 5f 6c |LL).X | put_l|
|00003650| 69 6e 65 28 26 6c 62 2c | 20 74 65 6d 70 66 70 29 |ine(&lb,| tempfp)|
|00003660| 3b 0a 58 20 20 7d 0a 58 | 0a 58 20 20 2f 2a 20 70 |;.X }.X|.X /* p|
|00003670| 72 6f 63 65 73 73 20 74 | 68 65 20 74 72 61 69 6c |rocess t|he trail|
|00003680| 65 72 20 2a 2f 0a 58 20 | 20 69 66 20 28 70 65 6e |er */.X | if (pen|
|00003690| 64 69 6e 67 5f 6c 69 6e | 65 29 20 7b 0a 58 20 20 |ding_lin|e) {.X |
|000036a0| 20 20 74 72 61 69 6c 65 | 72 5f 70 6f 73 20 3d 20 | traile|r_pos = |
|000036b0| 74 65 6d 70 66 70 20 3f | 20 66 74 65 6c 6c 28 74 |tempfp ?| ftell(t|
|000036c0| 65 6d 70 66 70 29 20 3a | 20 66 74 65 6c 6c 28 73 |empfp) :| ftell(s|
|000036d0| 74 64 69 6e 29 20 2d 20 | 6c 62 2e 6c 65 6e 3b 0a |tdin) - |lb.len;.|
|000036e0| 58 20 20 20 20 77 68 69 | 6c 65 20 28 70 65 6e 64 |X whi|le (pend|
|000036f0| 69 6e 67 5f 6c 69 6e 65 | 20 7c 7c 20 67 65 74 5f |ing_line| || get_|
|00003700| 6c 69 6e 65 28 26 6c 62 | 2c 20 73 74 64 69 6e 29 |line(&lb|, stdin)|
|00003710| 29 20 7b 0a 58 20 20 20 | 20 20 20 70 65 6e 64 69 |) {.X | pendi|
|00003720| 6e 67 5f 6c 69 6e 65 20 | 3d 20 30 3b 0a 58 20 20 |ng_line |= 0;.X |
|00003730| 20 20 20 20 69 66 20 28 | 70 61 67 65 73 5f 63 6f | if (|pages_co|
|00003740| 6d 6d 65 6e 74 5f 61 74 | 65 6e 64 20 26 26 20 73 |mment_at|end && s|
|00003750| 74 72 70 72 65 66 69 78 | 28 6c 62 2e 62 75 66 2c |trprefix|(lb.buf,|
|00003760| 20 22 25 25 50 61 67 65 | 73 3a 22 29 29 20 7b 0a | "%%Page|s:")) {.|
|00003770| 58 09 69 6e 74 20 6e 70 | 61 67 65 73 2c 20 70 61 |X.int np|ages, pa|
|00003780| 67 65 5f 6f 72 64 65 72 | 3b 0a 58 09 69 66 20 28 |ge_order|;.X.if (|
|00003790| 73 73 63 61 6e 66 28 6c | 62 2e 62 75 66 20 2b 20 |sscanf(l|b.buf + |
|000037a0| 38 2c 20 22 25 64 20 25 | 64 22 2c 20 26 6e 70 61 |8, "%d %|d", &npa|
|000037b0| 67 65 73 2c 20 26 70 61 | 67 65 5f 6f 72 64 65 72 |ges, &pa|ge_order|
|000037c0| 29 20 3d 3d 20 32 0a 58 | 09 20 20 20 20 26 26 20 |) == 2.X|. && |
|000037d0| 70 61 67 65 5f 6f 72 64 | 65 72 20 3d 3d 20 2d 31 |page_ord|er == -1|
|000037e0| 29 0a 58 09 20 20 64 6f | 6e 74 5f 72 65 76 65 72 |).X. do|nt_rever|
|000037f0| 73 65 20 3d 20 31 3b 0a | 58 09 65 6c 73 65 0a 58 |se = 1;.|X.else.X|
|00003800| 09 20 20 64 6f 6e 74 5f | 72 65 76 65 72 73 65 20 |. dont_|reverse |
|00003810| 3d 20 30 3b 0a 58 20 20 | 20 20 20 20 7d 0a 58 20 |= 0;.X | }.X |
|00003820| 20 20 20 20 20 69 66 20 | 28 74 65 6d 70 66 70 20 | if |(tempfp |
|00003830| 21 3d 20 4e 55 4c 4c 29 | 0a 58 09 70 75 74 5f 6c |!= NULL)|.X.put_l|
|00003840| 69 6e 65 28 26 6c 62 2c | 20 74 65 6d 70 66 70 29 |ine(&lb,| tempfp)|
|00003850| 3b 0a 58 20 20 20 20 7d | 0a 58 20 20 7d 0a 58 0a |;.X }|.X }.X.|
|00003860| 58 20 20 69 66 20 28 74 | 65 6d 70 66 70 20 3d 3d |X if (t|empfp ==|
|00003870| 20 4e 55 4c 4c 29 0a 58 | 20 20 20 20 74 65 6d 70 | NULL).X| temp|
|00003880| 66 70 20 3d 20 73 74 64 | 69 6e 3b 0a 58 0a 58 20 |fp = std|in;.X.X |
|00003890| 20 69 66 20 28 64 6f 6e | 74 5f 72 65 76 65 72 73 | if (don|t_revers|
|000038a0| 65 29 20 7b 0a 58 20 20 | 20 20 6c 6f 6e 67 20 66 |e) {.X | long f|
|000038b0| 69 72 73 74 5f 70 61 67 | 65 5f 70 6f 73 3b 0a 58 |irst_pag|e_pos;.X|
|000038c0| 20 20 20 20 69 66 20 28 | 70 6c 20 3d 3d 20 4e 55 | if (|pl == NU|
|000038d0| 4c 4c 29 0a 58 20 20 20 | 20 20 20 61 62 6f 72 74 |LL).X | abort|
|000038e0| 28 29 3b 0a 58 20 20 20 | 20 2f 2a 20 66 69 6e 64 |();.X | /* find|
|000038f0| 20 74 68 65 20 70 6f 73 | 69 74 69 6f 6e 20 6f 66 | the pos|ition of|
|00003900| 20 74 68 65 20 66 69 72 | 73 74 20 70 61 67 65 20 | the fir|st page |
|00003910| 2a 2f 0a 58 20 20 20 20 | 77 68 69 6c 65 20 28 70 |*/.X |while (p|
|00003920| 6c 20 21 3d 20 4e 55 4c | 4c 29 20 7b 0a 58 20 20 |l != NUL|L) {.X |
|00003930| 20 20 20 20 70 61 67 65 | 5f 6c 69 73 74 20 2a 74 | page|_list *t|
|00003940| 65 6d 20 3d 20 70 6c 3b | 0a 58 20 20 20 20 20 20 |em = pl;|.X |
|00003950| 66 69 72 73 74 5f 70 61 | 67 65 5f 70 6f 73 20 3d |first_pa|ge_pos =|
|00003960| 20 70 6c 2d 3e 70 6f 73 | 3b 0a 58 20 20 20 20 20 | pl->pos|;.X |
|00003970| 20 70 6c 20 3d 20 70 6c | 2d 3e 6e 65 78 74 3b 0a | pl = pl|->next;.|
|00003980| 58 20 20 20 20 20 20 66 | 72 65 65 28 28 63 68 61 |X f|ree((cha|
|00003990| 72 20 2a 29 74 65 6d 29 | 3b 0a 58 20 20 20 20 7d |r *)tem)|;.X }|
|000039a0| 0a 58 20 20 20 20 66 73 | 65 65 6b 28 74 65 6d 70 |.X fs|eek(temp|
|000039b0| 66 70 2c 20 66 69 72 73 | 74 5f 70 61 67 65 5f 70 |fp, firs|t_page_p|
|000039c0| 6f 73 2c 20 30 29 3b 0a | 58 20 20 20 20 63 6f 70 |os, 0);.|X cop|
|000039d0| 79 5f 61 6e 64 5f 65 78 | 69 74 28 74 65 6d 70 66 |y_and_ex|it(tempf|
|000039e0| 70 29 3b 0a 58 20 20 7d | 0a 58 0a 58 20 20 2f 2a |p);.X }|.X.X /*|
|000039f0| 20 6f 75 74 70 75 74 20 | 65 61 63 68 20 70 61 67 | output |each pag|
|00003a00| 65 20 2a 2f 0a 58 20 20 | 70 72 65 76 5f 70 6f 73 |e */.X |prev_pos|
|00003a10| 20 3d 20 74 72 61 69 6c | 65 72 5f 70 6f 73 20 3d | = trail|er_pos =|
|00003a20| 3d 20 2d 31 20 3f 20 66 | 74 65 6c 6c 28 74 65 6d |= -1 ? f|tell(tem|
|00003a30| 70 66 70 29 20 3a 20 74 | 72 61 69 6c 65 72 5f 70 |pfp) : t|railer_p|
|00003a40| 6f 73 3b 0a 58 20 20 70 | 61 67 65 6e 6f 20 3d 20 |os;.X p|ageno = |
|00003a50| 31 3b 0a 58 20 20 77 68 | 69 6c 65 20 28 70 6c 20 |1;.X wh|ile (pl |
|00003a60| 21 3d 20 4e 55 4c 4c 29 | 20 7b 0a 58 20 20 20 20 |!= NULL)| {.X |
|00003a70| 63 68 61 72 20 2a 70 74 | 72 2c 20 2a 6c 61 62 65 |char *pt|r, *labe|
|00003a80| 6c 3b 0a 58 20 20 20 20 | 69 6e 74 20 63 6f 75 6e |l;.X |int coun|
|00003a90| 74 20 3d 20 70 72 65 76 | 5f 70 6f 73 20 2d 20 70 |t = prev|_pos - p|
|00003aa0| 6c 2d 3e 70 6f 73 3b 0a | 58 20 20 20 20 66 73 65 |l->pos;.|X fse|
|00003ab0| 65 6b 28 74 65 6d 70 66 | 70 2c 20 70 6c 2d 3e 70 |ek(tempf|p, pl->p|
|00003ac0| 6f 73 2c 20 30 29 3b 0a | 58 20 20 20 20 69 66 20 |os, 0);.|X if |
|00003ad0| 28 21 67 65 74 5f 6c 69 | 6e 65 28 26 6c 62 2c 20 |(!get_li|ne(&lb, |
|00003ae0| 74 65 6d 70 66 70 29 29 | 0a 58 20 20 20 20 20 20 |tempfp))|.X |
|00003af0| 61 62 6f 72 74 28 29 3b | 0a 58 20 20 20 20 69 66 |abort();|.X if|
|00003b00| 20 28 21 73 74 72 70 72 | 65 66 69 78 28 6c 62 2e | (!strpr|efix(lb.|
|00003b10| 62 75 66 2c 20 22 25 25 | 50 61 67 65 3a 22 29 29 |buf, "%%|Page:"))|
|00003b20| 0a 58 20 20 20 20 20 20 | 61 62 6f 72 74 28 29 3b |.X |abort();|
|00003b30| 0a 58 20 20 20 20 70 74 | 72 20 3d 20 6c 62 2e 62 |.X pt|r = lb.b|
|00003b40| 75 66 20 2b 20 37 3b 0a | 58 20 20 20 20 77 68 69 |uf + 7;.|X whi|
|00003b50| 6c 65 20 28 2a 70 74 72 | 20 3d 3d 20 27 20 27 29 |le (*ptr| == ' ')|
|00003b60| 0a 58 20 20 20 20 20 20 | 70 74 72 2b 2b 3b 0a 58 |.X |ptr++;.X|
|00003b70| 20 20 20 20 6c 61 62 65 | 6c 20 3d 20 70 74 72 3b | labe|l = ptr;|
|00003b80| 0a 58 20 20 20 20 77 68 | 69 6c 65 20 28 2a 70 74 |.X wh|ile (*pt|
|00003b90| 72 20 21 3d 20 27 5c 30 | 27 20 26 26 20 21 28 69 |r != '\0|' && !(i|
|00003ba0| 73 61 73 63 69 69 28 2a | 70 74 72 29 20 26 26 20 |sascii(*|ptr) && |
|00003bb0| 69 73 73 70 61 63 65 28 | 2a 70 74 72 29 29 29 0a |isspace(|*ptr))).|
|00003bc0| 58 20 20 20 20 20 20 70 | 74 72 2b 2b 3b 0a 58 20 |X p|tr++;.X |
|00003bd0| 20 20 20 2a 70 74 72 20 | 3d 20 27 5c 30 27 3b 0a | *ptr |= '\0';.|
|00003be0| 58 20 20 20 20 69 66 20 | 28 2a 6c 61 62 65 6c 20 |X if |(*label |
|00003bf0| 3d 3d 20 27 5c 30 27 29 | 0a 58 20 20 20 20 20 20 |== '\0')|.X |
|00003c00| 6c 61 62 65 6c 20 3d 20 | 22 3f 22 3b 0a 58 20 20 |label = |"?";.X |
|00003c10| 20 20 70 72 69 6e 74 66 | 28 22 25 25 25 25 50 61 | printf|("%%%%Pa|
|00003c20| 67 65 3a 20 25 73 20 25 | 64 5c 6e 22 2c 20 6c 61 |ge: %s %|d\n", la|
|00003c30| 62 65 6c 2c 20 70 61 67 | 65 6e 6f 29 3b 0a 58 20 |bel, pag|eno);.X |
|00003c40| 20 20 20 70 61 67 65 6e | 6f 20 2b 3d 20 31 3b 0a | pagen|o += 1;.|
|00003c50| 58 20 20 20 20 63 6f 75 | 6e 74 20 2d 3d 20 6c 62 |X cou|nt -= lb|
|00003c60| 2e 6c 65 6e 3b 0a 58 20 | 20 20 20 77 68 69 6c 65 |.len;.X | while|
|00003c70| 20 28 2d 2d 63 6f 75 6e | 74 20 3e 3d 20 30 29 20 | (--coun|t >= 0) |
|00003c80| 7b 0a 58 20 20 20 20 20 | 20 69 6e 74 20 63 20 3d |{.X | int c =|
|00003c90| 20 67 65 74 63 28 74 65 | 6d 70 66 70 29 3b 0a 58 | getc(te|mpfp);.X|
|00003ca0| 20 20 20 20 20 20 69 66 | 20 28 63 20 3d 3d 20 45 | if| (c == E|
|00003cb0| 4f 46 29 0a 58 09 61 62 | 6f 72 74 28 29 3b 0a 58 |OF).X.ab|ort();.X|
|00003cc0| 20 20 20 20 20 20 70 75 | 74 63 28 63 2c 20 73 74 | pu|tc(c, st|
|00003cd0| 64 6f 75 74 29 3b 0a 58 | 20 20 20 20 7d 0a 58 20 |dout);.X| }.X |
|00003ce0| 20 20 20 70 72 65 76 5f | 70 6f 73 20 3d 20 70 6c | prev_|pos = pl|
|00003cf0| 2d 3e 70 6f 73 3b 0a 58 | 20 20 20 20 70 6c 20 3d |->pos;.X| pl =|
|00003d00| 20 70 6c 2d 3e 6e 65 78 | 74 3b 0a 58 20 20 7d 0a | pl->nex|t;.X }.|
|00003d10| 58 0a 58 20 20 2f 2a 20 | 6f 75 74 70 75 74 20 74 |X.X /* |output t|
|00003d20| 68 65 20 74 72 61 69 6c | 65 72 20 69 66 20 74 68 |he trail|er if th|
|00003d30| 65 72 65 20 69 73 20 6f | 6e 65 20 2a 2f 0a 58 20 |ere is o|ne */.X |
|00003d40| 20 69 66 20 28 74 72 61 | 69 6c 65 72 5f 70 6f 73 | if (tra|iler_pos|
|00003d50| 20 21 3d 20 2d 31 29 20 | 7b 0a 58 20 20 20 20 66 | != -1) |{.X f|
|00003d60| 73 65 65 6b 28 74 65 6d | 70 66 70 2c 20 74 72 61 |seek(tem|pfp, tra|
|00003d70| 69 6c 65 72 5f 70 6f 73 | 2c 20 30 29 3b 0a 58 20 |iler_pos|, 0);.X |
|00003d80| 20 20 20 63 6f 70 79 5f | 61 6e 64 5f 65 78 69 74 | copy_|and_exit|
|00003d90| 28 74 65 6d 70 66 70 29 | 3b 0a 58 20 20 7d 0a 58 |(tempfp)|;.X }.X|
|00003da0| 0a 58 20 20 65 78 69 74 | 28 30 29 3b 0a 58 7d 0a |.X exit|(0);.X}.|
|00003db0| 58 0a 58 63 68 61 72 20 | 2a 78 6d 61 6c 6c 6f 63 |X.Xchar |*xmalloc|
|00003dc0| 28 73 69 7a 65 29 0a 58 | 69 6e 74 20 73 69 7a 65 |(size).X|int size|
|00003dd0| 3b 0a 58 7b 0a 58 20 20 | 63 68 61 72 20 2a 74 65 |;.X{.X |char *te|
|00003de0| 6d 3b 0a 58 20 20 69 66 | 20 28 28 74 65 6d 20 3d |m;.X if| ((tem =|
|00003df0| 20 6d 61 6c 6c 6f 63 28 | 73 69 7a 65 29 29 20 3d | malloc(|size)) =|
|00003e00| 3d 20 4e 55 4c 4c 29 20 | 7b 0a 58 20 20 20 20 66 |= NULL) |{.X f|
|00003e10| 70 72 69 6e 74 66 28 73 | 74 64 65 72 72 2c 20 22 |printf(s|tderr, "|
|00003e20| 25 73 3a 20 6f 75 74 20 | 6f 66 20 6d 65 6d 6f 72 |%s: out |of memor|
|00003e30| 79 5c 6e 22 2c 20 70 72 | 6f 67 29 3b 0a 58 20 20 |y\n", pr|og);.X |
|00003e40| 20 20 65 78 69 74 28 31 | 29 3b 0a 58 20 20 7d 0a | exit(1|);.X }.|
|00003e50| 58 20 20 72 65 74 75 72 | 6e 20 74 65 6d 3b 0a 58 |X retur|n tem;.X|
|00003e60| 7d 0a 58 0a 58 63 68 61 | 72 20 2a 78 72 65 61 6c |}.X.Xcha|r *xreal|
|00003e70| 6c 6f 63 28 70 74 72 2c | 20 73 69 7a 65 29 0a 58 |loc(ptr,| size).X|
|00003e80| 63 68 61 72 20 2a 70 74 | 72 3b 0a 58 69 6e 74 20 |char *pt|r;.Xint |
|00003e90| 73 69 7a 65 3b 0a 58 7b | 0a 58 20 20 63 68 61 72 |size;.X{|.X char|
|00003ea0| 20 2a 74 65 6d 3b 0a 58 | 20 20 69 66 20 28 28 74 | *tem;.X| if ((t|
|00003eb0| 65 6d 20 3d 20 72 65 61 | 6c 6c 6f 63 28 70 74 72 |em = rea|lloc(ptr|
|00003ec0| 2c 20 73 69 7a 65 29 29 | 20 3d 3d 20 4e 55 4c 4c |, size))| == NULL|
|00003ed0| 29 20 7b 0a 58 20 20 20 | 20 66 70 72 69 6e 74 66 |) {.X | fprintf|
|00003ee0| 28 73 74 64 65 72 72 2c | 20 22 25 73 3a 20 6f 75 |(stderr,| "%s: ou|
|00003ef0| 74 20 6f 66 20 6d 65 6d | 6f 72 79 5c 6e 22 2c 20 |t of mem|ory\n", |
|00003f00| 70 72 6f 67 29 3b 0a 58 | 20 20 20 20 65 78 69 74 |prog);.X| exit|
|00003f10| 28 31 29 3b 0a 58 20 20 | 7d 0a 58 20 20 72 65 74 |(1);.X |}.X ret|
|00003f20| 75 72 6e 20 74 65 6d 3b | 0a 58 7d 0a 45 4e 44 5f |urn tem;|.X}.END_|
|00003f30| 4f 46 5f 46 49 4c 45 0a | 69 66 20 74 65 73 74 20 |OF_FILE.|if test |
|00003f40| 36 36 32 36 20 2d 6e 65 | 20 60 77 63 20 2d 63 20 |6626 -ne| `wc -c |
|00003f50| 3c 27 70 73 72 65 76 2e | 63 27 60 3b 20 74 68 65 |<'psrev.|c'`; the|
|00003f60| 6e 0a 20 20 20 20 65 63 | 68 6f 20 73 68 61 72 3a |n. ec|ho shar:|
|00003f70| 20 5c 22 27 70 73 72 65 | 76 2e 63 27 5c 22 20 75 | \"'psre|v.c'\" u|
|00003f80| 6e 70 61 63 6b 65 64 20 | 77 69 74 68 20 77 72 6f |npacked |with wro|
|00003f90| 6e 67 20 73 69 7a 65 21 | 0a 66 69 0a 23 20 65 6e |ng size!|.fi.# en|
|00003fa0| 64 20 6f 66 20 27 70 73 | 72 65 76 2e 63 27 0a 66 |d of 'ps|rev.c'.f|
|00003fb0| 69 0a 69 66 20 74 65 73 | 74 20 2d 66 20 27 6c 70 |i.if tes|t -f 'lp|
|00003fc0| 72 70 73 2e 63 27 20 2d | 61 20 22 24 7b 31 7d 22 |rps.c' -|a "${1}"|
|00003fd0| 20 21 3d 20 22 2d 63 22 | 20 3b 20 74 68 65 6e 20 | != "-c"| ; then |
|00003fe0| 0a 20 20 65 63 68 6f 20 | 73 68 61 72 3a 20 57 69 |. echo |shar: Wi|
|00003ff0| 6c 6c 20 6e 6f 74 20 63 | 6c 6f 62 62 65 72 20 65 |ll not c|lobber e|
|00004000| 78 69 73 74 69 6e 67 20 | 66 69 6c 65 20 5c 22 27 |xisting |file \"'|
|00004010| 6c 70 72 70 73 2e 63 27 | 5c 22 0a 65 6c 73 65 0a |lprps.c'|\".else.|
|00004020| 65 63 68 6f 20 73 68 61 | 72 3a 20 45 78 74 72 61 |echo sha|r: Extra|
|00004030| 63 74 69 6e 67 20 5c 22 | 27 6c 70 72 70 73 2e 63 |cting \"|'lprps.c|
|00004040| 27 5c 22 20 5c 28 31 32 | 36 37 36 20 63 68 61 72 |'\" \(12|676 char|
|00004050| 61 63 74 65 72 73 5c 29 | 0a 73 65 64 20 22 73 2f |acters\)|.sed "s/|
|00004060| 5e 58 2f 2f 22 20 3e 27 | 6c 70 72 70 73 2e 63 27 |^X//" >'|lprps.c'|
|00004070| 20 3c 3c 27 45 4e 44 5f | 4f 46 5f 46 49 4c 45 27 | <<'END_|OF_FILE'|
|00004080| 0a 58 2f 2a 20 6c 70 72 | 70 73 2e 63 20 2a 2f 0a |.X/* lpr|ps.c */.|
|00004090| 58 0a 58 23 69 66 6e 64 | 65 66 20 6c 69 6e 74 0a |X.X#ifnd|ef lint.|
|000040a0| 58 73 74 61 74 69 63 20 | 63 68 61 72 20 72 63 73 |Xstatic |char rcs|
|000040b0| 69 64 5b 5d 20 3d 20 22 | 24 48 65 61 64 65 72 3a |id[] = "|$Header:|
|000040c0| 20 2f 75 73 72 2f 6a 6a | 63 2f 6c 70 72 70 73 2f | /usr/jj|c/lprps/|
|000040d0| 52 43 53 2f 6c 70 72 70 | 73 2e 63 2c 76 20 31 2e |RCS/lprp|s.c,v 1.|
|000040e0| 37 20 39 30 2f 31 32 2f | 31 38 20 31 30 3a 30 37 |7 90/12/|18 10:07|
|000040f0| 3a 32 34 20 6a 6a 63 20 | 52 65 6c 20 24 22 3b 0a |:24 jjc |Rel $";.|
|00004100| 58 23 65 6e 64 69 66 0a | 58 0a 58 23 69 6e 63 6c |X#endif.|X.X#incl|
|00004110| 75 64 65 20 3c 73 74 64 | 69 6f 2e 68 3e 0a 58 23 |ude <std|io.h>.X#|
|00004120| 69 6e 63 6c 75 64 65 20 | 3c 63 74 79 70 65 2e 68 |include |<ctype.h|
|00004130| 3e 0a 58 23 69 6e 63 6c | 75 64 65 20 3c 73 74 72 |>.X#incl|ude <str|
|00004140| 69 6e 67 2e 68 3e 0a 58 | 23 69 6e 63 6c 75 64 65 |ing.h>.X|#include|
|00004150| 20 3c 73 79 73 2f 74 79 | 70 65 73 2e 68 3e 0a 58 | <sys/ty|pes.h>.X|
|00004160| 23 69 6e 63 6c 75 64 65 | 20 3c 73 79 73 2f 69 6f |#include| <sys/io|
|00004170| 63 74 6c 2e 68 3e 0a 58 | 23 69 6e 63 6c 75 64 65 |ctl.h>.X|#include|
|00004180| 20 3c 73 79 73 2f 66 69 | 6c 65 2e 68 3e 0a 58 23 | <sys/fi|le.h>.X#|
|00004190| 69 6e 63 6c 75 64 65 20 | 3c 66 63 6e 74 6c 2e 68 |include |<fcntl.h|
|000041a0| 3e 0a 58 23 69 6e 63 6c | 75 64 65 20 3c 73 79 73 |>.X#incl|ude <sys|
|000041b0| 2f 74 69 6d 65 2e 68 3e | 0a 58 23 69 6e 63 6c 75 |/time.h>|.X#inclu|
|000041c0| 64 65 20 3c 73 69 67 6e | 61 6c 2e 68 3e 0a 58 23 |de <sign|al.h>.X#|
|000041d0| 69 6e 63 6c 75 64 65 20 | 3c 73 79 73 6c 6f 67 2e |include |<syslog.|
|000041e0| 68 3e 0a 58 23 69 6e 63 | 6c 75 64 65 20 3c 65 72 |h>.X#inc|lude <er|
|000041f0| 72 6e 6f 2e 68 3e 0a 58 | 0a 58 23 64 65 66 69 6e |rno.h>.X|.X#defin|
|00004200| 65 20 45 58 49 54 5f 53 | 55 43 43 45 53 53 20 30 |e EXIT_S|UCCESS 0|
|00004210| 0a 58 23 64 65 66 69 6e | 65 20 45 58 49 54 5f 52 |.X#defin|e EXIT_R|
|00004220| 45 50 52 49 4e 54 20 31 | 0a 58 23 64 65 66 69 6e |EPRINT 1|.X#defin|
|00004230| 65 20 45 58 49 54 5f 54 | 48 52 4f 57 5f 41 57 41 |e EXIT_T|HROW_AWA|
|00004240| 59 20 32 0a 58 0a 58 23 | 64 65 66 69 6e 65 20 4f |Y 2.X.X#|define O|
|00004250| 42 53 49 5a 45 20 31 30 | 32 34 0a 58 23 64 65 66 |BSIZE 10|24.X#def|
|00004260| 69 6e 65 20 49 42 53 49 | 5a 45 20 31 30 32 34 0a |ine IBSI|ZE 1024.|
|00004270| 58 0a 58 63 68 61 72 20 | 2a 6d 6b 74 65 6d 70 28 |X.Xchar |*mktemp(|
|00004280| 29 3b 0a 58 63 68 61 72 | 20 2a 73 70 72 69 6e 74 |);.Xchar| *sprint|
|00004290| 66 28 29 3b 20 2f 2a 20 | 73 69 67 68 20 2a 2f 0a |f(); /* |sigh */.|
|000042a0| 58 0a 58 63 68 61 72 20 | 2a 6c 6f 67 69 6e 3b 0a |X.Xchar |*login;.|
|000042b0| 58 63 68 61 72 20 2a 68 | 6f 73 74 3b 0a 58 63 68 |Xchar *h|ost;.Xch|
|000042c0| 61 72 20 2a 61 63 63 6f | 75 6e 74 69 6e 67 5f 66 |ar *acco|unting_f|
|000042d0| 69 6c 65 3b 0a 58 46 49 | 4c 45 20 2a 6d 61 69 6c |ile;.XFI|LE *mail|
|000042e0| 66 70 3b 0a 58 69 6e 74 | 20 69 6e 74 65 72 72 75 |fp;.Xint| interru|
|000042f0| 70 74 5f 66 6c 61 67 20 | 3d 20 30 3b 0a 58 69 6e |pt_flag |= 0;.Xin|
|00004300| 74 20 74 69 6d 65 6f 75 | 74 5f 66 6c 61 67 20 3d |t timeou|t_flag =|
|00004310| 20 30 3b 0a 58 69 6e 74 | 20 70 73 66 64 3b 0a 58 | 0;.Xint| psfd;.X|
|00004320| 2f 2a 20 6e 75 6d 62 65 | 72 20 6f 66 20 30 30 34 |/* numbe|r of 004|
|00004330| 73 20 72 65 63 65 69 76 | 65 64 20 66 72 6f 6d 20 |s receiv|ed from |
|00004340| 70 72 69 6e 74 65 72 20 | 2a 2f 0a 58 69 6e 74 20 |printer |*/.Xint |
|00004350| 65 6f 66 5f 63 6f 75 6e | 74 20 3d 20 30 3b 0a 58 |eof_coun|t = 0;.X|
|00004360| 2f 2a 20 69 66 20 6e 6f | 6e 2d 7a 65 72 6f 20 69 |/* if no|n-zero i|
|00004370| 67 6e 6f 72 65 20 61 6c | 6c 20 69 6e 70 75 74 20 |gnore al|l input |
|00004380| 66 72 6f 6d 20 70 72 69 | 6e 74 65 72 20 6f 74 68 |from pri|nter oth|
|00004390| 65 72 20 74 68 61 6e 20 | 30 30 34 73 20 2a 2f 0a |er than |004s */.|
|000043a0| 58 69 6e 74 20 69 67 6e | 6f 72 65 5f 69 6e 70 75 |Xint ign|ore_inpu|
|000043b0| 74 20 3d 20 30 3b 0a 58 | 2f 2a 20 61 72 65 20 77 |t = 0;.X|/* are w|
|000043c0| 65 20 63 75 72 72 65 6e | 74 6c 79 20 70 72 69 6e |e curren|tly prin|
|000043d0| 74 69 6e 67 20 74 68 65 | 20 75 73 65 72 73 20 6a |ting the| users j|
|000043e0| 6f 62 20 2a 2f 0a 58 69 | 6e 74 20 69 6e 5f 6a 6f |ob */.Xi|nt in_jo|
|000043f0| 62 20 3d 20 30 3b 0a 58 | 0a 58 65 6e 75 6d 20 7b |b = 0;.X|.Xenum {|
|00004400| 0a 58 20 20 4e 4f 52 4d | 41 4c 2c 0a 58 20 20 48 |.X NORM|AL,.X H|
|00004410| 41 44 5f 4f 4e 45 5f 50 | 45 52 43 45 4e 54 2c 0a |AD_ONE_P|ERCENT,.|
|00004420| 58 20 20 48 41 44 5f 54 | 57 4f 5f 50 45 52 43 45 |X HAD_T|WO_PERCE|
|00004430| 4e 54 2c 0a 58 20 20 49 | 4e 5f 4d 45 53 53 41 47 |NT,.X I|N_MESSAG|
|00004440| 45 2c 0a 58 20 20 48 41 | 44 5f 52 49 47 48 54 5f |E,.X HA|D_RIGHT_|
|00004450| 42 52 41 43 4b 45 54 2c | 0a 58 20 20 48 41 44 5f |BRACKET,|.X HAD_|
|00004460| 52 49 47 48 54 5f 42 52 | 41 43 4b 45 54 5f 41 4e |RIGHT_BR|ACKET_AN|
|00004470| 44 5f 50 45 52 43 45 4e | 54 0a 58 20 20 7d 20 70 |D_PERCEN|T.X } p|
|00004480| 61 72 73 65 5f 73 74 61 | 74 65 3b 0a 58 0a 58 65 |arse_sta|te;.X.Xe|
|00004490| 6e 75 6d 20 7b 0a 58 20 | 20 49 4e 56 41 4c 49 44 |num {.X | INVALID|
|000044a0| 2c 0a 58 20 20 55 4e 4b | 4e 4f 57 4e 2c 0a 58 20 |,.X UNK|NOWN,.X |
|000044b0| 20 49 44 4c 45 2c 0a 58 | 20 20 42 55 53 59 2c 0a | IDLE,.X| BUSY,.|
|000044c0| 58 20 20 57 41 49 54 49 | 4e 47 0a 58 20 20 7d 20 |X WAITI|NG.X } |
|000044d0| 73 74 61 74 75 73 20 3d | 20 49 4e 56 41 4c 49 44 |status =| INVALID|
|000044e0| 3b 0a 58 0a 58 69 6e 74 | 20 73 74 61 72 74 5f 70 |;.X.Xint| start_p|
|000044f0| 61 67 65 63 6f 75 6e 74 | 20 3d 20 2d 31 3b 0a 58 |agecount| = -1;.X|
|00004500| 69 6e 74 20 65 6e 64 5f | 70 61 67 65 63 6f 75 6e |int end_|pagecoun|
|00004510| 74 20 3d 20 2d 31 3b 0a | 58 0a 58 73 74 72 75 63 |t = -1;.|X.Xstruc|
|00004520| 74 20 7b 0a 58 20 20 63 | 68 61 72 20 2a 70 74 72 |t {.X c|har *ptr|
|00004530| 3b 0a 58 20 20 69 6e 74 | 20 63 6f 75 6e 74 3b 0a |;.X int| count;.|
|00004540| 58 20 20 63 68 61 72 20 | 62 75 66 5b 4f 42 53 49 |X char |buf[OBSI|
|00004550| 5a 45 5d 3b 0a 58 7d 20 | 6f 75 74 20 3d 20 7b 20 |ZE];.X} |out = { |
|00004560| 6f 75 74 2e 62 75 66 2c | 20 4f 42 53 49 5a 45 20 |out.buf,| OBSIZE |
|00004570| 7d 3b 0a 58 0a 58 23 64 | 65 66 69 6e 65 20 4d 42 |};.X.X#d|efine MB|
|00004580| 53 49 5a 45 20 31 30 32 | 34 0a 58 0a 58 63 68 61 |SIZE 102|4.X.Xcha|
|00004590| 72 20 6d 65 73 73 61 67 | 65 5f 62 75 66 5b 4d 42 |r messag|e_buf[MB|
|000045a0| 53 49 5a 45 5d 3b 0a 58 | 69 6e 74 20 6d 65 73 73 |SIZE];.X|int mess|
|000045b0| 61 67 65 5f 62 75 66 5f | 69 3b 0a 58 0a 58 73 74 |age_buf_|i;.X.Xst|
|000045c0| 61 74 69 63 20 63 68 61 | 72 20 74 65 6d 70 5f 66 |atic cha|r temp_f|
|000045d0| 69 6c 65 5b 5d 20 3d 20 | 22 2f 74 6d 70 2f 6c 70 |ile[] = |"/tmp/lp|
|000045e0| 72 70 73 58 58 58 58 58 | 58 22 3b 0a 58 0a 58 73 |rpsXXXXX|X";.X.Xs|
|000045f0| 74 61 74 69 63 20 63 68 | 61 72 20 70 61 67 65 63 |tatic ch|ar pagec|
|00004600| 6f 75 6e 74 5f 73 74 72 | 69 6e 67 5b 5d 20 3d 20 |ount_str|ing[] = |
|00004610| 22 28 25 25 5b 20 70 61 | 67 65 63 6f 75 6e 74 3a |"(%%[ pa|gecount:|
|00004620| 20 29 20 70 72 69 6e 74 | 20 5c 0a 58 73 74 61 74 | ) print| \.Xstat|
|00004630| 75 73 64 69 63 74 20 62 | 65 67 69 6e 20 70 61 67 |usdict b|egin pag|
|00004640| 65 63 6f 75 6e 74 20 65 | 6e 64 20 32 30 20 73 74 |ecount e|nd 20 st|
|00004650| 72 69 6e 67 20 63 76 73 | 20 70 72 69 6e 74 20 5c |ring cvs| print \|
|00004660| 0a 58 28 20 5d 25 25 29 | 20 70 72 69 6e 74 20 66 |.X( ]%%)| print f|
|00004670| 6c 75 73 68 5c 6e 22 3b | 0a 58 0a 58 76 6f 69 64 |lush\n";|.X.Xvoid|
|00004680| 20 70 72 6f 63 65 73 73 | 5f 69 6e 70 75 74 5f 63 | process|_input_c|
|00004690| 68 61 72 28 29 3b 0a 58 | 76 6f 69 64 20 70 72 69 |har();.X|void pri|
|000046a0| 6e 74 65 72 5f 66 6c 75 | 73 68 69 6e 67 28 29 3b |nter_flu|shing();|
|000046b0| 0a 58 76 6f 69 64 20 68 | 61 6e 64 6c 65 5f 69 6e |.Xvoid h|andle_in|
|000046c0| 74 65 72 72 75 70 74 28 | 29 3b 0a 58 76 6f 69 64 |terrupt(|);.Xvoid|
|000046d0| 20 64 6f 5f 65 78 69 74 | 28 29 3b 0a 58 0a 58 76 | do_exit|();.X.Xv|
|000046e0| 6f 69 64 20 68 61 6e 64 | 6c 65 5f 74 69 6d 65 6f |oid hand|le_timeo|
|000046f0| 75 74 28 29 0a 58 7b 0a | 58 20 20 73 79 73 6c 6f |ut().X{.|X syslo|
|00004700| 67 28 4c 4f 47 5f 45 52 | 52 2c 20 22 70 72 69 6e |g(LOG_ER|R, "prin|
|00004710| 74 65 72 20 6e 6f 74 20 | 72 65 73 70 6f 6e 64 69 |ter not |respondi|
|00004720| 6e 67 22 29 3b 0a 58 20 | 20 73 6c 65 65 70 28 36 |ng");.X | sleep(6|
|00004730| 30 29 3b 09 09 2f 2a 20 | 69 74 20 77 69 6c 6c 20 |0);../* |it will |
|00004740| 74 61 6b 65 20 61 74 20 | 6c 65 61 73 74 20 74 68 |take at |least th|
|00004750| 69 73 20 6c 6f 6e 67 20 | 74 6f 20 77 61 72 6d 20 |is long |to warm |
|00004760| 75 70 20 2a 2f 0a 58 20 | 20 64 6f 5f 65 78 69 74 |up */.X | do_exit|
|00004770| 28 45 58 49 54 5f 52 45 | 50 52 49 4e 54 29 3b 0a |(EXIT_RE|PRINT);.|
|00004780| 58 7d 0a 58 0a 58 76 6f | 69 64 20 73 79 73 5f 65 |X}.X.Xvo|id sys_e|
|00004790| 72 72 6f 72 28 73 29 0a | 58 63 68 61 72 20 2a 73 |rror(s).|Xchar *s|
|000047a0| 3b 0a 58 7b 0a 58 20 20 | 73 79 73 6c 6f 67 28 4c |;.X{.X |syslog(L|
|000047b0| 4f 47 5f 45 52 52 2c 20 | 22 25 73 3a 20 25 6d 22 |OG_ERR, |"%s: %m"|
|000047c0| 2c 20 73 29 3b 0a 58 20 | 20 65 78 69 74 28 45 58 |, s);.X | exit(EX|
|000047d0| 49 54 5f 54 48 52 4f 57 | 5f 41 57 41 59 29 3b 0a |IT_THROW|_AWAY);.|
|000047e0| 58 7d 0a 58 0a 58 69 6e | 74 20 62 6c 6f 63 6b 69 |X}.X.Xin|t blocki|
|000047f0| 6e 67 5f 66 6c 61 67 20 | 3d 20 31 3b 0a 58 0a 58 |ng_flag |= 1;.X.X|
|00004800| 76 6f 69 64 20 73 65 74 | 5f 62 6c 6f 63 6b 69 6e |void set|_blockin|
|00004810| 67 28 29 0a 58 7b 0a 58 | 20 20 69 66 20 28 21 62 |g().X{.X| if (!b|
|00004820| 6c 6f 63 6b 69 6e 67 5f | 66 6c 61 67 29 20 7b 0a |locking_|flag) {.|
|00004830| 58 20 20 20 20 69 66 20 | 28 66 63 6e 74 6c 28 70 |X if |(fcntl(p|
|00004840| 73 66 64 2c 20 46 5f 53 | 45 54 46 4c 2c 20 30 29 |sfd, F_S|ETFL, 0)|
|00004850| 20 3d 3d 20 2d 31 29 0a | 58 20 20 20 20 20 20 73 | == -1).|X s|
|00004860| 79 73 5f 65 72 72 6f 72 | 28 22 66 63 6e 74 6c 22 |ys_error|("fcntl"|
|00004870| 29 3b 0a 58 20 20 20 20 | 62 6c 6f 63 6b 69 6e 67 |);.X |blocking|
|00004880| 5f 66 6c 61 67 20 3d 20 | 31 3b 0a 58 20 20 7d 0a |_flag = |1;.X }.|
|00004890| 58 7d 0a 58 0a 58 76 6f | 69 64 20 73 65 74 5f 6e |X}.X.Xvo|id set_n|
|000048a0| 6f 6e 5f 62 6c 6f 63 6b | 69 6e 67 28 29 0a 58 7b |on_block|ing().X{|
|000048b0| 0a 58 20 20 69 66 20 28 | 62 6c 6f 63 6b 69 6e 67 |.X if (|blocking|
|000048c0| 5f 66 6c 61 67 29 20 7b | 0a 58 20 20 20 20 69 66 |_flag) {|.X if|
|000048d0| 20 28 66 63 6e 74 6c 28 | 70 73 66 64 2c 20 46 5f | (fcntl(|psfd, F_|
|000048e0| 53 45 54 46 4c 2c 20 46 | 4e 44 45 4c 41 59 29 20 |SETFL, F|NDELAY) |
|000048f0| 3d 3d 20 2d 31 29 0a 58 | 20 20 20 20 20 20 73 79 |== -1).X| sy|
|00004900| 73 5f 65 72 72 6f 72 28 | 22 66 63 6e 74 6c 22 29 |s_error(|"fcntl")|
|00004910| 3b 0a 58 20 20 20 20 62 | 6c 6f 63 6b 69 6e 67 5f |;.X b|locking_|
|00004920| 66 6c 61 67 20 3d 20 30 | 3b 0a 58 20 20 7d 0a 58 |flag = 0|;.X }.X|
|00004930| 7d 0a 58 0a 58 76 6f 69 | 64 20 62 6c 6f 63 6b 69 |}.X.Xvoi|d blocki|
|00004940| 6e 67 5f 77 72 69 74 65 | 28 73 2c 20 6e 29 0a 58 |ng_write|(s, n).X|
|00004950| 63 68 61 72 20 2a 73 3b | 0a 58 69 6e 74 20 6e 3b |char *s;|.Xint n;|
|00004960| 0a 58 7b 0a 58 20 20 73 | 65 74 5f 62 6c 6f 63 6b |.X{.X s|et_block|
|00004970| 69 6e 67 28 29 3b 0a 58 | 20 20 69 66 20 28 77 72 |ing();.X| if (wr|
|00004980| 69 74 65 28 70 73 66 64 | 2c 20 73 2c 20 6e 29 20 |ite(psfd|, s, n) |
|00004990| 3d 3d 20 2d 31 29 0a 58 | 20 20 20 20 73 79 73 5f |== -1).X| sys_|
|000049a0| 65 72 72 6f 72 28 22 77 | 72 69 74 65 22 29 3b 0a |error("w|rite");.|
|000049b0| 58 7d 0a 58 0a 58 76 6f | 69 64 20 69 6f 66 6c 75 |X}.X.Xvo|id ioflu|
|000049c0| 73 68 28 29 0a 58 7b 0a | 58 20 20 69 6e 74 20 72 |sh().X{.|X int r|
|000049d0| 77 20 3d 20 46 52 45 41 | 44 7c 46 57 52 49 54 45 |w = FREA|D|FWRITE|
|000049e0| 3b 0a 58 20 20 69 66 20 | 28 69 6f 63 74 6c 28 70 |;.X if |(ioctl(p|
|000049f0| 73 66 64 2c 20 54 49 4f | 43 46 4c 55 53 48 2c 20 |sfd, TIO|CFLUSH, |
|00004a00| 26 72 77 29 20 3d 3d 20 | 2d 31 29 0a 58 20 20 20 |&rw) == |-1).X |
|00004a10| 20 73 79 73 5f 65 72 72 | 6f 72 28 22 69 6f 63 74 | sys_err|or("ioct|
|00004a20| 6c 28 54 49 4f 43 46 4c | 55 53 48 29 22 29 3b 0a |l(TIOCFL|USH)");.|
|00004a30| 58 7d 0a 58 0a 58 76 6f | 69 64 20 6f 70 65 6e 5f |X}.X.Xvo|id open_|
|00004a40| 6d 61 69 6c 66 70 28 29 | 0a 58 7b 0a 58 20 20 69 |mailfp()|.X{.X i|
|00004a50| 66 20 28 6d 61 69 6c 66 | 70 20 3d 3d 20 30 29 20 |f (mailf|p == 0) |
|00004a60| 7b 0a 58 20 20 20 20 28 | 76 6f 69 64 29 6d 6b 74 |{.X (|void)mkt|
|00004a70| 65 6d 70 28 74 65 6d 70 | 5f 66 69 6c 65 29 3b 0a |emp(temp|_file);.|
|00004a80| 58 20 20 20 20 69 66 20 | 28 28 6d 61 69 6c 66 70 |X if |((mailfp|
|00004a90| 20 3d 20 66 6f 70 65 6e | 28 74 65 6d 70 5f 66 69 | = fopen|(temp_fi|
|00004aa0| 6c 65 2c 20 22 77 22 29 | 29 20 3d 3d 20 4e 55 4c |le, "w")|) == NUL|
|00004ab0| 4c 29 0a 58 20 20 20 20 | 20 20 73 79 73 5f 65 72 |L).X | sys_er|
|00004ac0| 72 6f 72 28 22 6f 70 65 | 6e 22 29 3b 0a 58 20 20 |ror("ope|n");.X |
|00004ad0| 7d 0a 58 7d 0a 58 0a 58 | 76 6f 69 64 20 75 73 65 |}.X}.X.X|void use|
|00004ae0| 72 5f 63 68 61 72 28 63 | 29 0a 58 63 68 61 72 20 |r_char(c|).Xchar |
|00004af0| 63 3b 0a 58 7b 0a 58 20 | 20 73 74 61 74 69 63 20 |c;.X{.X | static |
|00004b00| 69 6e 74 20 64 6f 6e 65 | 5f 69 6e 74 72 6f 20 3d |int done|_intro =|
|00004b10| 20 30 3b 0a 58 20 20 69 | 66 20 28 69 6e 5f 6a 6f | 0;.X i|f (in_jo|
|00004b20| 62 20 26 26 20 28 64 6f | 6e 65 5f 69 6e 74 72 6f |b && (do|ne_intro|
|00004b30| 20 7c 7c 20 63 20 21 3d | 20 27 5c 6e 27 29 29 20 | || c !=| '\n')) |
|00004b40| 7b 0a 58 20 20 20 20 69 | 66 20 28 6d 61 69 6c 66 |{.X i|f (mailf|
|00004b50| 70 20 3d 3d 20 30 29 0a | 58 20 20 20 20 20 20 6f |p == 0).|X o|
|00004b60| 70 65 6e 5f 6d 61 69 6c | 66 70 28 29 3b 0a 58 20 |pen_mail|fp();.X |
|00004b70| 20 20 20 69 66 20 28 21 | 64 6f 6e 65 5f 69 6e 74 | if (!|done_int|
|00004b80| 72 6f 29 20 7b 0a 58 20 | 20 20 20 20 20 66 70 75 |ro) {.X | fpu|
|00004b90| 74 73 28 22 59 6f 75 72 | 20 50 6f 73 74 53 63 72 |ts("Your| PostScr|
|00004ba0| 69 70 74 20 70 72 69 6e | 74 65 72 20 6a 6f 62 20 |ipt prin|ter job |
|00004bb0| 70 72 6f 64 75 63 65 64 | 20 74 68 65 20 66 6f 6c |produced| the fol|
|00004bc0| 6c 6f 77 69 6e 67 20 6f | 75 74 70 75 74 3a 5c 6e |lowing o|utput:\n|
|00004bd0| 22 2c 20 0a 58 09 20 20 | 20 20 6d 61 69 6c 66 70 |", .X. | mailfp|
|00004be0| 29 3b 0a 58 20 20 20 20 | 20 20 64 6f 6e 65 5f 69 |);.X | done_i|
|00004bf0| 6e 74 72 6f 20 3d 20 31 | 3b 0a 58 20 20 20 20 7d |ntro = 1|;.X }|
|00004c00| 0a 58 20 20 20 20 28 76 | 6f 69 64 29 70 75 74 63 |.X (v|oid)putc|
|00004c10| 28 63 2c 20 6d 61 69 6c | 66 70 29 3b 0a 58 20 20 |(c, mail|fp);.X |
|00004c20| 7d 0a 58 7d 0a 58 0a 58 | 23 69 66 20 30 0a 58 76 |}.X}.X.X|#if 0.Xv|
|00004c30| 6f 69 64 20 69 6e 69 74 | 5f 74 74 79 28 29 0a 58 |oid init|_tty().X|
|00004c40| 7b 0a 58 20 20 73 74 72 | 75 63 74 20 74 65 72 6d |{.X str|uct term|
|00004c50| 69 6f 73 20 74 3b 0a 58 | 20 20 70 73 66 64 20 3d |ios t;.X| psfd =|
|00004c60| 20 6f 70 65 6e 28 22 2f | 64 65 76 2f 74 74 79 61 | open("/|dev/ttya|
|00004c70| 22 2c 20 4f 5f 52 44 57 | 52 29 3b 0a 58 20 20 69 |", O_RDW|R);.X i|
|00004c80| 66 20 28 70 73 66 64 20 | 3d 3d 20 2d 31 29 0a 58 |f (psfd |== -1).X|
|00004c90| 20 20 20 20 73 79 73 5f | 65 72 72 6f 72 28 22 6f | sys_|error("o|
|00004ca0| 70 65 6e 22 29 3b 0a 58 | 20 20 69 66 20 28 69 6f |pen");.X| if (io|
|00004cb0| 63 74 6c 28 70 73 66 64 | 2c 20 54 43 47 45 54 53 |ctl(psfd|, TCGETS|
|00004cc0| 2c 20 26 74 29 20 3d 3d | 20 2d 31 29 0a 58 20 20 |, &t) ==| -1).X |
|00004cd0| 20 20 73 79 73 5f 65 72 | 72 6f 72 28 22 69 6f 63 | sys_er|ror("ioc|
|00004ce0| 74 6c 28 54 43 47 45 54 | 53 29 22 29 3b 0a 58 20 |tl(TCGET|S)");.X |
|00004cf0| 20 74 2e 63 5f 63 66 6c | 61 67 20 3d 20 42 33 38 | t.c_cfl|ag = B38|
|00004d00| 34 30 30 7c 43 53 37 7c | 43 53 54 4f 50 42 7c 43 |400|CS7||CSTOPB|C|
|00004d10| 52 45 41 44 7c 43 4c 4f | 43 41 4c 7c 50 41 52 45 |READ|CLO|CAL|PARE|
|00004d20| 4e 42 3b 0a 58 20 20 74 | 2e 63 5f 6f 66 6c 61 67 |NB;.X t|.c_oflag|
|00004d30| 20 26 3d 20 7e 4f 50 4f | 53 54 3b 0a 58 20 20 74 | &= ~OPO|ST;.X t|
|00004d40| 2e 63 5f 69 66 6c 61 67 | 20 3d 20 49 58 4f 4e 7c |.c_iflag| = IXON||
|00004d50| 49 58 4f 46 46 7c 49 47 | 4e 42 52 4b 7c 49 53 54 |IXOFF|IG|NBRK|IST|
|00004d60| 52 49 50 7c 49 47 4e 43 | 52 3b 0a 58 20 20 74 2e |RIP|IGNC|R;.X t.|
|00004d70| 63 5f 6c 66 6c 61 67 20 | 3d 20 30 3b 0a 58 20 20 |c_lflag |= 0;.X |
|00004d80| 74 2e 63 5f 63 63 5b 56 | 4d 49 4e 5d 20 3d 20 31 |t.c_cc[V|MIN] = 1|
|00004d90| 3b 0a 58 20 20 74 2e 63 | 5f 63 63 5b 56 54 49 4d |;.X t.c|_cc[VTIM|
|00004da0| 45 5d 20 3d 20 30 3b 0a | 58 20 20 69 66 20 28 69 |E] = 0;.|X if (i|
|00004db0| 6f 63 74 6c 28 70 73 66 | 64 2c 20 54 43 53 45 54 |octl(psf|d, TCSET|
|00004dc0| 53 2c 20 26 74 29 20 3d | 3d 20 2d 31 29 0a 58 20 |S, &t) =|= -1).X |
|00004dd0| 20 20 20 73 79 73 5f 65 | 72 72 6f 72 28 22 69 6f | sys_e|rror("io|
|00004de0| 63 74 6c 28 54 43 53 45 | 54 53 29 22 29 3b 0a 58 |ctl(TCSE|TS)");.X|
|00004df0| 7d 0a 58 0a 58 76 6f 69 | 64 20 64 65 62 75 67 5f |}.X.Xvoi|d debug_|
|00004e00| 74 74 79 28 29 0a 58 7b | 0a 58 20 20 73 74 72 75 |tty().X{|.X stru|
|00004e10| 63 74 20 74 65 72 6d 69 | 6f 73 20 74 3b 0a 58 20 |ct termi|os t;.X |
|00004e20| 20 69 66 20 28 69 6f 63 | 74 6c 28 70 73 66 64 2c | if (ioc|tl(psfd,|
|00004e30| 20 54 43 47 45 54 53 2c | 20 26 74 29 20 3d 3d 20 | TCGETS,| &t) == |
|00004e40| 2d 31 29 0a 58 20 20 20 | 20 73 79 73 5f 65 72 72 |-1).X | sys_err|
|00004e50| 6f 72 28 22 69 6f 63 74 | 6c 28 54 43 47 45 54 53 |or("ioct|l(TCGETS|
|00004e60| 29 22 29 3b 0a 58 20 20 | 73 79 73 6c 6f 67 28 4c |)");.X |syslog(L|
|00004e70| 4f 47 5f 45 52 52 2c 20 | 22 63 66 6c 61 67 20 3d |OG_ERR, |"cflag =|
|00004e80| 20 25 6f 22 2c 20 74 2e | 63 5f 63 66 6c 61 67 29 | %o", t.|c_cflag)|
|00004e90| 3b 0a 58 20 20 73 79 73 | 6c 6f 67 28 4c 4f 47 5f |;.X sys|log(LOG_|
|00004ea0| 45 52 52 2c 20 22 6f 66 | 6c 61 67 20 3d 20 25 6f |ERR, "of|lag = %o|
|00004eb0| 22 2c 20 74 2e 63 5f 6f | 66 6c 61 67 29 3b 0a 58 |", t.c_o|flag);.X|
|00004ec0| 20 20 73 79 73 6c 6f 67 | 28 4c 4f 47 5f 45 52 52 | syslog|(LOG_ERR|
|00004ed0| 2c 20 22 6c 66 6c 61 67 | 20 3d 20 25 6f 22 2c 20 |, "lflag| = %o", |
|00004ee0| 74 2e 63 5f 6c 66 6c 61 | 67 29 3b 0a 58 20 20 73 |t.c_lfla|g);.X s|
|00004ef0| 79 73 6c 6f 67 28 4c 4f | 47 5f 45 52 52 2c 20 22 |yslog(LO|G_ERR, "|
|00004f00| 69 66 6c 61 67 20 3d 20 | 25 6f 22 2c 20 74 2e 63 |iflag = |%o", t.c|
|00004f10| 5f 69 66 6c 61 67 29 3b | 0a 58 7d 0a 58 23 65 6e |_iflag);|.X}.X#en|
|00004f20| 64 69 66 0a 58 0a 58 76 | 6f 69 64 20 64 6f 5f 65 |dif.X.Xv|oid do_e|
|00004f30| 78 69 74 28 65 78 69 74 | 5f 63 6f 64 65 29 0a 58 |xit(exit|_code).X|
|00004f40| 69 6e 74 20 65 78 69 74 | 5f 63 6f 64 65 3b 0a 58 |int exit|_code;.X|
|00004f50| 7b 0a 58 20 20 69 66 20 | 28 6d 61 69 6c 66 70 20 |{.X if |(mailfp |
|00004f60| 21 3d 20 4e 55 4c 4c 29 | 20 7b 0a 58 20 20 20 20 |!= NULL)| {.X |
|00004f70| 63 68 61 72 20 63 6f 6d | 6d 61 6e 64 5b 31 30 32 |char com|mand[102|
|00004f80| 34 5d 3b 0a 58 20 20 20 | 20 69 66 20 28 66 63 6c |4];.X | if (fcl|
|00004f90| 6f 73 65 28 6d 61 69 6c | 66 70 29 20 3d 3d 20 45 |ose(mail|fp) == E|
|00004fa0| 4f 46 29 0a 58 20 20 20 | 20 20 20 73 79 73 5f 65 |OF).X | sys_e|
|00004fb0| 72 72 6f 72 28 22 66 63 | 6c 6f 73 65 22 29 3b 0a |rror("fc|lose");.|
|00004fc0| 58 20 20 20 20 28 76 6f | 69 64 29 73 70 72 69 6e |X (vo|id)sprin|
|00004fd0| 74 66 28 63 6f 6d 6d 61 | 6e 64 2c 20 22 2f 75 73 |tf(comma|nd, "/us|
|00004fe0| 72 2f 75 63 62 2f 6d 61 | 69 6c 20 2d 73 20 5c 22 |r/ucb/ma|il -s \"|
|00004ff0| 70 72 69 6e 74 65 72 20 | 6a 6f 62 5c 22 20 25 73 |printer |job\" %s|
|00005000| 40 25 73 20 3c 25 73 22 | 2c 0a 58 09 20 20 20 20 |@%s <%s"|,.X. |
|00005010| 6c 6f 67 69 6e 2c 20 68 | 6f 73 74 2c 20 74 65 6d |login, h|ost, tem|
|00005020| 70 5f 66 69 6c 65 29 3b | 0a 58 20 20 20 20 28 76 |p_file);|.X (v|
|00005030| 6f 69 64 29 73 79 73 74 | 65 6d 28 63 6f 6d 6d 61 |oid)syst|em(comma|
|00005040| 6e 64 29 3b 0a 58 20 20 | 20 20 28 76 6f 69 64 29 |nd);.X | (void)|
|00005050| 75 6e 6c 69 6e 6b 28 74 | 65 6d 70 5f 66 69 6c 65 |unlink(t|emp_file|
|00005060| 29 3b 0a 58 20 20 7d 0a | 58 20 20 65 78 69 74 28 |);.X }.|X exit(|
|00005070| 65 78 69 74 5f 63 6f 64 | 65 29 3b 0a 58 7d 0a 58 |exit_cod|e);.X}.X|
|00005080| 20 20 0a 58 76 6f 69 64 | 20 66 6c 75 73 68 5f 6f | .Xvoid| flush_o|
|00005090| 75 74 70 75 74 28 29 0a | 58 7b 0a 58 20 20 63 68 |utput().|X{.X ch|
|000050a0| 61 72 20 69 62 75 66 5b | 49 42 53 49 5a 45 5d 3b |ar ibuf[|IBSIZE];|
|000050b0| 0a 58 20 20 63 68 61 72 | 20 2a 70 20 3d 20 6f 75 |.X char| *p = ou|
|000050c0| 74 2e 62 75 66 3b 0a 58 | 20 20 69 6e 74 20 6e 20 |t.buf;.X| int n |
|000050d0| 3d 20 6f 75 74 2e 70 74 | 72 20 2d 20 70 3b 0a 58 |= out.pt|r - p;.X|
|000050e0| 20 20 2f 2a 20 77 65 20 | 64 61 72 65 6e 27 74 20 | /* we |daren't |
|000050f0| 62 6c 6f 63 6b 20 6f 6e | 20 77 72 69 74 65 73 20 |block on| writes |
|00005100| 2a 2f 0a 58 20 20 73 65 | 74 5f 6e 6f 6e 5f 62 6c |*/.X se|t_non_bl|
|00005110| 6f 63 6b 69 6e 67 28 29 | 3b 0a 58 20 20 77 68 69 |ocking()|;.X whi|
|00005120| 6c 65 20 28 6e 20 3e 20 | 30 29 20 7b 0a 58 20 20 |le (n > |0) {.X |
|00005130| 20 20 66 64 5f 73 65 74 | 20 72 66 64 73 2c 20 77 | fd_set| rfds, w|
|00005140| 66 64 73 3b 0a 58 20 20 | 20 20 46 44 5f 5a 45 52 |fds;.X | FD_ZER|
|00005150| 4f 28 26 77 66 64 73 29 | 3b 0a 58 20 20 20 20 46 |O(&wfds)|;.X F|
|00005160| 44 5f 5a 45 52 4f 28 26 | 72 66 64 73 29 3b 0a 58 |D_ZERO(&|rfds);.X|
|00005170| 20 20 20 20 46 44 5f 53 | 45 54 28 70 73 66 64 2c | FD_S|ET(psfd,|
|00005180| 20 26 77 66 64 73 29 3b | 0a 58 20 20 20 20 46 44 | &wfds);|.X FD|
|00005190| 5f 53 45 54 28 70 73 66 | 64 2c 20 26 72 66 64 73 |_SET(psf|d, &rfds|
|000051a0| 29 3b 0a 58 20 20 20 20 | 69 66 20 28 69 6e 74 65 |);.X |if (inte|
|000051b0| 72 72 75 70 74 5f 66 6c | 61 67 29 0a 58 20 20 20 |rrupt_fl|ag).X |
|000051c0| 20 20 20 68 61 6e 64 6c | 65 5f 69 6e 74 65 72 72 | handl|e_interr|
|000051d0| 75 70 74 28 29 3b 0a 58 | 20 20 20 20 77 68 69 6c |upt();.X| whil|
|000051e0| 65 20 28 73 65 6c 65 63 | 74 28 70 73 66 64 20 2b |e (selec|t(psfd +|
|000051f0| 20 31 2c 20 26 72 66 64 | 73 2c 20 26 77 66 64 73 | 1, &rfd|s, &wfds|
|00005200| 2c 20 28 66 64 5f 73 65 | 74 20 2a 29 4e 55 4c 4c |, (fd_se|t *)NULL|
|00005210| 2c 20 28 73 74 72 75 63 | 74 20 74 69 6d 65 76 61 |, (struc|t timeva|
|00005220| 6c 20 2a 29 4e 55 4c 4c | 29 0a 58 09 20 20 20 3d |l *)NULL|).X. =|
|00005230| 3d 20 2d 31 29 0a 58 20 | 20 20 20 20 20 69 66 20 |= -1).X | if |
|00005240| 28 65 72 72 6e 6f 20 3d | 3d 20 45 49 4e 54 52 29 |(errno =|= EINTR)|
|00005250| 20 7b 0a 58 09 69 66 20 | 28 74 69 6d 65 6f 75 74 | {.X.if |(timeout|
|00005260| 5f 66 6c 61 67 29 0a 58 | 09 20 20 68 61 6e 64 6c |_flag).X|. handl|
|00005270| 65 5f 74 69 6d 65 6f 75 | 74 28 29 3b 0a 58 09 65 |e_timeou|t();.X.e|
|00005280| 6c 73 65 20 69 66 20 28 | 69 6e 74 65 72 72 75 70 |lse if (|interrup|
|00005290| 74 5f 66 6c 61 67 29 0a | 58 09 20 20 68 61 6e 64 |t_flag).|X. hand|
|000052a0| 6c 65 5f 69 6e 74 65 72 | 72 75 70 74 28 29 3b 0a |le_inter|rupt();.|
|000052b0| 58 20 20 20 20 20 20 7d | 0a 58 20 20 20 20 20 20 |X }|.X |
|000052c0| 65 6c 73 65 0a 58 09 73 | 79 73 5f 65 72 72 6f 72 |else.X.s|ys_error|
|000052d0| 28 22 73 65 6c 65 63 74 | 22 29 3b 0a 58 20 20 20 |("select|");.X |
|000052e0| 20 69 66 20 28 46 44 5f | 49 53 53 45 54 28 70 73 | if (FD_|ISSET(ps|
|000052f0| 66 64 2c 20 26 72 66 64 | 73 29 29 20 7b 0a 58 20 |fd, &rfd|s)) {.X |
|00005300| 20 20 20 20 20 63 68 61 | 72 20 2a 71 20 3d 20 69 | cha|r *q = i|
|00005310| 62 75 66 3b 0a 58 20 20 | 20 20 20 20 69 6e 74 20 |buf;.X | int |
|00005320| 6e 72 65 61 64 20 3d 20 | 72 65 61 64 28 70 73 66 |nread = |read(psf|
|00005330| 64 2c 20 69 62 75 66 2c | 20 49 42 53 49 5a 45 29 |d, ibuf,| IBSIZE)|
|00005340| 3b 0a 58 20 20 20 20 20 | 20 69 66 20 28 6e 72 65 |;.X | if (nre|
|00005350| 61 64 20 3d 3d 20 2d 31 | 29 0a 58 09 73 79 73 5f |ad == -1|).X.sys_|
|00005360| 65 72 72 6f 72 28 22 72 | 65 61 64 22 29 3b 0a 58 |error("r|ead");.X|
|00005370| 20 20 20 20 20 20 77 68 | 69 6c 65 20 28 2d 2d 6e | wh|ile (--n|
|00005380| 72 65 61 64 20 3e 3d 20 | 30 29 0a 58 09 70 72 6f |read >= |0).X.pro|
|00005390| 63 65 73 73 5f 69 6e 70 | 75 74 5f 63 68 61 72 28 |cess_inp|ut_char(|
|000053a0| 2a 71 2b 2b 29 3b 0a 58 | 20 20 20 20 7d 0a 58 20 |*q++);.X| }.X |
|000053b0| 20 20 20 65 6c 73 65 20 | 69 66 20 28 46 44 5f 49 | else |if (FD_I|
|000053c0| 53 53 45 54 28 70 73 66 | 64 2c 20 26 77 66 64 73 |SSET(psf|d, &wfds|
|000053d0| 29 29 20 7b 0a 58 20 20 | 20 20 20 20 69 6e 74 20 |)) {.X | int |
|000053e0| 6e 77 72 69 74 74 65 6e | 20 3d 20 77 72 69 74 65 |nwritten| = write|
|000053f0| 28 70 73 66 64 2c 20 70 | 2c 20 6e 29 3b 0a 58 20 |(psfd, p|, n);.X |
|00005400| 20 20 20 20 20 69 66 20 | 28 6e 77 72 69 74 74 65 | if |(nwritte|
|00005410| 6e 20 3d 3d 20 2d 31 29 | 0a 58 09 73 79 73 5f 65 |n == -1)|.X.sys_e|
|00005420| 72 72 6f 72 28 22 77 72 | 69 74 65 22 29 3b 0a 58 |rror("wr|ite");.X|
|00005430| 20 20 20 20 20 20 6e 20 | 2d 3d 20 6e 77 72 69 74 | n |-= nwrit|
|00005440| 74 65 6e 3b 0a 58 20 20 | 20 20 20 20 70 20 2b 3d |ten;.X | p +=|
|00005450| 20 6e 77 72 69 74 74 65 | 6e 3b 0a 58 20 20 20 20 | nwritte|n;.X |
|00005460| 7d 0a 58 20 20 7d 0a 58 | 20 20 6f 75 74 2e 70 74 |}.X }.X| out.pt|
|00005470| 72 20 3d 20 6f 75 74 2e | 62 75 66 3b 0a 58 20 20 |r = out.|buf;.X |
|00005480| 6f 75 74 2e 63 6f 75 6e | 74 20 3d 20 4f 42 53 49 |out.coun|t = OBSI|
|00005490| 5a 45 3b 0a 58 7d 0a 58 | 0a 58 20 20 0a 58 76 6f |ZE;.X}.X|.X .Xvo|
|000054a0| 69 64 20 6f 75 74 70 75 | 74 5f 63 68 61 72 28 63 |id outpu|t_char(c|
|000054b0| 29 0a 58 63 68 61 72 20 | 63 3b 0a 58 7b 0a 58 20 |).Xchar |c;.X{.X |
|000054c0| 20 69 66 20 28 6f 75 74 | 2e 63 6f 75 6e 74 20 3c | if (out|.count <|
|000054d0| 3d 20 30 29 0a 58 20 20 | 20 20 66 6c 75 73 68 5f |= 0).X | flush_|
|000054e0| 6f 75 74 70 75 74 28 29 | 3b 0a 58 20 20 2a 6f 75 |output()|;.X *ou|
|000054f0| 74 2e 70 74 72 20 3d 20 | 63 3b 0a 58 20 20 6f 75 |t.ptr = |c;.X ou|
|00005500| 74 2e 70 74 72 20 2b 3d | 20 31 3b 0a 58 20 20 6f |t.ptr +=| 1;.X o|
|00005510| 75 74 2e 63 6f 75 6e 74 | 20 2d 3d 20 31 3b 0a 58 |ut.count| -= 1;.X|
|00005520| 7d 0a 58 0a 58 76 6f 69 | 64 20 6d 65 73 73 61 67 |}.X.Xvoi|d messag|
|00005530| 65 5f 63 68 61 72 28 63 | 29 0a 58 63 68 61 72 20 |e_char(c|).Xchar |
|00005540| 63 3b 0a 58 7b 0a 58 20 | 20 69 66 20 28 63 20 21 |c;.X{.X | if (c !|
|00005550| 3d 20 27 5c 30 27 20 26 | 26 20 6d 65 73 73 61 67 |= '\0' &|& messag|
|00005560| 65 5f 62 75 66 5f 69 20 | 3c 20 4d 42 53 49 5a 45 |e_buf_i |< MBSIZE|
|00005570| 20 2d 20 31 29 0a 58 20 | 20 20 20 6d 65 73 73 61 | - 1).X | messa|
|00005580| 67 65 5f 62 75 66 5b 6d | 65 73 73 61 67 65 5f 62 |ge_buf[m|essage_b|
|00005590| 75 66 5f 69 2b 2b 5d 20 | 3d 20 63 3b 0a 58 7d 0a |uf_i++] |= c;.X}.|
|000055a0| 58 0a 58 76 6f 69 64 20 | 70 72 6f 63 65 73 73 5f |X.Xvoid |process_|
|000055b0| 6d 65 73 73 61 67 65 28 | 29 0a 58 7b 0a 58 20 20 |message(|).X{.X |
|000055c0| 63 68 61 72 20 2a 70 3b | 0a 58 20 20 6d 65 73 73 |char *p;|.X mess|
|000055d0| 61 67 65 5f 62 75 66 5b | 6d 65 73 73 61 67 65 5f |age_buf[|message_|
|000055e0| 62 75 66 5f 69 5d 20 3d | 20 30 3b 0a 58 20 20 66 |buf_i] =| 0;.X f|
|000055f0| 6f 72 20 28 70 20 3d 20 | 73 74 72 74 6f 6b 28 6d |or (p = |strtok(m|
|00005600| 65 73 73 61 67 65 5f 62 | 75 66 2c 20 22 3b 22 29 |essage_b|uf, ";")|
|00005610| 3b 20 70 20 21 3d 20 4e | 55 4c 4c 3b 20 70 20 3d |; p != N|ULL; p =|
|00005620| 20 73 74 72 74 6f 6b 28 | 28 63 68 61 72 20 2a 29 | strtok(|(char *)|
|00005630| 4e 55 4c 4c 2c 20 22 3b | 22 29 29 20 7b 0a 58 20 |NULL, ";|")) {.X |
|00005640| 20 20 20 63 68 61 72 20 | 2a 6b 65 79 3b 0a 58 20 | char |*key;.X |
|00005650| 20 20 20 77 68 69 6c 65 | 20 28 69 73 73 70 61 63 | while| (isspac|
|00005660| 65 28 2a 70 29 29 0a 58 | 20 20 20 20 20 20 70 2b |e(*p)).X| p+|
|00005670| 2b 3b 0a 58 20 20 20 20 | 6b 65 79 20 3d 20 70 3b |+;.X |key = p;|
|00005680| 0a 58 20 20 20 20 70 20 | 3d 20 73 74 72 63 68 72 |.X p |= strchr|
|00005690| 28 70 2c 20 27 3a 27 29 | 3b 0a 58 20 20 20 20 69 |(p, ':')|;.X i|
|000056a0| 66 20 28 70 20 21 3d 20 | 4e 55 4c 4c 29 20 7b 0a |f (p != |NULL) {.|
|000056b0| 58 20 20 20 20 20 20 63 | 68 61 72 20 2a 71 3b 0a |X c|har *q;.|
|000056c0| 58 20 20 20 20 20 20 2a | 70 2b 2b 20 3d 20 27 5c |X *|p++ = '\|
|000056d0| 30 27 3b 0a 58 20 20 20 | 20 20 20 77 68 69 6c 65 |0';.X | while|
|000056e0| 20 28 69 73 73 70 61 63 | 65 28 2a 70 29 29 0a 58 | (isspac|e(*p)).X|
|000056f0| 09 70 2b 2b 3b 0a 58 20 | 20 20 20 20 20 71 20 3d |.p++;.X | q =|
|00005700| 20 73 74 72 63 68 72 28 | 70 2c 20 27 5c 30 27 29 | strchr(|p, '\0')|
|00005710| 3b 0a 58 20 20 20 20 20 | 20 77 68 69 6c 65 20 28 |;.X | while (|
|00005720| 71 20 3e 20 70 20 26 26 | 20 69 73 73 70 61 63 65 |q > p &&| isspace|
|00005730| 28 71 5b 2d 31 5d 29 29 | 0a 58 09 2d 2d 71 3b 0a |(q[-1]))|.X.--q;.|
|00005740| 58 20 20 20 20 20 20 2a | 71 20 3d 20 27 5c 30 27 |X *|q = '\0'|
|00005750| 3b 0a 58 20 20 20 20 20 | 20 69 66 20 28 73 74 72 |;.X | if (str|
|00005760| 63 6d 70 28 6b 65 79 2c | 20 22 46 6c 75 73 68 69 |cmp(key,| "Flushi|
|00005770| 6e 67 22 29 20 3d 3d 20 | 30 29 0a 58 09 70 72 69 |ng") == |0).X.pri|
|00005780| 6e 74 65 72 5f 66 6c 75 | 73 68 69 6e 67 28 29 3b |nter_flu|shing();|
|00005790| 0a 58 20 20 20 20 20 20 | 65 6c 73 65 20 69 66 20 |.X |else if |
|000057a0| 28 73 74 72 63 6d 70 28 | 6b 65 79 2c 20 22 50 72 |(strcmp(|key, "Pr|
|000057b0| 69 6e 74 65 72 45 72 72 | 6f 72 22 29 20 3d 3d 20 |interErr|or") == |
|000057c0| 30 29 20 7b 0a 58 09 73 | 79 73 6c 6f 67 28 4c 4f |0) {.X.s|yslog(LO|
|000057d0| 47 5f 45 52 52 2c 20 22 | 70 72 69 6e 74 65 72 20 |G_ERR, "|printer |
|000057e0| 65 72 72 6f 72 3a 20 25 | 73 22 2c 20 70 29 3b 0a |error: %|s", p);.|
|000057f0| 58 20 20 20 20 20 20 7d | 0a 58 20 20 20 20 20 20 |X }|.X |
|00005800| 65 6c 73 65 20 69 66 20 | 28 73 74 72 63 6d 70 28 |else if |(strcmp(|
|00005810| 6b 65 79 2c 20 22 65 78 | 69 74 73 65 72 76 65 72 |key, "ex|itserver|
|00005820| 22 29 20 3d 3d 20 30 29 | 20 7b 0a 58 20 20 20 20 |") == 0)| {.X |
|00005830| 20 20 7d 0a 58 20 20 20 | 20 20 20 65 6c 73 65 20 | }.X | else |
|00005840| 69 66 20 28 73 74 72 63 | 6d 70 28 6b 65 79 2c 20 |if (strc|mp(key, |
|00005850| 22 45 72 72 6f 72 22 29 | 20 3d 3d 20 30 29 20 7b |"Error")| == 0) {|
|00005860| 0a 58 09 69 66 20 28 69 | 6e 5f 6a 6f 62 29 20 7b |.X.if (i|n_job) {|
|00005870| 0a 58 09 20 20 69 66 20 | 28 6d 61 69 6c 66 70 20 |.X. if |(mailfp |
|00005880| 3d 3d 20 30 29 0a 58 09 | 20 20 20 20 6f 70 65 6e |== 0).X.| open|
|00005890| 5f 6d 61 69 6c 66 70 28 | 29 3b 0a 58 09 20 20 28 |_mailfp(|);.X. (|
|000058a0| 76 6f 69 64 29 66 70 72 | 69 6e 74 66 28 6d 61 69 |void)fpr|intf(mai|
|000058b0| 6c 66 70 2c 20 0a 58 09 | 09 09 22 59 6f 75 72 20 |lfp, .X.|.."Your |
|000058c0| 50 6f 73 74 53 63 72 69 | 70 74 20 70 72 69 6e 74 |PostScri|pt print|
|000058d0| 65 72 20 6a 6f 62 20 70 | 72 6f 64 75 63 65 64 20 |er job p|roduced |
|000058e0| 74 68 65 20 65 72 72 6f | 72 20 60 25 73 27 2e 5c |the erro|r `%s'.\|
|000058f0| 6e 22 2c 0a 58 09 09 09 | 70 29 3b 0a 58 09 7d 0a |n",.X...|p);.X.}.|
|00005900| 58 20 20 20 20 20 20 7d | 0a 58 20 20 20 20 20 20 |X }|.X |
|00005910| 65 6c 73 65 20 69 66 20 | 28 73 74 72 63 6d 70 28 |else if |(strcmp(|
|00005920| 6b 65 79 2c 20 22 73 74 | 61 74 75 73 22 29 20 3d |key, "st|atus") =|
|00005930| 3d 20 30 29 20 7b 0a 58 | 09 69 66 20 28 73 74 72 |= 0) {.X|.if (str|
|00005940| 63 6d 70 28 70 2c 20 22 | 69 64 6c 65 22 29 20 3d |cmp(p, "|idle") =|
|00005950| 3d 20 30 29 0a 58 09 20 | 20 73 74 61 74 75 73 20 |= 0).X. | status |
|00005960| 3d 20 49 44 4c 45 3b 0a | 58 09 65 6c 73 65 20 69 |= IDLE;.|X.else i|
|00005970| 66 20 28 73 74 72 63 6d | 70 28 70 2c 20 22 62 75 |f (strcm|p(p, "bu|
|00005980| 73 79 22 29 20 3d 3d 20 | 30 29 0a 58 09 20 20 73 |sy") == |0).X. s|
|00005990| 74 61 74 75 73 20 3d 20 | 42 55 53 59 3b 0a 58 09 |tatus = |BUSY;.X.|
|000059a0| 65 6c 73 65 20 69 66 20 | 28 73 74 72 63 6d 70 28 |else if |(strcmp(|
|000059b0| 70 2c 20 22 77 61 69 74 | 69 6e 67 22 29 20 3d 3d |p, "wait|ing") ==|
|000059c0| 20 30 29 0a 58 09 20 20 | 73 74 61 74 75 73 20 3d | 0).X. |status =|
|000059d0| 20 57 41 49 54 49 4e 47 | 3b 0a 58 09 65 6c 73 65 | WAITING|;.X.else|
|000059e0| 0a 58 09 20 20 73 74 61 | 74 75 73 20 3d 20 55 4e |.X. sta|tus = UN|
|000059f0| 4b 4e 4f 57 4e 3b 0a 58 | 20 20 20 20 20 20 7d 0a |KNOWN;.X| }.|
|00005a00| 58 20 20 20 20 20 20 65 | 6c 73 65 20 69 66 20 28 |X e|lse if (|
|00005a10| 73 74 72 63 6d 70 28 6b | 65 79 2c 20 22 4f 66 66 |strcmp(k|ey, "Off|
|00005a20| 65 6e 64 69 6e 67 43 6f | 6d 6d 61 6e 64 22 29 20 |endingCo|mmand") |
|00005a30| 3d 3d 20 30 29 20 7b 0a | 58 09 69 66 20 28 69 6e |== 0) {.|X.if (in|
|00005a40| 5f 6a 6f 62 29 20 7b 0a | 58 09 20 20 69 66 20 28 |_job) {.|X. if (|
|00005a50| 6d 61 69 6c 66 70 20 3d | 3d 20 30 29 0a 58 09 20 |mailfp =|= 0).X. |
|00005a60| 20 20 20 6f 70 65 6e 5f | 6d 61 69 6c 66 70 28 29 | open_|mailfp()|
|00005a70| 3b 0a 58 09 20 20 28 76 | 6f 69 64 29 66 70 72 69 |;.X. (v|oid)fpri|
|00005a80| 6e 74 66 28 6d 61 69 6c | 66 70 2c 20 22 54 68 65 |ntf(mail|fp, "The|
|00005a90| 20 6f 66 66 65 6e 64 69 | 6e 67 20 63 6f 6d 6d 61 | offendi|ng comma|
|00005aa0| 6e 64 20 77 61 73 20 60 | 25 73 27 2e 5c 6e 22 2c |nd was `|%s'.\n",|
|00005ab0| 20 70 29 3b 0a 58 09 7d | 0a 58 20 20 20 20 20 20 | p);.X.}|.X |
|00005ac0| 7d 0a 58 20 20 20 20 20 | 20 65 6c 73 65 20 69 66 |}.X | else if|
|00005ad0| 20 28 73 74 72 63 6d 70 | 28 6b 65 79 2c 20 22 70 | (strcmp|(key, "p|
|00005ae0| 61 67 65 63 6f 75 6e 74 | 22 29 20 3d 3d 20 30 29 |agecount|") == 0)|
|00005af0| 20 7b 0a 58 09 69 6e 74 | 20 6e 3b 0a 58 09 69 66 | {.X.int| n;.X.if|
|00005b00| 20 28 73 73 63 61 6e 66 | 28 70 2c 20 22 25 64 22 | (sscanf|(p, "%d"|
|00005b10| 2c 20 26 6e 29 20 3d 3d | 20 31 20 26 26 20 6e 20 |, &n) ==| 1 && n |
|00005b20| 3e 3d 20 30 29 20 7b 0a | 58 09 20 20 69 66 20 28 |>= 0) {.|X. if (|
|00005b30| 73 74 61 72 74 5f 70 61 | 67 65 63 6f 75 6e 74 20 |start_pa|gecount |
|00005b40| 3c 20 30 29 0a 58 09 20 | 20 20 20 73 74 61 72 74 |< 0).X. | start|
|00005b50| 5f 70 61 67 65 63 6f 75 | 6e 74 20 3d 20 6e 3b 0a |_pagecou|nt = n;.|
|00005b60| 58 09 20 20 65 6c 73 65 | 0a 58 09 20 20 20 20 65 |X. else|.X. e|
|00005b70| 6e 64 5f 70 61 67 65 63 | 6f 75 6e 74 20 3d 20 6e |nd_pagec|ount = n|
|00005b80| 3b 0a 58 09 7d 0a 58 20 | 20 20 20 20 20 7d 0a 58 |;.X.}.X | }.X|
|00005b90| 20 20 20 20 7d 0a 58 20 | 20 7d 0a 58 7d 0a 58 0a | }.X | }.X}.X.|
|00005ba0| 58 0a 58 76 6f 69 64 20 | 70 72 6f 63 65 73 73 5f |X.Xvoid |process_|
|00005bb0| 69 6e 70 75 74 5f 63 68 | 61 72 28 63 29 0a 58 63 |input_ch|ar(c).Xc|
|00005bc0| 68 61 72 20 63 3b 0a 58 | 7b 0a 58 20 20 69 66 20 |har c;.X|{.X if |
|00005bd0| 28 63 20 3d 3d 20 27 5c | 30 30 34 27 29 0a 58 20 |(c == '\|004').X |
|00005be0| 20 20 20 2b 2b 65 6f 66 | 5f 63 6f 75 6e 74 3b 0a | ++eof|_count;.|
|00005bf0| 58 20 20 65 6c 73 65 20 | 69 66 20 28 69 67 6e 6f |X else |if (igno|
|00005c00| 72 65 5f 69 6e 70 75 74 | 29 20 7b 0a 58 20 20 7d |re_input|) {.X }|
|00005c10| 0a 58 20 20 65 6c 73 65 | 20 7b 0a 58 20 20 20 20 |.X else| {.X |
|00005c20| 73 77 69 74 63 68 20 28 | 70 61 72 73 65 5f 73 74 |switch (|parse_st|
|00005c30| 61 74 65 29 20 7b 0a 58 | 20 20 20 20 63 61 73 65 |ate) {.X| case|
|00005c40| 20 4e 4f 52 4d 41 4c 3a | 0a 58 20 20 20 20 20 20 | NORMAL:|.X |
|00005c50| 69 66 20 28 63 20 3d 3d | 20 27 25 27 29 0a 58 09 |if (c ==| '%').X.|
|00005c60| 70 61 72 73 65 5f 73 74 | 61 74 65 20 3d 20 48 41 |parse_st|ate = HA|
|00005c70| 44 5f 4f 4e 45 5f 50 45 | 52 43 45 4e 54 3b 0a 58 |D_ONE_PE|RCENT;.X|
|00005c80| 20 20 20 20 20 20 65 6c | 73 65 0a 58 09 75 73 65 | el|se.X.use|
|00005c90| 72 5f 63 68 61 72 28 63 | 29 3b 0a 58 20 20 20 20 |r_char(c|);.X |
|00005ca0| 20 20 62 72 65 61 6b 3b | 0a 58 20 20 20 20 63 61 | break;|.X ca|
|00005cb0| 73 65 20 48 41 44 5f 4f | 4e 45 5f 50 45 52 43 45 |se HAD_O|NE_PERCE|
|00005cc0| 4e 54 3a 0a 58 20 20 20 | 20 20 20 69 66 20 28 63 |NT:.X | if (c|
|00005cd0| 20 3d 3d 20 27 25 27 29 | 0a 58 09 70 61 72 73 65 | == '%')|.X.parse|
|00005ce0| 5f 73 74 61 74 65 20 3d | 20 48 41 44 5f 54 57 4f |_state =| HAD_TWO|
|00005cf0| 5f 50 45 52 43 45 4e 54 | 3b 0a 58 20 20 20 20 20 |_PERCENT|;.X |
|00005d00| 20 65 6c 73 65 20 7b 0a | 58 09 75 73 65 72 5f 63 | else {.|X.user_c|
|00005d10| 68 61 72 28 27 25 27 29 | 3b 0a 58 09 75 73 65 72 |har('%')|;.X.user|
|00005d20| 5f 63 68 61 72 28 63 29 | 3b 0a 58 09 70 61 72 73 |_char(c)|;.X.pars|
|00005d30| 65 5f 73 74 61 74 65 20 | 3d 20 4e 4f 52 4d 41 4c |e_state |= NORMAL|
|00005d40| 3b 0a 58 20 20 20 20 20 | 20 7d 0a 58 20 20 20 20 |;.X | }.X |
|00005d50| 20 20 62 72 65 61 6b 3b | 0a 58 20 20 20 20 63 61 | break;|.X ca|
|00005d60| 73 65 20 48 41 44 5f 54 | 57 4f 5f 50 45 52 43 45 |se HAD_T|WO_PERCE|
|00005d70| 4e 54 3a 0a 58 20 20 20 | 20 20 20 69 66 20 28 63 |NT:.X | if (c|
|00005d80| 20 3d 3d 20 27 5b 27 29 | 20 7b 0a 58 09 6d 65 73 | == '[')| {.X.mes|
|00005d90| 73 61 67 65 5f 62 75 66 | 5f 69 20 3d 20 30 3b 0a |sage_buf|_i = 0;.|
|00005da0| 58 09 70 61 72 73 65 5f | 73 74 61 74 65 20 3d 20 |X.parse_|state = |
|00005db0| 49 4e 5f 4d 45 53 53 41 | 47 45 3b 0a 58 20 20 20 |IN_MESSA|GE;.X |
|00005dc0| 20 20 20 7d 0a 58 20 20 | 20 20 20 20 65 6c 73 65 | }.X | else|
|00005dd0| 20 7b 0a 58 09 75 73 65 | 72 5f 63 68 61 72 28 27 | {.X.use|r_char('|
|00005de0| 25 27 29 3b 0a 58 09 75 | 73 65 72 5f 63 68 61 72 |%');.X.u|ser_char|
|00005df0| 28 27 25 27 29 3b 0a 58 | 09 75 73 65 72 5f 63 68 |('%');.X|.user_ch|
|00005e00| 61 72 28 63 29 3b 0a 58 | 09 70 61 72 73 65 5f 73 |ar(c);.X|.parse_s|
|00005e10| 74 61 74 65 20 3d 20 4e | 4f 52 4d 41 4c 3b 0a 58 |tate = N|ORMAL;.X|
|00005e20| 20 20 20 20 20 20 7d 0a | 58 20 20 20 20 20 20 62 | }.|X b|
|00005e30| 72 65 61 6b 3b 0a 58 20 | 20 20 20 63 61 73 65 20 |reak;.X | case |
|00005e40| 49 4e 5f 4d 45 53 53 41 | 47 45 3a 0a 58 20 20 20 |IN_MESSA|GE:.X |
|00005e50| 20 20 20 69 66 20 28 63 | 20 3d 3d 20 27 5d 27 29 | if (c| == ']')|
|00005e60| 0a 58 09 70 61 72 73 65 | 5f 73 74 61 74 65 20 3d |.X.parse|_state =|
|00005e70| 20 48 41 44 5f 52 49 47 | 48 54 5f 42 52 41 43 4b | HAD_RIG|HT_BRACK|
|00005e80| 45 54 3b 0a 58 20 20 20 | 20 20 20 65 6c 73 65 0a |ET;.X | else.|
|00005e90| 58 09 6d 65 73 73 61 67 | 65 5f 63 68 61 72 28 63 |X.messag|e_char(c|
|00005ea0| 29 3b 0a 58 20 20 20 20 | 20 20 62 72 65 61 6b 3b |);.X | break;|
|00005eb0| 0a 58 20 20 20 20 63 61 | 73 65 20 48 41 44 5f 52 |.X ca|se HAD_R|
|00005ec0| 49 47 48 54 5f 42 52 41 | 43 4b 45 54 3a 0a 58 20 |IGHT_BRA|CKET:.X |
|00005ed0| 20 20 20 20 20 69 66 20 | 28 63 20 3d 3d 20 27 25 | if |(c == '%|
|00005ee0| 27 29 0a 58 09 70 61 72 | 73 65 5f 73 74 61 74 65 |').X.par|se_state|
|00005ef0| 20 3d 20 48 41 44 5f 52 | 49 47 48 54 5f 42 52 41 | = HAD_R|IGHT_BRA|
|00005f00| 43 4b 45 54 5f 41 4e 44 | 5f 50 45 52 43 45 4e 54 |CKET_AND|_PERCENT|
|00005f10| 3b 0a 58 20 20 20 20 20 | 20 65 6c 73 65 20 7b 0a |;.X | else {.|
|00005f20| 58 09 6d 65 73 73 61 67 | 65 5f 63 68 61 72 28 27 |X.messag|e_char('|
|00005f30| 5d 27 29 3b 0a 58 09 6d | 65 73 73 61 67 65 5f 63 |]');.X.m|essage_c|
|00005f40| 68 61 72 28 63 29 3b 0a | 58 09 70 61 72 73 65 5f |har(c);.|X.parse_|
|00005f50| 73 74 61 74 65 20 3d 20 | 49 4e 5f 4d 45 53 53 41 |state = |IN_MESSA|
|00005f60| 47 45 3b 0a 58 20 20 20 | 20 20 20 7d 0a 58 20 20 |GE;.X | }.X |
|00005f70| 20 20 20 20 62 72 65 61 | 6b 3b 0a 58 20 20 20 20 | brea|k;.X |
|00005f80| 63 61 73 65 20 48 41 44 | 5f 52 49 47 48 54 5f 42 |case HAD|_RIGHT_B|
|00005f90| 52 41 43 4b 45 54 5f 41 | 4e 44 5f 50 45 52 43 45 |RACKET_A|ND_PERCE|
|00005fa0| 4e 54 3a 0a 58 20 20 20 | 20 20 20 69 66 20 28 63 |NT:.X | if (c|
|00005fb0| 20 3d 3d 20 27 25 27 29 | 20 7b 0a 58 09 70 61 72 | == '%')| {.X.par|
|00005fc0| 73 65 5f 73 74 61 74 65 | 20 3d 20 4e 4f 52 4d 41 |se_state| = NORMA|
|00005fd0| 4c 3b 0a 58 09 70 72 6f | 63 65 73 73 5f 6d 65 73 |L;.X.pro|cess_mes|
|00005fe0| 73 61 67 65 28 29 3b 0a | 58 20 20 20 20 20 20 7d |sage();.|X }|
|00005ff0| 0a 58 20 20 20 20 20 20 | 65 6c 73 65 20 7b 0a 58 |.X |else {.X|
|00006000| 09 6d 65 73 73 61 67 65 | 5f 63 68 61 72 28 27 5d |.message|_char(']|
|00006010| 27 29 3b 0a 58 09 6d 65 | 73 73 61 67 65 5f 63 68 |');.X.me|ssage_ch|
|00006020| 61 72 28 27 25 27 29 3b | 0a 58 09 6d 65 73 73 61 |ar('%');|.X.messa|
|00006030| 67 65 5f 63 68 61 72 28 | 63 29 3b 0a 58 09 70 61 |ge_char(|c);.X.pa|
|00006040| 72 73 65 5f 73 74 61 74 | 65 20 3d 20 49 4e 5f 4d |rse_stat|e = IN_M|
|00006050| 45 53 53 41 47 45 3b 0a | 58 20 20 20 20 20 20 7d |ESSAGE;.|X }|
|00006060| 0a 58 20 20 20 20 20 20 | 62 72 65 61 6b 3b 0a 58 |.X |break;.X|
|00006070| 20 20 20 20 64 65 66 61 | 75 6c 74 3a 0a 58 20 20 | defa|ult:.X |
|00006080| 20 20 20 20 61 62 6f 72 | 74 28 29 3b 0a 58 20 20 | abor|t();.X |
|00006090| 20 20 7d 0a 58 20 20 7d | 0a 58 7d 0a 58 0a 58 0a | }.X }|.X}.X.X.|
|000060a0| 58 76 6f 69 64 20 70 72 | 6f 63 65 73 73 5f 73 6f |Xvoid pr|ocess_so|
|000060b0| 6d 65 5f 69 6e 70 75 74 | 28 29 0a 58 7b 0a 58 20 |me_input|().X{.X |
|000060c0| 20 63 68 61 72 20 69 62 | 75 66 5b 49 42 53 49 5a | char ib|uf[IBSIZ|
|000060d0| 45 5d 3b 0a 58 20 20 63 | 68 61 72 20 2a 70 20 3d |E];.X c|har *p =|
|000060e0| 20 69 62 75 66 3b 0a 58 | 20 20 69 6e 74 20 6e 72 | ibuf;.X| int nr|
|000060f0| 65 61 64 3b 0a 58 20 20 | 66 64 5f 73 65 74 20 72 |ead;.X |fd_set r|
|00006100| 66 64 73 2c 20 77 66 64 | 73 3b 0a 58 20 20 73 65 |fds, wfd|s;.X se|
|00006110| 74 5f 6e 6f 6e 5f 62 6c | 6f 63 6b 69 6e 67 28 29 |t_non_bl|ocking()|
|00006120| 3b 0a 58 20 20 46 44 5f | 5a 45 52 4f 28 26 77 66 |;.X FD_|ZERO(&wf|
|00006130| 64 73 29 3b 0a 58 20 20 | 46 44 5f 5a 45 52 4f 28 |ds);.X |FD_ZERO(|
|00006140| 26 72 66 64 73 29 3b 0a | 58 20 20 46 44 5f 53 45 |&rfds);.|X FD_SE|
|00006150| 54 28 70 73 66 64 2c 20 | 26 72 66 64 73 29 3b 0a |T(psfd, |&rfds);.|
|00006160| 58 20 20 69 66 20 28 69 | 6e 74 65 72 72 75 70 74 |X if (i|nterrupt|
|00006170| 5f 66 6c 61 67 29 0a 58 | 20 20 20 20 68 61 6e 64 |_flag).X| hand|
|00006180| 6c 65 5f 69 6e 74 65 72 | 72 75 70 74 28 29 3b 0a |le_inter|rupt();.|
|00006190| 58 20 20 69 66 20 28 74 | 69 6d 65 6f 75 74 5f 66 |X if (t|imeout_f|
|000061a0| 6c 61 67 29 0a 58 20 20 | 20 20 68 61 6e 64 6c 65 |lag).X | handle|
|000061b0| 5f 74 69 6d 65 6f 75 74 | 28 29 3b 0a 58 20 20 2f |_timeout|();.X /|
|000061c0| 2a 20 73 65 6c 65 63 74 | 20 69 73 20 6e 6f 74 20 |* select| is not |
|000061d0| 72 65 73 74 61 72 74 65 | 64 20 69 66 20 69 6e 74 |restarte|d if int|
|000061e0| 65 72 72 75 70 74 65 64 | 2c 20 77 68 65 72 65 61 |errupted|, wherea|
|000061f0| 73 20 72 65 61 64 20 69 | 73 20 2a 2f 0a 58 20 20 |s read i|s */.X |
|00006200| 77 68 69 6c 65 20 28 73 | 65 6c 65 63 74 28 70 73 |while (s|elect(ps|
|00006210| 66 64 20 2b 20 31 2c 20 | 26 72 66 64 73 2c 20 26 |fd + 1, |&rfds, &|
|00006220| 77 66 64 73 2c 20 28 66 | 64 5f 73 65 74 20 2a 29 |wfds, (f|d_set *)|
|00006230| 4e 55 4c 4c 2c 20 28 73 | 74 72 75 63 74 20 74 69 |NULL, (s|truct ti|
|00006240| 6d 65 76 61 6c 20 2a 29 | 4e 55 4c 4c 29 20 0a 58 |meval *)|NULL) .X|
|00006250| 09 20 3d 3d 20 2d 31 29 | 0a 58 20 20 20 20 69 66 |. == -1)|.X if|
|00006260| 20 28 65 72 72 6e 6f 20 | 3d 3d 20 45 49 4e 54 52 | (errno |== EINTR|
|00006270| 29 20 7b 0a 58 20 20 20 | 20 20 20 69 66 20 28 74 |) {.X | if (t|
|00006280| 69 6d 65 6f 75 74 5f 66 | 6c 61 67 29 0a 58 09 68 |imeout_f|lag).X.h|
|00006290| 61 6e 64 6c 65 5f 74 69 | 6d 65 6f 75 74 28 29 3b |andle_ti|meout();|
|000062a0| 0a 58 20 20 20 20 20 20 | 65 6c 73 65 20 69 66 20 |.X |else if |
|000062b0| 28 69 6e 74 65 72 72 75 | 70 74 5f 66 6c 61 67 29 |(interru|pt_flag)|
|000062c0| 0a 58 09 68 61 6e 64 6c | 65 5f 69 6e 74 65 72 72 |.X.handl|e_interr|
|000062d0| 75 70 74 28 29 3b 0a 58 | 20 20 20 20 7d 0a 58 20 |upt();.X| }.X |
|000062e0| 20 20 20 65 6c 73 65 0a | 58 20 20 20 20 20 20 73 | else.|X s|
|000062f0| 79 73 5f 65 72 72 6f 72 | 28 22 73 65 6c 65 63 74 |ys_error|("select|
|00006300| 22 29 3b 0a 58 20 20 6e | 72 65 61 64 20 3d 20 72 |");.X n|read = r|
|00006310| 65 61 64 28 70 73 66 64 | 2c 20 69 62 75 66 2c 20 |ead(psfd|, ibuf, |
|00006320| 49 42 53 49 5a 45 29 3b | 0a 58 20 20 69 66 20 28 |IBSIZE);|.X if (|
|00006330| 6e 72 65 61 64 20 3d 3d | 20 2d 31 29 0a 58 20 20 |nread ==| -1).X |
|00006340| 20 20 73 79 73 5f 65 72 | 72 6f 72 28 22 72 65 61 | sys_er|ror("rea|
|00006350| 64 22 29 3b 0a 58 20 20 | 69 66 20 28 6e 72 65 61 |d");.X |if (nrea|
|00006360| 64 20 3d 3d 20 30 29 0a | 58 20 20 20 20 73 79 73 |d == 0).|X sys|
|00006370| 5f 65 72 72 6f 72 28 22 | 72 65 61 64 20 72 65 74 |_error("|read ret|
|00006380| 75 72 6e 65 64 20 30 22 | 29 3b 0a 58 20 20 77 68 |urned 0"|);.X wh|
|00006390| 69 6c 65 20 28 2d 2d 6e | 72 65 61 64 20 3e 3d 20 |ile (--n|read >= |
|000063a0| 30 29 0a 58 20 20 20 20 | 70 72 6f 63 65 73 73 5f |0).X |process_|
|000063b0| 69 6e 70 75 74 5f 63 68 | 61 72 28 2a 70 2b 2b 29 |input_ch|ar(*p++)|
|000063c0| 3b 0a 58 7d 0a 58 0a 58 | 0a 58 76 6f 69 64 20 64 |;.X}.X.X|.Xvoid d|
|000063d0| 6f 5f 61 63 63 6f 75 6e | 74 69 6e 67 28 29 0a 58 |o_accoun|ting().X|
|000063e0| 7b 0a 58 20 20 46 49 4c | 45 20 2a 66 70 3b 0a 58 |{.X FIL|E *fp;.X|
|000063f0| 20 20 69 66 20 28 65 6e | 64 5f 70 61 67 65 63 6f | if (en|d_pageco|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.