Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!husc6!bloom-beacon!mit-hermes!jpexg
From: jpexg@mit-hermes.AI.MIT.EDU (John Purbrick)
Newsgroups: comp.sys.atari.st
Subject: Print utility for C programs on Epson-compatibles
Message-ID: <2879@mit-hermes.AI.MIT.EDU>
Date: Wed, 7-Oct-87 03:12:20 EDT
Article-I.D.: mit-herm.2879
Posted: Wed Oct 7 03:12:20 1987
Date-Received: Sat, 10-Oct-87 06:10:46 EDT
Organization: MIT AI Lab, Cambridge, MA
Lines: 299
Keywords: Features to enhance a printout's readability
CPRINT is a utility program for pretty-printing of C programs on an Epson-
compatible dot matrix printer. Usage is self explanatory--the user will
receive a list of options--but here is a list of features:
Draft or NLQ printing.
Date and/or time and/or title appear on each page or on first page
only, or not at all.
If any of {date/time/title} is selected on each page, page numbers will
be added.
If none of {date/time/title} is selected on each page, skipping
perforations is optional.
Comments appear in italics.
C keywords appear in boldface.
Tabs can be set to any size.
CPRINT is a self-modifying program. Once the user has selected a choice of
options, these will be stored in the program and presented as the default
when the program is next run; obviously, if the program is loaded from a
floppy every time it is used, this feature is nullified unless the modified
program is copied back to the floppy. It was written in Megamax C.
The program is ARCed and UUENCODed.
John Purbrick
jpexg@hermes.ai.mit.edu
(rutgers, ihnp4)!mit-eddie!mit-hermes!jpexg
begin 644 cprint.arc
M&@A#4%))3E0N4%)' W2X *<.@Q!\!_L\ ,8#0 (!#S$ "< 8B$ 8
MD@,G^1H.L %QX 59%0%4<)<1 Y.,%PR Q)31 J*22#+:$*+BB8HV B : &
M ;16 "C_R -\.
1
M 0B8&$2 G=:.Y\R<4P"],3 !1!1D__A]!0#A+(>T0C"\C8L")H1L93FD:!+W
M)0 $3G#" ,$F+A(T YT;6 !I9'+UC\L_=#L[[) #1P>51UX&0(ODH'*2T@
MZV4G=9Q8\4>N!Q\ &_XI$.+F'P'>_P#8!A# '[\?+G2SG@Q"W>7219;K L'M
M,A(VIG6=X/'<:J_K "Q,/N%B-'@JXTE8[^T O)O),8A!>12$73XU()!,@4P
M!HJ8# Q$$RAU7=??B! ( 4D ( ! 00( $(,+?] \9 #%QWWV01@&$==G(@
MT1L8D\E PWPB6ICB0[IH(,!\+0#A#SX,N-(0 3.:,1 %*X)'QV0FD#+?9 V@
M,U5IB.GR@3R7,0#(C3K2!1Y)NI@ R&NZ-$!,5?_\P^4_DRW Y",] /$/ C D
MAP"%Q)TQ4(38$0,D%9==6!-XT !IQ&5IGLFF &Y*B9TV0,)0)X;@F0.D"'RJ
MR28!@<() #Q ,G#HG=CY,UD)_C3JYVT'!&I"GVO>AD"DUP609 G5/6)GAFP$
MX,.FSGA::H.HQFK&IKA<"FL ?FRJBJUL0I!K )IL2HFOJ?*RJ2&V@@,$F_^4
M^8\ R%V;*C6;JC%:9O](4UH"DWD@SVBE!3"9 B10\4B ^F(+' (I,K.IMQA
MIIDUXY9+#+I6J:M+ O:XJP00@2H 0\!V&K#P0('T5F^L'.E2 @&7@:M-O[IX
MP C Q$V6@"\&(SR0PE8)T/## $1\9JJ4ZD(",QEKY@W''E !LL )&%)RP@\3
ML+)5+4NI .H K#LX0["RR$#^?_# *0T-L=*ST) U%S?^8
MPW$'V(PVE<@,9 T RG1U7?3+L=J3M ;$W@9"E%%KIL[9EEBM"P+(N TW"'*[
M/'$ ^$PV@C5DNW.V%Z--=H 6UF*;G.9GBFQ#W@ \'0 B0B0'1M.W03J0!3W&
MJD^*).HR@B;><,4 ZFT.!$9I*DS6@0#NENF//VD.+PX0TD+#QP&\_ ! \?ZH
M,^UM#Y0#2'W_F -,"] #V;'SA_G0 P#Z9"ZA<-E00[E@(0KW!0!/(4X[#
M4#M=N ,ZD.16L3 9!YAPESF0-ST ?$!XQ'/!\) C$#8#@E @!< H@0W!MC)
M =!CH /O! 3QL4$ &1K1^7"@/@"PSWWPDQ_]="$"8-Q/ :7QGRXX0 -W28]-
M/_"@ "(D0EVX0 E/"$8WH>$^,T/ ),1@2)>R W & !PWO#0% P/M;UL 74
M"&+[AIC"(R:1"_.Q$PG&QP'SZ:(%KM B"HNH0B2RT ;SR=9NJ&*5 4QF VX8
M#>Z,M;K2N.%(=;RC%$9C)PF4!@J !( ==;$!'Z K.7,LS2(W4![26*4,B9RD
M!]1VADS>L6JDV9PG&0F 1^IFE!J !\B,@$IPF#*2@6P1-$ F %0"XY6HA(4>
M':4W497&":BD!,C^2$=%3D8#A"#D0 QIE2>@$@[*)( @FCB0X$0)@[P,790\
MT*?R-9 K/("@!.5EC(>=BCBI@20J50"R J!2-$S+YCD!H +D&&=\(C C"S"@
M1BZRT8O3 <4+>3,\.UF@-" 890:<,1HIN&&!/5Q!JX8"/6@$ 5Y0@,D_J"%'
MA8("9"U0*(-VIE! J.VA_K 3"(0(#7<,#T(2*OC"9";#C?@P8YT ,<"$!X $"
MR?F"A. 5! )!*+2C%9 6I @ #X#V'Z(%!+S"0" 5O#:V\-*#$WER6PG)0('^
ML*D_3@@+: 0# H#HK >H"8 H$@<'Q&WI\*Q*T)0.A 31I2I, >&\R1@ &^XZ
MH0.DZP_D"C>[6Y605^,%@'\P0[SDI2Y*[:2"%4'/>MC3PO:Z-YD48& ^F@4
M9P?" >'>]WKL^(=^@<$ !D&IO<0X<'ZWU^"!0$)U].P3 :(46'4F]@(X %D1
M1GD!%##6N@U";WFY*M,/&Z"A*$T1+/I+ 9[*B!P_?2@YABI824[& G$M#2L3
M:P&[/J*ZO>4N $9I 5T^(LGK?4&4E*#A*"&@ [WYPC\:\-H&J/O-G2Z1FU7;V- J)D (<&YV$!T-$^].#8&4VF /KXD !Z-T,Y
MO,8+L$FU%?[!"N"PPD[LL!.VK+* R50 '5G[ASR09&OP/J(#9OK':_^1VN<1
M" ?#+G8.=JN"/K'"TJPXH2NV!P%7="G92I9.!99F)T-@>[T-H*"=^& G.'S;
M5%$2 W-9S5HLE&8#VJ:3)0% !&WO:=X@T#8)YPWOE-E:!=VAM[8YX"E68)75
MTMZ>53$=5@BLFQ44-*>=4)#P]K6:AZP>'PM2Y H@.0"SSI:U$U =FU6C&!2R
M+DVM=4$!6>1ZUP&;# 5$X2Y@7SLYQ(XT ,*-(6H&X#"!#H/*\)-94R3Z%WB<]N,/K0=>Z$B!/-3G#+='NY,')5_P,:A93#
M$^0 !SG000YID,,;Y. &.0!"#HB)P_A@D")N68P7*/I@.'L#CDVY D6$[SN1
M^ C,T'#L6='$FM2="]=/( F 4./X"#8A_TR1_CN%[[W+$]&$#@M_\ ?2!.
MR [CP@ 0GP\]ZTL/ 6J=D!HM3;UY>^,/:AH@]1IMGE4,,#X@*%YFWF"B@"8X
M$$] /D^6EX6-4__\R*8L1?R8C /@@-GJ!VSRO5&']K&0^3-\GH%/>?YD'H "
M)O8F. A@K0:\3QSP'T;[IL!L$[OT-OG3/P#VIP#:1PB892P@_4@GKJ( P5$@Y!<#TB1W*RH3L#
M,6M/-!D2X ,O5QH'X((NX"Z3$0#*4'8E-Q @(59: M,!IA:($KJ(,IZ$8;]5N'\4\I8"8>((>K9C>Z\ ^\$".; 0*:
MX0$,8FWV0(8[" #(<7^6)P_NTD2#H!!NX#!?YP&-B "E,2NZ$ %C\P@Y 3X
MH UG8(E= @;]031\B"%.% 2'T0840$U: 8\,!7/
M6!H\#W.@XV61P>)9B8)E'JK6(^'41H?H0L08 :G9G;^\ (+8"!J8 )(
M 86 ,K\#9L,@!G@ 6"1H ]PC6P!44 (7:1]J( ((( T_ 0 %0 NP$ AM
M@ V9.!G_X KN8@*4=80#89$FX$0DN7+T=AG*:(H6 @,>"9*W82P*\ (?*1+X
M" &7(01K\#8_\)$,,!G^@ 8_PY2HR#) R8>.<0X! %%>1A/J0 A:09HP@.G
M.!".X (3X FK(&!OR2: < 9U]I%P>1L"8 9DR09]F3IG8%8I(P2GT)4U,1D,
MH 9Q= !4*6"0^95O!!9ICM:"$V( !K\ ]_\#8ML 1QP0!;J10,\ 88D"Z.
MF9F2R0+S 0*]P0\A(" .8 )[:0!:&1,LPP3?@ !06')Q091&F9C$89@ L)4"
MHC""R29@,)*?:204 &8 94H)RGX@$LB9$,@@@;1 $&X@'1 Q! WO
M8R4G(""1AOLXO_"0$!*@JG&1>1Y96Q
M:15"H'UV\$*V&1>Y"0"[V9NJ.8DU808*H"'!H@O^P"!\$IU\H"JEN'3],9\#
M.0&RJ0L6@ 7S<0,"0@!3L)4G"B#G" *JR7\;YI];.8\*(*#.^3:_F8JGZ!53
M( 63L%W41_C
M69[GF9[KV9Z \)X"!@;R"0#TR3UNM "2D)]KNI]/?"@N]Z9FV
M"@8*0J.G.@630*G-"@C0NHBV>1C[ 9S_00 2!(OIB@ )LB -\B!P9$8 F]^P_64 0H
M( !(0 0J< !(4 0R0 #"4 PJ"PS'X S$0 S%@ 1'8+1'*P2%@ ,'H .U= 1"
M( 30< C30 C0( C34 AF>P8$<+?$H;W\ )7\#8O1 2#FVHDEX?XD%1LL-2@X0A8\ 2P
M<1U.K0MO$]6$Z-2%>P[ L+5&F2 BT*Z$',,<0+SCP"!FC=:!<-9" 0%'D:<#
MX!,"HA2 $ A%Z--V5+6&V]7Q*@1V'9&_D5P8( Z ( Z10-B&C=B1H+&/D!1Q
MS0LX(!$@D+CK[+=Y':U86[Y&V;B&*01#H,L8X :J+ @VP ,$T &SK+&.?P PT)8(0 )/W!OZT )*$!P0R3 31O0H/ P/C, AD( !2 04 SP2 'H'.'C$ 4L, ^$ <'@4C
M;@V&, U'( VW 0,4$ Q[(0Y"<-X$8&GZT"?Z$*:Z'1="< B[2 %< 0-2< @@
M< !VR"/!<)-MX XQ#@9D\(;\8 .WR"/# V#( 6 0 ) $*'\L%WK!0-E+ 6*
MH 4*2Y\ZEP-O@ $( %O(P7!Z@Y:SN4K;@82D.-RH0!6;@(6O@VI# ;Z0-].
M#N4Y@013/@@.8E7IZCV%()P,4'C B ^&N[UMR0# @0\0, %\)@9R:1O[C ]2
ML B5SF=R$*:?KG-W< 84,.KK%09GH @8!47!KY2D-7<@.7\J:3>,.S%'I,SF>PXR>JN+C0#456L@ _<
M( 1J(*2\#0$?&;XZMP(@/1PQJP\ L.VVG*R63NIF\)K)@0\$20_0] @^,!#;
M3CX_B@:H?AMA8 9"\# " B] 5E0H:^Z0 !(,!KU'B!=8@9F]>[Q+@,*SXB-
M^9@SN($J,!_G+F !>LG)H0\"_P\$3Y $\&+T;N_$\38,< 0-+^G;+NTW @8\
M4 -'4!/:'A.M?B,D @E )^^C: !$YN\KID!P RU>9L3Z@!:'@-1#!D2,.R*
M7IRR$8SG, !L:90^<(L.\ SN4!,\< ,8 0#\090<.@"R[[ONI).5!<+6Z]*
M^JOY2A>340]8,'WFV/(P< ,8@0:U/46Y/&I9P' , 5& :J,'4#X !K 8\.
M4)9$(YQKLI"&:\M93Z%<[_5@+_8 \ 8N4(Q?>QA28",(L%W=I0OW<$OOTIFW
MH_< P/<-Y/<<2?A@P R(K_@.H_6./Q#"B;L+^:1'.1GS$&J/L)35.8O$>(L,L*( 8 GSP:881#3G.H>^#P(?Z0 B, 'R(P)5R2"!4/TF9[CP D
MX(LBP/R>((P\0) 2
MH /3J*&V(0A=@F*"((Q"0) 2X '3F.E\( C^D'I@8 ;PR !L$@#F1Y 2 NQ
M6J+="@;>Z(O@"!H\31H4#P"<" "$T"CQ>!L#,)"^6!H] !IL0(X(&8JC*$'N
M7YT8 (\,((_TF"WWZ ]^X"F:DM1)< ^FD )*< ^BD )?< ^>X 1-( )L< ^F
M0 )L< ^BD!GWX FPD0))< ^FD )*< ^BD )?< ^>X 1.( )L< ^F0 )L< ^B
MD!GWX FPD0))< ^FD )*< ^BD )?< ^>D!4BP ;W8 HDP ;W( J9<0^>8';6
M\.A7;_.]80WPB #K109[C@ ^8!4_Z@)@@ #K50=[C@ ^8!4_Z@%@@ #K]09[
MC@ ^8!4( :-CP#KA0=[3@ ^8!4.9R/9"0%LH +41 :'808K6:D_T0)A2!=$
M @Q$C?8]#9R*0 VTE[!X7 UCP @'89TH;$2<0 @N_)T =)A2!<:*Q$/ 8K
MJ?Q/D??U.1G[ R7 0(?@'K68&G60+PGA VN)ULUCP!FH/3*;PX3P@L?X-A@
M@ (K3Q=FH/3*CPX3P@L/X-A@L)+*_Q1Y7Y^3L0]R (?,/E7+W5N\'-O8YC#,:7$WO400-S&C041(8Q(
M0-7'P0-H/O<2T 7 P"8!8'/> (]VWD'EDWB](0XB(O>Z8 _,)++
MFJ0_T0*O)0Y\YN42\%KC -++>JC_( [@JP34I",($"7@D/5BY0T(*P5'D/>P
M$,7QYS"PC !@( !YO_ U#P#NOW0"D/?BDWB](0XB(O>Z4 _Z<#\.( 1&D/=G
M( +K!@YMH $P4&E&<$+B0&V%RJR , 5'<'#@ ;:L&[@T 9*7ZD_ 0,'!PY@
MH [PR*GR6JD_X0+PR*D:L']* 0YL\/25^A- 3GA8%:#@ (\!B[#*2 (K/_;>
M4VE&<$+B0&U+@%N(@!6 $2X+(00.;K
M50)GX!5&&?J' 0&: ;F %DOEXEH","P )@#ASL8!L_]P]&TAOFT %Z\P_O
M %DOEXMD.FWL6CL .800.9=+I<=L.+_\ Y@_O/PD"(Q,X33IPXY#@\00.;K
MY0+M#N8_#P\I$C/!,7W9VQOP %DOEYLD.FWL6CF .80( $R[ $:@ 2'T )&
M*?(K#P!D< 82L/*;?P:95?-X4(HK#P!UX.]]8@XC&=Q9#@%@(*\+X""F5Y\B
MTI#)8387OP]4 '+)80XE:A5"DXH H,# < W 8">DL/( , ;MSI)6[B 0$J^A
M?QC(106+T&TK#P!S8 8T$-Q H-'_0 ]8L @\D!SHP)$12@^A_P_T "'Q&OJ'
M@5R$#P,&,)(12@\08@;> 9*L/( 4 9GD%DU;P:EN/(M:P8L$-Q ,-S%3858
M$!&9$1&9L=0BTI#)@0X_'\8 'W P%0L A@L/KQ&OJ'@5QA>!B'*/) ]0_J
M@!T X A]P@YG0 (\D!SJD/Z'(0G6A@^<$ 1@H/1&&?J'46W_\ Z$#P/;Z0Y@
MP(3O#H)34,Y&)(CT((CPP *^R G6A@]@P %OB \R8 !34,Y&Y" 0$J'T, 76
M1@_(1?@PL)W@\(;X O61@]NH/0#'_HB7VW_\ Y@@ YO" ]6'B.'<2']@ I]
M71>^>(AQH>C P(>-Q?PIXD;]@ ;D*",5Z8LIXD8$,1_0(_E&R:$\:0Q#HM=@
M2Y#]8 )#4K7Q"B%G,'_,'Z^A?QBD[T;M@ "$Y UHR0^2J!#RH@.O? ], ML
M< ]*("_/0S2A> ]*$(KW4&HH2\,KWH 12P ;WH 3U<0].0&U='OH62 U.+I?5.1#L*89V@@Q@T/DQ#7G'X8NE\0.3<0]<@%F"R ^A.(H2
MQ 98:B$#468&7P_\4#)1LK5B6"84&H9O@^=8SOAGP 4L>8AOPT"P8&W\T 8'
M*-,4JK'5] ]/D8FE\0.380_T@%FA.(H2Y/[520.O/(J_/K9*L.\[1\B=WN/;
M@%4.[0G#?HAOPT""N'E-K0U.KNA(5+6O? ^RFAGW8 23H0[\Y"I>P0;W( 12
MP KW8%5XXL,
M9X]H:0\O< ]@+ Z/O#
M80\[#H\(L%YDL.<*,!P*D'I@0 -@@ #K]09[K@##@0"I!ZQ@@ #KA0=[K@##
M 0&IYZU@@ #KA09[;@##H0"I1TTM$!<.CVG6TC@>Z@O6P@_PR !G ?9X@_9
MDGT>*OS6H@\,+[-80$T*P,\6,.3G @B< #$*S]0_@^O,^BW"++4A #\7!<'
M< Z .7_\#J#?HM@H/0'D Z .7_\#J#?HM851.*)M(>J@36,H:*T"?VL.JO
M? \^(,-0? ^>QP+W@##$R +W8 39DGVZ@ X20$@RR@KW\._O7HI#3@3))0!#
M[@(?@);<\.@04/D(,!P*D'KG!PR3P0X,L-++O=3+'1' 0_ H>2]P0[ H0Z*
M]@]&TAOF,!P3\ _D4!\$0 7$;=Q8@-SMPPW+O=3+'1$K#P M8 8.T &WL6CU
ML*^64.^HZ&CU !SR (^<.A#\L/( T (.WR?NL.J*]@_J8"?2L/+&-A":L/(
ML&P#(0E]X@ZFWB?L$ Q
MT"?P(,,')P]]@@Z[<$+F0-S&
MC041,1GG( /QB@6BK[ K583V;R>40$US\ _T$"6*,!GY( #68@\,_P_<>HI\
MT"?RH*'QB@6B3P)0T"?N< 80[40@L!EG8 /4E ";<08N0$T*L!EG,"K)(0^>
MF1SV<.&3@0^.8"WVP/#_P*VGZ ('YPY@H,,:\,KW@##$R +W8 39XH?BH#.N
M(J.L< ]"8/\7P@_0\'F*CD15BY%5> ]&D .W$0#W8'Q&B=\@ZJ]5FP)&>0\G
MS ;W8'Q@B]]T,)%;_3RXK=LU@8J=#N:5?@8,4.D20)^!H%Y!< ;L,.H60)^#
MP"!#H.A(I-=J>=N;#;:5?U5'D/E@#@;D,.H6
M0)^#P"!#$/7_^M4((,1_80;9I]?G\#RX30)+ 84[ND38 ;ZP)(,H@B*CD15
M^XU6$023T0[L,!JA.(K4V:V\R#(+"8\,@%4UH8PV$*]P_C9FX "ET0#2T0[#
M H9&&?J'0?H4#P"MH0OM4*>NX@L+"8\,@%4UH8P:$*^A?QBD3_$Q,1GM0 9U
M0BA5"X\,@%4UH8P:$*^A?QBD3_$T.1GMT*]@0"C 2-OG\#S42@)+4!\$P 8,
MS=%N@*$(8 8'I?6M^@\TD&A.Y "I![Y(T$2" ']F<%!:WZH6DFA.Y "I![XJ
MT$2" ,T(8 8'I?6M^@_SW@-.Y "I![X,<*#ZP'D[J0OK @.8 PSV254CN7#?HC_
M\#H";2;R 'GZ 'F[YHNE 023L0[2@%GE&(JCR$"P8&WR4*+=B@!0S([VJ.A(
M1')#D!\*+ +(4!\"0+_(4!\"0 (B@ SU,0!$( +(4!\#H 0B
M@ SU,0!4( +(4!\#(.;(4!\#( 8B@ SU,0!L( +(4!\#0 ( +($ 1E$1;($ 1E00(B@ Q!4!8J( +($ 1E
M(0$B@ Q!4!8,( +(D *W<6'8G@,^> ],D ,^> ]840=74 9L, 9OT 9E )T
M\ 8@, 10( 5)X 14X (*H #005HD 9S )P4 =BP 9I, 8@0 9OT 9AD 9N
M )M]P9G( >T!0(E, 8@( 9Y )*\ 9HX 8Y70=R( 9P-P9KP (@T 1A( =C
M@ 8@$ ,Y@ ,WH *,!!7@ 9A0 =[DP9L4 :V25ME )T\ 8@T'9IX 9T\ /S
M6 )S,!!R !#$ 9N< )T )O =EX 8@4 )SH ,@0 =Y =E )AX 9Y )C
M@ 9A( =A, 9T4 9R,.P 5PYP9T4 9R )I, >V^09T )A, 9TD 9V4 8Z
M )TD =P4 8@$ 9ND <@, 9H$ 9R$ 9C0 =E( ?##@!0 '=N0 <@0 9A0 =E
MH !(] 8@0 9A0 =EH # 05PYP9T )TD 9M4 8*@$1O )TD 9M4 8*,!!0
M '=N0 <@0 =I0 =L4 8*8!IO )TD 9TP 9EH D 1N8 9SUP9A0 =I\ 9N
M )MEP9N0 =ET.1OX 8@4 9A, 9H )PH.IEP (@< =I0 =H )PH.IE8)MU
MT 9B4 9R, <*,!!)X 9F,'=M$ 9TD 9OX 8@T'9IX 9T4 9-_@9NL#=Q-P=T
M )PH.IE )OX 9LD <* SF@9P )O8 =E( <@ =E( =F,'=A0 =I\ 9N
M, <*@$1O )SL 9I <@\ 9V4 9R )P4 9R8 9S%P9TD 9OX 9SH # 05P
MYP9TD 99!P)I, >,409T0 =E( L509X0 =E0'<#(0=E< 9I, =T4 9R
M,!!TD =P4 9D4 8Z,@=T$ 9TD 9C,!!G\ 9TP%IR4 9T4 =T-Q!SD 9Z4 9O
MD&YR4 9AL)5C\ 9N0 =IX 9U4 8#D0914@9L, =E$"]S!P!DP%IW@ 9IP 9E
M !S< =I0 =C !D , 9A, =E,!!D4 9F$ 9UP 9T !EX 9OEP< $ 9S !.P
MP0;8<15AX$1&4 8&T01A(