From 87e8f2dc21bd6562edc5b78efc3437b6f18cea53 Mon Sep 17 00:00:00 2001 From: Matt Heffron Date: Fri, 5 Dec 2025 11:13:28 -0800 Subject: [PATCH 1/2] Display in column major order. Added alternative CharacterSets designations. Updated documentation. --- lispusers/FONTSAMPLER | 77 ++++++++++++++++++++++++++---------- lispusers/FONTSAMPLER.LCOM | Bin 5462 -> 7069 bytes lispusers/fontsampler.tedit | Bin 5306 -> 7038 bytes 3 files changed, 56 insertions(+), 21 deletions(-) diff --git a/lispusers/FONTSAMPLER b/lispusers/FONTSAMPLER index ca7925e9b..4841901dd 100644 --- a/lispusers/FONTSAMPLER +++ b/lispusers/FONTSAMPLER @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 5-Feb-2025 17:03:38" {DSK}matt>Interlisp>medley>lispusers>FONTSAMPLER.;11 9743 +(FILECREATED " 5-Dec-2025 11:09:30" {DSK}matt>Interlisp>medley>lispusers>FONTSAMPLER.;6 12333 :EDIT-BY "mth" :CHANGES-TO (FNS FontSample FontTable) - :PREVIOUS-DATE " 3-Feb-2025 20:08:40" {DSK}matt>Interlisp>medley>lispusers>FONTSAMPLER.;10 + :PREVIOUS-DATE " 4-Dec-2025 23:56:07" {DSK}matt>Interlisp>medley>lispusers>FONTSAMPLER.;5 ) @@ -21,9 +21,10 @@ (FontSample [LAMBDA (Fonts CharacterSets Printer StreamType Hexadecimal) + (* ; "Edited 5-Dec-2025 11:06 by mth") (* ; "Edited 5-Feb-2025 17:02 by mth") - (* edited%: "29-Apr-87 22:03") - (LET* [[TitleFont (FONTCREATE NIL 12 'MRR 0 (OR StreamType (PRINTERTYPE Printer] + (* ; "Edited 29-Apr-87 22:03") + (LET* [[TitleFont (FONTCREATE NIL 12 'MRR 0 (SETQ StreamType (OR StreamType (PRINTERTYPE Printer] (FontList (if (LISTP Fonts) else (CONS Fonts))) [Stream (OPENIMAGESTREAM Printer StreamType (LIST 'FONTS (CONS TitleFont FontList] @@ -31,20 +32,51 @@ (LastFont (CAR (LAST FontList))) [CharacterSets (if (LISTP CharacterSets) then CharacterSets + elseif (MEMB CharacterSets '(T :INCORE :ALL :INTERESTING)) + then CharacterSets else (LIST (OR CharacterSets 0] - (LastCharacterSet (CAR (LAST CharacterSets] + (AllCharacterSets (CONSTANT (for CS from 0 to 255 collect CS] (DSPRIGHTMARGIN (fetch (REGION WIDTH) of (DSPCLIPPINGREGION NIL Stream)) Stream) - (for Font in FontList do (for CharacterSet in CharacterSets - do (FontTable Font CharacterSet Stream (OR (NEQ Font LastFont) - (NEQ CharacterSet - LastCharacterSet - )) - TitleFont InchesToPrinterUnits Hexadecimal)) + (for Font in FontList do + (* ;; "Check for the special charset list builders") + + (LET (FontCharacterSets (SlugCharsetInfo (\GETCHARSETINFO Font + SLUGCHARSET))) + (SETQ FontCharacterSets + (SELECTQ CharacterSets + (:ALL + (* ;; "Forcibly install ALL CharacterSets.") + + (for CS in AllCharacterSets + when (\INSURECHARSETINFO Font CS) collect + CS)) + (:INTERESTING (for CS in *INTERESTING-CHARSETS* + when (\INSURECHARSETINFO Font CS) + collect CS)) + ((T :INCORE) + (for CS in AllCharacterSets + when (\GETCHARSETINFO Font CS) collect CS)) + CharacterSets)) + + (* ;; + "Exclude any CharacterSet known to reference the SlugCharsetInfo") + + (SETQ FontCharacterSets (for CS in FontCharacterSets + unless (EQ SlugCharsetInfo + (\GETCHARSETINFO Font + CS)) + collect CS)) + (for CharacterSet in FontCharacterSets + bind (LastCharacterSet _ (CAR (LAST FontCharacterSets))) + do (FontTable Font CharacterSet Stream + (OR (NEQ Font LastFont) + (NEQ CharacterSet LastCharacterSet)) + TitleFont InchesToPrinterUnits Hexadecimal))) finally (CLOSEF Stream]) (FontSampleFaked - [LAMBDA (FontAsList Printer StreamType) (* N.H.Briggs "27-Apr-87 18:12") + [LAMBDA (FontAsList Printer StreamType) (* N.H.Briggs "27-Apr-87 18:12") (LET* [[TitleFont (FONTCREATE NIL 12 'MRR 0 (OR StreamType (PRINTERTYPE Printer] (Font) [Stream (OPENIMAGESTREAM Printer StreamType (LIST 'FONTS (LIST TitleFont] @@ -53,14 +85,16 @@ (replace FONTFAMILY of Font with (CAR FontAsList)) (replace FONTSIZE of Font with (CADR FontAsList)) (replace FONTFACE of Font with (\FONTFACE (CADDR FontAsList))) - (FontTable Font '(0) Stream NIL TitleFont InchesToPrinterUnits) + (FontTable Font '(0) + Stream NIL TitleFont InchesToPrinterUnits) (CLOSEF Stream]) (FontTable [LAMBDA (Font CharacterSet Stream FormFeed TitleFont InchesToPrinterUnits Hexadecimal) + (* ; "Edited 5-Dec-2025 11:09 by mth") (* ; "Edited 5-Feb-2025 17:03 by mth") (* ; "Edited 3-Feb-2025 20:07 by mth") - (* edited%: "29-Apr-87 22:36") + (* ; "Edited 29-Apr-87 22:36") (LET* ((Family (FONTPROP Font 'FAMILY)) (Face (FONTPROP Font 'FACE)) @@ -119,10 +153,12 @@ (DSPSCALE NIL Stream) 'PAINT Stream) (CL:UNLESS UseDisplayFontBitmaps (DSPFONT Font Stream)) - (for YPosition from (TIMES 9 InchesToPrinterUnits) by (MINUS YCellSpacing) as YCounter - from 0 to 15 bind (CharacterCode _ 0) + (for XPosition from (TIMES 0.75 InchesToPrinterUnits) by XCellSpacing as XCounter from 0 + to 15 bind (CharacterCode _ 0) + [RangedCodesStreamType _ (MEMB (IMAGESTREAMTYPE Stream) + '(DISPLAY INTERPRESS] do - (for XPosition from (TIMES 0.75 InchesToPrinterUnits) by XCellSpacing as XCounter + (for YPosition from (TIMES 9 InchesToPrinterUnits) by (MINUS YCellSpacing) as YCounter from 0 to 15 do [LET ((CCode (IPLUS (ITIMES CharacterSet 256) CharacterCode))) @@ -137,8 +173,7 @@ RelativeDescent)) ImWidth ImHeight 'INPUT 'REPLACE)) else (if (AND (NEQ CharacterCode (CHARCODE FF)) - (if (MEMB (IMAGESTREAMTYPE Stream) - '(DISPLAY INTERPRESS)) + (if RangedCodesStreamType then (OR (AND (IGREATERP CharacterCode 31) (ILESSP CharacterCode 127)) (AND (IGREATERP CharacterCode 160) @@ -185,6 +220,6 @@ FONT) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (657 9580 (FontSample 667 . 2302) (FontSampleFaked 2304 . 3113) (FontTable 3115 . 9578)) -))) + (FILEMAP (NIL (655 12170 (FontSample 665 . 4700) (FontSampleFaked 4702 . 5524) (FontTable 5526 . 12168 +))))) STOP diff --git a/lispusers/FONTSAMPLER.LCOM b/lispusers/FONTSAMPLER.LCOM index 3f4909fdb18bd19e434ab56f54176f8ea4415fae..d6fe873ea10db682d2e6871625bdf96cc3e04d7c 100644 GIT binary patch delta 3570 zcmZWsO>A3P6^`w;)1<#nLMMts=8P4EBucDz?)&$YDlhg+@>=^{kNx^L40>cHo+NFW z3~dH9jD%SL3nV0ph1l@7Ku80dq#+9y$UC4bid04;U@=H6_}N72iVfwv&v6n;B**XF zd+s^+e&0FgyZ&hEhxT{g$d(#!&j?MJ#9Ywag04Nhdu_;?q#PMD$L9>piHE;0OdJm8 z^Z6VtFKsoJ|IgUe3TBH_pBgwc?t0JB!>>B0EMlSSt?#F<4jhXj^nz&>H2dKPucfd& zJvgYlR9s!Uzx4K2<9@xdMOD(B))&%)pA$M2>v(1J;9H~l&5f<&#t$&r3gMz=jNsrh+i?YkoZn!iAaQqF1Z?QGIHX($Pe! z=j7`8*_9sr-6`&!p6gXlZ=Gssna{qOJ?SlHb_bR>)mWeU_tU-1oz>xN>QplH>()0i zW6j5-8|j`Wk9)G&zHm8lwEyT%yOQ-T$V-{M({iYPr{`~}c(g4qJ|2~$pTKl?QeHfz z{3Qc&R9;NHXEXhhWbTO^8|-PzvHnMcax@-k%i+C#IkGw&5644oc_|%V+Wt_EjK{<6 z?Pn`JO}N>Aw05(a^l%229@#cQQ=FDdBT@@hK1y7PRcXTo&MB$uM4x7HhE=z_{#JtAE<=*?oy_agrw zXGkDlUl?kzVNkIw>;627!KG5YS_>8yql#Bs2to{LYN%Kas#RoP&0h#)NUlQ_zcNR* z(+Ooc%BWuS%08Jo$*La)6>k9O&F=DujdmQ4k(TqZ*#Q+2YbQmak&O`vZGn$Usn zi49e&jKa5x9by+zNMMm5U?U9dm4t=8kZ=fa=o;ya-2zPlp1Mi8MY@gpCo~1rron12 z20|KSm}FRF*km|lxMXT%GMPd_Vj9#mO)@PqZ89A)U9vQ?m@Gk-PL@Fyc5D&O2QV#{ zY>jLtTac}jZIEq}jRV;Va^U1>3J@To0TNB%157l4q5%~RuxP+V12Djz6XakAWLaUSz*Fcc_!NE$Kp?1cgn=Og zMD$a9V5d4cfMg)afD);t@P{GbWZ=mFlz}J%QU<0BP#LH)U}fOS0G5F)16q}$3~(9f zGT>$4%K(^xFau%+#te`dC^JxIz|6pz0WFwPFnC}P!C-i2x-6ln78FK#2e) z0+a|)B0z}%B?6QPP$EEy03`yH2v8zGi2x-6lnB$D>?1d)(?oRG0Fo*`Uhb2qhTX57 z_(LYu+p3*@cJ81-bQ)Nz*jsJ=toM6Ooq~He*Os?dA(KeA;ND_mZDmy{GEN)ZtFL{f zp`JBbSbzUrWdtya#m!|k3T$o{H{aWUh^sf7ZdW%StZl7rZm3t2YD*g{jb&y0puTm# zv2-tb|J`IA8svfcw|?Ar=EALGP6XZB{Z-#9sfz}cgL?JWVo;AJDf7-y>+feixRg3E zo5;xTdJn$){*_IgY<>Cc<&@U?<=JmG6CL(Hy0hF7?jxnnp1dH3<)vre-Rb%3`i1pg z*eH1&lca`ryp2@PpXA8L+0=j>lDWAvi6oRCU6bRp9W71`%8Av^c=pwov_uUdBk>9|mWf}z)m?igy|U>T~UJX7@QK6)bVNm)Dwx_va?ObpPK)Y>S#UP1G>x{gqV2QCpCE|nA1h1K1X3CA4+6NQ<0 zC>CYOhvHZ?cWo|+=E@P&$R<2iylO{<*lde^TGDiTH4ar|S_ z9o?=%tI-#_d(qKIN;U6hIS4U6$y9}J^k9Yb45&hb~I%kdMnew4kw z1ecw>KyxqoH-aKk1Rb$lji9;?ElTXlK+e?sYT3i20lOfqUdOEpeWU7uIouJDhn**c zI67c*zSg(^Qr#=*v(y7 delta 1953 zcmZWq&2Jk;6u0B1G^S1B*pxIx@UTkdM2$7G-)pGU^?L1Wv%9nGZoVoclVZ~(P2;K! z2dIQ^91uc;72H4^_ygKTkvLHKfK>H_gcPc(0*Nbdspu7{yj|N#N%yex=Dpv%dGp@y z&3q$2nEv8orrNwT!x2sdDwhaf64dQ0bEhbsf;@@>i~2 z+h{_mqNEEhsGzT|Twi%_t9jjTZh;F5L?9F-uvTtt9kPlL-W&LCVhR#>(}~33>c;WQ z3H;Xe-DBmUND9AAof}Uc(Hg1mcT?-D6Pe_o9UGFFF|^Avk@mtxh|+;__}Ah0rMbyH1gE~2j4sS34?53fZa3|!Y+jaVzglHU4Y6H5>oBv^7=H`cb+TASe? zqo+oepRsYUymKt`T5^;J%kfSte@?$!a#kx!_KTX%F!w|ZU6NrJIkhHenh`; zB9|W5*yP6X$2+AiS>oMemtipn=TDboxszp+S02_UI}Dt?I&@h6%3eKx`>CFd@oQZW z8((L`zwXt?J8S~&6Stq92tUs`SgYT2_u4!JhKIZWMU(+Yhk_!AQOO-+(bZ}OD7@4+ z@C0fVEkGSsr3WVaRzkp<(KX)ySrwpaT85+9M%6T|3djm-<}EAIfGkUWbGvUxnjP3h zwdY+HkYa4X2pGu7i9o1XTpvu*)DQBA7O&%?~_7vx8+9jgkW8xw09Q ztpEh{jH0c%F|6&I7ZE{Zs2PDit9e};@R7sr!FitU$HH?QR6K3bG93eWN+LtIH9743 zeGAt;anHi>;G3nAXZS`i?<|^51v^iHckBhrj9Q(e{K2K65ke^TpVH?ARr_bAaA3R&o(s#PnV5PGGuM-d^4uXPkC$ES@Rj{LhH~0 zq+x~>1*DS#g{rv(1e7U|kSB#|JDySr=S1jw5Ya>IN|Z#%V_bqtFfP2SENvMR5qG8G zV?aE1LyY93!W20%4IK6tDN4X8GN?rvN79{(0?v8hux*qg!I8xCX%1fkf=lr>#ogY{ W(9cZQ6kvmn=BvfI6j6F?8_=Pey!AzTY#U7yDr%;;OMS{l5I_ z^v7}|wG!Zgk}%>EI1nI1e1?#C0s=qbi5w}gYp`o|8r{B$hkC130~r&7QO$vEb@q(n z9!7$P3Ihho+#cAb3s)C>t}Sk)!0w#{efu@)(x=2j5Ak4 z)qsbS^HE^z`Hn}qU4g2O{7|?#QL1~AserWAksn2>V=>}>XslS- zCR*+K9&TFSthe1}qY-EErv4qIXLcdbHW+3RS*z7))xm)=g~`yU2H!$FEh5mmhl_1ZFTA`w)`yY z=kW{k^r_Wuvgh~B)<>poHU4+SFJ4FpE4cmfO#Vw3+M~fOw%F?Kb=hkd8lT8lHcO?& z={KwE`2NG{>!pS1&#PPM0(!2KH_FYPqXQvJbRa|z0U=ilL|+l|s6ZGiNa QpZ@vq57hZLmVEyBZ^^AKL;wH) delta 522 zcmexowo7xu0uHy-q@vQqqRNdc#F%&#oHG)O5|c|(i-J=p2QW!Z=3=&DRG7SrHGxS% zVY4(FE9+)0UL}rt5e7D2e;3yvKL#!a7!YP)b$4|3a6}TqP{zc-AjZHE;u_@Z>F4Of zzyZ_CfT5C+0Z9y@PMm?$!_~(l%r(T*8M{q95Ho=`ANT$a0W6&R_y`+(6l;S From bed9819009537d769b39543acaade00a06872f50 Mon Sep 17 00:00:00 2001 From: Matt Heffron Date: Fri, 5 Dec 2025 16:37:48 -0800 Subject: [PATCH 2/2] Correct documentation re: sample sheet in a window. --- lispusers/fontsampler.tedit | Bin 7038 -> 7106 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/lispusers/fontsampler.tedit b/lispusers/fontsampler.tedit index b141d3592ce4e1bf147f980c811c7c340739f38f..7d4bb12d4728749130526b0144de691011987b3e 100644 GIT binary patch delta 184 zcmexocF25#7k9mai)V0vk7J}lVzEL=Myf(^Nl|KIZb)T8s-8l4Mq){7S!$6&X0bv+ zVsUY53P@EzQD$BVP_R5RCr2SE6|Ac~GcP5-Tp=X0BqvotqckrkwYXTp&(lYtJR>tX zLm@r0EVWo6FCU^nQ%^x5Bm-zB5N&SdX5p9NVgLeWAeI0z7=f4_!~luJOkOH=p6h4_ M0|TEWLrK*x0BGShvH$=8 delta 107 zcmX?P{?BZK7q^kRi)V0vk7J}lVzEL=Myf(UQD$CAYLP->UW$UBrw>dxxTGjGF*l^L uAXRVk0d8J?8FmIBU