mah@hpuviea.UUCP (Michael Haberler) (02/15/89)
# This is a shell archive. Remove anything before this line, # then unpack it by saving it in a file and typing "sh file". # # Wrapped by Michael Haberler <mah@hpuviea> on Wed Feb 15 15:55:39 1989 # # This archive contains: # BLURB.Z KIT.Z Makefile.Z README.Z # commands.h.Z dvi2lj.1.Z dviprint.csh.Z findfile.h.Z # history.Z make.Z testpage.tex.Z # unset LANG rm -f /tmp/uud$$ (echo "begin 777 /tmp/uud$$\n \nend" | uudecode) >/dev/null 2>&1 if [ -f /tmp/uud$$ ] then rm -f /tmp/uud$$ unpacker=uudecode else echo Compiling unpacker for non-ascii files pwd=`pwd`; cd /tmp cat >unpack$$.c <<-'EOF' #include <stdio.h> #define DEC(c) (((c) - ' ') & 077) main() { int n; char dest[128], a,b,c,d; scanf("begin %o ", &n); gets(dest); if (freopen(dest, "w", stdout) == NULL) { perror(dest); exit(1); } while ((n=getchar()) != EOF && (n=DEC(n))!=0) { while (n>0) { a = DEC(getchar()); b = DEC(getchar()); c = DEC(getchar()); d = DEC(getchar()); if (n-- > 0) putchar(a << 2 | b >> 4); if (n-- > 0) putchar(b << 4 | c >> 2); if (n-- > 0) putchar(c << 6 | d); } n=getchar(); } exit(0); } EOF cc -o unpack$$ unpack$$.c rm unpack$$.c cd $pwd unpacker=/tmp/unpack$$ fi echo x - BLURB.Z '[non-ascii]' $unpacker <<'@eof' begin 644 BLURB.Z M'YV01N2\:0."3AT[:<J$"'(ER94J5V+$<"$D"14G1:B$P%BE21 G3D!,"4,' MA)(P;D#(B $"1@P=+D$T*:(%1(P<.'(HD%)F3)DT=LJ0T0%"3!X0:. <3!AF MATB2+%2R/)DR9\N7+G70H &B31D]"@(.)&H0H4*&#B%*I&@1HT:.'D'N+&-0 MCIL64$BB(<JC;,*%#1]&G%CQ8L:-13I^=.)CKD^@0HF:$4C0;QD0=]+000.B M3ITQ<)R.I!-UI4F4(*S"@*$C1@T=,W3R?!QT:-&CEEUX!BV:Y.F4IE>W?AW; M)D[9/7_6EDRY:QHW=%SXM L"19OG=%+<!C'=C9TP>'1_AE-]HHP75=C0D9,& MCPP7,%H(2:$@01HR((($B6&CAHT<O9$FU6^IY= 2:S#( )N!*[BTFF/*1;;= M==!)5P9U*'3W'1[:H4"#"S&<-P.(--!G'W[ZR6!#;#<X%5 :I<% H%7\:44# M;#6 T& ,#S91QAQSA'%&&2TD81L/.;DD@TLU;.5"BBOF< ,0%$;776.S16B; M4=Q=Z!UX(+Q(X)(VV6 C3#;4-]E (,"U&!!H";9686Z!8,8;<G051AIL7 B$ MAF B% 8(<LPQQAPN*("%?)JY05<+4Y3A!AD7$N4F2' &IA9A;64$@@)$D%0& M42_&.*.!-<[PDHH@/$2% E2\05122Y411@AMA(&& D,,Y!5T1 TAQ1-33%%G MKGR"(*A,023!1!%2 #$$M$Y8$006"DQ1AQAJ]$0'43SU&<8<E\'@PE8@O&$& M"&0@) ,>X8T!0AIS@!#&=WR&(4:?"H J*E%D4F5<3E'5N&1K,H1%F:6)Q162 MO27%N6FVVW8[QK=MEG$'H66(2VYUYFZEG;KLN@NO B"DG#*HMN99AY"7Q4UI5)OY1B\(+1!*^AEH1"TV'+:N\=P9L'N>>>-N\&Y& M&H72$?K/9025TNE#IF2XVRG]+#=^S(=-\J!DO#%&'6J[D)\9=&P^<^C#%X]4 M&&RL6_=EU=<;AASL_RZ4VW:^P08;;V06_/EPX.[&''I36>=2-K00D<5NG]-< MGL10AC+ 80Y1F0,:\E<OKP )=2"HPD3RDY+%78@D> H=W\Y6+SIT#G[#NQ_] M$A@^ZJ&N7MCIW.7"@#N?R2$,1WF>"46H,J5(D'Z$@\YSZG 9,=2!#B;L8/00 M*#\Y)$J *F."$IKV-#[EX8#QP\[FYF#"!T9P@G>HX(^"-"00B, (12@"$41@ M-/S,(3-T&$/2YL##E#U.3VZH _KLU,##"<5[@,NB KGS.. 1L5YW2%I*?C(S M.=1QA?)SX9#<!S\^XB>&],M5'O=8/3X*Y4(L>"2>Z.?!&YHP3SZ<(Q +.<0B M'C&)U0D#^#8'!S:$80R[LQ/QN/C(RT72<R_DF@E72$/QW3 /*7@BWT(7R+OM MS%[WHR#](I<NQCDN)6T3PQLVXSOLM( ,Q//6->N%@C5!IP7'>T,+Q'#+-:1K M@>UL@0F;)A#H=%.(P4LF"))0DO4DI(2=8R!W^O3,YW1)#G38DQM"-X9Q_2B M=E19(B5EK]%M3VWG<U\'R8"?/+:!@3%;5_OF59+GP&QMHAL?WU3&'MJ5I):W MO QJRM &QAVE>J$;(&846='L7512)>'B^U *1\YT4D8_(X/.-F?2"Z%TIC6E M0QX>V4E9AL]G=HL/3J&8LHDZSW,)\4FZUH4][7$/J/.J%POGU[J@)A2AB-3, MKE::LIDJ#YA#:H%'04K2>Z)T,Z^K:C_MQLXQK&$.]RF#*-?UL_)Q$:^7&::D MYE"'2K:5E!P56V(I*5,VW &'=*1KNI9X&7.N+;& S&H+.OFZ]=BJA2! W!ID MNE%)ED&9*F.FW;)7NA\EMIJ-N^,=\'38^N4)?563(@1!X(9MCM9V;5-IR@0' M LFIKF.8D>OHPL;;??F64JO]72Y1<$N#(#</44G#Z-QP N.I; W-W=@=Z)*T M/&E&3[.MX&<X0Z[_*8ZTS-48"*2XSR14%V+09$,R>1BZ(=SKM:.E7W?[A%CP M+BZX;B#*%7AZW]=5#C^3*4,<B B=J.4T9BG9V5%L*8<RIO!'Z2W)=5Q:E)Z0 M+< ^N: <<-.Y,8AKH2KSI1;SU(;]=@5/I87?B($:-=RNS&\@:"9U"=<&31XN M<<"])NS@@(7)I42@'^:<O;2)4+_N+G16%9_=2$<'I92$9%T>:890(R[\#).+ M-PS>9>!'6?4 =$B-#%U184<$?1JXAF-SPWG912_91A8-K[OP-5-[&7)MKY*? M/8JZ0L?"7 [J=&6^GD7/:D\/(W9_3:O.FMJ@G>?)LSHF7/!*%0#E,]P0#I"6 MUW-\7 =*L8U/89L#[G YO/E%UVY(@$(+I$A%J.4!MT; 4ZY*6B\N"+LG:4#? M'E[< R(0RPE!F$D?HC+12GK;6.$N0D:/9[>>$42ID-'!Z3;S D5[Q05EP$-T M&)R$=>6!=)A!23]/F!S(2)A>_C0BACWGL4I+"C^#DB">2M+<\"6J!6=X64+- $T"\% .6! end @eof chmod 644 BLURB.Z echo x - KIT.Z '[non-ascii]' $unpacker <<'@eof' begin 644 KIT.Z M'YV01N2\:0."3AT[:<J$"'(ER94J5V+$<"$D"14G1:B$P%BE21 G3D!<*4,& M1),P>4" H $"1@X=-&*8+#(%1(P<.' HD%)F3)DT=DCJ "$F)1HX!Q.&V2&2 M)(N5)E&"R-GR94P=,&2V*3-'0<"!0PTB5,C0(42)%"UBU,C1(\B=90S*<=," M2A@Z:(;R$)MP8<.'$2=6O)AQ8Y&.'YWX@.L3J% 09@02Y%L&Q)TT>$'4J3,& M#M.19)ZR/)F2*@P<.FK P$J#\<^@9(86+9BTC(O-G3^3C)H2ZNG4JV&PO)G3 MM>/8D"6#:)/T7/N>"0,'<>0JB*:.[L1,&SVW.<*9/E/&B"ALZ<M+@D>$" M1@LA*10D2%,R2)#3,F[<T!T:*NFI.+2$&@TVZ" 1""O ( ,,,!@'FVPI5?>< M=M-IQQT>UZ% @PLQD#<#AS3$-U]]0<A00PTVQ,"?:+P!*"!,!<(P X(*,JA M$US-$<899;20!'(\Y 2#:C3 8 .!+MAG(HHQ "$A=&7,M1A/C3V('0@6=M=4 M2?_Y-F -,,T@7V0#@=!68D"4!1A:@ZT%V1MR+!=&&FQ$"426>(" 4!@@R#'' M&'.XH 6[V'F1EPM3%&&&V1$.=29(*7YUUF"J941" H0<5<90U%11QE/R=@B M50MB!>8,+#U$A0)4O#'44;6%$4(;8:"AP! #;>7<4$-(\<044[A)*YUZIL&G M1TDP48040 RQK!-6!(&% @ID\48=(,R!QK5LE"1'3Z]5%@899&"6QAMNA,$& M&RF9\<:Z;USFQAF0T<F5#@JHI"^K9>!!1[UUSH&OOD18D80,6& !PA#YJE3P MP0F#@$024U#QA!19-+SP$TVX141-2&AL1!).$#&RLA)K3 5-5$ 1Q!%%@+#R 9M/JJI,"W9X0A!QE=M0#"&77,04<89E"K !). end @eof chmod 644 KIT.Z echo x - Makefile.Z '[non-ascii]' $unpacker <<'@eof' begin 644 Makefile.Z M'YV0(Q2,2%"$3!HZ(,+,20@'CIPW#M.$H5,&1 L0>=[4 =$F#9LR8<Y4['@& M#4([8>3D<2%0 1,E1I@$.3(E 8B;.'M8)/)201(A36+.G((SY\Z?36;@B"%# M@9$G3J@$D5(D2-&;/;B(>%%GCIP7;-Z,"<,&;!HQ+RCB>6'FC1LZ<[2"4*!@ MB%":-J_J;$'D:=2I57N00.%7*M4@*2P^44"DR!0J>8OJY.H5K%BR+\2D<:.@ M21 GC1]'-DKY:]BQ9=N$<?-"M9L8"I 0D5+S*@B=8]ZT<4UFC@LT(+@H2$ \ M@9G-9(Y__.W3R>,@3)B,Q@IB\QPZ9-FX)#+]-H@Q8Q1 D?+DB)0@3;KK)&,G MC0PV:K;?K:W7Y4_ZDCL'65+$2!(F1=BF4Q-AK%&&<F4H\(002N!G%'ONX8&' M"V^()T424:D' AMP*# %$D5$IV%FF[TP!QH>2C&$@]1!*(.$+H2G0'8Z$.<B M?""X>%8;<REPHQHUN@AC>,0--L00B1DY7Y(HO+1DCNV]..$8%KT!I7OP#9< M$&6,@8:5(I#A5ADBT*6C&&WHH*612(*@I$PT,8G4DT).6>65,NRH)9=>@BFF M&V32-<9'J^FP W% R,%C"V:XB<*"#2:6FQP)*C#H&V*(488<AFZIJ$6-#@;I M%$R.5]YY34CZ!J4@8'?&'&:6 4<9;I#1*1!MK-%&HXPZZAE__@&8&'E/4"$8 M"L12D0)=77[9Z9;-6CF8;+0Q.86*I-*%7!EX/ O$&*XNU,(=>#A*+:F.7KOB ML@I8AQT;; 0999:(1@M"$FY<E]UF9SAJJGGH);:9HZ$INV<+U\F1!AS^D@=P MJGNFT>@6!#NF+ @AZ.0""%WLT"H:M :G)0J?]CI8P2F\,-B_J*;@\6 8/A== MJ0ZW7/%C*;@,PG%[VHNOOO#RR]%J<(14T<"#>0::Q<L2-P;#/[H0@Z^?H4Q7 M1&]YN_*%43%YKK78LANN#K9=->ULZ ZF+JD>?QNNN6B#O2Y==<!!QD1EU)C MR4RKC ++ =/%-\Y^ YXJV6J'[2@3]WD=]UR()KU?$8F9C,*O_?U'.0C)'IML M8@4?BW)U^;ZKW0BH^Q@EC&^0G=MNJ_7V&PBEO;#9H'6048:)="CLQAFSUWX[ M&[GO/D<:9[A!UNS")2"\&[CK;F(><YB(O/)L!-_55\,7WUH87FZVNQERA-%& M&<P/]WSTNZL6/J FAF%'&5_H2Y'VE74OO?MHB,]6^>=+G_.V9SOH$6]_X.L? M_.8@/_K9#WW 6=\!C4>]Z<T!-=D#3O,DZ+WK&.0-^..> ;T'KCS,*H0%9)\% M7U T J0@])#0UI,6 ;?1)" ^J-@]>A 0QN*;(#Y&R$"W[>[%IH/A3E\@0SG M0#WW/<2'&\2A$'5H02>^P8<P;%\"_3<'.&3PAUG\'A%9F)(CWC"(*N0?%[WX M0BFJ<(G76]X91?C&%ZS!(64H0QO@0(?9':=6"&HC&B>X0OLA<8HKI$,:SB<& "Y@"J end @eof chmod 644 Makefile.Z echo x - README.Z '[non-ascii]' $unpacker <<'@eof' begin 644 README.Z M'YV01N2\:0."3AT[:<J$"'(ER94J5V+$<"$D"14G1:B$P%BE21 G3D!,J>,& MA)(P)67( *%21XP<()H4T0+B)8X<"J24&5,FC9TR9'2 $),'!!HX!Q.&V2&2 M) N6*T^6O G590X=-7" :%-&CX* X4:1*B0H4.($BE:Q*B1HT>0.<L8E..F M!90P=- (Y3$VX<*&#R-.K'@QX\8B'3\Z\1&7IT^@0LT()-BW#(@[:?*"J%-G M#!RF(]T\56D2)0BJ+6/8T$'C1N.>/X,.+5K9!6?/H$F63KDR]>K6-7/<?/U8 MMN2!6].XH>.")UT0*-HHIY-B-@CG;NR$P6.[,QSH$V6\J,*&CIPT>&2X@-%" M2 H%"=*0 1$D"(P:-G#@R"T:ZN[3,,D0 U8RZ"!##2"L $,,,,! 7&Q"$97< M<LV5\1P*V&F'1W4HT.!"#.+-\"$-[\4W7WT,UC!##/R-%I5IJ U80X$RP*0@ M@PXV4<8<<X1Q1ADM)"$;#S<MJ)(,]ZF'XGTK B$=A=@QII-C$%J7X79-E225 M?P(2Z)(-\!U'D%N* 6%68&D1QA8(9KPAQU9AI,&&A4!<B0<("(4!@AQSC#&' M"PI@T5YF;LC5PA1EN$&&A4*1"9*9@*$UV%H9@: $7B5(51H+OX7HPXPW #J M#" \1(4"5+PAU%%)E1%&"&V$@88"0PS$U7)"#2'%$U-,L6:L<N*9AIX>)<%$ M$5( ,02R3E@1!!8*C"2&&CO1(109",F !W=SU-%&K'+DH8 "6;Q1!PASH&$N M&_/)L1-LEH5!!AF9I?&&&V&PP09M:%C6IKYO8.;&&6S*N:,."H"@L,()*TR$ M%4G(@ 46( RQ,'1C#*0<P<H5A(:[EL$1AAQTS/'>P@]'/#$(2"0Q!15/2)%% MPQ4_T<1;1$S!,LU&).$$$3T?N_/"5!3Q,A1!'%$$"$5#BS+$$E/LT1)%T,QP 2"V?4,0<=89@!0J'>HN3&N H end @eof chmod 644 README.Z echo x - commands.h.Z '[non-ascii]' $unpacker <<'@eof' begin 644 commands.h.Z M'YV0+U2 (&(E"8@A3YHT">*$R!00*EXH&$&FC)DT;LJ #&E")4A7V"(W$BR M)(R2( *"H),'3IDY9>B &(,FC)PP8^B4D0/B9!@W9$"T>6-'HYPT9]#(C#BQ MXL6,&SM^_!)#Q@V4&ZM>+:F2I4N8,FG:Q*F3IU80/X,.+0KB:-*E$BE:Q*B1 MH\<86%%6Q8&R:\N7,='.K'DSYTZT0(42-8I4*<2X3NE&]2@C;\FJ.?H*_,'Y M<=.Y4.U2F6&99(P9)[EN[LQ4[M.Z4FF4SCH#KVH0G']X=BU9]!<I59@4R7NZ M\FVO@&6&:5N'C<:TBMFZ==PZ<F@H5:C8+GV:]/&_8 6++5QVM_6ZV*D8YSY# M]NW<YD&CS^Z=?0W-N%E#EK\QO7OV-N '7W7\@9#>;\$-A]5I6Y'DUU>!+2=' M<QH1^-I&3CP!Q6RT\76;&V^ \(9+-]&1QAMNQ'<A"$)HR"$(IV5VFQAEG(&1 M&QB=(:(9(, 1QAD5[K=B$2YR& ,-J3DH4!E Y;ACCS\&^=F*V$V!A)$T;+>1 M2G.$P18=:&@T1AURR,&D3'"\,4<:)J(XAXJ]05'D;$>NMZ5 9LY!QQMF]FBF M'2?6\6:::[;IQIL6]B9%$D<@H1UW--1W9W2,O05G:(LVJAZD_TTZH)"*,NJH MI'K1<-][^DT9JJ:=EAH@JKHE&MH52=))0X.3KE6I8V+D 8(.=^AP:5U7: FI MATI2VE9CRB46'K#"RDJLG9#*F.RGJLY*JF4QU%!K2JO%"NJLK7);@[$J8<M; M:%A\:RZU*NFZK*6]_HI'M./6A86QYI(:[V+S.@;=L_<.NQ$6U)K;:KJIKJOO MML35<.JU#9]W<+D1OTJQN-G61<035SC![V4UX JNLF2\<4>*TF[T<<@)DXRL MIQ47^+(3$)M6@[4T<^RPRR [@;%I-GS+L,\6@Y"%N\39@*Y \J:\,@CUZI ' MOAUOE,7("]H +]0 2YWBP(%9C?7/2L?<M;_A&JQTSGK9L'#;+2L]=-P3]^RV M%DQWK7&N8:N<8M5ZG)VT%ES';?*_;(F-6%#/%KZWVG'/?+*ZA\-]F0T\7U[S MBEK<?=D-1M.=[T9&/.$$%2'U'<,-3X,0WIAEG@F"&2C*M&=/;J>^^A<VY"Q# M>_C-3J:9;LB$>_(KA7A2W4:LGOA&P^=]LO&U,[\\7%F#$/VFLPW_]\E3A-'& M<V]^'P,+()2!QQAEP*%[3<K)H6,:;U;6JTZ(GN[]ZIH#P? 6)Y#RG0\MZ9,> M^]P'/_FMA'YHL1\(\ <"TNSO);U;G>@$. /+J<2 Z/N?=A;XOOC-+PSUN]^; M9'/!_G4/"S"<'@<[IQ+WZ>10)TK1[G3@ H(8! Y':0.;TE 4%Z(-A@CCD R0 MA!\FI&$-&D'B^JA6!YG @ <]6 ,/;""Q&02H;D@,X!)CYT0H@D"*[!-#%7N" M12WJ@ XDD($7=+!$'9! !SYP&Q(WN,2O]>@--S11&-C !E^Q 44ZLB&3UH2B MYOVJAP51P(LF.1L@ID&()BIB!EE'A"(8861+9!L(+ 8FC9SO)TYZ X^6LST0 MN*$.;: 13Z#WNTX:(69+G%M^D%:@[WW!EA!;HO6.MLE?>A)C2QP?,>L&!2DH M*'RWP@\0RV ^,3C';7*: A642 ,/"H10=*CF-6ED(S?@R TZ8N83M/F%;&X3 M)4NDX3?5%,Y87I-)9' 24RRC$A#4 2CR(<,7QO"&-K0A+6\*G[=8((-S,;0& .,GCH#!Y*@X?>ARD*4 2 end @eof chmod 644 commands.h.Z echo x - dvi2lj.1.Z '[non-ascii]' $unpacker <<'@eof' begin 644 dvi2lj.1.Z M'YV0+J@@ 4'$2A(93)2 B*' 11@R(,0TG#+029 F1120L9-&!ALU(+BT #'F MC1L[9>30 ;$Q#0@S:=B4F0."SAL02*" 8!)F3DHE95::>2.G31@Z$P=.R>+D M"90I2:8HX&)F1DN/:JC& +&%ZHP684*:D3'4#1TX1]%H[0)"0=>J+<:(E5$2 M3IJ9:]N^_4IFK5NO+8CXW=NBS-PW=<XFABDS[U^X:.:B*?,P)>,RC@F;F6M& MSILV:,]@-A.#[>.O9S(#;C/7:&K2I@FOI"K#9NC1I?4"QC,7SQLS9E"T:9-" M-=P\<_/\#CZ\.&S=<+'T7HZ"S!LZ<YSG/MTB2W+JUK%KCPU83E["<,X#CJ,> M[IWV9&.6<1.F#>XNW/4X=D&18)$I0TB1!!14)/&$$PH0P1%6))F$DDHT45$& M%BT@IMA*+K3TDGPTI6'633F! ,403(" A1R>$A'2B ,81(=GK&Q4QANG%%' M&**EH$!)P]%(!DUSU)$&'6&((=-+1($ 1XIF>7@&"":!$%:(//DD!U K^=@@ M:$>E8:1A2ZJ8TAPN*)#$2FG05$>08;#!!G)CM"D31&(@%]8<D[D)PAQCI C' M2DGV)"4(;'@()I,KRK$A&XF6F10(3A5XH%0!03$57&'15M99:6FE41IRE#&& M37(@9U--8:QAV*8T=?990U18"I@8G+V(%AUJD:8 D:HJ&08<+ ZE*$QRS+'2 M;2]YQEJ;B=*W(DD]^43'LRB8]"8(,^ 0@PPZ5GKI5W+1YD8=;8B1DE90;E;7 M732=&J99L,H*%T2>TE&''&ZP5(88=3QI(1R)0>E&O-\&)A9#1"#V90MSI$%& M&1"]2X>3((SDDV'FLO'&'00#9AAM_P9\F:</FQ%&'8Q"F1C 0LE'GWT@I%G3 M9!'U-%]]AOW&$D>+&J9E&7BL:%;#)BEP@@L?G8"DHFS8+(<:04GI!D1'PP&: MTL)BJRVW'4,F&64/#RN?IY-5)L=E-=UD;H-V01Q1&<(:!B.-<S0]<90ZM]3" M965F@1BT^?HTM91RB#&D'&&4NJ514[=[$ZZ&-6VEQ"F5Z2U@F]&&[+CELNCI M%$2JI"2B%!_EJVA=HT;R36Y<!T*HTHXNIJ*F&YLXH)NI\89$E\,UVUB;DVNN MHIY*G#8(\T&D,[*IM\ :;:ZYD09,<=[MQN? CC%]&J;2'/WVU:<1Y:EKEN$" M"%30/)2;&Y<>JI1VA!%3D3+IT) 8<A3,V@@@E%\4CNA"G@O.<#ZOC&!;,("! MIUR /_V!0(&D 0'RXB"D^,G$+,=;#0@.F$ (,H2!^=-@KK8RP0JV:3XK.94& M.9B#&BRP@1J,00#+0,$T6!"%&83+_A#HP?N%4(<@8$\$2VC#$V)0A4 \H QJ MT$,0.E &,ZSA#8]XDQ7&@ 8T:"(,@3B#*)KP@BFL8A)C< ,9X."%/_P*:VC@ MQ2*",8=JW* ,8' #-NK*B1ITX1!I^$4<(C&.(Y !#7!PQCO&JF"\ 1EPI(6N M,VA,#&T" 1XJM,BH>0@$PQ&8RBYTNC(T#SF*- ,C(^C(W44R#Y04I27SE4F\ MK2Q@MVF>=$(YRJV4$I(RFN1R8G?)\-#$E9R,9>^^XAU:!J61CSQE*GF9+U]J M,F3'PI$GA]D"X@TQ;6=PI&%"]2"?O*!U*^'FF'(FA[ M;9,L*Y,0D%.RDZ5, MG,4J0P^,$ 0F3*$(Y\S6MECPNC)T4YY4D$(5\)FUA%CND("!PUPX-[QT=7(. M 6R+\?)U&YJ@H'P0L8EH(*>H.PPI,GOK%D+A$H>#23"(0HK:&X"%..LU[PXF ME6#K0'"'Q$FO1C1IGAYB*CL,AF5%QNHD33\Z,S!)LT%U, N+3)<\A^J.=X=T M8A(V,]/$V<@^0R.<8>:0O>GEP6UW0@-15I(GA:)-9F1($QR:]E4R'-125+C# M320DG1-P551I:)/2>,2X'VDU9J"1"5971 ;[#?.NVFO3'B[3 S*D""4ZN!4: MOHFS/GBJ+LA![/;<AK930:ZGB=H!\C[*(I2,BB@C29+AZ& 4.+3@#(B# QK2 M, ::0*$).MG19_HZA]1I5K%$N8M9NF22'EBA374H@V5U%3MD!1>%Q,W7J6# MSQCP4P;\G,$.%. 9(CUK?1KS:(W0&;!3-:UQ<0(6)M_P,.3180R6@X*E$E:' M+XGHJ"A2D9,4D#[#\%5+A7)#SOXDOGP9+$[E:Q?-**<H=R%* ;U4F$R0U0;V MEH&?N#*=S$;BF7ZAX5IW317%1B(QBA'+6+NBF3_GT\E\:0ERTJ49>R,FS5]N M)BS6&0.Y4'B^()@A4455P(G)VJ;-Z.RS%?TKY3*JOC>P3[Q/0L.O@.6&.1@V M5B"P@0+T*0,=M 7)B&*1N<H ASGP$T\;HXE]YC"'HU8A!CW.UTI3<A2B*$#* MCNLG8V0$9C'16#0=^E!1?<72FB#.3H.SB0( AJ=!EZ1)X\)88FPBYQ@?:G9O M54!"[-=GI2K*6"LU\Y[$>@<USZ3-H@&!"(Q0A"(00012@\@<//K>R?0V2HR[ MD8S,4 :WS>E\_04MBQX]L4C3Y Z3R5<92)N_3A/VH7_E-414]#COT4C70N4U MQ%+" @4DZ;-S;FF2&&UK1[_(0\F-R*2CA((P_)A%:PV#]L8[Y!1?6JE_GDG, M!(WD7[%H;GE(07QU<M*V!-NQ-ESJDQ5L&(.MU'KG%,-U(B.Q%J0U5*,JL$5= M9986V*0%D!S#&MJB6GFOP>-OV)MG,%CB&@D<!&<R-+N.M[8QR.1!^R9)2HAT MR3CYQ,H*0#:+<?P&'0\6!'B6&I3( !&&LFAY-8X9FJJ\\T '.45G0,.QFC8& MGRD;-'1 3BR%[F*6%'W'&+0=A(:**Z'"8- (Q[F'K(0=I9<!['E8]%'=#>3/ MPJ %8T_VH-K6=8<2W>@XE-F29U:[T-6=UFA0 (V0AQ**2K,%3E?4D$"K8,7O M/84T"_D:&O8P;V_FLT,6ZJGF$Z3W91CT.6/ZGARF[\3YC TUS<.M+9VL%Y'> M?.BCV=^1)3,84>;9A>K5Y&?<R8$7W. TLTY]9?)[*!$X2G*5P^C/*:>=*$'4 MX!38M;(&.04(&*9$6._#9 1YL^M;^E_Z/>!)-]YVCTK7;^*G2ZSCAA,@90VM M U-W$!23H7DK812JHF9U, :1(3@^H4F?=7[>!W-)0!!2DB5N(G -(5\GI0!# M$ 8H83KC$WT2-A.T5R'7YP9>=@6"MWDR@U')PD<H]";>IBA1\B#(T31RD&J7 M(6J;UP9ID'4K82X\8A@"UG5LECBF<A,V1QD#XVPLT@8+&!D5]CZ=(8-F\28# MQU\T(X'_-3@!-F 0!WC2$2?YLC8P>"I%,E:@M5]\]V\R]DJX P+2D60H8(:$ M C;'8RR(4R/;-!,H4W<:18 I$71$%1@O5X$L-0<F(2?LE";))S>S]4LI"&PT MXQ,Z]CZYERZ+1G]/$A9H(3HZ<WAHAR9JTC#CM3<FXBK$$6L5LQ(H8!,:Z +R M]2A!4 4"\012H !'L"9$LAE.4 ;D0B-NP$]7 "K8P8!\%R32TTU#$@91<XSS MX4/F)XR,XP9 $ 8>=0=U< <Q &>K)6!(08N6T@23ARQU @)-0%M25@8R@@1% <DA(RH2@\8!1H 1H # <01DN4 <+" <^H ""023 end @eof chmod 644 dvi2lj.1.Z echo x - dviprint.csh.Z '[non-ascii]' $unpacker <<'@eof' begin 755 dviprint.csh.Z M'YV0(T* >"$FC9L78^:@ ='"C((1"::,D9,&#AT0=-Z @$/1S44R=M* ,).& M39DY(-ZX 1$&!)LP<\K(45.&CHN'"9JX ($DC!B9)N6 F/$BQPL<-UB D!+& M#9DW;7B&&;,&)9$R<&Y";,&23!B+9,J0&?E&J!48+FC$ $'C* Z<;<+D >&F MC%B,=\J$66/P#%FA=-"D09FWS)H3*-]83*,2I0F7!LML[$A'YD,%==S$O&A' MII@W,15L!I%YC9F79T37'%FR3 \1(E1?S!RG3IJ:KUO$B3TZ9A@Y8]# "1/X M->_5<^C\5G[1N&P0:/2&E4/2I//1<<]<7\VQ#)LW8<ALOUC[-IWQ(.24Z2PG M)OJ,P\^XAOW<S9L[O]V@Q_/&C!GT>?3W'WVC\2>'=@2N%N"!Z+$!1UC)-0C' M&(K=-H>$<[3F46YS''>1@^Q]YAY]"IA1EE[!L71@'6V4X1$(*(! @@H@I* M"#B"<(=@)L$(PEHVYB@D"'/<D08=*<9(PF]GL.CB14$.*>48,$DF0@MVB*"# M @DD,!IMMN%V999<>KF:@QF:M"%]78X&HF>@S=?"';%U*89Z>W$I))4Q@7!E M&"IH>:.4A.+8FU[ "4<<&CTLN6*+'I5YIUYKZ)DCGU8V%.B6A1;:FW)R,-<H MDTY&:B>>E2:P9Y5^MH#&IH-V.N1HT84G4W6N.=HDI'1(BJJE.&+::ANPRBHE M=F%HIVNIO9Y**; @"'LE'((:.RMWZGT7WJB//NGKLZI>RNJ5<11K;8ZCE8?; MLKQ^FV>XP8[;@AS5GFOH:NJQYQZ[WCK[[JI]7DF'N?:.!E^RN9+:KK^I IPI MG9S:2^1J]N$GAW[\FIK I/^*&W +6!!\;H%E*:MPOQO_"F^T\F8ALK6C+6AR MMQISW+#'F>+QLK$D^\?MKBC;#*VT+>2QLZPQ"_@SL^[>'._'9!S=J9L/GG1> MQLVF#*[#K;HAM:=G3ECA24LOK'6>UA*]J9"QGEM&<!I5X<8:%:]T6K(Z@,"% M"%COW3;,JY5VMU\]^$F"X*C)>+)'L4D,@M K2PMKFZOA6G;0OQ;J(AE%_HWN M:HLWQQ 89>#!D>&ABP!"WB>TX (7*+B@ A<IG &"'SP\7CF.6ZN@.\*@%22 M&C*":9Z,OB4Z7&#(@\J<C+5.AZN,V>G-)0G=:3L6">I>1$*^,O5)PL'RR5AQ M?C+RYY^, :YO?0(ME/%"'7/(\0(=;<#Q@O!LJ$$""3@B :Z>@X<"-BHYQ*&? M M)@!AB1H(!X $$/"B>#%& D.F[@TMO0H!$1<,$-==J@1L00GO34I X7(Q)S MZ#<2.4 %!/Q3@U+L$YB^3,8@E2'#[]@0F@0PT($0E&#A8F#!P+BH3"+TTP?K M)*0$)-$)*FF!$8@3!C: 0"8N; \,46A#"KE!7XQQ@U(X@D,;-B4/^,F#!GE8 M!B3"38D@=",'03 $E8!1)2E9PQ@ITQ<-.H6!7*+21>97O_OE;W\AZ=__<.<2 M.#!$)6)XI!S"<(< .@A"WG,0A>!@(1FA24.9A$.(XO2[/SI$#E%A2 ,):3_\ (Z2^&BU2 @#" end @eof chmod 755 dviprint.csh.Z echo x - findfile.h.Z '[non-ascii]' $unpacker <<'@eof' begin 644 findfile.h.Z M'YV0(]*X&<.F#IDR('C,H2-'X!D7:'PH"#BPX,&$<_+,>4$G#YPR<R!*I$C0 M($*%&E\L#$-'I *!=$"LI(,BQ0X%('+F5"#FS1LV"LP()".431D4<%BB8>&& MA9DW;NBT"7.&:9@V95(H&(,FC!P02>F@V3*%BI0I2;04Z;(CYPL5(* DP5*$ M"5BE(%2\V-KUJQNR9M&J9:O3+5PW5Q&^,0/B:=2\>]E /=,8JE2J;0OK? MB MZADW:82.89D&*F2^7D$@Q@KX;-JUF3F;J<.&C>K$(!;'Q6*W*$(0*.24H5-' MCILR9%*<WH-3)]?4DD>S^1)V;%G7@V\6?OX5;G4X=%CDA4.>CG:="^74&1-S MILSS.6&"D#,&/@CYPN?\K$.GM!O[(#27TW<Q]2 30V/ D0<*T84Q774L5&>3 M@/.!M%]_IAF( DPIH.#896>\4(,+,("P @PNU* <@!22\08(S&DV8'D@&)@> M5W(@I11X((AWP@XG@#"AC/<QAA2-(1CH1!5,,*%<C$3FI )Y/!IX A<P_$BA MC%32L<(* &K6QY9;YC0'' U%908*JY7!@@@E;$0&'&F40,8+<;H QQHB1+AC M>/E=Z!]30\H8&G#!C5'C@2RQF1@+)LR10@I)PO!DF9J=F28=:[;Y9IPOS%GG MG7G"@0<;?1+(0J %8=B4&X5&622B]"TZDZ-802HII3U8"B.F46H*4Z>/PKF1 MJ6R4P :I(>V9ZI].6>89H6'*>B@*B=I*1Z.>1CIII9?**JZP:N+JIK$O(*LL MLWJ>^JQ8X$4;U;2P5BMN3K7:N"U-W4IJ+Y%CWANPC /KA.FU]/70JW+"$6<< M"F95442LA97!QAP($;AHEP#V <(=:*1A%' $)KEDDQ0'6!AG#1?G!@AER"'' M&U]A-<<<85"%D%X4DLNIN6]^J-H;,3U5AQMDZ)!0G#Z\P(.H=NZ@[K)-Y\G# AGE*?ZD.?P(H+(:O\#?HAO2DKT/+#1@3!Q!03WS2F @H end @eof chmod 644 findfile.h.Z echo x - history.Z '[non-ascii]' $unpacker <<'@eof' begin 644 history.Z M'YV01N2\:0."3AT[:<J$"'(ER94J5V+$<"$D"14G1:B$P%BE21 G3D T>>,& MA)(P)67, $CA@X8.$06T0(B1@X<.11(*3.F3!H[9<CH "$F#P@T< XF#+-# M)$D6(%2:1 D")TN7,&[HJ'$#1)LR>A0$'#C4($*%#!U"E$C1(D:-'#V"U%G& MH!PW+:"$H8-F* ^S"1<V?!AQ8L6+&3<6Z?C1B0^Z/7\&'6I&($' 94#<2<,7 M1)TZ8^ TG5+'#509,J:6M(I:A\J7."#[!"J4J%',+CZ''EU:==34K5_#K'DS MY\[(M"E;]IKT7/>^"0-&F.9T4MD%$=V,G#)[<H.%,GRCC114V=.2DP2/# M!8P60E(H2)"&#(@@06!PI8&#M^G?OK'F4@TU;%4#""NT! ,,LDE66U',.0== M&=*AL%UW>&"' @TNQ%#>#!W2(!]]]N$7@WXU] <":?^A%F .40U8('\(*LA@ M$V7,,4<89Y310A*U\8!32ZC)@*(+)J*( Q#52;C=8\?--EEV%WJW8F\GI02< MC#K0(,-\E0T$0ER- 9$686P=]A8(9KPAAU=AI,$&A4!4B0<("(4!@AQSC#&' M"PI@ 1]G;M35PA1EN$$&A4.1"9*9@ZUEF%L9@: $7N5,12+IZ66954PRH"5 M5C%T]1 5"E#QQE!(*55&&"&T$08:"@PQT%?.#36$%$],,<6:LLJ)9QIZ>I0$ M$T5( <00R3IA11!8*$":&&KP1,=09" D Q[?H9'&''2XF8<""H!@KKGEGJON MNNRJVT023B1!1!%3[)H$%%0D\41(1CPA!0A$6)&$#%A$NVZJWLX!PK<@Z+EH MG^K!04<:)('PAAD-@Y!M&MJ1!)0<=% XW<8]@$!%&5B<H/"B"/6TL*)EP)'H MHLXI\$8=="1%!YMNRGI=06CLM6=I"E<,Q1 *HX %%7- %033%K\YQD!P[)6& M&'-B5]JB;S8QQ0M$] IHP ,7O+#"86"=6;@@P"$0&:!EYA-?(K.<ALN+R@RS M<QTORO.;="N !!0M,!'&'!0J4=<*4?\-=&9)"-'$##AX.%T;;RS*1DW8Y3US M<V=87)*>;L<L4)\YSN&F G-L1L<8:#2\\]1MP"'GVFE\Y8*Y5*"1&1EOC%$' MKG187?'4;FP'>L>UWPY"ZYS!GJ,"#+,1?*;V-??X\S?+T1.@!Y--,!;:425& M9F.$P<:<]KD>.]T\K__&9FZ$_H;$%+LQAP[IGMM_"V$H&/G.188TR,%:XBK( M&PH2AC5DIDW.45B8VO _,;2K> YL6QAD]J8V==" X-)@C]BT'/6%["Z9*I^. MZA*RZ9"$#4:AG(?D<ZX6H,QLY[I9SG#&IML-96Z^>Q,9U ,4'52-+UQP0QB^ M8C&,Z5!G9KA=_]I%Q7:Y26-E:%EF4# 'T,3N<"!@@\1B !4WU&%S=1D##:MH M+A0LR@QA../.	$R1AQ+VA(XA(S<S&-(:2'<VJ8HD!0!CR$+(+YFR(53^ " M-JCA!(YCP^$H5*V=H<0^C(1#[2#I01#(4 9K!$$+T"! =?DN#%R+8B#9=KZ. MV2XH1"F#!]<F!Y3,09(3JU@?-]8"599!D>U"01YN5KZ2(&Z089"#&#A32SD8 MA7:R4I3"V 8_22).#FZS#H5"V<M2GBN;?)M@+,^@O3Y6;83<PL/_Z.!-<X%S M9VR;61-%F)ET_J\-[833&=R0ABBF+Y=N^!\>\GD&ZXE!?2# 0PLN9@;$S;$D M;2"(+G&F,WK^+P\$-2A"\[!0,S2T+B_SBD1+\D0>GO.7-7P3N\)UAH)FYH ? M0]P+W/"&G<&40HB+&M<<5U(Z )-=;I1E'-&SIRSBM P],$(0F#"%(CCNDU"Y M*9^02@4I5,&IG62"$K@IGI7603H,Y1G?2F<]5/XO#NV*0QT2LK/[4<AX :WA M'=I%4\TDDY_UFX,B%9 $C-4UF6<87J+H@+8#/D]F8^AG'F"IISF@P4T[\YT8 M 9D9.GX+#I)<+!G IZY4W6&!*D,LL=@ 26A>LK"5K=V<B ?+3L+OD_P[V+FX M, ?1JF\/ONQ!'8MX1#3,=(]]^.FZI@8'H]26)_U,B'U\J<#MO9-".Q"NNH H M,J",(5QR:$'CEDD'6<&A!6>H)1R\Y2<00*$)4&!>-,F@5]F:B[:V9<,>W)00 MY\"U!U907QW*$%PVFLNA](Q:?8L'T.;" "IDC I49A!=_^ZIIBELD_SH9S^* M\I!MDI1F^F3FE<S)[76<92,18O:Y^HFN;>KA6P$/>-W\A6"O5^#,^WQ'V9(= M-[$(/1GY3#O()!PE#$!A4P-A";\YI&&?>_DJ'\V@@#8810QOT)%F9 P"?KJ, M+W=;P\O6L+LDS%%A1E;M;6BL2?'P>+E7#(,"X/ &&)ZA8D,, X4%F;V=6>\- M:P#S5[-IY/K!L,I)KB4;0HRNWF7&;6\([Q(U"#+''7#%ULK?/.'7T^;"[[EO M<I\.J><<"GVE@"FL[1O:3%F[*NR N)3,G].39:-<TC.(0QL(]#4$*C"!*!2; M0PO2MSY &;IM%/)@-%W6QTL+1-$$85C:= @"&S2W*XA#'GN!_::3GEC-3YMR M9W#0!#3H(:2OK5QJ,+>H+G]Y:&[ J_U(^M6.N2&*@:TE0!60)_,.H05O(;2E MAO#5 SIGU9\5Z\Z$O1?4/J\.<& SR*8$!2S<^D0MH;-Y'5Z3!;5GK[]&-+(; MIB/!3I/&$K;>G&V'AS*P@;G@D@-H[+)%^,$NF6&X+DX5L#61J;6F.6J88=>[ M%W&E(+:=59?JOB*0FO[4!4C_J0C@@ <VB" &-5B0=!O6!CF<R 5,9\/4QU#U MJV=]ZDC7M[F6WO2GVX &,YCZ$JT. ZPW?>M=;_O7V1CVHR?]8#-8$!EL1UF% MI:\DK:P#XMI'9:J@L@QJ3:&L]IG<?TH:!2UHPP@\%'6+X8\D*= WPA[89I$O M[^6UE#F?IJ.^S17;=Q(=@_#>I#UC)[J6;< .<\Z AIV=3P'IL24N87D'@?CY MR6/.3!#JE80DM* (0A@"$9)P[^$/H?CNCJFDX9;BT"&\K 6LGP)>#;P[N '[ MRSO@C2<&%!@"W7\A,%<AQR!)GTF:S=91P!;,-2<S[&P.B3>L&$+O0)]R@?ZR M='_6%#LH<%!CD&<#*!]=8"[J07OWEW^9L7\QUW\*L < :'_:\55_)H$'6!<* MP ?F\C$3PVM$D4P*T <,>&2UEX%RL('\YX$'TU?; WHQ=T(*TWH@!T*STV;# M4Q+ 4V4UU3%R('YL-DC4Y#L&A"<4<E!:]S!C$#$%%D5W C_WIG&PUS"+DG@A M T.:EW''=H5_%TO,8SOLHVVQ4QU/&&47LS-# ([,6@K<46[]R:"MSR!TP)+ M-8:W\R;W U!=AC'#5 <_%F1_E85UD$+W1CMD*#)"$XAO8F0MY&-_QSKRI#ZJ M,X-4<SOV,35^4V\^$BR#-FN 2$Q!$V3I<3-JHS#NHS'S\WUO@$J@LV9S,DG/ M(T],I"=F8#T)EP>:]P0E<8IUD(IM,XLY=4"HU$-\LH,1-5A% T\T=C[D1%(8 M4V3=TQ-K]H5+M#M/0#=RL!DYA3S%<UU>40::IUU'('C%@S%.4 ;#@Q)Q!0(Q M!C)]$C3VUT7\)'W% U(QEBCID@3Z,S$&,7#[]2;^2' -0<?DS9S4QK6UV/O MUC-P!3WR^'+VERY!T (GD@,P )64%]*9)%U< :'DU,RT (V )(I1RS3401? MY5:AA"Y%$ 12X 0OH"89T2B+(1<A(31G(BD*()-0$ 1#42CMF&XE(&=I< =U M< =LP5V%0@= X(UC8 =M@"12$)0*T -:N95<V95>^95@&99B.99?>2F9,A0R M<"!!$)+H2!PX< ,(9@-;@0,Z8!/P6 6H,A9M@)., 1+FPI.14AC2$HS5<EV- M4@9SA6JODE,HT'9YAQV[I"W<LE=(P#$HP&:'-#'JTSF2J5""1R%U=S"&9EC* M5F6(6536M$6."0.0.8TTMC$O\$D2!YN#HU4KH #((X*@:3(T5BB):7*+^4"O MPG(W^(L@UWGSLSSP%T'GAR[:Q1D-HWHQ0UC;XYOFM02@\C<^,QU2@&=9E@90 M004A"65"8P6D9@,(=A,U !5.\ :[,P-KQ!="\YD*TP9>%$:IHS'?HF7@XB8\ MLD7+QD,Q\ (TT!E]U'!, '$QT'<IP (*\)SGQF8Z<C6KM$ WIE@9HS*L9F+F MA$=S $FLE!F(DTS2@V: XSOI@J#:=450L 2]=#MST!27YJ$Z)Z(Q W,A8Q\0 M@CAHV&8DT30/NC"6))T2@S82=#LV9$B)8F050UUODDE-!TE7E$EK< (.JEWP M8Y!%XYJ'MAXF]Z)SDC0JJJ!0,:865Z8NBA-K%(:ME$S<U4QR8A3547)DT&"$ M= :[,P1-( 4G4DQBJ#UF"@.I89!0H:?P,@1(X*>M!*AIF@-7NCU+=#-\TT?] M64LCA(.9<31G4U1PTQ/VD2/Q]6=WX#OOV*)@FG/)E!F?20:/2A6ED3L*5SQ\ M(P8A24)B C\3TR2A\Q6'HV3$HS!!HS#GDRA%A3FT\:@?<U"YVF%^PZ8VNC/U M=F9LT!Q\='DET0)V !7R^5#"UE[;\YER !6C>C>Q T'4F:IA](J+LEDPEAGH M6H<F!C^[)3)!5%G&R7D3MCP.A7" <@6948KNBF+6T0+7]#'3$3E-8&]X2 78 ML:V;BCR%(G/VH4N%\CSUD1GN@WLT)IOU9A-& @,O<#AYD#QHX'LWHS"Q"A6O M5C&4QHT6ZS>KJ">T2K(V@S%'L[ *4V\(J[#K^!SPJ*HY=;,Z=F+P\S1_ @*5 M6:EW4WKC4GJ31F,JZDL*,X@16 ;$RK)DEF)T0+ 48K#: W$E:9 *<#[+$W,] ML4++M1SRBA M,*]\:+#P\Y2?)0=<ME?^6)VGN:]P !6O CM/FZE(\V.R-@>R MLCZUV%9<VF$AM*H*8*KF>K1"8%RB909YL#RKZ'*W<DG36K%]*&F1F0;;HDXG M $!,\ 1#L%3]X@14, 4[T%128 7)DKJK"TFC2B&94;JGRP2R.P42Y[JP*P6[ M6Z-XHC[UH0#F"FG715\YPK<Q5ZXD<6XCZCV^LUPZ&%*XB[K[LKK;-TC])*2; M2E,#)ZGVP8WVNB+)\KN[JXW?9UPF!SQM\&>K*G!ZA:YFFSJP5&\WFV^\F1ER MZR9:AGVFQJEQDSW&R3!W$ ;C$F?@LK3KDP?:2F/'!4NP*A! 03R;&J [DW<E MH'DR&(A4^S(GE"/PM$ L)B5X.U?2]Q3#&)RUB$S/\U@@HP#@FQEA5XZ!!2YA MP&1DN<,\W,,^O)5F&3)#83GM6<'G\R8V\98()@-UB14;>2IB81E\J9-_N3,] M*9C34IC7,B:GJ9BTV)@N, ,QT)I^!+K< @)(=W )!UEHPP:7:)TK1K#IL7)* MAG&]B9C5A5/YLZ7V-K0H\&I#EQDZUK9$A%/8@:X%E)*TFJ-F:+S/B[(\9!T+ MY##]9 :VJV(&A$#.]#QS?%U*!C3S&6O@AJ+(BUU&H41?H3!20"]/P 1XJ2]. MP+OR%D2@7!(><03Q8@3,]S2P/ 5=2&-M9A^EG$ I1\>&A<.*DDSM<SC-:2E" M-Q 4,FIT$ 1V)W8@0'9.!W52QT9KYW5OQT9<QW9NIW7@W"2P@W5K '9WQR[8 M;'9HIW9Q-\YP)\YS5T5T0 =>E\YTM\[K$IJ=]6MPG,G)N\G%[,F&=6=Y%D9I MX$#-/$6!7'1T( 35K'1$ 5)( )YQR#<',_U3$7A[,WD7$5<UQSG# ?Z7$7^ MO"XB4-$7/0,RD!,;3<_?+-(</=-4=,_YK,[6G-+H\H8L$<8+VD5K+(]$45.Q M4]#$"170R3 2:F1JTUP72KG;IT&=@0*C&P92:JUW"@)7_=#2' 0[X-4U)00G MD'EV;*,D&CMNLE/E5+'#O,G?<GYCG*YXYC@L7<-<8*[HO"ZU:UB,A'20Q#!E M$#I100,:;2Z@1-=:UDEW'79Y_;SC[&!71$49W3_PJ=B.DW5XK=<FS=?URM5A M%]@*,]@U\;'](R*8W4F:[=B<W722K5+M(@.&G94_7-NV7=M!K"DU 3!@409M M<,1N"9<U00--_!)/C)=[Y=..F1K-P1FCE09ZD'/:HU61YV'.I;6,.$CB5Q<W M:$GV)S(JYP;1)5EPH(JD:GEO-3$F=KDTIE5?<MOP'=]BF=M#'!,C%MV_+3)) M+-PQ0)?];=QWB2H'H]QAO!+AK8HRQFPH(:>9TW@1Z1DP\R95P$]W8@73,3CF M@04I$%T3_ :T,8XZ\I\2=$75,:$F]KB (M\JON+T#0('DB6'N,E)C -0 0/$ M;>,O00,!'L5D,28YV1A5?!^!*1W6<IB_28RJZ0*&3<8;$[J4R3%&Y4Q0 M1@9Y\&*B26./-:UD@, &Y^'9/;Z?33NH:II)SL)@W.3S)#X% RA>)K@%$7"R MH@97U.$5S(P6 [=9FT44(WBH&9P-'0;8\>9"':L*<P)(4 5'4 201'(FIQU! M$WHV&%UB@!W0"3QE?C[W+#(2ZMPD8;GD%3L, ZN0A1([$RSKZSCAYB& HD;F M]9\"%HW?.S]$N['B)G%8>[M*D!H+2M+EJK8T5G^6I"C]TX K&!0C='J'MD&@ MJ0!D@!U34+ASPH<6-G P.AU:>10JR.E:JZ\R$Q1F?3#'*.C ]&MN"P)K0%-W MH##JWC!0=F$E:[4%D0<RP\<T*'K[ TS:M2+2#NDPA^_"BWT2[!P+E*7/*\?^ MF>Q,9L]9JTURL#M7<-Z-U>_W?D(6HWI?59S;$S*&Y* ,CSZ17H,BPS#$I5P@ M3"%*U,"C?&C8+0?2=81\5.WTM#N_QEW>Q<>$Z[05/W-5A*ZYIS_5L>D3F^HD M<64%W_"=]O#Z;BZ&(P<CM/.CAZX"3\ P/XZ8L\G*KC&%[/(]CTR&]?.$RQF, MW*3->_&KAQ(N@ZD%44B6A#;254O@(C**-EYW8VE(?T)BM^]($)(@_^\V.!U0 M;][DNB>'8_'-89"2%JS2U5C0G1E7OS9!4Q(N?0,VT!5%$3)S<,B&98Q#3TAE M'SQGGSP/9!DO_YK[*7$^7TM +_:,=6J%+_?B15Y':VBN=D#2!;[I>GCVP4'1 M-%A_)LG;\Q57;Q19[[::QRX1;Q1HP/<@, 0AC^\_ $QOSC!JQ1ER([+-1=)L M4 =^,_>R#\(+-+004C4'&(OL8O,;! +>?S?%R39#B^*S=@)!UGNL;TS0C&*O MMT3>JBYLDYL4LC/KK[STB$(A;UK+<B "M63.'('20R$<& @("'MD;FF9XN/Q MUL44^#OJ!@0LP/71 D)B %_%2?B/"[49XA2"!4P @E+:@$3%-"]/-@!XQML M V!U&-+TD&J=T#@F]N$6 :&0$>[6Q:\)@*/M<,2IHE+V&%]TFR<0IW%\+.S4 MM]" RAHDJ@.8+#6_\__B1*HC'0)!;5R&!>) 8L;CR"G:0_B)B^/G S\;NK)? MSF&T_)G4 $TJQ@'+ ]-D@6@_[I<9@&!(T3%Y#P14@3X3.N +<D$H;&,.^@U, M@T7T!LW80>5FZ4$!G*'>0@?\L(/ +_"10741!+*%J1-Q?RN,[ 6+EZJ:&>?8 M7T4%T72J I/U("&["T)V V^0F+WA4ZH("IAEX"U'\* "XSE88>:9-1$JRCBU M"E6+4,I-8WL2QP[&+/4W:G8?3$D(=T!DL)2Z0,M(0ND344_(:KD!L9/8AI:1 MB6X?IP[&/O;'<;S7-<PYDA 7SKI62$4B5NI()K=!#B:/[><WON'+:!-HX]TY M(VVX0;X?II(N[^]V0#R)I_ZVX1CP=_5#NE$G=WA%' NS"T\HXVPLOJ?&-HS1 M$$()(X325+M)>"Y\C SL$^X(E@2RMO%8P@7:&"36X\U\1 +&?NA@G;F#* .8 M _A\:O,#1%4>0A-8827X401S0444'([$/()C<8BJ[J<'+ /M@G.X;Y$<3-H MC]5+(&QC *8W7Z@NEDGH@'L6#PAJGF-4Z4#AN0M6/\8^;$1$HP417&?H= !E M>?01E1.FQ,[=.B5VP"@(FS/B,-0 0PI32@CK?3?[QT0V5\Z1@<.J)&"6F!,4 M@$GO(0FA T*0A"Y5<D+1]#N%]V>!+*9TJ/7DC$(K%*,-#]0@456O@(D+-'6P MQ@[9.LMA7;!+8YPS<"2Q3*N)D2/"SGT@ P4$H# M8(*YN(,>TR6)R^&E/).1 M$%\5=0)^CLZ-P;DWL^G>D;IX?-'I[+60/^;&%HAK:6];A>;1&/$C1RY8GGLK MADO3G1!@HD,06B9\+KM/Q$W%380=>L>HFR8JQUW9F<44ODY49F!) D%F4(4@ MH..J!@<I"+4$#FY'C8$=GH#,PXIY48!YJNP '+7)^C@R@Z5M1!E/EP%1@ <! M)E"F,Q0ZR )+,$WFVQV5,#7F#Z:U/<X=PP".[&?* 9-VISUPX/) ?^+!#E8] MK:(<,\,GV376[5L DT<SP!I&PA$(>"!W9(H-9!324@FX-E%A(UF;E2A8),1> M&0) 9CB5A=>T]9SC:*0#@82[/ ^1T^PLHEN9-1\,]UF'M]$BV48T.66GB5:= M@3]!VU:<E[QM+<YR&($RL']BG%&8<36.B<V '. :CEM>DF(^KB^%!-DAY-0" M%B-,1XZ+G;DOUG9HP%S[7%#N8%0F0O(Q\D"5NW)VBPZHC(*0.SC/F] 3ULF+ MY11 R2U*I)D387&1296$-#?&C-=P4C(:S^#E*Q.SG A+0S,7VL7(,!Y_8NHV M$ OA=,$&(HF^=*%=9%9I\%M]Q#IUKA^U5Z! K)0#PT93I(M?$W*2TXD[,J!2 M>/&J+O)H<*0Q4AU*!&L8EYZHS&BCP6!%+#% HH 8X&Q.BL*P'O4#*H C*PAF MIAQ"68O61.(4CU2T1BJ&GC@:+^!I6$IK D\"SM38?FW X%BB!=(=N-R)F7#K M 4[ #FK%)=W+2FF4S<7_-9J-46HLUA'L(Y6&N7R3;F=B(A@9$"XH(%?E'#@2 M]TX45>B3K*F--(=%<2=0C8%A<B'S7+! F%$R'QW(?$G.S).(FZ' 1MK#@7 P M[:+MG!V<N2[:S@TX;$Q/"=#,*M(>N@+/[)DNH :LA*-I+MJ.1MHKO&,YFARK M$638S!7A( 1']+V,:$B+M,<[\796RT1M#ZV2+NC(?K%[RT[0S(G-82$&B^]A M?]@!8D6:BJ'V,-\.>C?(LI:T@'3AA\3A9SDC)/%9KHU)9K&J@R1Y$_WR;(*1 MXV@B;UWW"ASNI.4]+)(0L1@9A&@L%&*T/$9W-4B@R:MR/!7C?)"Y;)@N$B22 M3!0\H6ZY%P.WF'Z4\")"/XI".<KM8>=\&S,".OMN)-# +32M!N#. (OYX_-D M+FGB.!Q*(YQ!S\\&*9)<-_-HI4U,)M0IZ^6B5W0\2Z7.D3%?800)KY<3$.U# MNPN$G:9'<#UUD4RP9UVX&YPE=]8+-V1R=L>!8!BJDI^PRG^C%E^?Q[1EZ_,- M[0X=QS@UH=-CBN9"#&XR<M,^]\HZFBN[4G_@SG]H(>Y'0LA\0R&JG;+A =SZ M2,G+.6SCG=!*\O%&J!4((!_6AK[(.NT!/ @+K<P"6"2*5"P4&D(;D/8@H35E M_YD+) OJ,!0: 'DX]6T !1:>N:'PO!@; / S*ADYT))2DEP1%-'8"4]0B(9 MK\NJ62 QH#F\@"A:$L1)-0E 0H@ EL@DBF@0PKI:>^""N5 !>D$%@M*B<P%C ME'R0MQ]*3-@&O/EDF\:_]#7(M^R(Z)%YH7ZGW_@^]C7"K)FZ0 $C 5S\OMI1 MZL+)%=$J(U$[@,L<L4; RW1X,S]'B>X,3<-#MML]TXRZCDY"HW*",7R)YG%^ M$!&6)-!\ARKYD%9[A5,.<4"FDJ!5L(50:8[<LT>,KP6R=+26K:(@ZR**)*, M@V$*GPB@E7>"BX"4.\%0 RJH9J#,\"(T!<*46)/,ZM?10H(S97I:35(Y1NP M#E6&@O(\46(4A.G.('X>Q9A.3?*33%OH'2T)8="9*A)H2IW:'36MGM>4;YB1 M_,8GH.:8> )C%)2U%6ME<-I=^L@IQP02208LUUFV$2V+I3D"=YJ+*W!7ED<J MVQ$]PN!@1VD*U>@ \(AD_^A53"R, 2ZXAM);%X?Q<1R06>+YYL IHW4-,2@( MM#GR')SG?2 *M4KM*2*< 5?FR>*1GTOK(#F.MW;*]H@,W50'Q%C!DHQ)8V8J M(TN<& N,!#*-J8I\3V \DSUPWR&*A+0Y#MA=<*CG,*+"N?Q8.]G5P4 4@T0' M.A;(DA,7QB@21"]PA!45Y) 9^N1$,"\X<63FU%_BB(2,': O+207 9DKPD6J M41EX 8I($T&%SY H.-&'42,V#!WEL"[Y)1MK#VMQ+D()G)$S>1-H'$N8 76) MB1F)':>7IAB0HY-7C,AEL3QY0/\<GV1RB8U2JI.#(01JE13Z<]W!D!(DR2&; M/@(10%KIA;K!$<.9!_A':PT=4HC(!(VV@O&:9>TJ"?02!' 4X D;+8;,JQBE MPU,II_^D !#/(=*-NC2$+-<!20KOE6DR) $&!0RVH? U34QF. &^36+D@48G MXC26T)"!X,M;F)A%1D]:P#P]8D4#G5X'S>-8^RL/@ZS.!E%(#-\&W-#D;W@) M+L%R0+'.&B>I&&@=<C&@R&DQ)&=:&5.?O&RJ=:^,F&0":T1&\>M,6D\R=) K M C^N1AN03:^FFJB!7K)$XE1#(W!H9YX\N3,V)3-'W S]R]11+Z>\*M47;!; ML02T9E7(K=?05$#4Y%^GZ<QL3LM38%K MTD?].FZ.;SF@C5[1L/H'XCCY-A- M.@D_Y$D?P8+8E,Z) 0@I:Y 'XE KA35@;=F3TC^8&G:;6/#N!CZ6=4=Z, >' M<EF?R0R<D7<(D0!*PT)1YV+U^!MHI5^6#.U,>K/1VDR-TF#QLAXAI XJR/8P MQ3R[9SN)V9)4Q_-;=!%&JGF,[*PI"2;SPHI#IJ8+92>5M:4U1VI40>V16+S' M\$!F9ZM_\,@>NXJ HWPJ"=Q2?N'(DS(4S%V13 _#Z13>@?X!]=0?#!DO? Q^ ME J^@&!P %\PC8!L@50,<W5B!F. .1S] T3VPWK(#5=FW#M&7Q;*@(RR%2II MS*MH00GA34C*G',Q^H?K03:W$*!I4S[421\9M0DP#(-4N8QI%?1@"82 G'\) M<S#:>5*I8)VQF;+!:A+>+:4H:+P7P\!]+.96S PBLT ^TPS4B;C6V8S ]\AF MSX7HC",Y)8=9O#1DXAQAPBAJ6P,=>CZ_M4'4H^HC-ABC"1+;Y#GRO"LJD9 D MX5S:6R@KRN35K[50\@3@XIKNDOZR7K&M>IB&S&8,,VM=T^SV((@+SUP<7.? M7,*+#R5\MH,,P) 'QO*PJ<4DACFG^XR.08("YA:X""53U^(=."%C0/Z,ZI@H MB.LH.I,_I$]_3,)94LA(D(Z+<V%L^-S)RGU?E-IV4'ZB4]$5F.M&ZJ$WKCRY MNW?-A:.5G"GV.(W*T/%.F,V%M%_V@5_94Z0U/Z:<4LN%$^JI?<\%\DZV&OR M G>#X\$),X)0W"4(T"HOX$N<BU4T$0[$5\!3F]<+Y;]D\Y" )1M%JZ1JREW< M6E83-*Z]?5>#Y]KT#VN# DI#F,J&7*T%Q('2,CRUK@=-H%M5&G;89Y=8<9@. M\Z_@-RQ!UHWT*9*8HRJ^;3*S\KB]U& _*V"RDZ(53QHF/5EAEQP-0&T9-GR< MVPY+;RLDB#UW_=/$HE@C]&-9+&]],3!6QZE6$$8ESQ;W8"(Z%NW9S@CB8S.# M(ZENBT+(^EP16V2/K)E3+Z_&+C)92=,";BO/Q:!W3QF27JW59GT0*IH3UH: M/C"AP3"TBT (26C [:K'-; \M$MY!:XZR-V:6Z"@%__3V!5SQ(K2H$9ZPL<< M1O#HD3XK"'PW\]@_LFMD41].)'%Y2^$U446EYS$Q0>/N*M#^L4#,!6R1LDMT M6)4WJ#!6Z>Q#A755X*T& 9+"07K.^%P76#&EJI+-D78;)"8$?C/J/>8>5V.$ MWL!/20J.!1.E03,2@1@AQ4+#>(\,GPO=VF+-#R06&?UI#;^PJ_N&1X@(, )% MH @0 1$@<:#'Z_ =/]7Q0A24<%W91-C$3YL%%!)"<-0<]HMY(U9.ZJ?TX>RH M5=&5):-Z1\_QL6*$8FTL65"@$!5P79!88%:'/2,B1L6*6+V=S446+C:ER.5T MDB2Q',MDI(M3,"^6;@3/N3 [P!$?>Z#_.!>^5L0VC D#?4OP")ZV5R1!QHYW MTK96ZAZ;#F'".>Q-OOL&6H !TC+Q> *U@'#12WS/[Z289^ 6OCE6@T$72"O) MD%ZK)$2'XM$<B.TD(:6.=_;RPUD;(+$B5<@<WG/>SI,MO-3TQ_\KMP#T7!B[ MWYF-.2<AJ1UTP"ATW(QL+HYKQN#(? .'$;559&TVT@:.R-?D7)6$]!J3#S&L MN\;FD26T@)EL,30RL2(="0'FWN0G;,'<K#81<S>P>.QD&?-3J()1*<(]PKZ* M9.CT3CX.4SO*\[ $'2 CDX&M2.*RPKQ4,>J/3^:PE+!6O%CZD@V\P51<ZT;? M([M8EO(]6!N& 6RQAT++(!]Y"9^426CN7G".N%CON"1(P!'W* T7(BTC0>B% MJ,5ES!2MTVTEH%65RF"ZE>&8V;*/^,&DQY,Q+:7&BMS "2"'Z*[=U2Z7!9UD MA0.I3_<IH/(1[VJ=M,JL\3&W=2>N#W.,+LX%D 0*0H-Y7M14=+$6BK4:"A&/ M6$W![4M"FB[]),-\J"042O\Y0J36YYT]*TATWC]S&.(V6?^;1;ZQ#[\)^^2W M@&-EL,Y(DA?M%4\+T))L]5VRV'<I[QCS ;0HKKLCJS^X?R#E[5%I^@@(Q806 M@BK,HEG*R53?"&&.Z"$.]@ANU#]640E6R-0&6E+(1#:M,@B6*1K6RE)&FT_V M!IO(\D7(&:-J-)HOBRVA\*:"5Z&CE^!CRW#(!LE G@[A@CA;"D\; +<F.]R8 MURZJF;S^.3@*AQ(PP'$JQ!B!/KNI_"".D2^Y)6S\BB#0!(I 'Q!7GTU*.P$J M[504']\]3L RQ/(6//);= ?;XV!GU:[ 0!+&$TR8O/H6K&:1O1^<B ,SQEAM +-#,,4( 7Q<IDR 46 end @eof chmod 644 history.Z echo x - make.Z '[non-ascii]' $unpacker <<'@eof' begin 644 make.Z M'YV01N2\:0."3AT[:<J$"'(ER94J5V+$<"$D"14G1:B$P%BE21 G3D!,J>,& MA)(P)67( *%2APP8()H4T0(B1@X<.11(*3.F3!H[9<CH "$F#P@T< XF#+-# M)$D6+%>>+(DSJDL8.F"L;%-&CX* X<:1*B0H4.($BE:Q*B1HT>0.LL8E..F M!90P=- ,Y3$VX<*&#R-.K'@QX\8B'3\Z\1&WY\^@0\T()-BW#(@[:?*"J%-G M#)RF(]U 56D2)8BJ+6/@T$'#1F.?0(42-5K9!6?/H$F63KDR]>K6-6_FW.DX M=N3)(-JD<4/'14^Z(% H9YYB-HCG;NR$P6.[,YSH$V6\J,*&CIPT>&2X@-%" M2 H%"=*0 1$D"(P:-V#,R"TZZN[3.; 4@PXUS.#2#""L $,,,,#PVF.R%97< M<LUA%QUVVN%1'0HTN!"#>#-X2,-[\<U7'X,UT! #?Z-)91IJ Q9X58(+-JA M$V7,,4<89Y310A*R\8#3@BJ]5* +)]ZG(A#355@&78P1!QMDUF&XG5,E3>6? M##$:J!5\D@T$@EN* 6%68&D1QA8(9KPA1W)AI,'&DT!8B0<("(4!@AQSC#&' M"PI@T5YF;LC5PA1EN$'&DT.1"9*9@*$UV%H9@: $7B5,51H+?X'8U8Y9&4# M" ]1H0 5;PR%E%)EA!%"&V&@H< 0 W'%W%!#2/'$%%.L":N<>*:AIT=),%&$ M%$ ,<:P35@2!A0(CB:$&3W0,109",N#!':QKE*& BV$*^ZXY)9K[KGHIJNN MN3=.0<2N.ISZQG4#P2&G9=>FD2UW8VRFZ),Q33$$"#NQ 4(-ZX'@YL$>Q@O" MPP\KP(02+5CQY!QIO.&&PQ!;"O$8!K<0!!,@M'#%2BT<,4?)_;;PQ)TM$#$Q M""7$ $*^^SH'P@X[* Q&\NM<3.VVK)@- @OS$%'&&.LH4,.#3H(<1EXE $' MTT+CK*T+5..++1MJ<%VUSQTKD(003<R PX<57YSQQF1#'#?()8]<\LDEJ\QR MR2^73,39::^]4LU#Z[MUOSS'#;0;61.-A]%0);UTTT]''7?75S==>,Y=;YZ& M&&V([6W'EJYK^NFHIRZN E4XD006\8X 9[=FW,OFPGEYG48+=+S1 @IJ?P@" M'WR '9UM9?W)* C7%J$$4E@-$4/,9.$WJQ&,!'$$=.[''?$8;#!AK78?DX0 MSF!_;RG.YI-O.+]L+D=&\F6X@ :];<"JZ)^R)C!&OR38PQ"RM[TI] $$ 23" M\Z)7! /Z#7#!0]F\V >ZS1U.?0I GQK<E[-^U4Y1]+,?_O1'!O[!YW\(%" ! 7N7? !"Y0>@>,V<Q:,,&OJ<&"_,+@MP#< end @eof chmod 644 make.Z echo x - testpage.tex.Z '[non-ascii]' $unpacker <<'@eof' begin 644 testpage.tex.Z M'YV0)4#0*3.'#IPP9\JX&(@'1 L08^24"3.0# @9-4!,*0-G8!LQ9>2 B)$# M1PT% 8>\@9-'3IHS:.B 0#$DQ<B2&<7D <&$()LT97B&:0/GC1PZ*%&"H$)0 MYALS(-"\N0,BS)@Q=>10+,-F)QR7;@:*E/CU#9DZ8PB"().F31DW<]*\@0MB M#IPR8]*8 4I&J4ZA3+& >%/'8&$7"D H5JR "YDW6-V&+9B'39D]88ZF&6.Y M3^.#"2E;WE.&*)T\GA<SYF*63%PRI3.?2>-&,8R.C<O8>?LZMIS9M6\CY=)& M-NV#<NZD(4,'S4C:C8O_/IYY#D<0PA.K;DQGI73@V'%S03.1#/F7,<,/)Q_& M]?7L7+K#F;,F#1SUVA<W-O/F3?,RZ,D$'W_^T6<??O&5@<=_ 8*0 W0)+J@< M<\[9X$(-$%I'AV5NG-'<'ES4X48:&[[E(1I][!$#;9YQX489=XQ!6%@A[4%@ MBR !M\=CD;U%1XO(T09;6 CF2-L><&Q&1U9E]($"#"S D$)C<T1D'QUQZ5'& M9X4]R4(+.:0 HAE:N27&&WB@8&$-+(2Y1Q\MME$'&W38UV4++L3P)0TNV) " M"GCJ*>4>.:3(Q4\O>AF#F"[( &=T<]8)QYTNP,!F"WS64,.?@48I9@PP&(IH M&8HR&L.C7&@HHXABV=A?BJ<2%ZF== ":YYXNS+"IK8**62B(Q:U1QIEXY*?: ML<@FJZR7@W*161AB;.;J&W Z2P9SD,W8ZHTJHBHGG;2JV2>N?J)PZZ"_'DH; MJ5 NND>CWLXZ::UK7LIGN>=^&BJ(HY;Z[JDMJJIMC=S&^JVD75IH ZZZ_IDO MH88&.RR:QBIK\<6*,2NFLUI%.\:TU;:'[:HTR@%RMW'*V^4,>;*9YY]0O@PQ MO^NBT.N[CJ8,[KPHL"P#"Y7N&K.[H(I:\\UYHBHPJP2_VJVL.Z_L @U +^JE MS.E*3&S%&'=]K,8@/NLQR'U8._+ )A<<;]2ULAS#I3F\[&6@OAJ=*-(Y0\IV MSXU^&;>E,'\I<]$TW^WIOTJ700?)VSIML,IM3^VWW%#2/3-Q80B[M=><(PLV MQ]!*>V/9(G?'>-/4HIR;&V0@J223+=JQ%QML1$?LF^/-7CL71KJQ1QNTV8=0 MDWO0P*("5) ' IE#!3670&BD,0<(H 4UAU1S6@02""38P 7S'Y^ZAZ,GG !" M?&VIE4/Y)+B@V!7DN:' 5[15-%AM).#PO5;AITB^^>ASR_1B$ /V42\,=Y$# M"Z 7%.:YI2[88X/VG/<B!=!F#,XATQO: (*)8+"#9$C(8*#RGP,FT 5<X,(6 M0-61+B!/>7*84TBF1Q$&+H\P(BE#"-6B'-J!0$B;V4I4I@(".7WP*3:LW@_G MH( Z6 =:EG'?4I3'!MD$I4YC6 ,-)<*]/!D0@9FA V*X\);6 6]$U6L1&G1' ;G-NE9CM<D%T::&<[-+UI=:WC41TD\Z.**>"/ end @eof chmod 644 testpage.tex.Z rm -f /tmp/unpack$$ exit 0 -- Michael Haberler mah@hpuviea.uucp Hewlett-Packard Austria GmbH, ...mcvax!tuvie!hpuviea!mah Lieblgasse 1 ...hplabs!hpfcla!hpbbn!hpuviea!mah A-1220 Vienna, Austria Tel: (0043) (222) 2500 x412 (9-18 CET)
joe@Pacer.UUCP (Joe Kelsey) (02/24/89)
I have taken the recently posted DVI-LaserJet converter and modified it to support .gf fonts and to function as a spooler. The .gf modifications were based on the mitdevices/dvi2ps code in the standard TeX distribution. You need to have the files findfile.[ch] and gf.c from that directory in order to compile with .gf support. If you do not have a standard TeX distribution, then I'm sure I or someone else can post the appropriate files. I also have modified the program to function in a spooling environment better. If you #define FILTER, then it sends output to stdout instead of to a .lj file. It also disables the automatic .dvi extension requirement since spool files rarely have that! I also modified all diagnostic output to go to stderr to prevent corruption of the spooled output. I have modified the standard HP-supplied .PCL3 spooler model to support a TeX mode spooling. If anyone is interested in that, let me know and I'll supply diffs. I have only tested this stuff on a LaserJet II, so I have no idea whether or not it works on the IBM 3812. I tried to duplicate the .gf changes for the LaserJet on the 3812, but someone else will have to test it. It is also set up now so that you have to #define USEPXL if you want the old code. I also did not modify the findfile code taken from the dvi2ps converter to support the .pk files or the alternate versions of .pxl files that the old code supported, although that would not be hard to do. Following this are my changes to dvi2xx.c. If you cannot handle a context diff, but would rather have the actual source, drop me a line and let me know. /Joe *** dvi2xx.c.orig Mon Feb 20 15:33:29 1989 --- dvi2xx.c Thu Feb 23 10:25:43 1989 *************** *** 55,60 * when -d cmdline option specified * #define IBM3812 produce output for the IBM3812 pageprinter * #define LJ produce output for the HP Laserjet+ */ /********************************************************************** ************************ Global Definitions ************************ --- 55,62 ----- * when -d cmdline option specified * #define IBM3812 produce output for the IBM3812 pageprinter * #define LJ produce output for the HP Laserjet+ + * #define FILTER produce output on stdout for use as a printer + * spooler filter. */ /********************************************************************** ************************ Global Definitions ************************ *************** *** 96,103 #define TRUE (bool) 1 #define FALSE (bool) 0 #define UNKNOWN -1 ! #define FIRSTPXLCHAR 0 ! #define LASTPXLCHAR 127 /* was 255 * change NPXLCHARS too !! */ /*#define FONTAREA "fonts" /* "/usr/lib/tex/fonts" */ #ifdef hpux #define MAXOPEN (NOFILE - 8) --- 98,109 ----- #define TRUE (bool) 1 #define FALSE (bool) 0 #define UNKNOWN -1 ! #define FIRSTFNTCHAR 0 ! #ifdef USEPXL ! #define LASTFNTCHAR 127 /* was 255 * change NFNTCHARS too !! */ ! #else ! #define LASTFNTCHAR 255 ! #endif /*#define FONTAREA "fonts" /* "/usr/lib/tex/fonts" */ #ifdef hpux #define MAXOPEN (NOFILE - 8) *************** *** 104,110 #else #define MAXOPEN 12 /* limit on number of open PXL files */ #endif ! #define NPXLCHARS 128 /* was 256 change LASTPXLCHAR too !! */ #define STACK_SIZE 100 /* DVI-stack size */ #define STRSIZE 255 /* stringsize for file specification */ #define NONEXISTANT -1 /* offset for PXL files not found */ --- 110,120 ----- #else #define MAXOPEN 12 /* limit on number of open PXL files */ #endif ! #ifdef USEPXL ! #define NFNTCHARS 128 /* was 256 change LASTFNTCHAR too !! */ ! #else ! #define NFNTCHARS 256 ! #endif #define STACK_SIZE 100 /* DVI-stack size */ #define STRSIZE 255 /* stringsize for file specification */ #define NONEXISTANT -1 /* offset for PXL files not found */ *************** *** 174,184 #define RESOLUTION 300 #define hconvRESOLUTION 300 #define vconvRESOLUTION 300 ! #define CHAR_WIDTH_LARGE 100 /* limit for loading into printer font */ ! #define CHAR_HEIGTH_LARGE 127 /* y_offset reaches the same size! */ ! #define EMITFILE_EXTENSION ".lj" /* default extension of emit file */ ! #define MAX_FONTS_PER_PAGE 16 /* maximum number of fonts per page */ ! #define HANDLE_MAX_FONTS 255 /* max nr of fonts handled (rasterfont) */ #define EMITC(c) putc(c,outfp) /* output a single character */ #define EMITL(l,d) EMITB(l,d) /* EMIT-logical = EMITB */ #define XDEFAULTOFF RESOLUTION-54 /* y default offset on page 1 inch (LJ2)*/ --- 184,195 ----- #define RESOLUTION 300 #define hconvRESOLUTION 300 #define vconvRESOLUTION 300 ! #define CHAR_WIDTH_LARGE 100 /* limit for loading into printer font */ ! #define CHAR_HEIGTH_LARGE 127 /* y_offset reaches the same size! */ ! #define EMITFILE_EXTENSION ".lj" /* default extension of emit file */ ! #define MAX_FONTS_PER_PAGE 16 /* maximum number of fonts per page */ ! #define HANDLE_MAX_FONTS 255 /* max nr of fonts handled (rasterfont) */ ! #define MAXFONTSTORAGE (395*1024) /* standard user memory */ #define EMITC(c) putc(c,outfp) /* output a single character */ #define EMITL(l,d) EMITB(l,d) /* EMIT-logical = EMITB */ #define XDEFAULTOFF RESOLUTION-54 /* y default offset on page 1 inch (LJ2)*/ *************** *** 217,222 extern char *sys_errlist[]; extern int errno; #include "findfile.h" /**********************************************************************/ --- 228,249 ----- extern char *sys_errlist[]; extern int errno; + #ifndef USEPXL + /* interface to gf.c */ + extern FILE *gfin; + extern int checksum; + extern long tfm_wd[], char_pointer[]; + extern char char_exists[]; + extern int num_cols, num_rows, num_bytes, x_offset, y_offset; + extern unsigned char bits[]; + extern int gettochar(); + extern void readbits(); + extern void readpost(); + extern void seekpost(); + extern int seekchar(); + #endif + + #ifndef unix #include "findfile.h" #endif *************** *** 218,224 extern int errno; #include "findfile.h" ! /**********************************************************************/ /************************* Global Procedures ************************/ /**********************************************************************/ --- 245,252 ----- #ifndef unix #include "findfile.h" ! #endif ! /**********************************************************************/ /************************* Global Procedures ************************/ /**********************************************************************/ *************** *** 277,282 /**********************************************************************/ struct char_entry { /* character entry */ unsigned short width, height; /* width and height in pixels */ short xOffset, yOffset, yyOffset; /* x offset and y offset in pixels*/ struct { --- 305,311 ----- /**********************************************************************/ struct char_entry { /* character entry */ + #ifdef USEPXL unsigned short width, height; /* width and height in pixels */ short xOffset, yOffset, yyOffset; /* x offset and y offset in pixels*/ #endif *************** *** 279,284 struct char_entry { /* character entry */ unsigned short width, height; /* width and height in pixels */ short xOffset, yOffset, yyOffset; /* x offset and y offset in pixels*/ struct { bool isloaded; union { --- 308,314 ----- #ifdef USEPXL unsigned short width, height; /* width and height in pixels */ short xOffset, yOffset, yyOffset; /* x offset and y offset in pixels*/ + #endif struct { bool isloaded; union { *************** *** 294,302 struct font_entry { /* font entry */ long k, c, s, d; int a, l; ! /* char n[STRSIZE]; */ /* FNT_DEF command parameters */ ! /* long font_space; */ /* computed from FNT_DEF s parameter */ ! long font_mag; /* computed from FNT_DEF s and d parameters */ /*char psname[STRSIZE];*/ /* PostScript name of the font */ char name[STRSIZE]; /* full name of PXL file */ FILE * font_file_id; /* file identifier (NO_FILE if none) */ --- 324,332 ----- struct font_entry { /* font entry */ long k, c, s, d; int a, l; ! char n[STRSIZE]; /* FNT_DEF command parameters */ ! long font_space; /* computed from FNT_DEF s parameter */ ! long font_mag; /* computed from FNT_DEF s and d parameters */ /*char psname[STRSIZE];*/ /* PostScript name of the font */ char name[STRSIZE]; /* full name of PXL file */ FILE * font_file_id; /* file identifier (NO_FILE if none) */ *************** *** 300,305 /*char psname[STRSIZE];*/ /* PostScript name of the font */ char name[STRSIZE]; /* full name of PXL file */ FILE * font_file_id; /* file identifier (NO_FILE if none) */ long magnification; /* magnification read from PXL file */ long designsize; /* design size read from PXL file */ struct char_entry ch[NPXLCHARS]; /* character information */ --- 330,336 ----- /*char psname[STRSIZE];*/ /* PostScript name of the font */ char name[STRSIZE]; /* full name of PXL file */ FILE * font_file_id; /* file identifier (NO_FILE if none) */ + #ifdef USEPXL long magnification; /* magnification read from PXL file */ long designsize; /* design size read from PXL file */ #endif *************** *** 302,308 FILE * font_file_id; /* file identifier (NO_FILE if none) */ long magnification; /* magnification read from PXL file */ long designsize; /* design size read from PXL file */ ! struct char_entry ch[NPXLCHARS]; /* character information */ struct font_entry *next; int ncdl; /* #of different chars actually downloaded */ int plusid; /* Font id in Printer */ --- 333,340 ----- #ifdef USEPXL long magnification; /* magnification read from PXL file */ long designsize; /* design size read from PXL file */ ! #endif ! struct char_entry ch[NFNTCHARS]; /* character information */ struct font_entry *next; int ncdl; /* #of different chars actually downloaded */ int plusid; /* Font id in Printer */ *************** *** 377,390 bool EvenPage = FALSE; /* Document starts with an even Page */ long LastPtobePrinted = 0; - /* deactivated features */ - /**********************/ - /*int nif = 0; */ /* number of files to include */ - /*char *Ifile[100]; */ /* files to include */ - /*int nps = 0; */ /* number of PostScript commands to send */ - /*char *PScmd[100]; */ /* PostScript commands to send */ - /**********************/ - long allocated_storage = 0; /* size of mallocated storage (statistics) */ long power[32] ; long gpower[33] ; --- 409,414 ----- bool EvenPage = FALSE; /* Document starts with an even Page */ long LastPtobePrinted = 0; long allocated_storage = 0; /* size of mallocated storage (statistics) */ long power[32] ; long gpower[33] ; *************** *** 400,405 /* raster if fonts/page>MAX_FONTS_PER_PAGE*/ #endif #ifdef IBM3812 char PMPformat[20]; long used_fontstorage = 0; --- 424,431 ----- /* raster if fonts/page>MAX_FONTS_PER_PAGE*/ #endif + long used_fontstorage = 0; + #ifdef IBM3812 char PMPformat[20]; char CharString[CHARSTRINGMAX]; *************** *** 402,408 #ifdef IBM3812 char PMPformat[20]; - long used_fontstorage = 0; char CharString[CHARSTRINGMAX]; unsigned int CharStringPos = 0; #define CharStringOut \ --- 428,433 ----- #ifdef IBM3812 char PMPformat[20]; char CharString[CHARSTRINGMAX]; unsigned int CharStringPos = 0; #define CharStringOut \ *************** *** 473,478 "%s: DVI format = %d, can only process DVI format %d files\n\n", G_progname, i, DVIFORMAT); } if ((outfp = fopen(EmitFileName, WRITE_BINARY)) == NULL) { Fatal("opening output file: fopen(%s) : %s",EmitFileName,sys_errlist[errno]); } --- 498,506 ----- "%s: DVI format = %d, can only process DVI format %d files\n\n", G_progname, i, DVIFORMAT); } + #ifdef FILTER + outfp = stdout; + #else if ((outfp = fopen(EmitFileName, WRITE_BINARY)) == NULL) { Fatal("opening output file: fopen(%s) : %s",EmitFileName,sys_errlist[errno]); } *************** *** 476,481 if ((outfp = fopen(EmitFileName, WRITE_BINARY)) == NULL) { Fatal("opening output file: fopen(%s) : %s",EmitFileName,sys_errlist[errno]); } #ifndef unix AssureBinary(outfp); --- 504,510 ----- if ((outfp = fopen(EmitFileName, WRITE_BINARY)) == NULL) { Fatal("opening output file: fopen(%s) : %s",EmitFileName,sys_errlist[errno]); } + #endif #ifndef unix AssureBinary(outfp); *************** *** 490,500 if ( G_header ) CopyFile( HeaderFileName ); - /*****************************/ - /*for( i0=0; i0<nif; i0++ ) */ /* copy all included files */ - /* CopyFile( Ifile[i0] ); */ - /*****************************/ - #ifdef IBM3812 PMPout(1, "\307"); /* unload all fonts */ PMPout(1, "\310"); /* unload all macros */ --- 519,524 ----- if ( G_header ) CopyFile( HeaderFileName ); #ifdef IBM3812 PMPout(1, "\307"); /* unload all fonts */ PMPout(1, "\310"); /* unload all macros */ *************** *** 500,505 PMPout(1, "\310"); /* unload all macros */ #endif #ifdef LJ if (ResetPrinter) EMIT(outfp, "\033E"); --- 524,530 ----- PMPout(1, "\310"); /* unload all macros */ #endif #ifdef LJ + #ifndef FILTER if (ResetPrinter) EMIT(outfp, "\033E"); *************** *** 508,513 if (ncopies>1) EMIT(outfp, "\033&l%hdX",ncopies); #endif if (DoublePage) { StartPrintPages = PrintPages; #ifdef IBM3812 --- 533,539 ----- if (ncopies>1) EMIT(outfp, "\033&l%hdX",ncopies); #endif + #endif if (DoublePage) { StartPrintPages = PrintPages; #ifdef IBM3812 *************** *** 518,524 if (Reverse) { #ifdef DEBUG if (Debug) ! printf("reverse\n"); #endif ReadPostAmble(TRUE); fseek(dvifp, ppagep, 0); --- 544,550 ----- if (Reverse) { #ifdef DEBUG if (Debug) ! fprintf(stderr, "reverse\n"); #endif ReadPostAmble(TRUE); fseek(dvifp, ppagep, 0); *************** *** 534,540 command = (short) NoSignExtend(dvifp, 1) ; #ifdef DEBUG if (Debug) ! printf("CMD:\t%d\n", command); #endif /* switch (command=NoSignExtend(dvifp, 1)) {*/ switch (command) { --- 560,566 ----- command = (short) NoSignExtend(dvifp, 1) ; #ifdef DEBUG if (Debug) ! fprintf(stderr,"CMD:\t%d\n", command); #endif /* switch (command=NoSignExtend(dvifp, 1)) {*/ switch (command) { *************** *** 918,923 #ifdef IBM3812 PMPout(10, "\373\010PMP.init"); /* re-init printer */ PMPflush; if (used_fontstorage > MAXFONTSTORAGE) { Warning("\n\7used font_storage of 3812: %ld Bytes (of %ld)\7", --- 944,950 ----- #ifdef IBM3812 PMPout(10, "\373\010PMP.init"); /* re-init printer */ PMPflush; + #endif if (used_fontstorage > MAXFONTSTORAGE) { Warning("\n\7used font_storage of %s: %ld Bytes (of %ld)\7", *************** *** 920,927 PMPflush; if (used_fontstorage > MAXFONTSTORAGE) { ! Warning("\n\7used font_storage of 3812: %ld Bytes (of %ld)\7", ! used_fontstorage, MAXFONTSTORAGE); Warning("Try to format file in separate runs!"); } else qprintf( --- 947,954 ----- #endif if (used_fontstorage > MAXFONTSTORAGE) { ! Warning("\n\7used font_storage of %s: %ld Bytes (of %ld)\7", ! PRINTER, used_fontstorage, MAXFONTSTORAGE); Warning("Try to format file in separate runs!"); } else qfprintf(stderr, *************** *** 924,933 used_fontstorage, MAXFONTSTORAGE); Warning("Try to format file in separate runs!"); } else ! qprintf( ! "\nAll done, used font_storage of 3812: %ld Bytes (of %ld)", ! used_fontstorage, MAXFONTSTORAGE); ! #endif #ifdef LJ EMIT(outfp, "\033E"); if (PrintTestPage) EMIT(outfp, "\033z"); --- 951,959 ----- PRINTER, used_fontstorage, MAXFONTSTORAGE); Warning("Try to format file in separate runs!"); } else ! qfprintf(stderr, ! "\nAll done, used font_storage of %s: %ld Bytes (of %ld)", ! PRINTER, used_fontstorage, MAXFONTSTORAGE); #ifdef LJ #ifndef FILTER EMIT(outfp, "\033E"); *************** *** 929,934 used_fontstorage, MAXFONTSTORAGE); #endif #ifdef LJ EMIT(outfp, "\033E"); if (PrintTestPage) EMIT(outfp, "\033z"); #endif --- 955,961 ----- "\nAll done, used font_storage of %s: %ld Bytes (of %ld)", PRINTER, used_fontstorage, MAXFONTSTORAGE); #ifdef LJ + #ifndef FILTER EMIT(outfp, "\033E"); if (PrintTestPage) EMIT(outfp, "\033z"); #endif *************** *** 932,937 EMIT(outfp, "\033E"); if (PrintTestPage) EMIT(outfp, "\033z"); #endif if (!G_quiet) { printf( "\nDynamically allocated storage: %ld Bytes \n", --- 959,965 ----- EMIT(outfp, "\033E"); if (PrintTestPage) EMIT(outfp, "\033z"); #endif + #endif if (!G_quiet) { fprintf(stderr,"\nDynamically allocated storage: %ld Bytes \n", *************** *** 934,940 #endif if (!G_quiet) { ! printf( "\nDynamically allocated storage: %ld Bytes \n", allocated_storage); #ifdef TIMING --- 962,968 ----- #endif if (!G_quiet) { ! fprintf(stderr,"\nDynamically allocated storage: %ld Bytes \n", allocated_storage); #ifdef TIMING *************** *** 943,949 -start_time; if (ndone > 0) { ! printf( "Time of complete run: %.2f seconds, %d page(s), %.2f seconds/page", time, ndone, time / ndone); printf(" (%.2f ppm)\n",(ndone * 60) / time); --- 971,977 ----- -start_time; if (ndone > 0) { ! fprintf(stderr, "Time of complete run: %.2f seconds, %d page(s), %.2f seconds/page", time, ndone, time / ndone); fprintf(stderr," (%.2f ppm)\n",(ndone * 60) / time); *************** *** 946,952 printf( "Time of complete run: %.2f seconds, %d page(s), %.2f seconds/page", time, ndone, time / ndone); ! printf(" (%.2f ppm)\n",(ndone * 60) / time); } printf("\n"); #endif --- 974,980 ----- fprintf(stderr, "Time of complete run: %.2f seconds, %d page(s), %.2f seconds/page", time, ndone, time / ndone); ! fprintf(stderr," (%.2f ppm)\n",(ndone * 60) / time); } fprintf(stderr,"\n"); #endif *************** *** 948,954 time, ndone, time / ndone); printf(" (%.2f ppm)\n",(ndone * 60) / time); } ! printf("\n"); #endif } --- 976,982 ----- time, ndone, time / ndone); fprintf(stderr," (%.2f ppm)\n",(ndone * 60) / time); } ! fprintf(stderr,"\n"); #endif } *************** *** 1024,1029 case 'D': /* D selects DoublePage */ DoublePage = TRUE; break; case 'e': /* emit file is specified */ EmitFileName = ++tcp; /* delete trailing ':' (causing hangup) */ --- 1052,1058 ----- case 'D': /* D selects DoublePage */ DoublePage = TRUE; break; + #ifndef FILTER case 'e': /* emit file is specified */ EmitFileName = ++tcp; /* delete trailing ':' (causing hangup) */ *************** *** 1032,1037 EmitFileName[strlen(EmitFileName)-1] = '\0'; break; case 'f': /* next arg is starting pagenumber */ if ( sscanf(tcp + 1, "%ld", &FirstPage) != 1 ) Fatal("Argument is not a valid integer\n"); --- 1061,1067 ----- EmitFileName[strlen(EmitFileName)-1] = '\0'; break; + #endif case 'f': /* next arg is starting pagenumber */ if ( sscanf(tcp + 1, "%ld", &FirstPage) != 1 ) Fatal("Argument is not a valid integer\n"); *************** *** 1045,1057 HeaderFileName = ++tcp; G_header = TRUE; break; - #ifdef SUPERCOMMENT - case 'i': /* next arg is a PostScript file to copy */ - if ( ++argind >= argc ) - Fatal("No argument following -i\n"); - Ifile[nif++] = argv[argind]; - break; - #endif case 'x': /* specify x-offset */ this_arg = 0; if (!(*++tcp)) { --- 1075,1080 ----- HeaderFileName = ++tcp; G_header = TRUE; break; case 'x': /* specify x-offset */ this_arg = 0; if (!(*++tcp)) { *************** *** 1168,1173 G_nowarn = TRUE; break; #ifdef LJ case 'z': PrintTestPage = (bool)(!PrintTestPage); break; --- 1191,1197 ----- G_nowarn = TRUE; break; #ifdef LJ + #ifndef FILTER case 'z': PrintTestPage = (bool)(!PrintTestPage); break; *************** *** 1172,1177 PrintTestPage = (bool)(!PrintTestPage); break; #endif default: printf("%c is not a legal flag\n", *tcp); } --- 1196,1202 ----- PrintTestPage = (bool)(!PrintTestPage); break; #endif + #endif default: fprintf(stderr, "%c is not a legal flag\n", *tcp); *************** *** 1173,1179 break; #endif default: ! printf("%c is not a legal flag\n", *tcp); } } else { /* tcp = rindex(argv[argind], '/'); */ --- 1198,1205 ----- #endif #endif default: ! fprintf(stderr, ! "%c is not a legal flag\n", *tcp); } } else { #ifdef FILTER *************** *** 1176,1182 printf("%c is not a legal flag\n", *tcp); } } else { ! /* tcp = rindex(argv[argind], '/'); */ tcp = strrchr(argv[argind], '/'); /* split into directory + file name */ if (tcp == NULL) { --- 1202,1210 ----- "%c is not a legal flag\n", *tcp); } } else { ! #ifdef FILTER ! (void) strcpy(filename, tcp); ! #else tcp = strrchr(argv[argind], '/'); /* split into directory + file name */ if (tcp == NULL) { *************** *** 1202,1207 (void) strcpy(filename, curarea); (void) strcat(filename, curname); if ((dvifp = BINOPEN(filename)) == NULL) { Fatal("%s: can't find DVI file \"%s\"\n\n", --- 1230,1236 ----- (void) strcpy(filename, curarea); (void) strcat(filename, curname); + #endif if ((dvifp = BINOPEN(filename)) == NULL) { Fatal("%s: can't find DVI file \"%s\"\n\n", *************** *** 1213,1224 x_goffset = (short) MM_TO_PXL(x_offset) + x_origin; y_goffset = (short) MM_TO_PXL(y_offset) + y_origin; ! /* ! printf("setting x_goffset to %hd, x_offset= %f, x_origin= %hd\n", ! x_goffset, x_offset, x_origin); ! printf("setting y_goffset to %hd, y_offset= %f, y_origin= %hd\n", ! y_goffset, y_offset, y_origin); ! */ if (dvifp == NULL) { printf("\nThis is the DVI to %s converter version %s", PRINTER, VERSION); --- 1242,1248 ----- x_goffset = (short) MM_TO_PXL(x_offset) + x_origin; y_goffset = (short) MM_TO_PXL(y_offset) + y_origin; ! if (dvifp == NULL) { fprintf(stderr,"\nThis is the DVI to %s converter version %s", PRINTER, VERSION); *************** *** 1220,1226 y_goffset, y_offset, y_origin); */ if (dvifp == NULL) { ! printf("\nThis is the DVI to %s converter version %s", PRINTER, VERSION); printf(" (%s)\n", OS); printf("usage: %s [OPTIONS] dvifile\n", G_progname); --- 1244,1250 ----- y_goffset = (short) MM_TO_PXL(y_offset) + y_origin; if (dvifp == NULL) { ! fprintf(stderr,"\nThis is the DVI to %s converter version %s", PRINTER, VERSION); fprintf(stderr," (%s)\n", OS); fprintf(stderr,"usage: %s [OPTIONS] dvifile\n", G_progname); *************** *** 1222,1229 if (dvifp == NULL) { printf("\nThis is the DVI to %s converter version %s", PRINTER, VERSION); ! printf(" (%s)\n", OS); ! printf("usage: %s [OPTIONS] dvifile\n", G_progname); printf("OPTIONS are:\n"); printf( --- 1246,1253 ----- if (dvifp == NULL) { fprintf(stderr,"\nThis is the DVI to %s converter version %s", PRINTER, VERSION); ! fprintf(stderr," (%s)\n", OS); ! fprintf(stderr,"usage: %s [OPTIONS] dvifile\n", G_progname); fprintf(stderr,"OPTIONS are:\n"); fprintf(stderr, *************** *** 1225,1232 printf(" (%s)\n", OS); printf("usage: %s [OPTIONS] dvifile\n", G_progname); ! printf("OPTIONS are:\n"); ! printf( "\t-aX ..... X= searchpath leading to pixel-files (.pk or .pxl)\n"); #ifdef IBM3812 printf( --- 1249,1256 ----- fprintf(stderr," (%s)\n", OS); fprintf(stderr,"usage: %s [OPTIONS] dvifile\n", G_progname); ! fprintf(stderr,"OPTIONS are:\n"); ! fprintf(stderr, "\t-aX ..... X= searchpath leading to pixel-files (.pk or .pxl)\n"); #ifdef IBM3812 fprintf(stderr, *************** *** 1229,1235 printf( "\t-aX ..... X= searchpath leading to pixel-files (.pk or .pxl)\n"); #ifdef IBM3812 ! printf( "\t-b ..... take paper for first page from alternate casette\n"); #endif printf("\t-cX ..... X= number of copies\n"); --- 1253,1259 ----- fprintf(stderr, "\t-aX ..... X= searchpath leading to pixel-files (.pk or .pxl)\n"); #ifdef IBM3812 ! fprintf(stderr, "\t-b ..... take paper for first page from alternate casette\n"); #endif fprintf(stderr,"\t-cX ..... X= number of copies\n"); *************** *** 1232,1238 printf( "\t-b ..... take paper for first page from alternate casette\n"); #endif ! printf("\t-cX ..... X= number of copies\n"); #ifdef DEBUG printf("\t-d ..... turns debug output on\n"); #endif --- 1256,1262 ----- fprintf(stderr, "\t-b ..... take paper for first page from alternate casette\n"); #endif ! fprintf(stderr,"\t-cX ..... X= number of copies\n"); #ifdef DEBUG fprintf(stderr,"\t-d ..... turns debug output on\n"); #endif *************** *** 1234,1240 #endif printf("\t-cX ..... X= number of copies\n"); #ifdef DEBUG ! printf("\t-d ..... turns debug output on\n"); #endif printf("\t-D ..... turns doublepage output on\n"); printf("\t-eX ..... X= outputfile\n"); --- 1258,1264 ----- #endif fprintf(stderr,"\t-cX ..... X= number of copies\n"); #ifdef DEBUG ! fprintf(stderr,"\t-d ..... turns debug output on\n"); #endif fprintf(stderr,"\t-D ..... turns doublepage output on\n"); #ifndef FILTER *************** *** 1236,1244 #ifdef DEBUG printf("\t-d ..... turns debug output on\n"); #endif ! printf("\t-D ..... turns doublepage output on\n"); ! printf("\t-eX ..... X= outputfile\n"); ! printf("\t-fX ..... print from begin of page number X\n"); #ifdef LJ printf("\t-g ..... do not reset printer at begin of job (go)\n"); #endif --- 1260,1270 ----- #ifdef DEBUG fprintf(stderr,"\t-d ..... turns debug output on\n"); #endif ! fprintf(stderr,"\t-D ..... turns doublepage output on\n"); ! #ifndef FILTER ! fprintf(stderr,"\t-eX ..... X= outputfile\n"); ! #endif ! fprintf(stderr,"\t-fX ..... print from begin of page number X\n"); #ifdef LJ fprintf(stderr, "\t-g ..... do not reset printer at begin of job (go)\n"); *************** *** 1240,1246 printf("\t-eX ..... X= outputfile\n"); printf("\t-fX ..... print from begin of page number X\n"); #ifdef LJ ! printf("\t-g ..... do not reset printer at begin of job (go)\n"); #endif printf("\t-hX ..... X= name of headerfile\n"); printf("\t-mX ..... magnification X=0;h;1;2;3;4;5;#xxxx\n"); --- 1266,1273 ----- #endif fprintf(stderr,"\t-fX ..... print from begin of page number X\n"); #ifdef LJ ! fprintf(stderr, ! "\t-g ..... do not reset printer at begin of job (go)\n"); #endif fprintf(stderr,"\t-hX ..... X= name of headerfile\n"); fprintf(stderr,"\t-mX ..... magnification X=0;h;1;2;3;4;5;#xxxx\n"); *************** *** 1242,1258 #ifdef LJ printf("\t-g ..... do not reset printer at begin of job (go)\n"); #endif ! printf("\t-hX ..... X= name of headerfile\n"); ! printf("\t-mX ..... magnification X=0;h;1;2;3;4;5;#xxxx\n"); ! printf("\t-pX ..... print X pages\n"); ! printf("\t-q ..... quiet operation\n"); ! printf("\t-r ..... process pages in reverse order\n"); ! printf("\t-tX ..... print to end of page number X\n"); ! printf("\t-w ..... don't print out warnings\n"); ! printf("\t-v ..... tell user which pixel-files are used\n"); ! printf("\t-xX ..... X= x-offset on printout in mm\n"); ! printf("\t-yX ..... X= y-offset on printout in mm\n"); ! printf("\t-XO ..... O= x page origin in dots (default=%d)\n", XDEFAULTOFF ); printf("\t-YO ..... O= y page origin in dots (default=%d)\n", YDEFAULTOFF ); --- 1269,1285 ----- fprintf(stderr, "\t-g ..... do not reset printer at begin of job (go)\n"); #endif ! fprintf(stderr,"\t-hX ..... X= name of headerfile\n"); ! fprintf(stderr,"\t-mX ..... magnification X=0;h;1;2;3;4;5;#xxxx\n"); ! fprintf(stderr,"\t-pX ..... print X pages\n"); ! fprintf(stderr,"\t-q ..... quiet operation\n"); ! fprintf(stderr,"\t-r ..... process pages in reverse order\n"); ! fprintf(stderr,"\t-tX ..... print to end of page number X\n"); ! fprintf(stderr,"\t-w ..... don't print out warnings\n"); ! fprintf(stderr,"\t-v ..... tell user which pixel-files are used\n"); ! fprintf(stderr,"\t-xX ..... X= x-offset on printout in mm\n"); ! fprintf(stderr,"\t-yX ..... X= y-offset on printout in mm\n"); ! fprintf(stderr,"\t-XO ..... O= x page origin in dots (default=%d)\n", XDEFAULTOFF ); fprintf(stderr,"\t-YO ..... O= y page origin in dots (default=%d)\n", YDEFAULTOFF ); *************** *** 1254,1260 printf("\t-yX ..... X= y-offset on printout in mm\n"); printf("\t-XO ..... O= x page origin in dots (default=%d)\n", XDEFAULTOFF ); ! printf("\t-YO ..... O= y page origin in dots (default=%d)\n", YDEFAULTOFF ); #ifdef LJ printf("\t-z ..... print test page with pagecounter after job\n"); --- 1281,1287 ----- fprintf(stderr,"\t-yX ..... X= y-offset on printout in mm\n"); fprintf(stderr,"\t-XO ..... O= x page origin in dots (default=%d)\n", XDEFAULTOFF ); ! fprintf(stderr,"\t-YO ..... O= y page origin in dots (default=%d)\n", YDEFAULTOFF ); #ifdef LJ #ifndef FILTER *************** *** 1257,1263 printf("\t-YO ..... O= y page origin in dots (default=%d)\n", YDEFAULTOFF ); #ifdef LJ ! printf("\t-z ..... print test page with pagecounter after job\n"); #endif exit(1); } --- 1284,1292 ----- fprintf(stderr,"\t-YO ..... O= y page origin in dots (default=%d)\n", YDEFAULTOFF ); #ifdef LJ ! #ifndef FILTER ! fprintf(stderr, ! "\t-z ..... print test page with pagecounter after job\n"); #endif #endif exit(1); *************** *** 1259,1264 #ifdef LJ printf("\t-z ..... print test page with pagecounter after job\n"); #endif exit(1); } if (EQ(EmitFileName, "")) { --- 1288,1294 ----- fprintf(stderr, "\t-z ..... print test page with pagecounter after job\n"); #endif + #endif exit(1); } #ifndef FILTER *************** *** 1261,1266 #endif exit(1); } if (EQ(EmitFileName, "")) { (void) strcpy(EmitFileName, curname); tcp1 = strchr(EmitFileName, '.'); --- 1291,1297 ----- #endif exit(1); } + #ifndef FILTER if (EQ(EmitFileName, "")) { (void) strcpy(EmitFileName, curname); tcp1 = strchr(EmitFileName, '.'); *************** *** 1267,1272 *tcp1 = '\0'; strcat(EmitFileName, EMITFILE_EXTENSION); } } --- 1298,1304 ----- *tcp1 = '\0'; strcat(EmitFileName, EMITFILE_EXTENSION); } + #endif } *************** *** 1280,1288 int convResolution; { /*register*/ double conv; - /* conv = ((double)den / (double)num) * - (1000.0 / (double)mag) * - (254000.0 / (double)convResolution) + 0.5; */ conv = ((double)num / (double)den) * ((double)mag / 1000.0) * ((double)convResolution/254000.0); --- 1312,1317 ----- int convResolution; { /*register*/ double conv; conv = ((double)num / (double)den) * ((double)mag / 1000.0) * ((double)convResolution/254000.0); *************** *** 1443,1448 prevfont = fontptr; } if (fontptr->id == pk89) { nbpl = ((ce->width) + 7) >> 3; total = (long)ce->height * nbpl; --- 1472,1478 ----- prevfont = fontptr; } + #ifdef USEPXL if (fontptr->id == pk89) { nbpl = ((ce->width) + 7) >> 3; total = (long)ce->height * nbpl; *************** *** 1454,1460 nbpl = ((ce->width) + 7) >> 3; total = (long)ce->height * nbpl; } ! /***************************************************************/ /*if ( ((char) c == 'a') && (fontptr->plusid == 8)) { */ /* printf("cols=%ld, ncols=%ld\n",nwpl,nbpl); */ --- 1484,1493 ----- nbpl = ((ce->width) + 7) >> 3; total = (long)ce->height * nbpl; } ! #else ! nbpl = (num_cols + 7) >> 3; ! total = num_rows * nbpl; ! #endif /***************************************************************/ /*if ( ((char) c == 'a') && (fontptr->plusid == 8)) { */ /* printf("cols=%ld, ncols=%ld\n",nwpl,nbpl); */ *************** *** 1469,1475 /* printf("<- Now Emitting\n"); */ /* } */ /***************************************************************/ ! if ((short)(ce->height) - ce->yOffset > 55) { ce->yyOffset = (short) ce->height - ce->yOffset; ce->yOffset = (short) ce->height; --- 1502,1508 ----- /* printf("<- Now Emitting\n"); */ /* } */ /***************************************************************/ ! #ifdef USEPXL if ((short)(ce->height) - ce->yOffset > 55) { ce->yyOffset = (short) ce->height - ce->yOffset; ce->yOffset = (short) ce->height; *************** *** 1476,1481 } else { ce->yyOffset = (short) 0; } /* ce->cw = (long)(((double)ce->tfmw / (double)hconv) +0.5); */ /* set active font to nn, load font pattern xx ... */ --- 1509,1515 ----- } else { ce->yyOffset = (short) 0; } + #endif /* ce->cw = (long)(((double)ce->tfmw / (double)hconv) +0.5); */ /* set active font to nn, load font pattern xx ... */ #ifdef IBM3812 *************** *** 1478,1484 } /* ce->cw = (long)(((double)ce->tfmw / (double)hconv) +0.5); */ /* set active font to nn, load font pattern xx ... */ - #ifdef IBM3812 PMPcont(total + 9); sprintf(PMPformat, "\323%c\360%c%c%c", --- 1512,1517 ----- #endif /* ce->cw = (long)(((double)ce->tfmw / (double)hconv) +0.5); */ /* set active font to nn, load font pattern xx ... */ #ifdef IBM3812 PMPcont(total + 9); #ifdef USEPXL *************** *** 1481,1486 #ifdef IBM3812 PMPcont(total + 9); sprintf(PMPformat, "\323%c\360%c%c%c", (unsigned char)fontptr->plusid, (unsigned char)VisChar((char)c), --- 1514,1520 ----- /* set active font to nn, load font pattern xx ... */ #ifdef IBM3812 PMPcont(total + 9); + #ifdef USEPXL sprintf(PMPformat, "\323%c\360%c%c%c", (unsigned char)fontptr->plusid, (unsigned char)VisChar((char)c), *************** *** 1490,1495 PMPoutC((char)(-(ce->xOffset))); PMPoutC((char)(ce->cw - (-ce->xOffset + ce->width))); PMPoutC((char)(ce->yOffset)); #endif #ifdef LJ EMIT(outfp, "\033*c%dd%dE\033(s%ldW", fontptr->plusid, --- 1524,1539 ----- PMPoutC((char)(-(ce->xOffset))); PMPoutC((char)(ce->cw - (-ce->xOffset + ce->width))); PMPoutC((char)(ce->yOffset)); + #else + sprintf(PMPformat, "\323%c\360%c%c%c", + (unsigned char)fontptr->plusid, + (unsigned char)VisChar((char)c), + (unsigned char)num_rows, + (unsigned char)num_cols); + PMPout(6, PMPformat); + PMPoutC((char)(-x_offset)); + PMPoutC((char)(ce->cw - (-x_offset + num_cols))); + PMPoutC((char)num_rows-y_offset); #endif #endif #ifdef LJ *************** *** 1491,1496 PMPoutC((char)(ce->cw - (-ce->xOffset + ce->width))); PMPoutC((char)(ce->yOffset)); #endif #ifdef LJ EMIT(outfp, "\033*c%dd%dE\033(s%ldW", fontptr->plusid, (unsigned int)VisChar((char)c), (long)(total + 16)); --- 1535,1541 ----- PMPoutC((char)(ce->cw - (-x_offset + num_cols))); PMPoutC((char)num_rows-y_offset); #endif + #endif #ifdef LJ EMIT(outfp, "\033*c%dd%dE\033(s%ldW", fontptr->plusid, (unsigned int)VisChar((char)c), (long)(total + 16)); *************** *** 1495,1500 EMIT(outfp, "\033*c%dd%dE\033(s%ldW", fontptr->plusid, (unsigned int)VisChar((char)c), (long)(total + 16)); EMITB(6, "\4\0\016\1\0\0"); EMITWORD(-(ce->xOffset)); EMITWORD(ce->yOffset); EMITWORD(ce->width); --- 1540,1546 ----- EMIT(outfp, "\033*c%dd%dE\033(s%ldW", fontptr->plusid, (unsigned int)VisChar((char)c), (long)(total + 16)); EMITB(6, "\4\0\016\1\0\0"); + #ifdef USEPXL EMITWORD(-(ce->xOffset)); EMITWORD(ce->yOffset); EMITWORD(ce->width); *************** *** 1499,1504 EMITWORD(ce->yOffset); EMITWORD(ce->width); EMITWORD(ce->height); EMITWORD((int)ce->cw * 4); #endif if (fontptr->id == pk89) --- 1545,1556 ----- EMITWORD(ce->yOffset); EMITWORD(ce->width); EMITWORD(ce->height); + #else + EMITWORD(-x_offset); + EMITWORD(num_rows-y_offset); + EMITWORD(num_cols); + EMITWORD(num_rows); + #endif EMITWORD((int)ce->cw * 4); #endif #ifdef USEPXL *************** *** 1501,1506 EMITWORD(ce->height); EMITWORD((int)ce->cw * 4); #endif if (fontptr->id == pk89) PkRaster(ce, FALSE); else if (fontptr->id == id1002) --- 1553,1559 ----- #endif EMITWORD((int)ce->cw * 4); #endif + #ifdef USEPXL if (fontptr->id == pk89) PkRaster(ce, FALSE); else if (fontptr->id == id1002) *************** *** 1515,1520 i * nwpl); EMITL(nbpl, sl); } #ifdef IBM3812 used_fontstorage += (long)ce->height * ((ce->width + 15) >> 4) *2 + 14; --- 1568,1579 ----- i * nwpl); EMITL(nbpl, sl); } + #else + for (i = num_rows; i > 0; i--) + { + EMITL (nbpl, bits + (i-1) * nbpl); + } + #endif #ifdef IBM3812 #ifdef USEPXL used_fontstorage += (long)ce->height * ((ce->width + 15) >> 4) *************** *** 1516,1521 EMITL(nbpl, sl); } #ifdef IBM3812 used_fontstorage += (long)ce->height * ((ce->width + 15) >> 4) *2 + 14; #endif --- 1575,1581 ----- } #endif #ifdef IBM3812 + #ifdef USEPXL used_fontstorage += (long)ce->height * ((ce->width + 15) >> 4) *2 + 14; #else *************** *** 1518,1523 #ifdef IBM3812 used_fontstorage += (long)ce->height * ((ce->width + 15) >> 4) *2 + 14; #endif fontptr->ncdl += 1; } --- 1578,1586 ----- #ifdef USEPXL used_fontstorage += (long)ce->height * ((ce->width + 15) >> 4) *2 + 14; + #else + used_fontstorage += (long)num_rows * ((num_cols + 15) >> 4) + *2 + 14; #endif #endif #ifdef LJ *************** *** 1519,1524 used_fontstorage += (long)ce->height * ((ce->width + 15) >> 4) *2 + 14; #endif fontptr->ncdl += 1; } --- 1582,1595 ----- used_fontstorage += (long)num_rows * ((num_cols + 15) >> 4) *2 + 14; #endif + #endif + #ifdef LJ + #ifdef USEPXL + used_fontstorage += 64 * ((((ce->height * ce->width) - 1) / 64) + 1); + #else + used_fontstorage += 64 * ((((num_rows * num_cols) - 1) / 64) + 1); + #endif + #endif fontptr->ncdl += 1; } *************** *** 1538,1543 static unsigned short maxlines; if (current_line == 0) { maxlines = ce->height; MoveVert(-ce->yOffset); /* move cursor up */ --- 1609,1615 ----- static unsigned short maxlines; if (current_line == 0) { + #ifdef USEPXL maxlines = ce->height; MoveVert(-ce->yOffset); /* move cursor up */ *************** *** 1542,1547 MoveVert(-ce->yOffset); /* move cursor up */ MoveHor(-ce->xOffset); /* move cursor right */ last_ry = UNKNOWN; /* next time full positioning */ } --- 1614,1625 ----- MoveVert(-ce->yOffset); /* move cursor up */ MoveHor(-ce->xOffset); /* move cursor right */ + #else + maxlines = num_rows; + + MoveVert(-(num_rows-y_offset)); /* move cursor up */ + MoveHor(-x_offset); /* move cursor right */ + #endif last_ry = UNKNOWN; /* next time full positioning */ } *************** *** 1550,1555 MoveVert(maxlines); /* move cursor down */ last_ry = UNKNOWN; /* next time full positioning */ } total = (long)(ce->height - current_line) * (long)nbpl; if ((total + 9) > 65535) { maxlines = (unsigned short)((65535 - 9) / nbpl); --- 1628,1634 ----- MoveVert(maxlines); /* move cursor down */ last_ry = UNKNOWN; /* next time full positioning */ } + #ifdef USEPXL total = (long)(ce->height - current_line) * (long)nbpl; #else total = (long)(num_rows - current_line) * (long)nbpl; *************** *** 1551,1556 last_ry = UNKNOWN; /* next time full positioning */ } total = (long)(ce->height - current_line) * (long)nbpl; if ((total + 9) > 65535) { maxlines = (unsigned short)((65535 - 9) / nbpl); total = (long)maxlines * (long)nbpl; --- 1630,1638 ----- } #ifdef USEPXL total = (long)(ce->height - current_line) * (long)nbpl; + #else + total = (long)(num_rows - current_line) * (long)nbpl; + #endif if ((total + 9) > 65535) { maxlines = (unsigned short)((65535 - 9) / nbpl); total = (long)maxlines * (long)nbpl; *************** *** 1559,1564 PMPcont(total + 9); PMPout(2, "\365\0"); EMITWORD(maxlines); EMITWORD(ce->width); PMPoutC((unsigned char) (total >> 16) & 0xFF); PMPoutC((unsigned char) (total >> 8 ) & 0xFF); --- 1641,1647 ----- PMPcont(total + 9); PMPout(2, "\365\0"); EMITWORD(maxlines); + #ifdef USEPXL EMITWORD(ce->width); #else EMITWORD(num_cols); *************** *** 1560,1565 PMPout(2, "\365\0"); EMITWORD(maxlines); EMITWORD(ce->width); PMPoutC((unsigned char) (total >> 16) & 0xFF); PMPoutC((unsigned char) (total >> 8 ) & 0xFF); PMPoutC((unsigned char) total & 0xFF); --- 1643,1651 ----- EMITWORD(maxlines); #ifdef USEPXL EMITWORD(ce->width); + #else + EMITWORD(num_cols); + #endif PMPoutC((unsigned char) (total >> 16) & 0xFF); PMPoutC((unsigned char) (total >> 8 ) & 0xFF); PMPoutC((unsigned char) total & 0xFF); *************** *** 1595,1601 #ifdef DEBUG if (Debug) ! printf("Raster character <%c>... \n", (char) c); #endif --- 1681,1687 ----- #ifdef DEBUG if (Debug) ! fprintf(stderr,"Raster character <%c>... \n", (char) c); #endif #ifdef USEPXL *************** *** 1598,1604 printf("Raster character <%c>... \n", (char) c); #endif ! if (fontptr->id == pk89) { nbpl = ((ce->width) + 7) >> 3; } else if (fontptr->id == id1002) { --- 1684,1690 ----- fprintf(stderr,"Raster character <%c>... \n", (char) c); #endif ! #ifdef USEPXL if (fontptr->id == pk89) { nbpl = ((ce->width) + 7) >> 3; } else if (fontptr->id == id1002) { *************** *** 1607,1612 nwpl = ( ce->width + 31) >> 5; nbpl = ( ce->width + 7) >> 3; } #ifdef LJ EMIT(outfp, "\033*t300R\033*r1A"); --- 1693,1701 ----- nwpl = ( ce->width + 31) >> 5; nbpl = ( ce->width + 7) >> 3; } + #else + nbpl = (num_cols + 7) >> 3; + #endif #ifdef LJ EMIT(outfp, "\033*t300R\033*r1A"); *************** *** 1614,1619 if (ce->charsize == HUGE_SIZE) { /* read pixel from file */ OpenFontFile(); fseek(pxlfp, ce->where.address.fileOffset, 0); } --- 1703,1709 ----- if (ce->charsize == HUGE_SIZE) { /* read pixel from file */ OpenFontFile(); + #ifdef USEPXL fseek(pxlfp, ce->where.address.fileOffset, 0); #else fseek(gfin, ce->where.address.fileOffset, 0); *************** *** 1615,1620 if (ce->charsize == HUGE_SIZE) { /* read pixel from file */ OpenFontFile(); fseek(pxlfp, ce->where.address.fileOffset, 0); } if (fontptr->id == pk89) --- 1705,1715 ----- OpenFontFile(); #ifdef USEPXL fseek(pxlfp, ce->where.address.fileOffset, 0); + #else + fseek(gfin, ce->where.address.fileOffset, 0); + gettochar(); + readbits(); + #endif } #ifdef USEPXL *************** *** 1616,1622 OpenFontFile(); fseek(pxlfp, ce->where.address.fileOffset, 0); } ! if (fontptr->id == pk89) PkRaster(ce, TRUE); else if (fontptr->id == id1002) { --- 1711,1718 ----- readbits(); #endif } ! ! #ifdef USEPXL if (fontptr->id == pk89) PkRaster(ce, TRUE); else if (fontptr->id == id1002) { *************** *** 1650,1655 RasterLine(ce, (unsigned int)nbpl, i, sl); } } #ifdef LJ EMIT(outfp, "\033*rB"); #endif --- 1746,1755 ----- RasterLine(ce, (unsigned int)nbpl, i, sl); } } + #else + for (i = num_rows; i > 0; i--) + RasterLine(ce, (unsigned int)nbpl, i, bits + (i-1) * nbpl); + #endif #ifdef LJ EMIT(outfp, "\033*rB"); #endif *************** *** 1921,1927 #ifdef DEBUG if (Debug) ! printf("open font file\n"); #endif if (pfontptr == fontptr) return; /* we need not have been called */ --- 2021,2027 ----- #ifdef DEBUG if (Debug) ! fprintf(stderr,"open font file %d\n", fontptr->font_file_id); #endif if (pfontptr == fontptr) return; /* we need not have been called */ *************** *** 1973,1979 } #ifdef DEBUG if (Debug) ! printf("\n__reuse slot %d\n", least_used); #endif current = least_used; } --- 2073,2079 ----- } #ifdef DEBUG if (Debug) ! fprintf(stderr,"\n__reuse slot %d\n", least_used); #endif current = least_used; } *************** *** 1983,1989 pxlfp = NO_FILE; } else { #ifdef DEBUG ! if (Debug) printf( "Opening File <%s> /%x/, Size(font_entry)=%d\n", fontptr->name, pxlfp, sizeof(struct font_entry )); #endif --- 2083,2089 ----- pxlfp = NO_FILE; } else { #ifdef DEBUG ! if (Debug) fprintf(stderr, "Opening File <%s> /%x/, Size(font_entry)=%d\n", fontptr->name, pxlfp, sizeof(struct font_entry )); #endif *************** *** 1994,1999 pfontptr = fontptr; /* make previous = current font */ fontptr->font_file_id = pxlfp; /* set file identifier */ pixel_files[current].use_count++; /* update reference count */ } --- 2094,2102 ----- pfontptr = fontptr; /* make previous = current font */ fontptr->font_file_id = pxlfp; /* set file identifier */ pixel_files[current].use_count++; /* update reference count */ + #ifndef USEPXL + gfin = pxlfp; + #endif } *************** *** 2006,2013 long x; /* in DVI units */ long conv; /* conversion factor */ { - /* return((long)((((double)x + (double)(conv >> 1)) / (double)conv) - + 0.5)); */ return((x + conv) / conv); } --- 2109,2114 ----- long x; /* in DVI units */ long conv; /* conversion factor */ { return((x + conv) / conv); } *************** *** 2022,2028 { long t; unsigned short i; ! char n[STRSIZE]; struct font_entry *tfontptr; /* temporary font_entry pointer */ struct char_entry *tcharptr; /* temporary char_entry pointer */ static int plusid = 1; --- 2123,2130 ----- { long t; unsigned short i; ! char nname[STRSIZE]; ! int nmag; struct font_entry *tfontptr; /* temporary font_entry pointer */ struct char_entry *tcharptr; /* temporary char_entry pointer */ static int plusid = 1; *************** *** 2029,2035 bool font_found = FALSE; #ifdef DEBUG if (Debug) ! printf("Mallocating %d Bytes)...\n", sizeof(struct font_entry )); #endif --- 2131,2137 ----- bool font_found = FALSE; #ifdef DEBUG if (Debug) ! fprintf(stderr,"Mallocating %d Bytes)...\n", sizeof(struct font_entry )); #endif *************** *** 2049,2056 tfontptr->a = (int) NoSignExtend(dvifp, 1); /* length for font name */ tfontptr->l = (int) NoSignExtend(dvifp, 1); /* device length */ ! GetBytes(dvifp, n, tfontptr->a + tfontptr->l); ! n[tfontptr->a+tfontptr->l] = '\0'; /* tfontptr->font_space = tfontptr->s/6;*/ /* never used */ tfontptr->font_mag = (long)(( --- 2151,2158 ----- tfontptr->a = (int) NoSignExtend(dvifp, 1); /* length for font name */ tfontptr->l = (int) NoSignExtend(dvifp, 1); /* device length */ ! GetBytes(dvifp, tfontptr->n, tfontptr->a + tfontptr->l); ! tfontptr->n[tfontptr->a+tfontptr->l] = '\0'; /* tfontptr->font_space = tfontptr->s/6;*/ /* never used */ tfontptr->font_mag = (long)(( *************** *** 2056,2061 tfontptr->font_mag = (long)(( ActualFactor((long)(1000.0*tfontptr->s/(double)tfontptr->d+0.5)) * ActualFactor(mag) * RESOLUTION * 5.0 ) + 0.5); /* --- 2158,2164 ----- tfontptr->font_mag = (long)(( ActualFactor((long)(1000.0*tfontptr->s/(double)tfontptr->d+0.5)) * ActualFactor(mag) + #ifdef USEPXL * RESOLUTION * 5.0 #else * RESOLUTION *************** *** 2057,2062 ActualFactor((long)(1000.0*tfontptr->s/(double)tfontptr->d+0.5)) * ActualFactor(mag) * RESOLUTION * 5.0 ) + 0.5); /* printf("[%ld]=%lf * %lf * %lf + 0.5 = %ld\n", --- 2160,2168 ----- * ActualFactor(mag) #ifdef USEPXL * RESOLUTION * 5.0 + #else + * RESOLUTION + #endif ) + 0.5); /* printf("[%ld]=%lf * %lf * %lf + 0.5 = %ld\n", *************** *** 2067,2082 tfontptr->font_mag ); */ ! /* ! tfontptr->font_mag = ! (long)((ActualFactor((long)(((double)tfontptr->s ! /(double)tfontptr->d) ! *1000.0 )) ! *ActualFactor(mag) * ! (double)RESOLUTION * 5.0) + 0.5); ! */ ! /* *1000.0 + 0.5)) */ ! if (!(font_found = findfile(PXLpath, n, tfontptr->font_mag, tfontptr->name))) { Warning(tfontptr->name); /* contains error messsage */ --- 2173,2179 ----- tfontptr->font_mag ); */ ! #ifdef unix if (!(font_found = findfile(&PXLpath, 1, "", tfontptr->n, tfontptr->font_mag, tfontptr->name, nname, &nmag))) { *************** *** 2078,2084 /* *1000.0 + 0.5)) */ if (!(font_found = ! findfile(PXLpath, n, tfontptr->font_mag, tfontptr->name))) { Warning(tfontptr->name); /* contains error messsage */ tfontptr->font_file_id = NO_FILE; } --- 2175,2187 ----- #ifdef unix if (!(font_found = ! findfile(&PXLpath, 1, "", tfontptr->n, tfontptr->font_mag, ! tfontptr->name, nname, &nmag))) { ! Warning("no font %s.d",tfontptr->n, mag); ! } ! #else ! if (!(font_found = ! findfile(PXLpath, tfontptr->n, tfontptr->fontmag, tfontptr->name))) { Warning(tfontptr->name); /* contains error messsage */ tfontptr->font_file_id = NO_FILE; } *************** *** 2082,2087 Warning(tfontptr->name); /* contains error messsage */ tfontptr->font_file_id = NO_FILE; } else if (!( (G_noverbatim) || (G_quiet) ) ) printf("%d: using font <%s>\n", --- 2185,2191 ----- Warning(tfontptr->name); /* contains error messsage */ tfontptr->font_file_id = NO_FILE; } + #endif else if (!( (G_noverbatim) || (G_quiet) ) ) fprintf(stderr,"%d: using font <%s>\n", *************** *** 2084,2090 } else if (!( (G_noverbatim) || (G_quiet) ) ) ! printf("%d: using font <%s>\n", plusid,tfontptr->name); /* sprintf(tfontptr->psname,"%s.%ld.%d", --- 2188,2194 ----- #endif else if (!( (G_noverbatim) || (G_quiet) ) ) ! fprintf(stderr,"%d: using font <%s>\n", plusid,tfontptr->name); /* sprintf(tfontptr->psname,"%s.%ld.%d", *************** *** 2103,2108 else pxlfp = NO_FILE; } if ( pxlfp == NO_FILE ) { /* allow missing pxl files */ tfontptr->magnification = 0; tfontptr->designsize = 0; --- 2207,2213 ----- else pxlfp = NO_FILE; } + #ifdef USEPXL if ( pxlfp == NO_FILE ) { /* allow missing pxl files */ tfontptr->magnification = 0; tfontptr->designsize = 0; *************** *** 2106,2112 if ( pxlfp == NO_FILE ) { /* allow missing pxl files */ tfontptr->magnification = 0; tfontptr->designsize = 0; ! for (i = FIRSTPXLCHAR; i <= LASTPXLCHAR; i++) { tcharptr = &(tfontptr->ch[i]); tcharptr->width = 0; tcharptr->height = 0; --- 2211,2220 ----- if ( pxlfp == NO_FILE ) { /* allow missing pxl files */ tfontptr->magnification = 0; tfontptr->designsize = 0; ! for (i = FIRSTFNTCHAR; i <= LASTFNTCHAR; i++) { ! #else ! for (i = FIRSTFNTCHAR; i <= LASTFNTCHAR; i++) { ! #endif tcharptr = &(tfontptr->ch[i]); #ifdef USEPXL tcharptr->width = 0; *************** *** 2108,2113 tfontptr->designsize = 0; for (i = FIRSTPXLCHAR; i <= LASTPXLCHAR; i++) { tcharptr = &(tfontptr->ch[i]); tcharptr->width = 0; tcharptr->height = 0; tcharptr->xOffset = 0; --- 2216,2222 ----- for (i = FIRSTFNTCHAR; i <= LASTFNTCHAR; i++) { #endif tcharptr = &(tfontptr->ch[i]); + #ifdef USEPXL tcharptr->width = 0; tcharptr->height = 0; tcharptr->xOffset = 0; *************** *** 2112,2117 tcharptr->height = 0; tcharptr->xOffset = 0; tcharptr->yOffset = 0; tcharptr->where.isloaded = FALSE; tcharptr->where.address.fileOffset = NONEXISTANT; tcharptr->tfmw = 0; --- 2221,2227 ----- tcharptr->height = 0; tcharptr->xOffset = 0; tcharptr->yOffset = 0; + #endif tcharptr->where.isloaded = FALSE; tcharptr->where.address.fileOffset = NONEXISTANT; tcharptr->tfmw = 0; *************** *** 2116,2121 tcharptr->where.address.fileOffset = NONEXISTANT; tcharptr->tfmw = 0; } return; } t = (long) NoSignExtend(pxlfp, 1); --- 2226,2232 ----- tcharptr->where.address.fileOffset = NONEXISTANT; tcharptr->tfmw = 0; } + #ifdef USEPXL return; } t = (long) NoSignExtend(pxlfp, 1); *************** *** 2159,2165 else fseek(pxlfp, (long) NoSignExtend(pxlfp, 4) , 0); ! for (i = FIRSTPXLCHAR; i <= LASTPXLCHAR; i++) { tcharptr = &(tfontptr->ch[i]); tcharptr->width = (unsigned short) NoSignExtend(pxlfp, 2); --- 2270,2276 ----- else fseek(pxlfp, (long) NoSignExtend(pxlfp, 4) , 0); ! for (i = FIRSTFNTCHAR; i <= LASTFNTCHAR; i++) { tcharptr = &(tfontptr->ch[i]); tcharptr->width = (unsigned short) NoSignExtend(pxlfp, 2); *************** *** 2194,2200 long hppp, vppp, pkloc, packet_length, temp; int car, ii; ! for (i = FIRSTPXLCHAR; i <= LASTPXLCHAR; i++) { tcharptr = &(tfontptr->ch[i]); tcharptr->width = 0; tcharptr->height = 0; --- 2305,2311 ----- long hppp, vppp, pkloc, packet_length, temp; int car, ii; ! for (i = FIRSTFNTCHAR; i <= LASTFNTCHAR; i++) { tcharptr = &(tfontptr->ch[i]); tcharptr->width = 0; tcharptr->height = 0; *************** *** 2212,2218 1); #ifdef DEBUG if (Debug) ! fprintf(stdout, "%c", flag_byte ) ; #endif } #ifdef DEBUG --- 2323,2329 ----- 1); #ifdef DEBUG if (Debug) ! fprintf(stderr, "%c", flag_byte ) ; #endif } #ifdef DEBUG *************** *** 2217,2223 } #ifdef DEBUG if (Debug) ! fprintf(stdout, "\n"); #endif pkloc = 3 + (int)temp_byte; --- 2328,2334 ----- } #ifdef DEBUG if (Debug) ! fprintf(stderr, "\n"); #endif pkloc = 3 + (int)temp_byte; *************** *** 2246,2252 "\7\7\7 This PK-Packet type is NOT IMPLEMENTED!\n"); } else if (flag_byte & 4) { ! /*fprintf(stdout,"Read extended short character preamble\n");*/ packet_length = ((long) flag_byte & 3) * 65536l + --- 2357,2363 ----- "\7\7\7 This PK-Packet type is NOT IMPLEMENTED!\n"); } else if (flag_byte & 4) { ! /*fprintf(stderr,"Read extended short character preamble\n");*/ packet_length = ((long) flag_byte & 3) * 65536l + *************** *** 2276,2282 (short) SignExtend(pxlfp, 2); tcharptr ->where.isloaded = FALSE; } else { ! /* fprintf(stdout,"<Read short character preamble@>\n");*/ packet_length = ((long)flag_byte & 3) * 256 + NoSignExtend(pxlfp, 1) ; --- 2387,2393 ----- (short) SignExtend(pxlfp, 2); tcharptr ->where.isloaded = FALSE; } else { ! /* fprintf(stderr,"<Read short character preamble@>\n");*/ packet_length = ((long)flag_byte & 3) * 256 + NoSignExtend(pxlfp, 1) ; *************** *** 2321,2327 tcharptr->flag_byte = flag_byte; fseek(pxlfp, (long) pkloc, 0); ! /*fprintf(stdout,"new pkloc is %ld\n",pkloc);*/ flag_byte = skip_specials(&pkloc); } /* end of while */ --- 2432,2438 ----- tcharptr->flag_byte = flag_byte; fseek(pxlfp, (long) pkloc, 0); ! /*fprintf(stderr,"new pkloc is %ld\n",pkloc);*/ flag_byte = skip_specials(&pkloc); } /* end of while */ *************** *** 2326,2332 } /* end of while */ ! /*****************************************************************************/ /*if (tcharptr->charsize==LARGE_SIZE) */ /* printf("%d:\t <%c> w=%d h=%d xO=%d yO=%d tfmw=%ld cw=%ld %d\n", */ --- 2437,2461 ----- } /* end of while */ ! #else ! if ( pxlfp == NO_FILE ) /* allow missing pxl files */ ! return; ! ! gfin = pxlfp; ! seekpost(); ! readpost(); ! if ((tfontptr->c != 0) && (checksum != 0) && (tfontptr->c != checksum)) ! Warning("font = \"%s\",\n-->font checksum = %d,\n-->dvi checksum = %d", ! tfontptr->name, tfontptr->c, checksum); ! ! for(i=FIRSTFNTCHAR; i<=LASTFNTCHAR; i++) { ! if (char_exists[i]) { ! tcharptr = &(tfontptr->ch[i]); ! tcharptr->tfmw = ((float)tfm_wd[i]*(float)tfontptr->s) / ! (float)(1<<20); ! tcharptr->where.address.fileOffset = char_pointer[i]; ! } ! #endif /*****************************************************************************/ /*if (tcharptr->charsize==LARGE_SIZE) */ /* printf("%d:\t <%c> w=%d h=%d xO=%d yO=%d tfmw=%ld cw=%ld %d\n", */ *************** *** 2355,2361 case 242: case 243 : { ! /*fprintf(stdout,"flagbyte = %d\n",(int)flag_byte);*/ i = 0 ; for (j = 240; j <= (long)flag_byte; j++) { --- 2484,2490 ----- case 242: case 243 : { ! /*fprintf(stderr,"flagbyte = %d\n",(int)flag_byte);*/ i = 0 ; for (j = 240; j <= (long)flag_byte; j++) { *************** *** 2416,2422 Fatal ("POST missing at head of postamble"); #ifdef DEBUG if (Debug) ! printf("got POST command\n"); #endif ppagep = NoSignExtend(dvifp, 4); num = NoSignExtend(dvifp, 4); --- 2545,2551 ----- Fatal ("POST missing at head of postamble"); #ifdef DEBUG if (Debug) ! fprintf(stderr,"got POST command\n"); #endif ppagep = NoSignExtend(dvifp, 4); num = NoSignExtend(dvifp, 4); *************** *** 2437,2443 /* the DVI file */ #ifdef DEBUG if (Debug) ! printf("now reading font defs"); #endif if (load) GetFontDef (); --- 2566,2572 ----- /* the DVI file */ #ifdef DEBUG if (Debug) ! fprintf(stderr,"now reading font defs"); #endif if (load) GetFontDef (); *************** *** 2461,2467 ptr->where.isloaded = TRUE; return; } ! OpenFontFile(); fseek(pxlfp, ptr->where.address.fileOffset, 0); --- 2590,2596 ----- ptr->where.isloaded = TRUE; return; } ! OpenFontFile(); #ifdef DEBUG *************** *** 2463,2468 } OpenFontFile(); fseek(pxlfp, ptr->where.address.fileOffset, 0); /***************************************************/ --- 2592,2605 ----- } OpenFontFile(); + + #ifdef DEBUG + if (Debug) + fprintf(stderr, "LoadAChar: <%c> from file at pos %ld\n", + (char)c,ptr->where.address.fileOffset); + #endif + + #ifdef USEPXL fseek(pxlfp, ptr->where.address.fileOffset, 0); if (fontptr->id == pk89) { *************** *** 2465,2475 OpenFontFile(); fseek(pxlfp, ptr->where.address.fileOffset, 0); - /***************************************************/ - /*printf("LoadAChar: <%c> from file at pos %ld\n", */ - /* (char)c,ptr->where.address.fileOffset); */ - /***************************************************/ - if (fontptr->id == pk89) { #ifdef PARANOIA unsigned char temp; --- 2602,2607 ----- #ifdef USEPXL fseek(pxlfp, ptr->where.address.fileOffset, 0); if (fontptr->id == pk89) { #ifdef PARANOIA unsigned char temp; *************** *** 2474,2480 #ifdef PARANOIA unsigned char temp; temp = (unsigned short) NoSignExtend(pxlfp, 1); ! if ((int)ptr->flag_byte != (int)temp) ) { Fatal("oh boy! old flag %d, new flag %d\n", --- 2606,2612 ----- #ifdef PARANOIA unsigned char temp; temp = (unsigned short) NoSignExtend(pxlfp, 1); ! if ((int)ptr->flag_byte != (int)temp) ) { Fatal("oh boy! old flag %d, new flag %d\n", *************** *** 2490,2496 * 256 + NoSignExtend(pxlfp, 1) - 8; fseek(pxlfp, ptr->where.address.fileOffset + 10, 0); } ! } else if (fontptr->id == id1002) bytes = ((( (long)ptr->width + 7) >> 3) * (long) ptr->height); else if (fontptr->id == id1001) bytes = 4 * (((long)ptr->width + 31) >> 5) * (long)ptr->height; --- 2622,2628 ----- * 256 + NoSignExtend(pxlfp, 1) - 8; fseek(pxlfp, ptr->where.address.fileOffset + 10, 0); } ! } else if (fontptr->id == id1002) bytes = ((( (long)ptr->width + 7) >> 3) * (long) ptr->height); else if (fontptr->id == id1001) bytes = 4 * (((long)ptr->width + 31) >> 5) * (long)ptr->height; *************** *** 2494,2499 bytes = ((( (long)ptr->width + 7) >> 3) * (long) ptr->height); else if (fontptr->id == id1001) bytes = 4 * (((long)ptr->width + 31) >> 5) * (long)ptr->height; if (bytes > HUGE_CHAR_PATTERN) { /* do NOT load Huge characters */ --- 2626,2632 ----- bytes = ((( (long)ptr->width + 7) >> 3) * (long) ptr->height); else if (fontptr->id == id1001) bytes = 4 * (((long)ptr->width + 31) >> 5) * (long)ptr->height; + if (bytes > HUGE_CHAR_PATTERN) { /* do NOT load Huge characters */ qfprintf(stderr,"Huge Character <%c> (%ld Bytes)\n", (char)c, bytes); *************** *** 2495,2501 else if (fontptr->id == id1001) bytes = 4 * (((long)ptr->width + 31) >> 5) * (long)ptr->height; - if (bytes > HUGE_CHAR_PATTERN) { /* do NOT load Huge characters */ qprintf("Huge Character <%c> (%ld Bytes)\n", (char)c, bytes); ptr->charsize = HUGE_SIZE; --- 2628,2633 ----- bytes = 4 * (((long)ptr->width + 31) >> 5) * (long)ptr->height; if (bytes > HUGE_CHAR_PATTERN) { /* do NOT load Huge characters */ qfprintf(stderr,"Huge Character <%c> (%ld Bytes)\n", (char)c, bytes); ptr->charsize = HUGE_SIZE; *************** *** 2497,2503 if (bytes > HUGE_CHAR_PATTERN) { /* do NOT load Huge characters */ ! qprintf("Huge Character <%c> (%ld Bytes)\n", (char)c, bytes); ptr->charsize = HUGE_SIZE; ptr->where.isloaded = FALSE; } else { --- 2629,2635 ----- if (bytes > HUGE_CHAR_PATTERN) { /* do NOT load Huge characters */ ! qfprintf(stderr,"Huge Character <%c> (%ld Bytes)\n", (char)c, bytes); ptr->charsize = HUGE_SIZE; ptr->where.isloaded = FALSE; } else { *************** *** 2505,2515 Fatal("Unable to allocate %ld bytes for char <%c>\n", bytes, (char)c); #ifdef DEBUG ! /* if (Debug) */ ! printf( ! "Allocating Char <%c>, FileOffset=%lX, Bytes=%ld (%d) <%d>\n", ! (char) c, ptr->where.address.fileOffset, bytes, ! (int)bytes, (unsigned int)bytes); #endif allocated_storage += bytes; fread(pr, 1, (int) bytes , pxlfp); --- 2637,2647 ----- Fatal("Unable to allocate %ld bytes for char <%c>\n", bytes, (char)c); #ifdef DEBUG ! if (Debug) ! fprintf(stderr, ! "Allocating Char <%c>, FileOffset=%lX, Bytes=%ld (%d) <%d>\n", ! (char) c, ptr->where.address.fileOffset, bytes, ! (int)bytes, (unsigned int)bytes); #endif allocated_storage += bytes; fread(pr, 1, (int) bytes , pxlfp); *************** *** 2515,2521 fread(pr, 1, (int) bytes , pxlfp); ptr->where.address.pixptr = pr; } ! ptr->where.isloaded = TRUE; if ((ptr->charsize != SMALL_SIZE) #ifdef LJ --- 2647,2659 ----- fread(pr, 1, (int) bytes , pxlfp); ptr->where.address.pixptr = pr; } ! #else ! fseek(gfin, ptr->where.address.fileOffset, 0); ! gettochar(); ! readbits(); ! if (num_bytes > HUGE_CHAR_PATTERN) ! ptr->charsize = HUGE_SIZE; ! #endif ptr->where.isloaded = TRUE; if ((ptr->charsize != SMALL_SIZE) #ifdef LJ *************** *** 2524,2529 ) return; EmitChar(c, ptr); /* we should really free the space used by the PXL data after this point, but it is not large, and besides, we may want to be more clever in the future, about sending bitmaps. So keep --- 2662,2668 ----- ) return; EmitChar(c, ptr); + #ifdef USEPXL /* we should really free the space used by the PXL data after this point, but it is not large, and besides, we may want to be more clever in the future, about sending bitmaps. So keep *************** *** 2528,2533 point, but it is not large, and besides, we may want to be more clever in the future, about sending bitmaps. So keep the data around */ } /*-->SetChar*/ /**********************************************************************/ --- 2667,2673 ----- point, but it is not large, and besides, we may want to be more clever in the future, about sending bitmaps. So keep the data around */ + #endif } /*-->SetChar*/ /**********************************************************************/ *************** *** 2552,2558 if (do_posn) { #ifdef IBM3812 if (CharStringPos>0) { ! printf("!!!! That should never happen!!!\n"); CharStringOut; } #endif --- 2692,2698 ----- if (do_posn) { #ifdef IBM3812 if (CharStringPos>0) { ! fprintf(stderr,"!!!! That should never happen!!!\n"); CharStringOut; } #endif *************** *** 2586,2591 if (!do_posn) SetPosn(h, v); sign = '+'; tmp = (int) -ptr->yOffset; if (tmp < 0) sign = '-', tmp = -tmp; --- 2726,2732 ----- if (!do_posn) SetPosn(h, v); sign = '+'; + #ifdef USEPXL tmp = (int) -ptr->yOffset; #else tmp = (int) num_rows-y_offset; *************** *** 2587,2592 SetPosn(h, v); sign = '+'; tmp = (int) -ptr->yOffset; if (tmp < 0) sign = '-', tmp = -tmp; EMIT(outfp, "\033*p%c%dY", sign, tmp); --- 2728,2736 ----- sign = '+'; #ifdef USEPXL tmp = (int) -ptr->yOffset; + #else + tmp = (int) num_rows-y_offset; + #endif if (tmp < 0) sign = '-', tmp = -tmp; EMIT(outfp, "\033*p%c%dY", sign, tmp); *************** *** 2591,2596 sign = '-', tmp = -tmp; EMIT(outfp, "\033*p%c%dY", sign, tmp); sign = '+'; tmp = (int) -ptr->xOffset; if (tmp < 0) sign = '-', tmp = -tmp; --- 2735,2741 ----- sign = '-', tmp = -tmp; EMIT(outfp, "\033*p%c%dY", sign, tmp); sign = '+'; + #ifdef USEPXL tmp = (int) -ptr->xOffset; #else tmp = (int) -x_offset; *************** *** 2592,2597 EMIT(outfp, "\033*p%c%dY", sign, tmp); sign = '+'; tmp = (int) -ptr->xOffset; if (tmp < 0) sign = '-', tmp = -tmp; EMIT(outfp, "\033*p%c%dX", sign, tmp); --- 2737,2745 ----- sign = '+'; #ifdef USEPXL tmp = (int) -ptr->xOffset; + #else + tmp = (int) -x_offset; + #endif if (tmp < 0) sign = '-', tmp = -tmp; EMIT(outfp, "\033*p%c%dX", sign, tmp); *************** *** 2603,2608 pos_after = TRUE; } else { #ifdef IBM3812 if ( ptr->yyOffset || (!in_string) ) { CharStringOut; MoveVert(ptr->yyOffset); --- 2751,2757 ----- pos_after = TRUE; } else { #ifdef IBM3812 + #ifdef USEPXL if ( ptr->yyOffset || (!in_string) ) { CharStringOut; MoveVert(ptr->yyOffset); *************** *** 2610,2615 PMPout(2, PMPformat); MoveVert((int)-(ptr->yyOffset)); } else { if (CharStringPos==CHARSTRINGMAX) CharStringOut; --- 2759,2765 ----- PMPout(2, PMPformat); MoveVert((int)-(ptr->yyOffset)); } else { + #endif if (CharStringPos==CHARSTRINGMAX) CharStringOut; *************** *** 2615,2620 CharString[CharStringPos]=VisChar((char)c); CharStringPos++; } #endif #ifdef LJ --- 2765,2771 ----- CharString[CharStringPos]=VisChar((char)c); CharStringPos++; + #ifdef USEPXL } #endif #endif *************** *** 2617,2622 CharStringPos++; } #endif #ifdef LJ if (ptr->yyOffset) { EMIT(outfp, "\033*p+%hdY", ptr->yyOffset); --- 2768,2774 ----- #ifdef USEPXL } #endif + #endif #ifdef LJ #ifdef USEPXL if (ptr->yyOffset) { *************** *** 2618,2623 } #endif #ifdef LJ if (ptr->yyOffset) { EMIT(outfp, "\033*p+%hdY", ptr->yyOffset); EMITC((char) VisChar((char)c)); --- 2770,2776 ----- #endif #endif #ifdef LJ + #ifdef USEPXL if (ptr->yyOffset) { EMIT(outfp, "\033*p+%hdY", ptr->yyOffset); EMITC((char) VisChar((char)c)); *************** *** 2623,2628 EMITC((char) VisChar((char)c)); EMIT(outfp, "\033*p-%hdY", ptr->yyOffset); } else EMITC((char) VisChar((char)c)); #endif } --- 2776,2782 ----- EMITC((char) VisChar((char)c)); EMIT(outfp, "\033*p-%hdY", ptr->yyOffset); } else + #endif EMITC((char) VisChar((char)c)); #endif } *************** *** 2676,2682 ; #ifdef LJ if (++fonts_used_on_this_page > MAX_FONTS_PER_PAGE) { ! qprintf("this is the %d. font on this page!", fonts_used_on_this_page); qprintf(" (max = %d) rastering characters!\n", MAX_FONTS_PER_PAGE); --- 2830,2836 ----- ; #ifdef LJ if (++fonts_used_on_this_page > MAX_FONTS_PER_PAGE) { ! qfprintf(stderr,"this is the %d. font on this page!", fonts_used_on_this_page); qfprintf(stderr," (max = %d) rastering characters!\n", MAX_FONTS_PER_PAGE); *************** *** 2678,2684 if (++fonts_used_on_this_page > MAX_FONTS_PER_PAGE) { qprintf("this is the %d. font on this page!", fonts_used_on_this_page); ! qprintf(" (max = %d) rastering characters!\n", MAX_FONTS_PER_PAGE); rasterfont[fontptr->plusid] = TRUE; } --- 2832,2838 ----- if (++fonts_used_on_this_page > MAX_FONTS_PER_PAGE) { qfprintf(stderr,"this is the %d. font on this page!", fonts_used_on_this_page); ! qfprintf(stderr," (max = %d) rastering characters!\n", MAX_FONTS_PER_PAGE); rasterfont[fontptr->plusid] = TRUE; } *************** *** 2803,2809 #ifdef DEBUG if (Debug) ! printf("Rule xx=%ld, yy=%ld\n", xx, yy); #endif #ifdef IBM3812 --- 2957,2963 ----- #ifdef DEBUG if (Debug) ! fprintf(stderr,"Rule xx=%ld, yy=%ld\n", xx, yy); #endif #ifdef IBM3812 *************** *** 2903,2909 short c; register unsigned short i; ! /* printf("SetString\n"); */ for (i = 0, c = firstch; c >= SETC_000 && c <= SETC_127; i++) { SetChar((long)c, c, PassNo, (bool)(i==0),TRUE); c = (short) NoSignExtend(dvifp, 1); --- 3057,3066 ----- short c; register unsigned short i; ! #ifdef DEBUG ! if (Debug) ! fprintf(stderr, "SetString "); ! #endif for (i = 0, c = firstch; c >= SETC_000 && c <= SETC_127; i++) { #ifdef DEBUG if (Debug) *************** *** 2905,2910 /* printf("SetString\n"); */ for (i = 0, c = firstch; c >= SETC_000 && c <= SETC_127; i++) { SetChar((long)c, c, PassNo, (bool)(i==0),TRUE); c = (short) NoSignExtend(dvifp, 1); } --- 3062,3071 ----- fprintf(stderr, "SetString "); #endif for (i = 0, c = firstch; c >= SETC_000 && c <= SETC_127; i++) { + #ifdef DEBUG + if (Debug) + fprintf (stderr, "%d ", c); + #endif SetChar((long)c, c, PassNo, (bool)(i==0),TRUE); c = (short) NoSignExtend(dvifp, 1); } *************** *** 2912,2918 #ifdef IBM3812 CharStringOut; #endif ! /* printf("...SetString\n");*/ } --- 3073,3082 ----- #ifdef IBM3812 CharStringOut; #endif ! #ifdef DEBUG ! if (Debug) ! fprintf(stderr, "...SetString\n"); ! #endif } *************** *** 2942,2948 x >>= 32 - 8 * n1; /* sign extend */ #ifdef DEBUG if (Debug) ! printf("\tSignExtend(fp,%d)=%X\n", n1, x); #endif return(x); } --- 3106,3112 ----- x >>= 32 - 8 * n1; /* sign extend */ #ifdef DEBUG if (Debug) ! fprintf(stderr,"\tSignExtend(fp,%d)=%X\n", n1, x); #endif return(x); } *************** *** 2981,2989 if ( G_nowarn || G_quiet ) return; ! printf("warning : "); ! printf(fmt, a, b, c, d); ! printf("\n"); } --- 3145,3153 ----- if ( G_nowarn || G_quiet ) return; ! fprintf(stderr, "warning : "); ! fprintf(stderr, fmt, a, b, c, d); ! fprintf(stderr, "\n"); } *************** *** 3133,3138 #endif bool getbit (); unsigned char getnyb (); long pk_packed_num (); --- 3297,3303 ----- #endif + #ifdef USEPXL bool getbit (); unsigned char getnyb (); long pk_packed_num (); *************** *** 3406,3411 return (pk_packed_num()) ; /* tail end recursion !! */ } } /*-->FormFeed*/ --- 3571,3577 ----- return (pk_packed_num()) ; /* tail end recursion !! */ } } + #endif /*-->FormFeed*/ /**********************************************************************/ *************** *** 3407,3413 } } - /*-->FormFeed*/ /**********************************************************************/ /***************************** FormFeed ******************************/ --- 3573,3578 ----- } #endif /*-->FormFeed*/ /**********************************************************************/ /***************************** FormFeed ******************************/ *************** *** 3436,3438 } --- 3601,3610 ----- } + #ifndef USEPXL + void bad_gf(n) + int n; + { + Fatal("Bad gf file, case %d\n",n); /* See gf.c */ + } + #endif