[cl-pdf-devel] patch for unicode PDFs on clisp

Pixel // pinterface pinterface at gmail.com
Sat May 1 02:07:18 UTC 2010


There are three patches attached.

clisp-unicode.patch begins support for producing unicode PDFs on clisp.  It
is pretty uninteresting, other than making me wonder if cl-pdf should just
define an ascii-char-p function (or whatever an appropriate name for it
would be), instead of duplicating reader conditionals so many times.

clisp-encoding.patch limits the effects of setting *default-file-encoding*
to within cl-pdf itself, to avoid causing surprises for users with
alternately-encoded source files.  Or, copying from the patchfile itself:
;; Justification: *default-file-encoding* affects not only cl-pdf, but every
;; lisp file loaded or compiled after this, which causes encoding issues for
;; any bit of user code assuming the environment is set up for, e.g., utf-8.
;; cl-pdf should avoid changing defaults out from under its users if
possible.

clisp-encoding-2.patch does the same as clisp-encoding.patch, but for
cl-typesetting, with the justification that setting it in both cl-pdf and
cl-typesetting is redundant.

Enjoy!  Or...don't?

-pix
Who is much happier having figured out his encoding issues.


begin 666 clisp-encoding.patch
M.SL[.R!0871C:&5S('1O(&-L+7!D9 at T*.SL at 2G5S=&EF:6-A=&EO;CH@*F1E
M9F%U;'0M9FEL92UE;F-O9&EN9RH at 869F96-T<R!N;W0@;VYL>2!C;"UP9&8L
M(&)U="!E=F5R>0T*.SL@;&ES<"!F:6QE(&QO861E9"!O<B!C;VUP:6QE9"!A
M9G1E<B!T:&ES+"!W:&EC:"!C875S97, at 96YC;V1I;F<@:7-S=65S(&9O<@T*
M.SL at 86YY(&)I="!O9B!U<V5R(&-O9&4 at 87-S=6UI;F<@=&AE(&5N=FER;VYM
M96YT(&ES('-E="!U<"!F;W(L(&4N9RXL('5T9BTX+ at T*.SL at 8VPM<&1F('-H
M;W5L9"!A=F]I9"!C:&%N9VEN9R!D969A=6QT<R!O=70 at 9G)O;2!U;F1E<B!I
M=',@=7-E<G,@:68@<&]S<VEB;&4N#0I);F1E>#H at 8V]N9FEG+FQI<W -"CT]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T-"BTM+2!C;VYF:6<N;&ES< DH<F5V:7-I
M;VX@,3<X*0T**RLK(&-O;F9I9RYL:7-P"2AW;W)K:6YG(&-O<'DI#0I 0" M
M,3,L,3$@*S$S+#@@0$ -"B @(",K*&%N9"!A;&QE9W)O(&US=VEN9&]W<RD@
M.F]C=&5T<PT*(" @(RLH86YD(&%L;&5G<F\@=6YI>"D at .F1E9F%U;'0-"B @
M(",K;&ES<'=O<FMS("<H.FQA=&EN+3$@.F5O;"US='EL92 Z;&8I#0HM(" C
M*V-L:7-P(#IU;FEX*0T**R @(RMC;&ES<" H97AT.FUA:V4M96YC;V1I;F<@
M.F-H87)S970 at 8VAA<G-E=#II<V\M.#@U.2TQ(#IL:6YE+71E<FUI;F%T;W(@
M.G5N:7 at I*0T*( T*+2,K8VQI<W -"BTH<V5T9B J9&5F875L="UF:6QE+65N
M8V]D:6YG*B @*&5X=#IM86ME+65N8V]D:6YG(#IC:&%R<V5T(&-H87)S970Z
M:7-O+3 at X-3DM,2DI#0HM#0H at .SL@36%P(&5X8V5P=&EO;F%L(&)U="!U<V5F
M=6P at 8VAA<F%C=&5R<R!T;R!T:&4 at 6S M,C4U72!R86YG92!F;W(@82!S:6YG
M;&4M8GET92!E;F-O9&EN9PT*(#L[($%D9"!M;W)E(&AE<F4N+BX-"B H9&5F
M<&%R86UE=&5R("IC:&%R+7-I;F=L92UB>71E+6-O9&5S*@T*26YD97 at Z(&-L
M+7!D9BYA<V0*/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/0HM+2T at 8VPM<&1F+F%S
M9 DH<F5V:7-I;VX@,3<X*0HK*RL at 8VPM<&1F+F%S9 DH=V]R:VEN9R!C;W!Y
M*0I 0" M-C L-R K-C L,3, at 0$ *( D@(" @(" @*#IF:6QE(")X,3$M8V]L
M;W)S(B Z9&5P96YD<RUO;B H(F1E9G!A8VMA9V4B*2D*( D@(" @(" @*#IF
M:6QE(")P9&8M8F%S92(@.F1E<&5N9',M;VX@*")P9&8B(")X,3$M8V]L;W)S
M(BDI"B )(" @(" @("@Z9FEL92 B<&YG(B Z9&5P96YD<RUO;B H(G!D9BUB
M87-E(BDI"BT)(" @(" @("@Z9FEL92 B<&1F+6=E;VTB(#ID97!E;F1S+6]N
M("@B<&1F+6)A<V4B*2D**PD@(" @(" @*#IF:6QE(")P9&8M9V5O;2(@.F1E
M<&5N9',M;VX@*")P9&8M8F%S92(I("X**R @(" @(" @(" @(" @(" C*V-L
M:7-P("@Z<&5R9F]R;2 H8V]M<&EL92UO<" N(",Q/2 at Z87)O=6YD("AO<"!C
M*0HK(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @*&5X=#IL
M971F("@H8W5S=&]M.BID969A=6QT+69I;&4M96YC;V1I;F<J(&-H87)S970Z
M:7-O+3 at X-3DM,2DI"BL@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @("AC86QL+6YE>'0M;65T:&]D*2DI*0HK(" @(" @(" @(" @(" @
M(" @(" @(" @(#IP97)F;W)M("AL;V%D+6]P("X@(S$C*0HK(" @(" @(" @
M(" @(" @(" @(" @(" @(#IP97)F;W)M("AL;V%D+7-O=7)C92UO<" N(",Q
M(RDI"BL@(" @(" @(" @(" @(" @(RUC;&ES<"!N:6PI"B )(" @(" @("@Z
M9FEL92 B=&5X="(@.F1E<&5N9',M;VX@*")P9&8M8F%S92(I*0H@"2 @(" @
M(" H.F9I;&4@(F)A<BUC;V1E<R(@.F1E<&5N9',M;VX@*")P9&8M9V5O;2(I
M*0H@"2 @(" @(" H.F9I;&4@(F-H87)T(B Z9&5P96YD<RUO;B H(G1E>'0B
/(")P9&8M9V5O;2(I*2D*
`
end

begin 666 clisp-unicode.patch
M.SL[.R!0871C:&5S('1O(&-L+7!D9 at T*26YD97 at Z(&9O;G0N;&ES< T*/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/0T*+2TM(&9O;G0N;&ES< DH<F5V:7-I;VX@
M,3<X*0T**RLK(&9O;G0N;&ES< DH=V]R:VEN9R!C;W!Y*0T*0$ @+3DT+#@@
M*SDT+#@@0$ -"B H9&5F;65T:&]D(&=E="UC:&%R+6UE=')I8W,@*&-H87(@
M9F]N=" H96YC;V1I;F<@<VEN9VQE+6)Y=&4M96YC;V1I;F<I*0T*(" @*&%R
M968@*&-H87)A8W1E<G, at 9F]N="D-"B @(" @(" @("AI9B C*VQI<W!W;W)K
M<R H;'<Z8F%S92UC:&%R+7 @8VAA<BD@#0HM(" @(" @(" @(" @(RLH;W(@
M86QL96=R;R!S8F-L*2 H<W1A;F1A<F0M8VAA<BUP(&-H87(I#0HM(" @(" @
M(" @(" @(RTH;W(@;&ES<'=O<FMS(&%L;&5G<F\@<V)C;"D@= T**R @(" @
M(" @(" @(",K*&]R(&%L;&5G<F\@<V)C;"!C;&ES<"D@*'-T86YD87)D+6-H
M87(M<"!C:&%R*0T**R @(" @(" @(" @(",M*&]R(&QI<W!W;W)K<R!A;&QE
M9W)O('-B8VP at 8VQI<W I('0-"B @(" @(" @(" @(" H8VAA<BUC;V1E(&-H
M87(I#0H@(" @(" @(" @(" @*&-H87(M97AT97)N86PM8V]D92!C:&%R("AC
M:&%R<V5T(&5N8V]D:6YG*2DI*2D-"B -"D! ("TQ,#,L." K,3 S+#@@0$ -
M"B @("AL970@*"AC:&%R("AC;V1E+6-H87(@8V]D92DI*0T*(" @*&%R968@
M*&-H87)A8W1E<G, at 9F]N="D-"B @(" @(" @("AI9B C*VQI<W!W;W)K<R H
M;'<Z8F%S92UC:&%R+7 @8VAA<BD@#0HM(" @(" @(" @(" @(" C*RAO<B!A
M;&QE9W)O('-B8VPI("AS=&%N9&%R9"UC:&%R+7 @8VAA<BD-"BT@(" @(" @
M(" @(" @(",M*&]R(&QI<W!W;W)K<R!A;&QE9W)O('-B8VPI('0-"BL@(" @
M(" @(" @(" @(",K*&]R(&%L;&5G<F\@<V)C;"!C;&ES<"D@*'-T86YD87)D
M+6-H87(M<"!C:&%R*0T**R @(" @(" @(" @(" @(RTH;W(@;&ES<'=O<FMS
M(&%L;&5G<F\@<V)C;"!C;&ES<"D@= T*(" @(" @(" @(" @(&-O9&4-"B @
M(" @(" @(" @(" @("AC:&%R+65X=&5R;F%L+6-O9&4 at 8VAA<B H8VAA<G-E
M="!E;F-O9&EN9RDI*2DI*0T*( T*26YD97 at Z('!D9BUB87-E+FQI<W -"CT]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T-"BTM+2!P9&8M8F%S92YL:7-P"2AR979I
M<VEO;B Q-S at I#0HK*RL@<&1F+6)A<V4N;&ES< DH=V]R:VEN9R!C;W!Y*0T*
M0$ @+3$Q,"PX("LQ,3 L."! 0 T*(" @(" @(" @(" @(" @(" @.R H=W)I
M=&4M<W1R:6YG(")<7'0B("IP86=E+7-T<F5A;2HI*0T*(" @(" @(" @(" @
M(" @(" @*&]T:&5R=VES90T*(" @(" @(" @(" @(" @(" @("AW<FET92UC
M:&%R("AI9B C*VQI<W!W;W)K<R H;'<Z8F%S92UC:&%R+7 @8VAA<BD-"BT@
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(RLH;W(@86QL96=R
M;R!S8F-L*2 H<W1A;F1A<F0M8VAA<BUP(&-H87(I#0HM(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(",M*&]R(&QI<W!W;W)K<R!A;&QE9W)O
M('-B8VPI('0-"BL@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(RLH;W(@86QL96=R;R!S8F-L(&-L:7-P*2 H<W1A;F1A<F0M8VAA<BUP(&-H
M87(I#0HK(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(",M*&]R
M(&QI<W!W;W)K<R!A;&QE9W)O('-B8VP at 8VQI<W I('0-"B @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @8VAA<@T*(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" H8V]D92UC:&%R("AC:&%R+65X=&5R;F%L
M+6-O9&4 at 8VAA<B!C:&%R<V5T*2DI#0H@(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @*G!A9V4M<W1R96%M*BDI*2D-"D! ("TQ-#<L." K,30W+#@@
M0$ -"B @("AW:&5N(&5S8V%P92 H8V%S92!C:&%R#0H@(" @(" @(" @(" @
M(" @(" H*"-<*" C7"D@(UQ<*2 H=W)I=&4M8VAA<B C7%P@*G!A9V4M<W1R
M96%M*BDI*2D-"B @("AW<FET92UC:&%R("AI9B C*VQI<W!W;W)K<R H;'<Z
M8F%S92UC:&%R+7 @8VAA<BD-"BT@(" @(" @(" @(" @(" @(" C*RAO<B!A
M;&QE9W)O('-B8VPI("AS=&%N9&%R9"UC:&%R+7 @8VAA<BD-"BT@(" @(" @
M(" @(" @(" @(" C+2AO<B!L:7-P=V]R:W, at 86QL96=R;R!S8F-L*2!T#0HK
M(" @(" @(" @(" @(" @(" @(RLH;W(@86QL96=R;R!S8F-L(&-L:7-P*2 H
M<W1A;F1A<F0M8VAA<BUP(&-H87(I#0HK(" @(" @(" @(" @(" @(" @(RTH
M;W(@;&ES<'=O<FMS(&%L;&5G<F\@<V)C;"!C;&ES<"D@= T*(" @(" @(" @
M(" @(" @(" @(&-H87(-"B @(" @(" @(" @(" @(" @(" H8V]D92UC:&%R
M("AC:&%R+65X=&5R;F%L+6-O9&4 at 8VAA<B H8VAA<G-E="!E;F-O9&EN9RDI
C*2D-"B @(" @(" @(" @(" @("IP86=E+7-T<F5A;2HI#0H`
`
end

begin 666 clisp-encoding-2.patch
M.SL[.R!0871C:&5S('1O(&-L+71Y<&5S971T:6YG#0H[.R!*=7-T:69I8V%T
M:6]N.B!C;"UP9&8 at 86QR96%D>2!S971S('5P(&9I;&4M96YC;V1I;F<@9&5F
M875L=',N("!$;VEN9R!I="!I;@T*.SL at 8VPM='EP97-E='1I;F<@:7,@<F5D
M=6YD86YT+ at T*26YD97 at Z('-P96-I86QS+FQI<W -"CT]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T-"BTM+2!S<&5C:6%L<RYL:7-P"2AR979I<VEO;B Q-S at I#0HK
M*RL@<W!E8VEA;',N;&ES< DH=V]R:VEN9R!C;W!Y*0T*0$ @+30L,38@*S0L
M,3 @0$ -"B -"B H:6XM<&%C:V%G92 C.G1Y<&5S970I#0H@#0HM(RLH86YD
M(&-L:7-P('=I;C,R*0T**R,K8VQI<W -"B H<V5T<2!C=7-T;VTZ*F9L;V%T
M:6YG+7!O:6YT+6-O;G1A9VEO;BUA;G-I*B!T#0HM(" @(" @8W5S=&]M.BIW
M87)N+6]N+69L;V%T:6YG+7!O:6YT+6-O;G1A9VEO;BH@;FEL#0HM(" @(" @
M8W5S=&]M.BID969A=6QT+69I;&4M96YC;V1I;F<J("AE>'0Z96YC;V1I;F<M
M8VAA<G-E="!C:&%R<V5T.FES;RTX.#4Y+3$I*0T**R @(" @(&-U<W1O;3HJ
M=V%R;BUO;BUF;&]A=&EN9RUP;VEN="UC;VYT86=I;VXJ(&YI;"D-"B -"BTC
M*RAA;F0 at 8VQI<W @*&YO="!W:6XS,BDI#0HM*'-E='$@8W5S=&]M.BIF;&]A
M=&EN9RUP;VEN="UC;VYT86=I;VXM86YS:2H@= T*+2 @(" @(&-U<W1O;3HJ
M=V%R;BUO;BUF;&]A=&EN9RUP;VEN="UC;VYT86=I;VXJ(&YI; T*+2 @(" @
M(&-U<W1O;3HJ9&5F875L="UF:6QE+65N8V]D:6YG*B H97AT.F5N8V]D:6YG
M+6-H87)S970@(FES;RTX.#4Y+3$B*2D-"BT-"B H9&5F8V]N<W1A;G0@*VAU
M9V4M;G5M8F5R*R H=')U;F-A=&4@;6]S="UP;W-I=&EV92UF:7AN=6T@,3 I
G*0T*("AD969C;VYS=&%N=" K97!S:6QO;BL@,"XP,# Q*0T*( T*
`
end






More information about the cl-pdf-devel mailing list