From 105bca7c1f9b8a72732462052e40ea0908a3df0a Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Thu, 6 Nov 2025 21:49:12 -0800 Subject: [PATCH 01/13] Add a cache for FONTSAVAILABLE on files Simplifies Sketch --- sources/FONT | 200 +++++++++++++++++++++++----------------------- sources/FONT.LCOM | Bin 69328 -> 69830 bytes 2 files changed, 102 insertions(+), 98 deletions(-) diff --git a/sources/FONT b/sources/FONT index 6e40fa42a..e5ea0bb52 100644 --- a/sources/FONT +++ b/sources/FONT @@ -1,13 +1,13 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "17-Oct-2025 19:43:25" {WMEDLEY}FONT.;621 286216 +(FILECREATED " 6-Nov-2025 13:54:22" {WMEDLEY}FONT.;623 285863 :EDIT-BY rmk :CHANGES-TO (VARS FONTCOMS) - (FNS MONOSPACEFONTP) + (FNS FONTSAVAILABLE) - :PREVIOUS-DATE "13-Oct-2025 21:33:14" {WMEDLEY}FONT.;620) + :PREVIOUS-DATE "20-Oct-2025 09:54:15" {WMEDLEY}FONT.;622) (PRETTYCOMPRINT FONTCOMS) @@ -66,12 +66,12 @@ (FNS FONTSAVAILABLE FONTEXISTS? \SEARCHFONTFILES FLUSHFONTSINCORE FINDFONTFILES SORTFONTSPECS ) (FNS MATCHFONTFACE MAKEFONTFACE FONTFACETOATOM) - (INITVARS \FONTSINCORE \FONTEXISTS?-CACHE \DEFAULTDEVICEFONTS) + (INITVARS \FONTSINCORE \FONTEXISTS?-CACHE \FONTSAVAILABLEFILECACHE \DEFAULTDEVICEFONTS) [COMS (GLOBALVARS \DEFAULTDEVICEFONTS \UNITWIDTHSVECTOR) (INITVARS \UNITWIDTHSVECTOR) (FNS \UNITWIDTHSVECTOR) (DECLARE%: DONTEVAL@LOAD DOCOPY (P (\UNITWIDTHSVECTOR] - (DECLARE%: DONTCOPY (EXPORT (RECORDS FONTCLASS FONTDESCRIPTOR FONTFACE CHARSETINFO FONTSPEC) + (DECLARE%: DONTCOPY [EXPORT (RECORDS FONTCLASS FONTDESCRIPTOR FONTFACE CHARSETINFO FONTSPEC) (MACROS FONTASCENT FONTDESCENT FONTHEIGHT \FGETOFFSET \FSETOFFSET \FGETWIDTH \FSETWIDTH \FGETCHARWIDTH \FSETCHARWIDTH \FGETIMAGEWIDTH \FSETIMAGEWIDTH) @@ -79,8 +79,7 @@ \CREATECSINFOELEMENT \CREATEFONTCHARSETVECTOR CHARSETPROP) (PROP ARGNAMES CHARSETPROP) (CONSTANTS (SLUGCHARINDEX (ADD1 \MAXTHINCHAR)) - (SLUGCHARSET (ADD1 \MAXCHARSET))) - (MACROS LEGACYFONTS)) + (SLUGCHARSET (ADD1 \MAXCHARSET] (MACROS INDIRECTCHARSETP)) (FNS FONTDESCRIPTOR.DEFPRINT FONTCLASS.DEFPRINT) (INITRECORDS FONTCLASS FONTDESCRIPTOR CHARSETINFO) @@ -2795,7 +2794,8 @@ (DEFINEQ (FONTSAVAILABLE - [LAMBDA (FAMILY SIZE FACE ROTATION DEVICE CHECKFILESTOO?) (* ; "Edited 25-Sep-2025 18:39 by rmk") + [LAMBDA (FAMILY SIZE FACE ROTATION DEVICE CHECKFILESTOO?) (* ; "Edited 6-Nov-2025 13:50 by rmk") + (* ; "Edited 25-Sep-2025 18:39 by rmk") (* ; "Edited 30-Aug-2025 13:55 by rmk") (* ; "Edited 28-Aug-2025 14:43 by rmk") (* ; "Edited 23-Aug-2025 10:51 by rmk") @@ -2810,48 +2810,63 @@ (* ;;; "returns a list of the fonts fitting a description that are available. FAMILY SIZE FACE or ROTATION can be * which means get them all. if CHECKFILESTOO? is NIL, only fonts in core will be considered. If ONLY, fonts in memory will be ignored. ") - (DECLARE (GLOBALVARS \FONTSINCORE)) - (LET ((FONTSPEC (\FONT.CHECKARGS FAMILY SIZE FACE ROTATION DEVICE))) - (if (EQ '* (fetch (FONTSPEC FSDEVICE) of FONTSPEC)) - then - (* ;; + (DECLARE (GLOBALVARS \FONTSINCORE \FONTSAVAILABLEFILECACHE)) + (LET + ((FONTSPEC (\FONT.CHECKARGS FAMILY SIZE FACE ROTATION DEVICE)) + FILEFONTS) + (if (EQ '* (fetch (FONTSPEC FSDEVICE) of FONTSPEC)) + then + (* ;;  "The results for each device will be grouped together, because the sort happens in the clause below") - (for I in IMAGESTREAMTYPES join (FONTSAVAILABLE FONTSPEC NIL NIL NIL (CAR I) - CHECKFILESTOO?)) - else (SPREADFONTSPEC FONTSPEC) (* ; "For easier matching code") - (SORTFONTSPECS (UNION (CL:UNLESS (EQ 'ONLY CHECKFILESTOO?) - [COLLECTMULTI \FONTSINCORE - (FUNCTION (LAMBDA (FM S FC R D FONT) - (DECLARE (USEDFREE $$COLLECT)) - (CL:WHEN - [AND (OR (EQ FAMILY FM) - (EQ FAMILY '*)) - (OR (EQ SIZE S) - (EQ SIZE '*)) - (MATCHFONTFACE FACE FC) - (OR (EQ ROTATION R) - (EQ ROTATION '*)) - (OR (EQ DEVICE D) - (EQ DEVICE '*] - (push $$COLLECT - (create FONTSPEC - FSFAMILY _ FM - FSSIZE _ S - FSFACE _ FC - FSROTATION _ R - FSDEVICE _ D)))]) - (CL:WHEN CHECKFILESTOO?(* ; + (for I in IMAGESTREAMTYPES join (FONTSAVAILABLE FONTSPEC NIL NIL NIL (CAR I) + CHECKFILESTOO?)) + else + (SPREADFONTSPEC FONTSPEC) (* ; "For easier matching code") + (SORTFONTSPECS + (UNION (CL:UNLESS (EQ 'ONLY CHECKFILESTOO?) + [COLLECTMULTI \FONTSINCORE + (FUNCTION (LAMBDA (FM S FC R D FONT) + (DECLARE (USEDFREE $$COLLECT)) + (CL:WHEN [AND (OR (EQ FAMILY FM) + (EQ FAMILY '*)) + (OR (EQ SIZE S) + (EQ SIZE '*)) + (MATCHFONTFACE FACE FC) + (OR (EQ ROTATION R) + (EQ ROTATION '*)) + (OR (EQ DEVICE D) + (EQ DEVICE '*] + (push $$COLLECT + (create FONTSPEC + FSFAMILY _ FM + FSSIZE _ S + FSFACE _ FC + FSROTATION _ R + FSDEVICE _ D)))]) + (CL:WHEN CHECKFILESTOO? (* ;  "apply the device font lookup function.") - (LET [(FN (OR (CAR (GETMULTI IMAGESTREAMTYPES DEVICE - 'FONTSAVAILABLE)) - (FUNCTION \SEARCHFONTFILES] + (SETQ FILEFONTS (SGETMULTI \FONTSAVAILABLEFILECACHE FAMILY SIZE FACE ROTATION + DEVICE)) + + (* ;; "APPEND the cache value because of the SORT") - (* ;; "Until all the device functions take a FONTSPEC") + (APPEND (if (NULL FILEFONTS) + then (LET [(FN (OR (CAR (GETMULTI IMAGESTREAMTYPES DEVICE + 'FONTSAVAILABLE)) + (FUNCTION \SEARCHFONTFILES] - (CL:IF (EQ 1 (NARGS FN)) - (APPLY* FN FONTSPEC) - (APPLY* FN FAMILY SIZE FACE ROTATION DEVICE))))]) + (* ;; "Until all the device functions take a FONTSPEC") + + (SETQ FILEFONTS (CL:IF (EQ 1 (NARGS FN)) + (APPLY* FN FONTSPEC) + (APPLY* FN FAMILY SIZE FACE ROTATION + DEVICE))) + (SPUTMULTI \FONTSAVAILABLEFILECACHE FAMILY SIZE FACE + ROTATION DEVICE (OR FILEFONTS 'NONE)) + FILEFONTS) + elseif (NEQ FILEFONTS 'NONE) + then FILEFONTS)))]) (FONTEXISTS? [LAMBDA (FAMILY SIZE FACE ROTATION DEVICE NOCOERCIONS) (* ; "Edited 26-Sep-2025 10:10 by rmk") @@ -3154,6 +3169,8 @@ (RPAQ? \FONTEXISTS?-CACHE NIL) +(RPAQ? \FONTSAVAILABLEFILECACHE NIL) + (RPAQ? \DEFAULTDEVICEFONTS NIL) (DECLARE%: DOEVAL@COMPILE DONTCOPY @@ -3422,19 +3439,6 @@ (CONSTANTS (SLUGCHARINDEX (ADD1 \MAXTHINCHAR)) (SLUGCHARSET (ADD1 \MAXCHARSET))) ) -(DECLARE%: EVAL@COMPILE - -(PUTPROPS LEGACYFONTS MACRO ((F . FORMS) (* ; - "Execute FORMS in a legacy font environment") - (RESETLST - (RESETSAVE \FONTSINCORE NIL) - (RESETSAVE \FONTEXISTS?-CACHE) - (RESETSAVE DISPLAYFONTCOERCIONS) - (RESETSAVE DISPLAYCHARCOERCIONS) - (RESETSAVE DISPLAYFONTEXTENSIONS '(DISPLAYFONT)) - (RESETSAVE DISPLAYFONTDIRECTORIES (MEDLEYDIR "fonts>displayfonts>")) - (PROGN F . FORMS)))) -) (* "END EXPORTED DEFINITIONS") @@ -4650,44 +4654,44 @@ (ADDTOVAR LAMA FONTCOPY) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (12132 21845 (CHARWIDTH 12142 . 12927) (CHARWIDTHY 12929 . 14446) (STRINGWIDTH 14448 . -15541) (\CHARWIDTH.DISPLAY 15543 . 15956) (\STRINGWIDTH.DISPLAY 15958 . 16382) (\STRINGWIDTH.GENERIC -16384 . 21843)) (21846 28366 (DEFAULTFONT 21856 . 23141) (FONTCLASS 23143 . 25305) (FONTCLASSUNPARSE -25307 . 26206) (FONTCLASSCOMPONENT 26208 . 26796) (SETFONTCLASSCOMPONENT 26798 . 27240) ( -GETFONTCLASSCOMPONENT 27242 . 28364)) (30045 54426 (FONTCREATE 30055 . 33300) (FONTCREATE1 33302 . -35917) (FONTCREATE.SLUGFD 35919 . 37401) (\FONT.CHECKARGS 37403 . 43993) (\FONT.CHECKARGS1 43995 . -48518) (\FONTCREATE1.NOFN 48520 . 48734) (FONTFILEP 48736 . 49624) (\READCHARSET 49626 . 54424)) ( -54427 61344 (\FONT.CHECKARGS 54437 . 61027) (\CHARSET.CHECK 61029 . 61342)) (61345 64428 ( -COERCEFONTSPEC 61355 . 64426)) (66498 67288 (MAKEFONTSPEC 66508 . 67286)) (67289 75466 (COMPLETE.FONT -67299 . 69822) (COMPLETEFONTP 69824 . 70447) (COMPLETE.CHARSET 70449 . 73134) (PRUNESLUGCSINFOS 73136 - . 74061) (MONOSPACEFONTP 74063 . 75464)) (75505 83426 (FONTASCENT 75515 . 75899) (FONTDESCENT 75901 - . 76386) (FONTHEIGHT 76388 . 76790) (FONTPROP 76792 . 82703) (\AVGCHARWIDTH 82705 . 83424)) (84083 -84991 (FONTDEVICEPROP 84093 . 84989)) (85037 85891 (EDITCHAR 85047 . 85889)) (85937 98127 ( -GETCHARBITMAP 85947 . 87071) (PUTCHARBITMAP 87073 . 89231) (\GETCHARBITMAP.CSINFO 89233 . 91249) ( -\PUTCHARBITMAP.CSINFO 91251 . 98125)) (98128 118608 (MOVECHARBITMAP 98138 . 100032) (MOVEFONTCHARS -100034 . 103994) (\MOVEFONTCHAR 103996 . 108839) (\MOVEFONTCHARS.SOURCEDATA 108841 . 114946) ( -\MAKESLUGCHAR 114948 . 117483) (SLUGCHARP.DISPLAY 117485 . 118606)) (119541 139679 (FONTFILES 119551 - . 121384) (\FINDFONTFILE 121386 . 123103) (\FONTFILENAMES 123105 . 124100) (\FONTFILENAME 124102 . -128085) (\FONTFILENAME.OLD 128087 . 131036) (\FONTFILENAME.NEW 131038 . 133295) (FONTSPECFROMFILENAME -133297 . 137398) (\FONTINFOFROMFILENAME.OLD 137400 . 139677)) (139946 175749 (FONTCOPY 139956 . 145019 -) (FONTP 145021 . 145320) (FONTUNPARSE 145322 . 147041) (SETFONTDESCRIPTOR 147043 . 148507) ( -\STREAMCHARWIDTH 148509 . 152673) (\COERCECHARSET 152675 . 155270) (\BUILDSLUGCSINFO 155272 . 158895) -(\FONTSYMBOL 158897 . 159547) (\DEVICESYMBOL 159549 . 160418) (\FONTFACE 160420 . 167610) ( -\FONTFACE.COLOR 167612 . 174532) (SETFONTCHARENCODING 174534 . 175747)) (175750 196301 (FONTSAVAILABLE - 175760 . 180615) (FONTEXISTS? 180617 . 184595) (\SEARCHFONTFILES 184597 . 187682) (FLUSHFONTSINCORE -187684 . 190857) (FINDFONTFILES 190859 . 194073) (SORTFONTSPECS 194075 . 196299)) (196302 199725 ( -MATCHFONTFACE 196312 . 197127) (MAKEFONTFACE 197129 . 197969) (FONTFACETOATOM 197971 . 199723)) ( -199953 200445 (\UNITWIDTHSVECTOR 199963 . 200443)) (215788 217855 (FONTDESCRIPTOR.DEFPRINT 215798 . -217377) (FONTCLASS.DEFPRINT 217379 . 217853)) (221684 224474 (\CREATEKERNELEMENT 221694 . 222052) ( -\FSETLEFTKERN 222054 . 222545) (\FGETLEFTKERN 222547 . 224472)) (224475 234111 (\CREATEFONT 224485 . -225924) (\CREATECHARSET 225926 . 229862) (\INSTALLCHARSETINFO 229864 . 233198) ( -\INSTALLCHARSETINFO.CHARENCODING 233200 . 234109)) (234433 235797 (\FONTRESETCHARWIDTHS 234443 . -235795)) (236427 246474 (\CREATEDISPLAYFONT 236437 . 238286) (\CREATECHARSET.DISPLAY 238288 . 243997) -(\FONTEXISTS?.DISPLAY 243999 . 246472)) (246475 261340 (STRIKEFONT.FILEP 246485 . 247373) ( -STRIKEFONT.GETCHARSET 247375 . 252967) (WRITESTRIKEFONTFILE 252969 . 257880) (STRIKECSINFO 257882 . -261338)) (261371 277688 (MAKEBOLD.CHARSET 261381 . 265030) (MAKEBOLD.CHAR 265032 . 266784) ( -MAKEITALIC.CHARSET 266786 . 270459) (MAKEITALIC.CHAR 270461 . 272807) (\SFMAKEBOLD 272809 . 275033) ( -\SFMAKEITALIC 275035 . 277686)) (277689 281838 (\SFMAKEROTATEDFONT 277699 . 279100) (\SFROTATECSINFO -279102 . 279739) (\SFROTATEFONTCHARACTERS 279741 . 280121) (\SFROTATECSINFOOFFSETS 280123 . 281836)) ( -281839 283220 (\SFMAKECOLOR 281849 . 283218))))) + (FILEMAP (NIL (12098 21811 (CHARWIDTH 12108 . 12893) (CHARWIDTHY 12895 . 14412) (STRINGWIDTH 14414 . +15507) (\CHARWIDTH.DISPLAY 15509 . 15922) (\STRINGWIDTH.DISPLAY 15924 . 16348) (\STRINGWIDTH.GENERIC +16350 . 21809)) (21812 28332 (DEFAULTFONT 21822 . 23107) (FONTCLASS 23109 . 25271) (FONTCLASSUNPARSE +25273 . 26172) (FONTCLASSCOMPONENT 26174 . 26762) (SETFONTCLASSCOMPONENT 26764 . 27206) ( +GETFONTCLASSCOMPONENT 27208 . 28330)) (30011 54392 (FONTCREATE 30021 . 33266) (FONTCREATE1 33268 . +35883) (FONTCREATE.SLUGFD 35885 . 37367) (\FONT.CHECKARGS 37369 . 43959) (\FONT.CHECKARGS1 43961 . +48484) (\FONTCREATE1.NOFN 48486 . 48700) (FONTFILEP 48702 . 49590) (\READCHARSET 49592 . 54390)) ( +54393 61310 (\FONT.CHECKARGS 54403 . 60993) (\CHARSET.CHECK 60995 . 61308)) (61311 64394 ( +COERCEFONTSPEC 61321 . 64392)) (66464 67254 (MAKEFONTSPEC 66474 . 67252)) (67255 75432 (COMPLETE.FONT +67265 . 69788) (COMPLETEFONTP 69790 . 70413) (COMPLETE.CHARSET 70415 . 73100) (PRUNESLUGCSINFOS 73102 + . 74027) (MONOSPACEFONTP 74029 . 75430)) (75471 83392 (FONTASCENT 75481 . 75865) (FONTDESCENT 75867 + . 76352) (FONTHEIGHT 76354 . 76756) (FONTPROP 76758 . 82669) (\AVGCHARWIDTH 82671 . 83390)) (84049 +84957 (FONTDEVICEPROP 84059 . 84955)) (85003 85857 (EDITCHAR 85013 . 85855)) (85903 98093 ( +GETCHARBITMAP 85913 . 87037) (PUTCHARBITMAP 87039 . 89197) (\GETCHARBITMAP.CSINFO 89199 . 91215) ( +\PUTCHARBITMAP.CSINFO 91217 . 98091)) (98094 118574 (MOVECHARBITMAP 98104 . 99998) (MOVEFONTCHARS +100000 . 103960) (\MOVEFONTCHAR 103962 . 108805) (\MOVEFONTCHARS.SOURCEDATA 108807 . 114912) ( +\MAKESLUGCHAR 114914 . 117449) (SLUGCHARP.DISPLAY 117451 . 118572)) (119507 139645 (FONTFILES 119517 + . 121350) (\FINDFONTFILE 121352 . 123069) (\FONTFILENAMES 123071 . 124066) (\FONTFILENAME 124068 . +128051) (\FONTFILENAME.OLD 128053 . 131002) (\FONTFILENAME.NEW 131004 . 133261) (FONTSPECFROMFILENAME +133263 . 137364) (\FONTINFOFROMFILENAME.OLD 137366 . 139643)) (139912 175715 (FONTCOPY 139922 . 144985 +) (FONTP 144987 . 145286) (FONTUNPARSE 145288 . 147007) (SETFONTDESCRIPTOR 147009 . 148473) ( +\STREAMCHARWIDTH 148475 . 152639) (\COERCECHARSET 152641 . 155236) (\BUILDSLUGCSINFO 155238 . 158861) +(\FONTSYMBOL 158863 . 159513) (\DEVICESYMBOL 159515 . 160384) (\FONTFACE 160386 . 167576) ( +\FONTFACE.COLOR 167578 . 174498) (SETFONTCHARENCODING 174500 . 175713)) (175716 196655 (FONTSAVAILABLE + 175726 . 180969) (FONTEXISTS? 180971 . 184949) (\SEARCHFONTFILES 184951 . 188036) (FLUSHFONTSINCORE +188038 . 191211) (FINDFONTFILES 191213 . 194427) (SORTFONTSPECS 194429 . 196653)) (196656 200079 ( +MATCHFONTFACE 196666 . 197481) (MAKEFONTFACE 197483 . 198323) (FONTFACETOATOM 198325 . 200077)) ( +200349 200841 (\UNITWIDTHSVECTOR 200359 . 200839)) (215435 217502 (FONTDESCRIPTOR.DEFPRINT 215445 . +217024) (FONTCLASS.DEFPRINT 217026 . 217500)) (221331 224121 (\CREATEKERNELEMENT 221341 . 221699) ( +\FSETLEFTKERN 221701 . 222192) (\FGETLEFTKERN 222194 . 224119)) (224122 233758 (\CREATEFONT 224132 . +225571) (\CREATECHARSET 225573 . 229509) (\INSTALLCHARSETINFO 229511 . 232845) ( +\INSTALLCHARSETINFO.CHARENCODING 232847 . 233756)) (234080 235444 (\FONTRESETCHARWIDTHS 234090 . +235442)) (236074 246121 (\CREATEDISPLAYFONT 236084 . 237933) (\CREATECHARSET.DISPLAY 237935 . 243644) +(\FONTEXISTS?.DISPLAY 243646 . 246119)) (246122 260987 (STRIKEFONT.FILEP 246132 . 247020) ( +STRIKEFONT.GETCHARSET 247022 . 252614) (WRITESTRIKEFONTFILE 252616 . 257527) (STRIKECSINFO 257529 . +260985)) (261018 277335 (MAKEBOLD.CHARSET 261028 . 264677) (MAKEBOLD.CHAR 264679 . 266431) ( +MAKEITALIC.CHARSET 266433 . 270106) (MAKEITALIC.CHAR 270108 . 272454) (\SFMAKEBOLD 272456 . 274680) ( +\SFMAKEITALIC 274682 . 277333)) (277336 281485 (\SFMAKEROTATEDFONT 277346 . 278747) (\SFROTATECSINFO +278749 . 279386) (\SFROTATEFONTCHARACTERS 279388 . 279768) (\SFROTATECSINFOOFFSETS 279770 . 281483)) ( +281486 282867 (\SFMAKECOLOR 281496 . 282865))))) STOP diff --git a/sources/FONT.LCOM b/sources/FONT.LCOM index 98ce344aaf2ef4e25885aec7ccea12b2960ab033..51df1d80e9db78543ecff84c1265f3ca325d9620 100644 GIT binary patch delta 1518 zcmaKsPi)&%9LM9d+gc}alPpV!#Y{zlqsuOW+w=qrpjGeZtS}B7WQB))@ z6G$8g;=B30>F9Fc&#(~Mc4Q|cKos@LVH!ucz_XLGZW^^Ezt8XezP~@u zmVb9Y9lm{S_`+%e#FFvqYbBoLE5McKD#9GkU)(yCE*F8$@nQ*`JKuM*(j3Rlani-@ ziRTXP&&zTxQaMSWk<@uS1VPqjB6BIUO-0M zmRDrGDc74?5#~%wThY<7T~bLJQi^@3HPSbSC#aJYzwRmkqV(^q=esyu(=`> zTC!pxn+DxbbxTv)N<+46t!);GZ^5wfUPL7UXPA>%VRS+t68fAG2<`p)1pbE!<6lBF zPL4f|qq`?Y_7mbicTeEg$2{2=V`+SAOi9rj{kJzLFr(_W*_77+LsTKMbI~X9JJDwd z-6r&hzgLQ-F26ZUCGkdVnm8uoLzV*NNco5lYAF$Fl^_j#3)Fd3=iCtx;+b=Mx^Dq6vPGm^wxm=1;>k>|9SQ zUhQ&K&|C7NX1B>_Z?)G<%`O7x#QXauosr z+OyWFrQkO&1l%Qm4Gz}f!FtqP!k2cYxLbErUziMLx}AiJk`79EN_}v?w5z|@|0vh=w>CHZPW^{}>}a4M%nD#5tL^`3rl!~+ zh!QLtIx+|eupyhKW~e*}tOT}f+em@3Sp5&n>^|0bN!(|iL=MC}FM%Oji#Bkg2nuSF z8PaYoH`_XJtO#CR(?TZ9O1N^P)DtJP+B(>WNE+&5+I|wMh?w^OzI`CTCxpGHX{1+9%dwc)@ delta 1067 zcmZuw&rcgi6!sWmVC}VyK?IZpUI~rtD5g8!HLR`t@UlDD>#ld*-33Z&5G786L@trI z6Dg;pQd=}ieQA(#=&=b3p=u*V7K#)pidt3ex#}gC^iaVcP^q&65mf44-uK@7-uJ#) z&AfWl`Rl{Zujl&lWY)R1md#1IJm5l6k&C(f#_EM3oB?69NY2gnog!2 z+plM!Sa->+>CAXpgUK)z`N($;7iGDKl|Tha+q1c4?K1zJrEGwMpB zOt%t4482b1wEgxZLt{yut|ZSg^hNRteZ$e;Nxk)D1O>aQy`@3J^y-$z%^0Rjbl-7J z;(^fG6wmc$x#!~^!l^QSk?LxFDxf~5T1uXy_fzLY=2SC`SvCb} zE~n7_)L3gzK*7%(>1%XjH8?(NE=18~y4yF>Q*#XB+Kf-%^(}S*?+euKUus>Bp$HOM zU&YYy_V4|f&GktzYg(CjKD!Pzf4)w<421sZLZL`Wo6-&OM2LO8xTDexvk%=2(!Hlj zyH|?L#kbBh(NC3?X46DOj0CMl$2YZ|n6T4Dy}4nGB_KSOw3y;`;mo)rsyw4$ClOn~n`wEr6}LWe;#(1>LdO zd+}>CmTy8q1^xtFrw)@cUEj$zu_{BuBbuvMf>!Xl*x Date: Thu, 6 Nov 2025 21:49:42 -0800 Subject: [PATCH 02/13] Upgrade Sketch to new font interfaces --- library/sketch/SKETCH | 353 +++++------ library/sketch/SKETCH-EDIT | 95 ++- library/sketch/SKETCH-EDIT.LCOM | Bin 26502 -> 26520 bytes library/sketch/SKETCH-ELEMENTS | 902 +++++++++++----------------- library/sketch/SKETCH-ELEMENTS.LCOM | Bin 147391 -> 144431 bytes library/sketch/SKETCH.LCOM | Bin 161521 -> 161924 bytes 6 files changed, 582 insertions(+), 768 deletions(-) diff --git a/library/sketch/SKETCH b/library/sketch/SKETCH index 76c5e3347..55e219650 100644 --- a/library/sketch/SKETCH +++ b/library/sketch/SKETCH @@ -1,12 +1,22 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 5-Dec-2023 00:44:13" {WMEDLEY}sketch>SKETCH.;5 491114 +(FILECREATED " 4-Nov-2025 15:24:34" {WMEDLEY}sketch>SKETCH.;7 491766 :EDIT-BY rmk - :CHANGES-TO (VARS SKETCHCOMS) + :CHANGES-TO (VARS SKETCHCOMS SKETCHFILES SKETCH.TITLED.ICON.TEMPLATE) + (FNS SK.OUTPUT.FILE.NAME SKETCH.TITLE) + (RECORDS SKHISTORYCHANGESPEC GROUP LOCALGROUP SKFIGUREIMAGE SCREENELT GLOBALPART + COMMONGLOBALPART INDIVIDUALGLOBALPART LOCALPART SKETCH SKETCHTYPE + SKETCHCONTEXT) + (PROPS (SKETCH.CREATE ARGNAMES) + (GROUP EVENTFNS) + (UNGROUP EVENTFNS) + (FREEZE EVENTFNS) + (UNFREEZE EVENTFNS)) + (MACROS .DELETEKEYDOWNP. .MOVEKEYDOWNP. .SHIFTKEYDOWNP.) - :PREVIOUS-DATE "19-Oct-2023 23:55:27" {WMEDLEY}sketch>SKETCH.;4) + :PREVIOUS-DATE " 3-Nov-2025 16:21:01" {WMEDLEY}sketch>SKETCH.;5) (PRETTYCOMPRINT SKETCHCOMS) @@ -48,17 +58,16 @@ To abort loading the new version of Sketch, type '^'."] (FNS SKETCH SKETCH.FROM.A.FILE SKETCHW.CREATE SKETCH.RESET SKETCHW.FIG.CHANGED SK.WINDOW.TITLE EDITSLIDE EDITSKETCH SK.PUT.ON.FILE SK.OUTPUT.FILE.NAME SKETCH.PUT SK.GET.FROM.FILE SK.INCLUDE.FILE SK.GET.IMAGEOBJ.FROM.FILE SKETCH.GET - ADD.SKETCH.TO.VIEWER FILENAMELESSVERSION SK.ADD.ELEMENTS.TO.SKETCH SKETCH.SET.A.DEFAULT - SK.POPUP.SELECTIONFN GETSKETCHWREGION SK.ADD.ELEMENT SK.ADD.PRIORITY.ELEMENT.TO.SKETCH - SK.ELTS.BY.PRIORITY SK.ORDER.ELEMENTS SK.ADD.PRIORITY.LOCAL.ELEMENT.TO.SKETCH - SK.ADD.ELEMENTS SK.CHECK.WHENADDEDFN SK.APPLY.MENU.COMMAND SK.DELETE.ELEMENT1 - SK.MARK.DIRTY SK.MARK.UNDIRTY SK.MENU.AND.RETURN.FIELD SKETCH.SET.BRUSH.SHAPE - SKETCH.SET.BRUSH.SIZE SKETCHW.CLOSEFN SK.CONFIRM.DESTRUCTION SKETCHW.OUTFN - SKETCHW.REOPENFN MAKE.LOCAL.SKETCH MAP.SKETCHSPEC.INTO.VIEWER SKETCHW.REPAINTFN - SKETCHW.REPAINTFN1 SK.DRAWFIGURE.IF SKETCHW.SCROLLFN SKETCHW.RESHAPEFN - SK.UPDATE.EVENT.SELECTION LIGHTGRAYWINDOW SK.ADD.SPACES SK.SKETCH.MENU - SK.CHECK.IMAGEOBJ.WHENDELETEDFN SK.APPLY.IMAGEOBJ.WHENDELETEDFN SK.RETURN.TTY - SK.TAKE.TTY) + ADD.SKETCH.TO.VIEWER SK.ADD.ELEMENTS.TO.SKETCH SKETCH.SET.A.DEFAULT SK.POPUP.SELECTIONFN + GETSKETCHWREGION SK.ADD.ELEMENT SK.ADD.PRIORITY.ELEMENT.TO.SKETCH SK.ELTS.BY.PRIORITY + SK.ORDER.ELEMENTS SK.ADD.PRIORITY.LOCAL.ELEMENT.TO.SKETCH SK.ADD.ELEMENTS + SK.CHECK.WHENADDEDFN SK.APPLY.MENU.COMMAND SK.DELETE.ELEMENT1 SK.MARK.DIRTY + SK.MARK.UNDIRTY SK.MENU.AND.RETURN.FIELD SKETCH.SET.BRUSH.SHAPE SKETCH.SET.BRUSH.SIZE + SKETCHW.CLOSEFN SK.CONFIRM.DESTRUCTION SKETCHW.OUTFN SKETCHW.REOPENFN MAKE.LOCAL.SKETCH + MAP.SKETCHSPEC.INTO.VIEWER SKETCHW.REPAINTFN SKETCHW.REPAINTFN1 SK.DRAWFIGURE.IF + SKETCHW.SCROLLFN SKETCHW.RESHAPEFN SK.UPDATE.EVENT.SELECTION LIGHTGRAYWINDOW + SK.ADD.SPACES SK.SKETCH.MENU SK.CHECK.IMAGEOBJ.WHENDELETEDFN + SK.APPLY.IMAGEOBJ.WHENDELETEDFN SK.RETURN.TTY SK.TAKE.TTY) (COMS (* ;  "fns for dealing with the sketch menu") (FNS SKETCH.COMMANDMENU SKETCH.COMMANDMENU.ITEMS CREATE.SKETCHW.COMMANDMENU @@ -242,6 +251,7 @@ To abort loading the new version of Sketch, type '^'."] "Reads a file name and opens a sketch window onto the sketch it contains." ] (VARS (BackgroundMenu)) + (VARS SKETCHFILES) (FILES SKETCH-OPS SKETCH-ELEMENTS SKETCH-EDIT SKETCH-OBJ SKETCH-BMELT) (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY (FILES (LOADCOMP) SKETCH-OPS SKETCH-ELEMENTS SKETCH-OBJ @@ -437,12 +447,13 @@ To abort loading the new version of Sketch, type '^'."] (RETURN NEWNAME]) (SK.OUTPUT.FILE.NAME - [LAMBDA (SKETCHFILENAME) (* rrb " 5-May-86 10:45") + [LAMBDA (SKETCHFILENAME) (* ; "Edited 3-Nov-2025 15:05 by rmk") + (* rrb " 5-May-86 10:45") (COND - ((STRPOS " " SKETCHFILENAME) (* don't put up dummy names that - contain spaces) + ((STRPOS " " SKETCHFILENAME) (* ; + "don't put up dummy names that contain spaces") NIL) - (T (FILENAMELESSVERSION SKETCHFILENAME]) + (T (PACKFILENAME 'VERSION NIL 'BODY SKETCHFILENAME]) (SKETCH.PUT [LAMBDA (FILENAME SKETCH VIEWER REGION SCALE GRID) (* ; "Edited 1-Feb-2022 09:17 by rmk") @@ -640,13 +651,6 @@ To abort loading the new version of Sketch, type '^'."] (GETSKETCHPROP TOSKETCH 'VIEWS]) (PUTSKETCHPROP TOSKETCH SKPROP (GETSKETCHPROP ADDSKETCH SKPROP]) -(FILENAMELESSVERSION - [LAMBDA (FILENAME) (* rrb "29-Jan-86 15:57") - - (* strips the version number off of FILENAME if it has one.) - - (PACKFILENAME (CONS 'VERSION (CONS NIL (UNPACKFILENAME FILENAME]) - (SK.ADD.ELEMENTS.TO.SKETCH [LAMBDA (ELTS SKW) (* rrb "10-Mar-86 16:50") (* adds a list of elements to a sketch) @@ -6657,10 +6661,9 @@ This will be slow for arcs and curves.")) (DEFINEQ (SKETCH.TITLE - [LAMBDA (SKW) (* rrb " 5-May-86 13:19") - - (* gets the title of the sketch being edited in SKW.) - + [LAMBDA (SKW) (* rrb " 5-May-86 13:19") + (* gets the title of the sketch being + edited in SKW.) (fetch (SKETCH SKETCHNAME) of (INSURE.SKETCH SKW]) (SK.SHRINK.ICONCREATE @@ -8594,6 +8597,8 @@ Otherwise, type '^'.") (RPAQQ BackgroundMenu NIL) +(RPAQQ SKETCHFILES (SKETCH SKETCH-OPS SKETCH-ELEMENTS SKETCH-EDIT SKETCH-OBJ SKETCH-BMELT)) + (FILESLOAD SKETCH-OPS SKETCH-ELEMENTS SKETCH-EDIT SKETCH-OBJ SKETCH-BMELT) (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY @@ -8768,149 +8773,149 @@ Otherwise, type '^'.") (ADDTOVAR LAMA SK.UNIONREGIONS SKETCH.CREATE) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (22176 85539 (SKETCH 22186 . 24291) (SKETCH.FROM.A.FILE 24293 . 24608) (SKETCHW.CREATE -24610 . 29184) (SKETCH.RESET 29186 . 30708) (SKETCHW.FIG.CHANGED 30710 . 31050) (SK.WINDOW.TITLE 31052 - . 31439) (EDITSLIDE 31441 . 31847) (EDITSKETCH 31849 . 32173) (SK.PUT.ON.FILE 32175 . 33627) ( -SK.OUTPUT.FILE.NAME 33629 . 34003) (SKETCH.PUT 34005 . 36903) (SK.GET.FROM.FILE 36905 . 37798) ( -SK.INCLUDE.FILE 37800 . 40308) (SK.GET.IMAGEOBJ.FROM.FILE 40310 . 42513) (SKETCH.GET 42515 . 42822) ( -ADD.SKETCH.TO.VIEWER 42824 . 45410) (FILENAMELESSVERSION 45412 . 45688) (SK.ADD.ELEMENTS.TO.SKETCH -45690 . 46204) (SKETCH.SET.A.DEFAULT 46206 . 53364) (SK.POPUP.SELECTIONFN 53366 . 53908) ( -GETSKETCHWREGION 53910 . 54116) (SK.ADD.ELEMENT 54118 . 55697) (SK.ADD.PRIORITY.ELEMENT.TO.SKETCH -55699 . 57093) (SK.ELTS.BY.PRIORITY 57095 . 57391) (SK.ORDER.ELEMENTS 57393 . 57660) ( -SK.ADD.PRIORITY.LOCAL.ELEMENT.TO.SKETCH 57662 . 59156) (SK.ADD.ELEMENTS 59158 . 59682) ( -SK.CHECK.WHENADDEDFN 59684 . 60414) (SK.APPLY.MENU.COMMAND 60416 . 61214) (SK.DELETE.ELEMENT1 61216 . -62794) (SK.MARK.DIRTY 62796 . 63462) (SK.MARK.UNDIRTY 63464 . 63795) (SK.MENU.AND.RETURN.FIELD 63797 - . 64462) (SKETCH.SET.BRUSH.SHAPE 64464 . 65049) (SKETCH.SET.BRUSH.SIZE 65051 . 65557) ( -SKETCHW.CLOSEFN 65559 . 67350) (SK.CONFIRM.DESTRUCTION 67352 . 68351) (SKETCHW.OUTFN 68353 . 68617) ( -SKETCHW.REOPENFN 68619 . 69031) (MAKE.LOCAL.SKETCH 69033 . 69763) (MAP.SKETCHSPEC.INTO.VIEWER 69765 . -70975) (SKETCHW.REPAINTFN 70977 . 71805) (SKETCHW.REPAINTFN1 71807 . 72746) (SK.DRAWFIGURE.IF 72748 . -73270) (SKETCHW.SCROLLFN 73272 . 77465) (SKETCHW.RESHAPEFN 77467 . 79725) (SK.UPDATE.EVENT.SELECTION -79727 . 81782) (LIGHTGRAYWINDOW 81784 . 81947) (SK.ADD.SPACES 81949 . 82695) (SK.SKETCH.MENU 82697 . -83019) (SK.CHECK.IMAGEOBJ.WHENDELETEDFN 83021 . 83873) (SK.APPLY.IMAGEOBJ.WHENDELETEDFN 83875 . 84835) - (SK.RETURN.TTY 84837 . 85205) (SK.TAKE.TTY 85207 . 85537)) (85593 108921 (SKETCH.COMMANDMENU 85603 . -85940) (SKETCH.COMMANDMENU.ITEMS 85942 . 106025) (CREATE.SKETCHW.COMMANDMENU 106027 . 106447) ( -SKETCHW.SELECTIONFN 106449 . 107552) (SKETCH.MONITORLOCK 107554 . 108025) (SK.EVAL.AS.PROCESS 108027 - . 108640) (SK.EVAL.WITH.LOCK 108642 . 108919)) (108922 116726 (SK.FIX.MENU 108932 . 110026) ( -SK.SET.UP.MENUS 110028 . 112329) (SK.INSURE.HAS.MENU 112331 . 112993) (SK.CREATE.STANDARD.MENU 112995 - . 113440) (SK.ADD.ITEM.TO.MENU 113442 . 114117) (SK.GET.VIEWER.POPUP.MENU 114119 . 116320) ( -SK.CLEAR.POPUP.MENU 116322 . 116724)) (116782 125604 (SKETCH.CREATE 116792 . 117578) (GETSKETCHPROP -117580 . 120637) (PUTSKETCHPROP 120639 . 124571) (CREATE.DEFAULT.SKETCH.CONTEXT 124573 . 125602)) ( -125770 148666 (SK.COPY.BUTTONEVENTFN 125780 . 137008) (SK.BUTTONEVENT.MARK 137010 . 137393) ( -SK.BUILD.IMAGEOBJ 137395 . 147310) (SK.BUTTONEVENT.OVERP 147312 . 147935) (SK.BUTTONEVENT.SAME.KEYS -147937 . 148664)) (148945 174760 (SK.SEL.AND.CHANGE 148955 . 149247) (SK.CHECK.WHENCHANGEDFN 149249 . -149955) (SK.CHECK.PRECHANGEFN 149957 . 150558) (SK.CHANGE.ELT 150560 . 150752) (SK.CHANGE.THING 150754 - . 152005) (SKETCH.CHANGE.ELEMENTS 152007 . 153190) (SK.APPLY.SINGLE.CHANGEFN 153192 . 153765) ( -SK.DO.CHANGESPECS 153767 . 155426) (SK.VIEWER.FROM.SKETCH.ARG 155428 . 155870) (SK.DO.CHANGESPEC1 -155872 . 157747) (SK.CHANGEFN 157749 . 158329) (SK.READCHANGEFN 158331 . 158790) (SK.DEFAULT.CHANGEFN -158792 . 161264) (CHANGEABLEFIELDITEMS 161266 . 161913) (SK.APPLY.CHANGE.COMMAND 161915 . 162532) ( -SK.DO.AND.RECORD.CHANGES 162534 . 163931) (SK.APPLY.CHANGE.COMMAND1 163933 . 165421) ( -SK.ELEMENTS.CHANGEFN 165423 . 167747) (READ.POINT.TO.ADD 167749 . 168693) (GLOBAL.KNOT.FROM.LOCAL -168695 . 169155) (SK.ADD.KNOT.TO.ELEMENT 169157 . 170101) (SK.GROUP.CHANGEFN 170103 . 171315) ( -SK.GROUP.CHANGEFN1 171317 . 174758)) (174927 188660 (ADD.ELEMENT.TO.SKETCH 174937 . 176643) ( -ADD.SKETCH.VIEWER 176645 . 177313) (REMOVE.SKETCH.VIEWER 177315 . 177928) (ALL.SKETCH.VIEWERS 177930 - . 178170) (SKETCH.ALL.VIEWERS 178172 . 178432) (VIEWER.BUCKET 178434 . 178585) (ELT.INSIDE.REGION? -178587 . 178914) (ELT.INSIDE.SKWP 178916 . 179207) (SCALE.FROM.SKW 179209 . 179459) ( -SK.ADDELT.TO.WINDOW 179461 . 180321) (SK.CALC.REGION.VIEWED 180323 . 180701) (SK.DRAWFIGURE 180703 . -181992) (SK.DRAWFIGURE1 181994 . 182378) (SK.LOCAL.FROM.GLOBAL 182380 . 183615) (SKETCH.REGION.VIEWED -183617 . 186304) (SKETCH.VIEW.FROM.NAME 186306 . 186736) (SK.UPDATE.REGION.VIEWED 186738 . 187130) ( -SKETCH.ADD.AND.DISPLAY 187132 . 187540) (SKETCH.ADD.AND.DISPLAY1 187542 . 187980) (SK.ADD.ITEM 187982 - . 188314) (SKETCHW.ADD.INSTANCE 188316 . 188658)) (188701 201889 (SK.SEL.AND.DELETE 188711 . 189099) -(SK.ERASE.AND.DELETE.ITEM 189101 . 189520) (REMOVE.ELEMENT.FROM.SKETCH 189522 . 190633) ( -SK.DELETE.ELEMENT 190635 . 191193) (SK.DELETE.ELEMENT2 191195 . 191856) (SK.DELETE.KNOT 191858 . -192149) (SK.SEL.AND.DELETE.KNOT 192151 . 193276) (SK.DELETE.ELEMENT.KNOT 193278 . 196485) ( -SK.CHECK.WHENDELETEDFN 196487 . 197267) (SK.CHECK.PREEDITFN 197269 . 197753) ( -SK.CHECK.END.INITIAL.EDIT 197755 . 198289) (SK.CHECK.WHENPOINTDELETEDFN 198291 . 199087) (SK.ERASE.ELT - 199089 . 199425) (SK.DELETE.ELT 199427 . 199802) (SK.DELETE.ITEM 199804 . 200212) (DELFROMTCONC -200214 . 201887)) (201928 215762 (SK.COPY.ELT 201938 . 202308) (SK.SEL.AND.COPY 202310 . 202693) ( -SK.COPY.ELEMENTS 202695 . 208323) (SK.ADD.COPY.OF.ELEMENTS 208325 . 210092) ( -SK.GLOBAL.FROM.LOCAL.ELEMENTS 210094 . 210334) (SK.COPY.ITEM 210336 . 211133) (SK.INSERT.SKETCH 211135 - . 215760)) (215802 245823 (SK.MOVE.ELT 215812 . 216087) (SK.MOVE.ELT.OR.PT 216089 . 216402) ( -SK.APPLY.DEFAULT.MOVE 216404 . 216838) (SK.SEL.AND.MOVE 216840 . 217387) (SK.MOVE.ELEMENTS 217389 . -228261) (SKETCH.MOVE.ELEMENTS 228263 . 230194) (SKETCH.COPY.ELEMENTS 230196 . 232243) ( -\SKETCH.COPY.ELEMENT 232245 . 232970) (SK.TRANSLATE.ELEMENT 232972 . 233455) (SK.COPY.GLOBAL.ELEMENT -233457 . 233668) (SK.MAKE.ELEMENT.MOVE.ARG 233670 . 234290) (SK.MAKE.ELEMENTS.MOVE.ARG 234292 . 234814 -) (SK.MAKE.POINTS.AND.ELEMENTS.MOVE.ARG 234816 . 235885) (SK.SHOW.FIG.FROM.INFO 235887 . 236255) ( -SK.MOVE.THING 236257 . 237163) (UPDATE.ELEMENT.IN.SKETCH 237165 . 239220) (SK.UPDATE.ELEMENT 239222 . -240781) (SK.UPDATE.ELEMENTS 240783 . 241502) (SK.UPDATE.ELEMENT1 241504 . 245404) ( -SK.MOVE.ELEMENT.POINT 245406 . 245821)) (245886 268175 (SK.MOVE.POINTS 245896 . 246183) ( -SK.SEL.AND.MOVE.POINTS 246185 . 246490) (SK.DO.MOVE.ELEMENT.POINTS 246492 . 255149) ( -SK.MOVE.ITEM.POINTS 255151 . 256822) (SK.TRANSLATEPTSFN 256824 . 257208) (SK.TRANSLATE.POINTS 257210 - . 258111) (SK.SELECT.MULTIPLE.POINTS 258113 . 263753) (SK.CONTROL.POINTS.IN.REGION 263755 . 265176) ( -SK.ADD.PT.SELECTION 265178 . 265642) (SK.REMOVE.PT.SELECTION 265644 . 266261) (SK.ADD.POINT 266263 . -266886) (SK.ELTS.CONTAINING.PTS 266888 . 267513) (SK.HOTSPOTS.NOT.ON.LIST 267515 . 268173)) (268333 -271129 (SK.SET.MOVE.MODE 268343 . 269014) (SK.SET.MOVE.MODE.POINTS 269016 . 269355) ( -SK.SET.MOVE.MODE.ELEMENTS 269357 . 269701) (SK.SET.MOVE.MODE.COMBINED 269703 . 270053) (READMOVEMODE -270055 . 271127)) (271130 289885 (SK.ALIGN.POINTS 271140 . 271430) (SK.SEL.AND.ALIGN.POINTS 271432 . -271741) (SK.ALIGN.POINTS.LEFT 271743 . 272046) (SK.ALIGN.POINTS.RIGHT 272048 . 272353) ( -SK.ALIGN.POINTS.TOP 272355 . 272656) (SK.ALIGN.POINTS.BOTTOM 272658 . 272965) ( -SK.EVEN.SPACE.POINTS.IN.X 272967 . 273287) (SK.EVEN.SPACE.POINTS.IN.Y 273289 . 273609) ( -SK.DO.ALIGN.POINTS 273611 . 284233) (SK.NTH.CONTROL.POINT 284235 . 284696) ( -SK.GET.SELECTED.ELEMENT.STRUCTURE 284698 . 285364) (SK.CORRESPONDING.CONTROL.PT 285366 . 285920) ( -SK.CONTROL.POINT.NUMBER 285922 . 286292) (SK.DO.ALIGN.SETVALUE 286294 . 289883)) (289949 303381 ( -SKETCH.CREATE.GROUP 289959 . 290448) (SK.CREATE.GROUP1 290450 . 290997) (SK.UPDATE.GROUP.AFTER.CHANGE -290999 . 291788) (SK.GROUP.ELTS 291790 . 292071) (SK.SEL.AND.GROUP 292073 . 292459) (SK.GROUP.ELEMENTS - 292461 . 294110) (SK.UNGROUP.ELT 294112 . 294396) (SK.SEL.AND.UNGROUP 294398 . 296067) ( -SK.UNGROUP.ELEMENT 296069 . 297005) (SK.GLOBAL.REGION.OF.LOCAL.ELEMENTS 297007 . 297929) ( -SK.LOCAL.REGION.OF.LOCAL.ELEMENTS 297931 . 298942) (SK.GLOBAL.REGION.OF.GLOBAL.ELEMENTS 298944 . -300284) (SK.UNIONREGIONS 300286 . 302652) (SKETCH.REGION.OF.SKETCH 302654 . 303070) (SK.FLASHREGION -303072 . 303379)) (303382 316853 (INIT.GROUP.ELEMENT 303392 . 304264) (GROUP.DRAWFN 304266 . 304716) ( -GROUP.EXPANDFN 304718 . 306281) (GROUP.INSIDEFN 306283 . 306692) (GROUP.REGIONFN 306694 . 307089) ( -GROUP.GLOBALREGIONFN 307091 . 307409) (GROUP.TRANSLATEFN 307411 . 309443) (GROUP.TRANSFORMFN 309445 . -312925) (GROUP.READCHANGEFN 312927 . 316851)) (316854 317862 (REGION.CENTER 316864 . 317465) ( -REMOVE.LAST 317467 . 317860)) (317915 323022 (SK.MOVE.GROUP.CONTROL.PT 317925 . 318216) ( -SK.SEL.AND.MOVE.CONTROL.PT 318218 . 319622) (SK.MOVE.GROUP.ELEMENT.CONTROL.POINT 319624 . 321697) ( -SK.READ.NEW.GROUP.CONTROL.PT 321699 . 323020)) (323281 327905 (SK.DO.GROUP 323291 . 324743) ( -SK.CHECK.WHENGROUPEDFN 324745 . 325455) (SK.DO.UNGROUP 325457 . 326662) (SK.CHECK.WHENUNGROUPEDFN -326664 . 327251) (SK.GROUP.UNDO 327253 . 327576) (SK.UNGROUP.UNDO 327578 . 327903)) (328146 333068 ( -SK.FREEZE.ELTS 328156 . 328440) (SK.SEL.AND.FREEZE 328442 . 328832) (SK.FREEZE.ELEMENTS 328834 . -329385) (SK.UNFREEZE.ELT 329387 . 329676) (SK.SEL.AND.UNFREEZE 329678 . 331214) (SK.UNFREEZE.ELEMENTS -331216 . 331775) (SK.FREEZE.UNDO 331777 . 332022) (SK.UNFREEZE.UNDO 332024 . 332271) (SK.DO.FREEZE -332273 . 332666) (SK.DO.UNFREEZE 332668 . 333066)) (333298 343108 (SKETCH.ELEMENTS.OF.SKETCH 333308 . -334143) (SKETCH.LIST.OF.ELEMENTS 334145 . 334863) (SKETCH.ADD.ELEMENT 334865 . 335940) ( -SKETCH.DELETE.ELEMENT 335942 . 337674) (DELFROMGROUPELT 337676 . 338476) (SKETCH.ELEMENT.TYPE 338478 - . 338827) (SKETCH.ELEMENT.CHANGED 338829 . 340397) (SK.ELEMENT.CHANGED1 340399 . 341050) ( -SK.UPDATE.GLOBAL.IMAGE.OBJECT.ELEMENT 341052 . 343106)) (343162 347774 (INSURE.SKETCH 343172 . 345787) - (LOCALSPECS.FROM.VIEWER 345789 . 346149) (SK.LOCAL.ELT.FROM.GLOBALPART 346151 . 346619) ( -SKETCH.FROM.VIEWER 346621 . 346855) (INSPECT.SKETCH 346857 . 347182) (ELT.INSIDE.SKETCHWP 347184 . -347457) (SK.INSIDE.REGION 347459 . 347772)) (347775 352105 (MAPSKETCHSPECS 347785 . 348406) ( -MAPCOLLECTSKETCHSPECS 348408 . 349157) (MAPSKETCHSPECSUNTIL 349159 . 349967) (MAPGLOBALSKETCHSPECS -349969 . 350670) (MAPGLOBALSKETCHELEMENTS 350672 . 352103)) (352167 378059 (SK.ADD.SELECTION 352177 . -352917) (SK.COPY.INSERTFN 352919 . 356550) (SCREENELEMENTP 356552 . 357025) (SK.ITEM.REGION 357027 . -357514) (SK.ELEMENT.GLOBAL.REGION 357516 . 358044) (SK.LOCAL.ITEMS.IN.REGION 358046 . 360025) ( -SK.REGIONFN 360027 . 360349) (SK.GLOBAL.REGIONFN 360351 . 360709) (SK.REMOVE.SELECTION 360711 . 361439 -) (SK.SELECT.MULTIPLE.ITEMS 361441 . 371883) (SKETCH.GET.ELEMENTS 371885 . 373308) (SK.PUT.MARKS.UP -373310 . 373649) (SK.TAKE.MARKS.DOWN 373651 . 373990) (SK.TRANSLATE.GLOBALPART 373992 . 376119) ( -SK.TRANSLATE.ITEM 376121 . 377048) (SK.TRANSLATEFN 377050 . 377246) (TRANSLATE.SKETCH 377248 . 378057) -) (378325 381232 (SK.INPUT.SCALE 378335 . 379182) (SK.UPDATE.SKETCHCONTEXT 379184 . 379781) ( -SK.SET.INPUT.SCALE 379783 . 380432) (SK.SET.INPUT.SCALE.CURRENT 380434 . 380725) ( -SK.SET.INPUT.SCALE.VALUE 380727 . 381230)) (381283 383195 (SK.SET.FEEDBACK.MODE 381293 . 382599) ( -SK.SET.FEEDBACK.POINT 382601 . 382769) (SK.SET.FEEDBACK.VERBOSE 382771 . 382940) ( -SK.SET.FEEDBACK.ALWAYS 382942 . 383193)) (383346 384623 (SKETCH.TITLE 383356 . 383619) ( -SK.SHRINK.ICONCREATE 383621 . 384621)) (390313 393127 (READBRUSHSHAPE 390323 . 390782) (READ.FUNCTION -390784 . 391299) (READBRUSHSIZE 391301 . 391759) (READANGLE 391761 . 392253) (READARCDIRECTION 392255 - . 393125)) (393128 403539 (SK.CHANGE.DASHING 393138 . 397086) (READ.AND.SAVE.NEW.DASHING 397088 . -398856) (READ.NEW.DASHING 398858 . 400598) (READ.DASHING.CHANGE 400600 . 402075) (SK.CACHE.DASHING -402077 . 403079) (SK.DASHING.LABEL 403081 . 403537)) (403540 407245 (READ.FILLING.CHANGE 403550 . -405531) (SK.CACHE.FILLING 405533 . 406251) (READ.AND.SAVE.NEW.FILLING 406253 . 406851) ( -SK.FILLING.LABEL 406853 . 407243)) (407629 443882 (SK.GETGLOBALPOSITION 407639 . 407944) ( -SKETCH.TRACK.ELEMENTS 407946 . 411466) (SK.PICKOUT.WHOLE.MOVE.ELEMENTS 411468 . 412027) ( -MAP.SKETCH.ELEMENTS.INTO.VIEWER 412029 . 412421) (MAP.GLOBAL.POSITION.INTO.VIEWER 412423 . 412803) ( -SKETCH.TO.VIEWER.POSITION 412805 . 413164) (SKETCH.TRACK.IMAGE 413166 . 414020) (SK.TRACK.IMAGE1 -414022 . 415434) (MAP.VIEWER.XY.INTO.GLOBAL 415436 . 416430) (SK.SET.POSITION 416432 . 416768) ( -MAP.VIEWER.PT.INTO.GLOBAL 416770 . 417876) (VIEWER.TO.SKETCH.POSITION 417878 . 418513) ( -SK.INSURE.SCALE 418515 . 418775) (SKETCH.TO.VIEWER.REGION 418777 . 419583) (VIEWER.TO.SKETCH.REGION -419585 . 419923) (SK.READ.POINT.WITH.FEEDBACK 419925 . 430928) (SKETCH.GET.POSITION 430930 . 432810) ( -\CLOBBER.POSITION 432812 . 433260) (NEAREST.HOT.SPOT 433262 . 434790) (GETWREGION 434792 . 435553) ( -GET.BITMAP.POSITION 435555 . 436339) (SK.TRACK.BITMAP1 436341 . 443880)) (444451 475337 ( -SK.BRING.UP.POSITION.PAD 444461 . 450321) (SK.PAD.READER.POSITION 450323 . 451972) ( -SK.POSITION.READER.REPAINTFN 451974 . 453758) (SK.POSITION.PAD.FROM.VIEWER 453760 . 455102) ( -SK.INIT.POSITION.NUMBER.PAD.MENU 455104 . 455454) (SK.READ.POSITION.PAD.HANDLER 455456 . 461188) ( -DISPLAY.POSITION.READER.TOTAL 461190 . 463488) (POSITION.PAD.READER.HANDLER 463490 . 471533) ( -POSITIONPAD.HELDFN 471535 . 473019) (\POSITION.PAD.ADD.DIGIT.MENU 473021 . 474600) ( -\POSITION.READER.NUMBERPAD 474602 . 475335)) (476963 479641 (SK.DRAWFN 476973 . 477339) ( -SK.TRANSFORMFN 477341 . 477722) (SK.EXPANDFN 477724 . 478001) (SK.INPUT 478003 . 478384) (SK.INSIDEFN -478386 . 479026) (SK.UPDATEFN 479028 . 479639)) (485309 489254 (SK.CHECK.SKETCH.VERSION 485319 . -486559) (SK.INSURE.RECORD.LENGTH 486561 . 488044) (SK.INSURE.HAS.LENGTH 488046 . 488784) ( -SK.RECORD.LENGTH 488786 . 488960) (SK.SET.RECORD.LENGTHS 488962 . 489252)) (489999 490886 ( -SK.ADD.EDIT.COMMAND.TO.FILE.BROWSER 490009 . 490884))))) + (FILEMAP (NIL (22797 85993 (SKETCH 22807 . 24912) (SKETCH.FROM.A.FILE 24914 . 25229) (SKETCHW.CREATE +25231 . 29805) (SKETCH.RESET 29807 . 31329) (SKETCHW.FIG.CHANGED 31331 . 31671) (SK.WINDOW.TITLE 31673 + . 32060) (EDITSLIDE 32062 . 32468) (EDITSKETCH 32470 . 32794) (SK.PUT.ON.FILE 32796 . 34248) ( +SK.OUTPUT.FILE.NAME 34250 . 34735) (SKETCH.PUT 34737 . 37635) (SK.GET.FROM.FILE 37637 . 38530) ( +SK.INCLUDE.FILE 38532 . 41040) (SK.GET.IMAGEOBJ.FROM.FILE 41042 . 43245) (SKETCH.GET 43247 . 43554) ( +ADD.SKETCH.TO.VIEWER 43556 . 46142) (SK.ADD.ELEMENTS.TO.SKETCH 46144 . 46658) (SKETCH.SET.A.DEFAULT +46660 . 53818) (SK.POPUP.SELECTIONFN 53820 . 54362) (GETSKETCHWREGION 54364 . 54570) (SK.ADD.ELEMENT +54572 . 56151) (SK.ADD.PRIORITY.ELEMENT.TO.SKETCH 56153 . 57547) (SK.ELTS.BY.PRIORITY 57549 . 57845) ( +SK.ORDER.ELEMENTS 57847 . 58114) (SK.ADD.PRIORITY.LOCAL.ELEMENT.TO.SKETCH 58116 . 59610) ( +SK.ADD.ELEMENTS 59612 . 60136) (SK.CHECK.WHENADDEDFN 60138 . 60868) (SK.APPLY.MENU.COMMAND 60870 . +61668) (SK.DELETE.ELEMENT1 61670 . 63248) (SK.MARK.DIRTY 63250 . 63916) (SK.MARK.UNDIRTY 63918 . 64249 +) (SK.MENU.AND.RETURN.FIELD 64251 . 64916) (SKETCH.SET.BRUSH.SHAPE 64918 . 65503) ( +SKETCH.SET.BRUSH.SIZE 65505 . 66011) (SKETCHW.CLOSEFN 66013 . 67804) (SK.CONFIRM.DESTRUCTION 67806 . +68805) (SKETCHW.OUTFN 68807 . 69071) (SKETCHW.REOPENFN 69073 . 69485) (MAKE.LOCAL.SKETCH 69487 . 70217 +) (MAP.SKETCHSPEC.INTO.VIEWER 70219 . 71429) (SKETCHW.REPAINTFN 71431 . 72259) (SKETCHW.REPAINTFN1 +72261 . 73200) (SK.DRAWFIGURE.IF 73202 . 73724) (SKETCHW.SCROLLFN 73726 . 77919) (SKETCHW.RESHAPEFN +77921 . 80179) (SK.UPDATE.EVENT.SELECTION 80181 . 82236) (LIGHTGRAYWINDOW 82238 . 82401) ( +SK.ADD.SPACES 82403 . 83149) (SK.SKETCH.MENU 83151 . 83473) (SK.CHECK.IMAGEOBJ.WHENDELETEDFN 83475 . +84327) (SK.APPLY.IMAGEOBJ.WHENDELETEDFN 84329 . 85289) (SK.RETURN.TTY 85291 . 85659) (SK.TAKE.TTY +85661 . 85991)) (86047 109375 (SKETCH.COMMANDMENU 86057 . 86394) (SKETCH.COMMANDMENU.ITEMS 86396 . +106479) (CREATE.SKETCHW.COMMANDMENU 106481 . 106901) (SKETCHW.SELECTIONFN 106903 . 108006) ( +SKETCH.MONITORLOCK 108008 . 108479) (SK.EVAL.AS.PROCESS 108481 . 109094) (SK.EVAL.WITH.LOCK 109096 . +109373)) (109376 117180 (SK.FIX.MENU 109386 . 110480) (SK.SET.UP.MENUS 110482 . 112783) ( +SK.INSURE.HAS.MENU 112785 . 113447) (SK.CREATE.STANDARD.MENU 113449 . 113894) (SK.ADD.ITEM.TO.MENU +113896 . 114571) (SK.GET.VIEWER.POPUP.MENU 114573 . 116774) (SK.CLEAR.POPUP.MENU 116776 . 117178)) ( +117236 126058 (SKETCH.CREATE 117246 . 118032) (GETSKETCHPROP 118034 . 121091) (PUTSKETCHPROP 121093 . +125025) (CREATE.DEFAULT.SKETCH.CONTEXT 125027 . 126056)) (126224 149120 (SK.COPY.BUTTONEVENTFN 126234 + . 137462) (SK.BUTTONEVENT.MARK 137464 . 137847) (SK.BUILD.IMAGEOBJ 137849 . 147764) ( +SK.BUTTONEVENT.OVERP 147766 . 148389) (SK.BUTTONEVENT.SAME.KEYS 148391 . 149118)) (149399 175214 ( +SK.SEL.AND.CHANGE 149409 . 149701) (SK.CHECK.WHENCHANGEDFN 149703 . 150409) (SK.CHECK.PRECHANGEFN +150411 . 151012) (SK.CHANGE.ELT 151014 . 151206) (SK.CHANGE.THING 151208 . 152459) ( +SKETCH.CHANGE.ELEMENTS 152461 . 153644) (SK.APPLY.SINGLE.CHANGEFN 153646 . 154219) (SK.DO.CHANGESPECS +154221 . 155880) (SK.VIEWER.FROM.SKETCH.ARG 155882 . 156324) (SK.DO.CHANGESPEC1 156326 . 158201) ( +SK.CHANGEFN 158203 . 158783) (SK.READCHANGEFN 158785 . 159244) (SK.DEFAULT.CHANGEFN 159246 . 161718) ( +CHANGEABLEFIELDITEMS 161720 . 162367) (SK.APPLY.CHANGE.COMMAND 162369 . 162986) ( +SK.DO.AND.RECORD.CHANGES 162988 . 164385) (SK.APPLY.CHANGE.COMMAND1 164387 . 165875) ( +SK.ELEMENTS.CHANGEFN 165877 . 168201) (READ.POINT.TO.ADD 168203 . 169147) (GLOBAL.KNOT.FROM.LOCAL +169149 . 169609) (SK.ADD.KNOT.TO.ELEMENT 169611 . 170555) (SK.GROUP.CHANGEFN 170557 . 171769) ( +SK.GROUP.CHANGEFN1 171771 . 175212)) (175381 189114 (ADD.ELEMENT.TO.SKETCH 175391 . 177097) ( +ADD.SKETCH.VIEWER 177099 . 177767) (REMOVE.SKETCH.VIEWER 177769 . 178382) (ALL.SKETCH.VIEWERS 178384 + . 178624) (SKETCH.ALL.VIEWERS 178626 . 178886) (VIEWER.BUCKET 178888 . 179039) (ELT.INSIDE.REGION? +179041 . 179368) (ELT.INSIDE.SKWP 179370 . 179661) (SCALE.FROM.SKW 179663 . 179913) ( +SK.ADDELT.TO.WINDOW 179915 . 180775) (SK.CALC.REGION.VIEWED 180777 . 181155) (SK.DRAWFIGURE 181157 . +182446) (SK.DRAWFIGURE1 182448 . 182832) (SK.LOCAL.FROM.GLOBAL 182834 . 184069) (SKETCH.REGION.VIEWED +184071 . 186758) (SKETCH.VIEW.FROM.NAME 186760 . 187190) (SK.UPDATE.REGION.VIEWED 187192 . 187584) ( +SKETCH.ADD.AND.DISPLAY 187586 . 187994) (SKETCH.ADD.AND.DISPLAY1 187996 . 188434) (SK.ADD.ITEM 188436 + . 188768) (SKETCHW.ADD.INSTANCE 188770 . 189112)) (189155 202343 (SK.SEL.AND.DELETE 189165 . 189553) +(SK.ERASE.AND.DELETE.ITEM 189555 . 189974) (REMOVE.ELEMENT.FROM.SKETCH 189976 . 191087) ( +SK.DELETE.ELEMENT 191089 . 191647) (SK.DELETE.ELEMENT2 191649 . 192310) (SK.DELETE.KNOT 192312 . +192603) (SK.SEL.AND.DELETE.KNOT 192605 . 193730) (SK.DELETE.ELEMENT.KNOT 193732 . 196939) ( +SK.CHECK.WHENDELETEDFN 196941 . 197721) (SK.CHECK.PREEDITFN 197723 . 198207) ( +SK.CHECK.END.INITIAL.EDIT 198209 . 198743) (SK.CHECK.WHENPOINTDELETEDFN 198745 . 199541) (SK.ERASE.ELT + 199543 . 199879) (SK.DELETE.ELT 199881 . 200256) (SK.DELETE.ITEM 200258 . 200666) (DELFROMTCONC +200668 . 202341)) (202382 216216 (SK.COPY.ELT 202392 . 202762) (SK.SEL.AND.COPY 202764 . 203147) ( +SK.COPY.ELEMENTS 203149 . 208777) (SK.ADD.COPY.OF.ELEMENTS 208779 . 210546) ( +SK.GLOBAL.FROM.LOCAL.ELEMENTS 210548 . 210788) (SK.COPY.ITEM 210790 . 211587) (SK.INSERT.SKETCH 211589 + . 216214)) (216256 246277 (SK.MOVE.ELT 216266 . 216541) (SK.MOVE.ELT.OR.PT 216543 . 216856) ( +SK.APPLY.DEFAULT.MOVE 216858 . 217292) (SK.SEL.AND.MOVE 217294 . 217841) (SK.MOVE.ELEMENTS 217843 . +228715) (SKETCH.MOVE.ELEMENTS 228717 . 230648) (SKETCH.COPY.ELEMENTS 230650 . 232697) ( +\SKETCH.COPY.ELEMENT 232699 . 233424) (SK.TRANSLATE.ELEMENT 233426 . 233909) (SK.COPY.GLOBAL.ELEMENT +233911 . 234122) (SK.MAKE.ELEMENT.MOVE.ARG 234124 . 234744) (SK.MAKE.ELEMENTS.MOVE.ARG 234746 . 235268 +) (SK.MAKE.POINTS.AND.ELEMENTS.MOVE.ARG 235270 . 236339) (SK.SHOW.FIG.FROM.INFO 236341 . 236709) ( +SK.MOVE.THING 236711 . 237617) (UPDATE.ELEMENT.IN.SKETCH 237619 . 239674) (SK.UPDATE.ELEMENT 239676 . +241235) (SK.UPDATE.ELEMENTS 241237 . 241956) (SK.UPDATE.ELEMENT1 241958 . 245858) ( +SK.MOVE.ELEMENT.POINT 245860 . 246275)) (246340 268629 (SK.MOVE.POINTS 246350 . 246637) ( +SK.SEL.AND.MOVE.POINTS 246639 . 246944) (SK.DO.MOVE.ELEMENT.POINTS 246946 . 255603) ( +SK.MOVE.ITEM.POINTS 255605 . 257276) (SK.TRANSLATEPTSFN 257278 . 257662) (SK.TRANSLATE.POINTS 257664 + . 258565) (SK.SELECT.MULTIPLE.POINTS 258567 . 264207) (SK.CONTROL.POINTS.IN.REGION 264209 . 265630) ( +SK.ADD.PT.SELECTION 265632 . 266096) (SK.REMOVE.PT.SELECTION 266098 . 266715) (SK.ADD.POINT 266717 . +267340) (SK.ELTS.CONTAINING.PTS 267342 . 267967) (SK.HOTSPOTS.NOT.ON.LIST 267969 . 268627)) (268787 +271583 (SK.SET.MOVE.MODE 268797 . 269468) (SK.SET.MOVE.MODE.POINTS 269470 . 269809) ( +SK.SET.MOVE.MODE.ELEMENTS 269811 . 270155) (SK.SET.MOVE.MODE.COMBINED 270157 . 270507) (READMOVEMODE +270509 . 271581)) (271584 290339 (SK.ALIGN.POINTS 271594 . 271884) (SK.SEL.AND.ALIGN.POINTS 271886 . +272195) (SK.ALIGN.POINTS.LEFT 272197 . 272500) (SK.ALIGN.POINTS.RIGHT 272502 . 272807) ( +SK.ALIGN.POINTS.TOP 272809 . 273110) (SK.ALIGN.POINTS.BOTTOM 273112 . 273419) ( +SK.EVEN.SPACE.POINTS.IN.X 273421 . 273741) (SK.EVEN.SPACE.POINTS.IN.Y 273743 . 274063) ( +SK.DO.ALIGN.POINTS 274065 . 284687) (SK.NTH.CONTROL.POINT 284689 . 285150) ( +SK.GET.SELECTED.ELEMENT.STRUCTURE 285152 . 285818) (SK.CORRESPONDING.CONTROL.PT 285820 . 286374) ( +SK.CONTROL.POINT.NUMBER 286376 . 286746) (SK.DO.ALIGN.SETVALUE 286748 . 290337)) (290403 303835 ( +SKETCH.CREATE.GROUP 290413 . 290902) (SK.CREATE.GROUP1 290904 . 291451) (SK.UPDATE.GROUP.AFTER.CHANGE +291453 . 292242) (SK.GROUP.ELTS 292244 . 292525) (SK.SEL.AND.GROUP 292527 . 292913) (SK.GROUP.ELEMENTS + 292915 . 294564) (SK.UNGROUP.ELT 294566 . 294850) (SK.SEL.AND.UNGROUP 294852 . 296521) ( +SK.UNGROUP.ELEMENT 296523 . 297459) (SK.GLOBAL.REGION.OF.LOCAL.ELEMENTS 297461 . 298383) ( +SK.LOCAL.REGION.OF.LOCAL.ELEMENTS 298385 . 299396) (SK.GLOBAL.REGION.OF.GLOBAL.ELEMENTS 299398 . +300738) (SK.UNIONREGIONS 300740 . 303106) (SKETCH.REGION.OF.SKETCH 303108 . 303524) (SK.FLASHREGION +303526 . 303833)) (303836 317307 (INIT.GROUP.ELEMENT 303846 . 304718) (GROUP.DRAWFN 304720 . 305170) ( +GROUP.EXPANDFN 305172 . 306735) (GROUP.INSIDEFN 306737 . 307146) (GROUP.REGIONFN 307148 . 307543) ( +GROUP.GLOBALREGIONFN 307545 . 307863) (GROUP.TRANSLATEFN 307865 . 309897) (GROUP.TRANSFORMFN 309899 . +313379) (GROUP.READCHANGEFN 313381 . 317305)) (317308 318316 (REGION.CENTER 317318 . 317919) ( +REMOVE.LAST 317921 . 318314)) (318369 323476 (SK.MOVE.GROUP.CONTROL.PT 318379 . 318670) ( +SK.SEL.AND.MOVE.CONTROL.PT 318672 . 320076) (SK.MOVE.GROUP.ELEMENT.CONTROL.POINT 320078 . 322151) ( +SK.READ.NEW.GROUP.CONTROL.PT 322153 . 323474)) (323735 328359 (SK.DO.GROUP 323745 . 325197) ( +SK.CHECK.WHENGROUPEDFN 325199 . 325909) (SK.DO.UNGROUP 325911 . 327116) (SK.CHECK.WHENUNGROUPEDFN +327118 . 327705) (SK.GROUP.UNDO 327707 . 328030) (SK.UNGROUP.UNDO 328032 . 328357)) (328600 333522 ( +SK.FREEZE.ELTS 328610 . 328894) (SK.SEL.AND.FREEZE 328896 . 329286) (SK.FREEZE.ELEMENTS 329288 . +329839) (SK.UNFREEZE.ELT 329841 . 330130) (SK.SEL.AND.UNFREEZE 330132 . 331668) (SK.UNFREEZE.ELEMENTS +331670 . 332229) (SK.FREEZE.UNDO 332231 . 332476) (SK.UNFREEZE.UNDO 332478 . 332725) (SK.DO.FREEZE +332727 . 333120) (SK.DO.UNFREEZE 333122 . 333520)) (333752 343562 (SKETCH.ELEMENTS.OF.SKETCH 333762 . +334597) (SKETCH.LIST.OF.ELEMENTS 334599 . 335317) (SKETCH.ADD.ELEMENT 335319 . 336394) ( +SKETCH.DELETE.ELEMENT 336396 . 338128) (DELFROMGROUPELT 338130 . 338930) (SKETCH.ELEMENT.TYPE 338932 + . 339281) (SKETCH.ELEMENT.CHANGED 339283 . 340851) (SK.ELEMENT.CHANGED1 340853 . 341504) ( +SK.UPDATE.GLOBAL.IMAGE.OBJECT.ELEMENT 341506 . 343560)) (343616 348228 (INSURE.SKETCH 343626 . 346241) + (LOCALSPECS.FROM.VIEWER 346243 . 346603) (SK.LOCAL.ELT.FROM.GLOBALPART 346605 . 347073) ( +SKETCH.FROM.VIEWER 347075 . 347309) (INSPECT.SKETCH 347311 . 347636) (ELT.INSIDE.SKETCHWP 347638 . +347911) (SK.INSIDE.REGION 347913 . 348226)) (348229 352559 (MAPSKETCHSPECS 348239 . 348860) ( +MAPCOLLECTSKETCHSPECS 348862 . 349611) (MAPSKETCHSPECSUNTIL 349613 . 350421) (MAPGLOBALSKETCHSPECS +350423 . 351124) (MAPGLOBALSKETCHELEMENTS 351126 . 352557)) (352621 378513 (SK.ADD.SELECTION 352631 . +353371) (SK.COPY.INSERTFN 353373 . 357004) (SCREENELEMENTP 357006 . 357479) (SK.ITEM.REGION 357481 . +357968) (SK.ELEMENT.GLOBAL.REGION 357970 . 358498) (SK.LOCAL.ITEMS.IN.REGION 358500 . 360479) ( +SK.REGIONFN 360481 . 360803) (SK.GLOBAL.REGIONFN 360805 . 361163) (SK.REMOVE.SELECTION 361165 . 361893 +) (SK.SELECT.MULTIPLE.ITEMS 361895 . 372337) (SKETCH.GET.ELEMENTS 372339 . 373762) (SK.PUT.MARKS.UP +373764 . 374103) (SK.TAKE.MARKS.DOWN 374105 . 374444) (SK.TRANSLATE.GLOBALPART 374446 . 376573) ( +SK.TRANSLATE.ITEM 376575 . 377502) (SK.TRANSLATEFN 377504 . 377700) (TRANSLATE.SKETCH 377702 . 378511) +) (378779 381686 (SK.INPUT.SCALE 378789 . 379636) (SK.UPDATE.SKETCHCONTEXT 379638 . 380235) ( +SK.SET.INPUT.SCALE 380237 . 380886) (SK.SET.INPUT.SCALE.CURRENT 380888 . 381179) ( +SK.SET.INPUT.SCALE.VALUE 381181 . 381684)) (381737 383649 (SK.SET.FEEDBACK.MODE 381747 . 383053) ( +SK.SET.FEEDBACK.POINT 383055 . 383223) (SK.SET.FEEDBACK.VERBOSE 383225 . 383394) ( +SK.SET.FEEDBACK.ALWAYS 383396 . 383647)) (383800 385178 (SKETCH.TITLE 383810 . 384174) ( +SK.SHRINK.ICONCREATE 384176 . 385176)) (390868 393682 (READBRUSHSHAPE 390878 . 391337) (READ.FUNCTION +391339 . 391854) (READBRUSHSIZE 391856 . 392314) (READANGLE 392316 . 392808) (READARCDIRECTION 392810 + . 393680)) (393683 404094 (SK.CHANGE.DASHING 393693 . 397641) (READ.AND.SAVE.NEW.DASHING 397643 . +399411) (READ.NEW.DASHING 399413 . 401153) (READ.DASHING.CHANGE 401155 . 402630) (SK.CACHE.DASHING +402632 . 403634) (SK.DASHING.LABEL 403636 . 404092)) (404095 407800 (READ.FILLING.CHANGE 404105 . +406086) (SK.CACHE.FILLING 406088 . 406806) (READ.AND.SAVE.NEW.FILLING 406808 . 407406) ( +SK.FILLING.LABEL 407408 . 407798)) (408184 444437 (SK.GETGLOBALPOSITION 408194 . 408499) ( +SKETCH.TRACK.ELEMENTS 408501 . 412021) (SK.PICKOUT.WHOLE.MOVE.ELEMENTS 412023 . 412582) ( +MAP.SKETCH.ELEMENTS.INTO.VIEWER 412584 . 412976) (MAP.GLOBAL.POSITION.INTO.VIEWER 412978 . 413358) ( +SKETCH.TO.VIEWER.POSITION 413360 . 413719) (SKETCH.TRACK.IMAGE 413721 . 414575) (SK.TRACK.IMAGE1 +414577 . 415989) (MAP.VIEWER.XY.INTO.GLOBAL 415991 . 416985) (SK.SET.POSITION 416987 . 417323) ( +MAP.VIEWER.PT.INTO.GLOBAL 417325 . 418431) (VIEWER.TO.SKETCH.POSITION 418433 . 419068) ( +SK.INSURE.SCALE 419070 . 419330) (SKETCH.TO.VIEWER.REGION 419332 . 420138) (VIEWER.TO.SKETCH.REGION +420140 . 420478) (SK.READ.POINT.WITH.FEEDBACK 420480 . 431483) (SKETCH.GET.POSITION 431485 . 433365) ( +\CLOBBER.POSITION 433367 . 433815) (NEAREST.HOT.SPOT 433817 . 435345) (GETWREGION 435347 . 436108) ( +GET.BITMAP.POSITION 436110 . 436894) (SK.TRACK.BITMAP1 436896 . 444435)) (445006 475892 ( +SK.BRING.UP.POSITION.PAD 445016 . 450876) (SK.PAD.READER.POSITION 450878 . 452527) ( +SK.POSITION.READER.REPAINTFN 452529 . 454313) (SK.POSITION.PAD.FROM.VIEWER 454315 . 455657) ( +SK.INIT.POSITION.NUMBER.PAD.MENU 455659 . 456009) (SK.READ.POSITION.PAD.HANDLER 456011 . 461743) ( +DISPLAY.POSITION.READER.TOTAL 461745 . 464043) (POSITION.PAD.READER.HANDLER 464045 . 472088) ( +POSITIONPAD.HELDFN 472090 . 473574) (\POSITION.PAD.ADD.DIGIT.MENU 473576 . 475155) ( +\POSITION.READER.NUMBERPAD 475157 . 475890)) (477518 480196 (SK.DRAWFN 477528 . 477894) ( +SK.TRANSFORMFN 477896 . 478277) (SK.EXPANDFN 478279 . 478556) (SK.INPUT 478558 . 478939) (SK.INSIDEFN +478941 . 479581) (SK.UPDATEFN 479583 . 480194)) (485961 489906 (SK.CHECK.SKETCH.VERSION 485971 . +487211) (SK.INSURE.RECORD.LENGTH 487213 . 488696) (SK.INSURE.HAS.LENGTH 488698 . 489436) ( +SK.RECORD.LENGTH 489438 . 489612) (SK.SET.RECORD.LENGTHS 489614 . 489904)) (490651 491538 ( +SK.ADD.EDIT.COMMAND.TO.FILE.BROWSER 490661 . 491536))))) STOP diff --git a/library/sketch/SKETCH-EDIT b/library/sketch/SKETCH-EDIT index fe712eea5..24279696a 100644 --- a/library/sketch/SKETCH-EDIT +++ b/library/sketch/SKETCH-EDIT @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 5-Dec-2023 00:12:04" {WMEDLEY}sketch>SKETCH-EDIT.;1 108598 +(FILECREATED " 5-Nov-2025 23:56:42" {WMEDLEY}sketch>SKETCH-EDIT.;2 108507 :EDIT-BY rmk - :CHANGES-TO (RECORDS TEXTELTSELECTION) + :CHANGES-TO (FNS SKED.MOVE.SELECTION) - :PREVIOUS-DATE "21-Aug-2021 20:50:04" {WMEDLEY}sketch>SKETCHEDIT.;1) + :PREVIOUS-DATE " 5-Dec-2023 00:12:04" {WMEDLEY}sketch>SKETCH-EDIT.;1) (PRETTYCOMPRINT SKETCH-EDITCOMS) @@ -520,11 +520,10 @@ (SKED.MOVE.SELECTION SKW (NOT (WINDOWPROP SKW 'USEGRID]) (SKED.MOVE.SELECTION - [LAMBDA (SKW USEGRID) (* rrb "11-Jul-86 15:51") - - (* the user has left buttoned in a sketch window. - Put the caret there.) - + [LAMBDA (SKW USEGRID) (* ; "Edited 5-Nov-2025 23:56 by rmk") + (* rrb "11-Jul-86 15:51") + (* ; + "the user has left buttoned in a sketch window. Put the caret there.") (SKED.CLEAR.SELECTION SKW) (PROG (FEEDBACKX FEEDBACKY OLDGRIDX OLDGRIDY OLDX OLDY OLDCUR FEEDBACKCUR INTEXT INIMAGEOBJ STARTLINE STARTCHAR X Y (DSP (WINDOWPROP SKW 'DSP)) @@ -532,44 +531,36 @@ (GRID (SK.GRIDFACTOR SKW))) (until (MOUSESTATE UP) do - - (* track with the appropriate caret depending upon whether the cursor is inside - of existing text or not.) + (* ;; "track with the appropriate caret depending upon whether the cursor is inside of existing text or not.") (SETQ X (LASTMOUSEX DSP)) (SETQ Y (LASTMOUSEY DSP)) (COND ((OR (NEQ OLDX X) - (NEQ OLDY Y)) - - (* only look for things when the cursor position has changed.) - + (NEQ OLDY Y)) (* ; + "only look for things when the cursor position has changed.") (SETQ OLDX X) (SETQ OLDY Y) [COND ([AND (SETQ INTEXT (for ELT in (LOCALSPECS.FROM.VIEWER SKW) + unless (EQ 'SHADE (fetch (LOCALTEXT LOCALFONT) + of (fetch (SCREENELT LOCALPART) of ELT))) when (SELECTQ (fetch (SCREENELT GTYPE) of ELT) - (TEXT (AND (NEQ (fetch (LOCALTEXT LOCALFONT) - of (fetch (SCREENELT LOCALPART) - of ELT)) - 'SHADE) - (SETQ STARTLINE (INTEXT ELT X Y)))) - (TEXTBOX (AND (NEQ (fetch (LOCALTEXTBOX LOCALFONT) - of (fetch (SCREENELT LOCALPART) - of ELT)) - 'SHADE) - (INSIDE? (fetch (LOCALTEXTBOX - LOCALTEXTBOXREGION) - of (fetch (SCREENELT LOCALPART) - of ELT)) - X Y) - (SETQ STARTLINE (CLOSEST.LINE ELT Y)))) + (TEXT (SETQ STARTLINE (INTEXT ELT X Y))) + (TEXTBOX (CL:WHEN (INSIDE? (fetch (LOCALTEXTBOX + LOCALTEXTBOXREGION + ) + of (fetch (SCREENELT + LOCALPART) + of ELT)) + X Y) + (SETQ STARTLINE (CLOSEST.LINE ELT Y)))) NIL) do (RETURN ELT))) (NOT (SK.ELEMENT.PROTECTED? (fetch (SCREENELT GLOBALPART) of INTEXT) - 'CHANGE] (* inside of a text element.) + 'CHANGE] (* ; "inside of a text element.") (SETQ FEEDBACKCUR IN.TEXT.FEEDBACK.CURSOR) - (SETQ FEEDBACKX (CHAR.BEGIN (SETQ STARTCHAR (CLOSEST.CHAR X STARTLINE INTEXT + (SETQ FEEDBACKX (CHAR.BEGIN (SETQ STARTCHAR (CLOSEST.CHAR X STARTLINE INTEXT DSP)) STARTLINE INTEXT DSP)) (SETQ FEEDBACKY (LINE.BEGIN STARTLINE INTEXT))) @@ -577,7 +568,7 @@ (COND (USEGRID (SETQ FEEDBACKX (MAP.WINDOW.ONTO.GRID X SCALE GRID)) (SETQ FEEDBACKY (MAP.WINDOW.ONTO.GRID Y SCALE GRID))) - (T (* no grid) + (T (* ; "no grid") (SETQ FEEDBACKX X) (SETQ FEEDBACKY Y] (COND @@ -588,13 +579,13 @@ (SHOW.FEEDBACK (SETQ OLDCUR FEEDBACKCUR) (SETQ OLDGRIDX FEEDBACKX) (SETQ OLDGRIDY FEEDBACKY) - SKW))) (* give the coordinate display window - a shot.) + SKW))) (* ; + "give the coordinate display window a shot.") (SKETCHW.UPDATE.LOCATORS SKW))) finally (AND OLDGRIDX (SHOW.FEEDBACK OLDCUR OLDGRIDX OLDGRIDY SKW)) (COND - ((EQ OLDCUR IN.TEXT.FEEDBACK.CURSOR) (* selection is existing text) - (SKED.SET.SELECTION (CREATE.TEXT.SELECTION INTEXT STARTLINE STARTCHAR OLDGRIDX + ((EQ OLDCUR IN.TEXT.FEEDBACK.CURSOR) (* ; "selection is existing text") + (SKED.SET.SELECTION (CREATE.TEXT.SELECTION INTEXT STARTLINE STARTCHAR OLDGRIDX OLDGRIDY DSP) SKW)) (OLDGRIDX (SKED.SET.SELECTION (create POSITION @@ -1953,7 +1944,7 @@ YCOORD _ (LASTMOUSEY WIN]) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (2425 39533 (BUTLAST 2435 . 2783) (CHAR.BEGIN 2785 . 4710) (CLOSEST.CHAR 4712 . 8935) ( + (FILEMAP (NIL (2425 39442 (BUTLAST 2435 . 2783) (CHAR.BEGIN 2785 . 4710) (CLOSEST.CHAR 4712 . 8935) ( CLOSEST.LINE 8937 . 9499) (FLASHW 9501 . 9658) (HILITE.LINE 9660 . 10479) (HILITE.TEXT 10481 . 12129) (IN.TEXT.EXTEND 12131 . 15404) (INIMAGEOBJ 15406 . 15911) (INTEXT 15913 . 16410) (NEW.TEXT.EXTEND 16412 . 18631) (NEW.TEXT.SELECTIONP 18633 . 18813) (NTHCHARWIDTH 18815 . 19072) (NTHLOCALREGION 19074 @@ -1961,18 +1952,18 @@ CLOSEST.LINE 8937 . 9499) (FLASHW 9501 . 9658) (HILITE.LINE 9660 . 10479) (HILIT . 21138) (SHOW.FEEDBACK.BOX 21140 . 22194) (SELECTION.POSITION 22196 . 22988) (SKED.CLEAR.SELECTION 22990 . 23513) (SKETCH.CLEANUP 23515 . 25429) (SK.ENTER.EDIT.CHANGE 25431 . 26976) ( SKED.REMOVE.OTHER.SELECTIONS 26978 . 27405) (SKED.EXTEND.SELECTION 27407 . 28872) (SKED.MOVE.SELECTION - 28874 . 34035) (CREATE.TEXT.SELECTION 34037 . 34553) (SKED.SELECTION.FEEDBACK 34555 . 36211) ( -SKED.SET.EXTENDSELECTION 36213 . 36530) (SKED.SET.SELECTION 36532 . 36932) (LINE.BEGIN 36934 . 37488) -(SELECTION.GREATERP 37490 . 38285) (SK.WORD.BREAK.CLASS 38287 . 39127) (SK.GETSYNTAX 39129 . 39531)) ( -40375 86109 (WB.EDITOR 40385 . 41710) (SK.TTYENTRYFN 41712 . 41990) (SK.TTYEXITFN 41992 . 42261) ( -SKED.INSERT 42263 . 42691) (\SKED.INSERT 42693 . 63815) (FIRST.N.ELEMENTS 63817 . 64084) ( -SKED.CREATE.NEW.TEXTBOX 64086 . 70615) (SKED.CHARACTERPOSITION 70617 . 71404) (SKED.LINE.AND.CHAR# -71406 . 73037) (\SKED.DELETE.WORD.FROM.STRING 73039 . 74078) (\SKED.INSERT.CHARS.TO.STR 74080 . 82491) - (JOINCHARS 82493 . 82880) (STRINGFROMCHARACTERS 82882 . 83207) (GETALLCHARS 83209 . 83550) ( -CLEANUP.EDIT 83552 . 84004) (SKED.NEW.TEXTELT 84006 . 86107)) (86144 107152 ( -MAP.SCREEN.POSITION.ONTO.GRID 86154 . 87603) (NEAREST.ON.GRID 87605 . 88149) (SK.MIDDLE.TITLEFN 88151 - . 90094) (WB.BUTTON.HANDLER 90096 . 97918) (WB.ADD.NEW.POINT 97920 . 101249) (WB.DRAWLINE 101251 . -105485) (WB.RUBBERBAND.POSITION 105487 . 106404) (SK.RUBBERBAND.FEEDBACKFN 106406 . 106910) ( -RESET.LINE.BEING.INPUT 106912 . 107150)) (107334 108575 (NEAREST.EXISTING.POSITION 107344 . 107546) ( -WB.NEARPT 107548 . 108433) (LASTMOUSEPOSITION 108435 . 108573))))) + 28874 . 33944) (CREATE.TEXT.SELECTION 33946 . 34462) (SKED.SELECTION.FEEDBACK 34464 . 36120) ( +SKED.SET.EXTENDSELECTION 36122 . 36439) (SKED.SET.SELECTION 36441 . 36841) (LINE.BEGIN 36843 . 37397) +(SELECTION.GREATERP 37399 . 38194) (SK.WORD.BREAK.CLASS 38196 . 39036) (SK.GETSYNTAX 39038 . 39440)) ( +40284 86018 (WB.EDITOR 40294 . 41619) (SK.TTYENTRYFN 41621 . 41899) (SK.TTYEXITFN 41901 . 42170) ( +SKED.INSERT 42172 . 42600) (\SKED.INSERT 42602 . 63724) (FIRST.N.ELEMENTS 63726 . 63993) ( +SKED.CREATE.NEW.TEXTBOX 63995 . 70524) (SKED.CHARACTERPOSITION 70526 . 71313) (SKED.LINE.AND.CHAR# +71315 . 72946) (\SKED.DELETE.WORD.FROM.STRING 72948 . 73987) (\SKED.INSERT.CHARS.TO.STR 73989 . 82400) + (JOINCHARS 82402 . 82789) (STRINGFROMCHARACTERS 82791 . 83116) (GETALLCHARS 83118 . 83459) ( +CLEANUP.EDIT 83461 . 83913) (SKED.NEW.TEXTELT 83915 . 86016)) (86053 107061 ( +MAP.SCREEN.POSITION.ONTO.GRID 86063 . 87512) (NEAREST.ON.GRID 87514 . 88058) (SK.MIDDLE.TITLEFN 88060 + . 90003) (WB.BUTTON.HANDLER 90005 . 97827) (WB.ADD.NEW.POINT 97829 . 101158) (WB.DRAWLINE 101160 . +105394) (WB.RUBBERBAND.POSITION 105396 . 106313) (SK.RUBBERBAND.FEEDBACKFN 106315 . 106819) ( +RESET.LINE.BEING.INPUT 106821 . 107059)) (107243 108484 (NEAREST.EXISTING.POSITION 107253 . 107455) ( +WB.NEARPT 107457 . 108342) (LASTMOUSEPOSITION 108344 . 108482))))) STOP diff --git a/library/sketch/SKETCH-EDIT.LCOM b/library/sketch/SKETCH-EDIT.LCOM index 91cd662b55dcda48a3aec8489a93ead8e56b91c8..bb772bdb823320639c19c2008eab962611c58a39 100644 GIT binary patch delta 666 zcmZuvPiqrF6wjm-Y{Ww)HYC;ZSd(Ccth=+>O|lepvpXT%t~+gZW1^RsCcy-wt+9w8 zVoshEjC&DLLGk9n#wZ>Xil3k#KtF+E}YDOB~%<(t{Ar32P+T1=Y3VBr&RWZ-OM!((MytUQswOi1>ztz8+P`w|K zQ;(_zzEE*pYV#${HY`$x?rkPgtXLNOtHkp>2d&07qyMJ^&U2~IxuR(iy-YNh7{Gy? zJ~|`j;6e2=VO_31T<&!@`i=hZ>B2D#qL7n?tXD&)XNtDN<_e!pfx1>ES4>)Q(gstU z2pa9Ce=i9HK^3w05haGN=ElEJCxX6uB&y6il$)J-Nx8WIJI_Z*_nt(R^R3Rw`ofpQ zbw61T?`rQxf$wz5TsiJ1zEPNZqreC6cQo7Exr6FS6buH@4Ii*Sc4?9YsC5{A3h&Y+ zU7|3d*JGXio%FO4rxP9n|E+&M!N3smg?#9s`<^C82bX9(SdWhmGTximGJ5U(j44q` z24|HRyhB`OY?H1@ZOCBB8(fH_rF;&Y60Pz@LX3i@uY#1rKEc&XRlc(3?})dkuDP`A zc!R~Ts0c?1f(*Jv9pbpWW!eOAJ_Dxhmsn)FS5dO|wUG5LLm*kB3yZ^rA(u3adNqwTD~X&VzOfY~P2@HmKDFS^SG@nx;Z) z<&k90iYchM=uFk~nbTl)$Xp2({@#W0h0#l}p@R5{u3rU$%|h7(i@9EyuiS&3txbqp zPR*|0VnIISqPvn7dngv8ByT@nAFV@xVyl3~ca#|nQ8$6Uif*zPTjlEcbFaC2F(S{4 zK5B@)WO1Usak+WrLuPp-HYfJ&xBbXBfl_hwQ6y5OUO%#nnps6bsI@*q4&Ptf=UJpk z<+vZ*;aNV#;nGn+YUA+TjT4am&t;BVX&mEkq!prnjJuted|GKv_lL7Q+aKom)F&=J zr%d!z{7MxSxzJoXuIQ%tvYhA{M2Dcp7qu#5ZpC)yK`)mem}j9=Thtcry7Fr^pF4KQ z8-bkR({!nDTA>&mp9d@mHQ%c<&BP*MVa@FN{Z3ME3DOwLfV cEVFEv0WBFYf+~Cos4-S`{YV|mPHx}+4RQ6MrT_o{ diff --git a/library/sketch/SKETCH-ELEMENTS b/library/sketch/SKETCH-ELEMENTS index ca3acf54a..18c122b6b 100644 --- a/library/sketch/SKETCH-ELEMENTS +++ b/library/sketch/SKETCH-ELEMENTS @@ -1,14 +1,14 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 5-Dec-2023 00:16:52" {WMEDLEY}sketch>SKETCH-ELEMENTS.;1 554138 +(FILECREATED " 6-Nov-2025 17:40:48" {WMEDLEY}SKETCH>SKETCH-ELEMENTS.;16 546518 :EDIT-BY rmk - :CHANGES-TO (RECORDS LOCALCIRCLE CIRCLE LOCALELLIPSE ELLIPSE KNOTELT LOCALCURVE OPENCURVE - CLOSEDCURVE LOCALCLOSEDCURVE LOCALCLOSEDWIRE LOCALWIRE WIRE CLOSEDWIRE TEXT - LOCALTEXT LOCALTEXTBOX TEXTBOX BOX LOCALBOX ARC LOCALARC) + :CHANGES-TO (FNS SK.DECREASING.FONT.LIST SK.PICK.FONT SK.CHOOSE.TEXT.FONT SK.READFONTSIZE + SK.COLLECT.FONT.SIZES SK.READFONTFAMILY SK.SET.FONT SK.GUESS.FONTSAVAILABLE) + (VARS SKETCH-ELEMENTSCOMS) - :PREVIOUS-DATE " 4-Aug-2022 09:57:43" {WMEDLEY}sketch>SKETCHELEMENTS.;2) + :PREVIOUS-DATE " 5-Dec-2023 00:16:52" {WMEDLEY}sketch>SKETCH-ELEMENTS.;1) (PRETTYCOMPRINT SKETCH-ELEMENTSCOMS) @@ -123,8 +123,7 @@ SK.TEXT.FROM.TEXTBOX TEXT.SET.GLOBAL.REGIONS TEXT.REGIONFN TEXT.GLOBALREGIONFN TEXT.TRANSLATEFN TEXT.TRANSFORMFN TEXT.TRANSLATEPTSFN TEXT.UPDATEFN SK.CHANGE.TEXT TEXT.SET.SCALES BREAK.AT.CARRIAGE.RETURNS) - (FNS ADD.KNOWN.SKETCH.FONT SK.PICK.FONT SK.CHOOSE.TEXT.FONT SK.NEXTSIZEFONT - SK.DECREASING.FONT.LIST SK.GUESS.FONTSAVAILABLE) + (FNS SK.PICK.FONT SK.CHOOSE.TEXT.FONT SK.NEXTSIZEFONT SK.DECREASING.FONT.LIST) (INITVARS (\KNOWN.SKETCH.FONTSIZES)) (GLOBALVARS \KNOWN.SKETCH.FONTSIZES) (DECLARE%: DONTCOPY (RECORDS TEXT LOCALTEXT)) @@ -136,7 +135,6 @@ (VARS INDICATE.TEXT.SHADE) [INITVARS (SK.DEFAULT.FONT) (SK.DEFAULT.TEXT.ALIGNMENT '(CENTER BASELINE] - (INITVARS \FONTSONFILE) (ADDVARS (SK.HORIZONTAL.STYLES LEFT RIGHT CENTER) (SK.VERTICAL.STYLES TOP CENTER BASELINE BOTTOM)) (VARS (SKETCH.TERMTABLE (CREATE.SKETCH.TERMTABLE))) @@ -4635,26 +4633,33 @@ Click outside the window to stop.") NIL]) (SK.READFONTFAMILY - [LAMBDA (SKW TITLE) (* rrb "21-Nov-85 11:28") - (* reads a font family name.) - (PROG ([KNOWNFAMILIES (UNION (for X in \FONTSONFILE collect (CAR X)) - (for X in \FONTSINCORE collect (CAR X] - FAMILY) (* offers a menu of possible choices.) - (COND - ((AND KNOWNFAMILIES (NEQ (SETQ FAMILY (\CURSOR.IN.MIDDLE.MENU - (create MENU - ITEMS _ - (APPEND '(("other" 'OTHER + [LAMBDA (SKW TITLE) (* ; "Edited 4-Nov-2025 15:08 by rmk") + (* rrb "21-Nov-85 11:28") + + (* ;; "Offers a menu of existing DISPLAY font families, with Other has a way for the user to type one in. Other makes sense only if there are file fonts that are not yet known to Sketch.") + + (* ;; "RMK: Sketch used to keep its own family-by-device cache, separate from \FONTSINCORE. But the way it was set up, those fonts were created in core when they were identified, so FONTSAVAILABLE would find them them on \FONTSINCORE. Here we scan all devices, not just display, to catch whatever might have shown up for a nondisplay device. So this simulates that behavior.") + + (* ;; "But for a user interaction like this, isn't it only DISPLAY families that matter, the descending-font lists for other devices are not relevant. So maybe we really want only DISPLAY here.") + + (LET (KNOWNFAMILIES FAMILY) + (for FS in (FONTSAVAILABLE '* '* NIL NIL '*) do (pushnew KNOWNFAMILIES (fetch (FONTSPEC + FSFAMILY) + of FS))) + (if (AND KNOWNFAMILIES (NEQ (SETQ FAMILY (\CURSOR.IN.MIDDLE.MENU + (create MENU + ITEMS _ [APPEND + (SORT KNOWNFAMILIES) + '(("other" 'OTHER "prompts for a family not on the menu." - )) KNOWNFAMILIES) - TITLE _ (OR TITLE "Choose font") - CENTERFLG _ T))) - 'OTHER)) - (RETURN FAMILY)) - (T (* grab the tty.) - (TTY.PROCESS (THIS.PROCESS)) - (RETURN (CAR (ERSETQ (MKATOM (U-CASE (PROMPTFORWORD "New family: " NIL NIL - (GETPROMPTWINDOW SKW]) + ] + TITLE _ (OR TITLE "Choose font") + CENTERFLG _ T))) + 'OTHER)) + then FAMILY + else (CAR (ERSETQ (MKATOM (U-CASE (TTYINPROMPTFORWORD "New family: " NIL NIL ( + GETPROMPTWINDOW + SKW]) (CLOSE.PROMPT.WINDOW [LAMBDA (WINDOW) (* rrb "28-Oct-84 14:14") @@ -5418,166 +5423,126 @@ Click outside the window to stop.") ) (DEFINEQ -(ADD.KNOWN.SKETCH.FONT - [LAMBDA (FAMILY WID DEVICE FONT) (* ; "Edited 10-May-93 16:49 by rmk:") - (* ; "Edited 21-Feb-89 15:06 by snow") - - (* ;; "add to the globally cached font list") - - (DECLARE (GLOBALVARS \KNOWN.SKETCH.FONTSIZES)) - [LET ((CACHE (ASSOC FAMILY \KNOWN.SKETCH.FONTSIZES)) - (CACHED)) - (COND - [(NULL CACHE) - (if \KNOWN.SKETCH.FONTSIZES - then [NCONC1 \KNOWN.SKETCH.FONTSIZES (LIST FAMILY (LIST DEVICE (CONS WID FONT] - else (SETQ \KNOWN.SKETCH.FONTSIZES (LIST (LIST FAMILY (LIST DEVICE - (CONS WID FONT] - (T (COND - ((SETQ CACHED (ASSOC DEVICE CACHE)) - (NCONC1 CACHED (CONS WID FONT))) - (T (NCONC1 CACHE (CONS DEVICE (CONS WID FONT] - FONT]) - (SK.PICK.FONT - [LAMBDA (WID STRING DEVICE DISPLAYGFONT) (* ; "Edited 10-May-93 17:11 by rmk:") - (* ; "Edited 22-Feb-89 07:53 by snow") + [LAMBDA (WID STRING DEVICE DISPLAYFONT) (* ; "Edited 6-Nov-2025 10:41 by rmk") + (* ; "Edited 1-Sep-2025 13:02 by rmk") + (* ; "Edited 10-May-93 17:11 by rmk:") + (* ; "Edited 22-Feb-89 07:53 by snow") - (* ;; "returns the font in FAMILY that text should be printed in to have the text STRING fit into a region WID points wide") + (* ;; "RMK 2025: This is weird, and I'm not sure that the original ever worked. It is called from only one place (SK.CHOOSE.TEXT.FONT), with one constant STRING. I believe it is trying to associate with DISPLAYFONT's family a corresponding DEVICE font for which the width of that string would be closest to WID without being larger than that. It caches that font for WID, since that really is just a constant.") + + (* ;; "Returns the font in DISPLAYFONT's family that text should be printed in to have the text STRING fit into a region WID points wide. The value can also be the atom SHADE, if there is no font small enough for STRING.") (DECLARE (GLOBALVARS \KNOWN.SKETCH.FONTSIZES)) - (LET - [STARTFONT FONTWIDTH SCALE CACHEDFONT SIZE (FAMILY (FONTPROP DISPLAYGFONT 'FAMILY] - (IF [SETQ CACHEDFONT (ASSOC WID (ASSOC DEVICE (ASSOC FAMILY \KNOWN.SKETCH.FONTSIZES] - THEN (CDR CACHEDFONT) - ELSE (SETQ STARTFONT (FONTCOPY DISPLAYGFONT 'DEVICE DEVICE)) - NIL - (SETQ SCALE (FONTPROP STARTFONT 'SCALE)) - (SETQ SIZE (FONTPROP STARTFONT 'SIZE)) - [SETQ FONTWIDTH (COND - (SCALE - (* ;; "IF THERE IS A SCALE, YOU MUST SCALE THE WIDTH.") - - (FIXR (QUOTIENT (STRINGWIDTH STRING STARTFONT) - SCALE))) - (T (STRINGWIDTH STRING STARTFONT] - [SETQ CACHEDFONT - (IF (IGREATERP FONTWIDTH WID) - THEN - - (* ;; "Font width was too big, try smaller fonts in decreasing size.") - - [FOR FONT IN [CDR (FIND F - ON [SORT (FONTSAVAILABLE FAMILY '* - 'MRR 0 DEVICE T) - (FUNCTION (LAMBDA (F1 F2) - (IGREATERP (CADR F1) - (CADR F2] - SUCHTHAT (EQ SIZE (CADR F] - WHEN (ILESSP [SETQ FONTWIDTH (COND - (SCALE - (* ;; - "IF THERE IS A SCALE, YOU MUST SCALE THE WIDTH.") - - (FIXR (QUOTIENT (STRINGWIDTH - STRING FONT) - SCALE))) - (T (STRINGWIDTH STRING FONT] - WID) DO (RETURN (ADD.KNOWN.SKETCH.FONT FAMILY WID - DEVICE FONT)) - FINALLY (RETURN (ADD.KNOWN.SKETCH.FONT - FAMILY WID DEVICE - (IF (GREATERP FONTWIDTH (TIMES 1.5 WID)) - THEN 'SHADE - ELSEIF (OR FONT STARTFONT] - ELSEIF (IEQP FONTWIDTH WID) - THEN (ADD.KNOWN.SKETCH.FONT FAMILY WID DEVICE STARTFONT) - ELSE - - (* ;; "FONT width was too small, try bigger fonts.") - - (FOR FONT PREVFONT - IN [CDR (FIND F ON [SORT (FONTSAVAILABLE FAMILY '* 'MRR 0 DEVICE - T) - (FUNCTION (LAMBDA (F1 F2) - (ILESSP (CADR F1) - (CADR F2] - SUCHTHAT (EQ SIZE (CADR F] - DO (IF (IGREATERP (COND - (SCALE - (* ;; - "IF THERE IS A SCALE, YOU MUST SCALE THE WIDTH.") - - (FIXR (QUOTIENT (STRINGWIDTH STRING FONT - ) - SCALE))) - (T (STRINGWIDTH STRING FONT))) - WID) - THEN (RETURN (ADD.KNOWN.SKETCH.FONT FAMILY WID DEVICE - PREVFONT))) - (SETQ PREVFONT FONT) FINALLY (RETURN (ADD.KNOWN.SKETCH.FONT - FAMILY WID DEVICE - (OR FONT PREVFONT STARTFONT] - (IF (FONTP CACHEDFONT) - THEN (* ; "Could be SHADE") - (FONTCOPY CACHEDFONT 'FACE (FONTPROP DISPLAYGFONT 'FACE)) - ELSE CACHEDFONT]) + (LET ((FAMILY (FONTPROP DISPLAYFONT 'FAMILY)) + STARTFONT FONTWIDTH SCALE CACHEDFONT AVAIL TOOSMALL) + (if (SGETMULTI \KNOWN.SKETCH.FONTSIZES FAMILY DEVICE WID (FONTPROP DISPLAYFONT 'FACE)) + else (SETQ STARTFONT (FONTCOPY DISPLAYFONT 'DEVICE DEVICE)) + (SETQ SCALE (FONTPROP STARTFONT 'SCALE)) + (SETQ FONTWIDTH (STRINGWIDTH STRING STARTFONT)) + (CL:IF SCALE + (SETQ FONTWIDTH (FIXR (QUOTIENT FONTWIDTH SCALE)))) + (if (IEQP FONTWIDTH WID) + then (PUTMULTI \KNOWN.SKETCH.FONTSIZES FAMILY DEVICE WID STARTFONT) + else + (* ;; "FONTSAVAILABLE sorts in increasing size order, so our first guess is either after or before the position of STARTFONT in the list. This assumes that the widths are proportional to font sizes.") + + (SETQ TOOSMALL (ILESSP FONTWIDTH WID)) + (SETQ AVAIL (FONTSAVAILABLE (create FONTSPEC using (FONTPROP STARTFONT + 'SPEC) + FSSIZE _ '*) + NIL NIL NIL NIL T)) + + (* ;; + "If STARTFONT width is too big, try smaller fonts, otherwise bigger ones. CDR skips the STARTFONT") + + (for FS FONT (PREVFONT _ STARTFONT) + (PREVWIDTH _ FONTWIDTH) in [CDR (MEMBER (FONTPROP STARTFONT 'SPEC) + (CL:IF TOOSMALL + AVAIL + (REVERSE AVAIL))] + eachtime (SETQ FONT (FONTCREATE FS)) + (SETQ FONTWIDTH (STRINGWIDTH STRING FONT)) + (CL:IF SCALE + (SETQ FONTWIDTH (FIXR (QUOTIENT FONTWIDTH SCALE)))) + until (CL:IF TOOSMALL + (IGREATERP FONTWIDTH WID) + (ILESSP FONTWIDTH WID)) do (SETQ PREVFONT FONT) + (SETQ PREVWIDTH FONTWIDTH) + finally + + (* ;; "We ran over, return the previous") + + (CL:UNLESS TOOSMALL + (CL:WHEN (GREATERP PREVWIDTH (TIMES 1.5 WID)) + (* ; "If we get too small, return SHADE") + (SETQ PREVFONT 'SHADE))) + (SPUTMULTI \KNOWN.SKETCH.FONTSIZES FAMILY DEVICE WID + (FONTPROP DISPLAYFONT 'FACE) + PREVFONT) + (RETURN PREVFONT]) (SK.CHOOSE.TEXT.FONT - [LAMBDA (GTEXT SCALE VIEWER) (* ; "Edited 10-May-93 16:18 by rmk:") - (* ; "Edited 1-Nov-91 16:56 by jds") + [LAMBDA (GTEXT SCALE VIEWER) (* ; "Edited 6-Nov-2025 00:08 by rmk") + (* ; "Edited 10-May-93 16:18 by rmk:") + (* ; "Edited 1-Nov-91 16:56 by jds") - (* ;; "returns the font that text in the individual global part of a text or textbox element GTEXT should be displayed in when shown in VIEWER.") + (* ;; "returns the font that text in the individual global part of a text or textbox element GTEXT should be displayed in when shown in VIEWER.") (PROG ([VIEWERFONTCACHE (OR (AND (WINDOWP VIEWER) (WINDOWPROP VIEWER 'PICKFONTCACHE)) (AND (STREAMP VIEWER) (STREAMPROP VIEWER 'PICKFONTCACHE] (GFONT (fetch (TEXT FONT) of GTEXT)) - LOCALFONT) + (CANONICALTESTSTR "AWIaiw") + LOCALFONT CANONICALWIDTH DEVICE DISPLAYGFONT) + (CL:WHEN (SETQ LOCALFONT (SASSOC GFONT VIEWERFONTCACHE)) + (* ; "look in the viewer's font cache.") + (RETURN (CDR LOCALFONT))) + [SETQ DEVICE (COND + ((STREAMP VIEWER) + (fetch (IMAGEOPS IMAGETYPE) of (fetch (STREAM IMAGEOPS) of VIEWER))) + (T 'DISPLAY] [COND - ((SETQ LOCALFONT (SASSOC GFONT VIEWERFONTCACHE))(* ; - "look in the viewer's font cache.") - (RETURN (CDR LOCALFONT] - (RETURN (PROG ((CANONICALTESTSTR "AWIaiw") - CANONICALWIDTH DEVICE DISPLAYGFONT) - [SETQ DEVICE (COND - ((STREAMP VIEWER) - (fetch (IMAGEOPS IMFONTCREATE) - of (fetch (STREAM IMAGEOPS) of VIEWER))) - (T 'DISPLAY] - [COND - ((EQUAL (TIMES SCALE (DSPSCALE NIL VIEWER)) - (fetch (TEXT INITIALSCALE) of GTEXT)) - - (* ;; "special case scales being the same so there is not a large delay when first character is typed and to avoid font look up problems when hardcopying at scale 1") - - (SETQ LOCALFONT (FONTCREATE GFONT NIL NIL NIL DEVICE))) - (T - (* ;; "use a canonical string to determine the font size so that all strings of a given font at a given scale look the same. If font is determined by the width of the particular string, two different string will appear in different fonts. In particular, the string may change fonts as the user is typing into it.") - - (* ;; "don't use the face information when determining string width because in some cases HELVETICA 10, the bold is smaller than the regular.") - - (SETQ DISPLAYGFONT (FONTCREATE GFONT NIL NIL NIL 'DISPLAY)) - [SETQ CANONICALWIDTH - (FIXR (QUOTIENT (TIMES [STRINGWIDTH CANONICALTESTSTR - (LIST (FONTPROP DISPLAYGFONT - 'FAMILY) - (FONTPROP DISPLAYGFONT - 'SIZE] - (fetch (TEXT INITIALSCALE) of GTEXT)) - (TIMES SCALE (DSPSCALE NIL VIEWER] - (* ; "calculate the local font.") - (SETQ LOCALFONT (SK.PICK.FONT CANONICALWIDTH CANONICALTESTSTR - DEVICE DISPLAYGFONT] - [COND - ((WINDOWP VIEWER) - (WINDOWPROP VIEWER 'PICKFONTCACHE (CONS (CONS GFONT LOCALFONT) - VIEWERFONTCACHE))) - ((STREAMP VIEWER) - (STREAMPROP VIEWER 'PICKFONTCACHE (CONS (CONS GFONT LOCALFONT) - VIEWERFONTCACHE] - (RETURN LOCALFONT]) + ((EQUAL (TIMES SCALE (DSPSCALE NIL VIEWER)) + (fetch (TEXT INITIALSCALE) of GTEXT)) + + (* ;; "special case scales being the same so there is not a large delay when first character is typed and to avoid font look up problems when hardcopying at scale 1") + + (SETQ LOCALFONT (FONTCREATE GFONT NIL NIL NIL DEVICE))) + (T + (* ;; "Use a canonical string to determine the font size so that all strings of a given font at a given scale look the same. If font is determined by the width of the particular string, two different strings will appear in different fonts. In particular, the string may change fonts as the user is typing into it.") + + (* ;; "The canonical width here is the natural font width having somehow taken into account the scale of the viewer and the initialscale of the text.") + + (SETQ DISPLAYGFONT (FONTCREATE GFONT NIL NIL NIL 'DISPLAY)) + [SETQ CANONICALWIDTH + (FIXR (QUOTIENT (TIMES (STRINGWIDTH CANONICALTESTSTR + (if NIL + then (create FONTSPEC using (FONTPROP DISPLAYGFONT + 'SPEC) + FSFACE _ + (MAKEFONTFACE + 'MEDIUM + 'REGULAR + 'REGULAR)) + else + + (* ;; "Original code didn't use the face information when determining string width because, it said, that in some cases HELVETICA 10, the bold is smaller than the regular. ") + + DISPLAYGFONT)) + (fetch (TEXT INITIALSCALE) of GTEXT)) + (TIMES SCALE (DSPSCALE NIL VIEWER] + (* ; "calculate the local font.") + (SETQ LOCALFONT (SK.PICK.FONT CANONICALWIDTH CANONICALTESTSTR DEVICE DISPLAYGFONT] + [COND + ((WINDOWP VIEWER) + (WINDOWPROP VIEWER 'PICKFONTCACHE (CONS (CONS GFONT LOCALFONT) + VIEWERFONTCACHE))) + ((STREAMP VIEWER) + (STREAMPROP VIEWER 'PICKFONTCACHE (CONS (CONS GFONT LOCALFONT) + VIEWERFONTCACHE] + (RETURN LOCALFONT]) (SK.NEXTSIZEFONT [LAMBDA (WHICHDIR NOWFONT) (* rrb "14-Jul-86 13:43") @@ -5603,136 +5568,40 @@ Click outside the window to stop.") do (RETURN (SK.FONTNAMELIST FONT]) (SK.DECREASING.FONT.LIST - [LAMBDA (FAMILY DEVICETYPE) (* ; - "Edited 12-Oct-92 12:39 by sybalsky:mv:envos") + [LAMBDA (FAMILY DEVICE) (* ; "Edited 6-Nov-2025 17:40 by rmk") + (* ; "Edited 4-Nov-2025 15:34 by rmk") + (* ; + "Edited 12-Oct-92 12:39 by sybalsky:mv:envos") - (* ;; "returns a list of fonts of family FAMILY which work on device DEVICETYPE") + (* ;; "This is used to find the best font for FAMILY on DEVICE that will allow a string to fit in a box, or to find the next larger/smaller font while editing. ") - [COND - ((NULL FAMILY) - (SETQ FAMILY 'MODERN] - - (* ;; "convert to families that exist on the known devices.") - -(* ;;; "NOTE: this is a very bad way to convert the family. It HARDCODES in the conversions for PRESS and INTERPRESS and does nothing for new device types. I have added the conversion for POSTSCRIPT that does things a little cleaner, but it should really look at a property of the device (fontconversions or some such animal.) --was 2/19/89") - - (LET ((CONVERSION)) - [COND - [(EQ DEVICETYPE 'PRESS) - (COND - ((EQ FAMILY 'MODERN) - (SETQ FAMILY 'HELVETICA)) - ((EQ FAMILY 'CLASSIC) - (SETQ FAMILY 'TIMESROMAN)) - ((EQ FAMILY 'TERMINAL) - (SETQ FAMILY 'GACHA] - [(EQ DEVICETYPE 'INTERPRESS) - (COND - ((EQ FAMILY 'HELVETICA) - (SETQ FAMILY 'MODERN)) - ((EQ FAMILY 'TIMESROMAN) - (SETQ FAMILY 'CLASSIC)) - ((EQ FAMILY 'GACHA) - (SETQ FAMILY 'TERMINAL] - ((EQ DEVICETYPE 'POSTSCRIPT) - (if (SETQ CONVERSION (ASSOC FAMILY POSTSCRIPT.FONT.ALIST)) - then + (* ;; "RMK 2025: The original code anticipated the coercions of the PRESS/INTERPRESS/POSTSCRIPT devices, building in e.g. that HELVETICA maps to MODERN on INTERPRESS and not even looking to see if there are any INTERPRESS HELVETICA fonts available or if e.g. INTERPRESS TERMINAL would coerce to MODERN for other sizes. ") - (* ;; - "convert the family here for postscript as well as the other well known devices.") + (* ;; "That is, if FAMILY is TERMINAL for INTERPRESS, this would only return fonts for sizes 6 8 10 12 even though coercions to MODERN might give smaller and bigger sizes.") - (SETQ FAMILY (CDR CONVERSION] - (for FONT in (SK.GUESS.FONTSAVAILABLE FAMILY DEVICETYPE) - collect (FONTCOPY FONT 'DEVICE DEVICETYPE]) + (* ;; "This code looks up all of the possible coercions of the given family to get all possible coerceable sizes, then relies on the related coercions in FONTCREATE to produce FAMILY fonts possibly constructed from data in the files for some other font. E.g. TERMINAL 14 will have the data from MODERN 14.") -(SK.GUESS.FONTSAVAILABLE - [LAMBDA (FAMILY HDCPYTYPE) (* rrb " 9-Oct-85 16:10") - - (* returns a list of all fonts of a FAMILY in decreasing order.) + (* ;; "This is also device independent: should work for HTML (whether or not HTML specifies any CHARCOERCIONS).") - (PROG (FILEFONTS CACHE DISPLAYFONTSIZES) - (SETQ HDCPYTYPE (COND - ((NULL HDCPYTYPE) - (PRINTERTYPE)) - ((NLISTP HDCPYTYPE) - HDCPYTYPE) - (T HDCPYTYPE))) (* cache the file fonts.) - [COND - [[SETQ FILEFONTS (ASSOC HDCPYTYPE (CDR (ASSOC FAMILY \FONTSONFILE] - - (* note if a cache has been calculated. Use it even if it is NIL) - - (* \FONTSONFILE seems to group things such as CLASSICTHIN under CLASSIC so make - sure to remove anything that has the wrong family.) - - (SETQ FILEFONTS (SUBSET (CDR FILEFONTS) - (FUNCTION (LAMBDA (X) - (EQ (CAR X) - FAMILY] - (T (RESETFORM (CURSOR WAITINGCURSOR) - (SETQ FILEFONTS (FONTSAVAILABLE FAMILY '* '(MEDIUM REGULAR REGULAR) NIL - HDCPYTYPE T)) - - (* Since there is no way to determine the real sizes for PRESS fonts with size - of 0 {meaning the widths scale}, guess that they are available in 10) - - [COND - [(EQ HDCPYTYPE 'PRESS) - - (* make sure to look for anything that has a display font.) - - (SETQ DISPLAYFONTSIZES (for FONT - in (FONTSAVAILABLE FAMILY '* - '(MEDIUM REGULAR REGULAR) NIL - 'DISPLAY) collect (CADR FONT))) - (SETQ FILEFONTS - (for FONT in FILEFONTS - join (COND - [(EQ (CADR FONT) - 0) - (for SIZE - in (UNION DISPLAYFONTSIZES - '(36 30 24 18 14 12 10 8 6)) - when (FONTCREATE (CAR FONT) - SIZE NIL NIL 'DISPLAY T) - collect (CONS (CAR FONT) - (CONS SIZE (CDDR FONT] - (T (CONS FONT] - ((EQ HDCPYTYPE 'DISPLAY) - - (* patch around the bug in FONTSAVAILABLE. - Remove after J release.) - - (SETQ FILEFONTS (SUBSET FILEFONTS (FUNCTION (LAMBDA (FONT) - (EQUAL (CADDR FONT) - '(MEDIUM REGULAR - REGULAR] - (* remove duplicates and sort) - [SETQ FILEFONTS (SORT (INTERSECTION FILEFONTS FILEFONTS) - (FUNCTION (LAMBDA (A B) - (GREATERP (CADR A) - (CADR B] - (COND - ((NULL (SETQ CACHE (ASSOC FAMILY \FONTSONFILE))) - (SETQ \FONTSONFILE (CONS (LIST FAMILY (CONS HDCPYTYPE FILEFONTS)) - \FONTSONFILE))) - (T (NCONC1 CACHE (CONS HDCPYTYPE FILEFONTS] - - (* reget the fonts in core since they may have changed since last time.) + (* ;; "Note that FONTSAVAILABLE caches its file lookups and FONTCREATE caches its fonts.") - (RETURN (SORT (UNION (FONTSAVAILABLE FAMILY '* NIL NIL HDCPYTYPE) - FILEFONTS) - (FUNCTION (LAMBDA (A B) - (COND - ((EQ (CADR A) - (CADR B)) - - (* in case both TIMESROMAN and TIMESROMAND for example make it in.) + (CL:UNLESS FAMILY + (SETQ FAMILY 'MODERN)) + (LET ((FAMSPEC (create FONTSPEC + FSFAMILY _ FAMILY + FSSIZE _ '* + FSDEVICE _ DEVICE))) + + (* ;; "Run through all sizes for all the fonts for FAMILY or any of its coercions on DEVICE. This gives us all the possible sizes for FAMILY, we ask FONTCREATE to create a FAMILY font for each of those sizes.") - (ALPHORDER (CADR A) - (CADR B))) - (T (GREATERP (CADR A) - (CADR B]) + (for FS SIZES in (for FS in [CONS FAMSPEC (COERCEFONTSPEC FAMSPEC (FONTDEVICEPROP + DEVICE + 'CHARCOERCIONS] + join (FONTSAVAILABLE FS NIL NIL NIL NIL T)) + do (pushnew SIZES (fetch (FONTSPEC FSSIZE) of FS)) + finally (RETURN (for S in [SORT SIZES (FUNCTION (LAMBDA (S1 S2) + (IGREATERP S1 S2] + collect (FONTCREATE FAMILY S NIL NIL DEVICE]) ) (RPAQ? \KNOWN.SKETCH.FONTSIZES ) @@ -5753,37 +5622,28 @@ Click outside the window to stop.") (DEFINEQ (SK.SET.FONT - [LAMBDA (W NEWFONT) (* rrb " 2-Oct-85 14:55") - - (* sets the entire default font. Used when a sketch stream is created. - or any of the defaults are changed. NEWFONT is a list of - (FAMILY SIZE FACE)) - - (COND - (NEWFONT (COND - ((FONTCREATE NEWFONT NIL NIL NIL NIL T) - - (* clear the cache of looked up fonts. This provides the user a way of clearing - the cache that shouldn't happen too much and is documented.) - - (AND (FASSOC (CAR NEWFONT) - \FONTSONFILE) - (SETQ \FONTSONFILE (for BUCKET in \FONTSONFILE - when (NEQ (CAR BUCKET) - (CAR NEWFONT)) collect BUCKET))) - (replace (SKETCHCONTEXT SKETCHFONT) of (WINDOWPROP W 'SKETCHCONTEXT) with NEWFONT - )) - (T (STATUSPRINT W (CAR NEWFONT) - " " - (CADR NEWFONT) - " " - (SELECTQ (CAR (CADDR NEWFONT)) - (BOLD 'BOLD) - "") - (SELECTQ (CADR (CADDR NEWFONT)) - (ITALIC 'ITALIC) - "") - " not found"]) + [LAMBDA (W NEWFONT) (* ; "Edited 4-Nov-2025 13:06 by rmk") + (* rrb " 2-Oct-85 14:55") + + (* ;; "Sets the default font. Used when a sketch stream is created. or any of the defaults are changed. NEWFONT is a fontspec") + + (CL:WHEN NEWFONT + (if (FONTCREATE NEWFONT NIL NIL NIL NIL T) + then + (* ;; "Tests to make sure the font exists, but stores the fontspec.") + + (replace (SKETCHCONTEXT SKETCHFONT) of (WINDOWPROP W 'SKETCHCONTEXT) with NEWFONT) + else (STATUSPRINT W (fetch (FONTSPEC FSFAMILY) of NEWFONT) + " " + (fetch (FONTSPEC FSSIZE) of NEWFONT) + " " + (SELECTQ (fetch (FONTFACE WEIGHT) of (fetch (FONTSPEC FSFACE) of NEWFONT)) + (BOLD 'BOLD) + "") + (SELECTQ (fetch (FONTFACE SLOPE) of (fetch (FONTSPEC FSFACE) of NEWFONT)) + (ITALIC 'ITALIC) + "") + " not found")))]) (SK.SET.TEXT.FONT [LAMBDA (W) (* rrb " 4-Oct-85 16:21") @@ -5838,90 +5698,51 @@ Click outside the window to stop.") of SKCONTEXT]) (SK.READFONTSIZE - [LAMBDA (TITLE FONTFAMILY SKW) (* rrb " 6-Nov-85 09:51") - - (* * gets a legal known font size from the user.) - - (* this should have MENUROWS _ 1 when title height bug in menu package gets - fixed.) - - (PROG ((FONTSIZES (SK.COLLECT.FONT.SIZES FONTFAMILY)) - NEWSIZE) - (COND - ((NULL FONTSIZES) - (GO MORE))) - (SETQ NEWSIZE (\CURSOR.IN.MIDDLE.MENU (create MENU - TITLE _ (COND - (TITLE) - (FONTFAMILY (CONCAT "new " - FONTFAMILY - " size?")) - (T "New font size?")) - ITEMS _ (CONS '(More 'MORE - "will look on font directories to find more sizes." - ) FONTSIZES) - CENTERFLG _ T))) - (COND - ((NEQ NEWSIZE 'MORE) - (RETURN NEWSIZE))) - MORE - (* do longer search of files) - (SETQ NEWSIZE (SK.COLLECT.FONT.SIZES FONTFAMILY T)) - (COND - ((NULL NEWSIZE) (* could not find any fonts of that - family) - (RETURN NIL)) - ((EQUAL NEWSIZE FONTSIZES) (* not new ones found) - (STATUSPRINT SKW " -No more font sizes found."))) - (RETURN (MENU (create MENU - TITLE _ (OR TITLE "New font size?") - ITEMS _ NEWSIZE - CENTERFLG _ T]) + [LAMBDA (TITLE FONTFAMILY SKW) (* ; "Edited 4-Nov-2025 20:12 by rmk") + (* rrb " 6-Nov-85 09:51") + + (* ;; "Gets a legal known font size from the user.") + (* ; "this should have MENUROWS _ 1 when title height bug in menu package gets fixed. RMK 2025: Is this still an issue?") + (CL:UNLESS TITLE + (SETQ TITLE (CONCAT "New " (OR FONTFAMILY "font") + " size?"))) + (LET ((FONTSIZES (SK.COLLECT.FONT.SIZES FONTFAMILY)) + (NEWSIZE 'MORE)) + (CL:WHEN FONTSIZES + (SETQ NEWSIZE (\CURSOR.IN.MIDDLE.MENU (create MENU + TITLE _ TITLE + ITEMS _ (NCONC1 FONTSIZES + '(More 'MORE + "Look on font-file directories to find more sizes" + )) + CENTERFLG _ T)))) + (CL:WHEN (EQ NEWSIZE 'MORE) (* ; "do longer search of files") + (SETQ FONTSIZES (LDIFFERENCE (SK.COLLECT.FONT.SIZES FONTFAMILY 'ONLY) + FONTSIZES)) + (SETQ NEWSIZE + (if FONTSIZES + then (MENU (create MENU + TITLE _ TITLE + ITEMS _ FONTSIZES + CENTERFLG _ T)) + else (STATUSPRINT SKW " +No more font sizes found.") + NIL))) + NEWSIZE]) (SK.COLLECT.FONT.SIZES - [LAMBDA (FAMILY FILESTOOFLG) (* rrb " 2-Oct-85 10:43") - - (* collects all of the sizes that are known. - If FAMILY is given, gets just those sizes.) + [LAMBDA (FAMILY FILESTOOFLG) (* ; "Edited 4-Nov-2025 20:02 by rmk") + (* rrb " 2-Oct-85 10:43") - (PROG (INCORESIZES FILESIZES) - [COND - [FAMILY (for TYPEBUCKET in (CDR (FASSOC FAMILY \FONTSONFILE)) - do (for FFONT in (CDR TYPEBUCKET) do (OR (MEMB (CADR FFONT) - INCORESIZES) - (SETQ INCORESIZES - (CONS (CADR FFONT) - INCORESIZES] - (T (* look at all fonts) - (for FAMILYBUCKET in \FONTSONFILE - do (for TYPEBUCKET in (CDR FAMILYBUCKET) - do (for FFONT in (CDR TYPEBUCKET) do (OR (MEMB (CADR FFONT) - INCORESIZES) - (SETQ INCORESIZES - (CONS (CADR FFONT) - INCORESIZES] - (RETURN (SORT (UNION INCORESIZES - (COND - [FILESTOOFLG - - (* wants those on files too, Flip the cursor to note wait.) - - (RESETFORM (CURSOR WAITINGCURSOR) - (bind SIZES for FONT - in (FONTSAVAILABLE (OR FAMILY '*) - '* NIL NIL 'DISPLAY T) - do (OR (MEMB (FONTPROP FONT 'SIZE) - SIZES) - (SETQ SIZES (CONS (FONTPROP FONT 'SIZE) - SIZES))) - finally (RETURN SIZES] - (T (bind SIZES for FONT in (FONTSAVAILABLE (OR FAMILY '*) - '* NIL NIL 'DISPLAY FILESTOOFLG) - do (OR (MEMB (FONTPROP FONT 'SIZE) - SIZES) - (SETQ SIZES (CONS (FONTPROP FONT 'SIZE) - SIZES))) finally (RETURN SIZES]) + (* ;; "Collects all of the sizes that are known. If FAMILY is given, gets just those sizes.") + + (* ;; "RMK: Original code seemed confused. The \FONTSONFILE variable (set originally only by SK.GUESS.FONTSAVAILBLE in the call from SK.DECREASING.FONT.LIST) maintained a cache just of the fonts that had already been looked up for particular families and particular devices. But then it called FONTSAVAILABLE only for the DISPLAY device.") + + (for FS SIZES in (FONTSAVAILABLE (OR FAMILY '*) + '* NIL NIL 'DISPLAY FILESTOOFLG) do (pushnew SIZES (fetch (FONTSPEC + FSSIZE) + of FS)) + finally (RETURN (SORT SIZES]) (SK.SET.TEXT.VERT.ALIGN [LAMBDA (SKW NEWALIGN) (* rrb " 6-Nov-85 09:52") @@ -6058,8 +5879,6 @@ No more font sizes found."))) (RPAQ? SK.DEFAULT.TEXT.ALIGNMENT '(CENTER BASELINE)) -(RPAQ? \FONTSONFILE NIL) - (ADDTOVAR SK.HORIZONTAL.STYLES LEFT RIGHT CENTER) (ADDTOVAR SK.VERTICAL.STYLES TOP CENTER BASELINE BOTTOM) @@ -9280,137 +9099,136 @@ No more font sizes found."))) (fetch (REGION TOP) of REGION]) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (14510 24920 (INIT.SKETCH.ELEMENTS 14520 . 22083) (CREATE.SKETCH.ELEMENT.TYPE 22085 . -23607) (SKETCH.ELEMENT.TYPEP 23609 . 23997) (SKETCH.ELEMENT.NAMEP 23999 . 24262) ( -\CURSOR.IN.MIDDLE.MENU 24264 . 24918)) (24961 25638 (SKETCHINCOLORP 24971 . 25291) (READ.COLOR.CHANGE -25293 . 25636)) (26147 28926 (SK.CREATE.DEFAULT.FILLING 26157 . 26458) (SKFILLINGP 26460 . 27093) ( -SK.INSURE.FILLING 27095 . 28523) (SK.INSURE.COLOR 28525 . 28924)) (28927 34537 (SK.TRANSLATE.MODE -28937 . 29719) (SK.CHANGE.FILLING.MODE 29721 . 33304) (READ.FILLING.MODE 33306 . 34535)) (34538 65212 -(SKETCH.CREATE.CIRCLE 34548 . 35360) (CIRCLE.EXPANDFN 35362 . 38734) (CIRCLE.DRAWFN 38736 . 41737) ( -\CIRCLE.DRAWFN1 41739 . 44334) (CIRCLE.INPUTFN 44336 . 46185) (SK.UPDATE.CIRCLE.AFTER.CHANGE 46187 . -46546) (SK.READ.CIRCLE.POINT 46548 . 47019) (SK.SHOW.CIRCLE 47021 . 47667) (CIRCLE.INSIDEFN 47669 . -47934) (CIRCLE.REGIONFN 47936 . 49617) (CIRCLE.GLOBALREGIONFN 49619 . 51137) (CIRCLE.TRANSLATE 51139 - . 53000) (CIRCLE.READCHANGEFN 53002 . 57618) (CIRCLE.TRANSFORMFN 57620 . 59473) (CIRCLE.TRANSLATEPTS -59475 . 61089) (SK.CIRCLE.CREATE 61091 . 61934) (SET.CIRCLE.SCALE 61936 . 62702) (SK.BRUSH.READCHANGE -62704 . 65210)) (65213 65942 (SK.INSURE.BRUSH 65223 . 65617) (SK.INSURE.DASHING 65619 . 65940)) (67156 - 96650 (SKETCH.CREATE.ELLIPSE 67166 . 67765) (ELLIPSE.EXPANDFN 67767 . 71379) (ELLIPSE.DRAWFN 71381 . -75558) (ELLIPSE.INPUTFN 75560 . 78000) (SK.READ.ELLIPSE.MAJOR.PT 78002 . 78581) ( -SK.SHOW.ELLIPSE.MAJOR.RADIUS 78583 . 79338) (SK.READ.ELLIPSE.MINOR.PT 79340 . 80033) ( -SK.SHOW.ELLIPSE.MINOR.RADIUS 80035 . 80867) (ELLIPSE.INSIDEFN 80869 . 81139) (ELLIPSE.CREATE 81141 . -82516) (SK.UPDATE.ELLIPSE.AFTER.CHANGE 82518 . 82886) (ELLIPSE.REGIONFN 82888 . 85088) ( -ELLIPSE.GLOBALREGIONFN 85090 . 86903) (ELLIPSE.TRANSLATEFN 86905 . 89451) (ELLIPSE.TRANSFORMFN 89453 - . 90730) (ELLIPSE.TRANSLATEPTS 90732 . 92773) (MARK.SPOT 92775 . 94026) (DISTANCEBETWEEN 94028 . -94623) (SK.DISTANCE.TO 94625 . 95010) (SQUARE 95012 . 95054) (COMPUTE.ELLIPSE.ORIENTATION 95056 . -95775) (SK.COMPUTE.ELLIPSE.MINOR.RADIUS.PT 95777 . 96648)) (97763 138819 (SKETCH.CREATE.OPEN.CURVE -97773 . 98326) (OPENCURVE.INPUTFN 98328 . 99196) (SK.CURVE.CREATE 99198 . 100943) (MAXXEXTENT 100945 - . 101804) (MAXYEXTENT 101806 . 102666) (KNOT.SET.SCALE.FIELD 102668 . 103470) (OPENCURVE.DRAWFN -103472 . 104603) (OPENCURVE.EXPANDFN 104605 . 107920) (OPENCURVE.READCHANGEFN 107922 . 111124) ( -OPENCURVE.TRANSFORMFN 111126 . 113624) (OPENCURVE.TRANSLATEFN 113626 . 114048) ( -OPENCURVE.TRANSLATEPTSFN 114050 . 115431) (SKETCH.CREATE.CLOSED.CURVE 115433 . 115939) ( -CLOSEDCURVE.DRAWFN 115941 . 116725) (CLOSEDCURVE.EXPANDFN 116727 . 119840) (CLOSEDCURVE.REGIONFN -119842 . 120639) (CLOSEDCURVE.GLOBALREGIONFN 120641 . 122074) (READ.LIST.OF.POINTS 122076 . 124055) ( -CLOSEDCURVE.INPUTFN 124057 . 124702) (CLOSEDCURVE.READCHANGEFN 124704 . 127599) ( -CLOSEDCURVE.TRANSFORMFN 127601 . 129401) (CLOSEDCURVE.TRANSLATEPTSFN 129403 . 130748) (INVISIBLEPARTP -130750 . 131103) (SHOWSKETCHPOINT 131105 . 131410) (SHOWSKETCHXY 131412 . 131930) (KNOTS.REGIONFN -131932 . 132833) (OPENWIRE.GLOBALREGIONFN 132835 . 133699) (CURVE.REGIONFN 133701 . 134642) ( -OPENCURVE.GLOBALREGIONFN 134644 . 136051) (KNOTS.TRANSLATEFN 136053 . 137096) (REGION.CONTAINING.PTS -137098 . 138817)) (138820 161096 (CHANGE.ELTS.BRUSH.SIZE 138830 . 139440) (CHANGE.ELTS.BRUSH 139442 . -139959) (CHANGE.ELTS.BRUSH.SHAPE 139961 . 140362) (SK.CHANGE.BRUSH.SHAPE 140364 . 143876) ( -SK.CHANGE.BRUSH.COLOR 143878 . 148324) (SK.CHANGE.BRUSH.SIZE 148326 . 153284) (SK.CHANGE.ANGLE 153286 - . 156266) (SK.CHANGE.ARC.DIRECTION 156268 . 158647) (SK.SET.DEFAULT.BRUSH.SIZE 158649 . 159348) ( -READSIZECHANGE 159350 . 161094)) (161097 162716 (SK.CHANGE.ELEMENT.KNOTS 161107 . 162714)) (162717 -163364 (SK.INSURE.POINT.LIST 162727 . 163180) (SK.INSURE.POSITION 163182 . 163362)) (164732 197055 ( -SKETCH.CREATE.WIRE 164742 . 165232) (CLOSEDWIRE.EXPANDFN 165234 . 167922) (KNOTS.INSIDEFN 167924 . -168645) (OPEN.WIRE.DRAWFN 168647 . 169239) (WIRE.EXPANDFN 169241 . 172488) ( -SK.UPDATE.WIRE.ELT.AFTER.CHANGE 172490 . 173011) (OPENWIRE.READCHANGEFN 173013 . 175506) ( -OPENWIRE.TRANSFORMFN 175508 . 177631) (OPENWIRE.TRANSLATEFN 177633 . 178057) (OPENWIRE.TRANSLATEPTSFN -178059 . 179338) (WIRE.INPUTFN 179340 . 180971) (SK.READ.WIRE.POINTS 180973 . 181504) ( -SK.READ.POINTS.WITH.FEEDBACK 181506 . 184273) (OPENWIRE.FEEDBACKFN 184275 . 185029) ( -CLOSEDWIRE.FEEDBACKFN 185031 . 186387) (CLOSEDWIRE.REGIONFN 186389 . 187374) ( -CLOSEDWIRE.GLOBALREGIONFN 187376 . 188428) (SK.WIRE.CREATE 188430 . 190193) (WIRE.ADD.POINT.TO.END -190195 . 191111) (READ.ARROW.CHANGE 191113 . 196589) (CHANGE.ELTS.ARROWHEADS 196591 . 197053)) (197056 - 208062 (SKETCH.CREATE.CLOSED.WIRE 197066 . 197627) (CLOSED.WIRE.INPUTFN 197629 . 197984) ( -CLOSED.WIRE.DRAWFN 197986 . 200031) (CLOSEDWIRE.READCHANGEFN 200033 . 204938) (CLOSEDWIRE.TRANSFORMFN -204940 . 206734) (CLOSEDWIRE.TRANSLATEPTSFN 206736 . 208060)) (208063 260769 (SK.EXPAND.ARROWHEADS -208073 . 208423) (SK.COMPUTE.ARC.ARROWHEAD.POINTS 208425 . 209806) (ARC.ARROWHEAD.POINTS 209808 . -211031) (SET.ARC.ARROWHEAD.POINTS 211033 . 212014) (SET.OPENCURVE.ARROWHEAD.POINTS 212016 . 212917) ( -SK.COMPUTE.CURVE.ARROWHEAD.POINTS 212919 . 214189) (SET.WIRE.ARROWHEAD.POINTS 214191 . 214944) ( -SK.COMPUTE.WIRE.ARROWHEAD.POINTS 214946 . 216211) (SK.EXPAND.ARROWHEAD 216213 . 217396) (CHANGED.ARROW - 217398 . 220570) (SK.CHANGE.ARROWHEAD 220572 . 221025) (SK.CHANGE.ARROWHEAD1 221027 . 226282) ( -SK.CREATE.ARROWHEAD 226284 . 226804) (SK.ARROWHEAD.CREATE 226806 . 228380) (SK.ARROWHEAD.END.TEST -228382 . 229306) (READ.ARROWHEAD.END 229308 . 231333) (ARROW.HEAD.POSITIONS 231335 . 233175) ( -ARROWHEAD.POINTS.LIST 233177 . 237149) (CURVE.ARROWHEAD.POINTS 237151 . 238014) (LEFT.MOST.IS.BEGINP -238016 . 238897) (WIRE.ARROWHEAD.POINTS 238899 . 240425) (DRAWARROWHEADS 240427 . 242797) ( -\SK.DRAW.TRIANGLE.ARROWHEAD 242799 . 244459) (\SK.ENDPT.OF.ARROW 244461 . 246718) ( -\SK.ADJUST.FOR.ARROWHEADS 246720 . 249225) (SK.SET.ARROWHEAD.LENGTH 249227 . 250371) ( -SK.SET.ARROWHEAD.ANGLE 250373 . 251469) (SK.SET.ARROWHEAD.TYPE 251471 . 254760) (SK.SET.LINE.ARROWHEAD - 254762 . 257175) (SK.UPDATE.ARROWHEAD.FORMAT 257177 . 259287) (SK.SET.LINE.LENGTH.MODE 259289 . -260767)) (260770 262571 (SK.INSURE.ARROWHEADS 260780 . 261962) (SK.ARROWHEADP 261964 . 262569)) ( -265368 327694 (SKETCH.CREATE.TEXT 265378 . 265892) (TEXT.CHANGEFN 265894 . 266286) (TEXT.READCHANGEFN -266288 . 274359) (\SK.READ.FONT.SIZE1 274361 . 276257) (SK.TEXT.ELT.WITH.SAME.FIELDS 276259 . 277899) -(SK.READFONTFAMILY 277901 . 279447) (CLOSE.PROMPT.WINDOW 279449 . 279873) (TEXT.DRAWFN 279875 . 280596 -) (TEXT.DRAWFN1 280598 . 284100) (TEXT.INSIDEFN 284102 . 284491) (TEXT.EXPANDFN 284493 . 286618) ( -SK.TEXT.LINE.REGIONS 286620 . 288494) (TEXT.UPDATE.GLOBAL.REGIONS 288496 . 289728) (REL.MOVE.REGION -289730 . 290267) (LTEXT.LINE.REGIONS 290269 . 293687) (TEXT.INPUTFN 293689 . 294199) (READ.TEXT 294201 - . 294949) (TEXT.POSITION.AND.CREATE 294951 . 297262) (CREATE.TEXT.ELEMENT 297264 . 298082) ( -SK.UPDATE.TEXT.AFTER.CHANGE 298084 . 298486) (SK.TEXT.FROM.TEXTBOX 298488 . 302294) ( -TEXT.SET.GLOBAL.REGIONS 302296 . 303589) (TEXT.REGIONFN 303591 . 304361) (TEXT.GLOBALREGIONFN 304363 - . 305051) (TEXT.TRANSLATEFN 305053 . 306368) (TEXT.TRANSFORMFN 306370 . 307493) (TEXT.TRANSLATEPTSFN -307495 . 308012) (TEXT.UPDATEFN 308014 . 312670) (SK.CHANGE.TEXT 312672 . 325760) (TEXT.SET.SCALES -325762 . 326730) (BREAK.AT.CARRIAGE.RETURNS 326732 . 327692)) (327695 346219 (ADD.KNOWN.SKETCH.FONT -327705 . 328696) (SK.PICK.FONT 328698 . 334230) (SK.CHOOSE.TEXT.FONT 334232 . 338180) (SK.NEXTSIZEFONT - 338182 . 339449) (SK.DECREASING.FONT.LIST 339451 . 341324) (SK.GUESS.FONTSAVAILABLE 341326 . 346217)) - (346638 360781 (SK.SET.FONT 346648 . 348215) (SK.SET.TEXT.FONT 348217 . 349219) (SK.SET.TEXT.SIZE -349221 . 349908) (SK.SET.TEXT.HORIZ.ALIGN 349910 . 351484) (SK.READFONTSIZE 351486 . 353716) ( -SK.COLLECT.FONT.SIZES 353718 . 356636) (SK.SET.TEXT.VERT.ALIGN 356638 . 358680) (SK.SET.TEXT.LOOKS -358682 . 360139) (SK.SET.DEFAULT.TEXT.FACE 360141 . 360779)) (360782 361368 (CREATE.SKETCH.TERMTABLE -360792 . 361366)) (361369 363135 (SK.FONT.LIST 361379 . 361705) (SK.INSURE.FONT 361707 . 362229) ( -SK.INSURE.STYLE 362231 . 362749) (SK.INSURE.TEXT 362751 . 363133)) (363705 420998 ( -SKETCH.CREATE.TEXTBOX 363715 . 365357) (SK.COMPUTE.TEXTBOX.REGION.FOR.STRING 365359 . 367436) ( -SK.BREAK.INTO.LINES 367438 . 378624) (SK.BRUSH.SIZE 378626 . 379007) (SK.TEXTBOX.CREATE 379009 . -379806) (SK.TEXTBOX.CREATE1 379808 . 380872) (SK.UPDATE.TEXTBOX.AFTER.CHANGE 380874 . 381414) ( -SK.TEXTBOX.POSITION.IN.BOX 381416 . 383327) (TEXTBOX.CHANGEFN 383329 . 383803) (TEXTBOX.DRAWFN 383805 - . 385841) (SK.TEXTURE.AROUND.REGIONS 385843 . 391916) (ALL.EMPTY.REGIONS 391918 . 392408) ( -TEXTBOX.EXPANDFN 392410 . 399566) (TEXTBOX.INPUTFN 399568 . 401181) (TEXTBOX.INSIDEFN 401183 . 401596) - (TEXTBOX.REGIONFN 401598 . 402452) (TEXTBOX.GLOBALREGIONFN 402454 . 402782) ( -TEXTBOX.SET.GLOBAL.REGIONS 402784 . 404115) (TEXTBOX.TRANSLATEFN 404117 . 405958) ( -TEXTBOX.TRANSLATEPTSFN 405960 . 408743) (TEXTBOX.TRANSFORMFN 408745 . 410413) (TEXTBOX.UPDATEFN 410415 - . 412308) (TEXTBOX.READCHANGEFN 412310 . 417199) (SK.TEXTBOX.TEXT.POSITION 417201 . 417622) ( -SK.TEXTBOX.FROM.TEXT 417624 . 420229) (ADD.EOLS 420231 . 420996)) (421527 425028 ( -SK.SET.TEXTBOX.VERT.ALIGN 421537 . 423417) (SK.SET.TEXTBOX.HORIZ.ALIGN 423419 . 425026)) (425411 -469886 (SKETCH.CREATE.BOX 425421 . 425904) (SK.BOX.DRAWFN 425906 . 427065) (BOX.DRAWFN1 427067 . -429906) (KNOTS.OF.REGION 429908 . 431142) (SK.DRAWAREABOX 431144 . 437745) (SK.DRAWBOX 437747 . 438936 -) (SK.BOX.EXPANDFN 438938 . 442686) (SK.BOX.GETREGIONFN 442688 . 443874) (BOX.SET.SCALES 443876 . -445116) (SK.BOX.INPUTFN 445118 . 447051) (SK.BOX.CREATE 447053 . 447754) (SK.UPDATE.BOX.AFTER.CHANGE -447756 . 448267) (SK.BOX.INSIDEFN 448269 . 448659) (SK.BOX.REGIONFN 448661 . 449374) ( -SK.BOX.GLOBALREGIONFN 449376 . 450114) (SK.BOX.READCHANGEFN 450116 . 453837) (SK.CHANGE.FILLING 453839 - . 457787) (SK.CHANGE.FILLING.COLOR 457789 . 461445) (SK.BOX.TRANSLATEFN 461447 . 462626) ( -SK.BOX.TRANSFORMFN 462628 . 463573) (SK.BOX.TRANSLATEPTSFN 463575 . 465943) (UNSCALE.REGION.TO.GRID -465945 . 466870) (INCREASEREGION 466872 . 467463) (INSUREREGIONSIZE 467465 . 468636) (EXPANDREGION -468638 . 469518) (REGION.FROM.COORDINATES 469520 . 469884)) (470422 496777 (SKETCH.CREATE.ARC 470432 - . 471241) (ARC.DRAWFN 471243 . 472970) (ARC.EXPANDFN 472972 . 475305) (ARC.INPUTFN 475307 . 479525) ( -SK.INVERT.CIRCLE 479527 . 480387) (SK.READ.ARC.ANGLE.POINT 480389 . 480896) (SK.SHOW.ARC 480898 . -481508) (ARC.CREATE 481510 . 482865) (SK.UPDATE.ARC.AFTER.CHANGE 482867 . 483207) (ARC.MOVEFN 483209 - . 484792) (ARC.TRANSLATEPTS 484794 . 486679) (ARC.INSIDEFN 486681 . 486931) (ARC.REGIONFN 486933 . -488069) (ARC.GLOBALREGIONFN 488071 . 489793) (ARC.TRANSLATE 489795 . 490777) (ARC.TRANSFORMFN 490779 - . 493729) (ARC.READCHANGEFN 493731 . 496775)) (496778 505857 (SK.COMPUTE.ARC.ANGLE.PT 496788 . 497714 -) (SK.COMPUTE.ARC.ANGLE.PT.FROM.ANGLE 497716 . 498709) (SK.COMPUTE.ARC.PTS 498711 . 502283) ( -SK.SET.ARC.DIRECTION 502285 . 502859) (SK.SET.ARC.DIRECTION.CW 502861 . 503035) ( -SK.SET.ARC.DIRECTION.CCW 503037 . 503310) (SK.COMPUTE.SLOPE.OF.LINE 503312 . 503804) ( -SK.CREATE.ARC.USING 503806 . 505043) (SET.ARC.SCALES 505045 . 505855)) (505858 506303 ( -SK.INSURE.DIRECTION 505868 . 506301)) (507674 553533 (GETSKETCHELEMENTPROP 507684 . 508992) ( -\SK.GET.ARC.ANGLEPT 508994 . 509555) (\GETSKETCHELEMENTPROP1 509557 . 509811) (\SK.GET.BRUSH 509813 . -510737) (\SK.GET.FILLING 510739 . 511837) (\SK.GET.ARROWHEADS 511839 . 512618) (\SK.GET.FONT 512620 . -513100) (\SK.GET.JUSTIFICATION 513102 . 513626) (\SK.GET.DIRECTION 513628 . 514105) (\SK.GET.DASHING -514107 . 515126) (PUTSKETCHELEMENTPROP 515128 . 517397) (\SK.PUT.FILLING 517399 . 518669) ( -ADDSKETCHELEMENTPROP 518671 . 519476) (REMOVESKETCHELEMENTPROP 519478 . 520267) (\SK.PUT.FONT 520269 - . 521083) (\SK.PUT.JUSTIFICATION 521085 . 522096) (\SK.PUT.DIRECTION 522098 . 522705) ( -\SK.PUT.DASHING 522707 . 524042) (\SK.PUT.BRUSH 524044 . 525963) (\SK.PUT.ARROWHEADS 525965 . 527931) -(SK.COPY.ELEMENT.PROPERTY.LIST 527933 . 528509) (SKETCH.UPDATE 528511 . 529241) (SKETCH.UPDATE1 529243 - . 530531) (\SKELT.GET.SCALE 530533 . 531521) (\SKELT.PUT.SCALE 531523 . 532830) (\SKELT.PUT.DATA -532832 . 534629) (SK.REPLACE.TEXT.IN.ELEMENT 534631 . 535584) (\SKELT.GET.DATA 535586 . 536653) ( -\SK.GET.1STCONTROLPT 536655 . 538167) (\SK.PUT.1STCONTROLPT 538169 . 543642) (\SK.GET.2NDCONTROLPT -543644 . 544559) (\SK.PUT.2NDCONTROLPT 544561 . 548749) (\SK.GET.3RDCONTROLPT 548751 . 549629) ( -\SK.PUT.3RDCONTROLPT 549631 . 553531)) (553534 554115 (LOWERLEFTCORNER 553544 . 553790) ( -UPPERRIGHTCORNER 553792 . 554113))))) + (FILEMAP (NIL (14369 24779 (INIT.SKETCH.ELEMENTS 14379 . 21942) (CREATE.SKETCH.ELEMENT.TYPE 21944 . +23466) (SKETCH.ELEMENT.TYPEP 23468 . 23856) (SKETCH.ELEMENT.NAMEP 23858 . 24121) ( +\CURSOR.IN.MIDDLE.MENU 24123 . 24777)) (24820 25497 (SKETCHINCOLORP 24830 . 25150) (READ.COLOR.CHANGE +25152 . 25495)) (26006 28785 (SK.CREATE.DEFAULT.FILLING 26016 . 26317) (SKFILLINGP 26319 . 26952) ( +SK.INSURE.FILLING 26954 . 28382) (SK.INSURE.COLOR 28384 . 28783)) (28786 34396 (SK.TRANSLATE.MODE +28796 . 29578) (SK.CHANGE.FILLING.MODE 29580 . 33163) (READ.FILLING.MODE 33165 . 34394)) (34397 65071 +(SKETCH.CREATE.CIRCLE 34407 . 35219) (CIRCLE.EXPANDFN 35221 . 38593) (CIRCLE.DRAWFN 38595 . 41596) ( +\CIRCLE.DRAWFN1 41598 . 44193) (CIRCLE.INPUTFN 44195 . 46044) (SK.UPDATE.CIRCLE.AFTER.CHANGE 46046 . +46405) (SK.READ.CIRCLE.POINT 46407 . 46878) (SK.SHOW.CIRCLE 46880 . 47526) (CIRCLE.INSIDEFN 47528 . +47793) (CIRCLE.REGIONFN 47795 . 49476) (CIRCLE.GLOBALREGIONFN 49478 . 50996) (CIRCLE.TRANSLATE 50998 + . 52859) (CIRCLE.READCHANGEFN 52861 . 57477) (CIRCLE.TRANSFORMFN 57479 . 59332) (CIRCLE.TRANSLATEPTS +59334 . 60948) (SK.CIRCLE.CREATE 60950 . 61793) (SET.CIRCLE.SCALE 61795 . 62561) (SK.BRUSH.READCHANGE +62563 . 65069)) (65072 65801 (SK.INSURE.BRUSH 65082 . 65476) (SK.INSURE.DASHING 65478 . 65799)) (67015 + 96509 (SKETCH.CREATE.ELLIPSE 67025 . 67624) (ELLIPSE.EXPANDFN 67626 . 71238) (ELLIPSE.DRAWFN 71240 . +75417) (ELLIPSE.INPUTFN 75419 . 77859) (SK.READ.ELLIPSE.MAJOR.PT 77861 . 78440) ( +SK.SHOW.ELLIPSE.MAJOR.RADIUS 78442 . 79197) (SK.READ.ELLIPSE.MINOR.PT 79199 . 79892) ( +SK.SHOW.ELLIPSE.MINOR.RADIUS 79894 . 80726) (ELLIPSE.INSIDEFN 80728 . 80998) (ELLIPSE.CREATE 81000 . +82375) (SK.UPDATE.ELLIPSE.AFTER.CHANGE 82377 . 82745) (ELLIPSE.REGIONFN 82747 . 84947) ( +ELLIPSE.GLOBALREGIONFN 84949 . 86762) (ELLIPSE.TRANSLATEFN 86764 . 89310) (ELLIPSE.TRANSFORMFN 89312 + . 90589) (ELLIPSE.TRANSLATEPTS 90591 . 92632) (MARK.SPOT 92634 . 93885) (DISTANCEBETWEEN 93887 . +94482) (SK.DISTANCE.TO 94484 . 94869) (SQUARE 94871 . 94913) (COMPUTE.ELLIPSE.ORIENTATION 94915 . +95634) (SK.COMPUTE.ELLIPSE.MINOR.RADIUS.PT 95636 . 96507)) (97622 138678 (SKETCH.CREATE.OPEN.CURVE +97632 . 98185) (OPENCURVE.INPUTFN 98187 . 99055) (SK.CURVE.CREATE 99057 . 100802) (MAXXEXTENT 100804 + . 101663) (MAXYEXTENT 101665 . 102525) (KNOT.SET.SCALE.FIELD 102527 . 103329) (OPENCURVE.DRAWFN +103331 . 104462) (OPENCURVE.EXPANDFN 104464 . 107779) (OPENCURVE.READCHANGEFN 107781 . 110983) ( +OPENCURVE.TRANSFORMFN 110985 . 113483) (OPENCURVE.TRANSLATEFN 113485 . 113907) ( +OPENCURVE.TRANSLATEPTSFN 113909 . 115290) (SKETCH.CREATE.CLOSED.CURVE 115292 . 115798) ( +CLOSEDCURVE.DRAWFN 115800 . 116584) (CLOSEDCURVE.EXPANDFN 116586 . 119699) (CLOSEDCURVE.REGIONFN +119701 . 120498) (CLOSEDCURVE.GLOBALREGIONFN 120500 . 121933) (READ.LIST.OF.POINTS 121935 . 123914) ( +CLOSEDCURVE.INPUTFN 123916 . 124561) (CLOSEDCURVE.READCHANGEFN 124563 . 127458) ( +CLOSEDCURVE.TRANSFORMFN 127460 . 129260) (CLOSEDCURVE.TRANSLATEPTSFN 129262 . 130607) (INVISIBLEPARTP +130609 . 130962) (SHOWSKETCHPOINT 130964 . 131269) (SHOWSKETCHXY 131271 . 131789) (KNOTS.REGIONFN +131791 . 132692) (OPENWIRE.GLOBALREGIONFN 132694 . 133558) (CURVE.REGIONFN 133560 . 134501) ( +OPENCURVE.GLOBALREGIONFN 134503 . 135910) (KNOTS.TRANSLATEFN 135912 . 136955) (REGION.CONTAINING.PTS +136957 . 138676)) (138679 160955 (CHANGE.ELTS.BRUSH.SIZE 138689 . 139299) (CHANGE.ELTS.BRUSH 139301 . +139818) (CHANGE.ELTS.BRUSH.SHAPE 139820 . 140221) (SK.CHANGE.BRUSH.SHAPE 140223 . 143735) ( +SK.CHANGE.BRUSH.COLOR 143737 . 148183) (SK.CHANGE.BRUSH.SIZE 148185 . 153143) (SK.CHANGE.ANGLE 153145 + . 156125) (SK.CHANGE.ARC.DIRECTION 156127 . 158506) (SK.SET.DEFAULT.BRUSH.SIZE 158508 . 159207) ( +READSIZECHANGE 159209 . 160953)) (160956 162575 (SK.CHANGE.ELEMENT.KNOTS 160966 . 162573)) (162576 +163223 (SK.INSURE.POINT.LIST 162586 . 163039) (SK.INSURE.POSITION 163041 . 163221)) (164591 196914 ( +SKETCH.CREATE.WIRE 164601 . 165091) (CLOSEDWIRE.EXPANDFN 165093 . 167781) (KNOTS.INSIDEFN 167783 . +168504) (OPEN.WIRE.DRAWFN 168506 . 169098) (WIRE.EXPANDFN 169100 . 172347) ( +SK.UPDATE.WIRE.ELT.AFTER.CHANGE 172349 . 172870) (OPENWIRE.READCHANGEFN 172872 . 175365) ( +OPENWIRE.TRANSFORMFN 175367 . 177490) (OPENWIRE.TRANSLATEFN 177492 . 177916) (OPENWIRE.TRANSLATEPTSFN +177918 . 179197) (WIRE.INPUTFN 179199 . 180830) (SK.READ.WIRE.POINTS 180832 . 181363) ( +SK.READ.POINTS.WITH.FEEDBACK 181365 . 184132) (OPENWIRE.FEEDBACKFN 184134 . 184888) ( +CLOSEDWIRE.FEEDBACKFN 184890 . 186246) (CLOSEDWIRE.REGIONFN 186248 . 187233) ( +CLOSEDWIRE.GLOBALREGIONFN 187235 . 188287) (SK.WIRE.CREATE 188289 . 190052) (WIRE.ADD.POINT.TO.END +190054 . 190970) (READ.ARROW.CHANGE 190972 . 196448) (CHANGE.ELTS.ARROWHEADS 196450 . 196912)) (196915 + 207921 (SKETCH.CREATE.CLOSED.WIRE 196925 . 197486) (CLOSED.WIRE.INPUTFN 197488 . 197843) ( +CLOSED.WIRE.DRAWFN 197845 . 199890) (CLOSEDWIRE.READCHANGEFN 199892 . 204797) (CLOSEDWIRE.TRANSFORMFN +204799 . 206593) (CLOSEDWIRE.TRANSLATEPTSFN 206595 . 207919)) (207922 260628 (SK.EXPAND.ARROWHEADS +207932 . 208282) (SK.COMPUTE.ARC.ARROWHEAD.POINTS 208284 . 209665) (ARC.ARROWHEAD.POINTS 209667 . +210890) (SET.ARC.ARROWHEAD.POINTS 210892 . 211873) (SET.OPENCURVE.ARROWHEAD.POINTS 211875 . 212776) ( +SK.COMPUTE.CURVE.ARROWHEAD.POINTS 212778 . 214048) (SET.WIRE.ARROWHEAD.POINTS 214050 . 214803) ( +SK.COMPUTE.WIRE.ARROWHEAD.POINTS 214805 . 216070) (SK.EXPAND.ARROWHEAD 216072 . 217255) (CHANGED.ARROW + 217257 . 220429) (SK.CHANGE.ARROWHEAD 220431 . 220884) (SK.CHANGE.ARROWHEAD1 220886 . 226141) ( +SK.CREATE.ARROWHEAD 226143 . 226663) (SK.ARROWHEAD.CREATE 226665 . 228239) (SK.ARROWHEAD.END.TEST +228241 . 229165) (READ.ARROWHEAD.END 229167 . 231192) (ARROW.HEAD.POSITIONS 231194 . 233034) ( +ARROWHEAD.POINTS.LIST 233036 . 237008) (CURVE.ARROWHEAD.POINTS 237010 . 237873) (LEFT.MOST.IS.BEGINP +237875 . 238756) (WIRE.ARROWHEAD.POINTS 238758 . 240284) (DRAWARROWHEADS 240286 . 242656) ( +\SK.DRAW.TRIANGLE.ARROWHEAD 242658 . 244318) (\SK.ENDPT.OF.ARROW 244320 . 246577) ( +\SK.ADJUST.FOR.ARROWHEADS 246579 . 249084) (SK.SET.ARROWHEAD.LENGTH 249086 . 250230) ( +SK.SET.ARROWHEAD.ANGLE 250232 . 251328) (SK.SET.ARROWHEAD.TYPE 251330 . 254619) (SK.SET.LINE.ARROWHEAD + 254621 . 257034) (SK.UPDATE.ARROWHEAD.FORMAT 257036 . 259146) (SK.SET.LINE.LENGTH.MODE 259148 . +260626)) (260629 262430 (SK.INSURE.ARROWHEADS 260639 . 261821) (SK.ARROWHEADP 261823 . 262428)) ( +265227 328477 (SKETCH.CREATE.TEXT 265237 . 265751) (TEXT.CHANGEFN 265753 . 266145) (TEXT.READCHANGEFN +266147 . 274218) (\SK.READ.FONT.SIZE1 274220 . 276116) (SK.TEXT.ELT.WITH.SAME.FIELDS 276118 . 277758) +(SK.READFONTFAMILY 277760 . 280230) (CLOSE.PROMPT.WINDOW 280232 . 280656) (TEXT.DRAWFN 280658 . 281379 +) (TEXT.DRAWFN1 281381 . 284883) (TEXT.INSIDEFN 284885 . 285274) (TEXT.EXPANDFN 285276 . 287401) ( +SK.TEXT.LINE.REGIONS 287403 . 289277) (TEXT.UPDATE.GLOBAL.REGIONS 289279 . 290511) (REL.MOVE.REGION +290513 . 291050) (LTEXT.LINE.REGIONS 291052 . 294470) (TEXT.INPUTFN 294472 . 294982) (READ.TEXT 294984 + . 295732) (TEXT.POSITION.AND.CREATE 295734 . 298045) (CREATE.TEXT.ELEMENT 298047 . 298865) ( +SK.UPDATE.TEXT.AFTER.CHANGE 298867 . 299269) (SK.TEXT.FROM.TEXTBOX 299271 . 303077) ( +TEXT.SET.GLOBAL.REGIONS 303079 . 304372) (TEXT.REGIONFN 304374 . 305144) (TEXT.GLOBALREGIONFN 305146 + . 305834) (TEXT.TRANSLATEFN 305836 . 307151) (TEXT.TRANSFORMFN 307153 . 308276) (TEXT.TRANSLATEPTSFN +308278 . 308795) (TEXT.UPDATEFN 308797 . 313453) (SK.CHANGE.TEXT 313455 . 326543) (TEXT.SET.SCALES +326545 . 327513) (BREAK.AT.CARRIAGE.RETURNS 327515 . 328475)) (328478 341098 (SK.PICK.FONT 328488 . +332760) (SK.CHOOSE.TEXT.FONT 332762 . 337033) (SK.NEXTSIZEFONT 337035 . 338302) ( +SK.DECREASING.FONT.LIST 338304 . 341096)) (341517 353191 (SK.SET.FONT 341527 . 342794) ( +SK.SET.TEXT.FONT 342796 . 343798) (SK.SET.TEXT.SIZE 343800 . 344487) (SK.SET.TEXT.HORIZ.ALIGN 344489 + . 346063) (SK.READFONTSIZE 346065 . 347963) (SK.COLLECT.FONT.SIZES 347965 . 349046) ( +SK.SET.TEXT.VERT.ALIGN 349048 . 351090) (SK.SET.TEXT.LOOKS 351092 . 352549) (SK.SET.DEFAULT.TEXT.FACE +352551 . 353189)) (353192 353778 (CREATE.SKETCH.TERMTABLE 353202 . 353776)) (353779 355545 ( +SK.FONT.LIST 353789 . 354115) (SK.INSURE.FONT 354117 . 354639) (SK.INSURE.STYLE 354641 . 355159) ( +SK.INSURE.TEXT 355161 . 355543)) (356085 413378 (SKETCH.CREATE.TEXTBOX 356095 . 357737) ( +SK.COMPUTE.TEXTBOX.REGION.FOR.STRING 357739 . 359816) (SK.BREAK.INTO.LINES 359818 . 371004) ( +SK.BRUSH.SIZE 371006 . 371387) (SK.TEXTBOX.CREATE 371389 . 372186) (SK.TEXTBOX.CREATE1 372188 . 373252 +) (SK.UPDATE.TEXTBOX.AFTER.CHANGE 373254 . 373794) (SK.TEXTBOX.POSITION.IN.BOX 373796 . 375707) ( +TEXTBOX.CHANGEFN 375709 . 376183) (TEXTBOX.DRAWFN 376185 . 378221) (SK.TEXTURE.AROUND.REGIONS 378223 + . 384296) (ALL.EMPTY.REGIONS 384298 . 384788) (TEXTBOX.EXPANDFN 384790 . 391946) (TEXTBOX.INPUTFN +391948 . 393561) (TEXTBOX.INSIDEFN 393563 . 393976) (TEXTBOX.REGIONFN 393978 . 394832) ( +TEXTBOX.GLOBALREGIONFN 394834 . 395162) (TEXTBOX.SET.GLOBAL.REGIONS 395164 . 396495) ( +TEXTBOX.TRANSLATEFN 396497 . 398338) (TEXTBOX.TRANSLATEPTSFN 398340 . 401123) (TEXTBOX.TRANSFORMFN +401125 . 402793) (TEXTBOX.UPDATEFN 402795 . 404688) (TEXTBOX.READCHANGEFN 404690 . 409579) ( +SK.TEXTBOX.TEXT.POSITION 409581 . 410002) (SK.TEXTBOX.FROM.TEXT 410004 . 412609) (ADD.EOLS 412611 . +413376)) (413907 417408 (SK.SET.TEXTBOX.VERT.ALIGN 413917 . 415797) (SK.SET.TEXTBOX.HORIZ.ALIGN 415799 + . 417406)) (417791 462266 (SKETCH.CREATE.BOX 417801 . 418284) (SK.BOX.DRAWFN 418286 . 419445) ( +BOX.DRAWFN1 419447 . 422286) (KNOTS.OF.REGION 422288 . 423522) (SK.DRAWAREABOX 423524 . 430125) ( +SK.DRAWBOX 430127 . 431316) (SK.BOX.EXPANDFN 431318 . 435066) (SK.BOX.GETREGIONFN 435068 . 436254) ( +BOX.SET.SCALES 436256 . 437496) (SK.BOX.INPUTFN 437498 . 439431) (SK.BOX.CREATE 439433 . 440134) ( +SK.UPDATE.BOX.AFTER.CHANGE 440136 . 440647) (SK.BOX.INSIDEFN 440649 . 441039) (SK.BOX.REGIONFN 441041 + . 441754) (SK.BOX.GLOBALREGIONFN 441756 . 442494) (SK.BOX.READCHANGEFN 442496 . 446217) ( +SK.CHANGE.FILLING 446219 . 450167) (SK.CHANGE.FILLING.COLOR 450169 . 453825) (SK.BOX.TRANSLATEFN +453827 . 455006) (SK.BOX.TRANSFORMFN 455008 . 455953) (SK.BOX.TRANSLATEPTSFN 455955 . 458323) ( +UNSCALE.REGION.TO.GRID 458325 . 459250) (INCREASEREGION 459252 . 459843) (INSUREREGIONSIZE 459845 . +461016) (EXPANDREGION 461018 . 461898) (REGION.FROM.COORDINATES 461900 . 462264)) (462802 489157 ( +SKETCH.CREATE.ARC 462812 . 463621) (ARC.DRAWFN 463623 . 465350) (ARC.EXPANDFN 465352 . 467685) ( +ARC.INPUTFN 467687 . 471905) (SK.INVERT.CIRCLE 471907 . 472767) (SK.READ.ARC.ANGLE.POINT 472769 . +473276) (SK.SHOW.ARC 473278 . 473888) (ARC.CREATE 473890 . 475245) (SK.UPDATE.ARC.AFTER.CHANGE 475247 + . 475587) (ARC.MOVEFN 475589 . 477172) (ARC.TRANSLATEPTS 477174 . 479059) (ARC.INSIDEFN 479061 . +479311) (ARC.REGIONFN 479313 . 480449) (ARC.GLOBALREGIONFN 480451 . 482173) (ARC.TRANSLATE 482175 . +483157) (ARC.TRANSFORMFN 483159 . 486109) (ARC.READCHANGEFN 486111 . 489155)) (489158 498237 ( +SK.COMPUTE.ARC.ANGLE.PT 489168 . 490094) (SK.COMPUTE.ARC.ANGLE.PT.FROM.ANGLE 490096 . 491089) ( +SK.COMPUTE.ARC.PTS 491091 . 494663) (SK.SET.ARC.DIRECTION 494665 . 495239) (SK.SET.ARC.DIRECTION.CW +495241 . 495415) (SK.SET.ARC.DIRECTION.CCW 495417 . 495690) (SK.COMPUTE.SLOPE.OF.LINE 495692 . 496184) + (SK.CREATE.ARC.USING 496186 . 497423) (SET.ARC.SCALES 497425 . 498235)) (498238 498683 ( +SK.INSURE.DIRECTION 498248 . 498681)) (500054 545913 (GETSKETCHELEMENTPROP 500064 . 501372) ( +\SK.GET.ARC.ANGLEPT 501374 . 501935) (\GETSKETCHELEMENTPROP1 501937 . 502191) (\SK.GET.BRUSH 502193 . +503117) (\SK.GET.FILLING 503119 . 504217) (\SK.GET.ARROWHEADS 504219 . 504998) (\SK.GET.FONT 505000 . +505480) (\SK.GET.JUSTIFICATION 505482 . 506006) (\SK.GET.DIRECTION 506008 . 506485) (\SK.GET.DASHING +506487 . 507506) (PUTSKETCHELEMENTPROP 507508 . 509777) (\SK.PUT.FILLING 509779 . 511049) ( +ADDSKETCHELEMENTPROP 511051 . 511856) (REMOVESKETCHELEMENTPROP 511858 . 512647) (\SK.PUT.FONT 512649 + . 513463) (\SK.PUT.JUSTIFICATION 513465 . 514476) (\SK.PUT.DIRECTION 514478 . 515085) ( +\SK.PUT.DASHING 515087 . 516422) (\SK.PUT.BRUSH 516424 . 518343) (\SK.PUT.ARROWHEADS 518345 . 520311) +(SK.COPY.ELEMENT.PROPERTY.LIST 520313 . 520889) (SKETCH.UPDATE 520891 . 521621) (SKETCH.UPDATE1 521623 + . 522911) (\SKELT.GET.SCALE 522913 . 523901) (\SKELT.PUT.SCALE 523903 . 525210) (\SKELT.PUT.DATA +525212 . 527009) (SK.REPLACE.TEXT.IN.ELEMENT 527011 . 527964) (\SKELT.GET.DATA 527966 . 529033) ( +\SK.GET.1STCONTROLPT 529035 . 530547) (\SK.PUT.1STCONTROLPT 530549 . 536022) (\SK.GET.2NDCONTROLPT +536024 . 536939) (\SK.PUT.2NDCONTROLPT 536941 . 541129) (\SK.GET.3RDCONTROLPT 541131 . 542009) ( +\SK.PUT.3RDCONTROLPT 542011 . 545911)) (545914 546495 (LOWERLEFTCORNER 545924 . 546170) ( +UPPERRIGHTCORNER 546172 . 546493))))) STOP diff --git a/library/sketch/SKETCH-ELEMENTS.LCOM b/library/sketch/SKETCH-ELEMENTS.LCOM index 14b7a802f6358ac0e423a982a87e0a45e3c99341..c26fdc957e1a9826539efc29e775b280c237fb95 100644 GIT binary patch delta 3907 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 diff --git a/library/sketch/SKETCH.LCOM b/library/sketch/SKETCH.LCOM index 841eab4c0b47a1633cf46b55569033f718d568b9..58641092df6d2e1bec6aa960c3db11261a4a7dac 100644 GIT binary patch delta 1333 zcmZuxPfQ$T6lY)4#7s$BrgrdVMXH7)T5;Whk9UrU!>EFAlymA~C_A7>*fdSNEI)skEY` zm6V@7wLEvWe&OQ6Gjp?S?)i($E5S5ds;|y3ES+ZyOU$3EmP+hksw~TXHaoLQ@%O?^ zr2LW~=Cl&em|V4amigH|XeFHwU48eBuw+UZ86I|?a7A00RpfT2&`7oLwf9}UhsB(3 zG5o|2-MX#WB`z^hFnPu>vlayxG|M*3sZ2rD^W3WN49lBFwZck9MlJ1$RxzjLt0vdV zYMwKT7;&AKY=*BEpvNWPdj&YP$i#|iR4gX$)tC2pGu6!NYMEP9v^6||gvSC?42V)B}1RION+I!Fy1 zJTTVbbV5lFD1Ih5o30awh9m+1?uFpBJFa7%=@Tt2Ev`BpEn`CCygc82zVV%Jo@1>I zxxGak9AFhSL(M7i#y>J;fLXR#F)SKgBFV;$>=aWTW;JeFnxT`CC5Z(M_S%f^dfO{o z()O0*+PLG4hP!aK4?3Mw(N1dT8+|a|X%%H^u_cdB$rV#GOwFER0{+|wr%?$2g*lf_ zy75c^6ns4ZKGN40J@{DwLeB0nH~tlXHi8m@@F;3Q2$H-MgrxJ1)rFr1p`G-dAe?m8 zCm9fKGz1~s41*izLlEf__Gf66%c`C&bG<5SHZRjP`XB`3l)M{)03Hp)Fcp6Giq}b8 z>AOD;D?9_{uBrI_Ki6F(dDhFW@Dl6Zhs@R`3g)Ip$Gpw4W9OY y2OAqN)8!&R9xp7%g5cWQo{nWmKrg;IXv+H3jkqRQkrEBptJ^BQYh7lvHV_Jhqz!sP({k`$Tj`zd34-2`qEE8Ggk7!+OSo=ZG~KFWGhJh@ z*K9bh8n&xeSYZVgXK^*Wdu;f-LD!$omL(;jKv=HonVc! zQ9D#(y3Shm(To~a3hZAy6suvk#>=M3$tJ!v0=<{JGke_`Y3+~xLyaT;@!|+*12Rz> zPNUV}F0l-c2CLW%cSm3*5@5peTs||;8_lZIta|edtz*&aWzd9@2XIY$ramWG_T<_=J`y^^Bh~W zh3!>r|KukT{6&S7Bwzo0P*#~zFB?tAWq3LbIeb$kliO($`!EeE3Exgb9)C}RMzNBC zEVeShDZZQm)xUQ)inlWmBb)c`4&iSZh+sGy@cf;x2GGjVSkqI$(9gnj7wr}G1oRVo zKMVEa?W#B{nq<$Y36IHG$w4I=m@ZoeZ;Dwu9`Dqc1b&=@SptP;%yp8y(sb%P_{0QC z9A*!HOR!c-wK&-RtrrGCX8xD=hw&RuH~Nbn>V9ez$`bP*{6xlaXA~+=o5Bk8Jj1aK zT1lEcPZHmbLe1~{b&!gtG?>Gy8l0f`h6bXKY}TE&2>xcB_UcmkLbnvzdrF5NV;Htz i0zch?a2Hd^iUoCid#iJ&T?-m}-F0|X+52J(?!Z4nfib)Q From 4133da4556eab54aa78a2a5b7ec730e0b9d77e61 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Sat, 8 Nov 2025 13:34:29 -0800 Subject: [PATCH 03/13] Tedit changes so that TEDIT.GETSYNTAX conforms to documentation, fixes Sketch backspace --- library/tedit/TEDIT-COMMAND | 19 ++-- library/tedit/TEDIT-COMMAND.LCOM | Bin 5752 -> 5626 bytes library/tedit/TEDIT-FNKEYS | 143 ++++++++++++++++++------------- library/tedit/TEDIT-FNKEYS.LCOM | Bin 38915 -> 39242 bytes 4 files changed, 94 insertions(+), 68 deletions(-) diff --git a/library/tedit/TEDIT-COMMAND b/library/tedit/TEDIT-COMMAND index 3211d03f1..96aa3adf2 100644 --- a/library/tedit/TEDIT-COMMAND +++ b/library/tedit/TEDIT-COMMAND @@ -1,14 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "17-Jul-2025 00:24:49"  -{DSK}kaplan>Local>medley3.5>working-medley>library>tedit>TEDIT-COMMAND.;165 19015 +(FILECREATED " 8-Nov-2025 10:03:19" {WMEDLEY}TEDIT>TEDIT-COMMAND.;166 19030 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.COMMAND.RESET.SETUP) + :CHANGES-TO (FNS \TEDIT.COMMAND.FUNCTION?) - :PREVIOUS-DATE "23-Mar-2025 15:27:20" -{DSK}kaplan>Local>medley3.5>working-medley>library>tedit>TEDIT-COMMAND.;163) + :PREVIOUS-DATE "17-Jul-2025 00:24:49" {WMEDLEY}TEDIT>TEDIT-COMMAND.;165) (PRETTYCOMPRINT TEDIT-COMMANDCOMS) @@ -137,7 +135,8 @@ (FSETTOBJ TEXTOBJ EDITOPACTIVE NIL)))]) (\TEDIT.COMMAND.FUNCTION? - [LAMBDA (TSTREAM CHARCODE) (* ; "Edited 23-Mar-2025 15:27 by rmk") + [LAMBDA (TSTREAM CHARCODE) (* ; "Edited 8-Nov-2025 10:00 by rmk") + (* ; "Edited 23-Mar-2025 15:27 by rmk") (DECLARE (SPECVARS TSTREAM CHARCODE)) (* ;; "If CHARCODE is a function in TSTREAM's read table, execute the function.") @@ -145,7 +144,7 @@ (LET ((TEXTOBJ (GETTSTR TSTREAM TEXTOBJ)) FN) (DECLARE (SPECVARS TEXTOBJ)) - (CL:WHEN [AND (EQ (\TEDIT.TTC FUNCTIONCALL) + (CL:WHEN [AND (EQ (\TEDIT.TTC FN) (\SYNCODE (fetch READSA of (FGETTOBJ TEXTOBJ TXTRTBL)) CHARCODE)) (SETQ FN (CAR (fetch MACROFN of (GETHASH CHARCODE (fetch READMACRODEFS @@ -303,7 +302,7 @@ (GLOBALVARS || TEDIT.INTERRUPTS) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (2709 10263 (\TEDIT.COMMAND.LOOP 2719 . 9060) (\TEDIT.COMMAND.FUNCTION? 9062 . 10261)) ( -10264 18725 (\TEDIT.INTERRUPT.SETUP 10274 . 11921) (\TEDIT.MARKACTIVE 11923 . 12252) ( -\TEDIT.MARKINACTIVE 12254 . 12470) (\TEDIT.COMMAND.RESET.SETUP 12472 . 18723))))) + (FILEMAP (NIL (2625 10278 (\TEDIT.COMMAND.LOOP 2635 . 8976) (\TEDIT.COMMAND.FUNCTION? 8978 . 10276)) ( +10279 18740 (\TEDIT.INTERRUPT.SETUP 10289 . 11936) (\TEDIT.MARKACTIVE 11938 . 12267) ( +\TEDIT.MARKINACTIVE 12269 . 12485) (\TEDIT.COMMAND.RESET.SETUP 12487 . 18738))))) STOP diff --git a/library/tedit/TEDIT-COMMAND.LCOM b/library/tedit/TEDIT-COMMAND.LCOM index 583d13aacfe7eef7a08e0c33ab3d180cbdca7475..cf5bdabb62dd3e4b5570067c9108a68357f4cb21 100644 GIT binary patch delta 373 zcmeyN^Gka|c)fy!u3vtcu91O}se++_m4UI9p{0_7hEj5VZb4>FYKlUBo`RA>b-1sq zi;rt$txZm5Qc+@2rCo@ti)RRg)OGgv^>y@f(X%!*Gt*SyQZh2r^-nH=m}y{XWoQUC zGpQ&QZfI&nK~b@)l|szK|9q3BSh?ymfws7X`uHdy>($fKQ&LDtECIR#o1sRQN}606 zZk|4_&Oxq@KnDRGiq$uSUC#$|zJj5pfw95l^NjkEZlQk8A)fwz_L>S-0YR=|p8lc1 fx-LL_CdV;KX%ZVCrjzs8MJM|+b8TMCbX6DtR%>VC delta 497 zcmeyR{X=I$c)g*yu2*S}u91O}se*xlm63^+iKUW)hEj5VZb4>FYKlUBo`RABSG7y9 zcdbomacWVqU3OwYPGX*&PkwS@j$LkQN=|B}v7V`2d45rLW?s53M8qy9GpQ)CsM4+^ zH6^peF2vQvGepADo(|KV4_SKa$ diff --git a/library/tedit/TEDIT-FNKEYS b/library/tedit/TEDIT-FNKEYS index d9da38e1c..09529635b 100644 --- a/library/tedit/TEDIT-FNKEYS +++ b/library/tedit/TEDIT-FNKEYS @@ -1,12 +1,15 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 7-Aug-2025 15:00:51" {WMEDLEY}TEDIT>TEDIT-FNKEYS.;294 106161 +(FILECREATED " 8-Nov-2025 13:32:36" {WMEDLEY}TEDIT>TEDIT-FNKEYS.;299 107884 :EDIT-BY rmk - :CHANGES-TO (VARS TEDIT-FNKEYSCOMS) + :CHANGES-TO (FNS TEDIT.GETSYNTAX TEDIT.GETFUNCTION TEDIT.CLEAR.CHARBINDINGS + TEDIT.GET.CHARACTION TEDIT.GET.ALL.CHARBINDINGS TEDIT.GET.ALL.CHARACTIONS + TEDIT.SETFUNCTION) + (VARS TEDIT.BASIC.CHARBINDINGS \TEDIT.TTCCODES) - :PREVIOUS-DATE " 6-Aug-2025 08:59:59" {WMEDLEY}TEDIT>TEDIT-FNKEYS.;293) + :PREVIOUS-DATE " 7-Aug-2025 15:00:51" {WMEDLEY}TEDIT>TEDIT-FNKEYS.;294) (PRETTYCOMPRINT TEDIT-FNKEYSCOMS) @@ -124,7 +127,8 @@ RDTBL]) (TEDIT.CLEAR.CHARBINDINGS - [LAMBDA (RDTBL BINDINGS) (* ; "Edited 5-Apr-2025 11:36 by rmk") + [LAMBDA (RDTBL BINDINGS) (* ; "Edited 8-Nov-2025 10:00 by rmk") + (* ; "Edited 5-Apr-2025 11:36 by rmk") (* ; "Edited 18-Mar-2025 11:10 by rmk") (* ; "Edited 15-Mar-2025 12:02 by rmk") @@ -142,7 +146,7 @@ [if (EQ BINDINGS T) then [MAPHASH (fetch READMACRODEFS of RDTBL) (FUNCTION (LAMBDA (VAL CHARCODE) - (CL:WHEN (EQ (\TEDIT.TTC FUNCTIONCALL) + (CL:WHEN (EQ (\TEDIT.TTC FN) (\SYNCODE (fetch READSA of RDTBL) CHARCODE)) (TEDIT.SETFUNCTION CHARCODE NIL RDTBL) @@ -163,7 +167,8 @@ RDTBL))])]) (TEDIT.GET.CHARACTION - [LAMBDA (CHARCODE BINDINGS) (* ; "Edited 5-Apr-2025 11:36 by rmk") + [LAMBDA (CHARCODE BINDINGS) (* ; "Edited 8-Nov-2025 10:00 by rmk") + (* ; "Edited 5-Apr-2025 11:36 by rmk") (* ; "Edited 19-Mar-2025 14:51 by rmk") (* ; "Edited 18-Mar-2025 11:07 by rmk") (* ; "Edited 17-Mar-2025 09:43 by rmk") @@ -195,7 +200,7 @@ [MAPHASH (fetch READMACRODEFS of RDTBL) (FUNCTION (LAMBDA (VAL CCODE) (CL:WHEN (AND (EQ CCODE CHARCODE) - (EQ (\TEDIT.TTC FUNCTIONCALL) + (EQ (\TEDIT.TTC FN) (\SYNCODE (fetch READSA of RDTBL) CHARCODE))) (for CA in TEDIT.CHARACTIONS when (EQUAL (CADR CA) @@ -238,7 +243,8 @@ CHARS)]) (TEDIT.GET.ALL.CHARBINDINGS - [LAMBDA (RDTBL RETURNCODES) (* ; "Edited 23-Apr-2025 10:11 by rmk") + [LAMBDA (RDTBL RETURNCODES) (* ; "Edited 8-Nov-2025 10:00 by rmk") + (* ; "Edited 23-Apr-2025 10:11 by rmk") (* ; "Edited 7-Apr-2025 22:11 by rmk") (* ; "Edited 5-Apr-2025 11:37 by rmk") (* ; "Edited 18-Mar-2025 20:51 by rmk") @@ -256,7 +262,7 @@ (LET (ACTIONS) [MAPHASH (fetch READMACRODEFS of RDTBL) (FUNCTION (LAMBDA (VAL CCODE) - (CL:WHEN (EQ (\TEDIT.TTC FUNCTIONCALL) + (CL:WHEN (EQ (\TEDIT.TTC FN) (\SYNCODE (fetch READSA of RDTBL) CCODE)) (for CA ANAME in TEDIT.CHARACTIONS when (LISTP CA) @@ -272,7 +278,7 @@ [for A S in ACTIONS do (SETQ S (SORT (CDR A))) (RPLACD A (CL:IF RETURNCODES S - (CHARCODE.ENCODE S))] + (CHARCODE.ENCODE S))] ACTIONS]) (TEDIT.CHARBINDINGS.INVERT @@ -300,7 +306,8 @@ (RETURN ACTIONSPERCHAR]) (TEDIT.GET.ALL.CHARACTIONS - [LAMBDA (RDTBL RETURNCODES) (* ; "Edited 23-Apr-2025 10:11 by rmk") + [LAMBDA (RDTBL RETURNCODES) (* ; "Edited 8-Nov-2025 10:00 by rmk") + (* ; "Edited 23-Apr-2025 10:11 by rmk") (* ; "Edited 5-Apr-2025 11:37 by rmk") (* ; "Edited 18-Mar-2025 20:51 by rmk") (CL:UNLESS (READTABLEP RDTBL) @@ -314,7 +321,7 @@ (LET (ACTIONS) [MAPHASH (fetch READMACRODEFS of RDTBL) (FUNCTION (LAMBDA (VAL CCODE) - (CL:WHEN (EQ (\TEDIT.TTC FUNCTIONCALL) + (CL:WHEN (EQ (\TEDIT.TTC FN) (\SYNCODE (fetch READSA of RDTBL) CCODE)) (for CA ANAME in TEDIT.CHARACTIONS when (LISTP CA) @@ -330,7 +337,7 @@ [for A S in ACTIONS do (SETQ S (SORT (CDR A))) (RPLACD A (CL:IF RETURNCODES S - (CHARCODE.ENCODE S))] + (CHARCODE.ENCODE S))] ACTIONS]) (TEDIT.CONFLICTING.CHARBINDINGS @@ -1308,24 +1315,41 @@ RTBL]) (TEDIT.GETSYNTAX - [LAMBDA (CH TABLE) (* ; "Edited 29-May-2025 16:20 by rmk") + [LAMBDA (CH TABLE) (* ; "Edited 8-Nov-2025 13:32 by rmk") + (* ; "Edited 29-May-2025 16:20 by rmk") (* ; "Edited 12-Mar-2025 12:55 by rmk") (* ; "Edited 24-Dec-2023 09:47 by rmk") (* ; "Edited 31-Mar-87 10:01 by jds") - (* ;; "Find TEdit's interpretation of a given character") - - (CAR (find TTC (SYNCODE _ (\SYNCODE (fetch READSA of (if (NULL TABLE) - then TEDIT.READTABLE - elseif (TEXTSTREAM TABLE T) - then (OR (GETTOBJ (TEXTOBJ TABLE) - TXTRTBL) - TEDIT.READTABLE) - else TABLE)) - (CL:IF (OR (LITATOM CH) - (STRINGP CH)) - (CHARCODE.DECODE CH) - CH))) in \TEDIT.TTCCODES suchthat (EQ SYNCODE (CADR TTC]) + (* ;; "SKETCH uses this function.") + + (LET + ((ACTION (TEDIT.GET.CHARACTION CH TABLE))) + (if ACTION + then + (* ;; "Map back to syntax-class names just for those defined classes, otherwise FN, for compatibility with documentation and history. But (OR (CAR (MKLIST ACTION)) 'NONE) would be simpler and more informative") + + (OR (find CLASS in '(CHARDELETE WORDDELETE DELETE UNDO REDO NEXT) + suchthat (OR (EQ CLASS ACTION) + (MEMB CLASS ACTION))) + 'FN) + else + (* ;; + "Old code: actions associated with particular class names--really now just picks out NONE") + + (CAR (find TTC (SYNCODE _ (\SYNCODE (fetch READSA + of (if (NULL TABLE) + then TEDIT.READTABLE + elseif (TEXTSTREAM TABLE T) + then (OR (GETTOBJ (TEXTOBJ TABLE) + TXTRTBL) + TEDIT.READTABLE) + else TABLE)) + (CL:IF (OR (LITATOM CH) + (STRINGP CH)) + (CHARCODE.DECODE CH) + CH))) in \TEDIT.TTCCODES + suchthat (EQ SYNCODE (CADR TTC]) (TEDIT.SETSYNTAX [LAMBDA (CHAR CLASS RDTBL) (* ; "Edited 13-Mar-2025 21:52 by rmk") @@ -1351,7 +1375,8 @@ (\TEDIT.TTC NONE))))]) (TEDIT.GETFUNCTION - [LAMBDA (CHARCODE RDTBL) (* ; "Edited 5-Apr-2025 11:37 by rmk") + [LAMBDA (CHARCODE RDTBL) (* ; "Edited 8-Nov-2025 11:13 by rmk") + (* ; "Edited 5-Apr-2025 11:37 by rmk") (* ; "Edited 13-Mar-2025 22:56 by rmk") (* ; "Edited 7-Mar-2025 12:02 by rmk") (* jds "19-Sep-85 17:06") @@ -1368,14 +1393,15 @@ TEDIT.READTABLE) else RDTBL)) (CL:WHEN (AND (READTABLEP RDTBL) - (EQ (\TEDIT.TTC FUNCTIONCALL) + (EQ (\TEDIT.TTC FN) (\SYNCODE (fetch READSA of RDTBL) CHARCODE)) (fetch READMACRODEFS of RDTBL)) [CAR (FETCH MACROFN OF (GETHASH CHARCODE (fetch READMACRODEFS of RDTBL])]) (TEDIT.SETFUNCTION - [LAMBDA (CHARCODE FN RDTBL) (* ; "Edited 13-Mar-2025 22:51 by rmk") + [LAMBDA (CHARCODE FN RDTBL) (* ; "Edited 8-Nov-2025 10:02 by rmk") + (* ; "Edited 13-Mar-2025 22:51 by rmk") (* ; "Edited 7-Mar-2025 12:03 by rmk") (* ; "Edited 31-Mar-87 10:58 by jds") (* ; @@ -1396,7 +1422,7 @@ (\SETSYNCODE (fetch READSA of RDTBL) CHARCODE (CL:IF FN - (\TEDIT.TTC FUNCTIONCALL) + (\TEDIT.TTC FN) (\TEDIT.TTC NONE))) (CL:UNLESS (fetch READMACRODEFS of RDTBL) (replace READMACRODEFS of RDTBL with (HARRAY 50))) (* ; @@ -1460,7 +1486,7 @@ (CHARDELETE 1) (WORDDELETE 2) (DELETE 3) - (FUNCTIONCALL 4) + (FN 4) (REDO 5) (UNDO 6) (CMD 7) @@ -1718,7 +1744,8 @@ (CHARDELETE "BS" "^A") (* ; "CHARDELETE/WORDDELETE are TTC") - (CHARDELETE.FORWARD "^W" "^U") + ((CHARDELETE.FORWARD DELETE) + "^W" "^U") (* ; "keyactions for DEL key ??") (WORDDELELETE) (WORDDELETE.FORWARD) @@ -1939,29 +1966,29 @@ (RPAQQ TEDIT.BUTTONBITMAP #*(78 48)OOOOOOOOOOOOOOOOOOOLON@@@@@@@@@@@@@@@AOLO@@@@@@@@@@@@@@@@@CLO@@@@@@@@@@@@@@@@@CLMH@@@@@@@@@@@@@@@@DLNLGOOOOOOOOOOOOOOHHLMFL@@@@@@@@@@@@@@M@LJK@@@@@@@@@@@@@@@B@DMF@@@@@@@@@@@@@@@A@DJN@@@@@@@@@@@@@@@AHDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMF@@@@@@@@@@@@@@@AHDJJ@@@@@@@@@@@@@@@A@DMG@@@@@@@@@@@@@@@B@DNEL@@@@@@@@@@@@@@O@LLIGOOOOOOOOOOOOOOMHLOBBJJJJJJJJJJJJJJJLLNDEEEEEEEEEEEEEEEEGLOHJJJJJJJJJJJJJJJJKLOLEEEEEEEEEEEEEEEEOLOOOOOOOOOOOOOOOOOOOL ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3941 22863 (TEDIT.INSTALL.CHARBINDINGS 3951 . 7842) (TEDIT.CLEAR.CHARBINDINGS 7844 . -10522) (TEDIT.GET.CHARACTION 10524 . 13270) (TEDIT.GET.CHARBINDING 13272 . 15411) ( -TEDIT.GET.ALL.CHARBINDINGS 15413 . 17729) (TEDIT.CHARBINDINGS.INVERT 17731 . 19461) ( -TEDIT.GET.ALL.CHARACTIONS 19463 . 21549) (TEDIT.CONFLICTING.CHARBINDINGS 21551 . 22861)) (22923 32978 -(\TEDIT.KEY.CHARLOOKS 22933 . 24125) (\TEDIT.KEY.QUAD 24127 . 26220) (\TEDIT.DEFAULTSSEL 26222 . 26833 -) (\TEDIT.SETDEFAULT.FROM.SEL 26835 . 27512) (\TEDIT.KEY.SIZE 27514 . 28710) (\TEDIT.SUBSCRIPTSEL -28712 . 28915) (\TEDIT.SUPERSCRIPTSEL 28917 . 29121) (\TEDIT.KEY.TRANSFORM 29123 . 31120) ( -\TEDIT.KEY.OPENLINE 31122 . 31576) (\TEDIT.KEY.FAMILYN 31578 . 32976)) (32979 33268 (CAP-CASECODE -32989 . 33266)) (33302 36734 (\TEDIT.SHOWCARETLOOKS 33312 . 35827) (\TEDIT.DESCRIBEFONT 35829 . 36732) -) (36765 51738 (\TEDIT.ONECHAR.BACKWARD 36775 . 37922) (\TEDIT.ONECHAR.FORWARD 37924 . 39160) ( -\TEDIT.ONELINE.UP 39162 . 42123) (\TEDIT.ONELINE.DOWN 42125 . 43782) (\TEDIT.ONELINE.MOVE 43784 . -46071) (\TEDIT.ONEWORD.BACKWARD 46073 . 47261) (\TEDIT.ONEWORD.FORWARD 47263 . 48450) ( -\TEDIT.LINE.BEGIN 48452 . 49531) (\TEDIT.LINE.END 49533 . 50770) (\TEDIT.DOCUMENT.BEGIN 50772 . 51131) - (\TEDIT.DOCUMENT.END 51133 . 51736)) (51739 53781 (\TEDIT.LINEDELETE.FORWARD 51749 . 52748) ( -\TEDIT.LINEDELETE.BACKWARD 52750 . 53779)) (53782 56310 (\TEDIT.KEY.NEST 53792 . 56308)) (56311 57593 -(\TEDIT.KEY.WRAP 56321 . 57591)) (57684 65732 (\TEDIT.KEY.FIND 57694 . 62872) ( -\TEDIT.KEY.FIND.SEARCHSTRING 62874 . 64014) (\TEDIT.GET.TARGET.STRING 64016 . 65730)) (65763 68395 ( -\TEDIT.KEY.SUBSTITUTE 65773 . 65994) (\TEDIT.MANPAGE 65996 . 67243) (\TEDIT.CALL.ED 67245 . 68075) ( -\TEDIT.SELECT.ALL 68077 . 68393)) (68422 74112 (\TEDIT.CLIPBOARD 68432 . 70187) ( -\TEDIT.COPYTOCLIPBOARD 70189 . 70969) (\TEDIT.EXTRACTTOCLIPBOARD 70971 . 71166) (\TEDIT.WRITE.SEL -71168 . 74110)) (74278 86280 (\TEDIT.READTABLE 74288 . 75224) (\TEDIT.WORDBOUND.READTABLE 75226 . -78165) (TEDIT.GETSYNTAX 78167 . 79596) (TEDIT.SETSYNTAX 79598 . 80803) (TEDIT.GETFUNCTION 80805 . -82070) (TEDIT.SETFUNCTION 82072 . 84058) (TEDIT.WORDGET 84060 . 84321) (TEDIT.WORDSET 84323 . 84954) ( -TEDIT.ATOMBOUND.READTABLE 84956 . 86278)) (98109 105097 (TEDIT.BUTTONS.BUILD 98119 . 103365) ( -TEDIT.BUTTONBITMAP.FILL 103367 . 105095))))) + (FILEMAP (NIL (4188 23498 (TEDIT.INSTALL.CHARBINDINGS 4198 . 8089) (TEDIT.CLEAR.CHARBINDINGS 8091 . +10868) (TEDIT.GET.CHARACTION 10870 . 13715) (TEDIT.GET.CHARBINDING 13717 . 15856) ( +TEDIT.GET.ALL.CHARBINDINGS 15858 . 18269) (TEDIT.CHARBINDINGS.INVERT 18271 . 20001) ( +TEDIT.GET.ALL.CHARACTIONS 20003 . 22184) (TEDIT.CONFLICTING.CHARBINDINGS 22186 . 23496)) (23558 33613 +(\TEDIT.KEY.CHARLOOKS 23568 . 24760) (\TEDIT.KEY.QUAD 24762 . 26855) (\TEDIT.DEFAULTSSEL 26857 . 27468 +) (\TEDIT.SETDEFAULT.FROM.SEL 27470 . 28147) (\TEDIT.KEY.SIZE 28149 . 29345) (\TEDIT.SUBSCRIPTSEL +29347 . 29550) (\TEDIT.SUPERSCRIPTSEL 29552 . 29756) (\TEDIT.KEY.TRANSFORM 29758 . 31755) ( +\TEDIT.KEY.OPENLINE 31757 . 32211) (\TEDIT.KEY.FAMILYN 32213 . 33611)) (33614 33903 (CAP-CASECODE +33624 . 33901)) (33937 37369 (\TEDIT.SHOWCARETLOOKS 33947 . 36462) (\TEDIT.DESCRIBEFONT 36464 . 37367) +) (37400 52373 (\TEDIT.ONECHAR.BACKWARD 37410 . 38557) (\TEDIT.ONECHAR.FORWARD 38559 . 39795) ( +\TEDIT.ONELINE.UP 39797 . 42758) (\TEDIT.ONELINE.DOWN 42760 . 44417) (\TEDIT.ONELINE.MOVE 44419 . +46706) (\TEDIT.ONEWORD.BACKWARD 46708 . 47896) (\TEDIT.ONEWORD.FORWARD 47898 . 49085) ( +\TEDIT.LINE.BEGIN 49087 . 50166) (\TEDIT.LINE.END 50168 . 51405) (\TEDIT.DOCUMENT.BEGIN 51407 . 51766) + (\TEDIT.DOCUMENT.END 51768 . 52371)) (52374 54416 (\TEDIT.LINEDELETE.FORWARD 52384 . 53383) ( +\TEDIT.LINEDELETE.BACKWARD 53385 . 54414)) (54417 56945 (\TEDIT.KEY.NEST 54427 . 56943)) (56946 58228 +(\TEDIT.KEY.WRAP 56956 . 58226)) (58319 66367 (\TEDIT.KEY.FIND 58329 . 63507) ( +\TEDIT.KEY.FIND.SEARCHSTRING 63509 . 64649) (\TEDIT.GET.TARGET.STRING 64651 . 66365)) (66398 69030 ( +\TEDIT.KEY.SUBSTITUTE 66408 . 66629) (\TEDIT.MANPAGE 66631 . 67878) (\TEDIT.CALL.ED 67880 . 68710) ( +\TEDIT.SELECT.ALL 68712 . 69028)) (69057 74747 (\TEDIT.CLIPBOARD 69067 . 70822) ( +\TEDIT.COPYTOCLIPBOARD 70824 . 71604) (\TEDIT.EXTRACTTOCLIPBOARD 71606 . 71801) (\TEDIT.WRITE.SEL +71803 . 74745)) (74913 87995 (\TEDIT.READTABLE 74923 . 75859) (\TEDIT.WORDBOUND.READTABLE 75861 . +78800) (TEDIT.GETSYNTAX 78802 . 81113) (TEDIT.SETSYNTAX 81115 . 82320) (TEDIT.GETFUNCTION 82322 . +83686) (TEDIT.SETFUNCTION 83688 . 85773) (TEDIT.WORDGET 85775 . 86036) (TEDIT.WORDSET 86038 . 86669) ( +TEDIT.ATOMBOUND.READTABLE 86671 . 87993)) (99832 106820 (TEDIT.BUTTONS.BUILD 99842 . 105088) ( +TEDIT.BUTTONBITMAP.FILL 105090 . 106818))))) STOP diff --git a/library/tedit/TEDIT-FNKEYS.LCOM b/library/tedit/TEDIT-FNKEYS.LCOM index 3682e535d8728aef6011cf8739901dcf672b7566..65c4bc51809ab96e4361bf542ed9da7d492fc580 100644 GIT binary patch delta 879 zcmZuuOHUI~6z&vgaY!l@STrb}j!|2*O=tR?>BgbGr32HMrkz4dd<3D97PJJ>khp-L z(M8*++~~@PtX$gAbfuBRmAdl}n3$NjQeo*z@3h5eI zlXrWhn+Mht4267nfjZU`Q_=?l@Y9kVZ=3otRUE|UiVU7F4&aRms|g&FVk(V~ZrbcL zTxiMFv`9paqO=o)WC~46Y9{T9lDhaLCDy-FwoXdHFLMv-+orIw1+lqksoy=arR0*} z0WqRUssa+Qpoyb0BFF=gxDyQTx(x>7d671d(X~`-H<;Y3=nZdGXi&&hZJ8?)rXxOFlqN_lCK+F(JS0vzikf4b!}p z>ZLAQb`{lPr1qYumd0M8_AOz&So>mdu>K&BwZz4A99YgrZ}ImIfl!q1TKe8EFWn)Ks($+fPP`s-!Zx z6w*cAKTWatb8f)aqMg88nqtV6VVvL?fiTcGS02WzWd}v$=jAZ&TJOg{%2tflhwxD4 zj2)Oner4udN%v2Z32E*GQZnt|Btzn7D*}F2v6J}S3XgwQP7`#Z8pNTEVSKaNN346* KVEs)M(Z2z5JoCu_ delta 603 zcmZut&ubGw7|m{NL${Z@RZtQ6I#|exi95Ubxdm~Xopd**N!;Dk6lox~AxYKLAN3{_ zwI@kpd+0MRvQWov8 zy@`e_ObcI~tSJ0^o!$H0?ESLEa_=w@qG}WtnQxn(4T(XJ>81-7i&$)ML0kvVcb)uV z5ws-lRQ3xCS3Bp>gz|h>eEPn71%C`sfBYqr{sJdhs1yJI From 11a1a056ef06c890a862cf6d26ad47cd840b8086 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Sat, 8 Nov 2025 13:35:22 -0800 Subject: [PATCH 04/13] FONTSAVAILABLE cache, default source for MAKEFONTSPEC --- sources/FONT | 111 ++++++++++++++++++++++++++-------------------- sources/FONT.LCOM | Bin 69830 -> 70173 bytes 2 files changed, 62 insertions(+), 49 deletions(-) diff --git a/sources/FONT b/sources/FONT index e5ea0bb52..127082ce2 100644 --- a/sources/FONT +++ b/sources/FONT @@ -1,11 +1,11 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 6-Nov-2025 13:54:22" {WMEDLEY}FONT.;623 285863 +(FILECREATED " 7-Nov-2025 11:53:58" {WMEDLEY}FONT.;626 286841 :EDIT-BY rmk :CHANGES-TO (VARS FONTCOMS) - (FNS FONTSAVAILABLE) + (FNS MAKEFONTFACE MAKEFONTSPEC FONTSAVAILABLE) :PREVIOUS-DATE "20-Oct-2025 09:54:15" {WMEDLEY}FONT.;622) @@ -67,6 +67,8 @@ ) (FNS MATCHFONTFACE MAKEFONTFACE FONTFACETOATOM) (INITVARS \FONTSINCORE \FONTEXISTS?-CACHE \FONTSAVAILABLEFILECACHE \DEFAULTDEVICEFONTS) + (ADDVARS (MEDLEY-INIT-VARS (\FONTEXISTS?-CACHE) + (\FONTSAVAILABLEFILECACHE))) [COMS (GLOBALVARS \DEFAULTDEVICEFONTS \UNITWIDTHSVECTOR) (INITVARS \UNITWIDTHSVECTOR) (FNS \UNITWIDTHSVECTOR) @@ -1091,17 +1093,22 @@ (DEFINEQ (MAKEFONTSPEC - [LAMBDA (FAMILY SIZE FACE ROTATION DEVICE) (* ; "Edited 28-Aug-2025 14:32 by rmk") + [LAMBDA (FAMILY SIZE FACE ROTATION DEVICE BASE) (* ; "Edited 7-Nov-2025 07:52 by rmk") + (* ; "Edited 28-Aug-2025 14:32 by rmk") (* ; "Edited 17-Aug-2025 20:44 by rmk") (* ;; "This is a function, not a macro, so that it can be used in the loadup sequence to create the FONTSPEC for the \GUARANTEEDDISPLAYFONT. That font is created by \CREATEFONT and therefore is not dependent on \FONT.CHECKARGS or on the multi-alist multi-key indexing functions. The strategy might change if MULTI-ALIST is moved earlier in the loadup sequence.") + (* ;; "BASE (fontspec or font) provides defaults for NIL arguments, essentialy models a (create using BASE...)") + + (CL:WHEN (FONTP BASE) + (SETQ BASE (FONTPROP BASE 'SPEC))) (create FONTSPEC - FSFAMILY _ FAMILY - FSSIZE _ SIZE - FSFACE _ FACE - FSROTATION _ ROTATION - FSDEVICE _ DEVICE]) + FSFAMILY _ (OR FAMILY (fetch (FONTSPEC FSFAMILY) of BASE)) + FSSIZE _ (OR SIZE (fetch (FONTSPEC FSSIZE) of BASE)) + FSFACE _ (OR FACE (fetch (FONTSPEC FSFACE) of BASE)) + FSROTATION _ (OR ROTATION (fetch (FONTSPEC FSROTATION) of BASE)) + FSDEVICE _ (OR DEVICE (fetch (FONTSPEC FSDEVICE) of BASE]) ) (DEFINEQ @@ -3110,7 +3117,10 @@ (EQ PEXPANSION '*]) (MAKEFONTFACE - [LAMBDA (WEIGHT SLOPE EXPANSION BASE COLOR) (* ; "Edited 30-Aug-2025 10:22 by rmk") + [LAMBDA (WEIGHT SLOPE EXPANSION BASE COLOR) (* ; "Edited 7-Nov-2025 08:50 by rmk") + (* ; "Edited 30-Aug-2025 10:22 by rmk") + (CL:WHEN (FONTP BASE) + (SETQ BASE (FONTPROP BASE 'FACE))) (CL:UNLESS WEIGHT (SETQ WEIGHT (CL:IF BASE (fetch (FONTFACE WEIGHT) of BASE) @@ -3172,6 +3182,9 @@ (RPAQ? \FONTSAVAILABLEFILECACHE NIL) (RPAQ? \DEFAULTDEVICEFONTS NIL) + +(ADDTOVAR MEDLEY-INIT-VARS (\FONTEXISTS?-CACHE) + (\FONTSAVAILABLEFILECACHE)) (DECLARE%: DOEVAL@COMPILE DONTCOPY (GLOBALVARS \DEFAULTDEVICEFONTS \UNITWIDTHSVECTOR) @@ -4654,44 +4667,44 @@ (ADDTOVAR LAMA FONTCOPY) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (12098 21811 (CHARWIDTH 12108 . 12893) (CHARWIDTHY 12895 . 14412) (STRINGWIDTH 14414 . -15507) (\CHARWIDTH.DISPLAY 15509 . 15922) (\STRINGWIDTH.DISPLAY 15924 . 16348) (\STRINGWIDTH.GENERIC -16350 . 21809)) (21812 28332 (DEFAULTFONT 21822 . 23107) (FONTCLASS 23109 . 25271) (FONTCLASSUNPARSE -25273 . 26172) (FONTCLASSCOMPONENT 26174 . 26762) (SETFONTCLASSCOMPONENT 26764 . 27206) ( -GETFONTCLASSCOMPONENT 27208 . 28330)) (30011 54392 (FONTCREATE 30021 . 33266) (FONTCREATE1 33268 . -35883) (FONTCREATE.SLUGFD 35885 . 37367) (\FONT.CHECKARGS 37369 . 43959) (\FONT.CHECKARGS1 43961 . -48484) (\FONTCREATE1.NOFN 48486 . 48700) (FONTFILEP 48702 . 49590) (\READCHARSET 49592 . 54390)) ( -54393 61310 (\FONT.CHECKARGS 54403 . 60993) (\CHARSET.CHECK 60995 . 61308)) (61311 64394 ( -COERCEFONTSPEC 61321 . 64392)) (66464 67254 (MAKEFONTSPEC 66474 . 67252)) (67255 75432 (COMPLETE.FONT -67265 . 69788) (COMPLETEFONTP 69790 . 70413) (COMPLETE.CHARSET 70415 . 73100) (PRUNESLUGCSINFOS 73102 - . 74027) (MONOSPACEFONTP 74029 . 75430)) (75471 83392 (FONTASCENT 75481 . 75865) (FONTDESCENT 75867 - . 76352) (FONTHEIGHT 76354 . 76756) (FONTPROP 76758 . 82669) (\AVGCHARWIDTH 82671 . 83390)) (84049 -84957 (FONTDEVICEPROP 84059 . 84955)) (85003 85857 (EDITCHAR 85013 . 85855)) (85903 98093 ( -GETCHARBITMAP 85913 . 87037) (PUTCHARBITMAP 87039 . 89197) (\GETCHARBITMAP.CSINFO 89199 . 91215) ( -\PUTCHARBITMAP.CSINFO 91217 . 98091)) (98094 118574 (MOVECHARBITMAP 98104 . 99998) (MOVEFONTCHARS -100000 . 103960) (\MOVEFONTCHAR 103962 . 108805) (\MOVEFONTCHARS.SOURCEDATA 108807 . 114912) ( -\MAKESLUGCHAR 114914 . 117449) (SLUGCHARP.DISPLAY 117451 . 118572)) (119507 139645 (FONTFILES 119517 - . 121350) (\FINDFONTFILE 121352 . 123069) (\FONTFILENAMES 123071 . 124066) (\FONTFILENAME 124068 . -128051) (\FONTFILENAME.OLD 128053 . 131002) (\FONTFILENAME.NEW 131004 . 133261) (FONTSPECFROMFILENAME -133263 . 137364) (\FONTINFOFROMFILENAME.OLD 137366 . 139643)) (139912 175715 (FONTCOPY 139922 . 144985 -) (FONTP 144987 . 145286) (FONTUNPARSE 145288 . 147007) (SETFONTDESCRIPTOR 147009 . 148473) ( -\STREAMCHARWIDTH 148475 . 152639) (\COERCECHARSET 152641 . 155236) (\BUILDSLUGCSINFO 155238 . 158861) -(\FONTSYMBOL 158863 . 159513) (\DEVICESYMBOL 159515 . 160384) (\FONTFACE 160386 . 167576) ( -\FONTFACE.COLOR 167578 . 174498) (SETFONTCHARENCODING 174500 . 175713)) (175716 196655 (FONTSAVAILABLE - 175726 . 180969) (FONTEXISTS? 180971 . 184949) (\SEARCHFONTFILES 184951 . 188036) (FLUSHFONTSINCORE -188038 . 191211) (FINDFONTFILES 191213 . 194427) (SORTFONTSPECS 194429 . 196653)) (196656 200079 ( -MATCHFONTFACE 196666 . 197481) (MAKEFONTFACE 197483 . 198323) (FONTFACETOATOM 198325 . 200077)) ( -200349 200841 (\UNITWIDTHSVECTOR 200359 . 200839)) (215435 217502 (FONTDESCRIPTOR.DEFPRINT 215445 . -217024) (FONTCLASS.DEFPRINT 217026 . 217500)) (221331 224121 (\CREATEKERNELEMENT 221341 . 221699) ( -\FSETLEFTKERN 221701 . 222192) (\FGETLEFTKERN 222194 . 224119)) (224122 233758 (\CREATEFONT 224132 . -225571) (\CREATECHARSET 225573 . 229509) (\INSTALLCHARSETINFO 229511 . 232845) ( -\INSTALLCHARSETINFO.CHARENCODING 232847 . 233756)) (234080 235444 (\FONTRESETCHARWIDTHS 234090 . -235442)) (236074 246121 (\CREATEDISPLAYFONT 236084 . 237933) (\CREATECHARSET.DISPLAY 237935 . 243644) -(\FONTEXISTS?.DISPLAY 243646 . 246119)) (246122 260987 (STRIKEFONT.FILEP 246132 . 247020) ( -STRIKEFONT.GETCHARSET 247022 . 252614) (WRITESTRIKEFONTFILE 252616 . 257527) (STRIKECSINFO 257529 . -260985)) (261018 277335 (MAKEBOLD.CHARSET 261028 . 264677) (MAKEBOLD.CHAR 264679 . 266431) ( -MAKEITALIC.CHARSET 266433 . 270106) (MAKEITALIC.CHAR 270108 . 272454) (\SFMAKEBOLD 272456 . 274680) ( -\SFMAKEITALIC 274682 . 277333)) (277336 281485 (\SFMAKEROTATEDFONT 277346 . 278747) (\SFROTATECSINFO -278749 . 279386) (\SFROTATEFONTCHARACTERS 279388 . 279768) (\SFROTATECSINFOOFFSETS 279770 . 281483)) ( -281486 282867 (\SFMAKECOLOR 281496 . 282865))))) + (FILEMAP (NIL (12233 21946 (CHARWIDTH 12243 . 13028) (CHARWIDTHY 13030 . 14547) (STRINGWIDTH 14549 . +15642) (\CHARWIDTH.DISPLAY 15644 . 16057) (\STRINGWIDTH.DISPLAY 16059 . 16483) (\STRINGWIDTH.GENERIC +16485 . 21944)) (21947 28467 (DEFAULTFONT 21957 . 23242) (FONTCLASS 23244 . 25406) (FONTCLASSUNPARSE +25408 . 26307) (FONTCLASSCOMPONENT 26309 . 26897) (SETFONTCLASSCOMPONENT 26899 . 27341) ( +GETFONTCLASSCOMPONENT 27343 . 28465)) (30146 54527 (FONTCREATE 30156 . 33401) (FONTCREATE1 33403 . +36018) (FONTCREATE.SLUGFD 36020 . 37502) (\FONT.CHECKARGS 37504 . 44094) (\FONT.CHECKARGS1 44096 . +48619) (\FONTCREATE1.NOFN 48621 . 48835) (FONTFILEP 48837 . 49725) (\READCHARSET 49727 . 54525)) ( +54528 61445 (\FONT.CHECKARGS 54538 . 61128) (\CHARSET.CHECK 61130 . 61443)) (61446 64529 ( +COERCEFONTSPEC 61456 . 64527)) (66599 67938 (MAKEFONTSPEC 66609 . 67936)) (67939 76116 (COMPLETE.FONT +67949 . 70472) (COMPLETEFONTP 70474 . 71097) (COMPLETE.CHARSET 71099 . 73784) (PRUNESLUGCSINFOS 73786 + . 74711) (MONOSPACEFONTP 74713 . 76114)) (76155 84076 (FONTASCENT 76165 . 76549) (FONTDESCENT 76551 + . 77036) (FONTHEIGHT 77038 . 77440) (FONTPROP 77442 . 83353) (\AVGCHARWIDTH 83355 . 84074)) (84733 +85641 (FONTDEVICEPROP 84743 . 85639)) (85687 86541 (EDITCHAR 85697 . 86539)) (86587 98777 ( +GETCHARBITMAP 86597 . 87721) (PUTCHARBITMAP 87723 . 89881) (\GETCHARBITMAP.CSINFO 89883 . 91899) ( +\PUTCHARBITMAP.CSINFO 91901 . 98775)) (98778 119258 (MOVECHARBITMAP 98788 . 100682) (MOVEFONTCHARS +100684 . 104644) (\MOVEFONTCHAR 104646 . 109489) (\MOVEFONTCHARS.SOURCEDATA 109491 . 115596) ( +\MAKESLUGCHAR 115598 . 118133) (SLUGCHARP.DISPLAY 118135 . 119256)) (120191 140329 (FONTFILES 120201 + . 122034) (\FINDFONTFILE 122036 . 123753) (\FONTFILENAMES 123755 . 124750) (\FONTFILENAME 124752 . +128735) (\FONTFILENAME.OLD 128737 . 131686) (\FONTFILENAME.NEW 131688 . 133945) (FONTSPECFROMFILENAME +133947 . 138048) (\FONTINFOFROMFILENAME.OLD 138050 . 140327)) (140596 176399 (FONTCOPY 140606 . 145669 +) (FONTP 145671 . 145970) (FONTUNPARSE 145972 . 147691) (SETFONTDESCRIPTOR 147693 . 149157) ( +\STREAMCHARWIDTH 149159 . 153323) (\COERCECHARSET 153325 . 155920) (\BUILDSLUGCSINFO 155922 . 159545) +(\FONTSYMBOL 159547 . 160197) (\DEVICESYMBOL 160199 . 161068) (\FONTFACE 161070 . 168260) ( +\FONTFACE.COLOR 168262 . 175182) (SETFONTCHARENCODING 175184 . 176397)) (176400 197339 (FONTSAVAILABLE + 176410 . 181653) (FONTEXISTS? 181655 . 185633) (\SEARCHFONTFILES 185635 . 188720) (FLUSHFONTSINCORE +188722 . 191895) (FINDFONTFILES 191897 . 195111) (SORTFONTSPECS 195113 . 197337)) (197340 200949 ( +MATCHFONTFACE 197350 . 198165) (MAKEFONTFACE 198167 . 199193) (FONTFACETOATOM 199195 . 200947)) ( +201327 201819 (\UNITWIDTHSVECTOR 201337 . 201817)) (216413 218480 (FONTDESCRIPTOR.DEFPRINT 216423 . +218002) (FONTCLASS.DEFPRINT 218004 . 218478)) (222309 225099 (\CREATEKERNELEMENT 222319 . 222677) ( +\FSETLEFTKERN 222679 . 223170) (\FGETLEFTKERN 223172 . 225097)) (225100 234736 (\CREATEFONT 225110 . +226549) (\CREATECHARSET 226551 . 230487) (\INSTALLCHARSETINFO 230489 . 233823) ( +\INSTALLCHARSETINFO.CHARENCODING 233825 . 234734)) (235058 236422 (\FONTRESETCHARWIDTHS 235068 . +236420)) (237052 247099 (\CREATEDISPLAYFONT 237062 . 238911) (\CREATECHARSET.DISPLAY 238913 . 244622) +(\FONTEXISTS?.DISPLAY 244624 . 247097)) (247100 261965 (STRIKEFONT.FILEP 247110 . 247998) ( +STRIKEFONT.GETCHARSET 248000 . 253592) (WRITESTRIKEFONTFILE 253594 . 258505) (STRIKECSINFO 258507 . +261963)) (261996 278313 (MAKEBOLD.CHARSET 262006 . 265655) (MAKEBOLD.CHAR 265657 . 267409) ( +MAKEITALIC.CHARSET 267411 . 271084) (MAKEITALIC.CHAR 271086 . 273432) (\SFMAKEBOLD 273434 . 275658) ( +\SFMAKEITALIC 275660 . 278311)) (278314 282463 (\SFMAKEROTATEDFONT 278324 . 279725) (\SFROTATECSINFO +279727 . 280364) (\SFROTATEFONTCHARACTERS 280366 . 280746) (\SFROTATECSINFOOFFSETS 280748 . 282461)) ( +282464 283845 (\SFMAKECOLOR 282474 . 283843))))) STOP diff --git a/sources/FONT.LCOM b/sources/FONT.LCOM index 51df1d80e9db78543ecff84c1265f3ca325d9620..04031c4f26ec7bf22b4b00d24d3b4e9651b04c75 100644 GIT binary patch delta 1645 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 From 876fec4241d2b0b4b0f199000d6f0f8ddcd914d4 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Sat, 8 Nov 2025 13:35:43 -0800 Subject: [PATCH 05/13] SKETCH - more font cleanup --- library/sketch/SKETCH | 341 +++++++++--------- library/sketch/SKETCH-ELEMENTS | 523 +++++++++++++--------------- library/sketch/SKETCH-ELEMENTS.LCOM | Bin 144431 -> 143548 bytes library/sketch/SKETCH.LCOM | Bin 161924 -> 161395 bytes 4 files changed, 413 insertions(+), 451 deletions(-) diff --git a/library/sketch/SKETCH b/library/sketch/SKETCH index 55e219650..b2d39beef 100644 --- a/library/sketch/SKETCH +++ b/library/sketch/SKETCH @@ -1,11 +1,11 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 4-Nov-2025 15:24:34" {WMEDLEY}sketch>SKETCH.;7 491766 +(FILECREATED " 8-Nov-2025 12:19:12" {WMEDLEY}SKETCH>SKETCH.;10 491643 :EDIT-BY rmk :CHANGES-TO (VARS SKETCHCOMS SKETCHFILES SKETCH.TITLED.ICON.TEMPLATE) - (FNS SK.OUTPUT.FILE.NAME SKETCH.TITLE) + (FNS SKETCH.SET.A.DEFAULT SKETCH.COMMANDMENU SK.OUTPUT.FILE.NAME SKETCH.TITLE) (RECORDS SKHISTORYCHANGESPEC GROUP LOCALGROUP SKFIGUREIMAGE SCREENELT GLOBALPART COMMONGLOBALPART INDIVIDUALGLOBALPART LOCALPART SKETCH SKETCHTYPE SKETCHCONTEXT) @@ -22,7 +22,9 @@ (PRETTYCOMPRINT SKETCHCOMS) (RPAQQ SKETCHCOMS - [[DECLARE%: FIRST DOCOPY DONTEVAL@LOAD + [(FILES (SYSLOAD) + TEDIT) + [DECLARE%: FIRST DOCOPY DONTEVAL@LOAD (P (PROG ((NOTECARDSFLG (GETPROP 'NOTECARDS 'FILEDATES)) (SKETCHFLG (AND (BOUNDP 'ALL.SKETCHES) ALL.SKETCHES)) @@ -270,13 +272,6 @@ To abort loading the new version of Sketch, type '^'."] (MACROS SK.SET.RECORD.LENGTHS.MACRO) (GLOBALVARS SKETCH.RECORD.LENGTHS) (P (SK.SET.RECORD.LENGTHS))) - [COMS (* ; - "to correct for a bug in the file package that marks LOADCOMPed file as changed") - (P (UNMARKASCHANGED 'SKETCH 'FILE) - (UNMARKASCHANGED 'SKETCH-ELEMENTS 'FILE) - (UNMARKASCHANGED 'SKETCH-OPS 'FILE) - (UNMARKASCHANGED 'SKETCH-EDIT 'FILE) - (UNMARKASCHANGED 'SKETCH-OBJ 'FILE] (COMS (* ;  "add sketch as option to file browser edit command") (FNS SK.ADD.EDIT.COMMAND.TO.FILE.BROWSER) @@ -285,6 +280,9 @@ To abort loading the new version of Sketch, type '^'."] (NLAML) (LAMA SK.UNIONREGIONS SKETCH.CREATE]) + +(FILESLOAD (SYSLOAD) + TEDIT) (DECLARE%: FIRST DOCOPY DONTEVAL@LOAD [PROG ((NOTECARDSFLG (GETPROP 'NOTECARDS 'FILEDATES)) @@ -663,7 +661,9 @@ To abort loading the new version of Sketch, type '^'."] (SK.ADD.ELEMENT ELT SKW]) (SKETCH.SET.A.DEFAULT - [LAMBDA (SKW) (* rrb "14-Jul-86 13:43") + [LAMBDA (SKW) (* ; "Edited 6-Nov-2025 22:34 by rmk") + (* rrb "14-Jul-86 13:43") + (* ; "allows the user to set a default") (* allows the user to set a default) (\CURSOR.IN.MIDDLE.MENU (create MENU ITEMS _ '[(Line SKETCH.SET.BRUSH.SIZE @@ -677,7 +677,8 @@ To abort loading the new version of Sketch, type '^'."] (Add% arrowhead SK.SET.LINE.ARROWHEAD "Sets the arrowhead characteristics of new lines." ) - ("Mouse line specs" SK.SET.LINE.LENGTH.MODE + ("Mouse line specs" SK.SET.LINE.LENGTH.MODE + "Sets whether the lines drawn with the middle mouse button connect to each other." ))) (Arrowhead SK.SET.ARROWHEAD.LENGTH @@ -719,7 +720,8 @@ To abort loading the new version of Sketch, type '^'."] (SUBITEMS ("Clockwise" SK.SET.ARC.DIRECTION.CW "Makes new arcs go around in the clockwise direction" ) - ("Counterclockwise" SK.SET.ARC.DIRECTION.CCW + ("Counterclockwise" SK.SET.ARC.DIRECTION.CCW + "Makes new arcs go around in the counterclockwise direction" ))) ("Input scale" SK.SET.INPUT.SCALE @@ -744,7 +746,8 @@ To abort loading the new version of Sketch, type '^'."] This will be slow for arcs and curves."] CENTERFLG _ T WHENSELECTEDFN _ (FUNCTION SK.POPUP.SELECTIONFN) - MENUFONT _ (SK.FONTNAMELIST (FONTCREATE BOLDFONT]) + MENUFONT _ (FONTPROP (FONTCREATE BOLDFONT) + 'SPEC]) (SK.POPUP.SELECTIONFN [LAMBDA (ITEM MENU) (* rrb " 3-Sep-85 14:27") @@ -1352,12 +1355,13 @@ This will be slow for arcs and curves."] (DEFINEQ (SKETCH.COMMANDMENU - [LAMBDA (ITEMS TITLE) (* rrb "14-Jul-86 13:43") + [LAMBDA (ITEMS TITLE) (* ; "Edited 6-Nov-2025 22:36 by rmk") + (* rrb "14-Jul-86 13:43") (create MENU ITEMS _ ITEMS CENTERFLG _ T WHENSELECTEDFN _ (FUNCTION SKETCHW.SELECTIONFN) - MENUFONT _ (SK.FONTNAMELIST (FONTCREATE BOLDFONT)) + MENUFONT _ (FONTCREATE BOLDFONT) TITLE _ TITLE]) (SKETCH.COMMANDMENU.ITEMS @@ -8728,21 +8732,6 @@ Otherwise, type '^'.") -(* ; "to correct for a bug in the file package that marks LOADCOMPed file as changed") - - -(UNMARKASCHANGED 'SKETCH 'FILE) - -(UNMARKASCHANGED 'SKETCH-ELEMENTS 'FILE) - -(UNMARKASCHANGED 'SKETCH-OPS 'FILE) - -(UNMARKASCHANGED 'SKETCH-EDIT 'FILE) - -(UNMARKASCHANGED 'SKETCH-OBJ 'FILE) - - - (* ; "add sketch as option to file browser edit command") (DEFINEQ @@ -8773,149 +8762,149 @@ Otherwise, type '^'.") (ADDTOVAR LAMA SK.UNIONREGIONS SKETCH.CREATE) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (22797 85993 (SKETCH 22807 . 24912) (SKETCH.FROM.A.FILE 24914 . 25229) (SKETCHW.CREATE -25231 . 29805) (SKETCH.RESET 29807 . 31329) (SKETCHW.FIG.CHANGED 31331 . 31671) (SK.WINDOW.TITLE 31673 - . 32060) (EDITSLIDE 32062 . 32468) (EDITSKETCH 32470 . 32794) (SK.PUT.ON.FILE 32796 . 34248) ( -SK.OUTPUT.FILE.NAME 34250 . 34735) (SKETCH.PUT 34737 . 37635) (SK.GET.FROM.FILE 37637 . 38530) ( -SK.INCLUDE.FILE 38532 . 41040) (SK.GET.IMAGEOBJ.FROM.FILE 41042 . 43245) (SKETCH.GET 43247 . 43554) ( -ADD.SKETCH.TO.VIEWER 43556 . 46142) (SK.ADD.ELEMENTS.TO.SKETCH 46144 . 46658) (SKETCH.SET.A.DEFAULT -46660 . 53818) (SK.POPUP.SELECTIONFN 53820 . 54362) (GETSKETCHWREGION 54364 . 54570) (SK.ADD.ELEMENT -54572 . 56151) (SK.ADD.PRIORITY.ELEMENT.TO.SKETCH 56153 . 57547) (SK.ELTS.BY.PRIORITY 57549 . 57845) ( -SK.ORDER.ELEMENTS 57847 . 58114) (SK.ADD.PRIORITY.LOCAL.ELEMENT.TO.SKETCH 58116 . 59610) ( -SK.ADD.ELEMENTS 59612 . 60136) (SK.CHECK.WHENADDEDFN 60138 . 60868) (SK.APPLY.MENU.COMMAND 60870 . -61668) (SK.DELETE.ELEMENT1 61670 . 63248) (SK.MARK.DIRTY 63250 . 63916) (SK.MARK.UNDIRTY 63918 . 64249 -) (SK.MENU.AND.RETURN.FIELD 64251 . 64916) (SKETCH.SET.BRUSH.SHAPE 64918 . 65503) ( -SKETCH.SET.BRUSH.SIZE 65505 . 66011) (SKETCHW.CLOSEFN 66013 . 67804) (SK.CONFIRM.DESTRUCTION 67806 . -68805) (SKETCHW.OUTFN 68807 . 69071) (SKETCHW.REOPENFN 69073 . 69485) (MAKE.LOCAL.SKETCH 69487 . 70217 -) (MAP.SKETCHSPEC.INTO.VIEWER 70219 . 71429) (SKETCHW.REPAINTFN 71431 . 72259) (SKETCHW.REPAINTFN1 -72261 . 73200) (SK.DRAWFIGURE.IF 73202 . 73724) (SKETCHW.SCROLLFN 73726 . 77919) (SKETCHW.RESHAPEFN -77921 . 80179) (SK.UPDATE.EVENT.SELECTION 80181 . 82236) (LIGHTGRAYWINDOW 82238 . 82401) ( -SK.ADD.SPACES 82403 . 83149) (SK.SKETCH.MENU 83151 . 83473) (SK.CHECK.IMAGEOBJ.WHENDELETEDFN 83475 . -84327) (SK.APPLY.IMAGEOBJ.WHENDELETEDFN 84329 . 85289) (SK.RETURN.TTY 85291 . 85659) (SK.TAKE.TTY -85661 . 85991)) (86047 109375 (SKETCH.COMMANDMENU 86057 . 86394) (SKETCH.COMMANDMENU.ITEMS 86396 . -106479) (CREATE.SKETCHW.COMMANDMENU 106481 . 106901) (SKETCHW.SELECTIONFN 106903 . 108006) ( -SKETCH.MONITORLOCK 108008 . 108479) (SK.EVAL.AS.PROCESS 108481 . 109094) (SK.EVAL.WITH.LOCK 109096 . -109373)) (109376 117180 (SK.FIX.MENU 109386 . 110480) (SK.SET.UP.MENUS 110482 . 112783) ( -SK.INSURE.HAS.MENU 112785 . 113447) (SK.CREATE.STANDARD.MENU 113449 . 113894) (SK.ADD.ITEM.TO.MENU -113896 . 114571) (SK.GET.VIEWER.POPUP.MENU 114573 . 116774) (SK.CLEAR.POPUP.MENU 116776 . 117178)) ( -117236 126058 (SKETCH.CREATE 117246 . 118032) (GETSKETCHPROP 118034 . 121091) (PUTSKETCHPROP 121093 . -125025) (CREATE.DEFAULT.SKETCH.CONTEXT 125027 . 126056)) (126224 149120 (SK.COPY.BUTTONEVENTFN 126234 - . 137462) (SK.BUTTONEVENT.MARK 137464 . 137847) (SK.BUILD.IMAGEOBJ 137849 . 147764) ( -SK.BUTTONEVENT.OVERP 147766 . 148389) (SK.BUTTONEVENT.SAME.KEYS 148391 . 149118)) (149399 175214 ( -SK.SEL.AND.CHANGE 149409 . 149701) (SK.CHECK.WHENCHANGEDFN 149703 . 150409) (SK.CHECK.PRECHANGEFN -150411 . 151012) (SK.CHANGE.ELT 151014 . 151206) (SK.CHANGE.THING 151208 . 152459) ( -SKETCH.CHANGE.ELEMENTS 152461 . 153644) (SK.APPLY.SINGLE.CHANGEFN 153646 . 154219) (SK.DO.CHANGESPECS -154221 . 155880) (SK.VIEWER.FROM.SKETCH.ARG 155882 . 156324) (SK.DO.CHANGESPEC1 156326 . 158201) ( -SK.CHANGEFN 158203 . 158783) (SK.READCHANGEFN 158785 . 159244) (SK.DEFAULT.CHANGEFN 159246 . 161718) ( -CHANGEABLEFIELDITEMS 161720 . 162367) (SK.APPLY.CHANGE.COMMAND 162369 . 162986) ( -SK.DO.AND.RECORD.CHANGES 162988 . 164385) (SK.APPLY.CHANGE.COMMAND1 164387 . 165875) ( -SK.ELEMENTS.CHANGEFN 165877 . 168201) (READ.POINT.TO.ADD 168203 . 169147) (GLOBAL.KNOT.FROM.LOCAL -169149 . 169609) (SK.ADD.KNOT.TO.ELEMENT 169611 . 170555) (SK.GROUP.CHANGEFN 170557 . 171769) ( -SK.GROUP.CHANGEFN1 171771 . 175212)) (175381 189114 (ADD.ELEMENT.TO.SKETCH 175391 . 177097) ( -ADD.SKETCH.VIEWER 177099 . 177767) (REMOVE.SKETCH.VIEWER 177769 . 178382) (ALL.SKETCH.VIEWERS 178384 - . 178624) (SKETCH.ALL.VIEWERS 178626 . 178886) (VIEWER.BUCKET 178888 . 179039) (ELT.INSIDE.REGION? -179041 . 179368) (ELT.INSIDE.SKWP 179370 . 179661) (SCALE.FROM.SKW 179663 . 179913) ( -SK.ADDELT.TO.WINDOW 179915 . 180775) (SK.CALC.REGION.VIEWED 180777 . 181155) (SK.DRAWFIGURE 181157 . -182446) (SK.DRAWFIGURE1 182448 . 182832) (SK.LOCAL.FROM.GLOBAL 182834 . 184069) (SKETCH.REGION.VIEWED -184071 . 186758) (SKETCH.VIEW.FROM.NAME 186760 . 187190) (SK.UPDATE.REGION.VIEWED 187192 . 187584) ( -SKETCH.ADD.AND.DISPLAY 187586 . 187994) (SKETCH.ADD.AND.DISPLAY1 187996 . 188434) (SK.ADD.ITEM 188436 - . 188768) (SKETCHW.ADD.INSTANCE 188770 . 189112)) (189155 202343 (SK.SEL.AND.DELETE 189165 . 189553) -(SK.ERASE.AND.DELETE.ITEM 189555 . 189974) (REMOVE.ELEMENT.FROM.SKETCH 189976 . 191087) ( -SK.DELETE.ELEMENT 191089 . 191647) (SK.DELETE.ELEMENT2 191649 . 192310) (SK.DELETE.KNOT 192312 . -192603) (SK.SEL.AND.DELETE.KNOT 192605 . 193730) (SK.DELETE.ELEMENT.KNOT 193732 . 196939) ( -SK.CHECK.WHENDELETEDFN 196941 . 197721) (SK.CHECK.PREEDITFN 197723 . 198207) ( -SK.CHECK.END.INITIAL.EDIT 198209 . 198743) (SK.CHECK.WHENPOINTDELETEDFN 198745 . 199541) (SK.ERASE.ELT - 199543 . 199879) (SK.DELETE.ELT 199881 . 200256) (SK.DELETE.ITEM 200258 . 200666) (DELFROMTCONC -200668 . 202341)) (202382 216216 (SK.COPY.ELT 202392 . 202762) (SK.SEL.AND.COPY 202764 . 203147) ( -SK.COPY.ELEMENTS 203149 . 208777) (SK.ADD.COPY.OF.ELEMENTS 208779 . 210546) ( -SK.GLOBAL.FROM.LOCAL.ELEMENTS 210548 . 210788) (SK.COPY.ITEM 210790 . 211587) (SK.INSERT.SKETCH 211589 - . 216214)) (216256 246277 (SK.MOVE.ELT 216266 . 216541) (SK.MOVE.ELT.OR.PT 216543 . 216856) ( -SK.APPLY.DEFAULT.MOVE 216858 . 217292) (SK.SEL.AND.MOVE 217294 . 217841) (SK.MOVE.ELEMENTS 217843 . -228715) (SKETCH.MOVE.ELEMENTS 228717 . 230648) (SKETCH.COPY.ELEMENTS 230650 . 232697) ( -\SKETCH.COPY.ELEMENT 232699 . 233424) (SK.TRANSLATE.ELEMENT 233426 . 233909) (SK.COPY.GLOBAL.ELEMENT -233911 . 234122) (SK.MAKE.ELEMENT.MOVE.ARG 234124 . 234744) (SK.MAKE.ELEMENTS.MOVE.ARG 234746 . 235268 -) (SK.MAKE.POINTS.AND.ELEMENTS.MOVE.ARG 235270 . 236339) (SK.SHOW.FIG.FROM.INFO 236341 . 236709) ( -SK.MOVE.THING 236711 . 237617) (UPDATE.ELEMENT.IN.SKETCH 237619 . 239674) (SK.UPDATE.ELEMENT 239676 . -241235) (SK.UPDATE.ELEMENTS 241237 . 241956) (SK.UPDATE.ELEMENT1 241958 . 245858) ( -SK.MOVE.ELEMENT.POINT 245860 . 246275)) (246340 268629 (SK.MOVE.POINTS 246350 . 246637) ( -SK.SEL.AND.MOVE.POINTS 246639 . 246944) (SK.DO.MOVE.ELEMENT.POINTS 246946 . 255603) ( -SK.MOVE.ITEM.POINTS 255605 . 257276) (SK.TRANSLATEPTSFN 257278 . 257662) (SK.TRANSLATE.POINTS 257664 - . 258565) (SK.SELECT.MULTIPLE.POINTS 258567 . 264207) (SK.CONTROL.POINTS.IN.REGION 264209 . 265630) ( -SK.ADD.PT.SELECTION 265632 . 266096) (SK.REMOVE.PT.SELECTION 266098 . 266715) (SK.ADD.POINT 266717 . -267340) (SK.ELTS.CONTAINING.PTS 267342 . 267967) (SK.HOTSPOTS.NOT.ON.LIST 267969 . 268627)) (268787 -271583 (SK.SET.MOVE.MODE 268797 . 269468) (SK.SET.MOVE.MODE.POINTS 269470 . 269809) ( -SK.SET.MOVE.MODE.ELEMENTS 269811 . 270155) (SK.SET.MOVE.MODE.COMBINED 270157 . 270507) (READMOVEMODE -270509 . 271581)) (271584 290339 (SK.ALIGN.POINTS 271594 . 271884) (SK.SEL.AND.ALIGN.POINTS 271886 . -272195) (SK.ALIGN.POINTS.LEFT 272197 . 272500) (SK.ALIGN.POINTS.RIGHT 272502 . 272807) ( -SK.ALIGN.POINTS.TOP 272809 . 273110) (SK.ALIGN.POINTS.BOTTOM 273112 . 273419) ( -SK.EVEN.SPACE.POINTS.IN.X 273421 . 273741) (SK.EVEN.SPACE.POINTS.IN.Y 273743 . 274063) ( -SK.DO.ALIGN.POINTS 274065 . 284687) (SK.NTH.CONTROL.POINT 284689 . 285150) ( -SK.GET.SELECTED.ELEMENT.STRUCTURE 285152 . 285818) (SK.CORRESPONDING.CONTROL.PT 285820 . 286374) ( -SK.CONTROL.POINT.NUMBER 286376 . 286746) (SK.DO.ALIGN.SETVALUE 286748 . 290337)) (290403 303835 ( -SKETCH.CREATE.GROUP 290413 . 290902) (SK.CREATE.GROUP1 290904 . 291451) (SK.UPDATE.GROUP.AFTER.CHANGE -291453 . 292242) (SK.GROUP.ELTS 292244 . 292525) (SK.SEL.AND.GROUP 292527 . 292913) (SK.GROUP.ELEMENTS - 292915 . 294564) (SK.UNGROUP.ELT 294566 . 294850) (SK.SEL.AND.UNGROUP 294852 . 296521) ( -SK.UNGROUP.ELEMENT 296523 . 297459) (SK.GLOBAL.REGION.OF.LOCAL.ELEMENTS 297461 . 298383) ( -SK.LOCAL.REGION.OF.LOCAL.ELEMENTS 298385 . 299396) (SK.GLOBAL.REGION.OF.GLOBAL.ELEMENTS 299398 . -300738) (SK.UNIONREGIONS 300740 . 303106) (SKETCH.REGION.OF.SKETCH 303108 . 303524) (SK.FLASHREGION -303526 . 303833)) (303836 317307 (INIT.GROUP.ELEMENT 303846 . 304718) (GROUP.DRAWFN 304720 . 305170) ( -GROUP.EXPANDFN 305172 . 306735) (GROUP.INSIDEFN 306737 . 307146) (GROUP.REGIONFN 307148 . 307543) ( -GROUP.GLOBALREGIONFN 307545 . 307863) (GROUP.TRANSLATEFN 307865 . 309897) (GROUP.TRANSFORMFN 309899 . -313379) (GROUP.READCHANGEFN 313381 . 317305)) (317308 318316 (REGION.CENTER 317318 . 317919) ( -REMOVE.LAST 317921 . 318314)) (318369 323476 (SK.MOVE.GROUP.CONTROL.PT 318379 . 318670) ( -SK.SEL.AND.MOVE.CONTROL.PT 318672 . 320076) (SK.MOVE.GROUP.ELEMENT.CONTROL.POINT 320078 . 322151) ( -SK.READ.NEW.GROUP.CONTROL.PT 322153 . 323474)) (323735 328359 (SK.DO.GROUP 323745 . 325197) ( -SK.CHECK.WHENGROUPEDFN 325199 . 325909) (SK.DO.UNGROUP 325911 . 327116) (SK.CHECK.WHENUNGROUPEDFN -327118 . 327705) (SK.GROUP.UNDO 327707 . 328030) (SK.UNGROUP.UNDO 328032 . 328357)) (328600 333522 ( -SK.FREEZE.ELTS 328610 . 328894) (SK.SEL.AND.FREEZE 328896 . 329286) (SK.FREEZE.ELEMENTS 329288 . -329839) (SK.UNFREEZE.ELT 329841 . 330130) (SK.SEL.AND.UNFREEZE 330132 . 331668) (SK.UNFREEZE.ELEMENTS -331670 . 332229) (SK.FREEZE.UNDO 332231 . 332476) (SK.UNFREEZE.UNDO 332478 . 332725) (SK.DO.FREEZE -332727 . 333120) (SK.DO.UNFREEZE 333122 . 333520)) (333752 343562 (SKETCH.ELEMENTS.OF.SKETCH 333762 . -334597) (SKETCH.LIST.OF.ELEMENTS 334599 . 335317) (SKETCH.ADD.ELEMENT 335319 . 336394) ( -SKETCH.DELETE.ELEMENT 336396 . 338128) (DELFROMGROUPELT 338130 . 338930) (SKETCH.ELEMENT.TYPE 338932 - . 339281) (SKETCH.ELEMENT.CHANGED 339283 . 340851) (SK.ELEMENT.CHANGED1 340853 . 341504) ( -SK.UPDATE.GLOBAL.IMAGE.OBJECT.ELEMENT 341506 . 343560)) (343616 348228 (INSURE.SKETCH 343626 . 346241) - (LOCALSPECS.FROM.VIEWER 346243 . 346603) (SK.LOCAL.ELT.FROM.GLOBALPART 346605 . 347073) ( -SKETCH.FROM.VIEWER 347075 . 347309) (INSPECT.SKETCH 347311 . 347636) (ELT.INSIDE.SKETCHWP 347638 . -347911) (SK.INSIDE.REGION 347913 . 348226)) (348229 352559 (MAPSKETCHSPECS 348239 . 348860) ( -MAPCOLLECTSKETCHSPECS 348862 . 349611) (MAPSKETCHSPECSUNTIL 349613 . 350421) (MAPGLOBALSKETCHSPECS -350423 . 351124) (MAPGLOBALSKETCHELEMENTS 351126 . 352557)) (352621 378513 (SK.ADD.SELECTION 352631 . -353371) (SK.COPY.INSERTFN 353373 . 357004) (SCREENELEMENTP 357006 . 357479) (SK.ITEM.REGION 357481 . -357968) (SK.ELEMENT.GLOBAL.REGION 357970 . 358498) (SK.LOCAL.ITEMS.IN.REGION 358500 . 360479) ( -SK.REGIONFN 360481 . 360803) (SK.GLOBAL.REGIONFN 360805 . 361163) (SK.REMOVE.SELECTION 361165 . 361893 -) (SK.SELECT.MULTIPLE.ITEMS 361895 . 372337) (SKETCH.GET.ELEMENTS 372339 . 373762) (SK.PUT.MARKS.UP -373764 . 374103) (SK.TAKE.MARKS.DOWN 374105 . 374444) (SK.TRANSLATE.GLOBALPART 374446 . 376573) ( -SK.TRANSLATE.ITEM 376575 . 377502) (SK.TRANSLATEFN 377504 . 377700) (TRANSLATE.SKETCH 377702 . 378511) -) (378779 381686 (SK.INPUT.SCALE 378789 . 379636) (SK.UPDATE.SKETCHCONTEXT 379638 . 380235) ( -SK.SET.INPUT.SCALE 380237 . 380886) (SK.SET.INPUT.SCALE.CURRENT 380888 . 381179) ( -SK.SET.INPUT.SCALE.VALUE 381181 . 381684)) (381737 383649 (SK.SET.FEEDBACK.MODE 381747 . 383053) ( -SK.SET.FEEDBACK.POINT 383055 . 383223) (SK.SET.FEEDBACK.VERBOSE 383225 . 383394) ( -SK.SET.FEEDBACK.ALWAYS 383396 . 383647)) (383800 385178 (SKETCH.TITLE 383810 . 384174) ( -SK.SHRINK.ICONCREATE 384176 . 385176)) (390868 393682 (READBRUSHSHAPE 390878 . 391337) (READ.FUNCTION -391339 . 391854) (READBRUSHSIZE 391856 . 392314) (READANGLE 392316 . 392808) (READARCDIRECTION 392810 - . 393680)) (393683 404094 (SK.CHANGE.DASHING 393693 . 397641) (READ.AND.SAVE.NEW.DASHING 397643 . -399411) (READ.NEW.DASHING 399413 . 401153) (READ.DASHING.CHANGE 401155 . 402630) (SK.CACHE.DASHING -402632 . 403634) (SK.DASHING.LABEL 403636 . 404092)) (404095 407800 (READ.FILLING.CHANGE 404105 . -406086) (SK.CACHE.FILLING 406088 . 406806) (READ.AND.SAVE.NEW.FILLING 406808 . 407406) ( -SK.FILLING.LABEL 407408 . 407798)) (408184 444437 (SK.GETGLOBALPOSITION 408194 . 408499) ( -SKETCH.TRACK.ELEMENTS 408501 . 412021) (SK.PICKOUT.WHOLE.MOVE.ELEMENTS 412023 . 412582) ( -MAP.SKETCH.ELEMENTS.INTO.VIEWER 412584 . 412976) (MAP.GLOBAL.POSITION.INTO.VIEWER 412978 . 413358) ( -SKETCH.TO.VIEWER.POSITION 413360 . 413719) (SKETCH.TRACK.IMAGE 413721 . 414575) (SK.TRACK.IMAGE1 -414577 . 415989) (MAP.VIEWER.XY.INTO.GLOBAL 415991 . 416985) (SK.SET.POSITION 416987 . 417323) ( -MAP.VIEWER.PT.INTO.GLOBAL 417325 . 418431) (VIEWER.TO.SKETCH.POSITION 418433 . 419068) ( -SK.INSURE.SCALE 419070 . 419330) (SKETCH.TO.VIEWER.REGION 419332 . 420138) (VIEWER.TO.SKETCH.REGION -420140 . 420478) (SK.READ.POINT.WITH.FEEDBACK 420480 . 431483) (SKETCH.GET.POSITION 431485 . 433365) ( -\CLOBBER.POSITION 433367 . 433815) (NEAREST.HOT.SPOT 433817 . 435345) (GETWREGION 435347 . 436108) ( -GET.BITMAP.POSITION 436110 . 436894) (SK.TRACK.BITMAP1 436896 . 444435)) (445006 475892 ( -SK.BRING.UP.POSITION.PAD 445016 . 450876) (SK.PAD.READER.POSITION 450878 . 452527) ( -SK.POSITION.READER.REPAINTFN 452529 . 454313) (SK.POSITION.PAD.FROM.VIEWER 454315 . 455657) ( -SK.INIT.POSITION.NUMBER.PAD.MENU 455659 . 456009) (SK.READ.POSITION.PAD.HANDLER 456011 . 461743) ( -DISPLAY.POSITION.READER.TOTAL 461745 . 464043) (POSITION.PAD.READER.HANDLER 464045 . 472088) ( -POSITIONPAD.HELDFN 472090 . 473574) (\POSITION.PAD.ADD.DIGIT.MENU 473576 . 475155) ( -\POSITION.READER.NUMBERPAD 475157 . 475890)) (477518 480196 (SK.DRAWFN 477528 . 477894) ( -SK.TRANSFORMFN 477896 . 478277) (SK.EXPANDFN 478279 . 478556) (SK.INPUT 478558 . 478939) (SK.INSIDEFN -478941 . 479581) (SK.UPDATEFN 479583 . 480194)) (485961 489906 (SK.CHECK.SKETCH.VERSION 485971 . -487211) (SK.INSURE.RECORD.LENGTH 487213 . 488696) (SK.INSURE.HAS.LENGTH 488698 . 489436) ( -SK.RECORD.LENGTH 489438 . 489612) (SK.SET.RECORD.LENGTHS 489614 . 489904)) (490651 491538 ( -SK.ADD.EDIT.COMMAND.TO.FILE.BROWSER 490661 . 491536))))) + (FILEMAP (NIL (22476 86065 (SKETCH 22486 . 24591) (SKETCH.FROM.A.FILE 24593 . 24908) (SKETCHW.CREATE +24910 . 29484) (SKETCH.RESET 29486 . 31008) (SKETCHW.FIG.CHANGED 31010 . 31350) (SK.WINDOW.TITLE 31352 + . 31739) (EDITSLIDE 31741 . 32147) (EDITSKETCH 32149 . 32473) (SK.PUT.ON.FILE 32475 . 33927) ( +SK.OUTPUT.FILE.NAME 33929 . 34414) (SKETCH.PUT 34416 . 37314) (SK.GET.FROM.FILE 37316 . 38209) ( +SK.INCLUDE.FILE 38211 . 40719) (SK.GET.IMAGEOBJ.FROM.FILE 40721 . 42924) (SKETCH.GET 42926 . 43233) ( +ADD.SKETCH.TO.VIEWER 43235 . 45821) (SK.ADD.ELEMENTS.TO.SKETCH 45823 . 46337) (SKETCH.SET.A.DEFAULT +46339 . 53890) (SK.POPUP.SELECTIONFN 53892 . 54434) (GETSKETCHWREGION 54436 . 54642) (SK.ADD.ELEMENT +54644 . 56223) (SK.ADD.PRIORITY.ELEMENT.TO.SKETCH 56225 . 57619) (SK.ELTS.BY.PRIORITY 57621 . 57917) ( +SK.ORDER.ELEMENTS 57919 . 58186) (SK.ADD.PRIORITY.LOCAL.ELEMENT.TO.SKETCH 58188 . 59682) ( +SK.ADD.ELEMENTS 59684 . 60208) (SK.CHECK.WHENADDEDFN 60210 . 60940) (SK.APPLY.MENU.COMMAND 60942 . +61740) (SK.DELETE.ELEMENT1 61742 . 63320) (SK.MARK.DIRTY 63322 . 63988) (SK.MARK.UNDIRTY 63990 . 64321 +) (SK.MENU.AND.RETURN.FIELD 64323 . 64988) (SKETCH.SET.BRUSH.SHAPE 64990 . 65575) ( +SKETCH.SET.BRUSH.SIZE 65577 . 66083) (SKETCHW.CLOSEFN 66085 . 67876) (SK.CONFIRM.DESTRUCTION 67878 . +68877) (SKETCHW.OUTFN 68879 . 69143) (SKETCHW.REOPENFN 69145 . 69557) (MAKE.LOCAL.SKETCH 69559 . 70289 +) (MAP.SKETCHSPEC.INTO.VIEWER 70291 . 71501) (SKETCHW.REPAINTFN 71503 . 72331) (SKETCHW.REPAINTFN1 +72333 . 73272) (SK.DRAWFIGURE.IF 73274 . 73796) (SKETCHW.SCROLLFN 73798 . 77991) (SKETCHW.RESHAPEFN +77993 . 80251) (SK.UPDATE.EVENT.SELECTION 80253 . 82308) (LIGHTGRAYWINDOW 82310 . 82473) ( +SK.ADD.SPACES 82475 . 83221) (SK.SKETCH.MENU 83223 . 83545) (SK.CHECK.IMAGEOBJ.WHENDELETEDFN 83547 . +84399) (SK.APPLY.IMAGEOBJ.WHENDELETEDFN 84401 . 85361) (SK.RETURN.TTY 85363 . 85731) (SK.TAKE.TTY +85733 . 86063)) (86119 109534 (SKETCH.COMMANDMENU 86129 . 86553) (SKETCH.COMMANDMENU.ITEMS 86555 . +106638) (CREATE.SKETCHW.COMMANDMENU 106640 . 107060) (SKETCHW.SELECTIONFN 107062 . 108165) ( +SKETCH.MONITORLOCK 108167 . 108638) (SK.EVAL.AS.PROCESS 108640 . 109253) (SK.EVAL.WITH.LOCK 109255 . +109532)) (109535 117339 (SK.FIX.MENU 109545 . 110639) (SK.SET.UP.MENUS 110641 . 112942) ( +SK.INSURE.HAS.MENU 112944 . 113606) (SK.CREATE.STANDARD.MENU 113608 . 114053) (SK.ADD.ITEM.TO.MENU +114055 . 114730) (SK.GET.VIEWER.POPUP.MENU 114732 . 116933) (SK.CLEAR.POPUP.MENU 116935 . 117337)) ( +117395 126217 (SKETCH.CREATE 117405 . 118191) (GETSKETCHPROP 118193 . 121250) (PUTSKETCHPROP 121252 . +125184) (CREATE.DEFAULT.SKETCH.CONTEXT 125186 . 126215)) (126383 149279 (SK.COPY.BUTTONEVENTFN 126393 + . 137621) (SK.BUTTONEVENT.MARK 137623 . 138006) (SK.BUILD.IMAGEOBJ 138008 . 147923) ( +SK.BUTTONEVENT.OVERP 147925 . 148548) (SK.BUTTONEVENT.SAME.KEYS 148550 . 149277)) (149558 175373 ( +SK.SEL.AND.CHANGE 149568 . 149860) (SK.CHECK.WHENCHANGEDFN 149862 . 150568) (SK.CHECK.PRECHANGEFN +150570 . 151171) (SK.CHANGE.ELT 151173 . 151365) (SK.CHANGE.THING 151367 . 152618) ( +SKETCH.CHANGE.ELEMENTS 152620 . 153803) (SK.APPLY.SINGLE.CHANGEFN 153805 . 154378) (SK.DO.CHANGESPECS +154380 . 156039) (SK.VIEWER.FROM.SKETCH.ARG 156041 . 156483) (SK.DO.CHANGESPEC1 156485 . 158360) ( +SK.CHANGEFN 158362 . 158942) (SK.READCHANGEFN 158944 . 159403) (SK.DEFAULT.CHANGEFN 159405 . 161877) ( +CHANGEABLEFIELDITEMS 161879 . 162526) (SK.APPLY.CHANGE.COMMAND 162528 . 163145) ( +SK.DO.AND.RECORD.CHANGES 163147 . 164544) (SK.APPLY.CHANGE.COMMAND1 164546 . 166034) ( +SK.ELEMENTS.CHANGEFN 166036 . 168360) (READ.POINT.TO.ADD 168362 . 169306) (GLOBAL.KNOT.FROM.LOCAL +169308 . 169768) (SK.ADD.KNOT.TO.ELEMENT 169770 . 170714) (SK.GROUP.CHANGEFN 170716 . 171928) ( +SK.GROUP.CHANGEFN1 171930 . 175371)) (175540 189273 (ADD.ELEMENT.TO.SKETCH 175550 . 177256) ( +ADD.SKETCH.VIEWER 177258 . 177926) (REMOVE.SKETCH.VIEWER 177928 . 178541) (ALL.SKETCH.VIEWERS 178543 + . 178783) (SKETCH.ALL.VIEWERS 178785 . 179045) (VIEWER.BUCKET 179047 . 179198) (ELT.INSIDE.REGION? +179200 . 179527) (ELT.INSIDE.SKWP 179529 . 179820) (SCALE.FROM.SKW 179822 . 180072) ( +SK.ADDELT.TO.WINDOW 180074 . 180934) (SK.CALC.REGION.VIEWED 180936 . 181314) (SK.DRAWFIGURE 181316 . +182605) (SK.DRAWFIGURE1 182607 . 182991) (SK.LOCAL.FROM.GLOBAL 182993 . 184228) (SKETCH.REGION.VIEWED +184230 . 186917) (SKETCH.VIEW.FROM.NAME 186919 . 187349) (SK.UPDATE.REGION.VIEWED 187351 . 187743) ( +SKETCH.ADD.AND.DISPLAY 187745 . 188153) (SKETCH.ADD.AND.DISPLAY1 188155 . 188593) (SK.ADD.ITEM 188595 + . 188927) (SKETCHW.ADD.INSTANCE 188929 . 189271)) (189314 202502 (SK.SEL.AND.DELETE 189324 . 189712) +(SK.ERASE.AND.DELETE.ITEM 189714 . 190133) (REMOVE.ELEMENT.FROM.SKETCH 190135 . 191246) ( +SK.DELETE.ELEMENT 191248 . 191806) (SK.DELETE.ELEMENT2 191808 . 192469) (SK.DELETE.KNOT 192471 . +192762) (SK.SEL.AND.DELETE.KNOT 192764 . 193889) (SK.DELETE.ELEMENT.KNOT 193891 . 197098) ( +SK.CHECK.WHENDELETEDFN 197100 . 197880) (SK.CHECK.PREEDITFN 197882 . 198366) ( +SK.CHECK.END.INITIAL.EDIT 198368 . 198902) (SK.CHECK.WHENPOINTDELETEDFN 198904 . 199700) (SK.ERASE.ELT + 199702 . 200038) (SK.DELETE.ELT 200040 . 200415) (SK.DELETE.ITEM 200417 . 200825) (DELFROMTCONC +200827 . 202500)) (202541 216375 (SK.COPY.ELT 202551 . 202921) (SK.SEL.AND.COPY 202923 . 203306) ( +SK.COPY.ELEMENTS 203308 . 208936) (SK.ADD.COPY.OF.ELEMENTS 208938 . 210705) ( +SK.GLOBAL.FROM.LOCAL.ELEMENTS 210707 . 210947) (SK.COPY.ITEM 210949 . 211746) (SK.INSERT.SKETCH 211748 + . 216373)) (216415 246436 (SK.MOVE.ELT 216425 . 216700) (SK.MOVE.ELT.OR.PT 216702 . 217015) ( +SK.APPLY.DEFAULT.MOVE 217017 . 217451) (SK.SEL.AND.MOVE 217453 . 218000) (SK.MOVE.ELEMENTS 218002 . +228874) (SKETCH.MOVE.ELEMENTS 228876 . 230807) (SKETCH.COPY.ELEMENTS 230809 . 232856) ( +\SKETCH.COPY.ELEMENT 232858 . 233583) (SK.TRANSLATE.ELEMENT 233585 . 234068) (SK.COPY.GLOBAL.ELEMENT +234070 . 234281) (SK.MAKE.ELEMENT.MOVE.ARG 234283 . 234903) (SK.MAKE.ELEMENTS.MOVE.ARG 234905 . 235427 +) (SK.MAKE.POINTS.AND.ELEMENTS.MOVE.ARG 235429 . 236498) (SK.SHOW.FIG.FROM.INFO 236500 . 236868) ( +SK.MOVE.THING 236870 . 237776) (UPDATE.ELEMENT.IN.SKETCH 237778 . 239833) (SK.UPDATE.ELEMENT 239835 . +241394) (SK.UPDATE.ELEMENTS 241396 . 242115) (SK.UPDATE.ELEMENT1 242117 . 246017) ( +SK.MOVE.ELEMENT.POINT 246019 . 246434)) (246499 268788 (SK.MOVE.POINTS 246509 . 246796) ( +SK.SEL.AND.MOVE.POINTS 246798 . 247103) (SK.DO.MOVE.ELEMENT.POINTS 247105 . 255762) ( +SK.MOVE.ITEM.POINTS 255764 . 257435) (SK.TRANSLATEPTSFN 257437 . 257821) (SK.TRANSLATE.POINTS 257823 + . 258724) (SK.SELECT.MULTIPLE.POINTS 258726 . 264366) (SK.CONTROL.POINTS.IN.REGION 264368 . 265789) ( +SK.ADD.PT.SELECTION 265791 . 266255) (SK.REMOVE.PT.SELECTION 266257 . 266874) (SK.ADD.POINT 266876 . +267499) (SK.ELTS.CONTAINING.PTS 267501 . 268126) (SK.HOTSPOTS.NOT.ON.LIST 268128 . 268786)) (268946 +271742 (SK.SET.MOVE.MODE 268956 . 269627) (SK.SET.MOVE.MODE.POINTS 269629 . 269968) ( +SK.SET.MOVE.MODE.ELEMENTS 269970 . 270314) (SK.SET.MOVE.MODE.COMBINED 270316 . 270666) (READMOVEMODE +270668 . 271740)) (271743 290498 (SK.ALIGN.POINTS 271753 . 272043) (SK.SEL.AND.ALIGN.POINTS 272045 . +272354) (SK.ALIGN.POINTS.LEFT 272356 . 272659) (SK.ALIGN.POINTS.RIGHT 272661 . 272966) ( +SK.ALIGN.POINTS.TOP 272968 . 273269) (SK.ALIGN.POINTS.BOTTOM 273271 . 273578) ( +SK.EVEN.SPACE.POINTS.IN.X 273580 . 273900) (SK.EVEN.SPACE.POINTS.IN.Y 273902 . 274222) ( +SK.DO.ALIGN.POINTS 274224 . 284846) (SK.NTH.CONTROL.POINT 284848 . 285309) ( +SK.GET.SELECTED.ELEMENT.STRUCTURE 285311 . 285977) (SK.CORRESPONDING.CONTROL.PT 285979 . 286533) ( +SK.CONTROL.POINT.NUMBER 286535 . 286905) (SK.DO.ALIGN.SETVALUE 286907 . 290496)) (290562 303994 ( +SKETCH.CREATE.GROUP 290572 . 291061) (SK.CREATE.GROUP1 291063 . 291610) (SK.UPDATE.GROUP.AFTER.CHANGE +291612 . 292401) (SK.GROUP.ELTS 292403 . 292684) (SK.SEL.AND.GROUP 292686 . 293072) (SK.GROUP.ELEMENTS + 293074 . 294723) (SK.UNGROUP.ELT 294725 . 295009) (SK.SEL.AND.UNGROUP 295011 . 296680) ( +SK.UNGROUP.ELEMENT 296682 . 297618) (SK.GLOBAL.REGION.OF.LOCAL.ELEMENTS 297620 . 298542) ( +SK.LOCAL.REGION.OF.LOCAL.ELEMENTS 298544 . 299555) (SK.GLOBAL.REGION.OF.GLOBAL.ELEMENTS 299557 . +300897) (SK.UNIONREGIONS 300899 . 303265) (SKETCH.REGION.OF.SKETCH 303267 . 303683) (SK.FLASHREGION +303685 . 303992)) (303995 317466 (INIT.GROUP.ELEMENT 304005 . 304877) (GROUP.DRAWFN 304879 . 305329) ( +GROUP.EXPANDFN 305331 . 306894) (GROUP.INSIDEFN 306896 . 307305) (GROUP.REGIONFN 307307 . 307702) ( +GROUP.GLOBALREGIONFN 307704 . 308022) (GROUP.TRANSLATEFN 308024 . 310056) (GROUP.TRANSFORMFN 310058 . +313538) (GROUP.READCHANGEFN 313540 . 317464)) (317467 318475 (REGION.CENTER 317477 . 318078) ( +REMOVE.LAST 318080 . 318473)) (318528 323635 (SK.MOVE.GROUP.CONTROL.PT 318538 . 318829) ( +SK.SEL.AND.MOVE.CONTROL.PT 318831 . 320235) (SK.MOVE.GROUP.ELEMENT.CONTROL.POINT 320237 . 322310) ( +SK.READ.NEW.GROUP.CONTROL.PT 322312 . 323633)) (323894 328518 (SK.DO.GROUP 323904 . 325356) ( +SK.CHECK.WHENGROUPEDFN 325358 . 326068) (SK.DO.UNGROUP 326070 . 327275) (SK.CHECK.WHENUNGROUPEDFN +327277 . 327864) (SK.GROUP.UNDO 327866 . 328189) (SK.UNGROUP.UNDO 328191 . 328516)) (328759 333681 ( +SK.FREEZE.ELTS 328769 . 329053) (SK.SEL.AND.FREEZE 329055 . 329445) (SK.FREEZE.ELEMENTS 329447 . +329998) (SK.UNFREEZE.ELT 330000 . 330289) (SK.SEL.AND.UNFREEZE 330291 . 331827) (SK.UNFREEZE.ELEMENTS +331829 . 332388) (SK.FREEZE.UNDO 332390 . 332635) (SK.UNFREEZE.UNDO 332637 . 332884) (SK.DO.FREEZE +332886 . 333279) (SK.DO.UNFREEZE 333281 . 333679)) (333911 343721 (SKETCH.ELEMENTS.OF.SKETCH 333921 . +334756) (SKETCH.LIST.OF.ELEMENTS 334758 . 335476) (SKETCH.ADD.ELEMENT 335478 . 336553) ( +SKETCH.DELETE.ELEMENT 336555 . 338287) (DELFROMGROUPELT 338289 . 339089) (SKETCH.ELEMENT.TYPE 339091 + . 339440) (SKETCH.ELEMENT.CHANGED 339442 . 341010) (SK.ELEMENT.CHANGED1 341012 . 341663) ( +SK.UPDATE.GLOBAL.IMAGE.OBJECT.ELEMENT 341665 . 343719)) (343775 348387 (INSURE.SKETCH 343785 . 346400) + (LOCALSPECS.FROM.VIEWER 346402 . 346762) (SK.LOCAL.ELT.FROM.GLOBALPART 346764 . 347232) ( +SKETCH.FROM.VIEWER 347234 . 347468) (INSPECT.SKETCH 347470 . 347795) (ELT.INSIDE.SKETCHWP 347797 . +348070) (SK.INSIDE.REGION 348072 . 348385)) (348388 352718 (MAPSKETCHSPECS 348398 . 349019) ( +MAPCOLLECTSKETCHSPECS 349021 . 349770) (MAPSKETCHSPECSUNTIL 349772 . 350580) (MAPGLOBALSKETCHSPECS +350582 . 351283) (MAPGLOBALSKETCHELEMENTS 351285 . 352716)) (352780 378672 (SK.ADD.SELECTION 352790 . +353530) (SK.COPY.INSERTFN 353532 . 357163) (SCREENELEMENTP 357165 . 357638) (SK.ITEM.REGION 357640 . +358127) (SK.ELEMENT.GLOBAL.REGION 358129 . 358657) (SK.LOCAL.ITEMS.IN.REGION 358659 . 360638) ( +SK.REGIONFN 360640 . 360962) (SK.GLOBAL.REGIONFN 360964 . 361322) (SK.REMOVE.SELECTION 361324 . 362052 +) (SK.SELECT.MULTIPLE.ITEMS 362054 . 372496) (SKETCH.GET.ELEMENTS 372498 . 373921) (SK.PUT.MARKS.UP +373923 . 374262) (SK.TAKE.MARKS.DOWN 374264 . 374603) (SK.TRANSLATE.GLOBALPART 374605 . 376732) ( +SK.TRANSLATE.ITEM 376734 . 377661) (SK.TRANSLATEFN 377663 . 377859) (TRANSLATE.SKETCH 377861 . 378670) +) (378938 381845 (SK.INPUT.SCALE 378948 . 379795) (SK.UPDATE.SKETCHCONTEXT 379797 . 380394) ( +SK.SET.INPUT.SCALE 380396 . 381045) (SK.SET.INPUT.SCALE.CURRENT 381047 . 381338) ( +SK.SET.INPUT.SCALE.VALUE 381340 . 381843)) (381896 383808 (SK.SET.FEEDBACK.MODE 381906 . 383212) ( +SK.SET.FEEDBACK.POINT 383214 . 383382) (SK.SET.FEEDBACK.VERBOSE 383384 . 383553) ( +SK.SET.FEEDBACK.ALWAYS 383555 . 383806)) (383959 385337 (SKETCH.TITLE 383969 . 384333) ( +SK.SHRINK.ICONCREATE 384335 . 385335)) (391027 393841 (READBRUSHSHAPE 391037 . 391496) (READ.FUNCTION +391498 . 392013) (READBRUSHSIZE 392015 . 392473) (READANGLE 392475 . 392967) (READARCDIRECTION 392969 + . 393839)) (393842 404253 (SK.CHANGE.DASHING 393852 . 397800) (READ.AND.SAVE.NEW.DASHING 397802 . +399570) (READ.NEW.DASHING 399572 . 401312) (READ.DASHING.CHANGE 401314 . 402789) (SK.CACHE.DASHING +402791 . 403793) (SK.DASHING.LABEL 403795 . 404251)) (404254 407959 (READ.FILLING.CHANGE 404264 . +406245) (SK.CACHE.FILLING 406247 . 406965) (READ.AND.SAVE.NEW.FILLING 406967 . 407565) ( +SK.FILLING.LABEL 407567 . 407957)) (408343 444596 (SK.GETGLOBALPOSITION 408353 . 408658) ( +SKETCH.TRACK.ELEMENTS 408660 . 412180) (SK.PICKOUT.WHOLE.MOVE.ELEMENTS 412182 . 412741) ( +MAP.SKETCH.ELEMENTS.INTO.VIEWER 412743 . 413135) (MAP.GLOBAL.POSITION.INTO.VIEWER 413137 . 413517) ( +SKETCH.TO.VIEWER.POSITION 413519 . 413878) (SKETCH.TRACK.IMAGE 413880 . 414734) (SK.TRACK.IMAGE1 +414736 . 416148) (MAP.VIEWER.XY.INTO.GLOBAL 416150 . 417144) (SK.SET.POSITION 417146 . 417482) ( +MAP.VIEWER.PT.INTO.GLOBAL 417484 . 418590) (VIEWER.TO.SKETCH.POSITION 418592 . 419227) ( +SK.INSURE.SCALE 419229 . 419489) (SKETCH.TO.VIEWER.REGION 419491 . 420297) (VIEWER.TO.SKETCH.REGION +420299 . 420637) (SK.READ.POINT.WITH.FEEDBACK 420639 . 431642) (SKETCH.GET.POSITION 431644 . 433524) ( +\CLOBBER.POSITION 433526 . 433974) (NEAREST.HOT.SPOT 433976 . 435504) (GETWREGION 435506 . 436267) ( +GET.BITMAP.POSITION 436269 . 437053) (SK.TRACK.BITMAP1 437055 . 444594)) (445165 476051 ( +SK.BRING.UP.POSITION.PAD 445175 . 451035) (SK.PAD.READER.POSITION 451037 . 452686) ( +SK.POSITION.READER.REPAINTFN 452688 . 454472) (SK.POSITION.PAD.FROM.VIEWER 454474 . 455816) ( +SK.INIT.POSITION.NUMBER.PAD.MENU 455818 . 456168) (SK.READ.POSITION.PAD.HANDLER 456170 . 461902) ( +DISPLAY.POSITION.READER.TOTAL 461904 . 464202) (POSITION.PAD.READER.HANDLER 464204 . 472247) ( +POSITIONPAD.HELDFN 472249 . 473733) (\POSITION.PAD.ADD.DIGIT.MENU 473735 . 475314) ( +\POSITION.READER.NUMBERPAD 475316 . 476049)) (477677 480355 (SK.DRAWFN 477687 . 478053) ( +SK.TRANSFORMFN 478055 . 478436) (SK.EXPANDFN 478438 . 478715) (SK.INPUT 478717 . 479098) (SK.INSIDEFN +479100 . 479740) (SK.UPDATEFN 479742 . 480353)) (486120 490065 (SK.CHECK.SKETCH.VERSION 486130 . +487370) (SK.INSURE.RECORD.LENGTH 487372 . 488855) (SK.INSURE.HAS.LENGTH 488857 . 489595) ( +SK.RECORD.LENGTH 489597 . 489771) (SK.SET.RECORD.LENGTHS 489773 . 490063)) (490528 491415 ( +SK.ADD.EDIT.COMMAND.TO.FILE.BROWSER 490538 . 491413))))) STOP diff --git a/library/sketch/SKETCH-ELEMENTS b/library/sketch/SKETCH-ELEMENTS index 18c122b6b..d99056300 100644 --- a/library/sketch/SKETCH-ELEMENTS +++ b/library/sketch/SKETCH-ELEMENTS @@ -1,10 +1,11 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 6-Nov-2025 17:40:48" {WMEDLEY}SKETCH>SKETCH-ELEMENTS.;16 546518 +(FILECREATED " 7-Nov-2025 11:54:25" {WMEDLEY}SKETCH>SKETCH-ELEMENTS.;22 545478 :EDIT-BY rmk - :CHANGES-TO (FNS SK.DECREASING.FONT.LIST SK.PICK.FONT SK.CHOOSE.TEXT.FONT SK.READFONTSIZE + :CHANGES-TO (FNS SK.CHANGE.TEXT SK.CHANGE.FONT SK.NEWFONT \SK.READ.FONT.SIZE1 SK.NEXTSIZEFONT + SK.DECREASING.FONT.LIST SK.PICK.FONT SK.CHOOSE.TEXT.FONT SK.READFONTSIZE SK.COLLECT.FONT.SIZES SK.READFONTFAMILY SK.SET.FONT SK.GUESS.FONTSAVAILABLE) (VARS SKETCH-ELEMENTSCOMS) @@ -122,7 +123,7 @@ READ.TEXT TEXT.POSITION.AND.CREATE CREATE.TEXT.ELEMENT SK.UPDATE.TEXT.AFTER.CHANGE SK.TEXT.FROM.TEXTBOX TEXT.SET.GLOBAL.REGIONS TEXT.REGIONFN TEXT.GLOBALREGIONFN TEXT.TRANSLATEFN TEXT.TRANSFORMFN TEXT.TRANSLATEPTSFN TEXT.UPDATEFN SK.CHANGE.TEXT - TEXT.SET.SCALES BREAK.AT.CARRIAGE.RETURNS) + SK.CHANGE.FONT TEXT.SET.SCALES BREAK.AT.CARRIAGE.RETURNS) (FNS SK.PICK.FONT SK.CHOOSE.TEXT.FONT SK.NEXTSIZEFONT SK.DECREASING.FONT.LIST) (INITVARS (\KNOWN.SKETCH.FONTSIZES)) (GLOBALVARS \KNOWN.SKETCH.FONTSIZES) @@ -4573,10 +4574,13 @@ Click outside the window to stop.") (RETURN (AND VAL (LIST COMMAND VAL]) (\SK.READ.FONT.SIZE1 - [LAMBDA (SELECTEDELTS SKETCHW NEWFAMILY) (* rrb "14-Jul-86 13:43") - - (* reads a font size from the user. If NEWFONT is NIL, use the one of the first - selected element.) + [LAMBDA (SELECTEDELTS SKETCHW NEWFAMILY) (* ; "Edited 6-Nov-2025 22:35 by rmk") + (* rrb "14-Jul-86 13:43") + (* ; + "reads a font size from the user. If NEWFONT is NIL, use the one of the first selected element.") + + (* reads a font size from the user. If NEWFONT is NIL, use the one of the first + selected element.) (PROG (FIRSTTEXTELT NEWSIZE NOWFONT NEWFONT) (OR (SETQ FIRSTTEXTELT (for SCRNELT inside SELECTEDELTS @@ -4604,7 +4608,7 @@ Click outside the window to stop.") (STATUSPRINT SKETCHW NEWFAMILY NEWSIZE " not found.") NIL) (T (CLOSE.PROMPT.WINDOW SKETCHW) - (SK.FONTNAMELIST NEWFONT]) + (FONTPROP NEWFONT 'SPEC]) (SK.TEXT.ELT.WITH.SAME.FIELDS [LAMBDA (NEWONE ORGONE) (* rrb "18-Jul-85 14:16") @@ -5194,40 +5198,29 @@ Click outside the window to stop.") (RETURN NEWSCREENELT]) (SK.CHANGE.TEXT - [LAMBDA (ELTWITHTEXT HOW SKW) (* ; "Edited 7-Apr-87 13:41 by rrb") + [LAMBDA (ELTWITHTEXT HOW SKW) (* ; "Edited 7-Nov-2025 09:05 by rmk") + (* ; "Edited 7-Apr-87 13:41 by rrb") (PROG ((COMMAND (CADR HOW)) (PROPERTY 'FONT) - NEWVALUE GINDTEXTELT NEWGTEXT OLDVALUE OLDFACE GTYPE) - (OR HOW (RETURN)) (* take down the caret before any - change.) + NEWVALUE GINDTEXTELT NEWGTEXT OLDVALUE GTYPE) + (CL:UNLESS HOW (RETURN)) (* ; + "take down the caret before any change.") (SKED.CLEAR.SELECTION SKW) - (COND - ((MEMB (SETQ GTYPE (fetch (GLOBALPART GTYPE) of ELTWITHTEXT)) - '(TEXTBOX TEXT)) + (CL:WHEN (MEMB (SETQ GTYPE (fetch (GLOBALPART GTYPE) of ELTWITHTEXT)) + '(TEXTBOX TEXT)) (SETQ GINDTEXTELT (fetch (GLOBALPART INDIVIDUALGLOBALPART) of ELTWITHTEXT)) - - (* set the old value to the old font. In the case where the thing that changes - is the justification, this will get re-set) - - (SETQ OLDVALUE (fetch (TEXT FONT) of GINDTEXTELT)) (SETQ NEWGTEXT (SELECTQ (CAR HOW) (TEXT (SELECTQ COMMAND - ((SMALLER LARGER) (* change the font) + ((SMALLER LARGER) (* ; "change the font") [COND - [[SETQ NEWVALUE (SK.NEXTSIZEFONT COMMAND - (LIST (FONTPROP OLDVALUE 'FAMILY) - (FONTPROP OLDVALUE 'SIZE] - (* if there is an appropriate size - font, use it.) - [SETQ NEWVALUE (LIST (FONTPROP NEWVALUE 'FAMILY) - (FONTPROP NEWVALUE 'SIZE) - (FONTPROP OLDVALUE 'FACE] - (COND - ((EQ GTYPE 'TEXT) - (create TEXT using GINDTEXTELT FONT _ NEWVALUE)) - (T (create TEXTBOX using GINDTEXTELT FONT _ NEWVALUE] - (T (* otherwise just scale the area some.) + ((SETQ NEWVALUE (SK.NEXTSIZEFONT COMMAND OLDVALUE)) + (* ; + "if there is an appropriate size font, use it.") + (OR (SK.CHANGE.FONT SKW ELTWITHTEXT NEWVALUE) + (RETURN))) + (T (* ; + "otherwise just scale the area some.") (SETQ NEWVALUE (FTIMES (SETQ OLDVALUE (fetch (TEXT INITIALSCALE ) @@ -5241,18 +5234,18 @@ Click outside the window to stop.") (create TEXT using GINDTEXTELT INITIALSCALE _ NEWVALUE)) (T (create TEXTBOX using GINDTEXTELT INITIALSCALE _ NEWVALUE]) - ((CENTER LEFT RIGHT) (* change the horizontal justification) - [SETQ NEWVALUE (LIST COMMAND (CADR (SETQ OLDVALUE - (fetch (TEXT TEXTSTYLE) - of GINDTEXTELT] + ((CENTER LEFT RIGHT) (* ; + "change the horizontal justification") + (SETQ OLDVALUE (fetch (TEXT TEXTSTYLE) of GINDTEXTELT)) + (SETQ NEWVALUE (LIST COMMAND (CADR OLDVALUE))) (SETQ PROPERTY 'JUSTIFICATION) (COND ((EQ GTYPE 'TEXT) (create TEXT using GINDTEXTELT TEXTSTYLE _ NEWVALUE)) (T (create TEXTBOX using GINDTEXTELT TEXTSTYLE _ NEWVALUE)))) - ((TOP BOTTOM MIDDLE BASELINE) (* change the vertical justification) - [SETQ NEWVALUE (LIST (CAR (SETQ OLDVALUE (fetch (TEXT TEXTSTYLE) - of GINDTEXTELT))) + ((TOP BOTTOM MIDDLE BASELINE) (* ; "change the vertical justification") + (SETQ OLDVALUE (fetch (TEXT TEXTSTYLE) of GINDTEXTELT)) + [SETQ NEWVALUE (LIST (CAR OLDVALUE) (COND ((EQ COMMAND 'MIDDLE) 'CENTER) @@ -5262,28 +5255,26 @@ Click outside the window to stop.") ((EQ GTYPE 'TEXT) (create TEXT using GINDTEXTELT TEXTSTYLE _ NEWVALUE)) (T (create TEXTBOX using GINDTEXTELT TEXTSTYLE _ NEWVALUE)))) - ((BOLD UNBOLD ITALIC UNITALIC) (* change the face) - (SETQ OLDFACE (FONTPROP OLDVALUE 'FACE)) - [SETQ NEWVALUE (LIST (FONTPROP OLDVALUE 'FAMILY) - (FONTPROP OLDVALUE 'SIZE) - (LIST (SELECTQ COMMAND - (BOLD 'BOLD) - (UNBOLD 'MEDIUM) - (CAR OLDFACE)) - (SELECTQ COMMAND - (ITALIC 'ITALIC) - (UNITALIC 'REGULAR) - (CADR OLDFACE)) - (CADDR OLDFACE] - (COND - ((EQ GTYPE 'TEXT) - (create TEXT using GINDTEXTELT FONT _ NEWVALUE)) - (T (create TEXTBOX using GINDTEXTELT FONT _ NEWVALUE)))) - (BOX (* if it is a text element, BOX it) + ((BOLD UNBOLD ITALIC UNITALIC) (* ; "change the face") + (OR (SK.CHANGE.FONT SKW ELTWITHTEXT GINDTEXTELT NIL NIL + (MAKEFONTFACE (SELECTQ COMMAND + (BOLD 'BOLD) + (UNBOLD 'MEDIUM) + NIL) + (SELECTQ COMMAND + (ITALIC 'ITALIC) + (UNITALIC 'REGULAR) + NIL) + NIL + (fetch (TEXT FONT) of GINDTEXTELT))) + (RETURN))) + (BOX (* ; + "RMK 2025: RETURN MEANS NO HISTORY?") + (* ; "if it is a text element, BOX it") [COND ((EQ GTYPE 'TEXT) (RETURN (SK.TEXTBOX.FROM.TEXT ELTWITHTEXT SKW]) - (UNBOX (* if it is a text box, unbox it.) + (UNBOX (* ; "if it is a text box, unbox it.") [COND ((EQ GTYPE 'TEXTBOX) (RETURN (SK.TEXT.FROM.TEXTBOX ELTWITHTEXT SKW]) @@ -5291,59 +5282,25 @@ Click outside the window to stop.") ((EQ GTYPE 'TEXT) (RETURN (SK.LOOKEDSTRING.FROM.TEXT ELTWITHTEXT SKW]) (SHOULDNT))) - (SETSIZE (SETQ NEWVALUE COMMAND) - (COND - [(EQ (FONTPROP NEWVALUE 'FAMILY) - (FONTPROP OLDVALUE 'FAMILY)) - - (* if the families are the same, change them, otherwise don't as it isn't known - whether or not this family has the right size.) + (SETSIZE + (* ;; "if the families are the same, change them, otherwise don't as it isn't known whether or not this family has the right size.") - (COND - [(EQ GTYPE 'TEXT) - (create TEXT using GINDTEXTELT FONT _ (LIST (FONTPROP - OLDVALUE - 'FAMILY) - (FONTPROP - NEWVALUE - 'SIZE) - (FONTPROP - OLDVALUE - 'FACE] - (T (create TEXTBOX using GINDTEXTELT FONT _ - (LIST (FONTPROP OLDVALUE 'FAMILY) - (FONTPROP NEWVALUE 'SIZE) - (FONTPROP OLDVALUE 'FACE] - (T (RETURN)))) - (NEWFONT (* set the font family) - [SETQ NEWVALUE (LIST COMMAND (FONTPROP OLDVALUE 'SIZE) - (FONTPROP OLDVALUE 'FACE] - (COND - ((NULL (FONTCREATE NEWVALUE NIL NIL NIL NIL T)) - (STATUSPRINT SKW " Couldn't find " (CAR NEWVALUE) - " in size " - (CADR NEWVALUE)) + (OR [AND (EQ (FONTPROP COMMAND 'FAMILY) + (FONTPROP OLDVALUE 'FAMILY)) + (SK.CHANGE.FONT SKW ELTWITHTEXT NIL (FONTPROP COMMAND + 'SIZE] (RETURN))) - (COND - ((EQ GTYPE 'TEXT) - (create TEXT using GINDTEXTELT FONT _ NEWVALUE)) - (T (create TEXTBOX using GINDTEXTELT FONT _ NEWVALUE)))) - (FAMILY&SIZE (* set the font family and size) - [SETQ NEWVALUE (LIST (CAR COMMAND) - (CADR COMMAND) - (FONTPROP (fetch (TEXT FONT) of GINDTEXTELT) - 'FACE] - (COND - ((EQ GTYPE 'TEXT) - (create TEXT using GINDTEXTELT FONT _ NEWVALUE)) - (T (create TEXTBOX using GINDTEXTELT FONT _ NEWVALUE)))) - (SAME - - (* set all of the font characteristics from the first selected one.) - - (* set the variables to cause the right things to go into the change spec - event.) - + (NEWFONT (* ; "set the font family") + (CL:UNLESS (SK.CHANGE.FONT SKW ELTWITHTEXT COMMAND) + (RETURN))) + (FAMILY&SIZE (* ; "set the font family and size") + (CL:UNLESS (SK.CHANGE.FONT SKW ELTWITHTEXT (CAR COMMAND) + (CADR COMMAND)) + (RETURN))) + (SAME (* ; + "set all of the font characteristics from the first selected one.") + (* ; + "set the variables to cause the right things to go into the change spec event.") (SETQ OLDVALUE ELTWITHTEXT) (SETQ PROPERTY 'LOOKSAME) (SETQ NEWVALUE (SK.TEXT.ELT.WITH.SAME.FIELDS (fetch (GLOBALPART @@ -5352,11 +5309,8 @@ Click outside the window to stop.") GINDTEXTELT))) (SHOULDNT))) [SETQ NEWGTEXT (COND - [(EQ GTYPE 'TEXT) - - (* adjust the scales at which this appears because font or scale may have - changed.) - + [(EQ GTYPE 'TEXT) (* ; + "adjust the scales at which this appears because font or scale may have changed.") (TEXT.SET.SCALES (create GLOBALPART COMMONGLOBALPART _ (fetch (GLOBALPART COMMONGLOBALPART @@ -5365,11 +5319,8 @@ Click outside the window to stop.") INDIVIDUALGLOBALPART _ (  TEXT.SET.GLOBAL.REGIONS NEWGTEXT] - (T - - (* scaling for text boxes depends on the box size which can't change in this - function.) - + (T (* ; + "scaling for text boxes depends on the box size which can't change in this function.") (create GLOBALPART COMMONGLOBALPART _ (fetch (GLOBALPART COMMONGLOBALPART) of ELTWITHTEXT) @@ -5380,7 +5331,26 @@ Click outside the window to stop.") OLDELT _ ELTWITHTEXT PROPERTY _ PROPERTY NEWVALUE _ NEWVALUE - OLDVALUE _ OLDVALUE]) + OLDVALUE _ OLDVALUE)))]) + +(SK.CHANGE.FONT + [LAMBDA (SKW ELTWITHTEXT FAMILY SIZE FACE) (* ; "Edited 7-Nov-2025 09:09 by rmk") + (LET (NEWFS) + [if (FONTP FAMILY) + then (SETQ NEWFS (FONTPROP FAMILY 'SPEC)) + else (SETQ NEWFS (MAKEFONTSPEC FAMILY SIZE FACE NIL NIL (fetch (TEXT FONT) of GINDTEXTELT) + )) + (CL:UNLESS (FONTCREATE NEWFS NIL NIL NIL NIL T) + (STATUSPRINT SKW " Couldn't find " (fetch (FONTSPEC FSFAMILY) of NEWFS) + " in size " + (fetch (FONTSPEC FSSIZE) of NEWFS)))] + (CL:WHEN NEWFS + (if (EQ (fetch (GLOBALPART GTYPE) of ELTWITHTEXT) + 'TEXT) + then (create TEXT using (fetch (GLOBALPART INDIVIDUALGLOBALPART) of ELTWITHTEXT) + FONT _ NEWFS) + else (create TEXTBOX using (fetch (GLOBALPART INDIVIDUALGLOBALPART) of ELTWITHTEXT) + FONT _ NEWFS)))]) (TEXT.SET.SCALES [LAMBDA (GTEXTELT) (* rrb "12-May-85 16:29") @@ -5545,27 +5515,30 @@ Click outside the window to stop.") (RETURN LOCALFONT]) (SK.NEXTSIZEFONT - [LAMBDA (WHICHDIR NOWFONT) (* rrb "14-Jul-86 13:43") - - (* returns the next sized font either SMALLER or LARGER that on of size FONT.) - - (PROG [(NOWSIZE (FONTPROP NOWFONT 'HEIGHT)) - (DECREASEFONTLST (SK.DECREASING.FONT.LIST (CAR NOWFONT) - 'DISPLAY] - (RETURN (COND - [(EQ WHICHDIR 'LARGER) - (COND - ((IGEQ NOWSIZE (FONTPROP (CAR DECREASEFONTLST) - 'HEIGHT)) (* nothing larger) - NIL) - (T (for FONTTAIL on DECREASEFONTLST - when [AND (CDR FONTTAIL) - (IGEQ NOWSIZE (FONTPROP (CADR FONTTAIL) - 'HEIGHT] - do (RETURN (SK.FONTNAMELIST (CAR FONTTAIL] - (T (for FONT in DECREASEFONTLST when (LESSP (FONTPROP FONT 'HEIGHT) - NOWSIZE) - do (RETURN (SK.FONTNAMELIST FONT]) + [LAMBDA (WHICHDIR NOWFONT) (* ; "Edited 6-Nov-2025 22:52 by rmk") + (* rrb "14-Jul-86 13:43") + + (* ;; "Returns the next sized font either SMALLER or LARGER that on of size FONT. This returns FONTSPEC, not font descriptor") + + (* ;; "RMK 2025: The original code tested HEIGHT, but SK.DECREASING.FONT.LIST orders according to SIZE. Presumably correlated, but if they ever got out of whack, this would be wrong. So changed to SIZE.") + + (* ;; "Also, this returns a FONTSPEC, not the font descriptor.") + + (LET [(NOWSIZE (FONTPROP NOWFONT 'SIZE)) + (DECREASEFONTLST (SK.DECREASING.FONT.LIST (FONTPROP NOWFONT 'FAMILY) + 'DISPLAY] + (COND + [(EQ WHICHDIR 'LARGER) + (CL:WHEN (ILESSP NOWSIZE (FONTPROP (CAR DECREASEFONTLST) + 'SIZE)) (* ; "Otherwise, nothing larger") + [for FONTTAIL on DECREASEFONTLST when [AND (CDR FONTTAIL) + (IGEQ NOWSIZE (FONTPROP (CADR FONTTAIL) + 'SIZE] + do (RETURN (FONTPROP (CAR FONTTAIL) + 'SPEC])] + (T (for FONT in DECREASEFONTLST when (LESSP (FONTPROP FONT 'SIZE) + NOWSIZE) + do (RETURN (FONTPROP FONT 'SPEC]) (SK.DECREASING.FONT.LIST [LAMBDA (FAMILY DEVICE) (* ; "Edited 6-Nov-2025 17:40 by rmk") @@ -9099,136 +9072,136 @@ No more font sizes found.") (fetch (REGION TOP) of REGION]) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (14369 24779 (INIT.SKETCH.ELEMENTS 14379 . 21942) (CREATE.SKETCH.ELEMENT.TYPE 21944 . -23466) (SKETCH.ELEMENT.TYPEP 23468 . 23856) (SKETCH.ELEMENT.NAMEP 23858 . 24121) ( -\CURSOR.IN.MIDDLE.MENU 24123 . 24777)) (24820 25497 (SKETCHINCOLORP 24830 . 25150) (READ.COLOR.CHANGE -25152 . 25495)) (26006 28785 (SK.CREATE.DEFAULT.FILLING 26016 . 26317) (SKFILLINGP 26319 . 26952) ( -SK.INSURE.FILLING 26954 . 28382) (SK.INSURE.COLOR 28384 . 28783)) (28786 34396 (SK.TRANSLATE.MODE -28796 . 29578) (SK.CHANGE.FILLING.MODE 29580 . 33163) (READ.FILLING.MODE 33165 . 34394)) (34397 65071 -(SKETCH.CREATE.CIRCLE 34407 . 35219) (CIRCLE.EXPANDFN 35221 . 38593) (CIRCLE.DRAWFN 38595 . 41596) ( -\CIRCLE.DRAWFN1 41598 . 44193) (CIRCLE.INPUTFN 44195 . 46044) (SK.UPDATE.CIRCLE.AFTER.CHANGE 46046 . -46405) (SK.READ.CIRCLE.POINT 46407 . 46878) (SK.SHOW.CIRCLE 46880 . 47526) (CIRCLE.INSIDEFN 47528 . -47793) (CIRCLE.REGIONFN 47795 . 49476) (CIRCLE.GLOBALREGIONFN 49478 . 50996) (CIRCLE.TRANSLATE 50998 - . 52859) (CIRCLE.READCHANGEFN 52861 . 57477) (CIRCLE.TRANSFORMFN 57479 . 59332) (CIRCLE.TRANSLATEPTS -59334 . 60948) (SK.CIRCLE.CREATE 60950 . 61793) (SET.CIRCLE.SCALE 61795 . 62561) (SK.BRUSH.READCHANGE -62563 . 65069)) (65072 65801 (SK.INSURE.BRUSH 65082 . 65476) (SK.INSURE.DASHING 65478 . 65799)) (67015 - 96509 (SKETCH.CREATE.ELLIPSE 67025 . 67624) (ELLIPSE.EXPANDFN 67626 . 71238) (ELLIPSE.DRAWFN 71240 . -75417) (ELLIPSE.INPUTFN 75419 . 77859) (SK.READ.ELLIPSE.MAJOR.PT 77861 . 78440) ( -SK.SHOW.ELLIPSE.MAJOR.RADIUS 78442 . 79197) (SK.READ.ELLIPSE.MINOR.PT 79199 . 79892) ( -SK.SHOW.ELLIPSE.MINOR.RADIUS 79894 . 80726) (ELLIPSE.INSIDEFN 80728 . 80998) (ELLIPSE.CREATE 81000 . -82375) (SK.UPDATE.ELLIPSE.AFTER.CHANGE 82377 . 82745) (ELLIPSE.REGIONFN 82747 . 84947) ( -ELLIPSE.GLOBALREGIONFN 84949 . 86762) (ELLIPSE.TRANSLATEFN 86764 . 89310) (ELLIPSE.TRANSFORMFN 89312 - . 90589) (ELLIPSE.TRANSLATEPTS 90591 . 92632) (MARK.SPOT 92634 . 93885) (DISTANCEBETWEEN 93887 . -94482) (SK.DISTANCE.TO 94484 . 94869) (SQUARE 94871 . 94913) (COMPUTE.ELLIPSE.ORIENTATION 94915 . -95634) (SK.COMPUTE.ELLIPSE.MINOR.RADIUS.PT 95636 . 96507)) (97622 138678 (SKETCH.CREATE.OPEN.CURVE -97632 . 98185) (OPENCURVE.INPUTFN 98187 . 99055) (SK.CURVE.CREATE 99057 . 100802) (MAXXEXTENT 100804 - . 101663) (MAXYEXTENT 101665 . 102525) (KNOT.SET.SCALE.FIELD 102527 . 103329) (OPENCURVE.DRAWFN -103331 . 104462) (OPENCURVE.EXPANDFN 104464 . 107779) (OPENCURVE.READCHANGEFN 107781 . 110983) ( -OPENCURVE.TRANSFORMFN 110985 . 113483) (OPENCURVE.TRANSLATEFN 113485 . 113907) ( -OPENCURVE.TRANSLATEPTSFN 113909 . 115290) (SKETCH.CREATE.CLOSED.CURVE 115292 . 115798) ( -CLOSEDCURVE.DRAWFN 115800 . 116584) (CLOSEDCURVE.EXPANDFN 116586 . 119699) (CLOSEDCURVE.REGIONFN -119701 . 120498) (CLOSEDCURVE.GLOBALREGIONFN 120500 . 121933) (READ.LIST.OF.POINTS 121935 . 123914) ( -CLOSEDCURVE.INPUTFN 123916 . 124561) (CLOSEDCURVE.READCHANGEFN 124563 . 127458) ( -CLOSEDCURVE.TRANSFORMFN 127460 . 129260) (CLOSEDCURVE.TRANSLATEPTSFN 129262 . 130607) (INVISIBLEPARTP -130609 . 130962) (SHOWSKETCHPOINT 130964 . 131269) (SHOWSKETCHXY 131271 . 131789) (KNOTS.REGIONFN -131791 . 132692) (OPENWIRE.GLOBALREGIONFN 132694 . 133558) (CURVE.REGIONFN 133560 . 134501) ( -OPENCURVE.GLOBALREGIONFN 134503 . 135910) (KNOTS.TRANSLATEFN 135912 . 136955) (REGION.CONTAINING.PTS -136957 . 138676)) (138679 160955 (CHANGE.ELTS.BRUSH.SIZE 138689 . 139299) (CHANGE.ELTS.BRUSH 139301 . -139818) (CHANGE.ELTS.BRUSH.SHAPE 139820 . 140221) (SK.CHANGE.BRUSH.SHAPE 140223 . 143735) ( -SK.CHANGE.BRUSH.COLOR 143737 . 148183) (SK.CHANGE.BRUSH.SIZE 148185 . 153143) (SK.CHANGE.ANGLE 153145 - . 156125) (SK.CHANGE.ARC.DIRECTION 156127 . 158506) (SK.SET.DEFAULT.BRUSH.SIZE 158508 . 159207) ( -READSIZECHANGE 159209 . 160953)) (160956 162575 (SK.CHANGE.ELEMENT.KNOTS 160966 . 162573)) (162576 -163223 (SK.INSURE.POINT.LIST 162586 . 163039) (SK.INSURE.POSITION 163041 . 163221)) (164591 196914 ( -SKETCH.CREATE.WIRE 164601 . 165091) (CLOSEDWIRE.EXPANDFN 165093 . 167781) (KNOTS.INSIDEFN 167783 . -168504) (OPEN.WIRE.DRAWFN 168506 . 169098) (WIRE.EXPANDFN 169100 . 172347) ( -SK.UPDATE.WIRE.ELT.AFTER.CHANGE 172349 . 172870) (OPENWIRE.READCHANGEFN 172872 . 175365) ( -OPENWIRE.TRANSFORMFN 175367 . 177490) (OPENWIRE.TRANSLATEFN 177492 . 177916) (OPENWIRE.TRANSLATEPTSFN -177918 . 179197) (WIRE.INPUTFN 179199 . 180830) (SK.READ.WIRE.POINTS 180832 . 181363) ( -SK.READ.POINTS.WITH.FEEDBACK 181365 . 184132) (OPENWIRE.FEEDBACKFN 184134 . 184888) ( -CLOSEDWIRE.FEEDBACKFN 184890 . 186246) (CLOSEDWIRE.REGIONFN 186248 . 187233) ( -CLOSEDWIRE.GLOBALREGIONFN 187235 . 188287) (SK.WIRE.CREATE 188289 . 190052) (WIRE.ADD.POINT.TO.END -190054 . 190970) (READ.ARROW.CHANGE 190972 . 196448) (CHANGE.ELTS.ARROWHEADS 196450 . 196912)) (196915 - 207921 (SKETCH.CREATE.CLOSED.WIRE 196925 . 197486) (CLOSED.WIRE.INPUTFN 197488 . 197843) ( -CLOSED.WIRE.DRAWFN 197845 . 199890) (CLOSEDWIRE.READCHANGEFN 199892 . 204797) (CLOSEDWIRE.TRANSFORMFN -204799 . 206593) (CLOSEDWIRE.TRANSLATEPTSFN 206595 . 207919)) (207922 260628 (SK.EXPAND.ARROWHEADS -207932 . 208282) (SK.COMPUTE.ARC.ARROWHEAD.POINTS 208284 . 209665) (ARC.ARROWHEAD.POINTS 209667 . -210890) (SET.ARC.ARROWHEAD.POINTS 210892 . 211873) (SET.OPENCURVE.ARROWHEAD.POINTS 211875 . 212776) ( -SK.COMPUTE.CURVE.ARROWHEAD.POINTS 212778 . 214048) (SET.WIRE.ARROWHEAD.POINTS 214050 . 214803) ( -SK.COMPUTE.WIRE.ARROWHEAD.POINTS 214805 . 216070) (SK.EXPAND.ARROWHEAD 216072 . 217255) (CHANGED.ARROW - 217257 . 220429) (SK.CHANGE.ARROWHEAD 220431 . 220884) (SK.CHANGE.ARROWHEAD1 220886 . 226141) ( -SK.CREATE.ARROWHEAD 226143 . 226663) (SK.ARROWHEAD.CREATE 226665 . 228239) (SK.ARROWHEAD.END.TEST -228241 . 229165) (READ.ARROWHEAD.END 229167 . 231192) (ARROW.HEAD.POSITIONS 231194 . 233034) ( -ARROWHEAD.POINTS.LIST 233036 . 237008) (CURVE.ARROWHEAD.POINTS 237010 . 237873) (LEFT.MOST.IS.BEGINP -237875 . 238756) (WIRE.ARROWHEAD.POINTS 238758 . 240284) (DRAWARROWHEADS 240286 . 242656) ( -\SK.DRAW.TRIANGLE.ARROWHEAD 242658 . 244318) (\SK.ENDPT.OF.ARROW 244320 . 246577) ( -\SK.ADJUST.FOR.ARROWHEADS 246579 . 249084) (SK.SET.ARROWHEAD.LENGTH 249086 . 250230) ( -SK.SET.ARROWHEAD.ANGLE 250232 . 251328) (SK.SET.ARROWHEAD.TYPE 251330 . 254619) (SK.SET.LINE.ARROWHEAD - 254621 . 257034) (SK.UPDATE.ARROWHEAD.FORMAT 257036 . 259146) (SK.SET.LINE.LENGTH.MODE 259148 . -260626)) (260629 262430 (SK.INSURE.ARROWHEADS 260639 . 261821) (SK.ARROWHEADP 261823 . 262428)) ( -265227 328477 (SKETCH.CREATE.TEXT 265237 . 265751) (TEXT.CHANGEFN 265753 . 266145) (TEXT.READCHANGEFN -266147 . 274218) (\SK.READ.FONT.SIZE1 274220 . 276116) (SK.TEXT.ELT.WITH.SAME.FIELDS 276118 . 277758) -(SK.READFONTFAMILY 277760 . 280230) (CLOSE.PROMPT.WINDOW 280232 . 280656) (TEXT.DRAWFN 280658 . 281379 -) (TEXT.DRAWFN1 281381 . 284883) (TEXT.INSIDEFN 284885 . 285274) (TEXT.EXPANDFN 285276 . 287401) ( -SK.TEXT.LINE.REGIONS 287403 . 289277) (TEXT.UPDATE.GLOBAL.REGIONS 289279 . 290511) (REL.MOVE.REGION -290513 . 291050) (LTEXT.LINE.REGIONS 291052 . 294470) (TEXT.INPUTFN 294472 . 294982) (READ.TEXT 294984 - . 295732) (TEXT.POSITION.AND.CREATE 295734 . 298045) (CREATE.TEXT.ELEMENT 298047 . 298865) ( -SK.UPDATE.TEXT.AFTER.CHANGE 298867 . 299269) (SK.TEXT.FROM.TEXTBOX 299271 . 303077) ( -TEXT.SET.GLOBAL.REGIONS 303079 . 304372) (TEXT.REGIONFN 304374 . 305144) (TEXT.GLOBALREGIONFN 305146 - . 305834) (TEXT.TRANSLATEFN 305836 . 307151) (TEXT.TRANSFORMFN 307153 . 308276) (TEXT.TRANSLATEPTSFN -308278 . 308795) (TEXT.UPDATEFN 308797 . 313453) (SK.CHANGE.TEXT 313455 . 326543) (TEXT.SET.SCALES -326545 . 327513) (BREAK.AT.CARRIAGE.RETURNS 327515 . 328475)) (328478 341098 (SK.PICK.FONT 328488 . -332760) (SK.CHOOSE.TEXT.FONT 332762 . 337033) (SK.NEXTSIZEFONT 337035 . 338302) ( -SK.DECREASING.FONT.LIST 338304 . 341096)) (341517 353191 (SK.SET.FONT 341527 . 342794) ( -SK.SET.TEXT.FONT 342796 . 343798) (SK.SET.TEXT.SIZE 343800 . 344487) (SK.SET.TEXT.HORIZ.ALIGN 344489 - . 346063) (SK.READFONTSIZE 346065 . 347963) (SK.COLLECT.FONT.SIZES 347965 . 349046) ( -SK.SET.TEXT.VERT.ALIGN 349048 . 351090) (SK.SET.TEXT.LOOKS 351092 . 352549) (SK.SET.DEFAULT.TEXT.FACE -352551 . 353189)) (353192 353778 (CREATE.SKETCH.TERMTABLE 353202 . 353776)) (353779 355545 ( -SK.FONT.LIST 353789 . 354115) (SK.INSURE.FONT 354117 . 354639) (SK.INSURE.STYLE 354641 . 355159) ( -SK.INSURE.TEXT 355161 . 355543)) (356085 413378 (SKETCH.CREATE.TEXTBOX 356095 . 357737) ( -SK.COMPUTE.TEXTBOX.REGION.FOR.STRING 357739 . 359816) (SK.BREAK.INTO.LINES 359818 . 371004) ( -SK.BRUSH.SIZE 371006 . 371387) (SK.TEXTBOX.CREATE 371389 . 372186) (SK.TEXTBOX.CREATE1 372188 . 373252 -) (SK.UPDATE.TEXTBOX.AFTER.CHANGE 373254 . 373794) (SK.TEXTBOX.POSITION.IN.BOX 373796 . 375707) ( -TEXTBOX.CHANGEFN 375709 . 376183) (TEXTBOX.DRAWFN 376185 . 378221) (SK.TEXTURE.AROUND.REGIONS 378223 - . 384296) (ALL.EMPTY.REGIONS 384298 . 384788) (TEXTBOX.EXPANDFN 384790 . 391946) (TEXTBOX.INPUTFN -391948 . 393561) (TEXTBOX.INSIDEFN 393563 . 393976) (TEXTBOX.REGIONFN 393978 . 394832) ( -TEXTBOX.GLOBALREGIONFN 394834 . 395162) (TEXTBOX.SET.GLOBAL.REGIONS 395164 . 396495) ( -TEXTBOX.TRANSLATEFN 396497 . 398338) (TEXTBOX.TRANSLATEPTSFN 398340 . 401123) (TEXTBOX.TRANSFORMFN -401125 . 402793) (TEXTBOX.UPDATEFN 402795 . 404688) (TEXTBOX.READCHANGEFN 404690 . 409579) ( -SK.TEXTBOX.TEXT.POSITION 409581 . 410002) (SK.TEXTBOX.FROM.TEXT 410004 . 412609) (ADD.EOLS 412611 . -413376)) (413907 417408 (SK.SET.TEXTBOX.VERT.ALIGN 413917 . 415797) (SK.SET.TEXTBOX.HORIZ.ALIGN 415799 - . 417406)) (417791 462266 (SKETCH.CREATE.BOX 417801 . 418284) (SK.BOX.DRAWFN 418286 . 419445) ( -BOX.DRAWFN1 419447 . 422286) (KNOTS.OF.REGION 422288 . 423522) (SK.DRAWAREABOX 423524 . 430125) ( -SK.DRAWBOX 430127 . 431316) (SK.BOX.EXPANDFN 431318 . 435066) (SK.BOX.GETREGIONFN 435068 . 436254) ( -BOX.SET.SCALES 436256 . 437496) (SK.BOX.INPUTFN 437498 . 439431) (SK.BOX.CREATE 439433 . 440134) ( -SK.UPDATE.BOX.AFTER.CHANGE 440136 . 440647) (SK.BOX.INSIDEFN 440649 . 441039) (SK.BOX.REGIONFN 441041 - . 441754) (SK.BOX.GLOBALREGIONFN 441756 . 442494) (SK.BOX.READCHANGEFN 442496 . 446217) ( -SK.CHANGE.FILLING 446219 . 450167) (SK.CHANGE.FILLING.COLOR 450169 . 453825) (SK.BOX.TRANSLATEFN -453827 . 455006) (SK.BOX.TRANSFORMFN 455008 . 455953) (SK.BOX.TRANSLATEPTSFN 455955 . 458323) ( -UNSCALE.REGION.TO.GRID 458325 . 459250) (INCREASEREGION 459252 . 459843) (INSUREREGIONSIZE 459845 . -461016) (EXPANDREGION 461018 . 461898) (REGION.FROM.COORDINATES 461900 . 462264)) (462802 489157 ( -SKETCH.CREATE.ARC 462812 . 463621) (ARC.DRAWFN 463623 . 465350) (ARC.EXPANDFN 465352 . 467685) ( -ARC.INPUTFN 467687 . 471905) (SK.INVERT.CIRCLE 471907 . 472767) (SK.READ.ARC.ANGLE.POINT 472769 . -473276) (SK.SHOW.ARC 473278 . 473888) (ARC.CREATE 473890 . 475245) (SK.UPDATE.ARC.AFTER.CHANGE 475247 - . 475587) (ARC.MOVEFN 475589 . 477172) (ARC.TRANSLATEPTS 477174 . 479059) (ARC.INSIDEFN 479061 . -479311) (ARC.REGIONFN 479313 . 480449) (ARC.GLOBALREGIONFN 480451 . 482173) (ARC.TRANSLATE 482175 . -483157) (ARC.TRANSFORMFN 483159 . 486109) (ARC.READCHANGEFN 486111 . 489155)) (489158 498237 ( -SK.COMPUTE.ARC.ANGLE.PT 489168 . 490094) (SK.COMPUTE.ARC.ANGLE.PT.FROM.ANGLE 490096 . 491089) ( -SK.COMPUTE.ARC.PTS 491091 . 494663) (SK.SET.ARC.DIRECTION 494665 . 495239) (SK.SET.ARC.DIRECTION.CW -495241 . 495415) (SK.SET.ARC.DIRECTION.CCW 495417 . 495690) (SK.COMPUTE.SLOPE.OF.LINE 495692 . 496184) - (SK.CREATE.ARC.USING 496186 . 497423) (SET.ARC.SCALES 497425 . 498235)) (498238 498683 ( -SK.INSURE.DIRECTION 498248 . 498681)) (500054 545913 (GETSKETCHELEMENTPROP 500064 . 501372) ( -\SK.GET.ARC.ANGLEPT 501374 . 501935) (\GETSKETCHELEMENTPROP1 501937 . 502191) (\SK.GET.BRUSH 502193 . -503117) (\SK.GET.FILLING 503119 . 504217) (\SK.GET.ARROWHEADS 504219 . 504998) (\SK.GET.FONT 505000 . -505480) (\SK.GET.JUSTIFICATION 505482 . 506006) (\SK.GET.DIRECTION 506008 . 506485) (\SK.GET.DASHING -506487 . 507506) (PUTSKETCHELEMENTPROP 507508 . 509777) (\SK.PUT.FILLING 509779 . 511049) ( -ADDSKETCHELEMENTPROP 511051 . 511856) (REMOVESKETCHELEMENTPROP 511858 . 512647) (\SK.PUT.FONT 512649 - . 513463) (\SK.PUT.JUSTIFICATION 513465 . 514476) (\SK.PUT.DIRECTION 514478 . 515085) ( -\SK.PUT.DASHING 515087 . 516422) (\SK.PUT.BRUSH 516424 . 518343) (\SK.PUT.ARROWHEADS 518345 . 520311) -(SK.COPY.ELEMENT.PROPERTY.LIST 520313 . 520889) (SKETCH.UPDATE 520891 . 521621) (SKETCH.UPDATE1 521623 - . 522911) (\SKELT.GET.SCALE 522913 . 523901) (\SKELT.PUT.SCALE 523903 . 525210) (\SKELT.PUT.DATA -525212 . 527009) (SK.REPLACE.TEXT.IN.ELEMENT 527011 . 527964) (\SKELT.GET.DATA 527966 . 529033) ( -\SK.GET.1STCONTROLPT 529035 . 530547) (\SK.PUT.1STCONTROLPT 530549 . 536022) (\SK.GET.2NDCONTROLPT -536024 . 536939) (\SK.PUT.2NDCONTROLPT 536941 . 541129) (\SK.GET.3RDCONTROLPT 541131 . 542009) ( -\SK.PUT.3RDCONTROLPT 542011 . 545911)) (545914 546495 (LOWERLEFTCORNER 545924 . 546170) ( -UPPERRIGHTCORNER 546172 . 546493))))) + (FILEMAP (NIL (14485 24895 (INIT.SKETCH.ELEMENTS 14495 . 22058) (CREATE.SKETCH.ELEMENT.TYPE 22060 . +23582) (SKETCH.ELEMENT.TYPEP 23584 . 23972) (SKETCH.ELEMENT.NAMEP 23974 . 24237) ( +\CURSOR.IN.MIDDLE.MENU 24239 . 24893)) (24936 25613 (SKETCHINCOLORP 24946 . 25266) (READ.COLOR.CHANGE +25268 . 25611)) (26122 28901 (SK.CREATE.DEFAULT.FILLING 26132 . 26433) (SKFILLINGP 26435 . 27068) ( +SK.INSURE.FILLING 27070 . 28498) (SK.INSURE.COLOR 28500 . 28899)) (28902 34512 (SK.TRANSLATE.MODE +28912 . 29694) (SK.CHANGE.FILLING.MODE 29696 . 33279) (READ.FILLING.MODE 33281 . 34510)) (34513 65187 +(SKETCH.CREATE.CIRCLE 34523 . 35335) (CIRCLE.EXPANDFN 35337 . 38709) (CIRCLE.DRAWFN 38711 . 41712) ( +\CIRCLE.DRAWFN1 41714 . 44309) (CIRCLE.INPUTFN 44311 . 46160) (SK.UPDATE.CIRCLE.AFTER.CHANGE 46162 . +46521) (SK.READ.CIRCLE.POINT 46523 . 46994) (SK.SHOW.CIRCLE 46996 . 47642) (CIRCLE.INSIDEFN 47644 . +47909) (CIRCLE.REGIONFN 47911 . 49592) (CIRCLE.GLOBALREGIONFN 49594 . 51112) (CIRCLE.TRANSLATE 51114 + . 52975) (CIRCLE.READCHANGEFN 52977 . 57593) (CIRCLE.TRANSFORMFN 57595 . 59448) (CIRCLE.TRANSLATEPTS +59450 . 61064) (SK.CIRCLE.CREATE 61066 . 61909) (SET.CIRCLE.SCALE 61911 . 62677) (SK.BRUSH.READCHANGE +62679 . 65185)) (65188 65917 (SK.INSURE.BRUSH 65198 . 65592) (SK.INSURE.DASHING 65594 . 65915)) (67131 + 96625 (SKETCH.CREATE.ELLIPSE 67141 . 67740) (ELLIPSE.EXPANDFN 67742 . 71354) (ELLIPSE.DRAWFN 71356 . +75533) (ELLIPSE.INPUTFN 75535 . 77975) (SK.READ.ELLIPSE.MAJOR.PT 77977 . 78556) ( +SK.SHOW.ELLIPSE.MAJOR.RADIUS 78558 . 79313) (SK.READ.ELLIPSE.MINOR.PT 79315 . 80008) ( +SK.SHOW.ELLIPSE.MINOR.RADIUS 80010 . 80842) (ELLIPSE.INSIDEFN 80844 . 81114) (ELLIPSE.CREATE 81116 . +82491) (SK.UPDATE.ELLIPSE.AFTER.CHANGE 82493 . 82861) (ELLIPSE.REGIONFN 82863 . 85063) ( +ELLIPSE.GLOBALREGIONFN 85065 . 86878) (ELLIPSE.TRANSLATEFN 86880 . 89426) (ELLIPSE.TRANSFORMFN 89428 + . 90705) (ELLIPSE.TRANSLATEPTS 90707 . 92748) (MARK.SPOT 92750 . 94001) (DISTANCEBETWEEN 94003 . +94598) (SK.DISTANCE.TO 94600 . 94985) (SQUARE 94987 . 95029) (COMPUTE.ELLIPSE.ORIENTATION 95031 . +95750) (SK.COMPUTE.ELLIPSE.MINOR.RADIUS.PT 95752 . 96623)) (97738 138794 (SKETCH.CREATE.OPEN.CURVE +97748 . 98301) (OPENCURVE.INPUTFN 98303 . 99171) (SK.CURVE.CREATE 99173 . 100918) (MAXXEXTENT 100920 + . 101779) (MAXYEXTENT 101781 . 102641) (KNOT.SET.SCALE.FIELD 102643 . 103445) (OPENCURVE.DRAWFN +103447 . 104578) (OPENCURVE.EXPANDFN 104580 . 107895) (OPENCURVE.READCHANGEFN 107897 . 111099) ( +OPENCURVE.TRANSFORMFN 111101 . 113599) (OPENCURVE.TRANSLATEFN 113601 . 114023) ( +OPENCURVE.TRANSLATEPTSFN 114025 . 115406) (SKETCH.CREATE.CLOSED.CURVE 115408 . 115914) ( +CLOSEDCURVE.DRAWFN 115916 . 116700) (CLOSEDCURVE.EXPANDFN 116702 . 119815) (CLOSEDCURVE.REGIONFN +119817 . 120614) (CLOSEDCURVE.GLOBALREGIONFN 120616 . 122049) (READ.LIST.OF.POINTS 122051 . 124030) ( +CLOSEDCURVE.INPUTFN 124032 . 124677) (CLOSEDCURVE.READCHANGEFN 124679 . 127574) ( +CLOSEDCURVE.TRANSFORMFN 127576 . 129376) (CLOSEDCURVE.TRANSLATEPTSFN 129378 . 130723) (INVISIBLEPARTP +130725 . 131078) (SHOWSKETCHPOINT 131080 . 131385) (SHOWSKETCHXY 131387 . 131905) (KNOTS.REGIONFN +131907 . 132808) (OPENWIRE.GLOBALREGIONFN 132810 . 133674) (CURVE.REGIONFN 133676 . 134617) ( +OPENCURVE.GLOBALREGIONFN 134619 . 136026) (KNOTS.TRANSLATEFN 136028 . 137071) (REGION.CONTAINING.PTS +137073 . 138792)) (138795 161071 (CHANGE.ELTS.BRUSH.SIZE 138805 . 139415) (CHANGE.ELTS.BRUSH 139417 . +139934) (CHANGE.ELTS.BRUSH.SHAPE 139936 . 140337) (SK.CHANGE.BRUSH.SHAPE 140339 . 143851) ( +SK.CHANGE.BRUSH.COLOR 143853 . 148299) (SK.CHANGE.BRUSH.SIZE 148301 . 153259) (SK.CHANGE.ANGLE 153261 + . 156241) (SK.CHANGE.ARC.DIRECTION 156243 . 158622) (SK.SET.DEFAULT.BRUSH.SIZE 158624 . 159323) ( +READSIZECHANGE 159325 . 161069)) (161072 162691 (SK.CHANGE.ELEMENT.KNOTS 161082 . 162689)) (162692 +163339 (SK.INSURE.POINT.LIST 162702 . 163155) (SK.INSURE.POSITION 163157 . 163337)) (164707 197030 ( +SKETCH.CREATE.WIRE 164717 . 165207) (CLOSEDWIRE.EXPANDFN 165209 . 167897) (KNOTS.INSIDEFN 167899 . +168620) (OPEN.WIRE.DRAWFN 168622 . 169214) (WIRE.EXPANDFN 169216 . 172463) ( +SK.UPDATE.WIRE.ELT.AFTER.CHANGE 172465 . 172986) (OPENWIRE.READCHANGEFN 172988 . 175481) ( +OPENWIRE.TRANSFORMFN 175483 . 177606) (OPENWIRE.TRANSLATEFN 177608 . 178032) (OPENWIRE.TRANSLATEPTSFN +178034 . 179313) (WIRE.INPUTFN 179315 . 180946) (SK.READ.WIRE.POINTS 180948 . 181479) ( +SK.READ.POINTS.WITH.FEEDBACK 181481 . 184248) (OPENWIRE.FEEDBACKFN 184250 . 185004) ( +CLOSEDWIRE.FEEDBACKFN 185006 . 186362) (CLOSEDWIRE.REGIONFN 186364 . 187349) ( +CLOSEDWIRE.GLOBALREGIONFN 187351 . 188403) (SK.WIRE.CREATE 188405 . 190168) (WIRE.ADD.POINT.TO.END +190170 . 191086) (READ.ARROW.CHANGE 191088 . 196564) (CHANGE.ELTS.ARROWHEADS 196566 . 197028)) (197031 + 208037 (SKETCH.CREATE.CLOSED.WIRE 197041 . 197602) (CLOSED.WIRE.INPUTFN 197604 . 197959) ( +CLOSED.WIRE.DRAWFN 197961 . 200006) (CLOSEDWIRE.READCHANGEFN 200008 . 204913) (CLOSEDWIRE.TRANSFORMFN +204915 . 206709) (CLOSEDWIRE.TRANSLATEPTSFN 206711 . 208035)) (208038 260744 (SK.EXPAND.ARROWHEADS +208048 . 208398) (SK.COMPUTE.ARC.ARROWHEAD.POINTS 208400 . 209781) (ARC.ARROWHEAD.POINTS 209783 . +211006) (SET.ARC.ARROWHEAD.POINTS 211008 . 211989) (SET.OPENCURVE.ARROWHEAD.POINTS 211991 . 212892) ( +SK.COMPUTE.CURVE.ARROWHEAD.POINTS 212894 . 214164) (SET.WIRE.ARROWHEAD.POINTS 214166 . 214919) ( +SK.COMPUTE.WIRE.ARROWHEAD.POINTS 214921 . 216186) (SK.EXPAND.ARROWHEAD 216188 . 217371) (CHANGED.ARROW + 217373 . 220545) (SK.CHANGE.ARROWHEAD 220547 . 221000) (SK.CHANGE.ARROWHEAD1 221002 . 226257) ( +SK.CREATE.ARROWHEAD 226259 . 226779) (SK.ARROWHEAD.CREATE 226781 . 228355) (SK.ARROWHEAD.END.TEST +228357 . 229281) (READ.ARROWHEAD.END 229283 . 231308) (ARROW.HEAD.POSITIONS 231310 . 233150) ( +ARROWHEAD.POINTS.LIST 233152 . 237124) (CURVE.ARROWHEAD.POINTS 237126 . 237989) (LEFT.MOST.IS.BEGINP +237991 . 238872) (WIRE.ARROWHEAD.POINTS 238874 . 240400) (DRAWARROWHEADS 240402 . 242772) ( +\SK.DRAW.TRIANGLE.ARROWHEAD 242774 . 244434) (\SK.ENDPT.OF.ARROW 244436 . 246693) ( +\SK.ADJUST.FOR.ARROWHEADS 246695 . 249200) (SK.SET.ARROWHEAD.LENGTH 249202 . 250346) ( +SK.SET.ARROWHEAD.ANGLE 250348 . 251444) (SK.SET.ARROWHEAD.TYPE 251446 . 254735) (SK.SET.LINE.ARROWHEAD + 254737 . 257150) (SK.UPDATE.ARROWHEAD.FORMAT 257152 . 259262) (SK.SET.LINE.LENGTH.MODE 259264 . +260742)) (260745 262546 (SK.INSURE.ARROWHEADS 260755 . 261937) (SK.ARROWHEADP 261939 . 262544)) ( +265343 327072 (SKETCH.CREATE.TEXT 265353 . 265867) (TEXT.CHANGEFN 265869 . 266261) (TEXT.READCHANGEFN +266263 . 274334) (\SK.READ.FONT.SIZE1 274336 . 276502) (SK.TEXT.ELT.WITH.SAME.FIELDS 276504 . 278144) +(SK.READFONTFAMILY 278146 . 280616) (CLOSE.PROMPT.WINDOW 280618 . 281042) (TEXT.DRAWFN 281044 . 281765 +) (TEXT.DRAWFN1 281767 . 285269) (TEXT.INSIDEFN 285271 . 285660) (TEXT.EXPANDFN 285662 . 287787) ( +SK.TEXT.LINE.REGIONS 287789 . 289663) (TEXT.UPDATE.GLOBAL.REGIONS 289665 . 290897) (REL.MOVE.REGION +290899 . 291436) (LTEXT.LINE.REGIONS 291438 . 294856) (TEXT.INPUTFN 294858 . 295368) (READ.TEXT 295370 + . 296118) (TEXT.POSITION.AND.CREATE 296120 . 298431) (CREATE.TEXT.ELEMENT 298433 . 299251) ( +SK.UPDATE.TEXT.AFTER.CHANGE 299253 . 299655) (SK.TEXT.FROM.TEXTBOX 299657 . 303463) ( +TEXT.SET.GLOBAL.REGIONS 303465 . 304758) (TEXT.REGIONFN 304760 . 305530) (TEXT.GLOBALREGIONFN 305532 + . 306220) (TEXT.TRANSLATEFN 306222 . 307537) (TEXT.TRANSFORMFN 307539 . 308662) (TEXT.TRANSLATEPTSFN +308664 . 309181) (TEXT.UPDATEFN 309183 . 313839) (SK.CHANGE.TEXT 313841 . 323992) (SK.CHANGE.FONT +323994 . 325138) (TEXT.SET.SCALES 325140 . 326108) (BREAK.AT.CARRIAGE.RETURNS 326110 . 327070)) ( +327073 340058 (SK.PICK.FONT 327083 . 331355) (SK.CHOOSE.TEXT.FONT 331357 . 335628) (SK.NEXTSIZEFONT +335630 . 337262) (SK.DECREASING.FONT.LIST 337264 . 340056)) (340477 352151 (SK.SET.FONT 340487 . +341754) (SK.SET.TEXT.FONT 341756 . 342758) (SK.SET.TEXT.SIZE 342760 . 343447) (SK.SET.TEXT.HORIZ.ALIGN + 343449 . 345023) (SK.READFONTSIZE 345025 . 346923) (SK.COLLECT.FONT.SIZES 346925 . 348006) ( +SK.SET.TEXT.VERT.ALIGN 348008 . 350050) (SK.SET.TEXT.LOOKS 350052 . 351509) (SK.SET.DEFAULT.TEXT.FACE +351511 . 352149)) (352152 352738 (CREATE.SKETCH.TERMTABLE 352162 . 352736)) (352739 354505 ( +SK.FONT.LIST 352749 . 353075) (SK.INSURE.FONT 353077 . 353599) (SK.INSURE.STYLE 353601 . 354119) ( +SK.INSURE.TEXT 354121 . 354503)) (355045 412338 (SKETCH.CREATE.TEXTBOX 355055 . 356697) ( +SK.COMPUTE.TEXTBOX.REGION.FOR.STRING 356699 . 358776) (SK.BREAK.INTO.LINES 358778 . 369964) ( +SK.BRUSH.SIZE 369966 . 370347) (SK.TEXTBOX.CREATE 370349 . 371146) (SK.TEXTBOX.CREATE1 371148 . 372212 +) (SK.UPDATE.TEXTBOX.AFTER.CHANGE 372214 . 372754) (SK.TEXTBOX.POSITION.IN.BOX 372756 . 374667) ( +TEXTBOX.CHANGEFN 374669 . 375143) (TEXTBOX.DRAWFN 375145 . 377181) (SK.TEXTURE.AROUND.REGIONS 377183 + . 383256) (ALL.EMPTY.REGIONS 383258 . 383748) (TEXTBOX.EXPANDFN 383750 . 390906) (TEXTBOX.INPUTFN +390908 . 392521) (TEXTBOX.INSIDEFN 392523 . 392936) (TEXTBOX.REGIONFN 392938 . 393792) ( +TEXTBOX.GLOBALREGIONFN 393794 . 394122) (TEXTBOX.SET.GLOBAL.REGIONS 394124 . 395455) ( +TEXTBOX.TRANSLATEFN 395457 . 397298) (TEXTBOX.TRANSLATEPTSFN 397300 . 400083) (TEXTBOX.TRANSFORMFN +400085 . 401753) (TEXTBOX.UPDATEFN 401755 . 403648) (TEXTBOX.READCHANGEFN 403650 . 408539) ( +SK.TEXTBOX.TEXT.POSITION 408541 . 408962) (SK.TEXTBOX.FROM.TEXT 408964 . 411569) (ADD.EOLS 411571 . +412336)) (412867 416368 (SK.SET.TEXTBOX.VERT.ALIGN 412877 . 414757) (SK.SET.TEXTBOX.HORIZ.ALIGN 414759 + . 416366)) (416751 461226 (SKETCH.CREATE.BOX 416761 . 417244) (SK.BOX.DRAWFN 417246 . 418405) ( +BOX.DRAWFN1 418407 . 421246) (KNOTS.OF.REGION 421248 . 422482) (SK.DRAWAREABOX 422484 . 429085) ( +SK.DRAWBOX 429087 . 430276) (SK.BOX.EXPANDFN 430278 . 434026) (SK.BOX.GETREGIONFN 434028 . 435214) ( +BOX.SET.SCALES 435216 . 436456) (SK.BOX.INPUTFN 436458 . 438391) (SK.BOX.CREATE 438393 . 439094) ( +SK.UPDATE.BOX.AFTER.CHANGE 439096 . 439607) (SK.BOX.INSIDEFN 439609 . 439999) (SK.BOX.REGIONFN 440001 + . 440714) (SK.BOX.GLOBALREGIONFN 440716 . 441454) (SK.BOX.READCHANGEFN 441456 . 445177) ( +SK.CHANGE.FILLING 445179 . 449127) (SK.CHANGE.FILLING.COLOR 449129 . 452785) (SK.BOX.TRANSLATEFN +452787 . 453966) (SK.BOX.TRANSFORMFN 453968 . 454913) (SK.BOX.TRANSLATEPTSFN 454915 . 457283) ( +UNSCALE.REGION.TO.GRID 457285 . 458210) (INCREASEREGION 458212 . 458803) (INSUREREGIONSIZE 458805 . +459976) (EXPANDREGION 459978 . 460858) (REGION.FROM.COORDINATES 460860 . 461224)) (461762 488117 ( +SKETCH.CREATE.ARC 461772 . 462581) (ARC.DRAWFN 462583 . 464310) (ARC.EXPANDFN 464312 . 466645) ( +ARC.INPUTFN 466647 . 470865) (SK.INVERT.CIRCLE 470867 . 471727) (SK.READ.ARC.ANGLE.POINT 471729 . +472236) (SK.SHOW.ARC 472238 . 472848) (ARC.CREATE 472850 . 474205) (SK.UPDATE.ARC.AFTER.CHANGE 474207 + . 474547) (ARC.MOVEFN 474549 . 476132) (ARC.TRANSLATEPTS 476134 . 478019) (ARC.INSIDEFN 478021 . +478271) (ARC.REGIONFN 478273 . 479409) (ARC.GLOBALREGIONFN 479411 . 481133) (ARC.TRANSLATE 481135 . +482117) (ARC.TRANSFORMFN 482119 . 485069) (ARC.READCHANGEFN 485071 . 488115)) (488118 497197 ( +SK.COMPUTE.ARC.ANGLE.PT 488128 . 489054) (SK.COMPUTE.ARC.ANGLE.PT.FROM.ANGLE 489056 . 490049) ( +SK.COMPUTE.ARC.PTS 490051 . 493623) (SK.SET.ARC.DIRECTION 493625 . 494199) (SK.SET.ARC.DIRECTION.CW +494201 . 494375) (SK.SET.ARC.DIRECTION.CCW 494377 . 494650) (SK.COMPUTE.SLOPE.OF.LINE 494652 . 495144) + (SK.CREATE.ARC.USING 495146 . 496383) (SET.ARC.SCALES 496385 . 497195)) (497198 497643 ( +SK.INSURE.DIRECTION 497208 . 497641)) (499014 544873 (GETSKETCHELEMENTPROP 499024 . 500332) ( +\SK.GET.ARC.ANGLEPT 500334 . 500895) (\GETSKETCHELEMENTPROP1 500897 . 501151) (\SK.GET.BRUSH 501153 . +502077) (\SK.GET.FILLING 502079 . 503177) (\SK.GET.ARROWHEADS 503179 . 503958) (\SK.GET.FONT 503960 . +504440) (\SK.GET.JUSTIFICATION 504442 . 504966) (\SK.GET.DIRECTION 504968 . 505445) (\SK.GET.DASHING +505447 . 506466) (PUTSKETCHELEMENTPROP 506468 . 508737) (\SK.PUT.FILLING 508739 . 510009) ( +ADDSKETCHELEMENTPROP 510011 . 510816) (REMOVESKETCHELEMENTPROP 510818 . 511607) (\SK.PUT.FONT 511609 + . 512423) (\SK.PUT.JUSTIFICATION 512425 . 513436) (\SK.PUT.DIRECTION 513438 . 514045) ( +\SK.PUT.DASHING 514047 . 515382) (\SK.PUT.BRUSH 515384 . 517303) (\SK.PUT.ARROWHEADS 517305 . 519271) +(SK.COPY.ELEMENT.PROPERTY.LIST 519273 . 519849) (SKETCH.UPDATE 519851 . 520581) (SKETCH.UPDATE1 520583 + . 521871) (\SKELT.GET.SCALE 521873 . 522861) (\SKELT.PUT.SCALE 522863 . 524170) (\SKELT.PUT.DATA +524172 . 525969) (SK.REPLACE.TEXT.IN.ELEMENT 525971 . 526924) (\SKELT.GET.DATA 526926 . 527993) ( +\SK.GET.1STCONTROLPT 527995 . 529507) (\SK.PUT.1STCONTROLPT 529509 . 534982) (\SK.GET.2NDCONTROLPT +534984 . 535899) (\SK.PUT.2NDCONTROLPT 535901 . 540089) (\SK.GET.3RDCONTROLPT 540091 . 540969) ( +\SK.PUT.3RDCONTROLPT 540971 . 544871)) (544874 545455 (LOWERLEFTCORNER 544884 . 545130) ( +UPPERRIGHTCORNER 545132 . 545453))))) STOP diff --git a/library/sketch/SKETCH-ELEMENTS.LCOM b/library/sketch/SKETCH-ELEMENTS.LCOM index c26fdc957e1a9826539efc29e775b280c237fb95..68be46eaff648d2f5af31185b668b0bef0ddd4b2 100644 GIT binary patch delta 2866 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 delta 1217 zcmbVMPe>F|9A=)T>=QFh!l>l8qv(w8Y&-i;Tw!JZjJmlyv$-SqC(3DeTxHc+celDk zd#F_MRMNt>?N=6mxnhy%0=|OKN1yIW(~T_|^eXFAP5VX}#O z8BAUwk^De{x$3Vw-@$^XYEXZ`Ee2d73wWzgm*to_vfJOw*hr%z$av_@=S&B91|c=> z98qLd4ke^`ETw|S3za%DA%#?ltcH8YrlXh6?J)IQZyb+o^wSfjub$`m=BfLto)X_@TXHMPTnBCr(W$wM8!+=~g59pkE z!~1}Obk~kr=sQ5C8!^`hLqkBn1DbBaBa?DOjVUs4^oku_YQj7ZTttzh=Eh4qnrgvp za!J>UI;5A3qRvu*MN`cfILoJz_$ZKP$J8eLr{3OUQJ14!G9Yaf3VON(^F{$QxOy!M ziz`rC&|!XYNr$|a&S_cQ+|Wv}tQB%ah%2FJL`fv|j0Mq(kY3PMvU-L!$4UY>DJMb` z{vBOpH~I#NuVCa+6y8UvNQ+O9@FWintr1u&H|@})(?)Ytf>9d#+_EW$wLPSi#73Tm)c4;0j5 zhGH#_dgyBf9jEUV`(9j From f9a3ea6d56cde2531c5269e7f321fe2c84bcc6fa Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Sat, 8 Nov 2025 14:03:35 -0800 Subject: [PATCH 06/13] Remove extra argument --- library/sketch/SKETCH-ELEMENTS | 124 ++++++++++++++-------------- library/sketch/SKETCH-ELEMENTS.LCOM | Bin 143548 -> 143565 bytes 2 files changed, 63 insertions(+), 61 deletions(-) diff --git a/library/sketch/SKETCH-ELEMENTS b/library/sketch/SKETCH-ELEMENTS index d99056300..77154fcfc 100644 --- a/library/sketch/SKETCH-ELEMENTS +++ b/library/sketch/SKETCH-ELEMENTS @@ -1,6 +1,6 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 7-Nov-2025 11:54:25" {WMEDLEY}SKETCH>SKETCH-ELEMENTS.;22 545478 +(FILECREATED " 8-Nov-2025 14:02:38" {WMEDLEY}SKETCH>SKETCH-ELEMENTS.;24 545649 :EDIT-BY rmk @@ -5198,7 +5198,8 @@ Click outside the window to stop.") (RETURN NEWSCREENELT]) (SK.CHANGE.TEXT - [LAMBDA (ELTWITHTEXT HOW SKW) (* ; "Edited 7-Nov-2025 09:05 by rmk") + [LAMBDA (ELTWITHTEXT HOW SKW) (* ; "Edited 8-Nov-2025 14:02 by rmk") + (* ; "Edited 7-Nov-2025 09:05 by rmk") (* ; "Edited 7-Apr-87 13:41 by rrb") (PROG ((COMMAND (CADR HOW)) (PROPERTY 'FONT) @@ -5256,7 +5257,7 @@ Click outside the window to stop.") (create TEXT using GINDTEXTELT TEXTSTYLE _ NEWVALUE)) (T (create TEXTBOX using GINDTEXTELT TEXTSTYLE _ NEWVALUE)))) ((BOLD UNBOLD ITALIC UNITALIC) (* ; "change the face") - (OR (SK.CHANGE.FONT SKW ELTWITHTEXT GINDTEXTELT NIL NIL + (OR [SK.CHANGE.FONT SKW ELTWITHTEXT NIL NIL (MAKEFONTFACE (SELECTQ COMMAND (BOLD 'BOLD) (UNBOLD 'MEDIUM) @@ -5266,7 +5267,8 @@ Click outside the window to stop.") (UNITALIC 'REGULAR) NIL) NIL - (fetch (TEXT FONT) of GINDTEXTELT))) + (FONTPROP (fetch (TEXT FONT) of GINDTEXTELT) + 'FACE] (RETURN))) (BOX (* ;  "RMK 2025: RETURN MEANS NO HISTORY?") @@ -9138,7 +9140,7 @@ ARROWHEAD.POINTS.LIST 233152 . 237124) (CURVE.ARROWHEAD.POINTS 237126 . 237989) SK.SET.ARROWHEAD.ANGLE 250348 . 251444) (SK.SET.ARROWHEAD.TYPE 251446 . 254735) (SK.SET.LINE.ARROWHEAD 254737 . 257150) (SK.UPDATE.ARROWHEAD.FORMAT 257152 . 259262) (SK.SET.LINE.LENGTH.MODE 259264 . 260742)) (260745 262546 (SK.INSURE.ARROWHEADS 260755 . 261937) (SK.ARROWHEADP 261939 . 262544)) ( -265343 327072 (SKETCH.CREATE.TEXT 265353 . 265867) (TEXT.CHANGEFN 265869 . 266261) (TEXT.READCHANGEFN +265343 327243 (SKETCH.CREATE.TEXT 265353 . 265867) (TEXT.CHANGEFN 265869 . 266261) (TEXT.READCHANGEFN 266263 . 274334) (\SK.READ.FONT.SIZE1 274336 . 276502) (SK.TEXT.ELT.WITH.SAME.FIELDS 276504 . 278144) (SK.READFONTFAMILY 278146 . 280616) (CLOSE.PROMPT.WINDOW 280618 . 281042) (TEXT.DRAWFN 281044 . 281765 ) (TEXT.DRAWFN1 281767 . 285269) (TEXT.INSIDEFN 285271 . 285660) (TEXT.EXPANDFN 285662 . 287787) ( @@ -9148,60 +9150,60 @@ SK.TEXT.LINE.REGIONS 287789 . 289663) (TEXT.UPDATE.GLOBAL.REGIONS 289665 . 29089 SK.UPDATE.TEXT.AFTER.CHANGE 299253 . 299655) (SK.TEXT.FROM.TEXTBOX 299657 . 303463) ( TEXT.SET.GLOBAL.REGIONS 303465 . 304758) (TEXT.REGIONFN 304760 . 305530) (TEXT.GLOBALREGIONFN 305532 . 306220) (TEXT.TRANSLATEFN 306222 . 307537) (TEXT.TRANSFORMFN 307539 . 308662) (TEXT.TRANSLATEPTSFN -308664 . 309181) (TEXT.UPDATEFN 309183 . 313839) (SK.CHANGE.TEXT 313841 . 323992) (SK.CHANGE.FONT -323994 . 325138) (TEXT.SET.SCALES 325140 . 326108) (BREAK.AT.CARRIAGE.RETURNS 326110 . 327070)) ( -327073 340058 (SK.PICK.FONT 327083 . 331355) (SK.CHOOSE.TEXT.FONT 331357 . 335628) (SK.NEXTSIZEFONT -335630 . 337262) (SK.DECREASING.FONT.LIST 337264 . 340056)) (340477 352151 (SK.SET.FONT 340487 . -341754) (SK.SET.TEXT.FONT 341756 . 342758) (SK.SET.TEXT.SIZE 342760 . 343447) (SK.SET.TEXT.HORIZ.ALIGN - 343449 . 345023) (SK.READFONTSIZE 345025 . 346923) (SK.COLLECT.FONT.SIZES 346925 . 348006) ( -SK.SET.TEXT.VERT.ALIGN 348008 . 350050) (SK.SET.TEXT.LOOKS 350052 . 351509) (SK.SET.DEFAULT.TEXT.FACE -351511 . 352149)) (352152 352738 (CREATE.SKETCH.TERMTABLE 352162 . 352736)) (352739 354505 ( -SK.FONT.LIST 352749 . 353075) (SK.INSURE.FONT 353077 . 353599) (SK.INSURE.STYLE 353601 . 354119) ( -SK.INSURE.TEXT 354121 . 354503)) (355045 412338 (SKETCH.CREATE.TEXTBOX 355055 . 356697) ( -SK.COMPUTE.TEXTBOX.REGION.FOR.STRING 356699 . 358776) (SK.BREAK.INTO.LINES 358778 . 369964) ( -SK.BRUSH.SIZE 369966 . 370347) (SK.TEXTBOX.CREATE 370349 . 371146) (SK.TEXTBOX.CREATE1 371148 . 372212 -) (SK.UPDATE.TEXTBOX.AFTER.CHANGE 372214 . 372754) (SK.TEXTBOX.POSITION.IN.BOX 372756 . 374667) ( -TEXTBOX.CHANGEFN 374669 . 375143) (TEXTBOX.DRAWFN 375145 . 377181) (SK.TEXTURE.AROUND.REGIONS 377183 - . 383256) (ALL.EMPTY.REGIONS 383258 . 383748) (TEXTBOX.EXPANDFN 383750 . 390906) (TEXTBOX.INPUTFN -390908 . 392521) (TEXTBOX.INSIDEFN 392523 . 392936) (TEXTBOX.REGIONFN 392938 . 393792) ( -TEXTBOX.GLOBALREGIONFN 393794 . 394122) (TEXTBOX.SET.GLOBAL.REGIONS 394124 . 395455) ( -TEXTBOX.TRANSLATEFN 395457 . 397298) (TEXTBOX.TRANSLATEPTSFN 397300 . 400083) (TEXTBOX.TRANSFORMFN -400085 . 401753) (TEXTBOX.UPDATEFN 401755 . 403648) (TEXTBOX.READCHANGEFN 403650 . 408539) ( -SK.TEXTBOX.TEXT.POSITION 408541 . 408962) (SK.TEXTBOX.FROM.TEXT 408964 . 411569) (ADD.EOLS 411571 . -412336)) (412867 416368 (SK.SET.TEXTBOX.VERT.ALIGN 412877 . 414757) (SK.SET.TEXTBOX.HORIZ.ALIGN 414759 - . 416366)) (416751 461226 (SKETCH.CREATE.BOX 416761 . 417244) (SK.BOX.DRAWFN 417246 . 418405) ( -BOX.DRAWFN1 418407 . 421246) (KNOTS.OF.REGION 421248 . 422482) (SK.DRAWAREABOX 422484 . 429085) ( -SK.DRAWBOX 429087 . 430276) (SK.BOX.EXPANDFN 430278 . 434026) (SK.BOX.GETREGIONFN 434028 . 435214) ( -BOX.SET.SCALES 435216 . 436456) (SK.BOX.INPUTFN 436458 . 438391) (SK.BOX.CREATE 438393 . 439094) ( -SK.UPDATE.BOX.AFTER.CHANGE 439096 . 439607) (SK.BOX.INSIDEFN 439609 . 439999) (SK.BOX.REGIONFN 440001 - . 440714) (SK.BOX.GLOBALREGIONFN 440716 . 441454) (SK.BOX.READCHANGEFN 441456 . 445177) ( -SK.CHANGE.FILLING 445179 . 449127) (SK.CHANGE.FILLING.COLOR 449129 . 452785) (SK.BOX.TRANSLATEFN -452787 . 453966) (SK.BOX.TRANSFORMFN 453968 . 454913) (SK.BOX.TRANSLATEPTSFN 454915 . 457283) ( -UNSCALE.REGION.TO.GRID 457285 . 458210) (INCREASEREGION 458212 . 458803) (INSUREREGIONSIZE 458805 . -459976) (EXPANDREGION 459978 . 460858) (REGION.FROM.COORDINATES 460860 . 461224)) (461762 488117 ( -SKETCH.CREATE.ARC 461772 . 462581) (ARC.DRAWFN 462583 . 464310) (ARC.EXPANDFN 464312 . 466645) ( -ARC.INPUTFN 466647 . 470865) (SK.INVERT.CIRCLE 470867 . 471727) (SK.READ.ARC.ANGLE.POINT 471729 . -472236) (SK.SHOW.ARC 472238 . 472848) (ARC.CREATE 472850 . 474205) (SK.UPDATE.ARC.AFTER.CHANGE 474207 - . 474547) (ARC.MOVEFN 474549 . 476132) (ARC.TRANSLATEPTS 476134 . 478019) (ARC.INSIDEFN 478021 . -478271) (ARC.REGIONFN 478273 . 479409) (ARC.GLOBALREGIONFN 479411 . 481133) (ARC.TRANSLATE 481135 . -482117) (ARC.TRANSFORMFN 482119 . 485069) (ARC.READCHANGEFN 485071 . 488115)) (488118 497197 ( -SK.COMPUTE.ARC.ANGLE.PT 488128 . 489054) (SK.COMPUTE.ARC.ANGLE.PT.FROM.ANGLE 489056 . 490049) ( -SK.COMPUTE.ARC.PTS 490051 . 493623) (SK.SET.ARC.DIRECTION 493625 . 494199) (SK.SET.ARC.DIRECTION.CW -494201 . 494375) (SK.SET.ARC.DIRECTION.CCW 494377 . 494650) (SK.COMPUTE.SLOPE.OF.LINE 494652 . 495144) - (SK.CREATE.ARC.USING 495146 . 496383) (SET.ARC.SCALES 496385 . 497195)) (497198 497643 ( -SK.INSURE.DIRECTION 497208 . 497641)) (499014 544873 (GETSKETCHELEMENTPROP 499024 . 500332) ( -\SK.GET.ARC.ANGLEPT 500334 . 500895) (\GETSKETCHELEMENTPROP1 500897 . 501151) (\SK.GET.BRUSH 501153 . -502077) (\SK.GET.FILLING 502079 . 503177) (\SK.GET.ARROWHEADS 503179 . 503958) (\SK.GET.FONT 503960 . -504440) (\SK.GET.JUSTIFICATION 504442 . 504966) (\SK.GET.DIRECTION 504968 . 505445) (\SK.GET.DASHING -505447 . 506466) (PUTSKETCHELEMENTPROP 506468 . 508737) (\SK.PUT.FILLING 508739 . 510009) ( -ADDSKETCHELEMENTPROP 510011 . 510816) (REMOVESKETCHELEMENTPROP 510818 . 511607) (\SK.PUT.FONT 511609 - . 512423) (\SK.PUT.JUSTIFICATION 512425 . 513436) (\SK.PUT.DIRECTION 513438 . 514045) ( -\SK.PUT.DASHING 514047 . 515382) (\SK.PUT.BRUSH 515384 . 517303) (\SK.PUT.ARROWHEADS 517305 . 519271) -(SK.COPY.ELEMENT.PROPERTY.LIST 519273 . 519849) (SKETCH.UPDATE 519851 . 520581) (SKETCH.UPDATE1 520583 - . 521871) (\SKELT.GET.SCALE 521873 . 522861) (\SKELT.PUT.SCALE 522863 . 524170) (\SKELT.PUT.DATA -524172 . 525969) (SK.REPLACE.TEXT.IN.ELEMENT 525971 . 526924) (\SKELT.GET.DATA 526926 . 527993) ( -\SK.GET.1STCONTROLPT 527995 . 529507) (\SK.PUT.1STCONTROLPT 529509 . 534982) (\SK.GET.2NDCONTROLPT -534984 . 535899) (\SK.PUT.2NDCONTROLPT 535901 . 540089) (\SK.GET.3RDCONTROLPT 540091 . 540969) ( -\SK.PUT.3RDCONTROLPT 540971 . 544871)) (544874 545455 (LOWERLEFTCORNER 544884 . 545130) ( -UPPERRIGHTCORNER 545132 . 545453))))) +308664 . 309181) (TEXT.UPDATEFN 309183 . 313839) (SK.CHANGE.TEXT 313841 . 324163) (SK.CHANGE.FONT +324165 . 325309) (TEXT.SET.SCALES 325311 . 326279) (BREAK.AT.CARRIAGE.RETURNS 326281 . 327241)) ( +327244 340229 (SK.PICK.FONT 327254 . 331526) (SK.CHOOSE.TEXT.FONT 331528 . 335799) (SK.NEXTSIZEFONT +335801 . 337433) (SK.DECREASING.FONT.LIST 337435 . 340227)) (340648 352322 (SK.SET.FONT 340658 . +341925) (SK.SET.TEXT.FONT 341927 . 342929) (SK.SET.TEXT.SIZE 342931 . 343618) (SK.SET.TEXT.HORIZ.ALIGN + 343620 . 345194) (SK.READFONTSIZE 345196 . 347094) (SK.COLLECT.FONT.SIZES 347096 . 348177) ( +SK.SET.TEXT.VERT.ALIGN 348179 . 350221) (SK.SET.TEXT.LOOKS 350223 . 351680) (SK.SET.DEFAULT.TEXT.FACE +351682 . 352320)) (352323 352909 (CREATE.SKETCH.TERMTABLE 352333 . 352907)) (352910 354676 ( +SK.FONT.LIST 352920 . 353246) (SK.INSURE.FONT 353248 . 353770) (SK.INSURE.STYLE 353772 . 354290) ( +SK.INSURE.TEXT 354292 . 354674)) (355216 412509 (SKETCH.CREATE.TEXTBOX 355226 . 356868) ( +SK.COMPUTE.TEXTBOX.REGION.FOR.STRING 356870 . 358947) (SK.BREAK.INTO.LINES 358949 . 370135) ( +SK.BRUSH.SIZE 370137 . 370518) (SK.TEXTBOX.CREATE 370520 . 371317) (SK.TEXTBOX.CREATE1 371319 . 372383 +) (SK.UPDATE.TEXTBOX.AFTER.CHANGE 372385 . 372925) (SK.TEXTBOX.POSITION.IN.BOX 372927 . 374838) ( +TEXTBOX.CHANGEFN 374840 . 375314) (TEXTBOX.DRAWFN 375316 . 377352) (SK.TEXTURE.AROUND.REGIONS 377354 + . 383427) (ALL.EMPTY.REGIONS 383429 . 383919) (TEXTBOX.EXPANDFN 383921 . 391077) (TEXTBOX.INPUTFN +391079 . 392692) (TEXTBOX.INSIDEFN 392694 . 393107) (TEXTBOX.REGIONFN 393109 . 393963) ( +TEXTBOX.GLOBALREGIONFN 393965 . 394293) (TEXTBOX.SET.GLOBAL.REGIONS 394295 . 395626) ( +TEXTBOX.TRANSLATEFN 395628 . 397469) (TEXTBOX.TRANSLATEPTSFN 397471 . 400254) (TEXTBOX.TRANSFORMFN +400256 . 401924) (TEXTBOX.UPDATEFN 401926 . 403819) (TEXTBOX.READCHANGEFN 403821 . 408710) ( +SK.TEXTBOX.TEXT.POSITION 408712 . 409133) (SK.TEXTBOX.FROM.TEXT 409135 . 411740) (ADD.EOLS 411742 . +412507)) (413038 416539 (SK.SET.TEXTBOX.VERT.ALIGN 413048 . 414928) (SK.SET.TEXTBOX.HORIZ.ALIGN 414930 + . 416537)) (416922 461397 (SKETCH.CREATE.BOX 416932 . 417415) (SK.BOX.DRAWFN 417417 . 418576) ( +BOX.DRAWFN1 418578 . 421417) (KNOTS.OF.REGION 421419 . 422653) (SK.DRAWAREABOX 422655 . 429256) ( +SK.DRAWBOX 429258 . 430447) (SK.BOX.EXPANDFN 430449 . 434197) (SK.BOX.GETREGIONFN 434199 . 435385) ( +BOX.SET.SCALES 435387 . 436627) (SK.BOX.INPUTFN 436629 . 438562) (SK.BOX.CREATE 438564 . 439265) ( +SK.UPDATE.BOX.AFTER.CHANGE 439267 . 439778) (SK.BOX.INSIDEFN 439780 . 440170) (SK.BOX.REGIONFN 440172 + . 440885) (SK.BOX.GLOBALREGIONFN 440887 . 441625) (SK.BOX.READCHANGEFN 441627 . 445348) ( +SK.CHANGE.FILLING 445350 . 449298) (SK.CHANGE.FILLING.COLOR 449300 . 452956) (SK.BOX.TRANSLATEFN +452958 . 454137) (SK.BOX.TRANSFORMFN 454139 . 455084) (SK.BOX.TRANSLATEPTSFN 455086 . 457454) ( +UNSCALE.REGION.TO.GRID 457456 . 458381) (INCREASEREGION 458383 . 458974) (INSUREREGIONSIZE 458976 . +460147) (EXPANDREGION 460149 . 461029) (REGION.FROM.COORDINATES 461031 . 461395)) (461933 488288 ( +SKETCH.CREATE.ARC 461943 . 462752) (ARC.DRAWFN 462754 . 464481) (ARC.EXPANDFN 464483 . 466816) ( +ARC.INPUTFN 466818 . 471036) (SK.INVERT.CIRCLE 471038 . 471898) (SK.READ.ARC.ANGLE.POINT 471900 . +472407) (SK.SHOW.ARC 472409 . 473019) (ARC.CREATE 473021 . 474376) (SK.UPDATE.ARC.AFTER.CHANGE 474378 + . 474718) (ARC.MOVEFN 474720 . 476303) (ARC.TRANSLATEPTS 476305 . 478190) (ARC.INSIDEFN 478192 . +478442) (ARC.REGIONFN 478444 . 479580) (ARC.GLOBALREGIONFN 479582 . 481304) (ARC.TRANSLATE 481306 . +482288) (ARC.TRANSFORMFN 482290 . 485240) (ARC.READCHANGEFN 485242 . 488286)) (488289 497368 ( +SK.COMPUTE.ARC.ANGLE.PT 488299 . 489225) (SK.COMPUTE.ARC.ANGLE.PT.FROM.ANGLE 489227 . 490220) ( +SK.COMPUTE.ARC.PTS 490222 . 493794) (SK.SET.ARC.DIRECTION 493796 . 494370) (SK.SET.ARC.DIRECTION.CW +494372 . 494546) (SK.SET.ARC.DIRECTION.CCW 494548 . 494821) (SK.COMPUTE.SLOPE.OF.LINE 494823 . 495315) + (SK.CREATE.ARC.USING 495317 . 496554) (SET.ARC.SCALES 496556 . 497366)) (497369 497814 ( +SK.INSURE.DIRECTION 497379 . 497812)) (499185 545044 (GETSKETCHELEMENTPROP 499195 . 500503) ( +\SK.GET.ARC.ANGLEPT 500505 . 501066) (\GETSKETCHELEMENTPROP1 501068 . 501322) (\SK.GET.BRUSH 501324 . +502248) (\SK.GET.FILLING 502250 . 503348) (\SK.GET.ARROWHEADS 503350 . 504129) (\SK.GET.FONT 504131 . +504611) (\SK.GET.JUSTIFICATION 504613 . 505137) (\SK.GET.DIRECTION 505139 . 505616) (\SK.GET.DASHING +505618 . 506637) (PUTSKETCHELEMENTPROP 506639 . 508908) (\SK.PUT.FILLING 508910 . 510180) ( +ADDSKETCHELEMENTPROP 510182 . 510987) (REMOVESKETCHELEMENTPROP 510989 . 511778) (\SK.PUT.FONT 511780 + . 512594) (\SK.PUT.JUSTIFICATION 512596 . 513607) (\SK.PUT.DIRECTION 513609 . 514216) ( +\SK.PUT.DASHING 514218 . 515553) (\SK.PUT.BRUSH 515555 . 517474) (\SK.PUT.ARROWHEADS 517476 . 519442) +(SK.COPY.ELEMENT.PROPERTY.LIST 519444 . 520020) (SKETCH.UPDATE 520022 . 520752) (SKETCH.UPDATE1 520754 + . 522042) (\SKELT.GET.SCALE 522044 . 523032) (\SKELT.PUT.SCALE 523034 . 524341) (\SKELT.PUT.DATA +524343 . 526140) (SK.REPLACE.TEXT.IN.ELEMENT 526142 . 527095) (\SKELT.GET.DATA 527097 . 528164) ( +\SK.GET.1STCONTROLPT 528166 . 529678) (\SK.PUT.1STCONTROLPT 529680 . 535153) (\SK.GET.2NDCONTROLPT +535155 . 536070) (\SK.PUT.2NDCONTROLPT 536072 . 540260) (\SK.GET.3RDCONTROLPT 540262 . 541140) ( +\SK.PUT.3RDCONTROLPT 541142 . 545042)) (545045 545626 (LOWERLEFTCORNER 545055 . 545301) ( +UPPERRIGHTCORNER 545303 . 545624))))) STOP diff --git a/library/sketch/SKETCH-ELEMENTS.LCOM b/library/sketch/SKETCH-ELEMENTS.LCOM index 68be46eaff648d2f5af31185b668b0bef0ddd4b2..5b9b530365aa376f14deaaec1b5cc13d7052b9ac 100644 GIT binary patch delta 799 zcmZutO=}ZT6!oSGA?TutU9?qi(lo7$4DZcX-YXV5O(y9y^HDMr8oLnGhy*2Wf^^q~ zlp=_<6nuLZ1#weX5fthla8VFkx#(IDe}Zo&Arb4q8_qrNymRllpU=`?&(iy?Ypm!$ zdtOwDY9Q5@h`OY)gD1 z6w^8yx?$@4#V+)B0ZwnhvDnN)@#@}63O-rTetbcGzu$hCI2LcRa2uw@mn?Lo>Sq>o zLGnOS6YF9>2itHePUb)xaH*%FI|r}f$B3h_Egs|{cd>o4x*}fYp)#3xXW|BzjVpvzoYnETLm1+=Qlag_sGqm%Z&MwhTa?L;y^x!(-g#O!yaRWW8ZpW>vR@p|z$KK-J0<7;CdJt(rrflu%=giCl>tB_hs- z-MHL%+|1sogi*usYslr6;&e$SY1;G?q|(87oT?ZTjK$7zl9GxIyVi8A1~OBZdMC16 qr;N;CID%vZrKM+AoTi6NZY*|pE6CIgm$nI_dq<1VKUz#prT+kC1Ie-g delta 776 zcmZutO=}ZT6!nhOhN6fq6hvs=BxzC?8RotDe1$@%nMpEcK1yZ=V@0GiMT%fICFsT= zg58NFi? z1JxWshHmJV{k#Xm9>CW;9I>Vh)!C=361;Pu```k9KVKhTJYxGY+=OfFScV<0`Ywac z;sRiB*s}sWhEMEm5i~)mlC;I{7vUv*JHx>)OG;3fy8B^mwZ)#4z@5G<%&%NxUrI29 zAMC{%5DQvlYgFD{52G9K>EMI~7qD{%a({0;Cq0{n2fVxxj*mebO^>qUY8@?dH zNX$!|(Bltj0a!g}uqT>?P{DUdwr}5H}hFX(h z)YM0_Jhwky4pDwBkz=$3_spUZ!epF|su~i6ZE2|OHL}2IBil5%%uk)buOZu@=oI2p g$X!Fv^|KJ!nmIBJTn<%kCIBJ(!zCCFm!$dJZ&Vz`n*aa+ From 416a77419b77215c6130a60e504cc1fee1ca4541 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Wed, 12 Nov 2025 23:13:13 -0800 Subject: [PATCH 07/13] AINTERRUPT: removeRUBOUT interrupt --- sources/AINTERRUPT | 41 +++++++++++++++++++++------------------- sources/AINTERRUPT.LCOM | Bin 11907 -> 11865 bytes 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/sources/AINTERRUPT b/sources/AINTERRUPT index ce4807212..83ca8e6fc 100644 --- a/sources/AINTERRUPT +++ b/sources/AINTERRUPT @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10) -(FILECREATED "31-Mar-2024 09:38:10" |{DSK}larry>il>medley>sources>AINTERRUPT.;7| 41133 +(FILECREATED "12-Nov-2025 11:10:44" |{WMEDLEY}AINTERRUPT.;4| 41235 - :EDIT-BY "lmm" + :EDIT-BY |rmk| :CHANGES-TO (VARS AINTERRUPTCOMS) - :PREVIOUS-DATE "31-Mar-2024 09:27:57" |{DSK}larry>il>medley>sources>AINTERRUPT.;5|) + :PREVIOUS-DATE "31-Mar-2024 09:38:10" |{WMEDLEY}AINTERRUPT.;3|) (PRETTYCOMPRINT AINTERRUPTCOMS) @@ -22,8 +22,8 @@ (5 ERROR MOUSE) (7 HELP T) (16 PRINTLEVEL) - (20 (CONTROL-T)) - (127 RUBOUT T))))) + (20 (CONTROL-T)))))) + (* \; "RMK2025: Removed (127 RUBOUT T)") (GLOBALVARS LISPINTERRUPTS) (COMS (* |;;| "^T this is actually not very useful any more, and the percentages are wrong") @@ -538,14 +538,17 @@ (prog1 \\interruptable (setq \\interruptable flag)))) ) -(RPAQ? LISPINTERRUPTS - '((LISPINTERRUPTS (2 BREAK MOUSE) - (4 RESET MOUSE) - (5 ERROR MOUSE) - (7 HELP T) - (16 PRINTLEVEL) - (20 (CONTROL-T)) - (127 RUBOUT T)))) +(RPAQ? LISPINTERRUPTS '((LISPINTERRUPTS (2 BREAK MOUSE) + (4 RESET MOUSE) + (5 ERROR MOUSE) + (7 HELP T) + (16 PRINTLEVEL) + (20 (CONTROL-T))))) + + + +(* \; "RMK2025: Removed (127 RUBOUT T)") + (DECLARE\: DOEVAL@COMPILE DONTCOPY (GLOBALVARS LISPINTERRUPTS) @@ -803,10 +806,10 @@ DONTCOPY (INTCHAR T) ) (DECLARE\: DONTCOPY - (FILEMAP (NIL (2924 29142 (INTCHAR 2934 . 7957) (INTERRUPTCHAR 7959 . 8233) (INTERRUPTED 8235 . 15814) - (LISPINTERRUPTS 15816 . 16343) (\\DOHELPINTERRUPT 16345 . 17243) (\\DOHELPINTERRUPT1 17245 . 18643) ( -\\DOINTERRUPTHERE 18645 . 19825) (\\PROC.FINDREALFRAME 19827 . 20631) (\\SETPRINTLEVEL 20633 . 22585) -(\\SETRECLAIMMIN 22587 . 23460) (GETINTERRUPT 23462 . 24818) (CURRENTINTERRUPTS 24820 . 25030) ( -SETINTERRUPT 25032 . 27010) (RESET.INTERRUPTS 27012 . 28969) (INTERRUPTABLE 28971 . 29140)) (29562 -35546 (CONTROL-T 29572 . 35013) (\\CONTROL-T.PRINTRATIO 35015 . 35544))))) + (FILEMAP (NIL (2939 29157 (INTCHAR 2949 . 7972) (INTERRUPTCHAR 7974 . 8248) (INTERRUPTED 8250 . 15829) + (LISPINTERRUPTS 15831 . 16358) (\\DOHELPINTERRUPT 16360 . 17258) (\\DOHELPINTERRUPT1 17260 . 18658) ( +\\DOINTERRUPTHERE 18660 . 19840) (\\PROC.FINDREALFRAME 19842 . 20646) (\\SETPRINTLEVEL 20648 . 22600) +(\\SETRECLAIMMIN 22602 . 23475) (GETINTERRUPT 23477 . 24833) (CURRENTINTERRUPTS 24835 . 25045) ( +SETINTERRUPT 25047 . 27025) (RESET.INTERRUPTS 27027 . 28984) (INTERRUPTABLE 28986 . 29155)) (29664 +35648 (CONTROL-T 29674 . 35115) (\\CONTROL-T.PRINTRATIO 35117 . 35646))))) STOP diff --git a/sources/AINTERRUPT.LCOM b/sources/AINTERRUPT.LCOM index 49635ec48e652f2a7b8d4a83e20f910d9e0e16a9..0f244ef71b2962e22f0f72e07f2839db5b184e8f 100644 GIT binary patch delta 419 zcmZpUy%{qhu-?!}*Dt?J*T}%gRKd{D%Fw{d#8gQ^Ln%2ww;(eoHANvmPeDncraIi$ z)y2m(veu?JzqBYhwb;(l(=Ws|C@3@_M9SOYDx_j(@m`mER;04 zG~7IWT%Chl9Yb7Q6qK;|#sshHH6YGcFflYTHdU~4b@2?*b&6D|Day^RQLu9MaP)I` z4b~0u=bAj5(QL87AY7}bn@=G!@^U{H=%)A-}CC7k(UKx?i7~<+Oc@Cpg5UFlgFflYVHde55b@2?*b&3Sq zl#`pQq+sRj;ppe?8mt@QKe?RI%+AQ%%G6v*fs53@F|E<$^7NaWz+$wSn<-uy7}|zL t<_bZfPX3`G3L% Date: Wed, 12 Nov 2025 23:14:12 -0800 Subject: [PATCH 08/13] TEDIT-FNKEYS: uses keywords for action names, bind ^W, RUBOUT, and ^U --- library/tedit/TEDIT-FNKEYS | 1014 ++++++++++++------------ library/tedit/TEDIT-FNKEYS.LCOM | Bin 39242 -> 39595 bytes library/tedit/TEDIT-RELEASENOTES.TEDIT | Bin 40457 -> 41868 bytes 3 files changed, 519 insertions(+), 495 deletions(-) diff --git a/library/tedit/TEDIT-FNKEYS b/library/tedit/TEDIT-FNKEYS index 09529635b..063e5b12b 100644 --- a/library/tedit/TEDIT-FNKEYS +++ b/library/tedit/TEDIT-FNKEYS @@ -1,21 +1,18 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 8-Nov-2025 13:32:36" {WMEDLEY}TEDIT>TEDIT-FNKEYS.;299 107884 +(FILECREATED "12-Nov-2025 16:24:23" {WMEDLEY}tedit>TEDIT-FNKEYS.;315 109327 :EDIT-BY rmk - :CHANGES-TO (FNS TEDIT.GETSYNTAX TEDIT.GETFUNCTION TEDIT.CLEAR.CHARBINDINGS - TEDIT.GET.CHARACTION TEDIT.GET.ALL.CHARBINDINGS TEDIT.GET.ALL.CHARACTIONS - TEDIT.SETFUNCTION) - (VARS TEDIT.BASIC.CHARBINDINGS \TEDIT.TTCCODES) + :CHANGES-TO (VARS ORIG.TEDIT.CHARACTIONS) - :PREVIOUS-DATE " 7-Aug-2025 15:00:51" {WMEDLEY}TEDIT>TEDIT-FNKEYS.;294) + :PREVIOUS-DATE "12-Nov-2025 16:14:42" {WMEDLEY}tedit>TEDIT-FNKEYS.;314) (PRETTYCOMPRINT TEDIT-FNKEYSCOMS) (RPAQQ TEDIT-FNKEYSCOMS - ((COMS (* ; + [(COMS (* ;  "Public functions (binding data below)") (FNS TEDIT.INSTALL.CHARBINDINGS TEDIT.CLEAR.CHARBINDINGS TEDIT.GET.CHARACTION TEDIT.GET.CHARBINDING TEDIT.GET.ALL.CHARBINDINGS TEDIT.CHARBINDINGS.INVERT @@ -33,7 +30,7 @@ (FNS \TEDIT.ONECHAR.BACKWARD \TEDIT.ONECHAR.FORWARD \TEDIT.ONELINE.UP \TEDIT.ONELINE.DOWN \TEDIT.ONELINE.MOVE \TEDIT.ONEWORD.BACKWARD \TEDIT.ONEWORD.FORWARD \TEDIT.LINE.BEGIN \TEDIT.LINE.END \TEDIT.DOCUMENT.BEGIN \TEDIT.DOCUMENT.END) - (FNS \TEDIT.LINEDELETE.FORWARD \TEDIT.LINEDELETE.BACKWARD) + (FNS \TEDIT.LINEDELETE.FORWARD \TEDIT.LINEDELETE.BACKWARD \TEDIT.LINEDELETE) (FNS \TEDIT.KEY.NEST) (FNS \TEDIT.KEY.WRAP) (* ; "From TEDITDORADOKEYS") @@ -50,21 +47,38 @@ (FNS \TEDIT.READTABLE \TEDIT.WORDBOUND.READTABLE TEDIT.GETSYNTAX TEDIT.SETSYNTAX TEDIT.GETFUNCTION TEDIT.SETFUNCTION TEDIT.WORDGET TEDIT.WORDSET TEDIT.ATOMBOUND.READTABLE)) - (* ; "Keybindings") - (DECLARE%: EVAL@COMPILE DONTCOPY (EXPORT (CONSTANTS \TEDIT.TTCCODES) - (MACROS \TEDIT.TTC))) - (VARS TEDIT.CHARACTIONS TEDIT.BASIC.CHARBINDINGS TEDIT.DORADO.CHARBINDINGS - (TEDIT.CHARBINDINGS (APPEND TEDIT.BASIC.CHARBINDINGS TEDIT.DORADO.CHARBINDINGS))) - (* ; "Installation") - [DECLARE%: DONTEVAL@LOAD DOCOPY (VARS (TEDIT.READTABLE (\TEDIT.READTABLE)) - (TEDIT.WORDBOUND.READTABLE (\TEDIT.WORDBOUND.READTABLE] (* ;; "On-screen formatting buttons (TEDIT.BUTTONS.BUILD) creates the default button menu") - (VARS TEDIT.BUTTONS.SPEC) (FNS TEDIT.BUTTONS.BUILD TEDIT.BUTTONBITMAP.FILL) - (INITVARS (TEDIT.BUTTONS.WINDOW NIL)) - (VARS TEDIT.BUTTONBITMAP))) + (INITVARS TEDIT.BUTTONS.WINDOW) + (VARS TEDIT.BUTTONBITMAP) + [INITVARS (TEDIT.BUTTONS.SPEC '((Bold :BOLD.ON :BOLD.OFF) + (Italic :ITALIC.ON :ITALIC.OFF) + (Case :UCASE :LCASE) + ((Strike- out) + :STRIKEOUT.ON :STRIKEOUT.OFF) + ((Under- line) + :UNDERLINE.ON :UNDERLINE.OFF) + ((Super/ Sub) + :SUPERSCRIPT :SUBSCRIPT) + ((Larger Smaller) + :LARGER :SMALLER) + (Justify :QUAD) + (Defaults :DEFAULTS) + (Show :SHOW.CHARLOOKS) + (Redo :REDO] + (* ; "Keybindings") + (DECLARE%: EVAL@COMPILE DONTCOPY (EXPORT (CONSTANTS \TEDIT.TTCCODES) + (MACROS \TEDIT.TTC))) + (FNS \TEDIT.TTCCLASS) + (VARS ORIG.TEDIT.CHARACTIONS TEDIT.BASIC.CHARBINDINGS TEDIT.DORADO.CHARBINDINGS) + (INITVARS (TEDIT.CHARBINDINGS (APPEND TEDIT.BASIC.CHARBINDINGS TEDIT.DORADO.CHARBINDINGS)) + (TEDIT.CHARACTIONS (APPEND ORIG.TEDIT.CHARACTIONS))) + (GLOBALVARS TEDIT.CHARBINDINGS TEDIT.CHARACTIONS) + (* ; "Installation") + (DECLARE%: DONTEVAL@LOAD DOCOPY (VARS (TEDIT.READTABLE (\TEDIT.READTABLE)) + (TEDIT.WORDBOUND.READTABLE (\TEDIT.WORDBOUND.READTABLE]) @@ -73,7 +87,8 @@ (DEFINEQ (TEDIT.INSTALL.CHARBINDINGS - [LAMBDA (CHARBINDINGS RDTBL CHARACTIONS) (* ; "Edited 7-Apr-2025 20:01 by rmk") + [LAMBDA (CHARBINDINGS RDTBL CHARACTIONS) (* ; "Edited 10-Nov-2025 16:47 by rmk") + (* ; "Edited 7-Apr-2025 20:01 by rmk") (* ; "Edited 5-Apr-2025 11:36 by rmk") (* ; "Edited 1-Apr-2025 00:19 by rmk") (* ; "Edited 18-Mar-2025 11:15 by rmk") @@ -89,6 +104,7 @@ (CL:UNLESS CHARBINDINGS (SETQ CHARBINDINGS TEDIT.CHARBINDINGS)) (CL:UNLESS (LISTP CHARBINDINGS) (\ILLEGAL.ARG CHARBINDINGS)) + (CL:UNLESS CHARACTIONS (SETQ CHARACTIONS TEDIT.CHARACTIONS)) (CL:UNLESS (READTABLEP RDTBL) (SETQ RDTBL (if (NULL RDTBL) then TEDIT.READTABLE @@ -97,37 +113,25 @@ TXTRTBL) TEDIT.READTABLE) else (\ILLEGAL.ARG RDTBL)))) - (CL:UNLESS CHARACTIONS (SETQ CHARACTIONS TEDIT.CHARACTIONS)) (TEDIT.CONFLICTING.CHARBINDINGS (APPEND CHARBINDINGS (TEDIT.GET.ALL.CHARBINDINGS RDTBL))) - [for CB A ACTION in CHARBINDINGS first (TEDIT.CONFLICTING.CHARBINDINGS (APPEND CHARBINDINGS - ( + (for CB ACTION in CHARBINDINGS first (TEDIT.CONFLICTING.CHARBINDINGS (APPEND CHARBINDINGS + (  TEDIT.GET.ALL.CHARBINDINGS - RDTBL))) - when (LISTP CB) unless (EQ '* (CAR CB)) when (AND [SETQ ACTION - (find PAIR in CHARACTIONS - suchthat - - (* ;; - "An ASSOC that allows synonym keys") - - (EQMEMB (CAR CB) - (CAR PAIR] - (SETQ A (CADR ACTION))) - do (for CHAR in (CDR CB) do (CL:UNLESS (CHARCODEP CHAR) + RDTBL))) + when (LISTP CB) unless (EQ '* (CAR CB)) when (SETQ ACTION (CADR (ASSOC (CAR CB) + CHARACTIONS))) + do (CL:WHEN (EQ (CAR CB) + 'WORDDELETE.BACKWARD)) + (for CHAR in (CDR CB) do (CL:UNLESS (CHARCODEP CHAR) (SETQ CHAR (CHARCODE.DECODE CHAR))) - (TEDIT.SETFUNCTION CHAR A RDTBL) + (TEDIT.SETFUNCTION CHAR ACTION RDTBL))) (* ; "Set the method") - (CL:WHEN NIL - (ASSOC (CAR ACTION) - \TEDIT.TTCCODES) - (* ; - "A tag like NEXT, UNDO. Setup the termtable FWIW ") - (TEDIT.SETSYNTAX CHAR (CAR ACTION) - RDTBL))] RDTBL]) (TEDIT.CLEAR.CHARBINDINGS - [LAMBDA (RDTBL BINDINGS) (* ; "Edited 8-Nov-2025 10:00 by rmk") + [LAMBDA (RDTBL BINDINGS) (* ; "Edited 12-Nov-2025 14:44 by rmk") + (* ; "Edited 10-Nov-2025 14:22 by rmk") + (* ; "Edited 8-Nov-2025 10:00 by rmk") (* ; "Edited 5-Apr-2025 11:36 by rmk") (* ; "Edited 18-Mar-2025 11:10 by rmk") (* ; "Edited 15-Mar-2025 12:02 by rmk") @@ -150,24 +154,26 @@ (\SYNCODE (fetch READSA of RDTBL) CHARCODE)) (TEDIT.SETFUNCTION CHARCODE NIL RDTBL) - (CL:WHEN (ASSOC CHARCODE \TEDIT.TTCCODES) + (CL:WHEN (\TEDIT.TTCCLASS CHARCODE) (* ; - "A tag like NEXT, UNDO. Setup the termtable FWIW ") - (TEDIT.SETSYNTAX CHARCODE CHARCODE RDTBL)))] + "A tag like NEXT, UNDO. Normalize and setup the termtable FWIW ") + (TEDIT.SETSYNTAX (\TEDIT.TTCCLASS CHARCODE) + CHARCODE RDTBL)))] BINDINGS else (for CB in BINDINGS when (LISTP CB) unless (EQ '* (CAR CB)) do (for CHARCODE in (CDR CB) do (CL:UNLESS (CHARCODEP CHARCODE) (SETQ CHARCODE (CHARCODE.DECODE CHARCODE))) (TEDIT.SETFUNCTION CHARCODE NIL RDTBL) - (CL:WHEN (ASSOC (CAR CB) - \TEDIT.TTCCODES) + (CL:WHEN (\TEDIT.TTCCLASS (CAR CB)) (* ; - "A tag like NEXT, UNDO. Setup the termtable FWIW ") - (TEDIT.SETSYNTAX CHARCODE (CAR CB) - RDTBL))])]) + "A tag like NEXT, UNDO. Normalize and setup the termtable FWIW ") + (TEDIT.SETSYNTAX (\TEDIT.TTCCLASS (CAR CB)) + CHARCODE RDTBL))])]) (TEDIT.GET.CHARACTION - [LAMBDA (CHARCODE BINDINGS) (* ; "Edited 8-Nov-2025 10:00 by rmk") + [LAMBDA (CHARCODE BINDINGS) (* ; "Edited 12-Nov-2025 14:44 by rmk") + (* ; "Edited 10-Nov-2025 15:55 by rmk") + (* ; "Edited 8-Nov-2025 10:00 by rmk") (* ; "Edited 5-Apr-2025 11:36 by rmk") (* ; "Edited 19-Mar-2025 14:51 by rmk") (* ; "Edited 18-Mar-2025 11:07 by rmk") @@ -189,39 +195,33 @@ (RETURN (CL:IF (CDR $$VAL) $$VAL (CAR $$VAL))] - else (LET [(RDTBL (if (NULL BINDINGS) + else (LET ((RDTBL (if (NULL BINDINGS) then TEDIT.READTABLE elseif (TEXTSTREAM BINDINGS T) then (OR (GETTOBJ (TEXTOBJ BINDINGS) TXTRTBL) TEDIT.READTABLE) elseif (READTABLEP BINDINGS) - else (\ILLEGAL.ARG BINDINGS] - [MAPHASH (fetch READMACRODEFS of RDTBL) - (FUNCTION (LAMBDA (VAL CCODE) - (CL:WHEN (AND (EQ CCODE CHARCODE) - (EQ (\TEDIT.TTC FN) - (\SYNCODE (fetch READSA of RDTBL) - CHARCODE))) - (for CA in TEDIT.CHARACTIONS when (EQUAL (CADR CA) - (CADR VAL)) - do (RETFROM (FUNCTION TEDIT.GET.CHARACTION) - (CAR CA))))] - NIL]) + else (\ILLEGAL.ARG BINDINGS))) + VAL) + (CL:WHEN [AND (EQ (\TEDIT.TTC FN) + (\SYNCODE (fetch READSA of RDTBL) + CHARCODE)) + (SETQ VAL (fetch MACROFN of (GETHASH CHARCODE (fetch READMACRODEFS + of RDTBL] + [CAR (find ACTION in TEDIT.CHARACTIONS suchthat (EQUAL VAL (CDR ACTION])]) (TEDIT.GET.CHARBINDING - [LAMBDA (ACTION BINDINGS RETURNCODES) (* ; "Edited 23-Apr-2025 10:11 by rmk") + [LAMBDA (ACTION BINDINGS RETURNCODES) (* ; "Edited 10-Nov-2025 12:49 by rmk") + (* ; "Edited 9-Nov-2025 10:10 by rmk") + (* ; "Edited 23-Apr-2025 10:11 by rmk") (* ; "Edited 5-Apr-2025 11:37 by rmk") (* ; "Edited 18-Mar-2025 20:40 by rmk") - (* ;; "Returns the bindings for ACTION in BINDINGS, a binding list or a read-table specification. If BINDINGS is a readtable, looks at all currently installed bindings in that readtable. If NIL, uses TEDIT.READTABLE.") + (* ;; "Returns the character bindings for ACTION in BINDINGS, a binding list or a read-table specification. If BINDINGS is a readtable, looks at all currently installed bindings in that readtable. If NIL, uses TEDIT.READTABLE.") (if (LISTP BINDINGS) - then (for CB in BINDINGS when (EQ ACTION (CAR CB)) join - (* ;; - "Allow for duplicate bindings for the same action?") - - (APPEND (CDR CB))) + then (APPEND (CADR (ASSOC ACTION BINDINGS))) else (LET ((RDTBL (if (NULL BINDINGS) then TEDIT.READTABLE elseif (TEXTSTREAM BINDINGS T) @@ -230,26 +230,29 @@ TEDIT.READTABLE) elseif (READTABLEP BINDINGS) else (\ILLEGAL.ARG BINDINGS))) - [IMPL (CADR (find CA in TEDIT.CHARACTIONS suchthat (EQMEMB ACTION (CAR CA] + (IMPL (CADR (ASSOC ACTION TEDIT.CHARACTIONS))) CHARS) - (CL:WHEN IMPL + (CL:WHEN IMPL (* ; + "The hashtable doesn't have the action names, just the implementation") [MAPHASH (fetch READMACRODEFS of RDTBL) (FUNCTION (LAMBDA (VAL CCODE) (CL:WHEN (EQUAL IMPL (CADR VAL)) (* ; "charcode, not charname") (push CHARS (CL:IF RETURNCODES CCODE - (CHARCODE.ENCODE CCODE))))] + (CHARCODE.ENCODE CCODE))))] CHARS)]) (TEDIT.GET.ALL.CHARBINDINGS - [LAMBDA (RDTBL RETURNCODES) (* ; "Edited 8-Nov-2025 10:00 by rmk") + [LAMBDA (RDTBL RETURNCODES) (* ; "Edited 12-Nov-2025 14:44 by rmk") + (* ; "Edited 10-Nov-2025 13:07 by rmk") + (* ; "Edited 8-Nov-2025 10:00 by rmk") (* ; "Edited 23-Apr-2025 10:11 by rmk") (* ; "Edited 7-Apr-2025 22:11 by rmk") (* ; "Edited 5-Apr-2025 11:37 by rmk") (* ; "Edited 18-Mar-2025 20:51 by rmk") - (* ;; "Returns the charbindings instantiated in RDTBL, in the form of TEDIT.CHARBINDINGS: (action . chars)") + (* ;; "Returns the character bindings instantiated in RDTBL, in the form of TEDIT.CHARBINDINGS: (action . chars/codes)") (CL:UNLESS (READTABLEP RDTBL) (SETQ RDTBL (if (NULL RDTBL) @@ -268,12 +271,12 @@ (for CA ANAME in TEDIT.CHARACTIONS when (LISTP CA) unless (EQ '* (CAR CA)) when (EQUAL (CADR CA) (CADR VAL)) - do (SETQ ANAME (CAR (CL:IF (LISTP (CAR CA)) - (CAR CA) - CA))) - (PUSH [CDR (OR (ASSOC ANAME ACTIONS) - (CAR (PUSH ACTIONS (CONS ANAME] - CCODE)))] + do + (* ;; "Same implementation") + + (SETQ ANAME (CAR CA)) + (PUSHMULTI ACTIONS (CAR CA) + CCODE)))] (SORT ACTIONS T) [for A S in ACTIONS do (SETQ S (SORT (CDR A))) (RPLACD A (CL:IF RETURNCODES @@ -282,7 +285,8 @@ ACTIONS]) (TEDIT.CHARBINDINGS.INVERT - [LAMBDA (CHARBINDINGS RETURNCODES) (* ; "Edited 23-Apr-2025 10:11 by rmk") + [LAMBDA (CHARBINDINGS RETURNCODES) (* ; "Edited 10-Nov-2025 16:21 by rmk") + (* ; "Edited 23-Apr-2025 10:11 by rmk") (* ; "Edited 7-Apr-2025 22:39 by rmk") (* ; "Edited 4-Apr-2025 09:58 by rmk") (* ; "Edited 1-Apr-2025 15:09 by rmk") @@ -290,26 +294,24 @@ (* ;; "Inverts CHARBINDINGS to return a list of (char/code . actions), usually a single action unless there is a conflict.. ") (for CB ACTIONSPERCHAR CA in CHARBINDINGS when (CDR (LISTP CB)) unless (EQ '* (CAR CB)) - do [for CHAR CODE CACTIONS in (CDR CB) do (SETQ CODE (CHARCODE.DECODE CHAR)) - (SETQ CACTIONS (ASSOC CODE ACTIONSPERCHAR)) - (CL:UNLESS CACTIONS - (push ACTIONSPERCHAR (SETQ CACTIONS (CONS CODE)) - )) - (CL:UNLESS (MEMB (CAR CB) - (CDR CACTIONS)) - (push (CDR CACTIONS) - (CAR CB)))] + do (for CHAR CODE CACTIONS in (CDR CB) eachtime (SETQ CODE (CHARCODE.DECODE CHAR)) + do (PUSHMULTI-NEW ACTIONSPERCHAR CODE (CAR CB))) finally (SORT ACTIONSPERCHAR T) (CL:UNLESS RETURNCODES (for APC in ACTIONSPERCHAR do (change (CAR APC) - (CHARCODE.ENCODE DATUM)))) - (RETURN ACTIONSPERCHAR]) + (CHARCODE.ENCODE DATUM)))) + (RETURN (SORT ACTIONSPERCHAR T]) (TEDIT.GET.ALL.CHARACTIONS - [LAMBDA (RDTBL RETURNCODES) (* ; "Edited 8-Nov-2025 10:00 by rmk") + [LAMBDA (RDTBL RETURNCODES) (* ; "Edited 12-Nov-2025 14:44 by rmk") + (* ; "Edited 10-Nov-2025 13:37 by rmk") + (* ; "Edited 8-Nov-2025 10:00 by rmk") (* ; "Edited 23-Apr-2025 10:11 by rmk") (* ; "Edited 5-Apr-2025 11:37 by rmk") (* ; "Edited 18-Mar-2025 20:51 by rmk") + + (* ;; "Returns an alist containing all of the (character action) bindings in RDTBL.") + (CL:UNLESS (READTABLEP RDTBL) (SETQ RDTBL (if (NULL RDTBL) then TEDIT.READTABLE @@ -318,7 +320,7 @@ TXTRTBL) TEDIT.READTABLE) else (\ILLEGAL.ARG RDTBL)))) - (LET (ACTIONS) + (LET (BINDINGS) [MAPHASH (fetch READMACRODEFS of RDTBL) (FUNCTION (LAMBDA (VAL CCODE) (CL:WHEN (EQ (\TEDIT.TTC FN) @@ -327,18 +329,15 @@ (for CA ANAME in TEDIT.CHARACTIONS when (LISTP CA) unless (EQ '* (CAR CA)) when (EQUAL (CADR CA) (CADR VAL)) - do (SETQ ANAME (CAR (CL:IF (LISTP (CAR CA)) - (CAR CA) - CA))) - (PUSH [CDR (OR (ASSOC ANAME ACTIONS) - (CAR (PUSH ACTIONS (CONS ANAME] - CCODE)))] - (SORT ACTIONS T) - [for A S in ACTIONS do (SETQ S (SORT (CDR A))) - (RPLACD A (CL:IF RETURNCODES - S - (CHARCODE.ENCODE S))] - ACTIONS]) + do (* ; "Match on implementation") + (PUSHMULTI BINDINGS (CL:IF RETURNCODES + CCODE + (CHARCODE.ENCODE CCODE)) + (CAR CA))))] + (SORT BINDINGS T) + (for B in BINDINGS do (change (CDR B) + (SORT DATUM))) + BINDINGS]) (TEDIT.CONFLICTING.CHARBINDINGS [LAMBDA (CHARBINDINGS NOERROR) (* ; "Edited 7-Apr-2025 22:40 by rmk") @@ -853,7 +852,8 @@ (DEFINEQ (\TEDIT.LINEDELETE.FORWARD - [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 6-Apr-2025 14:41 by rmk") + [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 12-Nov-2025 16:14 by rmk") + (* ; "Edited 6-Apr-2025 14:41 by rmk") (* ; "Edited 15-Mar-2025 23:02 by rmk") (* ; "Edited 9-Mar-2025 22:11 by rmk") (* ; "Edited 4-Mar-2025 17:22 by rmk") @@ -868,10 +868,11 @@ (\TEDIT.NOSEL TSTREAM) (\TEDIT.UPDATE.SEL SEL HERE (IDIFFERENCE (FGETLD LINE LCHARLIM) HERE)) - (TEDIT.DELETE TSTREAM SEL))]) + (\TEDIT.DELETE TSTREAM SEL))]) (\TEDIT.LINEDELETE.BACKWARD - [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 6-Apr-2025 14:41 by rmk") + [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 12-Nov-2025 16:13 by rmk") + (* ; "Edited 6-Apr-2025 14:41 by rmk") (* ; "Edited 15-Mar-2025 23:02 by rmk") (* ; "Edited 9-Mar-2025 22:11 by rmk") (* ; "Edited 4-Mar-2025 17:22 by rmk") @@ -887,7 +888,24 @@ (\TEDIT.NOSEL TSTREAM) (\TEDIT.UPDATE.SEL SEL HERE (IDIFFERENCE (FGETLD LINE LCHAR1) HERE)) - (TEDIT.DELETE TEXTOBJ SEL))]) + (\TEDIT.DELETE TSTREAM SEL))]) + +(\TEDIT.LINEDELETE + [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 12-Nov-2025 16:14 by rmk") + (* ; "Edited 6-Apr-2025 14:41 by rmk") + (* ; "Edited 15-Mar-2025 23:02 by rmk") + (* ; "Edited 9-Mar-2025 22:11 by rmk") + (* ; "Edited 4-Mar-2025 17:22 by rmk") + (* gbn "13-Dec-84 11:56") + + (* ;; "Deletes from the beginning of the caret's line to the end of the caret's line. Line must be visible in the selpane.") + + (LET ((LINE (\TEDIT.SEL.L1 SEL NIL TEXTOBJ))) + (CL:WHEN LINE + (\TEDIT.NOSEL TSTREAM) + (\TEDIT.UPDATE.SEL SEL (FGETLD LINE LCHAR1) + (FGETLD LINE LNCH)) + (\TEDIT.DELETE TSTREAM SEL))]) ) (DEFINEQ @@ -1275,7 +1293,8 @@ RTBL]) (\TEDIT.WORDBOUND.READTABLE - [LAMBDA NIL (* ; "Edited 2-Aug-2025 22:06 by rmk") + [LAMBDA NIL (* ; "Edited 12-Nov-2025 14:44 by rmk") + (* ; "Edited 2-Aug-2025 22:06 by rmk") (* ; "Edited 15-Mar-2025 12:00 by rmk") (* ; "Edited 13-Mar-2025 22:24 by rmk") (* ; "Edited 22-May-92 15:10 by jds") @@ -1315,44 +1334,31 @@ RTBL]) (TEDIT.GETSYNTAX - [LAMBDA (CH TABLE) (* ; "Edited 8-Nov-2025 13:32 by rmk") + [LAMBDA (CH TABLE) (* ; "Edited 12-Nov-2025 14:46 by rmk") + (* ; "Edited 10-Nov-2025 13:36 by rmk") + (* ; "Edited 8-Nov-2025 13:32 by rmk") (* ; "Edited 29-May-2025 16:20 by rmk") (* ; "Edited 12-Mar-2025 12:55 by rmk") (* ; "Edited 24-Dec-2023 09:47 by rmk") (* ; "Edited 31-Mar-87 10:01 by jds") - (* ;; "SKETCH uses this function.") - - (LET - ((ACTION (TEDIT.GET.CHARACTION CH TABLE))) - (if ACTION - then - (* ;; "Map back to syntax-class names just for those defined classes, otherwise FN, for compatibility with documentation and history. But (OR (CAR (MKLIST ACTION)) 'NONE) would be simpler and more informative") - - (OR (find CLASS in '(CHARDELETE WORDDELETE DELETE UNDO REDO NEXT) - suchthat (OR (EQ CLASS ACTION) - (MEMB CLASS ACTION))) - 'FN) - else - (* ;; - "Old code: actions associated with particular class names--really now just picks out NONE") - - (CAR (find TTC (SYNCODE _ (\SYNCODE (fetch READSA - of (if (NULL TABLE) - then TEDIT.READTABLE - elseif (TEXTSTREAM TABLE T) - then (OR (GETTOBJ (TEXTOBJ TABLE) - TXTRTBL) - TEDIT.READTABLE) - else TABLE)) - (CL:IF (OR (LITATOM CH) - (STRINGP CH)) - (CHARCODE.DECODE CH) - CH))) in \TEDIT.TTCCODES - suchthat (EQ SYNCODE (CADR TTC]) + (* ;; "Map back to documented syntax-class names just for those defined classes, otherwise FN, for compatibility with documentation and history. ") + + (SELECTQ (TEDIT.GET.CHARACTION CH TABLE) + (:CHARDELETE.BACKWARD + 'CHARDELETE) + (:WORDDELETE.BACKWARD + 'WORDDELETE) + (:DELETE 'DELETE) + (:UNDO 'UNDO) + (:REDO 'REDO) + (:NEXT 'NEXT) + (NIL 'NONE) + 'FN]) (TEDIT.SETSYNTAX - [LAMBDA (CHAR CLASS RDTBL) (* ; "Edited 13-Mar-2025 21:52 by rmk") + [LAMBDA (CHAR CLASS RDTBL) (* ; "Edited 12-Nov-2025 14:44 by rmk") + (* ; "Edited 13-Mar-2025 21:52 by rmk") (* ; "Edited 24-Dec-2023 09:17 by rmk") (* ; "Edited 31-Mar-87 10:00 by jds") (* ; @@ -1375,7 +1381,8 @@ (\TEDIT.TTC NONE))))]) (TEDIT.GETFUNCTION - [LAMBDA (CHARCODE RDTBL) (* ; "Edited 8-Nov-2025 11:13 by rmk") + [LAMBDA (CHARCODE RDTBL) (* ; "Edited 12-Nov-2025 14:44 by rmk") + (* ; "Edited 8-Nov-2025 11:13 by rmk") (* ; "Edited 5-Apr-2025 11:37 by rmk") (* ; "Edited 13-Mar-2025 22:56 by rmk") (* ; "Edited 7-Mar-2025 12:02 by rmk") @@ -1400,7 +1407,8 @@ [CAR (FETCH MACROFN OF (GETHASH CHARCODE (fetch READMACRODEFS of RDTBL])]) (TEDIT.SETFUNCTION - [LAMBDA (CHARCODE FN RDTBL) (* ; "Edited 8-Nov-2025 10:02 by rmk") + [LAMBDA (CHARCODE FN RDTBL) (* ; "Edited 12-Nov-2025 14:44 by rmk") + (* ; "Edited 8-Nov-2025 10:02 by rmk") (* ; "Edited 13-Mar-2025 22:51 by rmk") (* ; "Edited 7-Mar-2025 12:03 by rmk") (* ; "Edited 31-Mar-87 10:58 by jds") @@ -1440,7 +1448,8 @@ (T (CHCON1 CH]) (TEDIT.WORDSET - [LAMBDA (CHARCODE CLASS TABLE) (* ; "Edited 13-Mar-2025 21:43 by rmk") + [LAMBDA (CHARCODE CLASS TABLE) (* ; "Edited 12-Nov-2025 14:45 by rmk") + (* ; "Edited 13-Mar-2025 21:43 by rmk") (* jds " 1-JUN-83 12:23") (* ;; "Sets Tedit syntax bits in a termtable. ") @@ -1476,45 +1485,192 @@ +(* ;; "On-screen formatting buttons (TEDIT.BUTTONS.BUILD) creates the default button menu") + +(DEFINEQ + +(TEDIT.BUTTONS.BUILD + [LAMBDA (BUTTONSPEC TITLE NROWS KEYBINDINGS) (* ; "Edited 6-Aug-2025 08:59 by rmk") + (* ; "Edited 23-Mar-2025 10:31 by rmk") + (* ; "Edited 18-Mar-2025 15:47 by rmk") + (* ; "Edited 15-Mar-2025 15:24 by rmk") + (* ; "Edited 5-Nov-85 15:35 by lmm") + + (* ;; "Each button is of the form (label action1 [action2]), e.g. (BOLD BOLD.ON BOLD.OFF) or (JUSTIFY QUAD)") + + (CL:UNLESS (AND (WINDOWP TEDIT.BUTTONS.WINDOW) + (OPENWP TEDIT.BUTTONS.WINDOW)) + (CL:UNLESS BUTTONSPEC (SETQ BUTTONSPEC TEDIT.BUTTONS.SPEC)) + (CL:UNLESS TITLE + (SETQ TITLE '(Tedit Buttons))) (* ; "List for the Shrink button label") + (CL:UNLESS KEYBINDINGS (SETQ KEYBINDINGS TEDIT.CHARBINDINGS)) + + (* ;; "The constructed menu will bksysbuf a character bound to action1 if the shift is not down, otherwise a character bound to action2. action2 is action1 if it is not specified. Buttons with no actions are skipped.") + + (LET (ITEMS) + (SETQ ITEMS (for BUTTON CHARS in BUTTONSPEC + eachtime (CL:WHEN (AND (CDR BUTTON) + (NULL (CDDR BUTTON))) + [SETQ BUTTON (APPEND BUTTON (CONS (CADR BUTTON]) + when [SETQ CHARS (for ANAME CHAR in (CDR BUTTON) + when (SETQ CHAR (CADR (ASSOC ANAME KEYBINDINGS))) + collect (CL:IF (CHARCODEP CHAR) + CHAR + (CHARCODE.DECODE CHAR))] + collect (LIST (TEDIT.BUTTONBITMAP.FILL (CAR BUTTON)) + CHARS))) + (SETQ TEDIT.BUTTONS.WINDOW (ADDMENU [create MENU + ITEMS _ ITEMS + TITLE _ (CL:IF (LISTP TITLE) + (SUBSTRING TITLE 2 -2) + TITLE) + MENUROWS _ (OR NROWS 1) + WHENSELECTEDFN _ + (FUNCTION (LAMBDA (X) + (CL:WHEN + (EQ '\TEDIT.PROCENTRYFN + (FETCH (PROCESS + PROCTTYENTRYFN + ) + OF (TTY.PROCESS))) + [\TEDIT.COMMAND.FUNCTION? + (TEXTSTREAM (TTY.PROCESS)) + (CL:IF (SHIFTDOWNP + 'SHIFT) + (CADR (CADR X)) + (CAR (CADR X)))])] + NIL + (create POSITION + XCOORD _ + (PLUS (DIFFERENCE (QUOTIENT SCREENWIDTH 2) + (QUOTIENT (TIMES (BITMAPWIDTH + + TEDIT.BUTTONBITMAP + ) + (LENGTH ITEMS)) + 2)) + (TIMES 2 WBorder)) + YCOORD _ 0))) + [WINDOWPROP TEDIT.BUTTONS.WINDOW 'ICON (TEDIT.BUTTONBITMAP.FILL '(Tedit Buttons] + (WINDOWPROP TEDIT.BUTTONS.WINDOW 'ICONPOSITION (create POSITION + XCOORD _ 0 + YCOORD _ 0))))]) + +(TEDIT.BUTTONBITMAP.FILL + [LAMBDA (X) (* ; "Edited 16-Mar-2025 21:12 by rmk") + (* ; "Edited 15-Mar-2025 14:55 by rmk") + (* lmm " 5-Nov-85 14:04") + (LET ((BITMAP (BITMAPCOPY TEDIT.BUTTONBITMAP)) + DS QUARTER REGION) + (SETQ DS (DSPCREATE BITMAP)) + (DSPFONT MENUFONT DS) + (if (LISTP X) + then (* ; + "this is supposed to have two labels, one on top of the other") + (SETQ QUARTER (IQUOTIENT (BITMAPHEIGHT BITMAP) + 4)) + (CENTERPRINTINREGION (CADR X) + (SETQ REGION (create REGION + LEFT _ 0 + BOTTOM _ QUARTER + WIDTH _ (BITMAPWIDTH BITMAP) + HEIGHT _ QUARTER)) + DS) + (replace BOTTOM of REGION with (ITIMES 2 QUARTER)) + (CENTERPRINTINREGION (CAR X) + REGION DS) + else (CENTERPRINTINREGION X (create REGION + LEFT _ 0 + BOTTOM _ 0 + WIDTH _ (BITMAPWIDTH BITMAP) + HEIGHT _ (BITMAPHEIGHT BITMAP)) + DS)) + BITMAP]) +) + +(RPAQ? TEDIT.BUTTONS.WINDOW NIL) + +(RPAQQ TEDIT.BUTTONBITMAP #*(78 48)OOOOOOOOOOOOOOOOOOOLON@@@@@@@@@@@@@@@AOLO@@@@@@@@@@@@@@@@@CLO@@@@@@@@@@@@@@@@@CLMH@@@@@@@@@@@@@@@@DLNLGOOOOOOOOOOOOOOHHLMFL@@@@@@@@@@@@@@M@LJK@@@@@@@@@@@@@@@B@DMF@@@@@@@@@@@@@@@A@DJN@@@@@@@@@@@@@@@AHDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMF@@@@@@@@@@@@@@@AHDJJ@@@@@@@@@@@@@@@A@DMG@@@@@@@@@@@@@@@B@DNEL@@@@@@@@@@@@@@O@LLIGOOOOOOOOOOOOOOMHLOBBJJJJJJJJJJJJJJJLLNDEEEEEEEEEEEEEEEEGLOHJJJJJJJJJJJJJJJJKLOLEEEEEEEEEEEEEEEEOLOOOOOOOOOOOOOOOOOOOL +) + +(RPAQ? TEDIT.BUTTONS.SPEC + '((Bold :BOLD.ON :BOLD.OFF) + (Italic :ITALIC.ON :ITALIC.OFF) + (Case :UCASE :LCASE) + ((Strike- out) + :STRIKEOUT.ON :STRIKEOUT.OFF) + ((Under- line) + :UNDERLINE.ON :UNDERLINE.OFF) + ((Super/ Sub) + :SUPERSCRIPT :SUBSCRIPT) + ((Larger Smaller) + :LARGER :SMALLER) + (Justify :QUAD) + (Defaults :DEFAULTS) + (Show :SHOW.CHARLOOKS) + (Redo :REDO))) + + + (* ; "Keybindings") (DECLARE%: EVAL@COMPILE DONTCOPY (* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE (RPAQQ \TEDIT.TTCCODES - ((NONE 0) - (CHARDELETE 1) - (WORDDELETE 2) - (DELETE 3) - (FN 4) - (REDO 5) - (UNDO 6) - (CMD 7) - (NEXT 8) - (EXPAND 9) - (CHARDELETE.FORWARD 10) - (WORDDELETE.FORWARD 11) - (PUNCT 20) - (TEXT 21) - (WHITESPACE 22))) + ((NONE . 0) + (CHARDELETE . 1) + (:CHARDELETE.BACKWARD . 1) + (WORDDELETE . 2) + (:WORDDELETE.BACKWORD . 2) + (DELETE . 3) + (:DELETE . 3) + (FN . 4) + (REDO . 5) + (:REDO . 5) + (UNDO . 6) + (:UNDO . 6) + (CMD . 7) + (:CMD . 7) + (NEXT . 8) + (:NEXT . 8) + (EXPAND . 9) + (:EXPAND . 9) + (CHARDELETE.FORWARD . 10) + (:CHARDELETE.FORWARD . 10) + (:WORDDELETE.FORWARD . 11) + (PUNCT . 20) + (TEXT . 21) + (WHITESPACE . 22))) (CONSTANTS \TEDIT.TTCCODES) ) (DECLARE%: EVAL@COMPILE -(PUTPROPS \TEDIT.TTC MACRO [(CLASS) - (CONSTANT (CADR (ASSOC 'CLASS \TEDIT.TTCCODES]) +(PUTPROPS \TEDIT.TTC MACRO [(ACTION) + (CONSTANT (GETMULTI \TEDIT.TTCCODES 'ACTION]) ) (* "END EXPORTED DEFINITIONS") ) +(DEFINEQ -(RPAQQ TEDIT.CHARACTIONS - ((TEDIT-PF PF-TEDIT-FROM-TEXT) - - (* ;; "This defines the implementation of the named actions. They are activated by keybinding specifications given to TEDIT.INSTALL.KEYBINDINGS.") +(\TEDIT.TTCCLASS + [LAMBDA (CODE/CLASS) (* ; "Edited 12-Nov-2025 13:51 by rmk") + (* ; "Edited 10-Nov-2025 14:34 by rmk") + + (* ;; "Class gets the (normalized) class for a CODE (or class atom).") + + (CAR (find TTC in \TEDIT.TTCCODES suchthat (if (FIXP CODE/CLASS) + then (EQ CODE/CLASS (CDR TTC)) + elseif (EQ CODE/CLASS (CAR TTC]) +) + +(RPAQQ ORIG.TEDIT.CHARACTIONS + ( + (* ;; "This defines Tedit's implementation of the named actions. They are activated by keybinding specifications given to TEDIT.INSTALL.KEYBINDINGS.") (* ;; "") @@ -1522,139 +1678,137 @@ (* ;; "History") - (UNDO (TEDIT.UNDO TSTREAM)) - (UNDO.UNDO \TEDIT.UNDO.UNDO) + (:UNDO (TEDIT.UNDO TSTREAM)) + (:UNDO.UNDO \TEDIT.UNDO.UNDO) (* ; "CHECK") - (REDO TEDIT.REDO) + (:REDO TEDIT.REDO) (* ;; "") (* ;; "Find") - ((FIND.FORWARD FIND) - (\TEDIT.KEY.FIND TSTREAM)) - (FIND.BACKWARD (\TEDIT.KEY.FIND TSTREAM NIL T)) - (FIND.FORWARD-AGAIN (\TEDIT.KEY.FIND TSTREAM T)) - (FIND.BACKWARD-AGAIN (\TEDIT.KEY.FIND TSTREAM T T)) - (SUBSTITUTE \TEDIT.KEY.SUBSTITUTE) - (NEXT TEDIT.NEXT) + (:FIND.FORWARD (\TEDIT.KEY.FIND TSTREAM)) + (:FIND.BACKWARD (\TEDIT.KEY.FIND TSTREAM NIL T)) + (:FIND.FORWARD-AGAIN (\TEDIT.KEY.FIND TSTREAM T)) + (:FIND.BACKWARD-AGAIN (\TEDIT.KEY.FIND TSTREAM T T)) + (:SUBSTITUTE \TEDIT.KEY.SUBSTITUTE) + (:NEXT TEDIT.NEXT) (* ;; "") (* ;; "Character looks") - (BOLD.ON (\TEDIT.KEY.CHARLOOKS TSTREAM 'BOLD 'ON)) - (BOLD.OFF (\TEDIT.KEY.CHARLOOKS TSTREAM 'BOLD 'OFF)) - (BOLD.TOGGLE (\TEDIT.KEY.CHARLOOKS TSTREAM 'BOLD 'TOGGLE)) - (ITALIC.ON (\TEDIT.KEY.CHARLOOKS TSTREAM 'ITALIC 'ON)) - (ITALIC.OFF (\TEDIT.KEY.CHARLOOKS TSTREAM 'ITALIC 'OFF)) - (ITALIC.TOGGLE (\TEDIT.KEY.CHARLOOKS TSTREAM 'ITALIC 'TOGGLE)) - (UCASE (\TEDIT.KEY.TRANSFORM TSTREAM (FUNCTION U-CASECODE))) - (LCASE (\TEDIT.KEY.TRANSFORM TSTREAM (FUNCTION L-CASECODE))) - (INITIALCAP (\TEDIT.KEY.TRANSFORM TSTREAM (FUNCTION CAP-CASECODE))) - (STRIKEOUT.ON (\TEDIT.KEY.CHARLOOKS TSTREAM 'STRIKEOUT 'ON)) - (STRIKEOUT.OFF (\TEDIT.KEY.CHARLOOKS TSTREAM 'STRIKEOUT 'OFF)) - (STRIKEOUT.TOGGLE (\TEDIT.KEY.CHARLOOKS TSTREAM 'STRIKEOUT 'TOGGLE)) - (UNDERLINE.ON (\TEDIT.KEY.CHARLOOKS TSTREAM 'UNDERLINE 'ON)) - (UNDERLINE.OFF (\TEDIT.KEY.CHARLOOKS TSTREAM 'UNDERLINE 'OFF)) - (UNDERLINE.TOGGLE (\TEDIT.KEY.CHARLOOKS TSTREAM 'UNDERLINE 'TOGGLE)) - (OVERLINE.ON (\TEDIT.KEY.CHARLOOKS TSTREAM 'OVERLINE 'ON)) - (OVERLINE.OFF (\TEDIT.KEY.CHARLOOKS TSTREAM 'OVERLINE 'OFF)) - (OVERLINE.TOGGLE (\TEDIT.KEY.CHARLOOKS TSTREAM 'OVERLINE 'TOGGLE)) - (UNBREAKABLE.ON (\TEDIT.KEY.CHARLOOKS TSTREAM 'UNBREAKABLE 'ON)) - (UNBREAKABLE.OFF (\TEDIT.KEY.CHARLOOKS TSTREAM 'UNBREAKABLE 'OFF)) - (UNBREAKABLE.TOGGLE (\TEDIT.KEY.CHARLOOKS TSTREAM 'UNBREAKABLE 'TOGGLE)) - (SUBSCRIPT \TEDIT.SUBSCRIPTSEL) - (SUPERSCRIPT \TEDIT.SUPERSCRIPTSEL) - (SMALLER (\TEDIT.KEY.SIZE TSTREAM '-)) - (LARGER (\TEDIT.KEY.SIZE TSTREAM '+)) - (FAMILYN (\TEDIT.KEY.FAMILYN TSTREAM CHARCODE)) - (DEFAULTS \TEDIT.DEFAULTSSEL) - (SHOW.CHARLOOKS \TEDIT.SHOWCARETLOOKS) + (:BOLD.ON (\TEDIT.KEY.CHARLOOKS TSTREAM 'BOLD 'ON)) + (:BOLD.OFF (\TEDIT.KEY.CHARLOOKS TSTREAM 'BOLD 'OFF)) + (:BOLD.TOGGLE (\TEDIT.KEY.CHARLOOKS TSTREAM 'BOLD 'TOGGLE)) + (:ITALIC.ON (\TEDIT.KEY.CHARLOOKS TSTREAM 'ITALIC 'ON)) + (:ITALIC.OFF (\TEDIT.KEY.CHARLOOKS TSTREAM 'ITALIC 'OFF)) + (:ITALIC.TOGGLE (\TEDIT.KEY.CHARLOOKS TSTREAM 'ITALIC 'TOGGLE)) + (:UCASE (\TEDIT.KEY.TRANSFORM TSTREAM (FUNCTION U-CASECODE))) + (:LCASE (\TEDIT.KEY.TRANSFORM TSTREAM (FUNCTION L-CASECODE))) + (:INITIALCAP (\TEDIT.KEY.TRANSFORM TSTREAM (FUNCTION CAP-CASECODE))) + (:STRIKEOUT.ON (\TEDIT.KEY.CHARLOOKS TSTREAM 'STRIKEOUT 'ON)) + (:STRIKEOUT.OFF (\TEDIT.KEY.CHARLOOKS TSTREAM 'STRIKEOUT 'OFF)) + (:STRIKEOUT.TOGGLE (\TEDIT.KEY.CHARLOOKS TSTREAM 'STRIKEOUT 'TOGGLE)) + (:UNDERLINE.ON (\TEDIT.KEY.CHARLOOKS TSTREAM 'UNDERLINE 'ON)) + (:UNDERLINE.OFF (\TEDIT.KEY.CHARLOOKS TSTREAM 'UNDERLINE 'OFF)) + (:UNDERLINE.TOGGLE (\TEDIT.KEY.CHARLOOKS TSTREAM 'UNDERLINE 'TOGGLE)) + (:OVERLINE.ON (\TEDIT.KEY.CHARLOOKS TSTREAM 'OVERLINE 'ON)) + (:OVERLINE.OFF (\TEDIT.KEY.CHARLOOKS TSTREAM 'OVERLINE 'OFF)) + (:OVERLINE.TOGGLE (\TEDIT.KEY.CHARLOOKS TSTREAM 'OVERLINE 'TOGGLE)) + (:UNBREAKABLE.ON (\TEDIT.KEY.CHARLOOKS TSTREAM 'UNBREAKABLE 'ON)) + (:UNBREAKABLE.OFF (\TEDIT.KEY.CHARLOOKS TSTREAM 'UNBREAKABLE 'OFF)) + (:UNBREAKABLE.TOGGLE (\TEDIT.KEY.CHARLOOKS TSTREAM 'UNBREAKABLE 'TOGGLE)) + (:SUBSCRIPT \TEDIT.SUBSCRIPTSEL) + (:SUPERSCRIPT \TEDIT.SUPERSCRIPTSEL) + (:SMALLER (\TEDIT.KEY.SIZE TSTREAM '-)) + (:LARGER (\TEDIT.KEY.SIZE TSTREAM '+)) + (:FAMILYN (\TEDIT.KEY.FAMILYN TSTREAM CHARCODE)) + (:DEFAULTS \TEDIT.DEFAULTSSEL) + (:SHOW.CHARLOOKS \TEDIT.SHOWCARETLOOKS) (* ;; "") (* ;; "Paragraph looks") - (NEST (\TEDIT.KEY.NEST TSTREAM)) - (UNNEST (\TEDIT.KEY.NEST TSTREAM T)) - ((QUAD CENTER) - (\TEDIT.KEY.QUAD TSTREAM)) - (QUAD.REVERSE (\TEDIT.KEY.QUAD TSTREAM T)) + (:NEST (\TEDIT.KEY.NEST TSTREAM)) + (:UNNEST (\TEDIT.KEY.NEST TSTREAM T)) + (:QUAD (\TEDIT.KEY.QUAD TSTREAM)) + (:QUAD.REVERSE (\TEDIT.KEY.QUAD TSTREAM T)) (* ;; "") (* ;; "Cursor/selection") - (ONECHAR.BACKWARD \TEDIT.ONECHAR.BACKWARD) - (ONECHAR.FORWARD \TEDIT.ONECHAR.FORWARD) - (LINE.UP \TEDIT.ONELINE.UP) - (LINE.DOWN \TEDIT.ONELINE.DOWN) - (ONEWORD.FORWARD \TEDIT.ONEWORD.FORWARD) - (ONEWORD.BACKWARD \TEDIT.ONEWORD.BACKWARD) - (LINE.BEGIN \TEDIT.LINE.BEGIN) - (LINE.END \TEDIT.LINE.END) - (DOCUMENT.BEGIN \TEDIT.DOCUMENT.BEGIN) - (DOCUMENT.END \TEDIT.DOCUMENT.END) - (ALL \TEDIT.SELECT.ALL) + (:ONECHAR.BACKWARD \TEDIT.ONECHAR.BACKWARD) + (:ONECHAR.FORWARD \TEDIT.ONECHAR.FORWARD) + (:LINE.UP \TEDIT.ONELINE.UP) + (:LINE.DOWN \TEDIT.ONELINE.DOWN) + (:ONEWORD.FORWARD \TEDIT.ONEWORD.FORWARD) + (:ONEWORD.BACKWARD \TEDIT.ONEWORD.BACKWARD) + (:LINE.BEGIN \TEDIT.LINE.BEGIN) + (:LINE.END \TEDIT.LINE.END) + (:DOCUMENT.BEGIN \TEDIT.DOCUMENT.BEGIN) + (:DOCUMENT.END \TEDIT.DOCUMENT.END) + (:ALL \TEDIT.SELECT.ALL) (* ;; "") (* ;; "Deletion ") - ((CHARDELETE CHARDELETE.BACKWORD) - (\TEDIT.CHARDELETE TSTREAM)) - (CHARDELETE.FORWARD (\TEDIT.CHARDELETE TSTREAM T)) - (WORDDELELETE \TEDIT.WORDDELETE) - (WORDDELETE.FORWARD \TEDIT.WORDDELETE.FORWARD) - (LINEDELETE.FORWARD \TEDIT.LINEDELETE.FORWARD) - (LINEDELETE.BACKWARD \TEDIT.LINEDELETE.BACKWARD) + (:CHARDELETE.BACKWARD (\TEDIT.CHARDELETE TSTREAM)) + (:CHARDELETE.FORWARD (\TEDIT.CHARDELETE TSTREAM T)) + (:WORDDELETE.BACKWARD \TEDIT.WORDDELETE) + (:WORDDELETE.FORWARD \TEDIT.WORDDELETE.FORWARD) + (:LINEDELETE.FORWARD \TEDIT.LINEDELETE.FORWARD) + (:LINEDELETE.BACKWARD \TEDIT.LINEDELETE.BACKWARD) + (:LINEDELETE \TEDIT.LINEDELETE) (* ;; "") (* ;; "Miscellaneous") - (MANPAGE \TEDIT.MANPAGE) - (OPEN.SEDIT \TEDIT.CALL.ED) - (PRINT.MENU \TEDIT.PRINT.MENU) - (EXPAND \TEDIT.ABBREV.EXPAND) - (GET.OBJECT GET.OBJ.FROM.USER) - (OPENLINE \TEDIT.KEY.OPENLINE) + (:MANPAGE \TEDIT.MANPAGE) + (:OPEN.SEDIT \TEDIT.CALL.ED) + (:PRINT.MENU \TEDIT.PRINT.MENU) + (:EXPAND \TEDIT.ABBREV.EXPAND) + (:GET.OBJECT GET.OBJ.FROM.USER) + (:OPENLINE \TEDIT.KEY.OPENLINE) (* ;; "") (* ;; "From TEDITDORADOKEYS") - (WRAP.PARENS (\TEDIT.KEY.WRAP TSTREAM "(" ")")) - (WRAP.NEUTRAL.DOUBLEQUOTES (\TEDIT.KEY.WRAP TSTREAM "%"" "%"")) - [WRAP.REAL.DOUBLEQUOTES (\TEDIT.KEY.WRAP TSTREAM (CHARACTER (CHARCODE LEFT-DOUBLEQUOTE)) - (CHARACTER (CHARCODE RIGHT-DOUBLEQUOTE] + (:WRAP.PARENS (\TEDIT.KEY.WRAP TSTREAM "(" ")")) + (:WRAP.NEUTRAL.DOUBLEQUOTES (\TEDIT.KEY.WRAP TSTREAM "%"" "%"")) + [:WRAP.REAL.DOUBLEQUOTES (\TEDIT.KEY.WRAP TSTREAM (CHARACTER (CHARCODE LEFT-DOUBLEQUOTE)) + (CHARACTER (CHARCODE RIGHT-DOUBLEQUOTE] (* ;; "") (* ;; "Clipboard") - (CLIPBOARD-PASTE PASTEFROMCLIPBOARD) - (CLIPBOARD-COPY \TEDIT.COPYTOCLIPBOARD) - (CLIPBOARD-EXTRACT \TEDIT.EXTRACTTOCLIPBOARD) + (:CLIPBOARD-PASTE PASTEFROMCLIPBOARD) + (:CLIPBOARD-COPY \TEDIT.COPYTOCLIPBOARD) + (:CLIPBOARD-EXTRACT \TEDIT.EXTRACTTOCLIPBOARD) (* ;; "") (* ;; "Wheelscroll") - (WHEELSCROLL-UP (WHEELSCROLL 'VERTICAL T)) - (WHEELSCROLL-DOWN (WHEELSCROLL 'VERTICAL)) - (WHEELSCROLL-LEFT (WHEELSCROLL 'HORIZONTAL)) - (WHEELSCROLL-RIGHT (WHEELSCROLL 'HORIZONTAL T)))) + (:WHEELSCROLL-UP (WHEELSCROLL 'VERTICAL T)) + (:WHEELSCROLL-DOWN (WHEELSCROLL 'VERTICAL)) + (:WHEELSCROLL-LEFT (WHEELSCROLL 'HORIZONTAL)) + (:WHEELSCROLL-RIGHT (WHEELSCROLL 'HORIZONTAL T)))) (RPAQQ TEDIT.BASIC.CHARBINDINGS ( @@ -1666,144 +1820,142 @@ (* ;; "History") - (UNDO "Meta,u" "Meta,z" "Function,4" "Function,44") - (UNDO.UNDO "Meta,U" "Meta,Z") - (REDO "Meta,r" "Meta,R" "Function,10" "Function,50") + (:UNDO "Meta,u" "Meta,z" "Function,4" "Function,44") + (:UNDO.UNDO "Meta,U" "Meta,Z") + (:REDO "Meta,r" "Meta,R" "Function,10" "Function,50") (* ;; "") (* ;; "Find") - (FIND.FORWARD "Meta,f" "Function,3" "Function,43") - (FIND.BACKWARD "Meta,F") - (FIND.FORWARD-AGAIN "Meta,g") - (FIND.BACKWARD-AGAIN "Meta,G") - (SUBSTITUTE "Meta,s" "Meta,S") - (NEXT "Meta,N" "Meta,n" "Function,22") + (:FIND.FORWARD "Meta,f" "Function,3" "Function,43") + (:FIND.BACKWARD "Meta,F") + (:FIND.FORWARD-AGAIN "Meta,g") + (:FIND.BACKWARD-AGAIN "Meta,G") + (:SUBSTITUTE "Meta,s" "Meta,S") + (:NEXT "Meta,N" "Meta,n" "Function,22") (* ;; "") (* ;; "Character looks") - (BOLD.ON "Function,102") - (BOLD.OFF "Function,142") - (BOLD.TOGGLE) - (ITALIC.ON "Function,103") - (ITALIC.OFF "Function,143") - (ITALIC.TOGGLE) - (UCASE "Function,104") - (LCASE "Function,144") - (STRIKEOUT.ON "Function,105") - (STRIKEOUT.OFF "Function,145") - (STRIKEOUT.TOGGLE) - (UNDERLINE.ON "Function,106") - (UNDERLINE.OFF "Function,146") - (UNDERLINE.TOGGLE) - (OVERLINE.ON) - (OVERLINE.OFF) - (OVERLINE.TOGGLE) - (SUBSCRIPT "Function,114") - (SUPERSCRIPT "Function,113") - (SMALLER "Function,110") - (LARGER "Function,150") - (FAMILYN "Meta,One" "Meta,Two" "Meta,Three" "Meta,Four" "Meta,Five" "Meta,Six") - (DEFAULTS "Function,115" "Function,155") - (SHOW.CHARLOOKS "Function,1") + (:BOLD.ON "Function,102") + (:BOLD.OFF "Function,142") + (:BOLD.TOGGLE) + (:ITALIC.ON "Function,103") + (:ITALIC.OFF "Function,143") + (:ITALIC.TOGGLE) + (:UCASE "Function,104") + (:LCASE "Function,144") + (:STRIKEOUT.ON "Function,105") + (:STRIKEOUT.OFF "Function,145") + (:STRIKEOUT.TOGGLE) + (:UNDERLINE.ON "Function,106") + (:UNDERLINE.OFF "Function,146") + (:UNDERLINE.TOGGLE) + (:OVERLINE.ON) + (:OVERLINE.OFF) + (:OVERLINE.TOGGLE) + (:SUBSCRIPT "Function,114") + (:SUPERSCRIPT "Function,113") + (:SMALLER "Function,110") + (:LARGER "Function,150") + (:FAMILYN "Meta,One" "Meta,Two" "Meta,Three" "Meta,Four" "Meta,Five" "Meta,Six") + (:DEFAULTS "Function,115" "Function,155") + (:SHOW.CHARLOOKS "Function,1") (* ;; "") (* ;; "Paragraph looks") - (QUAD "Function,101") - (NEST "Meta,[") - (UNNEST "Meta,]") + (:QUAD "Function,101") + (:NEST "Meta,[") + (:UNNEST "Meta,]") (* ;; "") (* ;; "Cursor/selection") - (ONECHAR.BACKWARD "Meta,<" "Meta,,") + (:ONECHAR.BACKWARD "Meta,<" "Meta,,") (* ; "From arrows") - (ONECHAR.FORWARD "Meta,>" "Meta,.") - (LINE.UP "Meta,^") - (LINE.DOWN "Meta,LF") - (ONEWORD.FORWARD) - (ONEWORD.BACKWARD) - (LINE.BEGIN) - (LINE.END) - (ALL "Meta,a" "Meta,A") + (:ONECHAR.FORWARD "Meta,>" "Meta,.") + (:LINE.UP "Meta,^") + (:LINE.DOWN "Meta,LF") + (:ONEWORD.FORWARD) + (:ONEWORD.BACKWARD) + (:LINE.BEGIN) + (:LINE.END) + (:ALL "Meta,a" "Meta,A") (* ;; "") (* ;; "Deletion") - (CHARDELETE "BS" "^A") - (* ; "CHARDELETE/WORDDELETE are TTC") - ((CHARDELETE.FORWARD DELETE) - "^W" "^U") - (* ; "keyactions for DEL key ??") - (WORDDELELETE) - (WORDDELETE.FORWARD) - (* ; "^W is used for chardelete forward") - (LINEDELETE.FORWARD) - (LINEDELETE.BACKWARD) + (:CHARDELETE.BACKWARD "BS" "^A") + (:CHARDELETE.FORWARD RUBOUT) + (:WORDDELETE.BACKWARD "^W") + (:WORDDELETE.FORWARD) + (:LINEDELETE.FORWARD) + (:LINEDELETE.BACKWARD) + (:LINEDELETE "^U") (* ;; "") (* ;; "Miscellaneous") - (MANPAGE "Meta,D" "Meta,d") - (OPEN.SEDIT "Meta,O" "Meta,o") - (PRINT.MENU "Meta,P" "Meta,p") - (EXPAND "^X") - (GET.OBJECT "^O") + (:MANPAGE "Meta,D" "Meta,d") + (:OPEN.SEDIT "Meta,O" "Meta,o") + (:PRINT.MENU "Meta,P" "Meta,p") + (:EXPAND "^X") + (:GET.OBJECT "^O") (* ;; "") (* ;; "Wheelscroll ") - (WHEELSCROLL-UP "WHEELSCROLL-UP") - (WHEELSCROLL-DOWN "WHEELSCROLL-DOWN") - (WHEELSCROLL-LEFT "WHEELSCROLL-LEFT") - (WHEELSCROLL-RIGHT "WHEELSCROLL-RIGHT") + (:WHEELSCROLL-UP "WHEELSCROLL-UP") + (:WHEELSCROLL-DOWN "WHEELSCROLL-DOWN") + (:WHEELSCROLL-LEFT "WHEELSCROLL-LEFT") + (:WHEELSCROLL-RIGHT "WHEELSCROLL-RIGHT") (* ;; "") (* ;; "Clipboard") - (CLIPBOARD-PASTE "Meta,V" "Meta,v") - (CLIPBOARD-COPY "Meta,C" "Meta,c") - (CLIPBOARD-EXTRACT "Meta,X" "Meta,x"))) + (:CLIPBOARD-PASTE "Meta,V" "Meta,v") + (:CLIPBOARD-COPY "Meta,C" "Meta,c") + (:CLIPBOARD-EXTRACT "Meta,X" "Meta,x"))) (RPAQQ TEDIT.DORADO.CHARBINDINGS ( (* ;; "Taken from lispusers>TKDORADO, these make the indicated Tedit commands available from the Dorado keyboard.") - (DEFAULTS "Meta,^V") - (BOLD.ON "Meta,^B" "Meta,b") - (BOLD.OFF "Meta,^N" "Meta,B") - (ITALIC.ON "Meta,^I") - (ITALIC.OFF "Meta,^O") - (OVERLINE.ON "Meta,^D") - (OVERLINE.OFF "Meta,^F") - (STRIKEOUT.ON "Meta,^G") - (STRIKEOUT.OFF "Meta,^H") + (:DEFAULTS "Meta,^V") + (:BOLD.ON "Meta,^B" "Meta,b") + (:BOLD.OFF "Meta,^N" "Meta,B") + (:ITALIC.ON "Meta,^I") + (:ITALIC.OFF "Meta,^O") + (:OVERLINE.ON "Meta,^D") + (:OVERLINE.OFF "Meta,^F") + (:STRIKEOUT.ON "Meta,^G" "Meta,=") + (:STRIKEOUT.OFF "Meta,^H" "Meta,+") (* (UNDERLINE.ON "Meta,^J") - conflicts with LINE.DOWN) - (UNDERLINE.OFF "Meta,^K") - (SMALLER "Meta,^[") - (LARGER "Meta,^^]") - (SUBSCRIPT "Meta,^^") - (SUPERSCRIPT "Meta,^_") - (QUAD "Meta,^C") + conflicts with :LINE.DOWN) + (:UNDERLINE.ON "Meta,-") + (:UNDERLINE.OFF "Meta,^K" "Meta,_") + (:SMALLER "Meta,^[") + (:LARGER "Meta,^^]") + (:SUBSCRIPT "Meta,^^") + (:SUPERSCRIPT "Meta,^_") + (:QUAD "Meta,^C") (* ;; "Mappings from lispusers>TEDITDORADOKEYS") @@ -1814,19 +1966,17 @@ conflict with clipboard) (* ("Meta,^" SUBSCRIPT) conflicts with LINE.UP) - (BOLD.ON "Meta,b") - (BOLD.OFF "Meta,B") - (ITALIC.ON "Meta,i") - (ITALIC.OFF "Meta,I") - (STRIKEOUT.ON "Meta,=") - (STRIKEOUT.OFF "Meta,+") - (UNDERLINE.ON "Meta,-") - (UNDERLINE.OFF "Meta,_") - (WRAP.PARENS "Meta,(" "Meta,Nine") - (WRAP.NEUTRAL.DOUBLEQUOTES "Meta,%"") - (WRAP.REAL.DOUBLEQUOTES "Meta,'"))) + (:WRAP.PARENS "Meta,(" "Meta,Nine") + (:WRAP.NEUTRAL.DOUBLEQUOTES "Meta,%"") + (:WRAP.REAL.DOUBLEQUOTES "Meta,'"))) -(RPAQ TEDIT.CHARBINDINGS (APPEND TEDIT.BASIC.CHARBINDINGS TEDIT.DORADO.CHARBINDINGS)) +(RPAQ? TEDIT.CHARBINDINGS (APPEND TEDIT.BASIC.CHARBINDINGS TEDIT.DORADO.CHARBINDINGS)) + +(RPAQ? TEDIT.CHARACTIONS (APPEND ORIG.TEDIT.CHARACTIONS)) +(DECLARE%: DOEVAL@COMPILE DONTCOPY + +(GLOBALVARS TEDIT.CHARBINDINGS TEDIT.CHARACTIONS) +) @@ -1838,157 +1988,31 @@ (RPAQ TEDIT.WORDBOUND.READTABLE (\TEDIT.WORDBOUND.READTABLE)) ) - - - -(* ;; "On-screen formatting buttons (TEDIT.BUTTONS.BUILD) creates the default button menu") - - -(RPAQQ TEDIT.BUTTONS.SPEC - ((Bold BOLD.ON BOLD.OFF) - (Italic ITALIC.ON ITALIC.OFF) - (Case UCASE LCASE) - ((Strike- out) - STRIKEOUT.ON STRIKEOUT.OFF) - ((Under- line) - UNDERLINE.ON UNDERLINE.OFF) - ((Super/ Sub) - SUPERSCRIPT SUBSCRIPT) - ((Larger Smaller) - LARGER SMALLER) - (Justify QUAD) - (Defaults DEFAULTS) - (Show SHOW.CHARLOOKS) - (Redo REDO))) -(DEFINEQ - -(TEDIT.BUTTONS.BUILD - [LAMBDA (BUTTONSPEC TITLE NROWS KEYBINDINGS) (* ; "Edited 6-Aug-2025 08:59 by rmk") - (* ; "Edited 23-Mar-2025 10:31 by rmk") - (* ; "Edited 18-Mar-2025 15:47 by rmk") - (* ; "Edited 15-Mar-2025 15:24 by rmk") - (* ; "Edited 5-Nov-85 15:35 by lmm") - - (* ;; "Each button is of the form (label action1 [action2]), e.g. (BOLD BOLD.ON BOLD.OFF) or (JUSTIFY QUAD)") - - (CL:UNLESS (AND (WINDOWP TEDIT.BUTTONS.WINDOW) - (OPENWP TEDIT.BUTTONS.WINDOW)) - (CL:UNLESS BUTTONSPEC (SETQ BUTTONSPEC TEDIT.BUTTONS.SPEC)) - (CL:UNLESS TITLE - (SETQ TITLE '(Tedit Buttons))) (* ; "List for the Shrink button label") - (CL:UNLESS KEYBINDINGS (SETQ KEYBINDINGS TEDIT.CHARBINDINGS)) - - (* ;; "The constructed menu will bksysbuf a character bound to action1 if the shift is not down, otherwise a character bound to action2. action2 is action1 if it is not specified. Buttons with no actions are skipped.") - - (LET (ITEMS) - (SETQ ITEMS (for BUTTON CHARS in BUTTONSPEC - eachtime (CL:WHEN (AND (CDR BUTTON) - (NULL (CDDR BUTTON))) - [SETQ BUTTON (APPEND BUTTON (CONS (CADR BUTTON]) - when [SETQ CHARS (for ANAME CHAR in (CDR BUTTON) - when (SETQ CHAR (CADR (ASSOC ANAME KEYBINDINGS))) - collect (CL:IF (CHARCODEP CHAR) - CHAR - (CHARCODE.DECODE CHAR))] - collect (LIST (TEDIT.BUTTONBITMAP.FILL (CAR BUTTON)) - CHARS))) - (SETQ TEDIT.BUTTONS.WINDOW (ADDMENU [create MENU - ITEMS _ ITEMS - TITLE _ (CL:IF (LISTP TITLE) - (SUBSTRING TITLE 2 -2) - TITLE) - MENUROWS _ (OR NROWS 1) - WHENSELECTEDFN _ - (FUNCTION (LAMBDA (X) - (CL:WHEN - (EQ '\TEDIT.PROCENTRYFN - (FETCH (PROCESS - PROCTTYENTRYFN - ) - OF (TTY.PROCESS))) - [\TEDIT.COMMAND.FUNCTION? - (TEXTSTREAM (TTY.PROCESS)) - (CL:IF (SHIFTDOWNP - 'SHIFT) - (CADR (CADR X)) - (CAR (CADR X)))])] - NIL - (create POSITION - XCOORD _ - (PLUS (DIFFERENCE (QUOTIENT SCREENWIDTH 2) - (QUOTIENT (TIMES (BITMAPWIDTH - - TEDIT.BUTTONBITMAP - ) - (LENGTH ITEMS)) - 2)) - (TIMES 2 WBorder)) - YCOORD _ 0))) - [WINDOWPROP TEDIT.BUTTONS.WINDOW 'ICON (TEDIT.BUTTONBITMAP.FILL '(Tedit Buttons] - (WINDOWPROP TEDIT.BUTTONS.WINDOW 'ICONPOSITION (create POSITION - XCOORD _ 0 - YCOORD _ 0))))]) - -(TEDIT.BUTTONBITMAP.FILL - [LAMBDA (X) (* ; "Edited 16-Mar-2025 21:12 by rmk") - (* ; "Edited 15-Mar-2025 14:55 by rmk") - (* lmm " 5-Nov-85 14:04") - (LET ((BITMAP (BITMAPCOPY TEDIT.BUTTONBITMAP)) - DS QUARTER REGION) - (SETQ DS (DSPCREATE BITMAP)) - (DSPFONT MENUFONT DS) - (if (LISTP X) - then (* ; - "this is supposed to have two labels, one on top of the other") - (SETQ QUARTER (IQUOTIENT (BITMAPHEIGHT BITMAP) - 4)) - (CENTERPRINTINREGION (CADR X) - (SETQ REGION (create REGION - LEFT _ 0 - BOTTOM _ QUARTER - WIDTH _ (BITMAPWIDTH BITMAP) - HEIGHT _ QUARTER)) - DS) - (replace BOTTOM of REGION with (ITIMES 2 QUARTER)) - (CENTERPRINTINREGION (CAR X) - REGION DS) - else (CENTERPRINTINREGION X (create REGION - LEFT _ 0 - BOTTOM _ 0 - WIDTH _ (BITMAPWIDTH BITMAP) - HEIGHT _ (BITMAPHEIGHT BITMAP)) - DS)) - BITMAP]) -) - -(RPAQ? TEDIT.BUTTONS.WINDOW NIL) - -(RPAQQ TEDIT.BUTTONBITMAP #*(78 48)OOOOOOOOOOOOOOOOOOOLON@@@@@@@@@@@@@@@AOLO@@@@@@@@@@@@@@@@@CLO@@@@@@@@@@@@@@@@@CLMH@@@@@@@@@@@@@@@@DLNLGOOOOOOOOOOOOOOHHLMFL@@@@@@@@@@@@@@M@LJK@@@@@@@@@@@@@@@B@DMF@@@@@@@@@@@@@@@A@DJN@@@@@@@@@@@@@@@AHDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMF@@@@@@@@@@@@@@@AHDJJ@@@@@@@@@@@@@@@A@DMG@@@@@@@@@@@@@@@B@DNEL@@@@@@@@@@@@@@O@LLIGOOOOOOOOOOOOOOMHLOBBJJJJJJJJJJJJJJJLLNDEEEEEEEEEEEEEEEEGLOHJJJJJJJJJJJJJJJJKLOLEEEEEEEEEEEEEEEEOLOOOOOOOOOOOOOOOOOOOL -) (DECLARE%: DONTCOPY - (FILEMAP (NIL (4188 23498 (TEDIT.INSTALL.CHARBINDINGS 4198 . 8089) (TEDIT.CLEAR.CHARBINDINGS 8091 . -10868) (TEDIT.GET.CHARACTION 10870 . 13715) (TEDIT.GET.CHARBINDING 13717 . 15856) ( -TEDIT.GET.ALL.CHARBINDINGS 15858 . 18269) (TEDIT.CHARBINDINGS.INVERT 18271 . 20001) ( -TEDIT.GET.ALL.CHARACTIONS 20003 . 22184) (TEDIT.CONFLICTING.CHARBINDINGS 22186 . 23496)) (23558 33613 -(\TEDIT.KEY.CHARLOOKS 23568 . 24760) (\TEDIT.KEY.QUAD 24762 . 26855) (\TEDIT.DEFAULTSSEL 26857 . 27468 -) (\TEDIT.SETDEFAULT.FROM.SEL 27470 . 28147) (\TEDIT.KEY.SIZE 28149 . 29345) (\TEDIT.SUBSCRIPTSEL -29347 . 29550) (\TEDIT.SUPERSCRIPTSEL 29552 . 29756) (\TEDIT.KEY.TRANSFORM 29758 . 31755) ( -\TEDIT.KEY.OPENLINE 31757 . 32211) (\TEDIT.KEY.FAMILYN 32213 . 33611)) (33614 33903 (CAP-CASECODE -33624 . 33901)) (33937 37369 (\TEDIT.SHOWCARETLOOKS 33947 . 36462) (\TEDIT.DESCRIBEFONT 36464 . 37367) -) (37400 52373 (\TEDIT.ONECHAR.BACKWARD 37410 . 38557) (\TEDIT.ONECHAR.FORWARD 38559 . 39795) ( -\TEDIT.ONELINE.UP 39797 . 42758) (\TEDIT.ONELINE.DOWN 42760 . 44417) (\TEDIT.ONELINE.MOVE 44419 . -46706) (\TEDIT.ONEWORD.BACKWARD 46708 . 47896) (\TEDIT.ONEWORD.FORWARD 47898 . 49085) ( -\TEDIT.LINE.BEGIN 49087 . 50166) (\TEDIT.LINE.END 50168 . 51405) (\TEDIT.DOCUMENT.BEGIN 51407 . 51766) - (\TEDIT.DOCUMENT.END 51768 . 52371)) (52374 54416 (\TEDIT.LINEDELETE.FORWARD 52384 . 53383) ( -\TEDIT.LINEDELETE.BACKWARD 53385 . 54414)) (54417 56945 (\TEDIT.KEY.NEST 54427 . 56943)) (56946 58228 -(\TEDIT.KEY.WRAP 56956 . 58226)) (58319 66367 (\TEDIT.KEY.FIND 58329 . 63507) ( -\TEDIT.KEY.FIND.SEARCHSTRING 63509 . 64649) (\TEDIT.GET.TARGET.STRING 64651 . 66365)) (66398 69030 ( -\TEDIT.KEY.SUBSTITUTE 66408 . 66629) (\TEDIT.MANPAGE 66631 . 67878) (\TEDIT.CALL.ED 67880 . 68710) ( -\TEDIT.SELECT.ALL 68712 . 69028)) (69057 74747 (\TEDIT.CLIPBOARD 69067 . 70822) ( -\TEDIT.COPYTOCLIPBOARD 70824 . 71604) (\TEDIT.EXTRACTTOCLIPBOARD 71606 . 71801) (\TEDIT.WRITE.SEL -71803 . 74745)) (74913 87995 (\TEDIT.READTABLE 74923 . 75859) (\TEDIT.WORDBOUND.READTABLE 75861 . -78800) (TEDIT.GETSYNTAX 78802 . 81113) (TEDIT.SETSYNTAX 81115 . 82320) (TEDIT.GETFUNCTION 82322 . -83686) (TEDIT.SETFUNCTION 83688 . 85773) (TEDIT.WORDGET 85775 . 86036) (TEDIT.WORDSET 86038 . 86669) ( -TEDIT.ATOMBOUND.READTABLE 86671 . 87993)) (99832 106820 (TEDIT.BUTTONS.BUILD 99842 . 105088) ( -TEDIT.BUTTONBITMAP.FILL 105090 . 106818))))) + (FILEMAP (NIL (5010 23527 (TEDIT.INSTALL.CHARBINDINGS 5020 . 8123) (TEDIT.CLEAR.CHARBINDINGS 8125 . +11145) (TEDIT.GET.CHARACTION 11147 . 13928) (TEDIT.GET.CHARBINDING 13930 . 16107) ( +TEDIT.GET.ALL.CHARBINDINGS 16109 . 18608) (TEDIT.CHARBINDINGS.INVERT 18610 . 19889) ( +TEDIT.GET.ALL.CHARACTIONS 19891 . 22213) (TEDIT.CONFLICTING.CHARBINDINGS 22215 . 23525)) (23587 33642 +(\TEDIT.KEY.CHARLOOKS 23597 . 24789) (\TEDIT.KEY.QUAD 24791 . 26884) (\TEDIT.DEFAULTSSEL 26886 . 27497 +) (\TEDIT.SETDEFAULT.FROM.SEL 27499 . 28176) (\TEDIT.KEY.SIZE 28178 . 29374) (\TEDIT.SUBSCRIPTSEL +29376 . 29579) (\TEDIT.SUPERSCRIPTSEL 29581 . 29785) (\TEDIT.KEY.TRANSFORM 29787 . 31784) ( +\TEDIT.KEY.OPENLINE 31786 . 32240) (\TEDIT.KEY.FAMILYN 32242 . 33640)) (33643 33932 (CAP-CASECODE +33653 . 33930)) (33966 37398 (\TEDIT.SHOWCARETLOOKS 33976 . 36491) (\TEDIT.DESCRIBEFONT 36493 . 37396) +) (37429 52402 (\TEDIT.ONECHAR.BACKWARD 37439 . 38586) (\TEDIT.ONECHAR.FORWARD 38588 . 39824) ( +\TEDIT.ONELINE.UP 39826 . 42787) (\TEDIT.ONELINE.DOWN 42789 . 44446) (\TEDIT.ONELINE.MOVE 44448 . +46735) (\TEDIT.ONEWORD.BACKWARD 46737 . 47925) (\TEDIT.ONEWORD.FORWARD 47927 . 49114) ( +\TEDIT.LINE.BEGIN 49116 . 50195) (\TEDIT.LINE.END 50197 . 51434) (\TEDIT.DOCUMENT.BEGIN 51436 . 51795) + (\TEDIT.DOCUMENT.END 51797 . 52400)) (52403 55711 (\TEDIT.LINEDELETE.FORWARD 52413 . 53522) ( +\TEDIT.LINEDELETE.BACKWARD 53524 . 54663) (\TEDIT.LINEDELETE 54665 . 55709)) (55712 58240 ( +\TEDIT.KEY.NEST 55722 . 58238)) (58241 59523 (\TEDIT.KEY.WRAP 58251 . 59521)) (59614 67662 ( +\TEDIT.KEY.FIND 59624 . 64802) (\TEDIT.KEY.FIND.SEARCHSTRING 64804 . 65944) (\TEDIT.GET.TARGET.STRING +65946 . 67660)) (67693 70325 (\TEDIT.KEY.SUBSTITUTE 67703 . 67924) (\TEDIT.MANPAGE 67926 . 69173) ( +\TEDIT.CALL.ED 69175 . 70005) (\TEDIT.SELECT.ALL 70007 . 70323)) (70352 76042 (\TEDIT.CLIPBOARD 70362 + . 72117) (\TEDIT.COPYTOCLIPBOARD 72119 . 72899) (\TEDIT.EXTRACTTOCLIPBOARD 72901 . 73096) ( +\TEDIT.WRITE.SEL 73098 . 76040)) (76208 88753 (\TEDIT.READTABLE 76218 . 77154) ( +\TEDIT.WORDBOUND.READTABLE 77156 . 80204) (TEDIT.GETSYNTAX 80206 . 81435) (TEDIT.SETSYNTAX 81437 . +82751) (TEDIT.GETFUNCTION 82753 . 84226) (TEDIT.SETFUNCTION 84228 . 86422) (TEDIT.WORDGET 86424 . +86685) (TEDIT.WORDSET 86687 . 87427) (TEDIT.ATOMBOUND.READTABLE 87429 . 88751)) (88854 95842 ( +TEDIT.BUTTONS.BUILD 88864 . 94110) (TEDIT.BUTTONBITMAP.FILL 94112 . 95840)) (98307 98895 ( +\TEDIT.TTCCLASS 98317 . 98893))))) STOP diff --git a/library/tedit/TEDIT-FNKEYS.LCOM b/library/tedit/TEDIT-FNKEYS.LCOM index 65c4bc51809ab96e4361bf542ed9da7d492fc580..a9e1e641f4f436fe7c4cd753f1946d64850be116 100644 GIT binary patch delta 8227 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 delta 7544 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 delta 783 zcmeA<&eXYwX+kcSV?j}7j)IYak?H1k7872^xXpV6Et!DSH{s=6ljq2lZswE!&m`sS z;TYuN>f;*Xs-xiM>F1*7<{uOe6w*=H?5LE>G_T<|tx|2CoH76UZHgo#928Spl z=A|fXKByYTv{^#qC*x!xEw#y(S_+e+v{WZIXo(2Lg)1p2#f2(q{{PRw$orpxQ)BaT zt@#2RPX0bFdj5V2lLM?JwLC){eLS5(To}vE4WYp~u{c#hA=KG1*i~WjbZa@@;E*6s zZ&&}&5Ri_|N2~)~8AT?GH<@hqY7}6e+}HAyxq%^ka#^dKxu$}jrwR=OYAR?1xVWK;ZQk1|#>iaF5H#7nT^5%izWy$*L4L?aAc<%) za7{kgssb~^7>7fUbU>Yf5SiTDo(S~U`*z969UZch^E)^gg(mBDsDMcgpv=M!)5#k< z6vYG?7#R3~n1LBYFfcK214*69{qsd9|LqXn{G;;^3*-99U;CcP*n;Fis<=Q5HXvpK zF+d_blLIG6O%|MRR#h1!#0bQ!AZZXo15;#j{Y*(lmdUacb%a?!vLLg7>LF&aO^%sp z%lKk)+$5>VTPEI9l>sBxRu2faY%gGU*1Jxdf&X3=we*5nZqWGPC$N X1zj9NT&=P~ICn5Glxs8nui6Cwm(RLr From 408e92541695a05a55a8be5aed36470f65ffe09b Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Wed, 12 Nov 2025 23:15:11 -0800 Subject: [PATCH 09/13] FONT: add MCCSFONTFAMILIES variable --- sources/FONT | 122 ++++++++++++++++++++++++---------------------- sources/FONT.LCOM | Bin 70173 -> 70224 bytes 2 files changed, 64 insertions(+), 58 deletions(-) diff --git a/sources/FONT b/sources/FONT index 127082ce2..8c692df60 100644 --- a/sources/FONT +++ b/sources/FONT @@ -1,13 +1,13 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 7-Nov-2025 11:53:58" {WMEDLEY}FONT.;626 286841 +(FILECREATED "11-Nov-2025 14:30:56" {WMEDLEY}FONT.;628 286775 :EDIT-BY rmk :CHANGES-TO (VARS FONTCOMS) - (FNS MAKEFONTFACE MAKEFONTSPEC FONTSAVAILABLE) + (FNS \READCHARSET) - :PREVIOUS-DATE "20-Oct-2025 09:54:15" {WMEDLEY}FONT.;622) + :PREVIOUS-DATE " 9-Nov-2025 17:56:14" {WMEDLEY}FONT.;627) (PRETTYCOMPRINT FONTCOMS) @@ -26,6 +26,7 @@ GETFONTCLASSCOMPONENT) (MACROS \GETFONTCLASSCOMPONENT \SETFONTCLASSCOMPONENT)) (VARS NSFONTFAMILIES ALTOFONTFAMILIES) + (INITVARS MCCSFONTFAMILIES) (COMS (* ;; "Creation: ") @@ -506,6 +507,8 @@ (RPAQQ ALTOFONTFAMILIES (TIMESROMAN TIMESROMAND HELVETICA HELVETICAD CLARITY BRAVOX TONTO CREAM OLDENGLISH)) +(RPAQ? MCCSFONTFAMILIES NIL) + (* ;; "Creation: ") @@ -822,7 +825,8 @@ (CLOSEF? STRM))))]) (\READCHARSET - [LAMBDA (FONTSPEC CHARSET FONT) (* ; "Edited 2-Sep-2025 23:57 by rmk") + [LAMBDA (FONTSPEC CHARSET FONT) (* ; "Edited 11-Nov-2025 14:30 by rmk") + (* ; "Edited 2-Sep-2025 23:57 by rmk") (* ; "Edited 28-Aug-2025 23:17 by rmk") (* ; "Edited 25-Aug-2025 12:03 by rmk") (* ; "Edited 16-Aug-2025 18:00 by rmk") @@ -856,17 +860,15 @@ (* ;; "The file didn't know its own encoding") (SETQ FAMILY (fetch (FONTSPEC FSFAMILY) of FONTSPEC)) - (CHARSETPROP CSINFO 'CSCHARENCODING (if (NEQ CHARSET 0) - then 'MCCS - elseif (MEMB FAMILY - NSFONTFAMILIES - ) - then 'XCCS$ - elseif (MEMB FAMILY - ALTOFONTFAMILIES - ) - then 'ALTOTEXT - else FAMILY))) + (CHARSETPROP CSINFO 'CSCHARENCODING + (if (OR (NEQ CHARSET 0) + (MEMB FAMILY MCCSFONTFAMILIES)) + then 'MCCS + elseif (MEMB FAMILY NSFONTFAMILIES) + then 'XCCS$ + elseif (MEMB FAMILY ALTOFONTFAMILIES) + then 'ALTOTEXT + else FAMILY))) (* ;; "Remember the file that this basic charset information came from, before any character coercions, for informational purposes. Path and version won't be valid if sysout moves, or if PSEUDOFILENAME's aren't aligned. Don't want files to be new atoms, for loadup.") @@ -999,7 +1001,8 @@ (DEFINEQ (COERCEFONTSPEC - [LAMBDA (FONTSPEC COERCIONS) (* ; "Edited 5-Oct-2025 09:41 by rmk") + [LAMBDA (FONTSPEC COERCIONS) (* ; "Edited 9-Nov-2025 17:54 by rmk") + (* ; "Edited 5-Oct-2025 09:41 by rmk") (* ; "Edited 28-Aug-2025 14:41 by rmk") (* ; "Edited 25-Aug-2025 10:22 by rmk") (* ; "Edited 17-Aug-2025 19:15 by rmk") @@ -1013,11 +1016,14 @@ (* ;; "Doesn't make sense to coerce the device, DEVICE and also CHARSET are just carried along.") + (CL:WHEN (LITATOM COERCIONS) + [SETQ COERCIONS (FONTDEVICEPROP FONTSPEC (OR COERCIONS 'FONTCOERCIONS]) + (* ;; "A NIL match component matches everything, and a NIL target component denotes the corresponding argument.") (for C MATCH TARGET MFAMILY MSIZE MFACE MROTATION TFAMILY TSIZE TFACE TROTATION COERCED FAMILY - SIZE FACE ROTATION DEVICE in (OR COERCIONS (FONTDEVICEPROP FONTSPEC 'FONTCOERCIONS)) - first (SPREADFONTSPEC FONTSPEC) eachtime (SETQ MATCH (MKLIST (CAR C))) + SIZE FACE ROTATION DEVICE in COERCIONS first (SPREADFONTSPEC FONTSPEC) + eachtime (SETQ MATCH (MKLIST (CAR C))) when [AND (COERCEFONTSPEC.MATCH (pop MATCH) FAMILY) (COERCEFONTSPEC.MATCH (pop MATCH) @@ -4667,44 +4673,44 @@ (ADDTOVAR LAMA FONTCOPY) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (12233 21946 (CHARWIDTH 12243 . 13028) (CHARWIDTHY 13030 . 14547) (STRINGWIDTH 14549 . -15642) (\CHARWIDTH.DISPLAY 15644 . 16057) (\STRINGWIDTH.DISPLAY 16059 . 16483) (\STRINGWIDTH.GENERIC -16485 . 21944)) (21947 28467 (DEFAULTFONT 21957 . 23242) (FONTCLASS 23244 . 25406) (FONTCLASSUNPARSE -25408 . 26307) (FONTCLASSCOMPONENT 26309 . 26897) (SETFONTCLASSCOMPONENT 26899 . 27341) ( -GETFONTCLASSCOMPONENT 27343 . 28465)) (30146 54527 (FONTCREATE 30156 . 33401) (FONTCREATE1 33403 . -36018) (FONTCREATE.SLUGFD 36020 . 37502) (\FONT.CHECKARGS 37504 . 44094) (\FONT.CHECKARGS1 44096 . -48619) (\FONTCREATE1.NOFN 48621 . 48835) (FONTFILEP 48837 . 49725) (\READCHARSET 49727 . 54525)) ( -54528 61445 (\FONT.CHECKARGS 54538 . 61128) (\CHARSET.CHECK 61130 . 61443)) (61446 64529 ( -COERCEFONTSPEC 61456 . 64527)) (66599 67938 (MAKEFONTSPEC 66609 . 67936)) (67939 76116 (COMPLETE.FONT -67949 . 70472) (COMPLETEFONTP 70474 . 71097) (COMPLETE.CHARSET 71099 . 73784) (PRUNESLUGCSINFOS 73786 - . 74711) (MONOSPACEFONTP 74713 . 76114)) (76155 84076 (FONTASCENT 76165 . 76549) (FONTDESCENT 76551 - . 77036) (FONTHEIGHT 77038 . 77440) (FONTPROP 77442 . 83353) (\AVGCHARWIDTH 83355 . 84074)) (84733 -85641 (FONTDEVICEPROP 84743 . 85639)) (85687 86541 (EDITCHAR 85697 . 86539)) (86587 98777 ( -GETCHARBITMAP 86597 . 87721) (PUTCHARBITMAP 87723 . 89881) (\GETCHARBITMAP.CSINFO 89883 . 91899) ( -\PUTCHARBITMAP.CSINFO 91901 . 98775)) (98778 119258 (MOVECHARBITMAP 98788 . 100682) (MOVEFONTCHARS -100684 . 104644) (\MOVEFONTCHAR 104646 . 109489) (\MOVEFONTCHARS.SOURCEDATA 109491 . 115596) ( -\MAKESLUGCHAR 115598 . 118133) (SLUGCHARP.DISPLAY 118135 . 119256)) (120191 140329 (FONTFILES 120201 - . 122034) (\FINDFONTFILE 122036 . 123753) (\FONTFILENAMES 123755 . 124750) (\FONTFILENAME 124752 . -128735) (\FONTFILENAME.OLD 128737 . 131686) (\FONTFILENAME.NEW 131688 . 133945) (FONTSPECFROMFILENAME -133947 . 138048) (\FONTINFOFROMFILENAME.OLD 138050 . 140327)) (140596 176399 (FONTCOPY 140606 . 145669 -) (FONTP 145671 . 145970) (FONTUNPARSE 145972 . 147691) (SETFONTDESCRIPTOR 147693 . 149157) ( -\STREAMCHARWIDTH 149159 . 153323) (\COERCECHARSET 153325 . 155920) (\BUILDSLUGCSINFO 155922 . 159545) -(\FONTSYMBOL 159547 . 160197) (\DEVICESYMBOL 160199 . 161068) (\FONTFACE 161070 . 168260) ( -\FONTFACE.COLOR 168262 . 175182) (SETFONTCHARENCODING 175184 . 176397)) (176400 197339 (FONTSAVAILABLE - 176410 . 181653) (FONTEXISTS? 181655 . 185633) (\SEARCHFONTFILES 185635 . 188720) (FLUSHFONTSINCORE -188722 . 191895) (FINDFONTFILES 191897 . 195111) (SORTFONTSPECS 195113 . 197337)) (197340 200949 ( -MATCHFONTFACE 197350 . 198165) (MAKEFONTFACE 198167 . 199193) (FONTFACETOATOM 199195 . 200947)) ( -201327 201819 (\UNITWIDTHSVECTOR 201337 . 201817)) (216413 218480 (FONTDESCRIPTOR.DEFPRINT 216423 . -218002) (FONTCLASS.DEFPRINT 218004 . 218478)) (222309 225099 (\CREATEKERNELEMENT 222319 . 222677) ( -\FSETLEFTKERN 222679 . 223170) (\FGETLEFTKERN 223172 . 225097)) (225100 234736 (\CREATEFONT 225110 . -226549) (\CREATECHARSET 226551 . 230487) (\INSTALLCHARSETINFO 230489 . 233823) ( -\INSTALLCHARSETINFO.CHARENCODING 233825 . 234734)) (235058 236422 (\FONTRESETCHARWIDTHS 235068 . -236420)) (237052 247099 (\CREATEDISPLAYFONT 237062 . 238911) (\CREATECHARSET.DISPLAY 238913 . 244622) -(\FONTEXISTS?.DISPLAY 244624 . 247097)) (247100 261965 (STRIKEFONT.FILEP 247110 . 247998) ( -STRIKEFONT.GETCHARSET 248000 . 253592) (WRITESTRIKEFONTFILE 253594 . 258505) (STRIKECSINFO 258507 . -261963)) (261996 278313 (MAKEBOLD.CHARSET 262006 . 265655) (MAKEBOLD.CHAR 265657 . 267409) ( -MAKEITALIC.CHARSET 267411 . 271084) (MAKEITALIC.CHAR 271086 . 273432) (\SFMAKEBOLD 273434 . 275658) ( -\SFMAKEITALIC 275660 . 278311)) (278314 282463 (\SFMAKEROTATEDFONT 278324 . 279725) (\SFROTATECSINFO -279727 . 280364) (\SFROTATEFONTCHARACTERS 280366 . 280746) (\SFROTATECSINFOOFFSETS 280748 . 282461)) ( -282464 283845 (\SFMAKECOLOR 282474 . 283843))))) + (FILEMAP (NIL (12241 21954 (CHARWIDTH 12251 . 13036) (CHARWIDTHY 13038 . 14555) (STRINGWIDTH 14557 . +15650) (\CHARWIDTH.DISPLAY 15652 . 16065) (\STRINGWIDTH.DISPLAY 16067 . 16491) (\STRINGWIDTH.GENERIC +16493 . 21952)) (21955 28475 (DEFAULTFONT 21965 . 23250) (FONTCLASS 23252 . 25414) (FONTCLASSUNPARSE +25416 . 26315) (FONTCLASSCOMPONENT 26317 . 26905) (SETFONTCLASSCOMPONENT 26907 . 27349) ( +GETFONTCLASSCOMPONENT 27351 . 28473)) (30188 54284 (FONTCREATE 30198 . 33443) (FONTCREATE1 33445 . +36060) (FONTCREATE.SLUGFD 36062 . 37544) (\FONT.CHECKARGS 37546 . 44136) (\FONT.CHECKARGS1 44138 . +48661) (\FONTCREATE1.NOFN 48663 . 48877) (FONTFILEP 48879 . 49767) (\READCHARSET 49769 . 54282)) ( +54285 61202 (\FONT.CHECKARGS 54295 . 60885) (\CHARSET.CHECK 60887 . 61200)) (61203 64463 ( +COERCEFONTSPEC 61213 . 64461)) (66533 67872 (MAKEFONTSPEC 66543 . 67870)) (67873 76050 (COMPLETE.FONT +67883 . 70406) (COMPLETEFONTP 70408 . 71031) (COMPLETE.CHARSET 71033 . 73718) (PRUNESLUGCSINFOS 73720 + . 74645) (MONOSPACEFONTP 74647 . 76048)) (76089 84010 (FONTASCENT 76099 . 76483) (FONTDESCENT 76485 + . 76970) (FONTHEIGHT 76972 . 77374) (FONTPROP 77376 . 83287) (\AVGCHARWIDTH 83289 . 84008)) (84667 +85575 (FONTDEVICEPROP 84677 . 85573)) (85621 86475 (EDITCHAR 85631 . 86473)) (86521 98711 ( +GETCHARBITMAP 86531 . 87655) (PUTCHARBITMAP 87657 . 89815) (\GETCHARBITMAP.CSINFO 89817 . 91833) ( +\PUTCHARBITMAP.CSINFO 91835 . 98709)) (98712 119192 (MOVECHARBITMAP 98722 . 100616) (MOVEFONTCHARS +100618 . 104578) (\MOVEFONTCHAR 104580 . 109423) (\MOVEFONTCHARS.SOURCEDATA 109425 . 115530) ( +\MAKESLUGCHAR 115532 . 118067) (SLUGCHARP.DISPLAY 118069 . 119190)) (120125 140263 (FONTFILES 120135 + . 121968) (\FINDFONTFILE 121970 . 123687) (\FONTFILENAMES 123689 . 124684) (\FONTFILENAME 124686 . +128669) (\FONTFILENAME.OLD 128671 . 131620) (\FONTFILENAME.NEW 131622 . 133879) (FONTSPECFROMFILENAME +133881 . 137982) (\FONTINFOFROMFILENAME.OLD 137984 . 140261)) (140530 176333 (FONTCOPY 140540 . 145603 +) (FONTP 145605 . 145904) (FONTUNPARSE 145906 . 147625) (SETFONTDESCRIPTOR 147627 . 149091) ( +\STREAMCHARWIDTH 149093 . 153257) (\COERCECHARSET 153259 . 155854) (\BUILDSLUGCSINFO 155856 . 159479) +(\FONTSYMBOL 159481 . 160131) (\DEVICESYMBOL 160133 . 161002) (\FONTFACE 161004 . 168194) ( +\FONTFACE.COLOR 168196 . 175116) (SETFONTCHARENCODING 175118 . 176331)) (176334 197273 (FONTSAVAILABLE + 176344 . 181587) (FONTEXISTS? 181589 . 185567) (\SEARCHFONTFILES 185569 . 188654) (FLUSHFONTSINCORE +188656 . 191829) (FINDFONTFILES 191831 . 195045) (SORTFONTSPECS 195047 . 197271)) (197274 200883 ( +MATCHFONTFACE 197284 . 198099) (MAKEFONTFACE 198101 . 199127) (FONTFACETOATOM 199129 . 200881)) ( +201261 201753 (\UNITWIDTHSVECTOR 201271 . 201751)) (216347 218414 (FONTDESCRIPTOR.DEFPRINT 216357 . +217936) (FONTCLASS.DEFPRINT 217938 . 218412)) (222243 225033 (\CREATEKERNELEMENT 222253 . 222611) ( +\FSETLEFTKERN 222613 . 223104) (\FGETLEFTKERN 223106 . 225031)) (225034 234670 (\CREATEFONT 225044 . +226483) (\CREATECHARSET 226485 . 230421) (\INSTALLCHARSETINFO 230423 . 233757) ( +\INSTALLCHARSETINFO.CHARENCODING 233759 . 234668)) (234992 236356 (\FONTRESETCHARWIDTHS 235002 . +236354)) (236986 247033 (\CREATEDISPLAYFONT 236996 . 238845) (\CREATECHARSET.DISPLAY 238847 . 244556) +(\FONTEXISTS?.DISPLAY 244558 . 247031)) (247034 261899 (STRIKEFONT.FILEP 247044 . 247932) ( +STRIKEFONT.GETCHARSET 247934 . 253526) (WRITESTRIKEFONTFILE 253528 . 258439) (STRIKECSINFO 258441 . +261897)) (261930 278247 (MAKEBOLD.CHARSET 261940 . 265589) (MAKEBOLD.CHAR 265591 . 267343) ( +MAKEITALIC.CHARSET 267345 . 271018) (MAKEITALIC.CHAR 271020 . 273366) (\SFMAKEBOLD 273368 . 275592) ( +\SFMAKEITALIC 275594 . 278245)) (278248 282397 (\SFMAKEROTATEDFONT 278258 . 279659) (\SFROTATECSINFO +279661 . 280298) (\SFROTATEFONTCHARACTERS 280300 . 280680) (\SFROTATECSINFOOFFSETS 280682 . 282395)) ( +282398 283779 (\SFMAKECOLOR 282408 . 283777))))) STOP diff --git a/sources/FONT.LCOM b/sources/FONT.LCOM index 04031c4f26ec7bf22b4b00d24d3b4e9651b04c75..e6d82b09afd55f8decf8434ee923b0188973fa9c 100644 GIT binary patch delta 2022 zcmZuyU1%It6wYimiCt`K8@txVrpGn3+0d+W@BHk{QkqO=?{~hLWl^U9TC|xyvJbv%FHN zlwjqlSDsmc|JfTg)hd+>;|61r$1qR=d!sZ`#iDCO??zFo$qwUBX=i9k#ZOeqEN`oJOa*?^7IuLF}}`=F#6gA?M^AVo@D-6OsnEQ;?3P2>iK z%E_ZcCyGUAfB|*ZaN2$>qm`j=J)aXF?q3|JJ6HSL;`aWNIo%e&<@OYTXa+2IpVMm- z*qS&yI(JY9*}K@8@mU1Kq~JB3Sr$edh+zPaQQHI}*3J)aC)y_4Wb(k3;gRuHB^~lbiHHF`qW{HSf^wfNwEqfF@pM4?m(2kaB#CM#1spaI;kzl-ql^ ziQm0vl_O$)e&q0r;aD!Gd^O*poue=G`#X0${!JhLeX^$T6OvdMl>cw+DCUyW;@tdE z{X%$frDGPP^n>-(U`uQhb{%9(T$}rx3H_ zF&1yaaa@Qopaw}EXkHu~ePeH5U(Q)s(Wd{pGQ2+RTpdcgn6~ffTyldyms`ar$hWf= zn5qp;XW`CXfPs)o`(o%iutmoQgZ3JvW9C$)S9>bm$W(W1Fkb4VWyV?-P|E^ptC=;m zs$FYZ)v_TVAy=~tGHfE%Oh`An;Yg13Qd6~;nqUjkjKrY5%C!`*Q7epq(v+^_wQ-r0 z;QgYj2l>&m?(omj61Y$ZOC0CD+!VSd1rOV%4`gkc~95?XC`;_F< zx2BYVSCf++5P!b?ZV7LRd=y`5&V)Yb2&V2TRM@dL&J>4|eEiMXQTI&@@xm%6JnCjLm?92={0y*};Gml}v;(XHDIJ!bC}KgKV(~U`hw~6eg+0nhP0dKT z8a*jR$Be|i4buBB5#okE{%FNbyu=<56?bVjwkL&1)dt_;G2&cQuN@lJAP55nI-)ft zs71u7Ya==Q9g|;%Ex#rZSIe9^tsYQuF*#7RiyQ7NI-W1jH4saB?K?uu?h)NkIjX7> iJm5WWb1!hi7CPuQgn_?=HIgnoZ9!IslQUmjc4s*Vxp!uECQ8!D?A>IN`O400(rCa+t5sUi zhgJ~5pwD7kFBL?JAnJ=RtXwU0L1>&57{U*C&Wd4A8VmgH9UO)$=DFH|tQT5pyCsb1`?S_9Xf>`|6E@ zi-Yz?qfvviFI;@_EIcHh*tL4)c-!-t+hI=1T2On~jr@>uXom^JGA&)>Clz%ua28lQ z3e&dZGUzKw%v=!G#94AY-C7f*y;KUTZp1pSEJ)PQ2%OZNL)UMm zxx;Q0#6C+|LmY&@CX^T>riP~ZTSH??g?~0=^WTRiP})_tdAmH0(rabHi~sE7Uze+> z{Zcmh(Du4g$r{_wRm*iK+$|~mi^EGh=bYQyPZ#iymq%YN8k8?SxvvTuwP7{y!JTtD z2}{9l@{dO6x)vbXtyBOMgJzoG1Z|9fE@-r8<`H${??yl(SlbecnP6!KS@&Cu&)nayme>Xoh{<$>Y zI2s*0yF679&JWh5>GHBE)oW6FJ37Y6!oB%mey508k7~u|Yd8OWx^P^#OmO`uVeM(4 zx&^@kcJGC=s8EO#)@? zu~l!HkVIW14p39u>N1QC7ulMXYW=KsD$^2sYg(KV5H$nA`ov45>{N<1TX4#ClcPYW zovj2Pmq#w`FBFQ-?MF^Zj3iuHHGQSHrW&$O)&avtNP43tr_0dw90P+=U`vh) zz1ef=X3wP~0VQC1KZasHd5ZRfX+I(DC!}lrXo3LAXkwB)5uqrE;mT=*$Prvjawg>_ zAZqVw&FWpPA(AqOrfa=oh@^GgiIDrWNAV@kWx|5nh^!G6#(_3Lc1*1QPeE>wBkx6F zf=9r>PLGG4594(NMBk8gbJMQV0sBA<9f+YK&r`ibbRdWr&3@7fXx3&XjhfksQ{Nl7 z4wPRXD`Y$0n^tzbnVml^h|Yt{@7JsxpJXMNiG0viOAI(tyulW`_qN< zB3D?Lh`xa00@zT25;1kfB26RI#1tk?$oj7J;i{O~y zY&c00x%fuTg)I4 Date: Wed, 12 Nov 2025 23:15:54 -0800 Subject: [PATCH 10/13] LLKEY: Change keybindings for DELETE and LOOKS --- sources/LLKEY | 72 ++++++++++++++++++++++----------------------- sources/LLKEY.LCOM | Bin 66413 -> 66406 bytes 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/sources/LLKEY b/sources/LLKEY index 032f719b6..c45b64c84 100644 --- a/sources/LLKEY +++ b/sources/LLKEY @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 5-May-2025 20:57:08" {WMEDLEY}LLKEY.;15 199508 +(FILECREATED "12-Nov-2025 16:40:50" {WMEDLEY}LLKEY.;18 199501 :EDIT-BY rmk - :CHANGES-TO (VARS \MAIKOKEYACTIONS \KEYNAMES) + :CHANGES-TO (VARS \ORIGKEYACTIONS) - :PREVIOUS-DATE " 4-Apr-2025 17:10:10" {WMEDLEY}LLKEY.;11) + :PREVIOUS-DATE "12-Nov-2025 15:56:25" {WMEDLEY}LLKEY.;17) (PRETTYCOMPRINT LLKEYCOMS) @@ -1591,7 +1591,7 @@ (12 ("/" "?" NOLOCKSHIFT)) (13 ("\" "|" NOLOCKSHIFT)) (14 ("LF" "`" NOLOCKSHIFT)) - (15 ("Bs" "Bs" NOLOCKSHIFT)) + (15 ("Bs" "^W" NOLOCKSHIFT)) (16 ("3" "#" NOLOCKSHIFT)) (17 ("2" "@" NOLOCKSHIFT)) (18 ("w" "W" LOCKSHIFT)) @@ -1771,7 +1771,7 @@ (66 ("Function,G" "Function,g" NOLOCKSHIFT)) (104 ("Function,H" "Function,h" NOLOCKSHIFT)) (80 ("Function,I" "Function,i" NOLOCKSHIFT)) - (13 ("^W" "^U" NOLOCKSHIFT)) + (13 (RUBOUT "^U" NOLOCKSHIFT)) (33 ("Esc" "Esc" NOLOCKSHIFT)) (65 ("Esc" "Esc" NOLOCKSHIFT)) (2 ("6" "^" NOLOCKSHIFT)) @@ -1851,9 +1851,9 @@ (4 ("7" "'" NOLOCKSHIFT)) (8 ("0" "0" NOLOCKSHIFT)) (10 ("\" "_" NOLOCKSHIFT)) - (13 ("^W" "^U" NOLOCKSHIFT)) + (13 (RUBOUT "^U" NOLOCKSHIFT)) (14 METADOWN . METAUP) - (15 ("Bs" "Bs" NOLOCKSHIFT)) + (15 ("Bs" "^W" NOLOCKSHIFT)) (17 ("2" "%"" NOLOCKSHIFT)) (22 ("9" ")" NOLOCKSHIFT)) (28 (":" "*" NOLOCKSHIFT)) @@ -3916,33 +3916,33 @@ (ADDTOVAR LAMA CURSORPROP METASHIFT MOUSECHORDWAIT) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (14602 21918 (BKSYSCHARCODE 14612 . 14961) (\CLEARSYSBUF 14963 . 15521) (\GETKEY 15523 - . 16698) (\NSYSBUFCHARS 16700 . 17442) (\SAVESYSBUF 17444 . 19053) (\SYSBUFP 19055 . 19359) ( -\GETSYSBUF 19361 . 19541) (\PUTSYSBUF 19543 . 20756) (\PEEKSYSBUF 20758 . 21916)) (23203 60761 ( -\KEYBOARDINIT 23213 . 24933) (\KEYBOARDEVENTFN 24935 . 29635) (\ALLOCLOCKED 29637 . 30227) ( -\SETIOPOINTERS 30229 . 34765) (\KEYBOARDOFF 34767 . 35181) (\KEYBOARDON 35183 . 35562) (\KEYHANDLER -35564 . 35695) (\KEYHANDLER1 35697 . 43143) (\RESETKEYBOARD 43145 . 44793) (\DOMOUSECHORDING 44795 . -48615) (\DOTRANSITIONS 48617 . 49294) (\DECODETRANSITION 49296 . 56709) (MOUSECHORDWAIT 56711 . 57375) - (\TRACKCURSOR 57377 . 60759)) (95227 117100 (KEYACTION 95237 . 96090) (KEYACTIONTABLE 96092 . 97274) -(KEYBOARDTYPE 97276 . 98378) (RESETKEYACTION 98380 . 100139) (\KEYBOARD.MACHINE-SPECIFIC-KEYACTIONS -100141 . 102043) (\KEYACTION1 102045 . 112161) (KEYDOWNP 112163 . 112498) (KEYNUMBERP 112500 . 112698) - (\KEYNAMETONUMBER 112700 . 113394) (\KEYNUMBERTONAME 113396 . 113586) (MODIFY.KEYACTIONS 113588 . -114449) (METASHIFT 114451 . 115395) (SHIFTDOWNP 115397 . 117098)) (117163 117459 ( -SETUP.OFFICE.KEYBOARD 117173 . 117457)) (120438 122150 (\INIT.KEYBOARD.STREAM 120448 . 122148)) ( -122415 138792 (\DOBUFFEREDTRANSITIONS 122425 . 137855) (\TIMER.INTERRUPTFRAME 137857 . 138582) ( -\PERIODIC.INTERRUPTFRAME 138584 . 138790)) (139046 143123 (\HARDCURSORUP 139056 . 140938) ( -\HARDCURSORPOSITION 140940 . 142976) (\HARDCURSORDOWN 142978 . 143121)) (143124 167184 (CURSOR.INIT -143134 . 146834) (\CURSORDESTINATION 146836 . 149154) (\SOFTCURSORUP 149156 . 154410) ( -\SOFTCURSORUPCURRENT 154412 . 161448) (\SOFTCURSORPOSITION 161450 . 162215) (\SOFTCURSORDOWN 162217 . -162925) (CURSORPROP 162927 . 163269) (GETCURSORPROP 163271 . 163459) (PUTCURSORPROP 163461 . 164616) ( -\CURSORBITSPERPIXEL 164618 . 166734) (\CURSORIMAGEPROPNAME 166736 . 166960) (\CURSORMASKPROPNAME -166962 . 167182)) (167185 185135 (CURSORCREATE 167195 . 169870) (CURSOR 169872 . 171684) ( -\CURSOR-VALID-P 171686 . 172773) (\CURSORUP 172775 . 174490) (\CURSORPOSITION 174492 . 177020) ( -\CURSORDOWN 177022 . 177255) (ADJUSTCURSORPOSITION 177257 . 177835) (CURSORPOSITION 177837 . 179379) ( -CURSORSCREEN 179381 . 180037) (CURSOREXIT 180039 . 181430) (FLIPCURSOR 181432 . 182558) (FLIPCURSORBAR - 182560 . 183540) (LASTMOUSEX 183542 . 183796) (LASTMOUSEY 183798 . 184052) (CREATEPOSITION 184054 . -184260) (POSITIONP 184262 . 184546) (CURSORHOTSPOT 184548 . 185133)) (186373 187921 (GETMOUSESTATE -186383 . 187042) (\EVENTKEYS 187044 . 187919)) (194120 194916 (MACHINETYPE 194130 . 194530) ( -SETMAINTPANEL 194532 . 194914)) (194946 196085 (BEEPON 194956 . 195609) (BEEPOFF 195611 . 196083)) ( -196536 196799 (WITHOUT-INTERRUPTS 196546 . 196797))))) + (FILEMAP (NIL (14591 21907 (BKSYSCHARCODE 14601 . 14950) (\CLEARSYSBUF 14952 . 15510) (\GETKEY 15512 + . 16687) (\NSYSBUFCHARS 16689 . 17431) (\SAVESYSBUF 17433 . 19042) (\SYSBUFP 19044 . 19348) ( +\GETSYSBUF 19350 . 19530) (\PUTSYSBUF 19532 . 20745) (\PEEKSYSBUF 20747 . 21905)) (23192 60750 ( +\KEYBOARDINIT 23202 . 24922) (\KEYBOARDEVENTFN 24924 . 29624) (\ALLOCLOCKED 29626 . 30216) ( +\SETIOPOINTERS 30218 . 34754) (\KEYBOARDOFF 34756 . 35170) (\KEYBOARDON 35172 . 35551) (\KEYHANDLER +35553 . 35684) (\KEYHANDLER1 35686 . 43132) (\RESETKEYBOARD 43134 . 44782) (\DOMOUSECHORDING 44784 . +48604) (\DOTRANSITIONS 48606 . 49283) (\DECODETRANSITION 49285 . 56698) (MOUSECHORDWAIT 56700 . 57364) + (\TRACKCURSOR 57366 . 60748)) (95220 117093 (KEYACTION 95230 . 96083) (KEYACTIONTABLE 96085 . 97267) +(KEYBOARDTYPE 97269 . 98371) (RESETKEYACTION 98373 . 100132) (\KEYBOARD.MACHINE-SPECIFIC-KEYACTIONS +100134 . 102036) (\KEYACTION1 102038 . 112154) (KEYDOWNP 112156 . 112491) (KEYNUMBERP 112493 . 112691) + (\KEYNAMETONUMBER 112693 . 113387) (\KEYNUMBERTONAME 113389 . 113579) (MODIFY.KEYACTIONS 113581 . +114442) (METASHIFT 114444 . 115388) (SHIFTDOWNP 115390 . 117091)) (117156 117452 ( +SETUP.OFFICE.KEYBOARD 117166 . 117450)) (120431 122143 (\INIT.KEYBOARD.STREAM 120441 . 122141)) ( +122408 138785 (\DOBUFFEREDTRANSITIONS 122418 . 137848) (\TIMER.INTERRUPTFRAME 137850 . 138575) ( +\PERIODIC.INTERRUPTFRAME 138577 . 138783)) (139039 143116 (\HARDCURSORUP 139049 . 140931) ( +\HARDCURSORPOSITION 140933 . 142969) (\HARDCURSORDOWN 142971 . 143114)) (143117 167177 (CURSOR.INIT +143127 . 146827) (\CURSORDESTINATION 146829 . 149147) (\SOFTCURSORUP 149149 . 154403) ( +\SOFTCURSORUPCURRENT 154405 . 161441) (\SOFTCURSORPOSITION 161443 . 162208) (\SOFTCURSORDOWN 162210 . +162918) (CURSORPROP 162920 . 163262) (GETCURSORPROP 163264 . 163452) (PUTCURSORPROP 163454 . 164609) ( +\CURSORBITSPERPIXEL 164611 . 166727) (\CURSORIMAGEPROPNAME 166729 . 166953) (\CURSORMASKPROPNAME +166955 . 167175)) (167178 185128 (CURSORCREATE 167188 . 169863) (CURSOR 169865 . 171677) ( +\CURSOR-VALID-P 171679 . 172766) (\CURSORUP 172768 . 174483) (\CURSORPOSITION 174485 . 177013) ( +\CURSORDOWN 177015 . 177248) (ADJUSTCURSORPOSITION 177250 . 177828) (CURSORPOSITION 177830 . 179372) ( +CURSORSCREEN 179374 . 180030) (CURSOREXIT 180032 . 181423) (FLIPCURSOR 181425 . 182551) (FLIPCURSORBAR + 182553 . 183533) (LASTMOUSEX 183535 . 183789) (LASTMOUSEY 183791 . 184045) (CREATEPOSITION 184047 . +184253) (POSITIONP 184255 . 184539) (CURSORHOTSPOT 184541 . 185126)) (186366 187914 (GETMOUSESTATE +186376 . 187035) (\EVENTKEYS 187037 . 187912)) (194113 194909 (MACHINETYPE 194123 . 194523) ( +SETMAINTPANEL 194525 . 194907)) (194939 196078 (BEEPON 194949 . 195602) (BEEPOFF 195604 . 196076)) ( +196529 196792 (WITHOUT-INTERRUPTS 196539 . 196790))))) STOP diff --git a/sources/LLKEY.LCOM b/sources/LLKEY.LCOM index aba3cfe8d386dc1fbab732dd63b15a700e970837..23744f5fc71dc4df5308ecbc7b7dc687de3ed60e 100644 GIT binary patch delta 320 zcmaFc#`3Ig%ewnV3fsv_#p_!G5ft9Jj#B3c&3rz(sB{WH(yn*?|4eEi& z;(B^|N(w27C8;Tx8jMV=ObwMZxis87eO#S`TpdGPT@=tw1z987N9Pbvf4^W&1*?D{*Dz22&|qB`pebmEm|B^dSs9s5UdJfIXukP0 z(0U9UAK2V57}%<|+dCy*mKndhA}tCCZ( z64&JW-$f@ozH=7x^Y`(0_73*&bPLf027rc<<>ZGKBquA}XPvy|o%!T Date: Wed, 12 Nov 2025 23:16:30 -0800 Subject: [PATCH 11/13] SKETCH: calls TEDIT.GET.CHARACTION, word-delete should now work --- library/sketch/SKETCH-EDIT | 452 ++++++++++++++------------------ library/sketch/SKETCH-EDIT.LCOM | Bin 26520 -> 26503 bytes 2 files changed, 195 insertions(+), 257 deletions(-) diff --git a/library/sketch/SKETCH-EDIT b/library/sketch/SKETCH-EDIT index 24279696a..8be14eb4d 100644 --- a/library/sketch/SKETCH-EDIT +++ b/library/sketch/SKETCH-EDIT @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 5-Nov-2025 23:56:42" {WMEDLEY}sketch>SKETCH-EDIT.;2 108507 +(FILECREATED "12-Nov-2025 14:50:25" {WMEDLEY}SKETCH>SKETCH-EDIT.;5 110185 :EDIT-BY rmk - :CHANGES-TO (FNS SKED.MOVE.SELECTION) + :CHANGES-TO (FNS \SKED.INSERT \SKED.INSERT.CHARS.TO.STR) - :PREVIOUS-DATE " 5-Dec-2023 00:12:04" {WMEDLEY}sketch>SKETCH-EDIT.;1) + :PREVIOUS-DATE "10-Nov-2025 16:36:04" {WMEDLEY}SKETCH>SKETCH-EDIT.;4) (PRETTYCOMPRINT SKETCH-EDITCOMS) @@ -694,15 +694,16 @@ (GETSYNTAX CHCODE (GETREADTABLE]) (SK.GETSYNTAX - [LAMBDA (CHARCODE) (* rrb "11-Jul-86 17:18") - - (* version of getsyntax that uses the TEDIT table if it is available, otherwise - the terminal.) - - (COND - ((DEFINEDP (FUNCTION TEDIT.GETSYNTAX)) - (TEDIT.GETSYNTAX CHARCODE TEDIT.READTABLE)) - (T (GETSYNTAX CHARCODE (GETTERMTABLE]) + [LAMBDA (CHARCODE) (* ; "Edited 10-Nov-2025 15:33 by rmk") + (* rrb "11-Jul-86 17:18") + + (* ;; "Original code used TEDIT.GETSYNTAX if it was defined, otherwise called the system GETSYNTAX. That made SKETCH dependent on the system tags (CHARDELETE etc.). Bbut now we know that loading SKETCH insures that TEDIT is loaded, so Sketch is modified to use the Tedit action names") + (* (COND ((DEFINEDP (FUNCTION + TEDIT.GETSYNTAX)) (TEDIT.GETSYNTAX + CHARCODE TEDIT.READTABLE)) + (T (GETSYNTAX CHARCODE + (GETTERMTABLE))))) + (TEDIT.GET.CHARACTION CHARCODE]) ) (DECLARE%: DONTCOPY (DECLARE%: EVAL@COMPILE @@ -813,13 +814,14 @@ (\SKED.INSERT CHARCODES SKW ATSCALE]) (\SKED.INSERT - [LAMBDA (CHARCODES SKW ATSCALE) (* ; "Edited 20-Feb-87 17:28 by rrb") + [LAMBDA (CHARCODES SKW ATSCALE) (* ; "Edited 12-Nov-2025 14:49 by rmk") + (* ; "Edited 10-Nov-2025 15:32 by rmk") + (* ; "Edited 20-Feb-87 17:28 by rrb") (COND ((GREATERP (LENGTH CHARCODES) 200) - - (* the maximum string length limits the number of characters that can be - inserted at once. This can happen from a shift select.) + + (* ;; "the maximum string length limits the number of characters that can be inserted at once. This can happen from a shift select.") (SKED.INSERT (FIRST.N.ELEMENTS CHARCODES 200) SKW ATSCALE) @@ -831,16 +833,15 @@ NEWELT STRPIECE NEWLINE# NEWCHAR# SKCONTEXT PTRCHAR# CONTROLCHARTAIL) (COND ((EQ (SK.GETSYNTAX (CAR CHARCODES)) - 'UNDO) - - (* user typed an undo Avoid the overhead of inserting no characters and allow - undo to be typed without a selection.) + :UNDO) + + (* ;; "user typed an undo Avoid the overhead of inserting no characters and allow undo to be typed without a selection.") (SETQ CONTROLCHARTAIL 'UNDO) (GO UNDO))) (COND - ((NULL SELECTION) (* add a new text element with these - characters.) + ((NULL SELECTION) (* ; + "add a new text element with these characters.") (STATUSPRINT SKW " " "Indicate the position the typing should go with the left button.") (RETURN))) @@ -851,10 +852,8 @@ (CHARCODE EOL)) (EQ (CAR CHARCODES) (CHARCODE LINEFEED))) - (KEYDOWNP 'CTRL)) - - (* user hit control CR. create a new text or textbox.) - + (KEYDOWNP 'CTRL)) (* ; + "user hit control CR. create a new text or textbox.") (SKED.CREATE.NEW.TEXTBOX [COND ((NEW.TEXT.SELECTIONP SELECTION) NIL) @@ -864,30 +863,26 @@ SKW (CDR CHARCODES)) (RETURN)) - [(NEW.TEXT.SELECTIONP SELECTION) - - (* selection is in open space, create a new text element.) - (* merge the characters into strings - of each line.) + [(NEW.TEXT.SELECTIONP SELECTION) (* ; + "selection is in open space, create a new text element.") + (* ; + "merge the characters into strings of each line.") (SETQ ELTTYPE 'TEXT) (SETQ CONTROLCHARTAIL (\SKED.INSERT.CHARS.TO.STR CHARCODES NIL SKW)) (COND - ((OR NEWSTRS STRPIECE) - - (* if there are any new characters, add a new text element.) - - (* save the selection that marked the spot where the new text goes and add the - text but not in a way that puts an event on the history list. - this is done during clean up.) + ((OR NEWSTRS STRPIECE) (* ; + "if there are any new characters, add a new text element.") + + (* ;; "save the selection that marked the spot where the new text goes and add the text but not in a way that puts an event on the history list. this is done during clean up.") (WINDOWPROP SKW 'CHANGEDTEXTELT SELECTION) (SETQ NEWELT (SK.ADD.ELEMENT (CREATE.TEXT.ELEMENT (SETQ NEWSTRS (NCONC1 NEWSTRS STRPIECE)) (SK.MAP.INPUT.PT.TO.GLOBAL (create INPUTPT - INPUT.ONGRID? + INPUT.ONGRID? _ NIL - INPUT.POSITION + INPUT.POSITION _ (  SELECTION.POSITION @@ -904,20 +899,15 @@ of (fetch (SKETCHCONTEXT SKETCHBRUSH) of SKCONTEXT))) SKW T))) - (CONTROLCHARTAIL - - (* user typed control return to get textbox in the middle of no where.) - + (CONTROLCHARTAIL (* ; + "user typed control return to get textbox in the middle of no where.") (SKED.CREATE.NEW.TEXTBOX NIL SKW (CDR CONTROLCHARTAIL) ATSCALE) (RETURN)) - (T - - (* user typed backspace, etc. when no text exists. - Put caret back in same place.) - + (T (* ; + "user typed backspace, etc. when no text exists. Put caret back in same place.") (SKED.SET.SELECTION SELECTION SKW) - (RETURN))) (* put selection marker at the end.) + (RETURN))) (* ; "put selection marker at the end.") (SETQ NEWLINE# (LENGTH NEWSTRS)) (SETQ NEWCHAR# (NCHARS (CAR (LAST NEWSTRS] (T [SETQ GTEXTELT (fetch (SCREENELT INDIVIDUALGLOBALPART) @@ -926,8 +916,8 @@ (SETQ ELTTYPE (fetch (INDIVIDUALGLOBALPART GTYPE) of GTEXTELT)) (SETQ STRLST (fetch (LOCALTEXT LOCALLISTOFCHARACTERS) of (fetch (SCREENELT LOCALPART) of TEXTELT))) - (* set up points to beginning and end - of selection.) + (* ; + "set up points to beginning and end of selection.") [COND [(NULL EXTENSION) (SETQ LASTCHAR# (SETQ FIRSTCHAR# (fetch (TEXTELTSELECTION SKCHAR#) @@ -939,9 +929,8 @@ (SETQ FIRSTCHAR# (fetch (TEXTELTSELECTION SKCHAR#) of SELECTION)) (SETQ LASTLINE# (fetch (TEXTELTSELECTION SKLINE#) of EXTENSION)) (SETQ LASTCHAR# (fetch (TEXTELTSELECTION SKCHAR#) of EXTENSION)) - - (* make SELECTION be the candidate for the selection after the deletion.) - + (* ; + "make SELECTION be the candidate for the selection after the deletion.") (SETQ SELECTION EXTENSION)) (T (SETQ FIRSTLINE# (fetch (TEXTELTSELECTION SKLINE#) of EXTENSION)) (SETQ FIRSTCHAR# (fetch (TEXTELTSELECTION SKCHAR#) of EXTENSION)) @@ -949,13 +938,14 @@ (SETQ LASTCHAR# (fetch (TEXTELTSELECTION SKCHAR#) of SELECTION] [for STR in STRLST as LINE# from 1 do [COND - ((ILESSP LINE# FIRSTLINE#) (* before the first, copy across) + ((ILESSP LINE# FIRSTLINE#) (* ; "before the first, copy across") (SETQ NEWSTRS (NCONC1 NEWSTRS STR))) - ((IGREATERP LINE# LASTLINE#) (* After the last, copy across) + ((IGREATERP LINE# LASTLINE#) (* ; "After the last, copy across") (SETQ NEWSTRS (NCONC1 NEWSTRS STR))) - ((EQ LINE# FIRSTLINE#) (* on the first, save the part before.) + ((EQ LINE# FIRSTLINE#) (* ; + "on the first, save the part before.") (SETQ STRPIECE (SUBSTRING STR 1 FIRSTCHAR#)) - (* insert new text.) + (* ; "insert new text.") (COND [CHARCODES (SETQ CONTROLCHARTAIL (\SKED.INSERT.CHARS.TO.STR CHARCODES @@ -968,18 +958,15 @@ (T (SETQ NEWCHAR# FIRSTCHAR#) (SETQ NEWLINE# FIRSTLINE#] (COND - ((EQ LINE# LASTLINE#) - - (* on the last, copy the part before and the part after as one) - + ((EQ LINE# LASTLINE#) (* ; + "on the last, copy the part before and the part after as one") (SETQ NEWSTRS (COND [STRPIECE (NCONC1 NEWSTRS (COND ((EQ LASTCHAR# (NCHARS STR)) - - (* special check because SUBSTRING returns NIL rather than the empty string.) - + (* ; + "special check because SUBSTRING returns NIL rather than the empty string.") STRPIECE) (T (CONCAT STRPIECE (SUBSTRING STR (ADD1 @@ -988,15 +975,13 @@ [(NEQ LASTCHAR# (NCHARS STR)) (NCONC1 NEWSTRS (SUBSTRING STR (ADD1 LASTCHAR#] (T NEWSTRS] - - (* any other windows that had this selection have had it deleted already so - this doesn't do anything for them.) + + (* ;; "any other windows that had this selection have had it deleted already so this doesn't do anything for them.") [COND ((IGREATERP NEWLINE# (LENGTH NEWSTRS)) - - (* this corresponds to deleting every thing in a line. - Make sure that if it is the last line that the selection is reset) + + (* ;; "this corresponds to deleting every thing in a line. Make sure that if it is the last line that the selection is reset") (COND ((EQ (SETQ NEWLINE# (LENGTH NEWSTRS)) @@ -1004,30 +989,23 @@ (SETQ NEWCHAR# 0) (COND ((EQ ELTTYPE 'TEXT) - - (* deleted everything in a text element, delete the text element and set the - selection to new text cursor.) + + (* ;; "deleted everything in a text element, delete the text element and set the selection to new text cursor.") (COND [(WINDOWPROP SKW 'CHANGEDTEXTELT) - - (* make the history event for this edit so that it will restore the original - text element) - + (* ; + "make the history event for this edit so that it will restore the original text element") (PROG ((INITSELECTION (WINDOWPROP SKW 'CHANGEDTEXTELT NIL))) (COND ((POSITIONP INITSELECTION) - - (* this text element was typing that was never officially added, don't record - the deletion either.) - + (* ; + "this text element was typing that was never officially added, don't record the deletion either.") (SK.DELETE.ELEMENT (LIST TEXTELT) SKW 'DON'T)) - (T - - (* selection was existing text, record this as a delete event.) - + (T (* ; + "selection was existing text, record this as a delete event.") (SK.DELETE.ELEMENT (LIST TEXTELT) SKW @@ -1043,16 +1021,14 @@ (VIEWER.SCALE SKW)) SKW) (RETURN NIL)) - ((EQ ELTTYPE 'TEXTBOX) (* deleted everything in a textbox) + ((EQ ELTTYPE 'TEXTBOX) (* ; "deleted everything in a textbox") NIL))) (T (SETQ NEWCHAR# (NCHARS (CAR (LAST NEWSTRS] (SETQ PTRCHAR# (SKED.CHARACTERPOSITION NEWSTRS NEWLINE# NEWCHAR#)) (COND ((WINDOWPROP SKW 'CHANGEDTEXTELT) - - (* this is not the first change to the text element. - Collect the changes so that only one element is put on the undo stack, not one - for each character.) + + (* ;; "this is not the first change to the text element. Collect the changes so that only one element is put on the undo stack, not one for each character.") (SETQ NEWELT (SK.UPDATE.ELEMENT (fetch (SCREENELT GLOBALPART) of TEXTELT) (SK.REPLACE.TEXT.IN.ELEMENT (fetch (SCREENELT @@ -1061,12 +1037,10 @@ NEWSTRS) SKW T))) ((AND CONTROLCHARTAIL (NEQ CONTROLCHARTAIL 'UNDO)) - - (* user typed a character command to create a new text box. - Create it and put the remaining characters in it and set the cursor there.) - - (* this is done here so that no undo event is created for the textbox that the - user was in when all they did was type a control-cr.) + + (* ;; "user typed a character command to create a new text box. Create it and put the remaining characters in it and set the cursor there.") + + (* ;; "this is done here so that no undo event is created for the textbox that the user was in when all they did was type a control-cr.") (SKED.CREATE.NEW.TEXTBOX (fetch (SCREENELT INDIVIDUALGLOBALPART) of NEWELT) @@ -1074,9 +1048,7 @@ (CDR CONTROLCHARTAIL)) (RETURN)) (T - - (* this is the first edit change to a new element, call the PREEDITFN and save - old text element so undo event can be constructed when the selection changes.) + (* ;; "this is the first edit change to a new element, call the PREEDITFN and save old text element so undo event can be constructed when the selection changes.") (OR (SK.CHECK.PREEDITFN SKW (fetch (SCREENELT GLOBALPART) of TEXTELT)) (RETURN NIL)) @@ -1087,9 +1059,8 @@ NEWSTRS) SKW)) (WINDOWPROP SKW 'CHANGEDTEXTELT SELECTION))) - - (* recalculate the line %# and char %# of the insertion point as the textboxes - at least do justification.) + + (* ;; "recalculate the line # and char # of the insertion point as the textboxes at least do justification.") [SETQ NEWCHAR# (CDR (SETQ NEWLINE# (SKED.LINE.AND.CHAR# (fetch (LOCALTEXTBOX LOCALLISTOFCHARACTERS) @@ -1099,36 +1070,28 @@ (SETQ NEWLINE# (CAR NEWLINE#] UNDO (COND - ((NULL CONTROLCHARTAIL) - - (* set the selection to where the characters were just inserted.) - + ((NULL CONTROLCHARTAIL) (* ; + "set the selection to where the characters were just inserted.") (SKED.SET.SELECTION (CREATE.TEXT.SELECTION NEWELT NEWLINE# NEWCHAR# NIL NIL (WINDOWPROP SKW 'DSP)) SKW)) - [(EQ CONTROLCHARTAIL 'UNDO) - - (* user types in an undo after some characters or while selection was in the - middle of text.) - + [(EQ CONTROLCHARTAIL 'UNDO) (* ; + "user types in an undo after some characters or while selection was in the middle of text.") (PROG (INITSELECTION EDITEDELT) (COND ((SETQ INITSELECTION (WINDOWPROP SKW 'CHANGEDTEXTELT NIL)) - (* in the middle of editing, undo - these edits.) + (* ; + "in the middle of editing, undo these edits.") [SETQ EDITEDELT (fetch (SCREENELT GLOBALPART) of (OR NEWELT (fetch (TEXTELTSELECTION SKTEXTELT) of (OR SELECTION (ERROR "NO SELECTION WHEN THERE SHOULD BE" ] - - (* add event to history list so the undo can be undone.) - + (* ; + "add event to history list so the undo can be undone.") (COND - ((POSITIONP INITSELECTION) - - (* add an ADD event because previously there was nothing here.) - + ((POSITIONP INITSELECTION) (* ; + "add an ADD event because previously there was nothing here.") (SK.ADD.HISTEVENT 'ADD (LIST EDITEDELT) SKW) (SK.CHECK.END.INITIAL.EDIT SKW EDITEDELT)) @@ -1139,20 +1102,13 @@ EDITEDELT))) (SK.UNDO.LAST SKW) (SKED.SET.SELECTION INITSELECTION SKW)) - (T - - (* haven't edited any characters in the current element, just undo the last - thing.) - + (T (* ; + "haven't edited any characters in the current element, just undo the last thing.") (SK.UNDO.LAST SKW] (T - - (* user typed a character command to create a new text box. - Create it and put the remaining characters in it and set the cursor there.) - - (* set the selection so that adding the new text box will create an undo event - for the character change that took place in this text box before the control-cr - was typed.) + (* ;; "user typed a character command to create a new text box. Create it and put the remaining characters in it and set the cursor there.") + + (* ;; "set the selection so that adding the new text box will create an undo event for the character change that took place in this text box before the control-cr was typed.") (SKED.SET.SELECTION (CREATE.TEXT.SELECTION NEWELT NEWLINE# NEWCHAR# NIL NIL (WINDOWPROP SKW 'DSP)) @@ -1351,136 +1307,118 @@ (T (RETURN (SUBSTRING STRING 1 END]) (\SKED.INSERT.CHARS.TO.STR - [LAMBDA (CHARCODES INCLUDECR SKW) (* rrb "11-Jul-86 17:18") + [LAMBDA (CHARCODES INCLUDECR SKW) (* ; "Edited 12-Nov-2025 14:50 by rmk") + (* ; "Edited 10-Nov-2025 16:35 by rmk") + (* rrb "11-Jul-86 17:18") (DECLARE (SPECVARS NEWSTRS STRPIECE)) - - (* takes a list of characters and makes it into strings on the free variable - NEWSTRS. The variable STRPIECE is set to the last line of characters. - NEWSTRS is a list of the strings that precede this one which is used in the - case of backspace onto the previous line.) + + (* ;; "takes a list of characters and makes it into strings on the free variable NEWSTRS. The variable STRPIECE is set to the last line of characters. NEWSTRS is a list of the strings that precede this one which is used in the case of backspace onto the previous line.") (PROG (LINELST THISLINE REMAININGCHARS CLASS) [for CHAR in CHARCODES do (SELECTQ (SK.GETSYNTAX CHAR) - (CHARDELETE (* delete the previous character.) - [COND - (THISLINE (* easy case of deleting type in.) - (SETQ THISLINE (CDR THISLINE))) - (LINELST (* deleting a typed in CR.) - (SETQ THISLINE (CAR LINELST)) - (SETQ LINELST (CDR LINELST))) - [STRPIECE (* remove the previous character from - the current string.) - (COND - ((EQ (NCHARS STRPIECE) - 1) - (SETQ STRPIECE NIL)) - (T (SETQ STRPIECE (SUBSTRING STRPIECE 1 -2] - [NEWSTRS (SETQ STRPIECE (CAR (LAST NEWSTRS))) - (SETQ NEWSTRS (BUTLAST NEWSTRS)) - (COND - ((EQ (NTHCHARCODE STRPIECE -1) - (CHARCODE EOL)) - (* remove previous eol) - (COND - ((EQ (NCHARS STRPIECE) - 1) - (SETQ STRPIECE NIL)) - (T (SETQ STRPIECE (SUBSTRING STRPIECE 1 -2] - (T (* no characters to delete) - (FLASHW (TTYDISPLAYSTREAM]) - (WORDDELETE (* delete the previous word) - - (* use the TEdit word bounding readtable. - Code are%: character = 21 - - space = 22 - - punctuation = 20) - - [COND - [[OR THISLINE (PROG1 (SETQ THISLINE (CAR LINELST)) - (SETQ LINELST (CDR LINELST] - (* easy case of deleting type in.) - - (* if this line was empty, skip the cr that created it as part of the white - space before the word.) - (* skip any whitespace) - (COND - ([NULL (SETQ THISLINE (for TAIL on THISLINE - while (EQ (SK.WORD.BREAK.CLASS - (CAR TAIL)) - 22) - finally (RETURN TAIL] - - (* the whitespace backed up to the beginning of a line. - quit there.) - - NIL) - (T (SETQ CLASS (SK.WORD.BREAK.CLASS (CAR THISLINE))) - - (* skip all things of the same class as the first character before the - whitespace) - - (SETQ THISLINE (for TAIL on THISLINE - until (NEQ (SK.WORD.BREAK.CLASS - (CAR TAIL)) - CLASS) - finally (RETURN TAIL] - (STRPIECE (* remove the previous character from - the current string.) - (SETQ STRPIECE (\SKED.DELETE.WORD.FROM.STRING STRPIECE))) - (NEWSTRS [SETQ STRPIECE (\SKED.DELETE.WORD.FROM.STRING - (CAR (LAST NEWSTRS] - (SETQ NEWSTRS (BUTLAST NEWSTRS))) - (T (* no characters to delete) - (FLASHW (TTYDISPLAYSTREAM]) - (DELETE (* delete selection. - Here that means don't insert anything.)) - (UNDO - - (* by side effect this flushes any characters typed after the undo but it's not - clear where they should go anyway.) - - (RETURN 'UNDO)) - ((REDO FN CMD) + (:CHARDELETE.BACKWARD (* ; "delete the previous character.") + [COND + (THISLINE (* ; "easy case of deleting type in.") + (SETQ THISLINE (CDR THISLINE))) + (LINELST (* ; "deleting a typed in CR.") + (SETQ THISLINE (CAR LINELST)) + (SETQ LINELST (CDR LINELST))) + [STRPIECE (* ; + "remove the previous character from the current string.") + (COND + ((EQ (NCHARS STRPIECE) + 1) + (SETQ STRPIECE NIL)) + (T (SETQ STRPIECE (SUBSTRING STRPIECE 1 -2] + [NEWSTRS (SETQ STRPIECE (CAR (LAST NEWSTRS))) + (SETQ NEWSTRS (BUTLAST NEWSTRS)) + (COND + ((EQ (NTHCHARCODE STRPIECE -1) + (CHARCODE EOL)) (* ; "remove previous eol") + (COND + ((EQ (NCHARS STRPIECE) + 1) + (SETQ STRPIECE NIL)) + (T (SETQ STRPIECE (SUBSTRING STRPIECE 1 -2] + (T (* ; "no characters to delete") + (FLASHW (TTYDISPLAYSTREAM]) + ((:CHARDELETE.FORWARD :WORDDELETE.BACKWARD) + (* ; + "delete the previous word. Tedit binds DEL to CHARDELETE.FORWARD, sketch used to delete the word") + + (* ;; "use the TEdit word bounding readtable. Code are: character = 21 --- space = 22 --- punctuation = 20") + + [COND + [[OR THISLINE (PROG1 (SETQ THISLINE (CAR LINELST)) + (SETQ LINELST (CDR LINELST)))] + (* ; "easy case of deleting type in.") + (* ; + "if this line was empty, skip the cr that created it as part of the white space before the word.") + (* ; "skip any whitespace") + (COND + ([NULL (SETQ THISLINE (for TAIL on THISLINE + while (EQ (SK.WORD.BREAK.CLASS (CAR TAIL)) + 22) finally (RETURN TAIL] + (* ; + "the whitespace backed up to the beginning of a line. quit there.") + NIL) + (T (SETQ CLASS (SK.WORD.BREAK.CLASS (CAR THISLINE))) + (* ; + "skip all things of the same class as the first character before the whitespace") + (SETQ THISLINE (for TAIL on THISLINE + until (NEQ (SK.WORD.BREAK.CLASS (CAR TAIL)) + CLASS) finally (RETURN TAIL] + (STRPIECE (* ; + "remove the previous character from the current string.") + (SETQ STRPIECE (\SKED.DELETE.WORD.FROM.STRING STRPIECE))) + (NEWSTRS [SETQ STRPIECE (\SKED.DELETE.WORD.FROM.STRING + (CAR (LAST NEWSTRS] + (SETQ NEWSTRS (BUTLAST NEWSTRS))) + (T (* ; "no characters to delete") + (FLASHW (TTYDISPLAYSTREAM]) + (:DELETE (* ; + "delete selection. Here that means don't insert anything.")) + (:UNDO + (* ;; "by side effect this flushes any characters typed after the undo but it's not clear where they should go anyway.") + + (RETURN 'UNDO)) + ((:REDO :CMD) (* ; "There are many more Tedit actions that we don't deal with here, these were called out when Sketch was using \TEDIT.GETSYNTAX or GETSYNTAX. Not clear we need this message, just fall through and treat REDO/CMD like other actions, as ordinary characters") (STATUSPRINT SKW " " "Not implemented in this editor. Sorry.")) (COND [(OR (EQ CHAR (CHARCODE EOL)) - (EQ CHAR (CHARCODE LINEFEED))) (* eol) + (EQ CHAR (CHARCODE LINEFEED))) (* ; "eol") (COND - ((KEYDOWNP 'CTRL) - - (* user entered control return, save remaining characters and return indicator) - + ((KEYDOWNP 'CTRL) (* ; + "user entered control return, save remaining characters and return indicator") (SETQ REMAININGCHARS (MEMB CHAR CHARCODES)) (RETURN)) (T (SETQ LINELST (CONS (COND (INCLUDECR - (* text boxes need to have the CRs - left in.) + (* ; + "text boxes need to have the CRs left in.") (CONS (CHARCODE EOL) THISLINE)) (T THISLINE)) LINELST)) (SETQ THISLINE NIL] (T - - (* add this character onto the front of this line; - reversal will happen before conversion to string and return.) + (* ;; "add this character onto the front of this line; reversal will happen before conversion to string and return.") (SETQ THISLINE (CONS CHAR THISLINE] (COND - [LINELST (* had a cr in the character set.) + [LINELST (* ; "had a cr in the character set.") [SETQ NEWSTRS (NCONC NEWSTRS [CONS (JOINCHARS STRPIECE (REVERSE (CAR (LAST LINELST] (for CHLST in (REVERSE (BUTLAST LINELST)) collect (STRINGFROMCHARACTERS (REVERSE CHLST] (SETQ STRPIECE (STRINGFROMCHARACTERS (REVERSE THISLINE] - [THISLINE (* no new lines, add these characters - onto STRPIECE) + [THISLINE (* ; + "no new lines, add these characters onto STRPIECE") (SETQ STRPIECE (JOINCHARS STRPIECE (REVERSE THISLINE] - (T (* no new lines, or characters, leave - STRPIECE alone.) + (T (* ; + "no new lines, or characters, leave STRPIECE alone.") NIL)) (RETURN REMAININGCHARS]) @@ -1944,26 +1882,26 @@ YCOORD _ (LASTMOUSEY WIN]) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (2425 39442 (BUTLAST 2435 . 2783) (CHAR.BEGIN 2785 . 4710) (CLOSEST.CHAR 4712 . 8935) ( -CLOSEST.LINE 8937 . 9499) (FLASHW 9501 . 9658) (HILITE.LINE 9660 . 10479) (HILITE.TEXT 10481 . 12129) -(IN.TEXT.EXTEND 12131 . 15404) (INIMAGEOBJ 15406 . 15911) (INTEXT 15913 . 16410) (NEW.TEXT.EXTEND -16412 . 18631) (NEW.TEXT.SELECTIONP 18633 . 18813) (NTHCHARWIDTH 18815 . 19072) (NTHLOCALREGION 19074 - . 19312) (ONCHAR 19314 . 19709) (SHOW.EXTENDED.SELECTION.FEEDBACK 19711 . 20646) (SHOW.FEEDBACK 20648 - . 21138) (SHOW.FEEDBACK.BOX 21140 . 22194) (SELECTION.POSITION 22196 . 22988) (SKED.CLEAR.SELECTION -22990 . 23513) (SKETCH.CLEANUP 23515 . 25429) (SK.ENTER.EDIT.CHANGE 25431 . 26976) ( -SKED.REMOVE.OTHER.SELECTIONS 26978 . 27405) (SKED.EXTEND.SELECTION 27407 . 28872) (SKED.MOVE.SELECTION - 28874 . 33944) (CREATE.TEXT.SELECTION 33946 . 34462) (SKED.SELECTION.FEEDBACK 34464 . 36120) ( -SKED.SET.EXTENDSELECTION 36122 . 36439) (SKED.SET.SELECTION 36441 . 36841) (LINE.BEGIN 36843 . 37397) -(SELECTION.GREATERP 37399 . 38194) (SK.WORD.BREAK.CLASS 38196 . 39036) (SK.GETSYNTAX 39038 . 39440)) ( -40284 86018 (WB.EDITOR 40294 . 41619) (SK.TTYENTRYFN 41621 . 41899) (SK.TTYEXITFN 41901 . 42170) ( -SKED.INSERT 42172 . 42600) (\SKED.INSERT 42602 . 63724) (FIRST.N.ELEMENTS 63726 . 63993) ( -SKED.CREATE.NEW.TEXTBOX 63995 . 70524) (SKED.CHARACTERPOSITION 70526 . 71313) (SKED.LINE.AND.CHAR# -71315 . 72946) (\SKED.DELETE.WORD.FROM.STRING 72948 . 73987) (\SKED.INSERT.CHARS.TO.STR 73989 . 82400) - (JOINCHARS 82402 . 82789) (STRINGFROMCHARACTERS 82791 . 83116) (GETALLCHARS 83118 . 83459) ( -CLEANUP.EDIT 83461 . 83913) (SKED.NEW.TEXTELT 83915 . 86016)) (86053 107061 ( -MAP.SCREEN.POSITION.ONTO.GRID 86063 . 87512) (NEAREST.ON.GRID 87514 . 88058) (SK.MIDDLE.TITLEFN 88060 - . 90003) (WB.BUTTON.HANDLER 90005 . 97827) (WB.ADD.NEW.POINT 97829 . 101158) (WB.DRAWLINE 101160 . -105394) (WB.RUBBERBAND.POSITION 105396 . 106313) (SK.RUBBERBAND.FEEDBACKFN 106315 . 106819) ( -RESET.LINE.BEING.INPUT 106821 . 107059)) (107243 108484 (NEAREST.EXISTING.POSITION 107253 . 107455) ( -WB.NEARPT 107457 . 108342) (LASTMOUSEPOSITION 108344 . 108482))))) + (FILEMAP (NIL (2444 40071 (BUTLAST 2454 . 2802) (CHAR.BEGIN 2804 . 4729) (CLOSEST.CHAR 4731 . 8954) ( +CLOSEST.LINE 8956 . 9518) (FLASHW 9520 . 9677) (HILITE.LINE 9679 . 10498) (HILITE.TEXT 10500 . 12148) +(IN.TEXT.EXTEND 12150 . 15423) (INIMAGEOBJ 15425 . 15930) (INTEXT 15932 . 16429) (NEW.TEXT.EXTEND +16431 . 18650) (NEW.TEXT.SELECTIONP 18652 . 18832) (NTHCHARWIDTH 18834 . 19091) (NTHLOCALREGION 19093 + . 19331) (ONCHAR 19333 . 19728) (SHOW.EXTENDED.SELECTION.FEEDBACK 19730 . 20665) (SHOW.FEEDBACK 20667 + . 21157) (SHOW.FEEDBACK.BOX 21159 . 22213) (SELECTION.POSITION 22215 . 23007) (SKED.CLEAR.SELECTION +23009 . 23532) (SKETCH.CLEANUP 23534 . 25448) (SK.ENTER.EDIT.CHANGE 25450 . 26995) ( +SKED.REMOVE.OTHER.SELECTIONS 26997 . 27424) (SKED.EXTEND.SELECTION 27426 . 28891) (SKED.MOVE.SELECTION + 28893 . 33963) (CREATE.TEXT.SELECTION 33965 . 34481) (SKED.SELECTION.FEEDBACK 34483 . 36139) ( +SKED.SET.EXTENDSELECTION 36141 . 36458) (SKED.SET.SELECTION 36460 . 36860) (LINE.BEGIN 36862 . 37416) +(SELECTION.GREATERP 37418 . 38213) (SK.WORD.BREAK.CLASS 38215 . 39055) (SK.GETSYNTAX 39057 . 40069)) ( +40913 87696 (WB.EDITOR 40923 . 42248) (SK.TTYENTRYFN 42250 . 42528) (SK.TTYEXITFN 42530 . 42799) ( +SKED.INSERT 42801 . 43229) (\SKED.INSERT 43231 . 65221) (FIRST.N.ELEMENTS 65223 . 65490) ( +SKED.CREATE.NEW.TEXTBOX 65492 . 72021) (SKED.CHARACTERPOSITION 72023 . 72810) (SKED.LINE.AND.CHAR# +72812 . 74443) (\SKED.DELETE.WORD.FROM.STRING 74445 . 75484) (\SKED.INSERT.CHARS.TO.STR 75486 . 84078) + (JOINCHARS 84080 . 84467) (STRINGFROMCHARACTERS 84469 . 84794) (GETALLCHARS 84796 . 85137) ( +CLEANUP.EDIT 85139 . 85591) (SKED.NEW.TEXTELT 85593 . 87694)) (87731 108739 ( +MAP.SCREEN.POSITION.ONTO.GRID 87741 . 89190) (NEAREST.ON.GRID 89192 . 89736) (SK.MIDDLE.TITLEFN 89738 + . 91681) (WB.BUTTON.HANDLER 91683 . 99505) (WB.ADD.NEW.POINT 99507 . 102836) (WB.DRAWLINE 102838 . +107072) (WB.RUBBERBAND.POSITION 107074 . 107991) (SK.RUBBERBAND.FEEDBACKFN 107993 . 108497) ( +RESET.LINE.BEING.INPUT 108499 . 108737)) (108921 110162 (NEAREST.EXISTING.POSITION 108931 . 109133) ( +WB.NEARPT 109135 . 110020) (LASTMOUSEPOSITION 110022 . 110160))))) STOP diff --git a/library/sketch/SKETCH-EDIT.LCOM b/library/sketch/SKETCH-EDIT.LCOM index bb772bdb823320639c19c2008eab962611c58a39..5246563cb334630ce4e5b9a643a0941682415ff3 100644 GIT binary patch delta 1059 zcmZuw%}>){7;m@4;3O&^B7w_eg}EVX`ps5ltZUz~!PYKqXT`vQujm{I4nss@xM_?R zw2ATHMUN5>b=koaC(qnWJo+DycqhKyCKKfHKF{-epO4?~?bG)MXirTHhg z*MH+gnTb=;P$ZMfBh^HTjWnEeh6oC_odUvBW}e?(DKAv#t5aJoIj2+s%Q9?S1ld;^ zOV2=cwE`ho#Uv+@6|)V9WOVDaoPlB#h8 zF7OOSqd;^J1VN_GMYVH=9u4Wae692PS~n@zw#9>vs~bH* zBG|Rtk?QIS8QsA;)06$=1&Z!`@&HB zhvc_x;I2n51Uz!i30GE+F8ECROygvjTDtGw9Da7Gi9~=na_1(7^&d{SKH@~`oz6(3 zuSa}uSh8_0hWDLF(~Ee-UJLVxkF8d3J>p%E;9xNR7is$ zCSZ0N&FD%2;YBSK(s)Y+P6EqT?2=V9bGi+@B)E?ixF`yM_c^av7!n##A0LNi%rlU| zUe*DgVcl!vSAtxe_ica^T^R3k2hw{x0;sl`2SLC?{W3h*pMyYPB#_mD27Dq8vWYYU zcq~CK>Ap9HcU41qgcCVV0NF82tr^p4MV)pOQv(jajlaTX>mp;A4SbAk!`(JIF2KJO Q*2%gtb(EB9_tfOjADiwJ-T(jq delta 1101 zcmZuw%Wl(95Vg|0U}YUz?Wjng(RV%5=21KeCXS8*KENEZ}CD`E>4u8^ep zO0fw4W?oCD(=nL4v`X@IkVJAU8BOGMlGehCgEfeCXavRJwp+qPrh50};==68rInl6 zj*S7!j0=nenV`{Bt_t2udPwZhKoT-#3s382#ZGBNIMmhZwO}3`FieI;-Y@#V{!S`v zb1ZTT)*ufIkdnznN$r}WK^Q_w|wLrr964 z*zf=N?j4^ze-ObLQ#aItV%Z>)A(9V_EgOT#h~Bz7bW~*6zdk`maL!OoLq#BrOFLNL zgV+gymv>^BaVX(Z4tSA)b5po#C?!mGzf#JP#pjU(wxc)|yKL!(1Dqgwk^;TF2;>(j zDmHO(p=*d^pv4h_JV6B)kj#0#6GOD*^-K&$1eTCt@2m29UI5jxiogp*GPp!!0~HKB z*>AO^0Vm6lH;7?Kp_&PtG!7Lb0HQ>;rHDx^VnuLGOKVe!g Date: Wed, 12 Nov 2025 23:16:52 -0800 Subject: [PATCH 12/13] Compatibility--keyword action names --- lispusers/TEDIT-PF-SEE | 239 ++++++++++++++++++++---------------- lispusers/TEDIT-PF-SEE.LCOM | Bin 5498 -> 6127 bytes 2 files changed, 131 insertions(+), 108 deletions(-) diff --git a/lispusers/TEDIT-PF-SEE b/lispusers/TEDIT-PF-SEE index fef23770c..89637de6e 100644 --- a/lispusers/TEDIT-PF-SEE +++ b/lispusers/TEDIT-PF-SEE @@ -1,25 +1,23 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "29-Jul-2025 22:01:56"  -{DSK}kaplan>Local>medley3.5>working-medley>lispusers>TEDIT-PF-SEE.;150 11962 +(FILECREATED "12-Nov-2025 15:49:07" {WMEDLEY}TEDIT-PF-SEE.;156 13422 :EDIT-BY rmk - :CHANGES-TO (FNS PF-TEDIT) + :CHANGES-TO (VARS TEDIT-PF-SEECOMS) - :PREVIOUS-DATE "29-Jul-2025 18:07:48" -{DSK}kaplan>Local>medley3.5>working-medley>lispusers>TEDIT-PF-SEE.;149) + :PREVIOUS-DATE "26-Sep-2025 22:53:59" {WMEDLEY}TEDIT-PF-SEE.;155) (PRETTYCOMPRINT TEDIT-PF-SEECOMS) (RPAQQ TEDIT-PF-SEECOMS [(FNS PF-TEDIT PF-TEDIT-FROM-TEXT) - (COMMANDS ts tf) + (COMMANDS ts tf tc tv tr) (FILES (SYSLOAD) REGIONMANAGER VERSIONDEFS) - (ALISTS (TEDIT.CHARACTIONS TEDIT-PF) - (TEDIT.CHARBINDINGS TEDIT-PF)) + (ALISTS (TEDIT.CHARACTIONS :TEDIT-PF) + (TEDIT.CHARBINDINGS :TEDIT-PF)) (P (MOVD? 'PFCOPYBYTES 'PFI.MAYBE.PP.DEFINITION) (MOVD? 'NILL (FUNCTION TEDIT.SETFUNCTION)) (TEDIT.INSTALL.CHARBINDINGS)) @@ -29,7 +27,9 @@ (DEFINEQ (PF-TEDIT - [LAMBDA (FN IFILES VERSION REPRINT) (* ; "Edited 29-Jul-2025 22:01 by rmk") + [LAMBDA (ITEM IFILES VERSION REPRINT TYPE) (* ; "Edited 23-Sep-2025 11:24 by rmk") + (* ; "Edited 20-Sep-2025 08:56 by rmk") + (* ; "Edited 29-Jul-2025 22:01 by rmk") (* ; "Edited 29-Jun-2025 16:18 by rmk") (* ; "Edited 14-Apr-2025 22:00 by rmk") (* ; "Edited 26-Mar-2025 10:08 by rmk") @@ -46,24 +46,24 @@ (* ; "Edited 12-Jan-2022 13:15 by rmk") (* ; "Edited 30-Dec-2021 23:17 by rmk") - (* ;; "PF* to a read-only TEDIT window. First argument is the function name, second if given is the input file.") + (* ;; "Shows ITEM of type TYPE in a scrollable read-only TEDIT window. First argument is the item name, second if given is the input file.") - (* ;; "This uses PFCOPYBYTES so we see what it looks like on the file. But some functions were not prettyprinted, so they appear as useless garbage.") - - (* ;; "In that case, calling again with REPRINT=T will read and reprint. And, invoking tf again with no arguments at all will also reprint the last function in the same window") + (* ;; "Calling again with REPRINT=T (or ITEM=T) will read and reprint the same item. And, calling again with no arguments at all will also reprint the last item in the same window") (SETQ IFILES (MKLIST IFILES)) - (CL:WHEN (LISTP FN) - (SETQ FN (CAR FN))) - (SELECTQ FN + (CL:WHEN (INTERSECTION TYPE '(FNS FUNCTIONS)) + (SETQ TYPE NIL)) + (CL:WHEN (INTERSECTION TYPE '(FNS FUNCTIONS)) + (SETQ TYPE NIL)) + (SELECTQ ITEM ((t T NIL) (SETQ REPRINT T) - (SETQ FN LASTWORD)) - (if (VERSIONP FN) - then (SETQ IFILES (CONS FN)) - (SETQ FN LASTWORD) - else (SETQ LASTWORD FN))) - (CL:UNLESS FN (ERROR "No function to print")) + (SETQ ITEM LASTWORD)) + (if (VERSIONP ITEM) + then (SETQ IFILES (CONS ITEM)) + (SETQ ITEM LASTWORD) + else (SETQ LASTWORD ITEM))) + (CL:UNLESS ITEM (ERROR "No function to print")) (CL:WHEN (AND (VERSIONP IFILES) (NULL VERSION)) (SETQ VERSION IFILES) @@ -73,91 +73,107 @@ (SETQ REPRINT T) [SETQ IFILES (LDIFFERENCE IFILES '(t T]) (CL:UNLESS IFILES - (SETQ IFILES (WHEREIS FN '(FNS FUNCTIONS) - T))) + [SETQ IFILES (OR (WHEREIS ITEM TYPE T) + (AND (NULL TYPE) + (WHEREIS ITEM 'MACROS T]) (if IFILES - then (* ; "skip compiled files") - - (* ;; "Since we are creating readonly Tedits, try to keep the TTY where it is.") - - (for IFILE LOC TSTREAM ENV EXPR TFPROP WINDOW inside IFILES - eachtime (CL:IF (VERSIONP IFILE) - (SETQ IFILE (FINDFILEVERSION (CAR (WHEREIS FN NIL T)) - IFILE))) unless (MEMB (FILENAMEFIELD IFILE 'EXTENSION) - *COMPILED-EXTENSIONS*) - do - (SETQ LOC (FINDFNDEF FN IFILE)) - (if (LISTP LOC) - then (SETQ TFPROP (LIST FN (CAR LOC))) - [SETQ WINDOW (find W in (OPENWINDOWS) - suchthat (AND (EQUAL TFPROP (WINDOWPROP W 'TF)) - (TEXTSTREAM W T] - [if (AND WINDOW (NOT REPRINT)) - then - (* ;; - "If already an open PF window on this function in this file, just raise it to the top") - - (TOTOPW WINDOW) - (RETURN) - else (CL:WITH-OPEN-FILE - (ISTREAM (POP LOC) - :DIRECTION :INPUT) - (SETQ ENV (LISPSOURCEFILEP ISTREAM)) - (SETFILEINFO ISTREAM 'FORMAT ENV) - [SETQ TSTREAM (OPENTEXTSTREAM - NIL NIL `(PARABREAKCHARS NIL OPENWIDTH - ,(TIMES TEDIT.SOURCE.LINELENGTH - (CHARWIDTH (CHARCODE SPACE) - DEFAULTFONT] - (DSPFONT DEFAULTFONT TSTREAM) - (PRINTOUT TSTREAM 5 "[From " (FULLNAME ISTREAM) - "]" T) - (PRINT-READER-ENVIRONMENT ENV TSTREAM) - (if REPRINT - then (SETFILEPTR ISTREAM (POP LOC)) - (SETQ EXPR (WITH-READER-ENVIRONMENT ENV (READ ISTREAM))) - (WITH-READER-ENVIRONMENT ENV - (if (EQ FN (CAR EXPR)) - then (DSPFONT BOLDFONT TSTREAM) - (PRINT FN TSTREAM) - (DSPFONT DEFAULTFONT TSTREAM) - (SETQ EXPR (CADR EXPR)) - (PRINTDEF EXPR 3 T NIL NIL TSTREAM) - elseif (EQ FN (CADR EXPR)) - then - (* ;; - "Presumably a DEFUN. Print the CAR, boldface the cadr") - - (PRINTOUT TSTREAM "(" .P2 (CAR EXPR) - " " .FONT BOLDFONT .P2 (CADR EXPR) - .FONT DEFAULTFONT " " .P2 (CADDR EXPR) - T 3) - (PRINTDEF (CDDDR EXPR) - 3 T T NIL TSTREAM) - (PRIN3 ")" TSTREAM) - else (PRINTDEF EXPR 3 NIL NIL NIL TSTREAM))) - else (PFI.MAYBE.PP.DEFINITION ISTREAM TSTREAM (POP LOC) - (POP LOC))) - (TERPRI TSTREAM) - [TEDIT TSTREAM (OR WINDOW 'TF) - NIL - `(READONLY T TITLE ,(CONCAT FN " from " (FULLNAME ISTREAM)) - ITEM-NAME - ,FN BOUNDTABLE ,(TEDIT.ATOMBOUND.READTABLE *READTABLE*] - - (* ;; "The windowprop allows for reprinting as a window action, or reprinting from a command that can find and reuse the previous (presumably unprettied) window.") - - (WINDOWPROP (WFROMDS TSTREAM) - 'TF TFPROP) - (TOTOPW (WFROMDS TSTREAM] - elseif (EQ LOC 'FILE.NOT.FOUND) - then (printout T "file " IFILE " not found." T) - else (printout T FN " not found on " LOC "." T))) - (SETQ *LAST-DF* FN) - else (PRINTOUT T FN " has no function definition" T]) + then (for IFILE TSTREAM DEF TFPROP WINDOW inside IFILES + eachtime (SETQ IFILE (if (CL:IF (VERSIONP IFILE) + (FINDFILEVERSION (CAR (WHEREIS ITEM TYPE T)) + IFILE) + (FINDFILE IFILE T)) + else (printout T "file " IFILE " not found." T) + (GO $$ITERATE))) unless (MEMB (FILENAMEFIELD IFILE + 'EXTENSION) + *COMPILED-EXTENSIONS*) + do (CL:UNLESS [SETQ DEF (CL:IF TYPE + (GETDEF ITEM TYPE IFILE 'NOERROR) + (OR (GETDEF ITEM 'FNS IFILE 'NOERROR) + (GETDEF ITEM 'FUNCTIONS IFILE 'NOERROR) + (GETDEF ITEM 'MACROS IFILE 'NOERROR)))] + (printout T ITEM " not found on " IFILE "." T) + (GO $$ITERATE)) + + (* ;; "We found ITEM of TYPE on IFILE") + + (SETQ TFPROP (LIST ITEM TYPE IFILE)) + [SETQ WINDOW (find W in (OPENWINDOWS) + suchthat (AND (EQUAL TFPROP (WINDOWPROP W 'TF)) + (TEXTSTREAM W T] + (CL:WHEN (AND WINDOW (NOT REPRINT)) + + (* ;; + "If already an open window on this item in this file, just raise it to the top") + + (TOTOPW WINDOW) + (RETURN)) + [SETQ TSTREAM (OPENTEXTSTREAM NIL NIL + `(PARABREAKCHARS NIL OPENWIDTH + ,(TIMES TEDIT.SOURCE.LINELENGTH (CHARWIDTH + (CHARCODE SPACE) + DEFAULTFONT] + (CL:WITH-OPEN-FILE (ISTREAM IFILE :DIRECTION :INPUT) + (* ; "Print the reader environment") + (PRINTOUT TSTREAM .FONT DEFAULTFONT 5) + (PRINT-READER-ENVIRONMENT (LISPSOURCEFILEP ISTREAM) + TSTREAM)) + (DSPFONT DEFAULTFONT TSTREAM) + [if (FNTYP DEF) + then (PRINTOUT TSTREAM "(" .FONT BOLDFONT .P2 ITEM " " .FONT DEFAULTFONT) + (PRINTDEF DEF 3 T NIL NIL TSTREAM) + (PRIN3 ")" TSTREAM) + elseif (SELECTQ (CAR DEF) + ((CL:DEFUN DEFMACRO) (* ; "Could look at :DEFINITION-NAME for definers in general, but we still have to pick out the arguments here (CADDR).") + (PRINTOUT TSTREAM "(" .P2 (CAR DEF) + " " .FONT BOLDFONT .P2 (CADR DEF) + .FONT DEFAULTFONT " " .P2 (CADDR DEF)) + (PRINTDEF (CDDDR DEF) + 3 T T NIL TSTREAM) + (PRIN3 ")" TSTREAM)) + (if (EQ ITEM (CAR DEF)) + then (PRINTOUT TSTREAM "(" .FONT BOLDFONT .P2 ITEM .FONT + DEFAULTFONT) + (PRINTDEF (CADR DEF) + 3 + (NOT TYPE) + NIL NIL TSTREAM) + (PRIN3 ")" TSTREAM) + elseif (EQ ITEM (CADR DEF)) + then (PRINTOUT TSTREAM "(" .P2 (CAR DEF) + " " .FONT BOLDFONT .P2 ITEM .FONT DEFAULTFONT) + (PRINTDEF (CDDR DEF) + 3 + (NEQ TYPE 'VARS) + T NIL TSTREAM) + (PRIN3 ")" TSTREAM) + else (PRINTOUT TSTREAM .FONT BOLDFONT .P2 ITEM ":" .FONT + DEFAULTFONT) + (PRINTDEF DEF 3 (NOT TYPE) + NIL NIL TSTREAM] + (TERPRI TSTREAM) + + (* ;; "Since we are creating readonly Tedits, try to keep the TTY where it is.") + + [TEDIT TSTREAM (OR WINDOW 'TF) + NIL + `(READONLY T TITLE ,(CONCAT ITEM " from " IFILE) + ITEM-NAME + ,ITEM BOUNDTABLE ,(TEDIT.ATOMBOUND.READTABLE *READTABLE*] + + (* ;; "The windowprop allows for reprinting as a window action, or reprinting from a command that can find and reuse the previous (presumably unprettied) window.") + + (WINDOWPROP (WFROMDS TSTREAM) + 'TF TFPROP) + (TOTOPW (WFROMDS TSTREAM))) + (SETQ *LAST-DF* ITEM) + else (PRINTOUT T ITEM " has no " (CL:IF TYPE + (L-CASE TYPE) + "function") + " definition" T]) (PF-TEDIT-FROM-TEXT - [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 14-Apr-2025 21:59 by rmk") + [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 23-Sep-2025 23:28 by rmk") + (* ; "Edited 14-Apr-2025 21:59 by rmk") (* ; "Edited 7-Apr-2025 23:03 by rmk") (* ; "Edited 5-Dec-2024 22:20 by rmk") (* ; "Edited 26-Aug-2024 23:13 by rmk") @@ -175,7 +191,7 @@ ALLFILES) (if (EQ 0 (NCHARS FN)) then (TEDIT.PROMPTPRINT TSTREAM "Please select a function to display" T) - elseif (SETQ ALLFILES (WHEREIS FN '(FNS FUNCTIONS) + elseif (SETQ ALLFILES (WHEREIS FN '(FNS FUNCTIONS MACROS) T)) then (PF-TEDIT FN (CAR (OR (MEMB (FILENAMEFIELD THISFILE) ALLFILES) @@ -197,12 +213,19 @@ (DEFCOMMAND tf (FN FILE VERSION) (PF-TEDIT FN FILE VERSION)) +(DEFCOMMAND tc (ITEM FILE VERSION) (PF-TEDIT (FILECOMS ITEM) + FILE VERSION T 'VARS)) + +(DEFCOMMAND tv (ITEM FILE VERSION) (PF-TEDIT ITEM FILE VERSION T 'VARS)) + +(DEFCOMMAND tr (ITEM FILE VERSION) (PF-TEDIT ITEM FILE VERSION T 'RECORDS)) + (FILESLOAD (SYSLOAD) REGIONMANAGER VERSIONDEFS) -(ADDTOVAR TEDIT.CHARACTIONS (TEDIT-PF PF-TEDIT-FROM-TEXT)) +(ADDTOVAR TEDIT.CHARACTIONS (:TEDIT-PF PF-TEDIT-FROM-TEXT)) -(ADDTOVAR TEDIT.CHARBINDINGS (TEDIT-PF "Meta,t" "Meta,T")) +(ADDTOVAR TEDIT.CHARBINDINGS (:TEDIT-PF "Meta,t" "Meta,T")) (MOVD? 'PFCOPYBYTES 'PFI.MAYBE.PP.DEFINITION) @@ -218,5 +241,5 @@ (ADDTOVAR LAMA ) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (1080 10900 (PF-TEDIT 1090 . 9166) (PF-TEDIT-FROM-TEXT 9168 . 10898))))) + (FILEMAP (NIL (1018 12068 (PF-TEDIT 1028 . 10218) (PF-TEDIT-FROM-TEXT 10220 . 12066))))) STOP diff --git a/lispusers/TEDIT-PF-SEE.LCOM b/lispusers/TEDIT-PF-SEE.LCOM index e8009bfcf989b770d3473188de808724114d460f..71170a2ae87a7796392a71b7fb1763ef69877fa1 100644 GIT binary patch literal 6127 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 literal 5498 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 ir9lkB3`fhk2>-vb Date: Thu, 13 Nov 2025 00:43:31 -0800 Subject: [PATCH 13/13] SEDIT-COMMANDS: Shift-DELELETE is wordelete.backwards --- sources/SEDIT-COMMANDS | 425 +++++++++++++++++------------------ sources/SEDIT-COMMANDS.DFASL | Bin 52976 -> 52764 bytes 2 files changed, 205 insertions(+), 220 deletions(-) diff --git a/sources/SEDIT-COMMANDS b/sources/SEDIT-COMMANDS index 873ddfa00..1a35d0837 100644 --- a/sources/SEDIT-COMMANDS +++ b/sources/SEDIT-COMMANDS @@ -1,14 +1,13 @@ (DEFINE-FILE-INFO PACKAGE (DEFPACKAGE SEDIT (USE LISP XCL)) READTABLE "XCL" BASE 10) -(IL:FILECREATED "15-Aug-2021 21:22:22"  -IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;7| 125181 - IL:|changes| IL:|to:| (IL:VARS IL:SEDIT-COMMANDSCOMS) +(IL:FILECREATED "13-Nov-2025 00:19:24" IL:|{WMEDLEY}SEDIT-COMMANDS.;5| 124301 - IL:|previous| IL:|date:| "14-Aug-2021 12:59:29" -IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) + :EDIT-BY IL:|rmk| + :CHANGES-TO (IL:VARIABLES COMMAND-TABLE-SPEC) + + :PREVIOUS-DATE "13-Nov-2025 00:14:31" IL:|{WMEDLEY}SEDIT-COMMANDS.;4|) -; Copyright (c) 1986-1988, 1990-1991, 2018, 2021 by Venue & Xerox Corporation. (IL:PRETTYCOMPRINT IL:SEDIT-COMMANDSCOMS) @@ -30,18 +29,18 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) IL:\; < > IL:\.)))) (IL:FUNCTIONS - (IL:* IL:|;;| "pseudo-selections") + (IL:* IL:|;;| "pseudo-selections") PSEUDO-SELECTION-FROM-SELECTION COMPOSE-PSEUDO-SELECTION DECOMPOSE-PSEUDO-SELECTION SELECTION-FROM-PSEUDO-SELECTION SELECT-PSEUDO-SEGMENT) - (IL:* IL:|;;| "user interface to adding new commands") + (IL:* IL:|;;| "user interface to adding new commands") (IL:FUNCTIONS ADD-COMMAND GET-SELECTION REPLACE-SELECTION RESET-COMMANDS DEFAULT-COMMANDS) (IL:VARIABLES DEFAULT-COMMAND-TABLE-SPEC FIRST-ADD-COMMAND FIRST-ADD-COMMAND-MENU-ENTRY) (IL:FUNCTIONS - (IL:* IL:|;;| "building help menu") + (IL:* IL:|;;| "building help menu") EQUALIZE-STRING-WIDTHS MINIMUM-STRING-WIDTH MAXIMUM-STRING-WIDTH) (IL:FUNCTIONS FIND-AND-DISPLAY-STRUCTURE FIND-AND-DISPLAY-STRUCTURE-BACKWARDS @@ -65,8 +64,8 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (IL:PUTPROPS IL:SEDIT-COMMANDS IL:FILETYPE :COMPILE-FILE) (IL:PUTPROPS IL:SEDIT-COMMANDS IL:MAKEFILE-ENVIRONMENT (:READTABLE "XCL" :PACKAGE - (DEFPACKAGE IL:SEDIT - (:USE IL:LISP IL:XCL)))) + (DEFPACKAGE IL:SEDIT (:USE IL:LISP + IL:XCL)))) (IL:DECLARE\: IL:DOEVAL@COMPILE IL:DONTCOPY (IL:LOCALVARS . T) @@ -78,10 +77,10 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFPARAMETER COMMAND-TABLE-SPEC -(IL:* IL:|;;;| "each entry in the COMMAND-TABLE-SPEC should be of the form: ( +) where is an atom function name or a list whose car is the function name and the rest are the extra arguments (beyond context and charcode), is a list of strings for the name, key-name, and help-string, is T if the caret should be normalized after this command, and + is one or more key specifier which can be passed to charcode (if non-list) or whose car is a termtable syntax (if a list).") +(IL:* IL:|;;;| "each entry in the COMMAND-TABLE-SPEC should be of the form: ( +) where is an atom function name or a list whose car is the function name and the rest are the extra arguments (beyond context and charcode), is a list of strings for the name, key-name, and help-string, is T if the caret should be normalized after this command, and + is one or more key specifier which can be passed to charcode (if non-list) or whose car is a termtable syntax (if a list).") '( - (IL:* IL:|;;| "STRUCTURE CONTROL") + (IL:* IL:|;;| "STRUCTURE CONTROL") (INSERT-NULL-LIST NIL T (IL:LEFTPAREN)) (CLOSE-LIST NIL NIL (IL:RIGHTPAREN)) @@ -104,7 +103,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) ((INPUT-QUOTE COMMA-AT) NIL NIL "@") - (IL:* IL:|;;| "EDIT CONTROL") + (IL:* IL:|;;| "EDIT CONTROL") (DELETE-SELECTION NIL T IL:DEL) (BACKSPACE NIL T IL:BS "^A") @@ -114,7 +113,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) ((VERIFY-STRUCTURE NIL T NIL) NIL NIL "Meta,^L") - (IL:* IL:|;;| "COMPLETION") + (IL:* IL:|;;| "COMPLETION") ((COMPLETE :ABORT NIL) ("Abort" "M-A" "Complete this edit without installing changes.") @@ -134,14 +133,14 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) ("Done, Compile, & Close" "C-M-C" "Complete this edit, compile, and close the window.") NIL "Meta,^C") - (IL:* IL:|;;| "COMMANDS") + (IL:* IL:|;;| "COMMANDS") (NULL ("" "" "") NIL 0) (UNDO ("Undo" "M-U" "Undo the last change made.") - NIL "Meta,U" "Meta,u" "Function,^D" (UNDO)) + NIL "Meta,U" "Meta,u" "Function,^D" (UNDO)) (REDO ("Redo" "M-R" "Redo the last change undone.") - NIL "Meta,R" "Meta,r" "Function,Bs" (REDO)) + NIL "Meta,R" "Meta,r" "Function,Bs" (REDO)) (NULL ("" "" "") NIL 0) (FIND-OBJ ("Find" "M-F" "Find the current selection, or prompt for structure to Find.") @@ -161,7 +160,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (EDIT-HELP ("Arglist" "M-H" "Show the argument list for the selected function.") NIL "Meta,H" "Meta,h" "Function,^A" (ARGLIST)) (CONVERT-COMMENT ("Convert Comment" "M-;" - "Convert the old style comments in the current selection.") + "Convert the old style comments in the current selection.") NIL "Meta,;") (COMMENT-OUT-SELECTION NIL NIL "Meta,^;") (EDIT-SELECTION ("Edit" "M-O" "Edit the definition of the current selection.") @@ -173,13 +172,13 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) NIL "Meta,E" "Meta,e" (EVAL)) (EXPAND ("Expand" "M-X" "Replace the current selection with its definition.") NIL "Meta,X" "Meta,x" IL:ESC "Function,^T" (EXPAND)) - (EXTRACT-CURRENT-SELECTION ("Extract" "M-/" - "Extract one level of structure: unquote or unlist.") + (EXTRACT-CURRENT-SELECTION ("Extract" "M-/" "Extract one level of structure: unquote or unlist." + ) NIL "Meta,/" (EXTRACT)) (INSPECT-SELECTION ("Inspect" "M-I" "Inspect the current selection.") NIL "Meta,I" "Meta,i" (INSPECT)) (JOIN ("Join" "M-J" "Join selected items together.") - NIL "Meta,J" "Meta,j" (JOIN)) + NIL "Meta,J" "Meta,j" (JOIN)) (MUTATE ("Mutate" "M-Z" "Prompt for a function to operate on the current selection.") NIL "Meta,Z" "Meta,z") ((PARENTHESIZE-CURRENT-SELECTION NIL) @@ -209,7 +208,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (ADD-MENU ("Attach Menu" "M-M" "Attach a command menu.") NIL "Meta,M" "Meta,m") - (IL:* IL:|;;| "RANDOM: tells Meta-Space or Meta-Return to scroll to the selection, using the auto-scroller for free.") + (IL:* IL:|;;| "RANDOM: tells Meta-Space or Meta-Return to scroll to the selection, using the auto-scroller for free.") (TRUE NIL T "Meta, " "Meta,CR"))) @@ -269,19 +268,18 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (IL:RPAQ? MENUS NIL) (IL:DECLARE\: IL:EVAL@COMPILE -(IL:RPAQ WORD-DELIM-CHARS (IL:CHARCODE (IL:SPACE IL:CR IL:TAB - IL:{ IL:} IL:[ IL:] IL:\; < > - IL:\.))) +(IL:RPAQ WORD-DELIM-CHARS (IL:CHARCODE (IL:SPACE IL:CR IL:TAB - IL:{ IL:} IL:[ IL:] IL:\; < > IL:\.))) -(IL:CONSTANTS (WORD-DELIM-CHARS (IL:CHARCODE (IL:SPACE IL:CR IL:TAB - IL:{ IL:} IL:[ IL:] IL:\; < - > IL:\.)))) +(IL:CONSTANTS (WORD-DELIM-CHARS (IL:CHARCODE (IL:SPACE IL:CR IL:TAB - IL:{ IL:} IL:[ IL:] IL:\; < > + IL:\.)))) ) (DEFUN PSEUDO-SELECTION-FROM-SELECTION (SEL) -(IL:* IL:|;;;| "A pseudo-selection is either a node or a list of a node and two integers. It's interpreted as the select-node, select-start, and select-end fields of a selection.") +(IL:* IL:|;;;| "A pseudo-selection is either a node or a list of a node and two integers. It's interpreted as the select-node, select-start, and select-end fields of a selection.") -(IL:* IL:|;;;| "This function takes a selection and creates a pseudo selection from it.") +(IL:* IL:|;;;| "This function takes a selection and creates a pseudo selection from it.") (COMPOSE-PSEUDO-SELECTION (IL:FETCH SELECT-NODE IL:OF SEL) (IL:FETCH SELECT-START IL:OF SEL) @@ -290,9 +288,9 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN COMPOSE-PSEUDO-SELECTION (NODE &OPTIONAL START END) -(IL:* IL:|;;;| "A pseudo-selection is either a node or a list of a node and two integers. It's interpreted as the select-node, select-start, and select-end fields of a selection.") +(IL:* IL:|;;;| "A pseudo-selection is either a node or a list of a node and two integers. It's interpreted as the select-node, select-start, and select-end fields of a selection.") -(IL:* IL:|;;;| "This function takes the fields of a pseudo selection and hands back one.") +(IL:* IL:|;;;| "This function takes the fields of a pseudo selection and hands back one.") (COND ((LISTP NODE) @@ -308,9 +306,9 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN DECOMPOSE-PSEUDO-SELECTION (PSEL) -(IL:* IL:|;;;| "A pseudo-selection is either a node or a list of a node and two integers. It's interpreted as the select-node, select-start, and select-end fields of a selection.") +(IL:* IL:|;;;| "A pseudo-selection is either a node or a list of a node and two integers. It's interpreted as the select-node, select-start, and select-end fields of a selection.") -(IL:* IL:|;;;| "This function takes a pseudo selection and hands its fields back as values.") +(IL:* IL:|;;;| "This function takes a pseudo selection and hands its fields back as values.") (IF (LISTP PSEL) (VALUES (FIRST PSEL) @@ -322,9 +320,9 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN SELECTION-FROM-PSEUDO-SELECTION (PSEL &OPTIONAL SEL) -(IL:* IL:|;;;| "A pseudo-selection is either a node or a list of a node and two integers. It's interpreted as the select-node, select-start, and select-end fields of a selection.") +(IL:* IL:|;;;| "A pseudo-selection is either a node or a list of a node and two integers. It's interpreted as the select-node, select-start, and select-end fields of a selection.") -(IL:* IL:|;;;| "This function takes a pseudo-selection and constructs the corresponding selection. If you don't hand it a selection structure, it conses one.") +(IL:* IL:|;;;| "This function takes a pseudo-selection and constructs the corresponding selection. If you don't hand it a selection structure, it conses one.") (UNLESS SEL (SETF SEL (IL:CREATE EDIT-SELECTION))) @@ -350,13 +348,13 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN ADD-COMMAND (KEY-CODE FORM &OPTIONAL SCROLL? KEY-NAME COMMAND-NAME HELP-STRING) (WHEN FIRST-ADD-COMMAND - (IL:* IL:|;;| "cache the command-table-spec so the user can undo this!") + (IL:* IL:|;;| "cache the command-table-spec so the user can undo this!") (SETQ DEFAULT-COMMAND-TABLE-SPEC (COPY-TREE COMMAND-TABLE-SPEC)) (SETQ FIRST-ADD-COMMAND NIL)) (WHEN (AND KEY-NAME COMMAND-NAME FIRST-ADD-COMMAND-MENU-ENTRY) - (IL:* IL:|;;| "add another separation line to the help menu.") + (IL:* IL:|;;| "add another separation line to the help menu.") (NCONC COMMAND-TABLE-SPEC (LIST (LIST 'NULL (LIST "-----" "" "") NIL 0))) @@ -366,8 +364,8 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) SCROLL? KEY-CODE))) (OR COMMAND-NAME FORM)) -(DEFUN GET-SELECTION (CONTEXT) (IL:* IL:\; "Edited 23-Apr-2018 18:11 by rmk:") - (IL:* IL:\; "Edited 22-Apr-2018 16:48 by rmk:") +(DEFUN GET-SELECTION (CONTEXT) (IL:* IL:\; "Edited 23-Apr-2018 18:11 by rmk:") + (IL:* IL:\; "Edited 22-Apr-2018 16:48 by rmk:") (LET* ((SELECTION (IL:FETCH SELECTION IL:OF CONTEXT)) (NODE (IL:FETCH SELECT-NODE IL:OF SELECTION)) (CHARS (IL:FETCH STRUCTURE IL:OF NODE)) @@ -377,7 +375,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (TYPE (IL:FETCH SELECT-TYPE IL:OF SELECTION)) NOT-ALL-SELECTED) - (IL:* IL:|;;| "All except NODE are needed for the atom/string cases") + (IL:* IL:|;;| "All except NODE are needed for the atom/string cases") (COND ((NULL NODE) @@ -388,7 +386,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (START :SUB-LIST) (T T)))) (T - (IL:* IL:|;;| "RMK: a single character-atom or a substring of characters in an atom or string. Full multicharacter atoms are structures. Code copies from COPY-SELECTION-LITATOM") + (IL:* IL:|;;| "RMK: a single character-atom or a substring of characters in an atom or string. Full multicharacter atoms are structures. Code copies from COPY-SELECTION-LITATOM") (WHEN (IL:TYPE? BROKEN-ATOM CHARS) (IL:SETQ CHARS (IL:FETCH ATOM-CHARS IL:OF CHARS))) @@ -396,7 +394,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (IL:NCHARS STRING)) (IL:NEQ START 1))) - (IL:* IL:|;;| "some subset of the atom/string has been selected") + (IL:* IL:|;;| "some subset of the atom/string has been selected") (IL:SETQ NOT-ALL-SELECTED T)) (VALUES (IL:MKSTRING (IF NOT-ALL-SELECTED @@ -428,16 +426,14 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (PENDING-DELETE POINT SELECTION) (INSERT POINT CONTEXT (COPY-LIST NEW-NODES)) - (IL:* IL:|;;| "try to select the stuff that was just inserted.") + (IL:* IL:|;;| "try to select the stuff that was just inserted.") (SELECT-PSEUDO-SEGMENT CONTEXT (COMPOSE-PSEUDO-SELECTION NEW-NODES)))) (DEFUN RESET-COMMANDS () (LET ((COMMANDS (CREATE-COMMAND-TABLE COMMAND-TABLE-SPEC))) - (IL:REPLACE (EDIT-ENV COMMAND-TABLE) IL:OF LISP-EDIT-ENVIRONMENT IL:WITH - (FIRST COMMANDS)) - (IL:REPLACE (EDIT-ENV HELP-MENU) IL:OF LISP-EDIT-ENVIRONMENT IL:WITH (SECOND - COMMANDS))) + (IL:REPLACE (EDIT-ENV COMMAND-TABLE) IL:OF LISP-EDIT-ENVIRONMENT IL:WITH (FIRST COMMANDS)) + (IL:REPLACE (EDIT-ENV HELP-MENU) IL:OF LISP-EDIT-ENVIRONMENT IL:WITH (SECOND COMMANDS))) T) (DEFUN DEFAULT-COMMANDS () @@ -456,13 +452,12 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) "Used in Add-Command to signal the first time a new command is added to the middle button menu, so that the user entries can be separated from the default entries" ) -(DEFUN EQUALIZE-STRING-WIDTHS (STRING-LIST FONT &OPTIONAL PRIN2? (DESIRED-WIDTH ( - MAXIMUM-STRING-WIDTH - STRING-LIST FONT - PRIN2?)) - (PAD-CHAR #\Space)) +(DEFUN EQUALIZE-STRING-WIDTHS (STRING-LIST FONT &OPTIONAL PRIN2? (DESIRED-WIDTH (MAXIMUM-STRING-WIDTH + STRING-LIST FONT + PRIN2?)) + (PAD-CHAR #\Space)) -(IL:* IL:|;;;| "Increase the width of all the strings in STRING-LIST to DESIRED-WIDTH by padding them on the right with PAD-CHAR.") +(IL:* IL:|;;;| "Increase the width of all the strings in STRING-LIST to DESIRED-WIDTH by padding them on the right with PAD-CHAR.") (DO ((PAD-CHAR-WIDTH (IL:CHARWIDTH (CHAR-CODE PAD-CHAR) FONT)) @@ -488,7 +483,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN FIND-AND-DISPLAY-STRUCTURE (CONTEXT STR &OPTIONAL SCOPE START WRAP?) -(IL:* IL:|;;;| "Find structure and display it by selecting it (point after) and normalizing the selection in the window. SCOPE defaults to the root structure of the CONTEXT. The WRAP? flag says to wrap failing searches around and try them again (i.e., ignore start and try again).") +(IL:* IL:|;;;| "Find structure and display it by selecting it (point after) and normalizing the selection in the window. SCOPE defaults to the root structure of the CONTEXT. The WRAP? flag says to wrap failing searches around and try them again (i.e., ignore start and try again).") (LET* ((PROMPTWINDOW (GET-PROMPT-WINDOW CONTEXT)) (TOP (SUBNODE 1 (IL:FETCH ROOT IL:OF CONTEXT))) @@ -503,7 +498,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN FIND-AND-DISPLAY-STRUCTURE-BACKWARDS (CONTEXT STR &OPTIONAL SCOPE END WRAP?) -(IL:* IL:|;;;| "Like find-and-display-structure, but searches backwards") +(IL:* IL:|;;;| "Like find-and-display-structure, but searches backwards") (LET* ((PROMPTWINDOW (GET-PROMPT-WINDOW CONTEXT)) (TOP (SUBNODE 1 (IL:FETCH ROOT IL:OF CONTEXT))) @@ -518,7 +513,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN FIND-AND-DISPLAY-SUBSTRUCTURE (CONTEXT STR &OPTIONAL SCOPE START WRAP?) -(IL:* IL:|;;;| "Find substructure and display it by selecting it (pending delete) and normalizing the selection in the window. SCOPE defaults to the root structure of the CONTEXT. The WRAP? flag says to wrap failing searches around and try them again (i.e., ignore start and try again).") +(IL:* IL:|;;;| "Find substructure and display it by selecting it (pending delete) and normalizing the selection in the window. SCOPE defaults to the root structure of the CONTEXT. The WRAP? flag says to wrap failing searches around and try them again (i.e., ignore start and try again).") (LET* ((PROMPTWINDOW (GET-PROMPT-WINDOW CONTEXT)) (TOP (SUBNODE 1 (IL:FETCH ROOT IL:OF CONTEXT))) @@ -533,7 +528,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN FIND-AND-DISPLAY-SUBSTRUCTURE-BACKWARDS (CONTEXT STR &OPTIONAL SCOPE END WRAP?) -(IL:* IL:|;;;| "Like find-and-display-substructure but searches backwards") +(IL:* IL:|;;;| "Like find-and-display-substructure but searches backwards") (LET* ((PROMPTWINDOW (GET-PROMPT-WINDOW CONTEXT)) (TOP (SUBNODE 1 (IL:FETCH ROOT IL:OF CONTEXT))) @@ -548,7 +543,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN FIND-NTH-STRUCTURE (CONTEXT CHARCODE STRUCTURE N) -(IL:* IL:|;;;| "Find the Nth occurance of Structure in this edit, always starting from the beginning. This function is used as an external command to set the selection to a desired structure. Find, select, and normalize.") +(IL:* IL:|;;;| "Find the Nth occurance of Structure in this edit, always starting from the beginning. This function is used as an external command to set the selection to a desired structure. Find, select, and normalize.") (LET ((TOP (SUBNODE 1 (IL:FETCH ROOT IL:OF CONTEXT)))) (DO ((M 1 (+ M 1)) @@ -561,13 +556,13 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN FIND-NODE-SUBSTRUCTURE (STR STRLEN NODE &OPTIONAL START END CONTINUATION?) -(IL:* IL:|;;;| "STR is a list of structures of length STRLEN. NODE, together with START and END (which are subnode indices), is taken to indicate a subtree. We return a pseudo-selection which selects the first sequence of sibling nodes in that subtree whose successive structures match the successive elements of STR.") +(IL:* IL:|;;;| "STR is a list of structures of length STRLEN. NODE, together with START and END (which are subnode indices), is taken to indicate a subtree. We return a pseudo-selection which selects the first sequence of sibling nodes in that subtree whose successive structures match the successive elements of STR.") -(IL:* IL:|;;;| "\"First\" here is taken to mean \"first in linearization order\", so we have to do a careful recursion which: (1a) recursively checks the subtree rooted at the START subnode of NODE (default the first), (1b) checks if the START subnode starts a matching sibling sequence, (2a) recursively checks the subtree rooted at the START+1 subnode of NODE, (2b) checks if the START+1 subnode starts a matching sibling sequence, . . ., (Na) recusively checks the subtree rooted at the END subnode of NODE (default the last), (Nb) checks if the END subnode starts a matching sibling sequence [note that such a sequence could be only 1 node long since END is the right end of the subtree being checked].") +(IL:* IL:|;;;| "\"First\" here is taken to mean \"first in linearization order\", so we have to do a careful recursion which: (1a) recursively checks the subtree rooted at the START subnode of NODE (default the first), (1b) checks if the START subnode starts a matching sibling sequence, (2a) recursively checks the subtree rooted at the START+1 subnode of NODE, (2b) checks if the START+1 subnode starts a matching sibling sequence, . . ., (Na) recusively checks the subtree rooted at the END subnode of NODE (default the last), (Nb) checks if the END subnode starts a matching sibling sequence [note that such a sequence could be only 1 node long since END is the right end of the subtree being checked].") -(IL:* IL:|;;;| "N.B. It might seem that, to get true linearization order, we should check to see if a node starts a matching sibling sequence before we check its subtree. But since node structures can not be circular, we know that if a match is found in the subtree below a node then that node could not have started a matching sequence.") +(IL:* IL:|;;;| "N.B. It might seem that, to get true linearization order, we should check to see if a node starts a matching sibling sequence before we check its subtree. But since node structures can not be circular, we know that if a match is found in the subtree below a node then that node could not have started a matching sequence.") -(IL:* IL:|;;;| "The CONTINUATION? flag means that we are continuing a search that has already recursively checked the START subnode, so we skip that particular recursion. This generally happens when we are working our way up and to the right in some subtree which has already been partially checked.") +(IL:* IL:|;;;| "The CONTINUATION? flag means that we are continuing a search that has already recursively checked the START subnode, so we skip that particular recursion. This generally happens when we are working our way up and to the right in some subtree which has already been partially checked.") (SETF START (OR START 1)) (LET* ((SUBNODES (IL:FETCH SUB-NODES IL:OF NODE)) @@ -593,7 +588,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN FIND-NODE-SUBSTRUCTURE-BACKWARDS (STR STRLEN NODE &OPTIONAL START END CONTINUATION?) -(IL:* IL:|;;;| "Like find-node-substructure but searches in reverse linearization order.") +(IL:* IL:|;;;| "Like find-node-substructure but searches in reverse linearization order.") (LET* ((SUBNODES (IL:FETCH SUB-NODES IL:OF NODE)) (SUBLENGTH (FIRST SUBNODES))) @@ -610,8 +605,8 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) ((OR (NULL SUBS) (AND START (< INDEX START))) NIL) - (WHEN (AND DOSUBS? (SETF MATCH (FIND-NODE-SUBSTRUCTURE-BACKWARDS STR STRLEN - (FIRST SUBS)))) + (WHEN (AND DOSUBS? (SETF MATCH (FIND-NODE-SUBSTRUCTURE-BACKWARDS STR STRLEN (FIRST SUBS))) + ) (RETURN MATCH)) (UNLESS (OR (< STARTINDEX 1) (MISMATCH STR SUBS :END2 STRLEN :TEST @@ -621,7 +616,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN FIND-OBJ (CONTEXT &OPTIONAL CHARCODE FIND-STRING BACKWARDS?) -(IL:* IL:|;;;| "Find either the passed structure, the selected structure, or a prompted-for structure. The search direction is forward unless BACKWARDS? is specified.") +(IL:* IL:|;;;| "Find either the passed structure, the selected structure, or a prompted-for structure. The search direction is forward unless BACKWARDS? is specified.") (CLOSE-OPEN-NODE CONTEXT) (LET ((SELECTION (IL:|fetch| SELECTION IL:|of| CONTEXT)) @@ -632,7 +627,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (EQ (IL:|fetch| SELECT-TYPE IL:|of| SELECTION) 'STRUCTURE)) - (IL:* IL:|;;| "there is a non-string selection") + (IL:* IL:|;;| "there is a non-string selection") (IF BACKWARDS? (FIND-SELECTION-BACKWARDS CONTEXT WRAP?) @@ -644,7 +639,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN FIND-SELECTION (CONTEXT &OPTIONAL WRAP?) -(IL:* IL:|;;;| "Find the next match of the current selection and display it.") +(IL:* IL:|;;;| "Find the next match of the current selection and display it.") (LET* ((PROMPTWINDOW (GET-PROMPT-WINDOW CONTEXT)) (SELECTION (IL:|fetch| SELECTION IL:|of| CONTEXT)) @@ -652,32 +647,31 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (START (IL:|fetch| SELECT-START IL:|of| SELECTION))) (IF START - (IL:* IL:|;;| "a sibling sequence is selected, look for a matching sequence after it") + (IL:* IL:|;;| "a sibling sequence is selected, look for a matching sequence after it") (FIND-AND-DISPLAY-SUBSTRUCTURE CONTEXT (STRUCTURE-FROM-SELECTION SELECTION) NIL (LIST NODE (1+ START)) WRAP?) - (IL:* IL:|;;| "a node is selected, look for a matching node ") + (IL:* IL:|;;| "a node is selected, look for a matching node ") (IF (SETF START (NEXT-NODE NODE T)) - (IL:* IL:|;;| "start the search with the following node") + (IL:* IL:|;;| "start the search with the following node") (FIND-AND-DISPLAY-STRUCTURE CONTEXT (STRUCTURE-FROM-SELECTION SELECTION) NIL START WRAP?) - (IL:* IL:|;;| "there are no more nodes, either wrap or give up") + (IL:* IL:|;;| "there are no more nodes, either wrap or give up") (IF WRAP? - (FIND-AND-DISPLAY-STRUCTURE CONTEXT (STRUCTURE-FROM-SELECTION SELECTION) - ) + (FIND-AND-DISPLAY-STRUCTURE CONTEXT (STRUCTURE-FROM-SELECTION SELECTION)) (FORMAT PROMPTWINDOW "~%At end; no more structure to search.")))))) (DEFUN FIND-SELECTION-BACKWARDS (CONTEXT &OPTIONAL WRAP?) -(IL:* IL:|;;;| "Find the previous match of the current selection and display it.") +(IL:* IL:|;;;| "Find the previous match of the current selection and display it.") (LET* ((PROMPTWINDOW (GET-PROMPT-WINDOW CONTEXT)) (SELECTION (IL:|fetch| SELECTION IL:|of| CONTEXT)) @@ -686,36 +680,34 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (IL:|fetch| SELECT-END IL:|of| SELECTION)))) (IF END - (IL:* IL:|;;| "a sibling sequence is selected, look for a matching sequence before it") + (IL:* IL:|;;| "a sibling sequence is selected, look for a matching sequence before it") - (FIND-AND-DISPLAY-SUBSTRUCTURE-BACKWARDS CONTEXT (STRUCTURE-FROM-SELECTION - SELECTION) + (FIND-AND-DISPLAY-SUBSTRUCTURE-BACKWARDS CONTEXT (STRUCTURE-FROM-SELECTION SELECTION) NIL (LIST NODE (1- END)) WRAP?) - (IL:* IL:|;;| "a node is selected, look for a matching node ") + (IL:* IL:|;;| "a node is selected, look for a matching node ") (IF (SETF END (PREV-NODE NODE T)) - (IL:* IL:|;;| "start the search with the previous node") + (IL:* IL:|;;| "start the search with the previous node") - (FIND-AND-DISPLAY-STRUCTURE-BACKWARDS CONTEXT (STRUCTURE-FROM-SELECTION - SELECTION) + (FIND-AND-DISPLAY-STRUCTURE-BACKWARDS CONTEXT (STRUCTURE-FROM-SELECTION SELECTION) NIL END WRAP?) - (IL:* IL:|;;| "there are no more nodes, either wrap or give up") + (IL:* IL:|;;| "there are no more nodes, either wrap or give up") (IF WRAP? - (FIND-AND-DISPLAY-STRUCTURE-BACKWARDS CONTEXT (STRUCTURE-FROM-SELECTION - SELECTION)) + (FIND-AND-DISPLAY-STRUCTURE-BACKWARDS CONTEXT (STRUCTURE-FROM-SELECTION + SELECTION)) (FORMAT PROMPTWINDOW "~%At beginning; no more structure to search.")))))) (DEFUN FIND-STRUCTURE (STR SCOPE &OPTIONAL START) -(IL:* IL:|;;;| "Search forward in linearization order for a node whose structure matches STR. The search is bounded by SCOPE (a pseudo-selection taken to indicate a subtree) and starts at START (a pseudo-selection taken to indicate its left-most node). START defaults to SCOPE. The return value is the first node in SCOPE at or after START whose structure is IL:EQUAL to STR.") +(IL:* IL:|;;;| "Search forward in linearization order for a node whose structure matches STR. The search is bounded by SCOPE (a pseudo-selection taken to indicate a subtree) and starts at START (a pseudo-selection taken to indicate its left-most node). START defaults to SCOPE. The return value is the first node in SCOPE at or after START whose structure is IL:EQUAL to STR.") -(IL:* IL:|;;;| "N.B. Since node structures can not be circular, no subnode of a node can have structure matching that node. Thus looking for a matching node in pre-order is the same as looking for one in linearization order. So we do a pre-order search here.") +(IL:* IL:|;;;| "N.B. Since node structures can not be circular, no subnode of a node can have structure matching that node. Thus looking for a matching node in pre-order is the same as looking for one in linearization order. So we do a pre-order search here.") (MULTIPLE-VALUE-BIND (SCOPE-NODE SCOPE-START SCOPE-END) (DECOMPOSE-PSEUDO-SELECTION SCOPE) @@ -727,11 +719,11 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (EQ START-NODE SCOPE-NODE))) (IL:EQUAL STR (IL:FETCH STRUCTURE IL:OF SCOPE-NODE))) - (IL:* IL:|;;| "special case: the scope includes its root node, we're starting at the root of the scope, and the root of the scope matches the passed structure.") + (IL:* IL:|;;| "special case: the scope includes its root node, we're starting at the root of the scope, and the root of the scope matches the passed structure.") (RETURN-FROM FIND-STRUCTURE SCOPE-NODE)) - (IL:* IL:|;;| "normal case: check all the nodes in the scope subtree in preorder.") + (IL:* IL:|;;| "normal case: check all the nodes in the scope subtree in preorder.") (DO* ((MIN-DEPTH (1+ (IL:FETCH DEPTH IL:OF SCOPE-NODE))) (NODE (OR (IF START-START @@ -755,7 +747,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN FIND-STRUCTURE-BACKWARDS (STR SCOPE &OPTIONAL END) -(IL:* IL:|;;;| "like find-structure but searches in reverse linearization order. Actually we search in postorder rather than reverse linearization order but this works just as well for the same reasons that preorder matches linearization order.") +(IL:* IL:|;;;| "like find-structure but searches in reverse linearization order. Actually we search in postorder rather than reverse linearization order but this works just as well for the same reasons that preorder matches linearization order.") (MULTIPLE-VALUE-BIND (SCOPE-NODE SCOPE-START SCOPE-END) (DECOMPOSE-PSEUDO-SELECTION SCOPE) @@ -767,12 +759,11 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (EQ END-NODE SCOPE-NODE))) (IL:EQUAL STR (IL:FETCH STRUCTURE IL:OF SCOPE-NODE))) - (IL:* IL:|;;| "special case: the scope includes its root node, we're ending at the root of the scope, and the root of the scope matches the passed structure.") + (IL:* IL:|;;| "special case: the scope includes its root node, we're ending at the root of the scope, and the root of the scope matches the passed structure.") (RETURN-FROM FIND-STRUCTURE-BACKWARDS SCOPE-NODE)) - (IL:* IL:|;;| - "normal case: check all the nodes in the scope subtree in postorder.") + (IL:* IL:|;;| "normal case: check all the nodes in the scope subtree in postorder.") (DO* ((MIN-DEPTH (1+ (IL:FETCH DEPTH IL:OF SCOPE-NODE))) (NODE (OR (IF END-END @@ -796,9 +787,9 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN FIND-SUBSTRUCTURE (STR SCOPE &OPTIONAL START) -(IL:* IL:|;;;| "Search forward in linearization order for a sequence of nodes whose successive structures match the successive elements of STR. The search is bounded by SCOPE (a pseudo-selection taken to indicate a subtree) and starts at START (a pseudo-selection taken to indicate the left edge of a subtree). START defauts to SCOPE. The return value is a pseudo-selection indicating the sibling sequence of nodes in SCOPE at or to the right of START whose successive node structures are IL:EQUAL to the successive members of STR.") +(IL:* IL:|;;;| "Search forward in linearization order for a sequence of nodes whose successive structures match the successive elements of STR. The search is bounded by SCOPE (a pseudo-selection taken to indicate a subtree) and starts at START (a pseudo-selection taken to indicate the left edge of a subtree). START defauts to SCOPE. The return value is a pseudo-selection indicating the sibling sequence of nodes in SCOPE at or to the right of START whose successive node structures are IL:EQUAL to the successive members of STR.") -(IL:* IL:|;;;| "N.B. For a sequence of sibling nodes, first in linearization order can not be found by doing a preorder search. See find-node-substructure for details about the correct search method.") +(IL:* IL:|;;;| "N.B. For a sequence of sibling nodes, first in linearization order can not be found by doing a preorder search. See find-node-substructure for details about the correct search method.") (MULTIPLE-VALUE-BIND (SCOPE-NODE SCOPE-START SCOPE-END) (DECOMPOSE-PSEUDO-SELECTION SCOPE) @@ -807,18 +798,18 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (COND ((NULL START-NODE) - (IL:* IL:|;;| "just check the entire scope") + (IL:* IL:|;;| "just check the entire scope") (FIND-NODE-SUBSTRUCTURE STR (LENGTH STR) SCOPE-NODE SCOPE-START SCOPE-END)) ((EQ START-NODE SCOPE-NODE) - (IL:* IL:|;;| "just check a terminal subtree of the scope") + (IL:* IL:|;;| "just check a terminal subtree of the scope") (FIND-NODE-SUBSTRUCTURE STR (LENGTH STR) SCOPE-NODE START-START SCOPE-END)) (T - (IL:* IL:|;;| "check each node from the start subtree up and to the right in the scope subtree. We carefully resume the recursion that would have happened if we had started from the root of the subtree. This means checking remaining structure in super-nodes on our way from the start node back up the subtree.") + (IL:* IL:|;;| "check each node from the start subtree up and to the right in the scope subtree. We carefully resume the recursion that would have happened if we had started from the root of the subtree. This means checking remaining structure in super-nodes on our way from the start node back up the subtree.") (DO ((NODE START-NODE SUPER-NODE) (SUPER-NODE (IL:FETCH SUPER-NODE IL:OF START-NODE) @@ -839,7 +830,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN FIND-SUBSTRUCTURE-BACKWARDS (STR SCOPE &OPTIONAL END) -(IL:* IL:|;;;| "Like find-substructure but searches in reverse linearization order.") +(IL:* IL:|;;;| "Like find-substructure but searches in reverse linearization order.") (MULTIPLE-VALUE-BIND (SCOPE-NODE SCOPE-START SCOPE-END) (DECOMPOSE-PSEUDO-SELECTION SCOPE) @@ -848,18 +839,18 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (COND ((NULL END-NODE) - (IL:* IL:|;;| "just check the entire scope") + (IL:* IL:|;;| "just check the entire scope") (FIND-NODE-SUBSTRUCTURE-BACKWARDS STR (LENGTH STR) SCOPE-NODE SCOPE-START SCOPE-END)) ((EQ END-NODE SCOPE-NODE) - (IL:* IL:|;;| "just check an initial subtree of the scope") + (IL:* IL:|;;| "just check an initial subtree of the scope") (FIND-NODE-SUBSTRUCTURE-BACKWARDS STR (LENGTH STR) SCOPE-NODE SCOPE-START END-END)) (T - (IL:* IL:|;;| "check each node in the initial subtree of scope terminated by the end subtree. We carefully resume the recursion that would have happened if we had started from the root of the scope subtree. This means checking remaining structure in super-nodes on our way from the end node back up the subtree.") + (IL:* IL:|;;| "check each node in the initial subtree of scope terminated by the end subtree. We carefully resume the recursion that would have happened if we had started from the root of the scope subtree. This means checking remaining structure in super-nodes on our way from the end node back up the subtree.") (DO ((NODE END-NODE SUPER-NODE) (SUPER-NODE (IL:FETCH SUPER-NODE IL:OF END-NODE) @@ -873,8 +864,8 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (STRLEN (LENGTH STR)) MATCH) ((OR (NULL NODE) - (SETF MATCH (FIND-NODE-SUBSTRUCTURE-BACKWARDS STR STRLEN NODE - START END CONTINUATION?)) + (SETF MATCH (FIND-NODE-SUBSTRUCTURE-BACKWARDS STR STRLEN NODE START + END CONTINUATION?)) (EQ NODE SCOPE-NODE)) MATCH))))))) @@ -885,15 +876,14 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN SEARCH-OBJ (CONTEXT &OPTIONAL SEARCH-STRING WRAP?) -(IL:* IL:|;;;| "Search for the the structure(s) in the string SEARCH-OBJ and display them. The search starts just after the current point or selection, if any.") +(IL:* IL:|;;;| "Search for the the structure(s) in the string SEARCH-OBJ and display them. The search starts just after the current point or selection, if any.") (MULTIPLE-VALUE-BIND (STR STRLEN) (STRUCTURE-FROM-STRING (OR SEARCH-STRING (SETF SEARCH-STRING - (GET-USER-STRING CONTEXT "Find: " - (OR (IL:|fetch| - FIND-CANDIDATE - IL:|of| CONTEXT) - FIND-CANDIDATE))))) + (GET-USER-STRING CONTEXT "Find: " + (OR (IL:|fetch| FIND-CANDIDATE + IL:|of| CONTEXT) + FIND-CANDIDATE))))) (COND ((< STRLEN 0) (FORMAT (GET-PROMPT-WINDOW CONTEXT) @@ -904,12 +894,12 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) "-- aborted.") (RETURN-FROM SEARCH-OBJ))) - (IL:* IL:|;;| "update the remembered defaults") + (IL:* IL:|;;| "update the remembered defaults") - (IL:|replace| FIND-CANDIDATE IL:|of| CONTEXT IL:|with| (IL:SETQ FIND-CANDIDATE - SEARCH-STRING)) + (IL:|replace| FIND-CANDIDATE IL:|of| CONTEXT IL:|with| (IL:SETQ FIND-CANDIDATE + SEARCH-STRING)) - (IL:* IL:|;;| "figure out where to search and where to start") + (IL:* IL:|;;| "figure out where to search and where to start") (LET* ((SCOPE (SUBNODE 1 (IL:FETCH ROOT IL:OF CONTEXT))) (START (LET* ((POINT (IL:|fetch| CARET-POINT IL:|of| CONTEXT)) @@ -933,36 +923,35 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (T SCOPE))))) (UNLESS (OR WRAP? START) - (IL:* IL:|;;| "Nothing left to search, and we're not supposed to wrap") + (IL:* IL:|;;| "Nothing left to search, and we're not supposed to wrap") (FORMAT (GET-PROMPT-WINDOW CONTEXT) "~%At end; no more structure to search.") (RETURN-FROM SEARCH-OBJ)) - (IL:* IL:|;;| "do the search") + (IL:* IL:|;;| "do the search") (IF (> STRLEN 1) - (IL:* IL:|;;| "substructure search") + (IL:* IL:|;;| "substructure search") (FIND-AND-DISPLAY-SUBSTRUCTURE CONTEXT STR SCOPE START WRAP?) - (IL:* IL:|;;| "structure search") + (IL:* IL:|;;| "structure search") (FIND-AND-DISPLAY-STRUCTURE CONTEXT (FIRST STR) SCOPE START WRAP?))))) (DEFUN SEARCH-OBJ-BACKWARDS (CONTEXT &OPTIONAL SEARCH-STRING WRAP?) -(IL:* IL:|;;;| "Like search-obj but searches backwards.") +(IL:* IL:|;;;| "Like search-obj but searches backwards.") (MULTIPLE-VALUE-BIND (STR STRLEN) (STRUCTURE-FROM-STRING (OR SEARCH-STRING (SETF SEARCH-STRING - (GET-USER-STRING CONTEXT "Find: " - (OR (IL:|fetch| - FIND-CANDIDATE - IL:|of| CONTEXT) - FIND-CANDIDATE))))) + (GET-USER-STRING CONTEXT "Find: " + (OR (IL:|fetch| FIND-CANDIDATE + IL:|of| CONTEXT) + FIND-CANDIDATE))))) (COND ((< STRLEN 0) (FORMAT (GET-PROMPT-WINDOW CONTEXT) @@ -973,12 +962,12 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) "-- aborted.") (RETURN-FROM SEARCH-OBJ-BACKWARDS))) - (IL:* IL:|;;| "update the remembered defaults") + (IL:* IL:|;;| "update the remembered defaults") - (IL:|replace| FIND-CANDIDATE IL:|of| CONTEXT IL:|with| (IL:SETQ FIND-CANDIDATE - SEARCH-STRING)) + (IL:|replace| FIND-CANDIDATE IL:|of| CONTEXT IL:|with| (IL:SETQ FIND-CANDIDATE + SEARCH-STRING)) - (IL:* IL:|;;| "figure out where to search and where to start") + (IL:* IL:|;;| "figure out where to search and where to start") (LET* ((SCOPE (SUBNODE 1 (IL:FETCH ROOT IL:OF CONTEXT))) (END (LET* ((POINT (IL:|fetch| CARET-POINT IL:|of| CONTEXT)) @@ -1002,30 +991,30 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (T SCOPE))))) (UNLESS (OR WRAP? END) - (IL:* IL:|;;| "Nothing left to search, and we're not supposed to wrap") + (IL:* IL:|;;| "Nothing left to search, and we're not supposed to wrap") (FORMAT (GET-PROMPT-WINDOW CONTEXT) "~%At beginning; no more structure to search.") (RETURN-FROM SEARCH-OBJ-BACKWARDS)) - (IL:* IL:|;;| "do the search") + (IL:* IL:|;;| "do the search") (IF (> STRLEN 1) - (IL:* IL:|;;| "substructure search") + (IL:* IL:|;;| "substructure search") (FIND-AND-DISPLAY-SUBSTRUCTURE-BACKWARDS CONTEXT STR SCOPE END WRAP?) - (IL:* IL:|;;| "structure search") + (IL:* IL:|;;| "structure search") (FIND-AND-DISPLAY-STRUCTURE-BACKWARDS CONTEXT (FIRST STR) SCOPE END WRAP?))))) (DEFUN SUBSTITUTE-OBJ (CONTEXT &OPTIONAL CHARCODE OLDSTR NEWSTR REMOVE?) -(IL:* IL:|;;;| "OLDSTR and NEWSTR are strings. In the scope of the selection, replace every occurence of structure matching OLDSTR by structure parsed from NEWSTR. If REMOVE? is specified, just remove structure matching OLD.") +(IL:* IL:|;;;| "OLDSTR and NEWSTR are strings. In the scope of the selection, replace every occurence of structure matching OLDSTR by structure parsed from NEWSTR. If REMOVE? is specified, just remove structure matching OLD.") -(IL:* IL:|;;;| "We preserve the selection as best we can. Point gets thrown away.") +(IL:* IL:|;;;| "We preserve the selection as best we can. Point gets thrown away.") (CLOSE-OPEN-NODE CONTEXT) (LET* ((PROMPTWINDOW (GET-PROMPT-WINDOW CONTEXT)) @@ -1033,7 +1022,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (SCOPE NIL) (TYPE (IF REMOVE? "delet" - "substitut"))) (IL:* IL:\; "hack!!!") + "substitut"))) (IL:* IL:\; "hack!!!") (UNLESS (AND (IL:|fetch| SELECT-NODE IL:|of| SELECTION) (EQ (IL:|fetch| SELECT-TYPE IL:|of| SELECTION) 'STRUCTURE)) @@ -1041,14 +1030,13 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (RETURN-FROM SUBSTITUTE-OBJ T)) (SETQ SCOPE (PSEUDO-SELECTION-FROM-SELECTION SELECTION)) (MULTIPLE-VALUE-BIND (OLD OLDLEN) - (STRUCTURE-FROM-STRING (OR OLDSTR (SETF OLDSTR - (GET-USER-STRING CONTEXT - (IF REMOVE? - "Delete form: " - "Replace old form: ") - (OR (IL:|fetch| FIND-CANDIDATE - IL:|of| CONTEXT) - FIND-CANDIDATE))))) + (STRUCTURE-FROM-STRING (OR OLDSTR (SETF OLDSTR (GET-USER-STRING CONTEXT + (IF REMOVE? + "Delete form: " + "Replace old form: ") + (OR (IL:|fetch| FIND-CANDIDATE + IL:|of| CONTEXT) + FIND-CANDIDATE))))) (COND ((< OLDLEN 0) (FORMAT PROMPTWINDOW " -- Invalid structure.") @@ -1060,13 +1048,13 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (IF REMOVE? (VALUES NIL 0) (STRUCTURE-FROM-STRING (OR NEWSTR - (SETF NEWSTR - (GET-USER-STRING - CONTEXT "with new form: " - (OR (IL:|fetch| - SUBSTITUTE-CANDIDATE - IL:|of| CONTEXT) - SUBSTITUTE-CANDIDATE)))))) + (SETF NEWSTR + (GET-USER-STRING CONTEXT + "with new form: " + (OR (IL:|fetch| + SUBSTITUTE-CANDIDATE + IL:|of| CONTEXT) + SUBSTITUTE-CANDIDATE)))))) (COND ((< NEWLEN 0) (FORMAT PROMPTWINDOW " -- Invalid structure.") @@ -1076,16 +1064,16 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (FORMAT PROMPTWINDOW "-- aborted.") (RETURN-FROM SUBSTITUTE-OBJ T))) - (IL:* IL:|;;| "update defaults ") + (IL:* IL:|;;| "update defaults ") - (IL:|replace| FIND-CANDIDATE IL:|of| CONTEXT IL:|with| (IL:SETQ - FIND-CANDIDATE - OLDSTR)) + (IL:|replace| FIND-CANDIDATE IL:|of| CONTEXT IL:|with| (IL:SETQ FIND-CANDIDATE + OLDSTR)) (UNLESS REMOVE? - (IL:|replace| SUBSTITUTE-CANDIDATE IL:|of| CONTEXT - IL:|with| (IL:SETQ SUBSTITUTE-CANDIDATE NEWSTR))) + (IL:|replace| SUBSTITUTE-CANDIDATE IL:|of| CONTEXT IL:|with| (IL:SETQ + SUBSTITUTE-CANDIDATE + NEWSTR))) - (IL:* IL:|;;| "do the substitution, report, and reselect.") + (IL:* IL:|;;| "do the substitution, report, and reselect.") (MULTIPLE-VALUE-BIND (NEW-SCOPE SUBCOUNT) (IF (> OLDLEN 1) @@ -1101,14 +1089,14 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN SUBSTITUTE-STRUCTURE (CONTEXT OLD NEW SCOPE &OPTIONAL REMOVE?) -(IL:* IL:|;;;| "Inside SCOPE, replace any node with structure OLD by nodes gotten from parsing NEW. If REMOVE? is given, just delete the old nodes. Returns two values: the final scope after all substitutions are made, and the number of substitutions/deletions made.") +(IL:* IL:|;;;| "Inside SCOPE, replace any node with structure OLD by nodes gotten from parsing NEW. If REMOVE? is given, just delete the old nodes. Returns two values: the final scope after all substitutions are made, and the number of substitutions/deletions made.") -(IL:* IL:|;;;| "The substitution is done as a single undoable operation, and the current selection and point are thrown away.") +(IL:* IL:|;;;| "The substitution is done as a single undoable operation, and the current selection and point are thrown away.") (MULTIPLE-VALUE-BIND (SCOPE-NODE SCOPE-START SCOPE-END) (DECOMPOSE-PSEUDO-SELECTION SCOPE) - (LET* ((ROOT (IL:FETCH ROOT IL:OF CONTEXT))(IL:* IL:\; - "substituting for root is special") + (LET* ((ROOT (IL:FETCH ROOT IL:OF CONTEXT)) (IL:* IL:\; + "substituting for root is special") (POINT (IL:FETCH CARET-POINT IL:OF CONTEXT)) (SELECTION (IL:FETCH SELECTION IL:OF CONTEXT)) (NEWLEN (IF REMOVE? @@ -1139,14 +1127,14 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (SET-SELECTION-NOWHERE SELECTION) (VALUES SCOPE NUMSUBS)) - (IL:* IL:|;;| "replace the target ") + (IL:* IL:|;;| "replace the target ") (SELECT-NODE CONTEXT TARGET) (COND (REMOVE? (COND ((EQ TARGET-SUPER ROOT) - (IL:* IL:|;;| "\"delete\" the root structure by making it nil") + (IL:* IL:|;;| "\"delete\" the root structure by making it nil") (PENDING-DELETE POINT SELECTION) (INSERT-NULL-LIST CONTEXT)) @@ -1154,19 +1142,19 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (T (PENDING-DELETE POINT SELECTION) (INSERT POINT CONTEXT (COPY-LIST NEW-NODES)))) - (IL:* IL:|;;| "fix up the scope, if necessary") + (IL:* IL:|;;| "fix up the scope, if necessary") (COND ((EQ TARGET SCOPE-NODE) - (IL:* IL:|;;| "matched the scope, so we're done") + (IL:* IL:|;;| "matched the scope, so we're done") (COND (REMOVE? (SETF SCOPE NIL)) ((= NEWLEN 1) (SETF SCOPE (SUBNODE TARGET-INDEX TARGET-SUPER))) (T - (IL:* IL:|;;| "replacing the root structure with multiple nodes inserts a new level of list between the root (target-super) and the multiple nodes inserted. In this case, make the scope node be the new list node instead of the root itself.") + (IL:* IL:|;;| "replacing the root structure with multiple nodes inserts a new level of list between the root (target-super) and the multiple nodes inserted. In this case, make the scope node be the new list node instead of the root itself.") (SETF SCOPE (LIST (IF (EQ TARGET-SUPER ROOT) (SUBNODE 1 ROOT) @@ -1176,7 +1164,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (SETF RESUME NIL)) ((AND SCOPE-START (EQ TARGET-SUPER SCOPE-NODE)) - (IL:* IL:|;;| "matched a direct subnode of an extended scope") + (IL:* IL:|;;| "matched a direct subnode of an extended scope") (WHEN (= TARGET-INDEX SCOPE-END) (SETF RESUME NIL)) @@ -1185,9 +1173,9 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN SUBSTITUTE-SUBSTRUCTURE (CONTEXT OLD NEW SCOPE &OPTIONAL REMOVE?) -(IL:* IL:|;;;| "Inside SCOPE, replace any sequences of nodes whose structures sequentially match the elements of OLD by nodes gotten from parsing NEW. If REMOVE? is given, just delete the old sequences. Returns two values: the final scope after all substitutions are made, and the number of substitutions/deletions made.") +(IL:* IL:|;;;| "Inside SCOPE, replace any sequences of nodes whose structures sequentially match the elements of OLD by nodes gotten from parsing NEW. If REMOVE? is given, just delete the old sequences. Returns two values: the final scope after all substitutions are made, and the number of substitutions/deletions made.") -(IL:* IL:|;;;| "The substitution is done as a single undoable operation, and the current selection and point are thrown away.") +(IL:* IL:|;;;| "The substitution is done as a single undoable operation, and the current selection and point are thrown away.") (MULTIPLE-VALUE-BIND (SCOPE-NODE SCOPE-START SCOPE-END) (DECOMPOSE-PSEUDO-SELECTION SCOPE) @@ -1218,7 +1206,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (MULTIPLE-VALUE-BIND (TNODE TSTART TEND) (DECOMPOSE-PSEUDO-SELECTION TARGET) - (IL:* IL:|;;| "replace the target ") + (IL:* IL:|;;| "replace the target ") (SELECT-PSEUDO-SEGMENT CONTEXT TARGET) (COND @@ -1226,13 +1214,12 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (T (PENDING-DELETE POINT SELECTION) (INSERT POINT CONTEXT (COPY-LIST NEW-NODES)))) - (IL:* IL:|;;| - "fix up the scope, if necessary, and figure where to resume") + (IL:* IL:|;;| "fix up the scope, if necessary, and figure where to resume") (COND ((AND SCOPE-START (EQ TNODE SCOPE-NODE)) - (IL:* IL:|;;| "matched direct subnodes of an extended scope") + (IL:* IL:|;;| "matched direct subnodes of an extended scope") (IF (= TEND SCOPE-END) (SETF RESUME NIL) @@ -1243,7 +1230,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN STRUCTURE-FROM-SELECTION (SELECTION) -(IL:* IL:|;;;| "selection must be a structure selection. Return the structure encompassed by selection, which if the selection is a node is the structure of that node, and if the selection is a segment a list of the structures of the nodes in that segment.") +(IL:* IL:|;;;| "selection must be a structure selection. Return the structure encompassed by selection, which if the selection is a node is the structure of that node, and if the selection is a segment a list of the structures of the nodes in that segment.") (LET* ((NODE (IL:FETCH SELECT-NODE IL:OF SELECTION)) (START (IL:FETCH SELECT-START IL:OF SELECTION)) @@ -1263,7 +1250,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN STRUCTURE-FROM-STRING (STR) -(IL:* IL:|;;;| "return all the structures that can be read from string as a list. return a second value saying how many structures there were. If an error is encountered, a second value of -1 is returned. ") +(IL:* IL:|;;;| "return all the structures that can be read from string as a list. return a second value saying how many structures there were. If an error is encountered, a second value of -1 is returned. ") (COND ((NULL STR) @@ -1285,7 +1272,7 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (DEFUN COMMENT-OUT-SELECTION (CONTEXT CHARCODE) -(IL:* IL:|;;;| "given a sequence of whole structure selections, build a 5 level comment node and replace the nodes with the comment.") +(IL:* IL:|;;;| "given a sequence of whole structure selections, build a 5 level comment node and replace the nodes with the comment.") (LET* ((SELECTION (IL:FETCH SELECTION IL:OF CONTEXT)) (POINT (IL:FETCH CARET-POINT IL:OF CONTEXT)) @@ -1301,14 +1288,14 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (START (WITH-OUTPUT-TO-STRING (S) (IL:BIND BLANK-BEFORE IL:FOR I IL:FROM START IL:TO (OR (IL:FETCH SELECT-END IL:OF SELECTION) - START) IL:AS X + START) IL:AS X IL:ON (CDR (IL:NTH (IL:FETCH SUB-NODES IL:OF NODE) - START)) - IL:DO (IF BLANK-BEFORE - (WRITE-CHAR #\Space S) - (SETQ BLANK-BEFORE T)) - (PRIN1 (IL:FETCH STRUCTURE IL:OF (CAR X)) - S)))) + START)) IL:DO (IF BLANK-BEFORE + (WRITE-CHAR #\Space S) + (SETQ BLANK-BEFORE T)) + (PRIN1 (IL:FETCH STRUCTURE + IL:OF (CAR X)) + S)))) (T (FORMAT NIL "~S" (IL:FETCH STRUCTURE IL:OF NODE)))))) (WHEN STR (LET ((NEW-NODE (PARSE-NEW (LIST 'IL:* 'IL:\| STR) @@ -1585,42 +1572,40 @@ IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|) (il:lambda (context node subnodes) (il:* il:\; "Edited 7-Jul-87 09:39 by DCB") (il:* il:|;;;| "sticks subnodes back into node and revives them. ") (rplacd (il:fetch sub-nodes il:of node) subnodes) (il:for subnode il:in subnodes il:as index il:from 1 il:do (il:replace super-node il:of subnode il:with node) (il:replace sub-node-index il:of subnode il:with index) (detach-node subnode) (revive-node subnode (il:fetch depth il:of node))) (il:* il:|;;| "used to reparse here. now if we simply note the change, the format types, format values, and linear forms will be recomputed.") (note-change node context)) ) ) -(IL:PUTPROPS IL:SEDIT-COMMANDS IL:COPYRIGHT ("Venue & Xerox Corporation" 1986 1987 1988 1990 1991 2018 - 2021)) (IL:DECLARE\: IL:DONTCOPY - (IL:FILEMAP (NIL (13643 14213 (PSEUDO-SELECTION-FROM-SELECTION 13643 . 14213)) (14215 14969 ( -COMPOSE-PSEUDO-SELECTION 14215 . 14969)) (14971 15510 (DECOMPOSE-PSEUDO-SELECTION 14971 . 15510)) ( -15512 16309 (SELECTION-FROM-PSEUDO-SELECTION 15512 . 16309)) (16311 16614 (SELECT-PSEUDO-SEGMENT 16311 - . 16614)) (16679 17569 (ADD-COMMAND 16679 . 17569)) (17571 19734 (GET-SELECTION 17571 . 19734)) ( -19736 20916 (REPLACE-SELECTION 19736 . 20916)) (20918 21410 (RESET-COMMANDS 20918 . 21410)) (21412 -21581 (DEFAULT-COMMANDS 21412 . 21581)) (22059 23162 (EQUALIZE-STRING-WIDTHS 22059 . 23162)) (23164 -23362 (MINIMUM-STRING-WIDTH 23164 . 23362)) (23364 23562 (MAXIMUM-STRING-WIDTH 23364 . 23562)) (23564 -24435 (FIND-AND-DISPLAY-STRUCTURE 23564 . 24435)) (24437 25121 (FIND-AND-DISPLAY-STRUCTURE-BACKWARDS -24437 . 25121)) (25123 26027 (FIND-AND-DISPLAY-SUBSTRUCTURE 25123 . 26027)) (26029 26732 ( -FIND-AND-DISPLAY-SUBSTRUCTURE-BACKWARDS 26029 . 26732)) (26734 27375 (FIND-NTH-STRUCTURE 26734 . 27375 -)) (27377 30107 (FIND-NODE-SUBSTRUCTURE 27377 . 30107)) (30109 31362 (FIND-NODE-SUBSTRUCTURE-BACKWARDS - 30109 . 31362)) (31364 32343 (FIND-OBJ 31364 . 32343)) (32345 33745 (FIND-SELECTION 32345 . 33745)) ( -33747 35439 (FIND-SELECTION-BACKWARDS 33747 . 35439)) (35441 38170 (FIND-STRUCTURE 35441 . 38170)) ( -38172 40519 (FIND-STRUCTURE-BACKWARDS 38172 . 40519)) (40521 43450 (FIND-SUBSTRUCTURE 40521 . 43450)) -(43452 45752 (FIND-SUBSTRUCTURE-BACKWARDS 43452 . 45752)) (45754 45990 (GET-USER-STRING 45754 . 45990) -) (45992 49700 (SEARCH-OBJ 45992 . 49700)) (49702 53367 (SEARCH-OBJ-BACKWARDS 49702 . 53367)) (53369 -58195 (SUBSTITUTE-OBJ 53369 . 58195)) (58197 62853 (SUBSTITUTE-STRUCTURE 58197 . 62853)) (62855 66027 -(SUBSTITUTE-SUBSTRUCTURE 62855 . 66027)) (66029 67191 (STRUCTURE-FROM-SELECTION 66029 . 67191)) (67193 - 68036 (STRUCTURE-FROM-STRING 67193 . 68036)) (68038 70179 (COMMENT-OUT-SELECTION 68038 . 70179)) ( -70180 125041 (ADD-MENU 70193 . 70856) (BACKSPACE 70858 . 71837) (CHANGE-PACKAGE 71839 . 74639) ( -CHANGE-PRINTBASE 74641 . 76823) (CHANGE-QUOTE 76825 . 77180) (CONVERT-COMMENT 77182 . 78942) ( -CONVERT-COMMENT-STRUCTURE 78944 . 80247) (CONVERT-COMMENT-TAIL 80249 . 81649) (CREATE-COMMAND-TABLE -81651 . 83629) (DEFAULT-EDIT-FN 83631 . 83768) (DELETE-SELECTION 83770 . 84452) (DELETE-WORD 84454 . -86555) (DO-MUTATION 86557 . 87105) (EDIT-SELECTION 87107 . 87555) (EVAL-SELECTION 87557 . 89426) ( -EXPAND 89428 . 90557) (EXTRACT-CURRENT-SELECTION 90559 . 92927) (FIND-COMMENT 92929 . 93623) (GET-MENU - 93625 . 94002) (EDIT-HELP 94004 . 95079) (HELPMENU 95081 . 97870) (INPUT-DOT 97872 . 100004) ( -INPUT-ESCAPE 100006 . 100254) (INPUT-NORMAL-CHAR 100256 . 102289) (INPUT-QUOTE 102291 . 105373) ( -INPUT-SQUARE-BRACKET 105375 . 105726) (INPUT-STRINGDELIM 105728 . 107127) (INPUT-TOKENDELIM 107129 . -108109) (INSERT-MULTI-ESCAPE 108111 . 109239) (INSERT-SPECIAL-CHARACTER 109241 . 110501) ( -INSPECT-SELECTION 110503 . 111038) (JOIN 111040 . 114710) (MENU-CLOSEFN 114712 . 114930) ( -MENU-FIND-SELECTEDFN 114932 . 115632) (MENU-INIT-STATE 115634 . 116441) (MENU-PACKAGE-SELECTEDFN -116443 . 117494) (MENU-PRINTBASE-SELECTEDFN 117496 . 118372) (MENU-SELECTEDFN 118374 . 118800) ( -MENU-SUBSTITUTE-SELECTEDFN 118802 . 119762) (MUTATE 119764 . 120874) (QUOTE-CURRENT-SELECTION 120876 - . 121643) (REDISPLAY 121645 . 121884) (REDO 121886 . 122380) (SELECTED-FN-NAME 122382 . 122827) ( -SKIP-TO-GAP 122829 . 123606) (UNDO 123608 . 124408) (UNDO-EXTRACT 124410 . 125039))))) + (IL:FILEMAP (NIL (13440 14010 (PSEUDO-SELECTION-FROM-SELECTION 13440 . 14010)) (14012 14766 ( +COMPOSE-PSEUDO-SELECTION 14012 . 14766)) (14768 15307 (DECOMPOSE-PSEUDO-SELECTION 14768 . 15307)) ( +15309 16106 (SELECTION-FROM-PSEUDO-SELECTION 15309 . 16106)) (16108 16411 (SELECT-PSEUDO-SEGMENT 16108 + . 16411)) (16476 17366 (ADD-COMMAND 16476 . 17366)) (17368 19539 (GET-SELECTION 17368 . 19539)) ( +19541 20721 (REPLACE-SELECTION 19541 . 20721)) (20723 21044 (RESET-COMMANDS 20723 . 21044)) (21046 +21215 (DEFAULT-COMMANDS 21046 . 21215)) (21693 22701 (EQUALIZE-STRING-WIDTHS 21693 . 22701)) (22703 +22901 (MINIMUM-STRING-WIDTH 22703 . 22901)) (22903 23101 (MAXIMUM-STRING-WIDTH 22903 . 23101)) (23103 +23974 (FIND-AND-DISPLAY-STRUCTURE 23103 . 23974)) (23976 24660 (FIND-AND-DISPLAY-STRUCTURE-BACKWARDS +23976 . 24660)) (24662 25566 (FIND-AND-DISPLAY-SUBSTRUCTURE 24662 . 25566)) (25568 26271 ( +FIND-AND-DISPLAY-SUBSTRUCTURE-BACKWARDS 25568 . 26271)) (26273 26914 (FIND-NTH-STRUCTURE 26273 . 26914 +)) (26916 29646 (FIND-NODE-SUBSTRUCTURE 26916 . 29646)) (29648 30875 (FIND-NODE-SUBSTRUCTURE-BACKWARDS + 29648 . 30875)) (30877 31856 (FIND-OBJ 30877 . 31856)) (31858 33229 (FIND-SELECTION 31858 . 33229)) ( +33231 34791 (FIND-SELECTION-BACKWARDS 33231 . 34791)) (34793 37522 (FIND-STRUCTURE 34793 . 37522)) ( +37524 39851 (FIND-STRUCTURE-BACKWARDS 37524 . 39851)) (39853 42782 (FIND-SUBSTRUCTURE 39853 . 42782)) +(42784 45084 (FIND-SUBSTRUCTURE-BACKWARDS 42784 . 45084)) (45086 45322 (GET-USER-STRING 45086 . 45322) +) (45324 48925 (SEARCH-OBJ 45324 . 48925)) (48927 52485 (SEARCH-OBJ-BACKWARDS 48927 . 52485)) (52487 +57315 (SUBSTITUTE-OBJ 52487 . 57315)) (57317 61983 (SUBSTITUTE-STRUCTURE 57317 . 61983)) (61985 65128 +(SUBSTITUTE-SUBSTRUCTURE 61985 . 65128)) (65130 66292 (STRUCTURE-FROM-SELECTION 65130 . 66292)) (66294 + 67137 (STRUCTURE-FROM-STRING 66294 . 67137)) (67139 69410 (COMMENT-OUT-SELECTION 67139 . 69410)) ( +69411 124272 (ADD-MENU 69424 . 70087) (BACKSPACE 70089 . 71068) (CHANGE-PACKAGE 71070 . 73870) ( +CHANGE-PRINTBASE 73872 . 76054) (CHANGE-QUOTE 76056 . 76411) (CONVERT-COMMENT 76413 . 78173) ( +CONVERT-COMMENT-STRUCTURE 78175 . 79478) (CONVERT-COMMENT-TAIL 79480 . 80880) (CREATE-COMMAND-TABLE +80882 . 82860) (DEFAULT-EDIT-FN 82862 . 82999) (DELETE-SELECTION 83001 . 83683) (DELETE-WORD 83685 . +85786) (DO-MUTATION 85788 . 86336) (EDIT-SELECTION 86338 . 86786) (EVAL-SELECTION 86788 . 88657) ( +EXPAND 88659 . 89788) (EXTRACT-CURRENT-SELECTION 89790 . 92158) (FIND-COMMENT 92160 . 92854) (GET-MENU + 92856 . 93233) (EDIT-HELP 93235 . 94310) (HELPMENU 94312 . 97101) (INPUT-DOT 97103 . 99235) ( +INPUT-ESCAPE 99237 . 99485) (INPUT-NORMAL-CHAR 99487 . 101520) (INPUT-QUOTE 101522 . 104604) ( +INPUT-SQUARE-BRACKET 104606 . 104957) (INPUT-STRINGDELIM 104959 . 106358) (INPUT-TOKENDELIM 106360 . +107340) (INSERT-MULTI-ESCAPE 107342 . 108470) (INSERT-SPECIAL-CHARACTER 108472 . 109732) ( +INSPECT-SELECTION 109734 . 110269) (JOIN 110271 . 113941) (MENU-CLOSEFN 113943 . 114161) ( +MENU-FIND-SELECTEDFN 114163 . 114863) (MENU-INIT-STATE 114865 . 115672) (MENU-PACKAGE-SELECTEDFN +115674 . 116725) (MENU-PRINTBASE-SELECTEDFN 116727 . 117603) (MENU-SELECTEDFN 117605 . 118031) ( +MENU-SUBSTITUTE-SELECTEDFN 118033 . 118993) (MUTATE 118995 . 120105) (QUOTE-CURRENT-SELECTION 120107 + . 120874) (REDISPLAY 120876 . 121115) (REDO 121117 . 121611) (SELECTED-FN-NAME 121613 . 122058) ( +SKIP-TO-GAP 122060 . 122837) (UNDO 122839 . 123639) (UNDO-EXTRACT 123641 . 124270))))) IL:STOP diff --git a/sources/SEDIT-COMMANDS.DFASL b/sources/SEDIT-COMMANDS.DFASL index 490401d342806d1d8c846cb58cc27bc13c54382d..1940a76135e57ffc53c47f8dd26c7b7b5089eef9 100644 GIT binary patch delta 380 zcmew`mwC<{<_Q`~;l8deKCY3qHpTg+MaikfcEPSLo*}x<{=UABelEd!)}|Bl#5|34 z{qoCnjSP%T6$}il3@xpUOt{<}gMAdzGILTDl8aIkOHxx5LNZE=ic=CRbrcMZ6@VI2 zbCXhw6hOLk6d<}xH=g3+wZvlD)E?z(!cN(2$fw}PWNxxKIL3yVv2F5%c-6_<;;SRf z%~*CAtuv z-9$r)SaYu6{L-T2RE4z6oK%J6qSVBa)D#6nQ(ec>bX_9@BSQrvLn|XAAmVa!4E8}) z7F?Q_l31w&RIUJ2URqqD0MelY)na0>aU~b83l^iM_PAG*>QYAY&2M-W{Fsc)HuJ^U zFf+DK_KsI&jG9~!U(I4SKSLiNiz__HGsIQb*~2l2Z)Ot% z1M@8Aa1hP3K>|cEEN6l67+p3yCj^Kvo}4_TM1^&hA7eb<;a)69*)5tAY&Fyo>QvKSh)E>sRcKavB~CN4N|`Kb7xFr z;K>KdGH`+j0frep0)`4D`31T;sb#4-3TgR8xgd#|%rho4HZZcylxARLoH3bsru>Yl zJ)F+|0g*wT?j9jCCUeZ_kqk@CD@|2UQ;0|{%CAsx&Mzv+FG?)Q%+CW_&wdC*90n0b YK*TW+aa8D;?~Hm3jo0hna0TmS$7