1
0
mirror of synced 2026-01-29 21:41:07 +00:00

Hardcopy to printer (#2290)

* Separate interface for imagefile creation from the send-to-printer interface
* SEND.FILE.TO.PRINTER recognizes :DEFAULTPRINTER
* Various changes to address #2414
* Move BITMAP properties from PRINTERTYPES to PRINTFILETYPES.
* Fix ShellOpen, add UNIX-TMP-FILE-NAME
* Include COERCEFONTSPEC changes in anticipation of HTML streams
* PDFSTREAM compatible with new imagefile architecture plus able to convert non-local Postscript streams
* SKETCH compatible with new imagefile/printing architecture
* TEDIT compatible with new printing architecture
* Tedit files are of type TEDIT, not TEXT, new interface function TEDIT.TO.IMAGEFILE
* ATTACHEDWINDOW:  DOATTACHEDWINDOWCOM allows menu to have a form to EVAL, like the background menu
* WINDOW: fix menus for new hardcopy architecture
* Remove FLUSHFONTSINCORE--FLUSHFONTCACHE is more general
* LOAD character names as suggested in PR #2398
* HARDCOPYW respects file extension
* VIEWER as default printinghost
* SLASHIT interprets '.
* MCCS to UTF8 conversion on printer name
* Deal with {LPT}.LOCAL and upper casing
* @ LPT printers work with exact upper/lower matching
* Using NSPRINT functions to recognize fax
* Let "UNIX" be the name of the default printer of type UNIX
This commit is contained in:
rmkaplan
2026-01-26 15:38:22 -08:00
committed by GitHub
parent 23cef354eb
commit 65df2ba6a4
63 changed files with 3435 additions and 3177 deletions

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10)
(FILECREATED "29-May-2024 15:30:07" {LIB}FILEBROWSER.\;2 266071
(FILECREATED "24-Dec-2025 11:14:31" |{WMEDLEY}<library>FILEBROWSER.;34| 263525
:EDIT-BY "mth"
:EDIT-BY |rmk|
:CHANGES-TO (FNS FB.PROMPTW.FORMAT FB.FASTSEE.ONEFILE)
:CHANGES-TO (FNS FB.HARDCOPY.TOFILE)
:PREVIOUS-DATE " 4-Nov-2023 23:55:27" {LIB}FILEBROWSER.\;1)
:PREVIOUS-DATE " 6-Nov-2025 14:33:28" |{WMEDLEY}<library>FILEBROWSER.;33|)
(PRETTYCOMPRINT FILEBROWSERCOMS)
@@ -91,22 +91,10 @@ You specify how many versions to keep.")))
(|See| (FB.EDITCOMMAND READONLY)
"Displays selected files one at a time in a separate window"
(SUBITEMS ("Fast SEE Pretty" FB.FASTSEECOMMAND
"Views file quickly, uses font information, no scrolling backwards"
)
("Fast SEE Unformatted" (FB.FASTSEECOMMAND
T)
"Views file quickly, shows raw characters, no scrolling backwards"
)
("Scrollable & Pretty" (FB.EDITCOMMAND
READONLY)
"Views file with font information in a fully scrollable window"
)
("FileBrowse" FB.BROWSECOMMAND
)
(|Browse| FB.BROWSECOMMAND
"Recursively call FileBrowser on the selected subdirectory"
)))
)
(|Edit| FB.EDITCOMMAND
"Calls an editor on the selected files (use submenu to specify editor)"
(SUBITEMS ("TEdit" (FB.EDITCOMMAND TEDIT)
@@ -337,15 +325,8 @@ You specify how many versions to keep.")))
("To a printer" (FB.HARDCOPYCOMMAND PRINTER)
"Sends hardcopy of selected files to a printer of your choosing")))
(|See| (FB.EDITCOMMAND READONLY)
"Displays selected files one at a time in a separate window"
(SUBITEMS ("Fast SEE Pretty" FB.FASTSEECOMMAND
"Views file quickly, uses font information, no scrolling backwards")
("Fast SEE Unformatted" (FB.FASTSEECOMMAND T)
"Views file quickly, shows raw characters, no scrolling backwards")
("Scrollable & Pretty" (FB.EDITCOMMAND READONLY)
"Views file with font information in a fully scrollable window")
("FileBrowse" FB.BROWSECOMMAND
"Recursively call FileBrowser on the selected subdirectory")))
"Displays selected files one at a time in a separate window")
(|Browse| FB.BROWSECOMMAND "Recursively call FileBrowser on the selected subdirectory")
(|Edit| FB.EDITCOMMAND
"Calls an editor on the selected files (use submenu to specify editor)"
(SUBITEMS ("TEdit" (FB.EDITCOMMAND TEDIT)
@@ -827,13 +808,10 @@ Your deletions are thus ignored.")))
(REDISPLAYW (CAR W))))))
(\\FB.HARDCOPY.TOFILE.EXTENSION
(LAMBDA NIL (* \;
 "Edited 25-Feb-91 15:15 by gadener")
(LET ((TYPE (PRINTERTYPE)))
(CASE TYPE
(INTERPRESS 'IP)
(POSTSCRIPT 'PS)
(DEFAULT TYPE)))))
(LAMBDA NIL (* \; "Edited 20-Sep-2025 11:41 by rmk")
(* \; "Edited 14-Sep-2025 20:48 by rmk")
(OR (CAR (EXTENSIONS.FOR.IMAGEFILETYPE (PRINTERTYPE)))
DEFAULTPRINTERTYPE)))
)
@@ -1586,22 +1564,25 @@ Your deletions are thus ignored.")))
PRINTOPTIONS)))))))
(FB.HARDCOPY.TOFILE
(LAMBDA (BROWSER FILES) (* \;
 "Edited 15-Feb-91 17:13 by gadener")
(LAMBDA (BROWSER FILES) (* \; "Edited 21-Dec-2025 09:05 by rmk")
(* \; "Edited 20-Sep-2025 12:55 by rmk")
(* \; "Edited 18-Sep-2025 10:29 by rmk")
(* \; "Edited 14-Sep-2025 20:55 by rmk")
(* \; "Edited 15-Feb-91 17:13 by gadener")
(* |;;| "Handle the \"Hardcopy>To File\" command. ")
(PROG ((HCOPYFILE (FB.PROMPTFORINPUT (COND
((CDR FILES)
"Hardcopy file name pattern: ")
(T "Hardcopy file name: "))
((CDR FILES)
"Hardcopy file name pattern: ")
(T "Hardcopy file name: "))
(COND
((CDR FILES)
(PACKFILENAME.STRING 'NAME '* 'EXTENSION (
 \\FB.HARDCOPY.TOFILE.EXTENSION
 \\FB.HARDCOPY.TOFILE.EXTENSION
)))
(T (PACKFILENAME.STRING 'VERSION NIL 'EXTENSION (
 \\FB.HARDCOPY.TOFILE.EXTENSION
 \\FB.HARDCOPY.TOFILE.EXTENSION
)
'BODY
(FB.FETCHFILENAME (CAR FILES)))))
@@ -1619,72 +1600,56 @@ Your deletions are thus ignored.")))
((|for| TAIL |on| (SETQ HCOPYFIELDS (UNPACKFILENAME.STRING HCOPYFILE))
|by| (CDDR TAIL) |bind| HOST HAVEDIRECTORY I
|do| (COND
((SETQ I (STRPOS '* (CADR TAIL)))
(|if| (NEQ (CAR TAIL)
'NAME)
|then| (RETURN (SETQ MSG "Only name portion can contain *")
)) (* \; "Take apart name into FORE*AFT")
(SETQ HCOPYTAIL (CDR TAIL))
(SETQ FORE (OR (SUBSTRING (CADR TAIL)
1
(SUB1 I))
""))
(SETQ AFT (OR (SUBSTRING (CADR TAIL)
(ADD1 I))
"")))
(T (SELECTQ (CAR TAIL)
(NAME (RETURN (SETQ MSG
"Name must have * for multiple hardcopy files"
)))
(EXTENSION (SETQ EXT (MKATOM (U-CASE (CADR TAIL)))))
(DIRECTORY (SETQ HAVEDIRECTORY T))
(HOST (SETQ HOST (CADR TAIL)))
NIL))) |finally| (|if| (AND HOST (NOT HAVEDIRECTORY))
|then|
((SETQ I (STRPOS '* (CADR TAIL)))
(|if| (NEQ (CAR TAIL)
'NAME)
|then| (RETURN (SETQ MSG "Only name portion can contain *")))
(* \; "Take apart name into FORE*AFT")
(SETQ HCOPYTAIL (CDR TAIL))
(SETQ FORE (OR (SUBSTRING (CADR TAIL)
1
(SUB1 I))
""))
(SETQ AFT (OR (SUBSTRING (CADR TAIL)
(ADD1 I))
"")))
(T (SELECTQ (CAR TAIL)
(NAME (RETURN (SETQ MSG
"Name must have * for multiple hardcopy files")))
(EXTENSION (SETQ EXT (MKATOM (U-CASE (CADR TAIL)))))
(DIRECTORY (SETQ HAVEDIRECTORY T))
(HOST (SETQ HOST (CADR TAIL)))
NIL))) |finally| (|if| (AND HOST (NOT HAVEDIRECTORY))
|then|
(* \;
 "E.g., {DSK}*.IP. This pattern explicitly has no directory")
(|push| HCOPYFIELDS
'DIRECTORY NIL)))
 "E.g., {DSK}*.IP. This pattern explicitly has no directory")
(|push| HCOPYFIELDS 'DIRECTORY NIL)))
(FB.PROMPTWPRINT BROWSER "Bad pattern -- " MSG)
(RETURN))))
(T (SETQ EXT (U-CASE (FILENAMEFIELD HCOPYFILE 'EXTENSION)))))
(COND
((AND (NULL (SETQ PRINTFILETYPE (|for| TYPE |in| PRINTFILETYPES
|when| (FMEMB EXT (CADR (ASSOC 'EXTENSION
(CDR TYPE))))
|do| (* \;
 "Opencoded PRINTFILETYPE.FROM.EXTENSION because that one's buggy")
(RETURN (CAR TYPE)))))
(NULL (SETQ PRINTFILETYPE (MENU (|MakeMenuOfImageTypes| "File type?")))))
(RETURN)))
(|for| ITEM |in| FILES |bind| (CONVERTERS _ (PRINTFILEPROP PRINTFILETYPE
'CONVERSION))
FILETYPE NAME FN FIELDS
(CL:UNLESS (SETQ PRINTFILETYPE (OR (IMAGEFILETYPE.FROM.EXTENSION NIL EXT)
(MENU (|MakeMenuOfImageTypes| "File type?"))))
(RETURN))
(|for| ITEM NAME FIELDS |in| FILES
|do| (SETQ ITEM (FB.FETCHFILENAME ITEM))
(SETQ FILETYPE (OR (PRINTFILETYPE ITEM)
'TEXT))
(COND
((SETQ FN (LISTGET CONVERTERS FILETYPE))
(FB.PROMPTW.FORMAT BROWSER "~%Writing ~A..."
(SETQ NAME (COND
((CDR FILES)
(SETQ FIELDS (UNPACKFILENAME.STRING ITEM NIL NIL
'TENEX))
(RPLACA HCOPYTAIL (CONCAT FORE (LISTGET FIELDS
'NAME)
AFT))
(CL:APPLY (FUNCTION PACKFILENAME.STRING)
'VERSION NIL (APPEND HCOPYFIELDS FIELDS)))
(T HCOPYFILE))))
(SETQ NAME (CL:FUNCALL FN ITEM NAME))
(COND
((LISTP NAME) (* \; "Result is (SOURCE DESTINATION)")
(SETQ NAME (CADR NAME))))
(FB.PROMPTWPRINT BROWSER "done.")
(FB.MAYBE.INSERT.FILE BROWSER NAME))
(T (FB.PROMPTW.FORMAT BROWSER
"~%Failed to hardcopy ~A -- Can't convert a ~A file to format ~A"
ITEM FILETYPE PRINTFILETYPE)))))))
(SETQ NAME (COND
((CDR FILES)
(SETQ FIELDS (UNPACKFILENAME.STRING ITEM NIL NIL 'TENEX))
(RPLACA HCOPYTAIL (CONCAT FORE (LISTGET FIELDS 'NAME)
AFT))
(CL:APPLY (FUNCTION PACKFILENAME.STRING)
'VERSION NIL (APPEND HCOPYFIELDS FIELDS)))
(T (OUTFILEP HCOPYFILE))))
(FB.PROMPTW.FORMAT BROWSER "~%Writing ~A..." NAME)
(|if| (SETQ NAME (CONVERT.TO.IMAGEFILE ITEM NAME PRINTFILETYPE
'(NOERROR T QUIET T)))
|then| (FB.PROMPTWPRINT BROWSER "done.")
(FB.MAYBE.INSERT.FILE BROWSER NAME)
|else| (FB.PROMPTW.FORMAT BROWSER
"~%Failed to hardcopy ~A -- Can't convert a ~A file to format ~A"
ITEM (OR (IMAGESOURCETYPE ITEM)
'TEXT)
PRINTFILETYPE))))))
)
(DEFINEQ
@@ -4249,51 +4214,51 @@ then click Recompute"))))
(ADDTOVAR LAMA FB.PROMPTW.FORMAT FB.PROMPTWPRINT)
)
(DECLARE\: DONTCOPY
(FILEMAP (NIL (31871 54979 (FB 31881 . 33016) (FB.COPYBINARYCOMMAND 33018 . 33364) (FB.COPYTEXTCOMMAND
33366 . 33708) (FILEBROWSER 33710 . 46816) (FB.TABLEBROWSER 46818 . 47035) (FB.SELECTEDFILES 47037 .
47674) (FB.FETCHFILENAME 47676 . 48068) (FB.DIRECTORYP 48070 . 48464) (FB.PROMPTWPRINT 48466 . 49512)
(FB.PROMPTW.FORMAT 49514 . 50478) (FB.PROMPTFORINPUT 50480 . 52732) (FB.YES-OR-NO-P 52734 . 53768) (
FB.ALLOW.ABORT 53770 . 54624) (\\FB.HARDCOPY.TOFILE.EXTENSION 54626 . 54977)) (55003 55956 (FB.STARTUP
55013 . 55528) (FB.MAKERIGIDWINDOW 55530 . 55954)) (55957 61440 (FB.PRINTFN 55967 . 61120) (FB.COPYFN
61122 . 61438)) (61490 67830 (FB.MENU.WHENSELECTEDFN 61500 . 61858) (FB.COMMANDSELECTEDFN 61860 .
63399) (FB.SUBITEMP 63401 . 64002) (FB.MAKE.BROWSER.BUSY 64004 . 64808) (FB.FINISH.COMMAND 64810 .
66841) (FB.HANDLE.ABORT.BUTTON 66843 . 67828)) (67831 73347 (FB.DELETECOMMAND 67841 . 68122) (
FB.DELVERCOMMAND 68124 . 71317) (FB.IS.NOT.SUBDIRECTORY.ITEM 71319 . 71500) (FB.DELVER.FILES 71502 .
72591) (FB.DELETE.FILE 72593 . 73345)) (73348 74673 (FB.UNDELETECOMMAND 73358 . 73643) (
FB.UNDELETEALLCOMMAND 73645 . 73924) (FB.UNDELETE.FILE 73926 . 74671)) (74674 98855 (FB.COPYCOMMAND
74684 . 74953) (FB.RENAMECOMMAND 74955 . 75230) (FB.COPY/RENAME.COMMAND 75232 . 76155) (
FB.COPY/RENAME.ONE 76157 . 78479) (FB.COPY/RENAME.MANY 78481 . 84701) (FB.MERGE.DIRECTORIES 84703 .
85121) (FB.GREATEST.PREFIX 85123 . 86479) (FB.MAYBE.INSERT.FILE 86481 . 93921) (FB.GET.NEW.FILE.SPEC
93923 . 97754) (FB.CANONICAL.DIRECTORY 97756 . 98853)) (98856 106640 (FB.HARDCOPYCOMMAND 98866 . 99996
) (FB.HARDCOPY.TOFILE 99998 . 106638)) (106641 116850 (FB.EDITCOMMAND 106651 . 107518) (
FB.EDITCOMMAND.ONEFILE 107520 . 110934) (FB.EDITLISPFILE 110936 . 112041) (FB.BROWSECOMMAND 112043 .
116848)) (116851 128571 (FB.FASTSEECOMMAND 116861 . 120311) (FB.FASTSEE.ONEFILE 120313 . 123269) (
FB.SEEFULLFN 123271 . 127402) (FB.SEEBUTTONFN 127404 . 128569)) (128572 130318 (FB.LOADCOMMAND 128582
. 129089) (FB.COMPILECOMMAND 129091 . 129629) (FB.OPERATE.ON.FILES 129631 . 130316)) (130319 178504 (
FB.UPDATECOMMAND 130329 . 130554) (FB.FIX-DIRECTORY-DATES 130556 . 131579) (FB.MAYBE.EXPUNGE 131581 .
132642) (FB.UPDATEBROWSERITEMS 132644 . 145859) (FB.DATE 145861 . 146502) (FB.ADJUST.DATE.WIDTH 146504
. 149472) (FB.SET.BROWSER.TITLE 149474 . 150476) (FB.MAYBE.WIDEN.NAMES 150478 . 152597) (
FB.SET.DEFAULT.NAME.WIDTH 152599 . 153963) (FB.CREATE.FILEBUCKET 153965 . 161185) (
FB.CHECK.NAME.LENGTH 161187 . 163608) (FB.ADD.FILEGROUP 163610 . 165137) (FB.INSERT.DIRECTORY 165139
. 165377) (FB.MAKE.SUBDIRECTORY.ITEM 165379 . 166788) (FB.ADD.FILE 166790 . 167403) (FB.INSERT.FILE
167405 . 170817) (FB.ANALYZE.PATTERN 170819 . 176083) (FB.CANONICALIZE.PATTERN 176085 . 177397) (
FB.GETALLFILEINFO 177399 . 178502)) (178505 186664 (FB.SORT.VERSIONS 178515 . 181286) (
FB.DECREASING.VERSION 181288 . 181957) (FB.INCREASING.VERSION 181959 . 182580) (
FB.NAMES.DECREASING.VERSION 182582 . 183617) (FB.NAMES.INCREASING.VERSION 183619 . 184616) (
FB.DECREASING.NUMERIC.ATTR 184618 . 185298) (FB.INCREASING.NUMERIC.ATTR 185300 . 185974) (
FB.ALPHABETIC.ATTR 185976 . 186662)) (186665 196507 (FB.SORTCOMMAND 186675 . 193505) (
FB.INSERT.SUBDIRECTORIES 193507 . 194304) (FB.GET.SORT.MENU 194306 . 196505)) (196508 212729 (
FB.EXPUNGECOMMAND 196518 . 199103) (FB.NEWPATTERNCOMMAND 199105 . 199503) (FB.NEWINFOCOMMAND 199505 .
202337) (FB.DEPTHCOMMAND 202339 . 204114) (FB.SHAPECOMMAND 204116 . 207458) (FB.REMOVE.FILE 207460 .
209281) (FB.COUNT.FILE.CHANGE 209283 . 210728) (FB.SETNEWPATTERN 210730 . 211900) (FB.GET.NEWPATTERN
211902 . 212486) (FB.OPTIONSCOMMAND 212488 . 212727)) (212764 213817 (FB.GETWINDOW 212774 . 213815)) (
213818 214830 (FB.INFOMENU.SHADEINITIALSELECTIONS 213828 . 214475) (FB.INFO.ITEM.NAMED 214477 . 214828
)) (214831 224363 (FB.MAKECOUNTERWINDOW 214841 . 216369) (FB.COUNTERW.REDISPLAYFN 216371 . 216958) (
FB.UPDATE.COUNTERS 216960 . 219032) (FB.DISPLAY.COUNTERS 219034 . 224094) (FB.COUNTER.STRING 224096 .
224361)) (224364 229073 (FB.MAKEHEADINGWINDOW 224374 . 225988) (FB.HEADINGW.REDISPLAYFN 225990 .
226256) (FB.HEADINGW.RESHAPEFN 226258 . 226634) (FB.HEADINGW.DISPLAY 226636 . 229071)) (229074 233257
(FB.ICONFN 229084 . 229431) (FB.INFOMENU.WHENSELECTEDFN 229433 . 230163) (FB.CLOSEFN 230165 . 231368)
(FB.EXPUNGE?.MENU 231370 . 231782) (FB.AFTERCLOSEFN 231784 . 232145) (FB.CLOSE&EXPUNGE 232147 . 233255
)) (233258 245316 (FB.HARDCOPY.DIRECTORY 233268 . 243625) (FB.HARDCOPY.PRINT.TITLE 243627 . 243953) (
FB.HARDCOPY.MAXWIDTH 243955 . 245314)))))
(FILEMAP (NIL (30255 53354 (FB 30265 . 31400) (FB.COPYBINARYCOMMAND 31402 . 31748) (FB.COPYTEXTCOMMAND
31750 . 32092) (FILEBROWSER 32094 . 45200) (FB.TABLEBROWSER 45202 . 45419) (FB.SELECTEDFILES 45421 .
46058) (FB.FETCHFILENAME 46060 . 46452) (FB.DIRECTORYP 46454 . 46848) (FB.PROMPTWPRINT 46850 . 47896)
(FB.PROMPTW.FORMAT 47898 . 48862) (FB.PROMPTFORINPUT 48864 . 51116) (FB.YES-OR-NO-P 51118 . 52152) (
FB.ALLOW.ABORT 52154 . 53008) (\\FB.HARDCOPY.TOFILE.EXTENSION 53010 . 53352)) (53378 54331 (FB.STARTUP
53388 . 53903) (FB.MAKERIGIDWINDOW 53905 . 54329)) (54332 59815 (FB.PRINTFN 54342 . 59495) (FB.COPYFN
59497 . 59813)) (59865 66205 (FB.MENU.WHENSELECTEDFN 59875 . 60233) (FB.COMMANDSELECTEDFN 60235 .
61774) (FB.SUBITEMP 61776 . 62377) (FB.MAKE.BROWSER.BUSY 62379 . 63183) (FB.FINISH.COMMAND 63185 .
65216) (FB.HANDLE.ABORT.BUTTON 65218 . 66203)) (66206 71722 (FB.DELETECOMMAND 66216 . 66497) (
FB.DELVERCOMMAND 66499 . 69692) (FB.IS.NOT.SUBDIRECTORY.ITEM 69694 . 69875) (FB.DELVER.FILES 69877 .
70966) (FB.DELETE.FILE 70968 . 71720)) (71723 73048 (FB.UNDELETECOMMAND 71733 . 72018) (
FB.UNDELETEALLCOMMAND 72020 . 72299) (FB.UNDELETE.FILE 72301 . 73046)) (73049 97230 (FB.COPYCOMMAND
73059 . 73328) (FB.RENAMECOMMAND 73330 . 73605) (FB.COPY/RENAME.COMMAND 73607 . 74530) (
FB.COPY/RENAME.ONE 74532 . 76854) (FB.COPY/RENAME.MANY 76856 . 83076) (FB.MERGE.DIRECTORIES 83078 .
83496) (FB.GREATEST.PREFIX 83498 . 84854) (FB.MAYBE.INSERT.FILE 84856 . 92296) (FB.GET.NEW.FILE.SPEC
92298 . 96129) (FB.CANONICAL.DIRECTORY 96131 . 97228)) (97231 104094 (FB.HARDCOPYCOMMAND 97241 . 98371
) (FB.HARDCOPY.TOFILE 98373 . 104092)) (104095 114304 (FB.EDITCOMMAND 104105 . 104972) (
FB.EDITCOMMAND.ONEFILE 104974 . 108388) (FB.EDITLISPFILE 108390 . 109495) (FB.BROWSECOMMAND 109497 .
114302)) (114305 126025 (FB.FASTSEECOMMAND 114315 . 117765) (FB.FASTSEE.ONEFILE 117767 . 120723) (
FB.SEEFULLFN 120725 . 124856) (FB.SEEBUTTONFN 124858 . 126023)) (126026 127772 (FB.LOADCOMMAND 126036
. 126543) (FB.COMPILECOMMAND 126545 . 127083) (FB.OPERATE.ON.FILES 127085 . 127770)) (127773 175958 (
FB.UPDATECOMMAND 127783 . 128008) (FB.FIX-DIRECTORY-DATES 128010 . 129033) (FB.MAYBE.EXPUNGE 129035 .
130096) (FB.UPDATEBROWSERITEMS 130098 . 143313) (FB.DATE 143315 . 143956) (FB.ADJUST.DATE.WIDTH 143958
. 146926) (FB.SET.BROWSER.TITLE 146928 . 147930) (FB.MAYBE.WIDEN.NAMES 147932 . 150051) (
FB.SET.DEFAULT.NAME.WIDTH 150053 . 151417) (FB.CREATE.FILEBUCKET 151419 . 158639) (
FB.CHECK.NAME.LENGTH 158641 . 161062) (FB.ADD.FILEGROUP 161064 . 162591) (FB.INSERT.DIRECTORY 162593
. 162831) (FB.MAKE.SUBDIRECTORY.ITEM 162833 . 164242) (FB.ADD.FILE 164244 . 164857) (FB.INSERT.FILE
164859 . 168271) (FB.ANALYZE.PATTERN 168273 . 173537) (FB.CANONICALIZE.PATTERN 173539 . 174851) (
FB.GETALLFILEINFO 174853 . 175956)) (175959 184118 (FB.SORT.VERSIONS 175969 . 178740) (
FB.DECREASING.VERSION 178742 . 179411) (FB.INCREASING.VERSION 179413 . 180034) (
FB.NAMES.DECREASING.VERSION 180036 . 181071) (FB.NAMES.INCREASING.VERSION 181073 . 182070) (
FB.DECREASING.NUMERIC.ATTR 182072 . 182752) (FB.INCREASING.NUMERIC.ATTR 182754 . 183428) (
FB.ALPHABETIC.ATTR 183430 . 184116)) (184119 193961 (FB.SORTCOMMAND 184129 . 190959) (
FB.INSERT.SUBDIRECTORIES 190961 . 191758) (FB.GET.SORT.MENU 191760 . 193959)) (193962 210183 (
FB.EXPUNGECOMMAND 193972 . 196557) (FB.NEWPATTERNCOMMAND 196559 . 196957) (FB.NEWINFOCOMMAND 196959 .
199791) (FB.DEPTHCOMMAND 199793 . 201568) (FB.SHAPECOMMAND 201570 . 204912) (FB.REMOVE.FILE 204914 .
206735) (FB.COUNT.FILE.CHANGE 206737 . 208182) (FB.SETNEWPATTERN 208184 . 209354) (FB.GET.NEWPATTERN
209356 . 209940) (FB.OPTIONSCOMMAND 209942 . 210181)) (210218 211271 (FB.GETWINDOW 210228 . 211269)) (
211272 212284 (FB.INFOMENU.SHADEINITIALSELECTIONS 211282 . 211929) (FB.INFO.ITEM.NAMED 211931 . 212282
)) (212285 221817 (FB.MAKECOUNTERWINDOW 212295 . 213823) (FB.COUNTERW.REDISPLAYFN 213825 . 214412) (
FB.UPDATE.COUNTERS 214414 . 216486) (FB.DISPLAY.COUNTERS 216488 . 221548) (FB.COUNTER.STRING 221550 .
221815)) (221818 226527 (FB.MAKEHEADINGWINDOW 221828 . 223442) (FB.HEADINGW.REDISPLAYFN 223444 .
223710) (FB.HEADINGW.RESHAPEFN 223712 . 224088) (FB.HEADINGW.DISPLAY 224090 . 226525)) (226528 230711
(FB.ICONFN 226538 . 226885) (FB.INFOMENU.WHENSELECTEDFN 226887 . 227617) (FB.CLOSEFN 227619 . 228822)
(FB.EXPUNGE?.MENU 228824 . 229236) (FB.AFTERCLOSEFN 229238 . 229599) (FB.CLOSE&EXPUNGE 229601 . 230709
)) (230712 242770 (FB.HARDCOPY.DIRECTORY 230722 . 241079) (FB.HARDCOPY.PRINT.TITLE 241081 . 241407) (
FB.HARDCOPY.MAXWIDTH 241409 . 242768)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,13 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "23-Aug-2025 10:53:33" {WMEDLEY}<library>PDFSTREAM.;70 15659
(FILECREATED "19-Jan-2026 17:03:36" {WMEDLEY}<library>PDFSTREAM.;107 17186
:EDIT-BY rmk
:CHANGES-TO (FNS PDF.FONTSAVAILABLE)
:CHANGES-TO (VARS PDFSTREAMCOMS)
(FNS SEE-PDF)
:PREVIOUS-DATE "30-Jul-2025 18:01:04" {WMEDLEY}<library>PDFSTREAM.;68)
:PREVIOUS-DATE "17-Jan-2026 12:11:04" {WMEDLEY}<library>PDFSTREAM.;105)
(PRETTYCOMPRINT PDFSTREAMCOMS)
@@ -14,26 +15,13 @@
(RPAQQ PDFSTREAMCOMS
((FILES (SYSLOAD)
POSTSCRIPTSTREAM)
(INITVARS (PDFFONTCOERCIONS POSTSCRIPTFONTCOERCIONS)
(PDFCHARCOERCIONS POSTSCRIPTCHARCOERCIONS))
[COMS (* ; "Hook into hardcopy interface")
[ADDVARS [PRINTERTYPES ((PDF)
(CANPRINT (PDF))
(STATUS TRUE)
(PROPERTIES NILL)
(SEND POSTSCRIPTSEND)
(BITMAPSCALE POSTSCRIPT.BITMAPSCALE)
(BITMAPFILE (PDF.HARDCOPYW FILE BITMAP SCALEFACTOR REGION
ROTATION TITLE]
[PRINTFILETYPES (PDF (TEST PDFFILEP)
(EXTENSION (PDF))
(CONVERSION (TEXT PDF.TEXT TEDIT PDF.TEDIT]
(IMAGESTREAMTYPES (PDF (OPENSTREAM OPEN-PDF-STREAM)
(FONTCREATE POSTSCRIPT.FONTCREATE)
(FONTSAVAILABLE PDF.FONTSAVAILABLE)
(CREATECHARSET \CREATECHARSET.PSC)
(FONTEXISTS? POSTSCRIPT.FONTEXISTS?]
(ALISTS (DEFAULTFILETYPELIST PDF))
(VARS (DEFAULTPRINTERTYPE 'PDF))
(FNS PDFFILEP PDF.HARDCOPYW PDF.TEXT PDF.TEDIT PDF.FONTSAVAILABLE)
(ALISTS (PRINTFILETYPES PDF)
(IMAGESTREAMTYPES PDF)
(DEFAULTFILETYPELIST PDF))
(FNS PDFFILEP PDF.HARDCOPYW PDF.TEDIT PDF.FONTSAVAILABLE)
(P (FONTPROFILE.ADDDEVICE 'PDF 'POSTSCRIPT]
(* ;; "")
@@ -46,29 +34,31 @@
(ALISTS (PDF-CONVERTER-TEMPLATES ps2pdf pstopdf))
(GLOBALVARS PDFCONVERTER PDF-CONVERTER-TEMPLATES)
(FNS OPEN-PDF-STREAM CLOSE-PDF-STREAM PS-TO-PDF)
(FNS PDF.POSTSCRIPT)
(FNS SEE-PDF)
(ADDVARS (FB.SEE.METHODS (PDFFILEP SEE-PDF)))
(FNS PDFCONVERTER)))
(FNS PDFCONVERTER)
(FNS \PDFINIT)
(P (\PDFINIT))))
(FILESLOAD (SYSLOAD)
POSTSCRIPTSTREAM)
(RPAQ? PDFFONTCOERCIONS POSTSCRIPTFONTCOERCIONS)
(RPAQ? PDFCHARCOERCIONS POSTSCRIPTCHARCOERCIONS)
(* ; "Hook into hardcopy interface")
(ADDTOVAR PRINTERTYPES ((PDF)
(CANPRINT (PDF))
(STATUS TRUE)
(PROPERTIES NILL)
(SEND POSTSCRIPTSEND)
(BITMAPSCALE POSTSCRIPT.BITMAPSCALE)
(BITMAPFILE (PDF.HARDCOPYW FILE BITMAP SCALEFACTOR REGION ROTATION TITLE))))
(ADDTOVAR PRINTFILETYPES (PDF (TEST PDFFILEP)
(EXTENSION (PDF))
(CONVERSION (TEXT PDF.TEXT TEDIT PDF.TEDIT))))
(CONVERSION (POSTSCRIPT PDF.POSTSCRIPT))
(BITMAPSCALE POSTSCRIPT.BITMAPSCALE)
(BITMAPFILE (PDF.HARDCOPYW IMAGEFILE BITMAP SCALEFACTOR REGION ROTATION
TITLE))))
(ADDTOVAR IMAGESTREAMTYPES (PDF (OPENSTREAM OPEN-PDF-STREAM)
(FONTCREATE POSTSCRIPT.FONTCREATE)
@@ -77,54 +67,56 @@
(FONTEXISTS? POSTSCRIPT.FONTEXISTS?)))
(ADDTOVAR DEFAULTFILETYPELIST (PDF . BINARY))
(RPAQQ DEFAULTPRINTERTYPE PDF)
(DEFINEQ
(PDFFILEP
[LAMBDA (FILE) (* ; "Edited 23-Jun-2023 14:43 by rmk")
[LAMBDA (FILE) (* ; "Edited 13-Sep-2025 23:24 by rmk")
(* ; "Edited 23-Jun-2023 14:43 by rmk")
(* ; "Edited 5-Mar-93 21:40 by rmk:")
(* ; "Edited 14-Jan-93 10:56 by jds")
(OR (CL:MEMBER (UNPACKFILENAME.STRING FILE 'EXTENSION)
'("PDF")
:TEST
(FUNCTION STRING-EQUAL))
(CL:WHEN (STREAMP FILE)
(SETFILEPTR FILE 0)
(PROG1 (AND (EQ (BIN FILE)
(CHARCODE %%))
(EQ (BIN FILE)
(CHARCODE P))
(EQ (BIN FILE)
(CHARCODE D))
(EQ (BIN FILE)
(CHARCODE F)))
(SETFILEPTR FILE 0)))])
(RESETLST
[LET (STRM)
[if (SETQ STRM (\GETSTREAM FILE 'INPUT T))
then [RESETSAVE NIL `(PROGN (SETFILEPTR ,STRM ,(GETFILEPTR STRM]
(SETFILEPTR STRM 0)
else (RESETSAVE (SETQ STRM (OPENSTREAM FILE 'INPUT))
`(PROGN (CLOSEF? OLDVALUE]
(AND (EQ (BIN STRM)
(CHARCODE %%))
(EQ (BIN STRM)
(CHARCODE P))
(EQ (BIN STRM)
(CHARCODE D))
(EQ (BIN STRM)
(CHARCODE F])])
(PDF.HARDCOPYW
[LAMBDA (PDFFILE BITMAP SCALEFACTOR REGION Landscape? TITLE)
(* ; "Edited 12-Jan-2026 23:35 by rmk")
(* ; "Edited 11-Jan-2026 14:07 by rmk")
(* ; "Edited 19-Sep-2025 17:36 by rmk")
(* ; "Edited 24-Jul-2023 10:37 by rmk")
(* ; "Edited 23-Jun-2023 13:28 by rmk")
(* ; "Edited 6-Mar-2023 22:43 by rmk")
(LET ((PSTTMP (PACKFILENAME 'EXTENSION 'TMPPS 'BODY PDFFILE)))
(PS-TO-PDF (POSTSCRIPT.HARDCOPYW PSTTMP BITMAP SCALEFACTOR REGION Landscape? TITLE)
PDFFILE])
(PDF.TEXT
[LAMBDA (FILE PDFFILE FONTS HEADING TABS) (* ; "Edited 1-Oct-2023 15:24 by rmk")
(* ; "Edited 23-Jun-2023 13:23 by rmk")
(* ; "Edited 7-Mar-2023 08:39 by rmk")
(TEXTTOIMAGEFILE FILE PDFFILE 'PDF FONTS HEADING TABS `(REGION ,POSTSCRIPT.DEFAULT.PAGEREGION
ROTATION ,(NOT (NOT
POSTSCRIPT.TEXTFILE.LANDSCAPE
])
(* ; "Edited 23-Jun-2023 13:28 by rmk")
(PS-TO-PDF (POSTSCRIPT.HARDCOPYW (OPENSTREAM (UNIX-TMP-FILE-NAME 'bitmap 'ps)
'OUTPUT)
BITMAP SCALEFACTOR REGION Landscape? TITLE)
PDFFILE])
(PDF.TEDIT
[LAMBDA (FILE PDFFILE) (* ; "Edited 23-Jun-2023 13:22 by rmk")
(* ; "Edited 7-Mar-2023 08:39 by rmk")
(LET ((TSTREAM (OPENTEXTSTREAM FILE)))
(TEDIT.FORMAT.HARDCOPY FILE PDFFILE T NIL NIL NIL 'PDF)
(CLOSEF TSTREAM])
[LAMBDA (FILE IMAGESTREAM IMAGETYPE OPTIONS) (* ; "Edited 13-Jan-2026 15:47 by rmk")
(* ; "Edited 26-Sep-2025 23:02 by rmk")
(* ; "Edited 19-Sep-2025 07:33 by rmk")
(* ;; "Make a scratch postscript stream, then convert it to a PDF that is stored in the caller's IMAGESTREAM (which may have been opened with some postscript preamble, which we discard)")
(PS-TO-PDF (TEDIT.TO.IMAGEFILE FILE (OPENSTREAM (UNIX-TMP-FILE-NAME 'tedit IMAGETYPE)
'OUTPUT)
'POSTSCRIPT OPTIONS)
IMAGESTREAM])
(PDF.FONTSAVAILABLE
[LAMBDA (FONTSPEC) (* ; "Edited 23-Aug-2025 10:53 by rmk")
@@ -162,137 +154,165 @@
(DEFINEQ
(OPEN-PDF-STREAM
[LAMBDA (FILE OPTIONS) (* ; "Edited 5-Jun-2025 08:41 by rmk")
[LAMBDA (FILE OPTIONS) (* ; "Edited 14-Sep-2025 11:15 by rmk")
(* ; "Edited 5-Jun-2025 08:41 by rmk")
(* ; "Edited 23-Feb-2025 12:18 by rmk")
(* ; "Edited 23-Sep-2023 15:38 by rmk")
(* ; "Edited 22-Sep-2023 11:04 by rmk")
(* ; "Edited 24-Jun-2023 14:49 by rmk")
(* ;; "Open a temporary PS file, but set it up so that at closing it gets converted to PDF using an operating-system utility (if available), and then gets renamed to the original intended filename.")
(* ;; "Open FILE as a postscript file, but with IMAGETYPE=PDF and a closefn that calls PS-TO-PDF after the PS file closefn.")
(* ;; "We have to stash the original filename someplace. We could put it in the tmp filename and then parse it out, but then we would have to worry about how unix filenames might parse against our {, }, etc. ")
(* ;;
 "Simplest thing for now is to just add an extra field at the end of the \POSTSCRIPTDATA record.")
(if [AND NIL (EQ 'LPT (FILENAMEFIELD FILE 'HOST]
then
(* ;; "If FILE is on the LPT device, we could just ssume that it can be printed directly, no point in converting. But then we would alo have to lie and give it a PDF extension so it thinks that we are heading to a PDF printer.")
(OPENPOSTSCRIPTSTREAM FILE OPTIONS)
elseif (EQ 'NULL (FILENAMEFIELD (TRUEFILENAME FILE)
'HOST))
then
(* ;; "Device NULL used by TMAX, maybe others, to get page number for table of contents, index. Nothing to convert")
(OPENPOSTSCRIPTSTREAM FILE OPTIONS)
elseif (SETQ FILE (OR [AND (NEQ FILE T)
(OR (OUTFILEP FILE)
(OPENSTREAM FILE 'OUTPUT]
(ERROR "PDF target file not found" FILE)))
then (CL:UNLESS (ASSOC (PDFCONVERTER)
PDF-CONVERTER-TEMPLATES)
(ERROR "Can't find a POSTSCRIPT-to-PDF converter"))
(LET ((PSSTREAM (OPENPOSTSCRIPTSTREAM (CONCAT "{UNIX}/tmp/medley-pdf-" (IDATE)
"-"
(RAND)
".ps")
OPTIONS)))
(STREAMPROP PSSTREAM 'AFTERCLOSE (CONS (FUNCTION CLOSE-PDF-STREAM)))
(STREAMPROP PSSTREAM 'PDFTARGETINFO FILE)
PSSTREAM])
(DECLARE (GLOBALVARS \PDFIMAGEOPS))
(CL:UNLESS (ASSOC (PDFCONVERTER)
PDF-CONVERTER-TEMPLATES)
(ERROR "Can't find a POSTSCRIPT-to-PDF converter"))
(LET ((STRM (OPENPOSTSCRIPTSTREAM FILE OPTIONS)))
(replace (STREAM IMAGEOPS) of STRM with \PDFIMAGEOPS)
STRM])
(CLOSE-PDF-STREAM
[LAMBDA (PSSTREAM) (* ; "Edited 22-Sep-2023 11:18 by rmk")
[LAMBDA (PSSTREAM) (* ; "Edited 17-Jan-2026 12:10 by rmk")
(* ; "Edited 15-Jan-2026 10:16 by rmk")
(* ; "Edited 13-Jan-2026 15:49 by rmk")
(* ; "Edited 27-Sep-2025 14:02 by rmk")
(* ; "Edited 19-Sep-2025 14:16 by rmk")
(* ; "Edited 14-Sep-2025 12:16 by rmk")
(* ; "Edited 22-Sep-2023 11:18 by rmk")
(* ; "Edited 24-Jul-2023 10:37 by rmk")
(* ; "Edited 17-Jul-2023 22:32 by rmk")
(* ; "Edited 24-Jun-2023 13:57 by rmk")
(* ;; "PSSTREAM is a postscript (maybe in tmp) rendition of what is intended to end up as a pdf. If we are going directly to a printer, we can probably just pass it along without worrying about conversion. In fact, in that case we probably should not have bothered even setting up the PDF stream.")
(* ;; "But for a file we execute the PDFCONVERTER as a shell command to make a pdf, and then we rename it to the intended filename")
(STREAMPROP PSSTREAM 'AFTERCLOSE NIL) (* ;
 "Maybe just remove only CLOSE-PDF-STREAMfrom the list?")
(LET ((TARGETINFO (STREAMPROP PSSTREAM 'PDFTARGETINFO NIL)))
(CL:IF TARGETINFO
(RENAMEFILE (PS-TO-PDF PSSTREAM)
TARGETINFO)
PSSTREAM)])
(* ;
 "Don't run again for internal closing")
(CL:WHEN (IMAGESTREAMTYPE PSSTREAM 'PDF) (* ;
 "If it's still a PDF stream, it hasn't been converted")
(CLOSEPOSTSCRIPTSTREAM PSSTREAM)
(replace (STREAM IMAGEOPS) of PSSTREAM with \NOIMAGEOPS)
(* ;
 "Don't run again for internal closing")
(CLOSEF? PSSTREAM) (* ; "PS-TO-PDF wants it closed?")
(RESETLST
(LET (PDFSTREAM) (* ;
 "PS-TO-PDF returns a /tmp file if not given a PDFFILE, we copy it into our stream")
[RESETSAVE (SETQ PDFSTREAM (OPENSTREAM (PS-TO-PDF (FULLNAME PSSTREAM)
(UNIX-TMP-FILE-NAME 'closepdf
'pdf))
'INPUT))
`(PROGN (DELFILE (CLOSEF? OLDVALUE]
[RESETSAVE (SETQ PSSTREAM (OPENSTREAM PSSTREAM 'OUTPUT))
`(PROGN (CLOSEF? OLDVALUE]
(SETFILEPTR PSSTREAM 0)
(SETFILEINFO PSSTREAM 'LENGTH 0)
(COPYBYTES PDFSTREAM PSSTREAM 0 -1))))])
(PS-TO-PDF
[LAMBDA (PSFILE PDFFILE DONTDELETE) (* ; "Edited 1-Oct-2023 15:18 by rmk")
(* ; "Edited 23-Sep-2023 22:54 by rmk")
[LAMBDA (PSFILE PDFFILE MAKEERRORFILE) (* ; "Edited 14-Jan-2026 21:02 by rmk")
(* ; "Edited 13-Jan-2026 15:44 by rmk")
(* ; "Edited 27-Sep-2025 16:51 by rmk")
(* ; "Edited 19-Sep-2025 14:14 by rmk")
(* ; "Edited 14-Sep-2025 09:44 by rmk")
(* ; "Edited 1-Oct-2023 15:18 by rmk")
(* ; "Edited 23-Jul-2023 22:30 by rmk")
(* ; "Edited 24-Jun-2023 15:01 by rmk")
(* ; "Edited 16-Jul-2022 13:06 by rmk")
(* ; "Edited 8-Jul-2022 10:20 by rmk")
(* ; "Edited 7-May-2022 22:40 by rmk")
(* ; "Edited 7-Oct-2021 11:15 by rmk:")
(* ;; "PSFILE is the name of a closed PS file on a DSK/UNIX device. This function uses the PDFCONVERTER utility to convert that to a parallel pdf file, which is then renamed to PDFFILE. ")
(* ;; "PSFILE is a postscript file or stream whose contents are to be converted to a PDF-formatted file PDFFILE by means of a Shell PDFCONVERTER utility.")
(* ;; "DONTDELETE is just for debugging, keeps the /tmp/ files")
(* ;; "")
(* ;; "PSFILE may be a Medley filename or a stream that is recognized as a PS formatted file. If its contents do not reside in the Unix file system, it will be copied to a /tmp/ file to be given to the Shell. The /tmp/ file may be deleted at the end.")
(* ;; "")
(* ;; "PDFFILE is NIL, a file name, or perhaps a stream to receive the pdf.")
(* ;; " If NIL, a name is made by attaching PDF to PSFILE; a stream without a name goes to a scratch stream.")
(* ;; "")
(SETQ PSFILE (FULLNAME (TRUEFILENAME PSFILE)))
(CL:UNLESS (INFILEP PSFILE)
(ERROR "NO PS FILE TO CONVERT"))
(CL:UNLESS (ASSOC (PDFCONVERTER)
PDF-CONVERTER-TEMPLATES)
(ERROR "A specified POSTSCRIPT-to-PDF converter cannot be found"))
(SETQ PDFFILE (if PDFFILE
then (TRUEFILENAME PDFFILE)
else (PACKFILENAME 'EXTENSION 'pdf 'BODY PSFILE)))
(LET ((ERRORFILE (PACKFILENAME 'EXTENSION 'error 'BODY PSFILE))
COMPLETIONCODE)
(ERROR "A POSTSCRIPT-to-PDF converter cannot be found for this system"))
(CL:UNLESS (POSTSCRIPTFILEP PSFILE)
(ERROR "NOT A POSTSCRIPT FILE" PSFILE))
(SETQ PSFILE (TRUEFILENAME PSFILE))
(SETQ PDFFILE (TRUEFILENAME PDFFILE))
(RESETLST
(LET* ((PSNAMEU (SLASHIT (CL:IF (EQ 'UNIX (FILENAMEFIELD PSFILE 'HOST))
(FULLNAME PSFILE)
(COPYFILE PSFILE (UNIX-TMP-FILE-NAME PSFILE 'ps)))
NIL T))
TMPPDFFILE
[PDFNAMEU (CL:IF (EQ 'UNIX (FILENAMEFIELD PDFFILE 'HOST))
(FULLNAME PDFFILE)
(SETQ TMPPDFFILE (UNIX-TMP-FILE-NAME PDFFILE 'pdf)))]
(ERRORFILE (CL:IF MAKEERRORFILE
(UNIX-TMP-FILE-NAME (OR TMPPDFFILE PDFFILE)
'error)
"/dev/null"))
COMPLETIONCODE)
(* ;; "PROCESS-COMMAND is currently from GITFNS. Not sure whether ShellCommand in UNIXUTILS is appropriate.")
(* ;; "PROCESS-COMMAND is currently from GITFNS. Not sure whether ShellCommand in UNIXUTILS is appropriate.")
(* ;;
 "We have to map the filenames down to Unix conventions: (not pseudohost or host, slashes, etc.")
[SETQ COMPLETIONCODE (PROCESS-COMMAND (CONCATLIST (SUBLIS `((PSFILE \, PSNAMEU)
(PDFFILE \,
(SLASHIT PDFNAMEU
NIL T))
(ERRORFILE \,
(SLASHIT ERRORFILE
NIL T)))
(ASSOC (PDFCONVERTER)
PDF-CONVERTER-TEMPLATES
]
[SETQ COMPLETIONCODE (PROCESS-COMMAND (CONCATLIST (SUBLIS
`((PSFILE \, (SLASHIT (TRUEFILENAME
PSFILE)
NIL T))
(PDFFILE \, (SLASHIT (TRUEFILENAME
PDFFILE)
NIL T))
(ERRORFILE \, (SLASHIT (TRUEFILENAME
ERRORFILE)
NIL T)))
(ASSOC (PDFCONVERTER)
PDF-CONVERTER-TEMPLATES]
(* ;; "Now use Medley names")
(* ;; "Now use Medley names")
(CL:WHEN (IGREATERP COMPLETIONCODE 0)
(CL:WHEN (AND MAKEERRORFILE (INFILEP ERRORFILE))
(CLOSEF? ERRORFILE)
(CL:WHEN (IGREATERP (GETFILEINFO ERRORFILE 'LENGTH)
0)
(PRINTOUT T "See error file at " '%" ERRORFILE '%" T)))
(ERROR "Cannot create PDF file for " PSFILE))
(if TMPPDFFILE
then (* ; "Not on {UNIX}, could be {DSK}")
(PROG1 (COPYFILE TMPPDFFILE PDFFILE)
(DELFILE TMPPDFFILE))
else (* ; "Originally on UNIX")
(FULLNAME PDFFILE))))])
)
(DEFINEQ
(CLOSEF? PSFILE)
(CL:UNLESS DONTDELETE (DELFILE PSFILE))
(CLOSEF? ERRORFILE)
(CL:WHEN (INFILEP ERRORFILE)
(CL:WHEN (IGREATERP (PROG1 (GETFILEINFO ERRORFILE 'LENGTH)
(CL:UNLESS DONTDELETE (DELFILE ERRORFILE)))
0)
(ERROR "Cannot create PDF file for " PDFFILE)))
(CL:WHEN (IGREATERP COMPLETIONCODE 0)
(ERROR "Cannot create PDF file for " PDFFILE))
PDFFILE])
(PDF.POSTSCRIPT
[LAMBDA (PSFILE IMAGEFILE IMAGETYPE OPTIONS) (* ; "Edited 18-Sep-2025 23:49 by rmk")
(* ;; "Can't pass OPTIONS, until the MAKEERROFILE flag goes away.")
(PS-TO-PDF PSFILE IMAGEFILE])
)
(DEFINEQ
(SEE-PDF
[LAMBDA (PDFFILE) (* ; "Edited 30-Jul-2025 18:00 by rmk")
[LAMBDA (PDFFILE) (* ; "Edited 19-Jan-2026 14:06 by rmk")
(* ; "Edited 24-Dec-2025 23:32 by rmk")
(* ; "Edited 30-Jul-2025 18:00 by rmk")
(* ; "Edited 25-Dec-2024 14:25 by rmk")
(* ; "Edited 1-Oct-2023 20:47 by rmk")
(* ; "Edited 26-Sep-2023 16:52 by rmk")
(* ;; "Use the ShellOpener for this machine to open the PDF file outside of Medley")
(LET [(FOUND (FINDFILE-WITH-EXTENSIONS PDFFILE NIL '(PDF]
(if FOUND
(LET (FOUND)
[SETQ FOUND (if (AND (STREAMP PDFFILE)
(PDFFILEP PDFFILE))
then (UNIX-FILE-NAME PDFFILE 'INPUT 'pdf 'pdf)
else (FINDFILE-WITH-EXTENSIONS PDFFILE NIL '(PDF]
(if (NOT FOUND)
then (ERROR "FILE NOT FOUND" PDFFILE)
elseif (PDFFILEP FOUND)
then (ShellOpen FOUND)
FOUND
else (ERROR "FILE NOT FOUND" PDFFILE])
else (ERROR FOUND "is not a PDF file"])
)
(ADDTOVAR FB.SEE.METHODS (PDFFILEP SEE-PDF))
@@ -304,9 +324,18 @@
(CAR (for TEMPLATE in PDF-CONVERTER-TEMPLATES
thereis (ShellWhich (CAR TEMPLATE])
)
(DEFINEQ
(\PDFINIT
[LAMBDA NIL (* ; "Edited 14-Sep-2025 01:15 by rmk")
(SETQ \PDFIMAGEOPS (create IMAGEOPS using \POSTSCRIPTIMAGEOPS IMAGETYPE _ 'PDF IMCLOSEFN _
(FUNCTION CLOSE-PDF-STREAM])
)
(\PDFINIT)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (3421 6457 (PDFFILEP 3431 . 4345) (PDF.HARDCOPYW 4347 . 4945) (PDF.TEXT 4947 . 5664) (
PDF.TEDIT 5666 . 6033) (PDF.FONTSAVAILABLE 6035 . 6455)) (6897 14542 (OPEN-PDF-STREAM 6907 . 9628) (
CLOSE-PDF-STREAM 9630 . 10917) (PS-TO-PDF 10919 . 14540)) (14543 15301 (SEE-PDF 14553 . 15299)) (15352
15636 (PDFCONVERTER 15362 . 15634)))))
(FILEMAP (NIL (2498 5822 (PDFFILEP 2508 . 3785) (PDF.HARDCOPYW 3787 . 4639) (PDF.TEDIT 4641 . 5398) (
PDF.FONTSAVAILABLE 5400 . 5820)) (6262 14970 (OPEN-PDF-STREAM 6272 . 7422) (CLOSE-PDF-STREAM 7424 .
10136) (PS-TO-PDF 10138 . 14968)) (14971 15227 (PDF.POSTSCRIPT 14981 . 15225)) (15228 16499 (SEE-PDF
15238 . 16497)) (16550 16834 (PDFCONVERTER 16560 . 16832)) (16835 17147 (\PDFINIT 16845 . 17145)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,13 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "13-Oct-2025 18:05:08" {WMEDLEY}<library>POSTSCRIPTSTREAM.;55 260304
(FILECREATED "19-Jan-2026 17:04:42" {WMEDLEY}<library>POSTSCRIPTSTREAM.;64 258252
:EDIT-BY rmk
:CHANGES-TO (FNS POSTSCRIPT.FONTCREATE)
:CHANGES-TO (FNS OPENPOSTSCRIPTSTREAM)
(VARS POSTSCRIPTSTREAMCOMS)
:PREVIOUS-DATE " 9-Oct-2025 21:16:27" {WMEDLEY}<library>POSTSCRIPTSTREAM.;53)
:PREVIOUS-DATE "31-Dec-2025 22:38:51" {WMEDLEY}<library>POSTSCRIPTSTREAM.;62)
(PRETTYCOMPRINT POSTSCRIPTSTREAMCOMS)
@@ -45,7 +46,7 @@
POSTSCRIPT.FONTSAVAILABLE POSTSCRIPT.FONTEXISTS?)
(FNS OPENPOSTSCRIPTSTREAM CLOSEPOSTSCRIPTSTREAM)
(INITVARS (*POSTSCRIPT-FILE-TYPE* 'BINARY))
(FNS POSTSCRIPT.HARDCOPYW POSTSCRIPT.TEDIT POSTSCRIPT.TEXT POSTSCRIPTFILEP MAKEEPSFILE)
(FNS POSTSCRIPT.HARDCOPYW POSTSCRIPT.TEDIT POSTSCRIPTFILEP MAKEEPSFILE)
(FNS POSTSCRIPT.BITMAPSCALE POSTSCRIPT.CLOSESTRING POSTSCRIPT.ENDPAGE POSTSCRIPT.OUTSTR
POSTSCRIPT.PUTBITMAPBYTES POSTSCRIPT.PUTCOMMAND POSTSCRIPT.SET-FAKE-LANDSCAPE
POSTSCRIPT.SHOWACCUM POSTSCRIPT.STARTPAGE \POSTSCRIPTTAB \PS.BOUTFIXP \PS.SCALEHACK
@@ -154,17 +155,9 @@
(OPTIMA (PALATINO 1))
(TITAN (COURIER 1))
(* (* 1]
(POSTSCRIPTCHARCOERCIONS NIL)
(\POSTSCRIPT.MAX.WILD.FONTSIZE 72))
[COMS (FNS POSTSCRIPTSEND)
(ADDVARS (PRINTERTYPES ((POSTSCRIPT)
(CANPRINT (POSTSCRIPT))
(STATUS TRUE)
(PROPERTIES NILL)
(SEND POSTSCRIPTSEND)
(BITMAPSCALE POSTSCRIPT.BITMAPSCALE)
(BITMAPFILE (POSTSCRIPT.HARDCOPYW FILE BITMAP SCALEFACTOR
REGION ROTATION TITLE]
[ADDVARS (POSTSCRIPT.FONT.ALIST (HELVETICA . HELVETICA)
(ADDVARS (POSTSCRIPT.FONT.ALIST (HELVETICA . HELVETICA)
(HELVETICAD . HELVETICA)
(TIMESROMAN . TIMES)
(TIMESROMAND . TIMES)
@@ -176,15 +169,9 @@
(TERMINAL . COURIER)
(LOGO . HELVETICA)
(OPTIMA . PALATINO)
(TITAN . COURIER))
[PRINTFILETYPES (POSTSCRIPT (TEST POSTSCRIPTFILEP)
(EXTENSION (PS PSC PSF))
(CONVERSION (TEXT POSTSCRIPT.TEXT TEDIT TEDIT.TO.IMAGEFILE]
(IMAGESTREAMTYPES (POSTSCRIPT (OPENSTREAM OPENPOSTSCRIPTSTREAM)
(FONTCREATE POSTSCRIPT.FONTCREATE)
(FONTSAVAILABLE POSTSCRIPT.FONTSAVAILABLE)
(CREATECHARSET \CREATECHARSET.PSC)
(FONTEXISTS? POSTSCRIPT.FONTEXISTS?]
(TITAN . COURIER)))
(ALISTS (PRINTFILETYPES POSTSCRIPT)
(IMAGESTREAMTYPES POSTSCRIPT))
(INITVARS (POSTSCRIPT.PAGETYPE 'LETTER))
(* ;; "NIL means initial clipping is same as paper size. Don't know why the other regions were specified--rmk")
@@ -389,7 +376,8 @@
(DEFINEQ
(POSTSCRIPT.INIT
[LAMBDA NIL (* ; "Edited 9-Sep-2025 21:57 by rmk")
[LAMBDA NIL (* ; "Edited 31-Dec-2025 22:38 by rmk")
(* ; "Edited 9-Sep-2025 21:57 by rmk")
(* ; "Edited 22-Aug-2025 21:34 by rmk")
(* ; "Edited 14-May-2018 10:48 by rmk:")
(* ; "Edited 4-Feb-93 21:08 by jds")
@@ -436,7 +424,7 @@
(* ;; "Eliminate any existing postscript fonts, to start with a clean slate if reinitializing.")
(FLUSHFONTSINCORE '* '* '* '* 'POSTSCRIPT)
(FLUSHFONTCACHE NIL '* '* '* '* 'POSTSCRIPT)
(SETQ POSTSCRIPTFONTCACHE NIL)
(SETQ \POSTSCRIPT.CHARTYPE (CL:MAKE-ARRAY 256 :INITIAL-ELEMENT T))
@@ -1127,13 +1115,14 @@
NEWWIDTHS)])
(POSTSCRIPT.FONTSAVAILABLE
[LAMBDA (FONTSPEC) (* ; "Edited 25-Aug-2025 13:09 by rmk")
[LAMBDA (FONTSPEC) (* ; "Edited 17-Dec-2025 20:55 by rmk")
(* ; "Edited 25-Aug-2025 13:09 by rmk")
(* ; "Edited 23-Aug-2025 08:19 by rmk")
(* ;; "Postscript only has font files of size 1, and only files for %"raw%" postscript families that Medley font families are mapped to by POSTSCRIPTFONTCOERCIONS. Therefore the search doesn't care about the given family, just looks at the corresponding raw files that exist in the directory. ")
(LET [(SIZE (fetch (FONTSPEC FSSIZE) of FONTSPEC))
(FONTSAVAILABLE (\SEARCHFONTFILES (CAR (COERCEFONTSPEC FONTSPEC]
(FONTSAVAILABLE (\SEARCHFONTFILES (COERCEFONTSPEC FONTSPEC]
(* ;; "Switch from postscript family names back to the corresponding Medley names.")
@@ -1186,7 +1175,8 @@
(DEFINEQ
(OPENPOSTSCRIPTSTREAM
[LAMBDA (FILE OPTIONS) (* ; "Edited 19-Sep-2025 16:02 by rmk")
[LAMBDA (FILE OPTIONS) (* ; "Edited 19-Jan-2026 17:04 by rmk")
(* ; "Edited 19-Sep-2025 16:02 by rmk")
(* ; "Edited 14-Sep-2025 12:50 by rmk")
(* ; "Edited 12-Jun-2021 19:14 by rmk:")
(* ;
@@ -1278,7 +1268,8 @@
(* ;; "If a REGION parameter was supplied, it establishes the initial margins.")
(SETQ REG (OR (AND (SETQ REG (LISTGET OPTIONS 'REGION))
(SETQ REG (OR (AND (SETQ REG (OR (LISTGET OPTIONS 'REGION)
POSTSCRIPT.DEFAULT.PAGEREGION))
(INTERSECTREGIONS REG CLIP))
(CREATEREGION 3600 3600 54000 72000)))
(replace (\POSTSCRIPTDATA POSTSCRIPTLEFTMARGIN) of IMAGEDATA with (fetch (REGION LEFT)
@@ -1399,14 +1390,6 @@
(TEDIT.TO.IMAGESTREAM FILE IMAGESTREAM])
(POSTSCRIPT.TEXT
[LAMBDA (FILE IMAGEFILE IMAGETYPE OPTIONS) (* ; "Edited 17-Sep-2025 23:21 by rmk")
(* ; "Edited 23-Apr-89 11:31 by TAL")
(TEXTTOIMAGEFILE FILE IMAGEFILE IMAGETYPE `(,@OPTIONS REGION ,POSTSCRIPT.DEFAULT.PAGEREGION
ROTATION ,(NOT (NOT
POSTSCRIPT.TEXTFILE.LANDSCAPE
])
(POSTSCRIPTFILEP
[LAMBDA (FILE) (* ; "Edited 9-Oct-2025 21:16 by rmk")
(* ; "Edited 18-Sep-2025 09:35 by rmk")
@@ -1432,7 +1415,8 @@
(CHARCODE !])])
(MAKEEPSFILE
[LAMBDA (IMAGEOBJ FILENAME) (* ; "Edited 16-Sep-2025 00:29 by rmk")
[LAMBDA (IMAGEOBJ FILENAME) (* ; "Edited 7-Dec-2025 16:37 by rmk")
(* ; "Edited 16-Sep-2025 00:29 by rmk")
(* ; "Edited 7-Apr-94 14:48 by rmk:")
(* ;; "Puts IMAGEOBJ on a 1-page encapsulated postscript file. The lower-left corner of the image box will be at 0,0 on the page.")
@@ -1441,7 +1425,7 @@
(LET ([IMAGEBOX (APPLY* (IMAGEOBJPROP IMAGEOBJ 'IMAGEBOXFN)
IMAGEOBJ
(OPENIMAGESTREAM `{NODIRCORE}SCRATCH 'POSTSCRIPT]
(OPENIMAGESTREAM NIL 'POSTSCRIPT]
STREAM)
[SETQ STREAM (OPENIMAGESTREAM FILENAME 'POSTSCRIPT
`(BOUNDINGBOX (0 0 ,(FETCH XSIZE OF IMAGEBOX)
@@ -4335,28 +4319,9 @@
(TITAN (COURIER 1))
(* (* 1))))
(RPAQ? POSTSCRIPTCHARCOERCIONS NIL)
(RPAQ? \POSTSCRIPT.MAX.WILD.FONTSIZE 72)
(DEFINEQ
(POSTSCRIPTSEND
[LAMBDA (HOST FILE PRINTOPTIONS) (* ; "Edited 20-Nov-95 11:29 by ")
(* ; "Edited 20-Nov-95 11:26 by ")
(* ;; "This is the send function for generic POSTSCRIPT printers. It branches on the architecture-specific function. The theory is that the send method is really a property of the operating system, not a property of specific postscript printers. These functions are contained in separate library files (or defined by user).")
(SELECTQ (MKATOM (UNIX-GETPARM "ARCH"))
(dos (DOSPRINT HOST FILE PRINTOPTIONS))
(UnixPrint HOST FILE PRINTOPTIONS])
)
(ADDTOVAR PRINTERTYPES ((POSTSCRIPT)
(CANPRINT (POSTSCRIPT))
(STATUS TRUE)
(PROPERTIES NILL)
(SEND POSTSCRIPTSEND)
(BITMAPSCALE POSTSCRIPT.BITMAPSCALE)
(BITMAPFILE (POSTSCRIPT.HARDCOPYW FILE BITMAP SCALEFACTOR REGION ROTATION
TITLE))))
(ADDTOVAR POSTSCRIPT.FONT.ALIST (HELVETICA . HELVETICA)
(HELVETICAD . HELVETICA)
@@ -4373,8 +4338,10 @@
(TITAN . COURIER))
(ADDTOVAR PRINTFILETYPES (POSTSCRIPT (TEST POSTSCRIPTFILEP)
(EXTENSION (PS PSC PSF))
(CONVERSION (TEXT POSTSCRIPT.TEXT TEDIT TEDIT.TO.IMAGEFILE))))
(EXTENSION (PS PSC PSF POSTSCRIPT))
(BITMAPSCALE POSTSCRIPT.BITMAPSCALE)
(BITMAPFILE (POSTSCRIPT.HARDCOPYW IMAGEFILE BITMAP SCALEFACTOR REGION
ROTATION TITLE))))
(ADDTOVAR IMAGESTREAMTYPES (POSTSCRIPT (OPENSTREAM OPENPOSTSCRIPTSTREAM)
(FONTCREATE POSTSCRIPT.FONTCREATE)
@@ -4424,39 +4391,37 @@
(ADDTOVAR LAMA POSTSCRIPT.PUTCOMMAND)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (23388 33596 (POSTSCRIPT.INIT 23398 . 30202) (POSTSCRIPT.PUTRGBCOLOR 30204 . 31226) (
\PSC.COLOR.TO.RGB 31228 . 33594)) (34582 69900 (PSCFONT.READFONT 34592 . 36500) (PSCFONT.SPELLFILE
36502 . 37315) (PSCFONT.COERCEFILE 37317 . 38889) (PSCFONTFROMCACHE.SPELLFILE 38891 . 39876) (
PSCFONTFROMCACHE.COERCEFILE 39878 . 41530) (PSCFONT.WRITEFONT 41532 . 42547) (READ-AFM-FILE 42549 .
48420) (CONVERT-AFM-FILES 48422 . 49634) (POSTSCRIPT.GETFONTID 49636 . 51031) (POSTSCRIPT.FONTCREATE
51033 . 63927) (\POSTSCRIPT.SPECIALFONT.SCALEDWIDTHS 63929 . 66326) (POSTSCRIPT.FONTSAVAILABLE 66328
. 68511) (POSTSCRIPT.FONTEXISTS? 68513 . 69898)) (69901 79624 (OPENPOSTSCRIPTSTREAM 69911 . 79290) (
CLOSEPOSTSCRIPTSTREAM 79292 . 79622)) (79669 86491 (POSTSCRIPT.HARDCOPYW 79679 . 82786) (
POSTSCRIPT.TEDIT 82788 . 83240) (POSTSCRIPT.TEXT 83242 . 83829) (POSTSCRIPTFILEP 83831 . 85319) (
MAKEEPSFILE 85321 . 86489)) (86492 130066 (POSTSCRIPT.BITMAPSCALE 86502 . 88958) (
POSTSCRIPT.CLOSESTRING 88960 . 89513) (POSTSCRIPT.ENDPAGE 89515 . 90406) (POSTSCRIPT.OUTSTR 90408 .
91625) (POSTSCRIPT.PUTBITMAPBYTES 91627 . 100098) (POSTSCRIPT.PUTCOMMAND 100100 . 101089) (
POSTSCRIPT.SET-FAKE-LANDSCAPE 101091 . 105611) (POSTSCRIPT.SHOWACCUM 105613 . 107768) (
POSTSCRIPT.STARTPAGE 107770 . 110302) (\POSTSCRIPTTAB 110304 . 111101) (\PS.BOUTFIXP 111103 . 112383)
(\PS.SCALEHACK 112385 . 115028) (\PS.SCALEREGION 115030 . 115590) (\SCALEDBITBLT.PSC 115592 . 119902)
(\SETPOS.PSC 119904 . 120385) (\SETXFORM.PSC 120387 . 122971) (\STRINGWIDTH.PSC 122973 . 123446) (
\SWITCHFONTS.PSC 123448 . 128940) (\TERPRI.PSC 128942 . 130064)) (130101 183957 (\BITBLT.PSC 130111 .
130663) (\BLTSHADE.PSC 130665 . 135326) (\CHARWIDTH.PSC 135328 . 135835) (\CREATECHARSET.PSC 135837 .
137193) (\DRAWARC.PSC 137195 . 139573) (\DRAWCIRCLE.PSC 139575 . 141826) (\DRAWCURVE.PSC 141828 .
145672) (\DRAWELLIPSE.PSC 145674 . 148038) (\DRAWLINE.PSC 148040 . 150780) (\DRAWPOINT.PSC 150782 .
151358) (\DRAWPOLYGON.PSC 151360 . 154489) (\DSPBOTTOMMARGIN.PSC 154491 . 155178) (
\DSPCLIPPINGREGION.PSC 155180 . 156555) (\DSPCOLOR.PSC 156557 . 157488) (\DSPFONT.PSC 157490 . 161127)
(\DSPLEFTMARGIN.PSC 161129 . 161815) (\DSPLINEFEED.PSC 161817 . 162407) (\DSPPUSHSTATE.PSC 162409 .
163869) (\DSPPOPSTATE.PSC 163871 . 167356) (\DSPRESET.PSC 167358 . 168023) (\DSPRIGHTMARGIN.PSC 168025
. 168714) (\DSPROTATE.PSC 168716 . 169715) (\DSPSCALE.PSC 169717 . 170669) (\DSPSCALE2.PSC 170671 .
171511) (\DSPSPACEFACTOR.PSC 171513 . 172434) (\DSPTOPMARGIN.PSC 172436 . 173007) (\DSPTRANSLATE.PSC
173009 . 175040) (\DSPXPOSITION.PSC 175042 . 175606) (\DSPYPOSITION.PSC 175608 . 176199) (
\FILLCIRCLE.PSC 176201 . 178426) (\FILLPOLYGON.PSC 178428 . 181665) (\FIXLINELENGTH.PSC 181667 .
182986) (\MOVETO.PSC 182988 . 183758) (\NEWPAGE.PSC 183760 . 183955)) (184013 206159 (
\POSTSCRIPT.CHANGECHARSET 184023 . 184741) (\POSTSCRIPT.OUTCHARFN 184743 . 197013) (
\POSTSCRIPT.PRINTSLUG 197015 . 198739) (\POSTSCRIPT.SPECIALOUTCHARFN 198741 . 201092) (\UPDATE.PSC
201094 . 202340) (\POSTSCRIPT.ACCENTFN 202342 . 203284) (\POSTSCRIPT.ACCENTPAIR 203286 . 206157)) (
206257 207902 (\PSC.SPACEDISP 206267 . 206546) (\PSC.SPACEWID 206548 . 207167) (\PSC.SYMBOLS 207169 .
207900)) (208011 211002 (\POSTSCRIPT.NSHASH 208021 . 211000)) (256412 257118 (POSTSCRIPTSEND 256422 .
257116)))))
(FILEMAP (NIL (22369 32688 (POSTSCRIPT.INIT 22379 . 29294) (POSTSCRIPT.PUTRGBCOLOR 29296 . 30318) (
\PSC.COLOR.TO.RGB 30320 . 32686)) (33674 69096 (PSCFONT.READFONT 33684 . 35592) (PSCFONT.SPELLFILE
35594 . 36407) (PSCFONT.COERCEFILE 36409 . 37981) (PSCFONTFROMCACHE.SPELLFILE 37983 . 38968) (
PSCFONTFROMCACHE.COERCEFILE 38970 . 40622) (PSCFONT.WRITEFONT 40624 . 41639) (READ-AFM-FILE 41641 .
47512) (CONVERT-AFM-FILES 47514 . 48726) (POSTSCRIPT.GETFONTID 48728 . 50123) (POSTSCRIPT.FONTCREATE
50125 . 63019) (\POSTSCRIPT.SPECIALFONT.SCALEDWIDTHS 63021 . 65418) (POSTSCRIPT.FONTSAVAILABLE 65420
. 67707) (POSTSCRIPT.FONTEXISTS? 67709 . 69094)) (69097 79006 (OPENPOSTSCRIPTSTREAM 69107 . 78672) (
CLOSEPOSTSCRIPTSTREAM 78674 . 79004)) (79051 85377 (POSTSCRIPT.HARDCOPYW 79061 . 82168) (
POSTSCRIPT.TEDIT 82170 . 82622) (POSTSCRIPTFILEP 82624 . 84112) (MAKEEPSFILE 84114 . 85375)) (85378
128952 (POSTSCRIPT.BITMAPSCALE 85388 . 87844) (POSTSCRIPT.CLOSESTRING 87846 . 88399) (
POSTSCRIPT.ENDPAGE 88401 . 89292) (POSTSCRIPT.OUTSTR 89294 . 90511) (POSTSCRIPT.PUTBITMAPBYTES 90513
. 98984) (POSTSCRIPT.PUTCOMMAND 98986 . 99975) (POSTSCRIPT.SET-FAKE-LANDSCAPE 99977 . 104497) (
POSTSCRIPT.SHOWACCUM 104499 . 106654) (POSTSCRIPT.STARTPAGE 106656 . 109188) (\POSTSCRIPTTAB 109190 .
109987) (\PS.BOUTFIXP 109989 . 111269) (\PS.SCALEHACK 111271 . 113914) (\PS.SCALEREGION 113916 .
114476) (\SCALEDBITBLT.PSC 114478 . 118788) (\SETPOS.PSC 118790 . 119271) (\SETXFORM.PSC 119273 .
121857) (\STRINGWIDTH.PSC 121859 . 122332) (\SWITCHFONTS.PSC 122334 . 127826) (\TERPRI.PSC 127828 .
128950)) (128987 182843 (\BITBLT.PSC 128997 . 129549) (\BLTSHADE.PSC 129551 . 134212) (\CHARWIDTH.PSC
134214 . 134721) (\CREATECHARSET.PSC 134723 . 136079) (\DRAWARC.PSC 136081 . 138459) (\DRAWCIRCLE.PSC
138461 . 140712) (\DRAWCURVE.PSC 140714 . 144558) (\DRAWELLIPSE.PSC 144560 . 146924) (\DRAWLINE.PSC
146926 . 149666) (\DRAWPOINT.PSC 149668 . 150244) (\DRAWPOLYGON.PSC 150246 . 153375) (
\DSPBOTTOMMARGIN.PSC 153377 . 154064) (\DSPCLIPPINGREGION.PSC 154066 . 155441) (\DSPCOLOR.PSC 155443
. 156374) (\DSPFONT.PSC 156376 . 160013) (\DSPLEFTMARGIN.PSC 160015 . 160701) (\DSPLINEFEED.PSC
160703 . 161293) (\DSPPUSHSTATE.PSC 161295 . 162755) (\DSPPOPSTATE.PSC 162757 . 166242) (\DSPRESET.PSC
166244 . 166909) (\DSPRIGHTMARGIN.PSC 166911 . 167600) (\DSPROTATE.PSC 167602 . 168601) (
\DSPSCALE.PSC 168603 . 169555) (\DSPSCALE2.PSC 169557 . 170397) (\DSPSPACEFACTOR.PSC 170399 . 171320)
(\DSPTOPMARGIN.PSC 171322 . 171893) (\DSPTRANSLATE.PSC 171895 . 173926) (\DSPXPOSITION.PSC 173928 .
174492) (\DSPYPOSITION.PSC 174494 . 175085) (\FILLCIRCLE.PSC 175087 . 177312) (\FILLPOLYGON.PSC 177314
. 180551) (\FIXLINELENGTH.PSC 180553 . 181872) (\MOVETO.PSC 181874 . 182644) (\NEWPAGE.PSC 182646 .
182841)) (182899 205045 (\POSTSCRIPT.CHANGECHARSET 182909 . 183627) (\POSTSCRIPT.OUTCHARFN 183629 .
195899) (\POSTSCRIPT.PRINTSLUG 195901 . 197625) (\POSTSCRIPT.SPECIALOUTCHARFN 197627 . 199978) (
\UPDATE.PSC 199980 . 201226) (\POSTSCRIPT.ACCENTFN 201228 . 202170) (\POSTSCRIPT.ACCENTPAIR 202172 .
205043)) (205143 206788 (\PSC.SPACEDISP 205153 . 205432) (\PSC.SPACEWID 205434 . 206053) (\PSC.SYMBOLS
206055 . 206786)) (206897 209888 (\POSTSCRIPT.NSHASH 206907 . 209886)))))
STOP

Binary file not shown.

View File

@@ -1,33 +1,26 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "20-Jan-2023 22:44:05" {DSK}<home>frank>il>medley>gmedley>library>UNIXPRINT.;4 13651
(FILECREATED "25-Jan-2026 11:09:09" {WMEDLEY}<library>UNIXPRINT.;15 11553
:CHANGES-TO (VARS UNIXPRINTCOMS)
:EDIT-BY rmk
:PREVIOUS-DATE "18-Jan-2023 13:28:36" {DSK}<home>frank>il>medley>gmedley>library>UNIXPRINT.;3
)
:CHANGES-TO (FNS UnixPrint)
:PREVIOUS-DATE "18-Jan-2026 08:44:40" {WMEDLEY}<library>UNIXPRINT.;14)
(* ; "
Copyright (c) 1990-1993, 1995, 1997, 1999, 2001, 2018, 2023 by Venue.
")
(PRETTYCOMPRINT UNIXPRINTCOMS)
(RPAQQ UNIXPRINTCOMS
[(FILES UNIXUTILS)
(FNS InstallUnixPrinter UnixPrint UnixShellQuote UnixTempFile UnixPrintCommand)
(FNS UnixPrint UnixShellQuote UnixTempFile UnixPrintCommand)
(ALISTS (PRINTERTYPES (UNIX)))
(INITVARS (UnixPrinterName NIL)
(UNIXPRINTSWITCHES " -r -s "))
(P
(* ;;
 "(InstallUnixPrinter) commented out because POSTSCRIPT indirects according to platform")
(PRIN1 "Please feel free to edit UnixPrintCommand." PROMPTWINDOW))
(P (PRIN1 "Please feel free to edit UnixPrintCommand." PROMPTWINDOW))
(PROP FILETYPE UNIXPRINT)
(DECLARE%: DONTEVAL@COMPILE DOCOPY (FNS UnixPrintCommand))
(DECLARE%: EVAL@COMPILE DOCOPY (FILES UNIXCOMM))
(DECLARE%: EVAL@COMPILE DONTCOPY (GLOBALVARS UnixPrinterName))
(GLOBALVARS UnixPrinterName)
(DECLARE%: EVAL@COMPILE (FILES UNIXCOMM))
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA)
(NLAML)
(LAMA])
@@ -35,39 +28,33 @@ Copyright (c) 1990-1993, 1995, 1997, 1999, 2001, 2018, 2023 by Venue.
(FILESLOAD UNIXUTILS)
(DEFINEQ
(InstallUnixPrinter
[LAMBDA (PrinterTypes) (* ; "Edited 8-Feb-97 11:33 by rmk:")
(* ;; "Set up any printers in PrinterTypes (or just Postscript by default) so that they'll be printed using the unix LPR command.")
(DECLARE (GLOBALVARS PRINTERTYPES))
(for type inside (OR PrinterTypes '(POSTSCRIPT))
do (for x in PRINTERTYPES when (EQMEMB type (CAR x))
do (LET ((PRINTERTYPE type))
(PUTASSOC 'SEND (LIST 'UnixPrint)
(CDR x])
(UnixPrint
[LAMBDA (HOST FILE PRINTOPTIONS) (* ; "Edited 7-Dec-2001 14:55 by rmk:")
[LAMBDA (HOST FILE PRINTOPTIONS) (* ; "Edited 25-Jan-2026 11:08 by rmk")
(* ; "Edited 17-Jan-2026 15:47 by rmk")
(* ; "Edited 5-Dec-2025 11:46 by rmk")
(* ; "Edited 13-Sep-2025 20:28 by rmk")
(* ; "Edited 11-Sep-2025 20:48 by rmk")
(* ; "Edited 7-Dec-2001 14:55 by rmk:")
(* ; "Edited 20-May-92 14:13 by nilsson")
(* ;; "Given a print FILE, use the Unix %"lpr%" command to spool it to a printer.")
(* ;; "")
(* ;; "The printer is named by HOST or UnixPrinterName, a Global variable.")
[LET*
((PRINTER (OR HOST UnixPrinterName))
((PRINTER (SELECTQ HOST
((NIL UNIX)
UnixPrinterName)
HOST))
(COPIES (LISTGET PRINTOPTIONS '%#COPIES))
(NAME (LISTGET PRINTOPTIONS 'DOCUMENT.NAME))
(NSIDES (LISTGET PRINTOPTIONS '%#SIDES))
(TYPE (PRINTERTYPE PRINTER)))
(* ;; "Removed redundant check (we already know it's a PS printer), JDS 2/19/92:")
(* ;; "(COND ((NULL TYPE) (ERROR (CONCAT %"Printertype unknown for %" PRINTER))) ((NOT (EQL (U-CASE TYPE) 'POSTSCRIPT)) (ERROR (CONCAT %"Printertype for %" PRINTER %" is not Postscript%"))))")
[COND
((OR (NULL NAME)
(EQ NAME 'LPT)
(STRPOS "{LPT}" NAME 1 NIL T))
(SETQ NAME "Medley Output"))
((EQ (CHCON1 NAME)
@@ -88,63 +75,63 @@ Copyright (c) 1990-1993, 1995, 1997, 1999, 2001, 2018, 2023 by Venue.
(* ;; "The temp file's name will be of the form medleyprint.<idate>, so all such files can be found for deletion on a subsequent call after a certain amount of time (2 minutes) has gone by. If we delete immediately, it may happen before lpr has done its thing. ")
(CL:MULTIPLE-VALUE-BIND (tmpstream tmpname)
(UnixTempFile 'medleyprint.)
(COND
(tmpstream
(CL:MULTIPLE-VALUE-BIND
(tmpstream tmpname)
(UnixTempFile 'medleyprint.)
(COND
(tmpstream
(* ;; "First, copy the lisp file to /tmp so lpr can find it.")
(* ;; "First, copy the lisp file to /tmp so lpr can find it.")
[CL:WITH-OPEN-STREAM
(out tmpstream)
(CL:WITH-OPEN-STREAM
(in (OPENSTREAM FILE 'INPUT))
(printout PROMPTWINDOW .TAB0 0 "Spooling output to Unix printer"
(COND
(PRINTER (CONCAT " '" PRINTER "'"))
(T ""))
"...")
(IF NSIDES
THEN
(* ;; "Have to put magic simplex/duplex stuff in the tmp file itself, after the first line, cause there is no other way to control some duplex printers.")
[CL:WITH-OPEN-STREAM
(out tmpstream)
(CL:WITH-OPEN-STREAM
(in (OPENSTREAM FILE 'INPUT))
(printout PROMPTWINDOW .TAB0 0 "Sending output to Unix printer " (OR PRINTER "")
" ")
(IF NSIDES
THEN
(* ;; "Have to put magic simplex/duplex stuff in the tmp file itself, after the first line, cause there is no other way to control some duplex printers.")
(BIND C SAWCR
DO (SETQ C (BIN in))
(IF (MEMB C (CHARCODE (CR LF)))
THEN (BOUT out C)
(SETQ SAWCR T)
ELSEIF SAWCR
THEN
(* ;; "First char of 2nd line: nonCR/LF after CR/LF")
(BIND C SAWCR
DO (SETQ C (BIN in))
(IF (MEMB C (CHARCODE (CR LF)))
THEN (BOUT out C)
(SETQ SAWCR T)
ELSEIF SAWCR
THEN
(* ;; "First char of 2nd line: nonCR/LF after CR/LF")
(* ;; "Put out simplex header, then print character in C")
(* ;; "Put out simplex header, then print character in C")
(PRINTOUT out "%%BeginSetup" T)
(PRINTOUT out "[{" T "%%%%BeginFeature: *Duplex Simplex" T
"<< /Duplex " (CL:IF (EQ NSIDES 1)
"false"
"true")
" /Tumble false >> setpagedevice" T
"%%%%EndFeature" T "} stopped cleartomark" T)
(PRINTOUT out "%%EndSetup" T)
(BOUT out C)
(COPYCHARS in out (GETFILEPTR in)
-1)
(RETURN)
ELSE (BOUT out C)))
ELSE (COPYCHARS in out 0 -1]
(PRINTOUT out "%%BeginSetup" T)
(PRINTOUT out "[{" T "%%%%BeginFeature: *Duplex Simplex" T
"<< /Duplex " (CL:IF (EQ NSIDES 1)
"false"
"true")
" /Tumble false >> setpagedevice" T "%%%%EndFeature"
T "} stopped cleartomark" T)
(PRINTOUT out "%%EndSetup" T)
(BOUT out C)
(COPYCHARS in out (GETFILEPTR in)
-1)
(RETURN)
ELSE (BOUT out C)))
ELSE (COPYCHARS in out 0 -1]
(* ;; "Now make Unix print the /tmp file.")
(* ;; "Now make Unix print the /tmp file.")
(ShellCommand (UnixPrintCommand PRINTER COPIES NAME tmpname)
PROMPTWINDOW)
(printout PROMPTWINDOW "done" T))
(T (ERROR "Couldn't create unix temp file"))))]
(ShellCommand (UnixPrintCommand PRINTER COPIES NAME tmpname)
PROMPTWINDOW)
(CL:WHEN NIL (* ; "This should be conditioned an error code--don't want to say %"done%" if it didn't happen. If we put this back, then put in ... in the Sending printout above")
(printout PROMPTWINDOW "done" T)))
(T (ERROR "Couldn't create unix temp file"]
T])
(UnixShellQuote
[LAMBDA (STRING)
(DECLARE (LOCALVARS . T)) (* ; "Edited 19-Apr-89 21:14 by TAL")
(DECLARE (LOCALVARS . T)) (* ; "Edited 18-Jan-2026 08:34 by rmk")
(* ; "Edited 19-Apr-89 21:14 by TAL")
(LET* ((X (CHCON STRING))
(CT X)
C FLG)
@@ -168,9 +155,9 @@ Copyright (c) 1990-1993, 1995, 1997, 1999, 2001, 2018, 2023 by Venue.
(CHARCODE SPACE))
(T C))
(SETQ CT (CDR CT]
(COND
(FLG (CONCATCODES X))
(T STRING])
(MTOUTF8STRING (COND
(FLG (CONCATCODES X))
(T STRING])
(UnixTempFile
[LAMBDA (Prefix DontOpen) (* ; "Edited 28-Apr-93 13:49 by rmk:")
@@ -234,66 +221,26 @@ Copyright (c) 1990-1993, 1995, 1997, 1999, 2001, 2018, 2023 by Venue.
" " TMPNAME])
)
(ADDTOVAR PRINTERTYPES ((UNIX)
(CANPRINT (PDF))
(STATUS TRUE)
(PROPERTIES NILL)
(SEND UnixPrint)))
(RPAQ? UnixPrinterName NIL)
(RPAQ? UNIXPRINTSWITCHES " -r -s ")
(* ;; "(InstallUnixPrinter) commented out because POSTSCRIPT indirects according to platform")
(PRIN1 "Please feel free to edit UnixPrintCommand." PROMPTWINDOW)
(PUTPROPS UNIXPRINT FILETYPE :COMPILE-FILE)
(DECLARE%: DONTEVAL@COMPILE DOCOPY
(DEFINEQ
(UnixPrintCommand
[LAMBDA (PRINTER COPIES NAME TMPNAME) (* ; "Edited 4-May-2018 17:17 by rmk:")
(* ; "Edited 20-May-92 14:26 by nilsson")
(* ;; "This function is called when the user wants to UNIXPRINT a file. It has to return a string that when sent to a shell prints the file tmpname. In the cub version this should look something like %"/usr/ucb/lpr tmpname%". The arguments to this function are:")
(* ;; " PRINTER - the name of the printer. Usually something like lw or plw.")
(* ;; "COPIES - how many copies of this job to be printed.")
(* ;; "NAME - the name of this job. This gets printed on the banner of your job.")
(* ;; "TMPNAME - The name of the temporary file that contains the postscript code for this job. ")
(* ;; "Note the clever function UnixShellQuote. It converts any lisp name to a string that is quoted according to /bin/sh syntax")
(* ;; "UNIXPRINTSWITCHES makes it easy for other sites to change just the lpr switches.")
(* ;; "Use raw lpr, let system decide where it is located.")
(CONCAT "lpr " (COND
((AND PRINTER (NEQ 0 (NCHARS PRINTER)))
(CONCAT "-P" (UnixShellQuote PRINTER)
" "))
(T ""))
(COND
((AND (FIXP COPIES)
(NEQ COPIES 1))
(CONCAT "-#" COPIES " "))
(T ""))
" -J"
(UnixShellQuote NAME)
" "
(OR UNIXPRINTSWITCHES "")
" " TMPNAME])
)
)
(DECLARE%: EVAL@COMPILE DOCOPY
(FILESLOAD UNIXCOMM)
)
(DECLARE%: EVAL@COMPILE DONTCOPY
(DECLARE%: DOEVAL@COMPILE DONTCOPY
(GLOBALVARS UnixPrinterName)
)
(DECLARE%: EVAL@COMPILE
(FILESLOAD UNIXCOMM)
)
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS
@@ -303,9 +250,7 @@ Copyright (c) 1990-1993, 1995, 1997, 1999, 2001, 2018, 2023 by Venue.
(ADDTOVAR LAMA )
)
(PUTPROPS UNIXPRINT COPYRIGHT ("Venue" 1990 1991 1992 1993 1995 1997 1999 2001 2018 2023))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (1389 11216 (InstallUnixPrinter 1399 . 1991) (UnixPrint 1993 . 6875) (UnixShellQuote
6877 . 8306) (UnixTempFile 8308 . 9531) (UnixPrintCommand 9533 . 11214)) (11550 13243 (
UnixPrintCommand 11560 . 13241)))))
(FILEMAP (NIL (1046 10887 (UnixPrint 1056 . 6392) (UnixShellQuote 6394 . 7977) (UnixTempFile 7979 .
9202) (UnixPrintCommand 9204 . 10885)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "26-Nov-2025 14:21:13" {WMEDLEY}<library>UNIXUTILS.;35 18084
(FILECREATED "19-Jan-2026 14:09:03" {WMEDLEY}<library>UNIXUTILS.;55 20711
:EDIT-BY rmk
:CHANGES-TO (VARS UNIXUTILSCOMS)
:CHANGES-TO (FNS UNIX-FILE-NAME)
:PREVIOUS-DATE " 4-Nov-2025 10:11:10" {WMEDLEY}<library>UNIXUTILS.;34)
:PREVIOUS-DATE "17-Jan-2026 23:16:17" {WMEDLEY}<library>UNIXUTILS.;54)
(PRETTYCOMPRINT UNIXUTILSCOMS)
@@ -21,7 +21,8 @@
(FUNCTIONS ShellCommand ShellWhich)
(ADDVARS (MEDLEY-INIT-VARS (ShellBrowser NIL RESET)
(ShellOpener NIL RESET)))
(FNS ShellBrowser ShellBrowse ShellOpener ShellOpen PROCESS-COMMAND SLASHIT UNIX-FILE-NAME)
(FNS ShellBrowser ShellBrowse ShellOpener ShellOpen PROCESS-COMMAND SLASHIT UNIX-FILE-NAME
UNIX-TMP-FILE-NAME)
(PROPS (UNIXUTILS FILETYPE))))
(DECLARE%: EVAL@COMPILE DONTCOPY
@@ -147,7 +148,8 @@
"true"])
(ShellOpen
[LAMBDA (FilenameOrURL) (* ; "Edited 10-Sep-2025 15:29 by rmk")
[LAMBDA (FilenameOrURL) (* ; "Edited 28-Dec-2025 18:26 by rmk")
(* ; "Edited 10-Sep-2025 15:29 by rmk")
(* ; "Edited 4-May-2025 11:14 by rmk")
(* ;; "Open the file or URL using the generic %"opener%" for this machine via a shell call.")
@@ -184,7 +186,11 @@
then (CONCAT "File not found: " FilenameOrURL)
elseif (STREQUAL OPENER "true")
then (CONCAT "Unable to find a file opener to open: " FilenameOrURL)
else (LET* ((VERSION.SPECIFIED (FILENAMEFIELD FilenameOrURL 'VERSION))
else (SETQ FilenameOrURL (TRUEFILENAME FilenameOrURL))
(* ;; "RMK: UNVERSIONED is in the Lisp space, I removed the SLASHIT there because it adds \ in front of spaces which screws up the following INFILEP.")
(LET* ((VERSION.SPECIFIED (FILENAMEFIELD FilenameOrURL 'VERSION))
(UNPACKED (UNPACKFILENAME.STRING FULLNAME))
(NEWNAME (CONCAT (LISTGET UNPACKED 'NAME)
"~"
@@ -197,8 +203,7 @@
(SETQ FN (PACKFILENAME.STRING UNPACKED))
(if (STREQUAL (SUBSTRING FN -1)
".")
then (SETQ FN (SUBSTRING UNIXFILE 1 -2)))
(SETQ FN (SLASHIT FN]
then (SETQ FN (SUBSTRING UNIXFILE 1 -2]
(UNVERSIONED.EXISTS (INFILEP (CONCAT "{UNIX}" UNVERSIONED)))
(TMPDIR (CONCAT "/tmp/" (RAND 1000 9999)))
(TARGETFILE.LISP (PACKFILENAME.STRING 'HOST "{UNIX}" 'DIRECTORY TMPDIR
@@ -240,7 +245,8 @@
0))) DO (BLOCK) FINALLY (RETURN CODE])
(SLASHIT
[LAMBDA (X LCASEDIRS NOHOST) (* ; "Edited 4-Nov-2025 10:10 by rmk")
[LAMBDA (X LCASEDIRS NOHOST KEEPDOT) (* ; "Edited 17-Jan-2026 23:15 by rmk")
(* ; "Edited 4-Nov-2025 10:10 by rmk")
(* ; "Edited 22-Oct-2025 13:05 by rmk")
(* ; "Edited 25-Sep-2025 09:57 by rmk")
(* ; "Edited 23-Sep-2023 15:27 by rmk")
@@ -249,7 +255,7 @@
(* ;; "Perhaps this should be a per file-device operation that maps device names into the local file system.")
(* ;; "This is a first approximation to a utility that converts a filename X on a host whose files physically reside in the local Unix file system into the strings that shell commands can use to reference that file. For now, this just involves replacing directory brackets with /, removing the host, and perhaps lower-casing the directory. It probably should be extended to deal with version number translation, for now it just keeps the ; version. ")
(* ;; "This is a first approximation to a utility that converts a filename X on a host whose files physically reside in the local Unix file system into the strings that shell commands can use to reference that file. For now, this just involves replacing directory brackets with /, removing the host, perhaps lower-casing the directory, and perhaps removing a final dot. It probably should be extended to deal with version number translation, for now it just keeps the ; version. ")
(LET [LASTDIRPOS SLASHED (DIRPOS (ADD1 (OR (STRPOS "}" X)
0]
@@ -267,22 +273,34 @@
(SETQ SLASHED (CONCAT (L-CASE (SUBSTRING SLASHED 1 LASTDIRPOS))
(OR (SUBSTRING SLASHED (ADD1 LASTDIRPOS))
""))))
(CL:IF (OR (EQ DIRPOS 1)
NOHOST)
SLASHED
(CONCAT (SUBSTRING X 1 (SUB1 DIRPOS))
SLASHED))])
(CL:UNLESS (OR (EQ DIRPOS 1)
NOHOST)
(SETQ SLASHED (CONCAT (SUBSTRING X 1 (SUB1 DIRPOS))
SLASHED)))
(CL:UNLESS (OR KEEPDOT (NEQ (CHARCODE %.)
(NTHCHARCODE SLASHED -1)))
(SETQ SLASHED (CL:IF (EQ (CHARCODE %')
(NTHCHARCODE SLASHED -2))
(CONCAT (SUBSTRING SLASHED 1 -3)
".")
(SUBSTRING SLASHED 1 -2))))
SLASHED])
(UNIX-FILE-NAME
[LAMBDA (FILE ACCESS COPY) (* ; "Edited 27-Sep-2025 16:24 by rmk")
[LAMBDA (FILE ACCESS COPY EXTENSION) (* ; "Edited 19-Jan-2026 14:05 by rmk")
(* ; "Edited 17-Jan-2026 22:32 by rmk")
(* ; "Edited 11-Jan-2026 23:54 by rmk")
(* ; "Edited 27-Dec-2025 21:24 by rmk")
(* ; "Edited 26-Dec-2025 10:58 by rmk")
(* ; "Edited 27-Sep-2025 16:24 by rmk")
(* ; "Edited 19-Sep-2025 07:29 by rmk")
(* ; "Edited 13-Sep-2025 18:37 by rmk")
(* ; "Edited 1-Oct-2023 20:52 by rmk")
(* ;; "Forces an extension %"ufn%" if there isn't one already, to avoid the dot/no-dot question")
(* ;; "Tries to return the string that would reference FILE in a Unix shell, for the use of PROCESS-COMMAND and ShellCommand. If VERSION is 1, it assumes that the Unix file doesn't have the Medley version convention. If FILE does not have a corresponding Unix name (e.g. NODIRCORE), COPY is non-NIL, and ACCESS is INPUT, FILE will be copied to a unix tmp file (with COPY in its name) and that name will be returned.")
(* ;; "NOTE: The value does not have a host field--no {UNIX}.")
(* ;; "Tries to return the string that would reference FILE in a Unix shell, for the use of PROCESS-COMMAND and ShellCommand. If VERSION is 1, it assumes that the Unix file is doesn't have the Medley version convention. If FILE does not have a corresponding Unix name, COPY is non-NIL, and ACCESS is INPUT, FILE will be copied to a unix tmp file (with COPY in its name) and that name will be returned.")
(* ; "Might catch NODIRCORE")
(CL:WHEN FILE
(SETQ FILE (TRUEFILENAME FILE))
(CL:UNLESS (STREAMP FILE)
@@ -292,42 +310,58 @@
(NIL (SETQ ACCESS 'INPUT)
'OLD)
(\ILLEGAL.ARG ACCESS])
(LET (UNAME VERSION)
[SELECTQ (FILENAMEFIELD FILE 'HOST)
((UNIX DSK)
(SETQ UNAME FILE))
(PROGN
(* ;; "Catch the streams as well as other devices (CORE, servers)")
[SLASHIT (SELECTQ (FILENAMEFIELD FILE 'HOST)
(UNIX (CL:IF [AND EXTENSION (NEQ (L-CASE EXTENSION)
(L-CASE (FILENAMEFIELD FILE 'EXTENSION]
(COPYFILE FILE (PACKFILENAME 'EXTENSION EXTENSION 'BODY FILE))
FILE))
(DSK [LET ((VERSION (FILENAMEFIELD FILE 'VERSION))
(UNAME (PACKFILENAME 'VERSION NIL 'BODY FILE)))
(CL:UNLESS (EQ VERSION 1)
(CONCAT UNAME (CONCAT "~" VERSION "~")))])
(LET (UNAME)
[SETQ UNAME (OUTFILEP (CONCAT "{DSK}/tmp/medley-" (CL:IF COPY
(CONCAT (L-CASE COPY)
"-")
"")
(IDATE]
(CL:WHEN (AND COPY FILE)
(RESETLST
(CL:WHEN (\GETSTREAM FILE 'INPUT T)
(* ;; "Catch the streams as well as other devices (CORE, servers)")
(SETQ UNAME (UNIX-TMP-FILE-NAME FILE EXTENSION))
(CL:IF (AND COPY FILE)
(RESETLST
(CL:WHEN (\GETSTREAM FILE 'INPUT T)
(* ; "Hope it's randaccess")
[RESETSAVE (GETFILEPTR FILE)
`(PROGN (SETFILEPTR ,FILE OLDVALUE])
[RESETSAVE (GETFILEPTR FILE)
`(PROGN (SETFILEPTR ,FILE OLDVALUE])
(COPYFILE FILE UNAME))
UNAME)])])
(* ;; "Let DSK pick a new version number, rather than RAND")
(UNIX-TMP-FILE-NAME
[LAMBDA (NAME EXT HOST) (* ; "Edited 17-Jan-2026 22:28 by rmk")
(* ; "Edited 13-Jan-2026 15:41 by rmk")
(* ; "Edited 26-Dec-2025 17:37 by rmk")
(COPYFILE FILE UNAME)))]
(SETQ VERSION (FILENAMEFIELD UNAME 'VERSION)) (* ; "Convert to Unix version. ")
(SETQ UNAME (PACKFILENAME 'VERSION NIL 'BODY UNAME))
(CL:WHEN (AND VERSION (IGREATERP VERSION 1))
(SETQ UNAME (CONCAT UNAME ".~" VERSION "~")))
(SETQ UNAME (SLASHIT UNAME NIL T))
(CL:IF (EQ (CHARCODE %.)
(NTHCHARCODE UNAME -1))
(SUBSTRING UNAME 1 -2)
UNAME)))])
(* ;; "Returns a unique {UNIX}/tmp/medley name that includes NAME as a hint and perhaps a useful extension. This goes through random candidates hoping to find a name that doesn't yet exist, and that can be %"reserved%" before anybody else gets it. There is a race-condition window where somebody could get in.")
(* ;; " ")
(* ;; "If DSK names were reformatted so that the ~version~ came before the intended extension, we could just open on an output stream on DSK to get a unique version number, then convert to the UNIX formatted string.")
(bind UNAME (DATEPREFIX _ (CONCAT "{UNIX}/tmp/medley-" (IDATE)
"-"))
(SUFFIX _ (CONCAT (CL:IF NAME
[OR (AND (STREAMP (FULLNAME NAME))
"stream")
(L-CASE (FILENAMEFIELD NAME 'NAME]
"unamed")
(CL:IF EXT
(CONCAT "." (L-CASE EXT))
""))) eachtime (SETQ UNAME (CONCAT DATEPREFIX (RAND 1 1000)
"-" SUFFIX))
unless (INFILEP UNAME) do (RETURN (SLASHIT (CLOSEF (OPENSTREAM UNAME 'OUTPUT 'NEW])
)
(PUTPROPS UNIXUTILS FILETYPE CL:COMPILE-FILE)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (1137 1510 (ShellCommand 1137 . 1510)) (1512 1909 (ShellWhich 1512 . 1909)) (2019 18006
(ShellBrowser 2029 . 3801) (ShellBrowse 3803 . 4488) (ShellOpener 4490 . 6178) (ShellOpen 6180 . 11659
) (PROCESS-COMMAND 11661 . 12274) (SLASHIT 12276 . 14731) (UNIX-FILE-NAME 14733 . 18004)))))
(FILEMAP (NIL (1170 1543 (ShellCommand 1170 . 1543)) (1545 1942 (ShellWhich 1545 . 1942)) (2052 20633
(ShellBrowser 2062 . 3834) (ShellBrowse 3836 . 4521) (ShellOpener 4523 . 6211) (ShellOpen 6213 . 11982
) (PROCESS-COMMAND 11984 . 12597) (SLASHIT 12599 . 15623) (UNIX-FILE-NAME 15625 . 18952) (
UNIX-TMP-FILE-NAME 18954 . 20631)))))
STOP

Binary file not shown.

View File

@@ -1,13 +1,13 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "30-Nov-2025 10:10:57" {WMEDLEY}<library>SKETCH>SKETCH.;11 493235
(FILECREATED "24-Dec-2025 14:48:39" {WMEDLEY}<library>SKETCH>SKETCH.;16 491600
:EDIT-BY rmk
:CHANGES-TO (VARS SKETCHCOMS)
(FNS UPDATE-SKETCH EDIT-SKETCH)
(FNS SK.INCLUDE.FILE SK.GET.IMAGEOBJ.FROM.FILE SKETCH.PUT SKETCH.FLUSH.EXISTING)
:PREVIOUS-DATE " 8-Nov-2025 12:19:12" {WMEDLEY}<library>SKETCH>SKETCH.;10)
:PREVIOUS-DATE "30-Nov-2025 10:10:57" {WMEDLEY}<library>SKETCH>SKETCH.;11)
(PRETTYCOMPRINT SKETCHCOMS)
@@ -15,52 +15,25 @@
(RPAQQ SKETCHCOMS
[(FILES (SYSLOAD)
TEDIT)
[DECLARE%: FIRST DOCOPY DONTEVAL@LOAD
(P (PROG ((NOTECARDSFLG (GETPROP 'NOTECARDS 'FILEDATES))
(SKETCHFLG (AND (BOUNDP 'ALL.SKETCHES)
ALL.SKETCHES))
TEDITFLG)
(* ;; "current knows about SKETCH TEDIT and NOTECARDS. Everyone else loses.")
(DECLARE%: FIRST (FNS SKETCH.FLUSH.EXISTING))
(DECLARE%: FIRST DOCOPY DONTEVAL@LOAD (P (SKETCH.FLUSH.EXISTING)))
(* ;; "Putting and getting")
[MAP.PROCESSES (FUNCTION (LAMBDA (PROC PROCNAME PROCFORM)
(AND (EQ (CAR PROCFORM)
'\TEDIT1)
(SETQ TEDITFLG T]
(COND ((AND (BOUNDP 'ALL.SKETCHES)
(OR SKETCHFLG NOTECARDSFLG TEDITFLG))
(ERROR (CONCAT "Please close" (COND (SKETCHFLG
" all open Sketch windows,"
)
(T ""))
(COND (NOTECARDSFLG (CONCAT (COND (SKETCHFLG " and")
(T ""))
" any open notefiles,"))
(T ""))
(COND (TEDITFLG (CONCAT (COND ((OR SKETCHFLG
NOTECARDSFLG)
" and")
(T ""))
" any TEDIT windows that have sketches in them,"
))
(T ""))
" then type 'RETURN'.
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 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)
(FNS SKETCH.FROM.A.FILE SK.PUT.ON.FILE SKETCH.PUT SK.OUTPUT.FILE.NAME SK.INCLUDE.FILE
SK.GET.IMAGEOBJ.FROM.FILE SK.GET.FROM.FILE SKETCH.GET)
(FNS SKETCH SKETCHW.CREATE SKETCH.RESET SKETCHW.FIG.CHANGED SK.WINDOW.TITLE EDITSLIDE
EDITSKETCH 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
@@ -275,40 +248,240 @@ To abort loading the new version of Sketch, type '^'."]
(FILESLOAD (SYSLOAD)
TEDIT)
(DECLARE%: FIRST
(DEFINEQ
(SKETCH.FLUSH.EXISTING
[LAMBDA NIL (* ; "Edited 22-Dec-2025 23:56 by rmk")
(PROG ((NOTECARDSFLG (GETPROP 'NOTECARDS 'FILEDATES))
(SKETCHFLG (AND (BOUNDP 'ALL.SKETCHES)
ALL.SKETCHES))
TEDITFLG)
(* ;; "current knows about SKETCH TEDIT and NOTECARDS. Everyone else loses.")
[MAP.PROCESSES (FUNCTION (LAMBDA (PROC PROCNAME PROCFORM)
(AND (EQ (CAR PROCFORM)
'\TEDIT1)
(SETQ TEDITFLG T]
(COND
((AND (BOUNDP 'ALL.SKETCHES)
(OR SKETCHFLG NOTECARDSFLG TEDITFLG))
(ERROR (CONCAT "Please close" (COND
(SKETCHFLG " all open Sketch windows,")
(T ""))
(COND
(NOTECARDSFLG (CONCAT (COND
(SKETCHFLG " and")
(T ""))
" any open notefiles,"))
(T ""))
(COND
(TEDITFLG (CONCAT (COND
((OR SKETCHFLG NOTECARDSFLG)
" and")
(T ""))
" any TEDIT windows that have sketches in them,"))
(T ""))
" then type 'RETURN'.
To abort loading the new version of Sketch, type '^'."])
)
)
(DECLARE%: FIRST DOCOPY DONTEVAL@LOAD
[PROG ((NOTECARDSFLG (GETPROP 'NOTECARDS 'FILEDATES))
(SKETCHFLG (AND (BOUNDP 'ALL.SKETCHES)
ALL.SKETCHES))
TEDITFLG)
(SKETCH.FLUSH.EXISTING)
)
(* ;; "current knows about SKETCH TEDIT and NOTECARDS. Everyone else loses.")
[MAP.PROCESSES (FUNCTION (LAMBDA (PROC PROCNAME PROCFORM)
(AND (EQ (CAR PROCFORM)
'\TEDIT1)
(SETQ TEDITFLG T]
(COND
((AND (BOUNDP 'ALL.SKETCHES)
(OR SKETCHFLG NOTECARDSFLG TEDITFLG))
(ERROR (CONCAT "Please close" (COND
(SKETCHFLG " all open Sketch windows,")
(T ""))
(COND
(NOTECARDSFLG (CONCAT (COND
(SKETCHFLG " and")
(T ""))
" any open notefiles,"))
(T ""))
(COND
(TEDITFLG (CONCAT (COND
((OR SKETCHFLG NOTECARDSFLG)
" and")
(T ""))
" any TEDIT windows that have sketches in them,"))
(T ""))
" then type 'RETURN'.
To abort loading the new version of Sketch, type '^'."]
(* ;; "Putting and getting")
(DEFINEQ
(SKETCH.FROM.A.FILE
[LAMBDA NIL (* rrb "24-Jun-86 11:40")
(* reads a file name from the user and calls sketch on it.)
(PROG ((NAME (PopUpWindowAndGetAtom "Sketch file name: ")))
(RETURN (AND NAME (SKETCH NAME])
(SK.PUT.ON.FILE
[LAMBDA (SKETCHW) (* ; "Edited 6-Apr-87 18:18 by rrb")
(* saves a sketch on a Tedit file.)
(* also changes the name of the sketch to be the same as the name of the file.)
(PROG ((SKETCH (INSURE.SKETCH (SKETCH.FROM.VIEWER SKETCHW)))
NOWNAME NEWNAME TEXTSTREAM)
(SETQ NOWNAME (SKETCH.TITLE SKETCH))
(OR [SETQ NEWNAME (MKATOM (PROMPT.GETINPUT SKETCHW "File to PUT to: " (SK.OUTPUT.FILE.NAME
NOWNAME]
(RETURN NIL))
(SETQ NEWNAME (SKETCH.PUT NEWNAME SKETCH SKETCHW))
[COND
((AND NEWNAME (NEQ NOWNAME NEWNAME))
(* change the name of the sketch to be the same as the file name.)
(replace (SKETCH SKETCHNAME) of SKETCH with NEWNAME)
(* change the titles of the viewers
 onto this sketch.)
(for SKW in (ALL.SKETCH.VIEWERS SKETCH) do (WINDOWPROP SKW 'TITLE (SK.WINDOW.TITLE
SKETCH]
(RETURN NEWNAME])
(SKETCH.PUT
[LAMBDA (FILENAME SKETCH VIEWER REGION SCALE GRID) (* ; "Edited 23-Dec-2025 00:27 by rmk")
(* ; "Edited 1-Feb-2022 09:17 by rmk")
(* ; "Edited 17-Nov-87 17:47 by rrb")
(* ;; "puts the sketch SKETCH on the file named FILENAME. VIEWER if given provides promptwindows and PUTFNs.")
(PROG (TEXTSTREAM FILESTREAM)
[SETQ TEXTSTREAM (OPENTEXTSTREAM NIL NIL NIL NIL (AND VIEWER (LIST 'PUTFN
(WINDOWPROP VIEWER
'TEDIT.PUTFN)
'PROMPTWINDOW
(GETPROMPTWINDOW VIEWER]
(* ;
 "make a text stream with nothing in it except the sketch.")
(TEDIT.INSERT.OBJECT [SKETCH.IMAGEOBJ (INSURE.SKETCH SKETCH)
(COND
((REGIONP REGION))
(VIEWER (SKETCH.REGION.VIEWED VIEWER)))
(COND
((NUMBERP SCALE))
(VIEWER (VIEWER.SCALE VIEWER)))
(COND
((NUMBERP GRID))
(VIEWER (SK.GRIDFACTOR VIEWER]
TEXTSTREAM 1) (* ;
 "set the margins so that if the user hardcopies it directly the margins come out")
(TEDIT.PARALOOKS TEXTSTREAM '(LEFTMARGIN 0 RIGHTMARGIN 0 QUAD CENTER)
1 1)
(TEDIT.PAGEFORMAT TEXTSTREAM (TEDIT.SINGLE.PAGEFORMAT NIL NIL NIL NIL NIL 0 0 0 0))
(* ;
 "save the stream so that it can be closed.")
(SETQ FILESTREAM (TEDIT.PUT TEXTSTREAM FILENAME)) (* ;
 "grab the full file name if it is available.")
(AND (OPENP FILESTREAM)
(SETQ FILENAME (CLOSEF FILESTREAM)))
(SK.MARK.UNDIRTY SKETCH)
(RETURN FILENAME])
(SK.OUTPUT.FILE.NAME
[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")
NIL)
(T (PACKFILENAME 'VERSION NIL 'BODY SKETCHFILENAME])
(SK.INCLUDE.FILE
[LAMBDA (SKETCHW) (* ; "Edited 23-Dec-2025 09:17 by rmk")
(* rrb " 2-May-86 11:29")
(* ;; "retrieves a sketch from a file and includes it into the existing sketch.")
(* ;
 "also changes the name of the sketch to be the same as the name of the file.")
(PROG ((SKETCH (SKETCH.FROM.VIEWER SKETCHW))
NOWNAME FILENAME READSKETCH DIRTYSTATUS)
(SETQ NOWNAME (fetch (SKETCH SKETCHNAME) of SKETCH))
(SETQ FILENAME (MKATOM (PROMPT.GETINPUT SKETCHW "File to GET: ")))
(COND
((MEMB FILENAME '(NIL %]))
(CLOSEPROMPTWINDOW SKETCHW)
(RETURN)))
(STATUSPRINT SKETCHW " ...")
(SETQ FILENAME (OR (FINDFILE FILENAME T)
(ERROR FILENAME "file not found.")))
(OR (SETQ READSKETCH (SKETCH.GET FILENAME SKETCHW))
(RETURN))
[COND
((NEQ NOWNAME FILENAME) (* ;
 "change the name of the sketch to be the same as the file name.")
(replace (SKETCH SKETCHNAME) of SKETCH with FILENAME)
(* ;
 "change the name of the sketch to be the same as the file name.")
(for SKW in (ALL.SKETCH.VIEWERS SKETCH) do (WINDOWPROP SKW 'TITLE (SK.WINDOW.TITLE
SKETCH]
(ADD.SKETCH.TO.VIEWER READSKETCH SKETCHW (COND
((fetch (SKETCH SKETCHELTS) of SKETCH)
(* ;; "if the sketch has elements, ask about the defaults from the read file and set the status to leave the sketch marked dirty after the read.")
(SETQ DIRTYSTATUS T)
'ASK)
(T
(* ;; "if the sketch doesn't have any elements, use the defaults from the read file and set the status to leave the sketch marked clean after the read.")
NIL)))
(COND
((NULL DIRTYSTATUS) (* ;
 "if sketch was empty before, mark it as not needing to be dumped.")
(SK.MARK.UNDIRTY SKETCH)))
(STATUSPRINT SKETCHW " done."])
(SK.GET.IMAGEOBJ.FROM.FILE
[LAMBDA (FILENAME VIEWER) (* ; "Edited 23-Dec-2025 09:20 by rmk")
(* ; "Edited 12-Feb-88 14:13 by rrb")
(* ;; "reads the sketch image object datum from a file.")
(RESETFORM (CURSOR WAITINGCURSOR)
(PROG ([TEXTSTREAM (OPENTEXTSTREAM FILENAME NIL NIL NIL (AND VIEWER (LIST 'PROMPTWINDOW
(GETPROMPTWINDOW
VIEWER]
IMAGEOBJ READSKETCH)
(SETQ IMAGEOBJ (BIN TEXTSTREAM))
(CLOSEF TEXTSTREAM)
(COND
((NOT (IMAGEOBJP IMAGEOBJ))
(STATUSPRINT (OR VIEWER PROMPTWINDOW)
FILENAME " is not a sketch file.")
(RETURN NIL)))
(COND
([NOT (type? SKETCH (SETQ READSKETCH (fetch (SKETCHIMAGEOBJ SKIO.SKETCH)
of (IMAGEOBJPROP IMAGEOBJ 'OBJECTDATUM]
(STATUSPRINT (OR VIEWER PROMPTWINDOW)
FILENAME " is not a sketch file.")
(RETURN))
(T (* ;
 "save the name of where the sketch came from.")
(replace (SKETCH SKETCHNAME) of READSKETCH with (OR (GETTEXTPROP TEXTSTREAM
'FILENAME)
FILENAME))
(AND VIEWER (SK.CHANGE.GRID (fetch (SKETCHIMAGEOBJ SKIO.GRID)
of (IMAGEOBJPROP IMAGEOBJ 'OBJECTDATUM))
VIEWER))
(RETURN (IMAGEOBJPROP IMAGEOBJ 'OBJECTDATUM])
(SK.GET.FROM.FILE
[LAMBDA (SKETCHW) (* rrb " 1-Oct-86 18:24")
(* retrieves a sketch from a file clobbering any existing sketch.)
(COND
((SK.CONFIRM.DESTRUCTION SKETCHW "Press LEFT to delete current elements before GET.")
(* put the delete on the history list so that it can be undone.
 This leaves the gotten file there as well but seems better than nothing.)
(SK.DELETE.ELEMENT2 (fetch (SKETCH SKETCHELTS) of (INSURE.SKETCH SKETCHW))
SKETCHW)
(SK.INCLUDE.FILE SKETCHW))
((SK.CONFIRM.DESTRUCTION SKETCHW "Press LEFT to include file, RIGHT to abort the GET.")
(SK.INCLUDE.FILE SKETCHW))
(T (STATUSPRINT SKETCHW "GET aborted. The INCLUDE subcommand to GET doesn't delete."])
(SKETCH.GET
[LAMBDA (FILENAME VIEWER) (* rrb "29-Jan-86 11:21")
(* reads a sketch from a file.)
(fetch (SKETCHIMAGEOBJ SKIO.SKETCH) of (SK.GET.IMAGEOBJ.FROM.FILE FILENAME VIEWER])
)
(DEFINEQ
@@ -343,14 +516,6 @@ To abort loading the new version of Sketch, type '^'."]
(T (SKETCHW.CREATE SKETCH NIL (OR WINDOW (GETREGION))
NIL NIL T T])
(SKETCH.FROM.A.FILE
[LAMBDA NIL (* rrb "24-Jun-86 11:40")
(* reads a file name from the user and calls sketch on it.)
(PROG ((NAME (PopUpWindowAndGetAtom "Sketch file name: ")))
(RETURN (AND NAME (SKETCH NAME])
(SKETCHW.CREATE
(LAMBDA (SKETCH SKETCHREGION SCREENREGION TITLE INITIALSCALE BRINGUPMENU INITIALGRID) (* ; "Edited 25-Apr-88 15:18 by drc:") (* ;;; "creates a sketch window and returns it.") (PROG (W SCALE SKPROC SKETCHSTRUCTURE) (SETQ SKETCHSTRUCTURE (SK.CHECK.SKETCH.VERSION (COND ((NULL SKETCH) (SKETCH.CREATE NIL)) ((LITATOM SKETCH) (* ; "treat it like a file name") (SKETCH.GET SKETCH)) ((type? SKETCH SKETCH) SKETCH) ((type? IMAGEOBJ SKETCH) (* ; "pull things out of the image object.") (SETQ SKPROC (IMAGEOBJPROP SKETCH (QUOTE OBJECTDATUM))) (OR (REGIONP SKETCHREGION) (SETQ SKETCHREGION (fetch (SKETCHIMAGEOBJ SKIO.REGION) of SKPROC))) (OR (NUMBERP INITIALSCALE) (SETQ INITIALSCALE (fetch (SKETCHIMAGEOBJ SKIO.SCALE) of SKPROC))) (OR (NUMBERP INITIALGRID) (SETQ INITIALGRID (fetch (SKETCHIMAGEOBJ SKIO.GRID) of SKPROC))) (fetch (SKETCHIMAGEOBJ SKIO.SKETCH) of SKPROC)) ((AND (LITATOM (CAR SKETCH)) (for ELT in (CDR SKETCH) always (GLOBALELEMENTP ELT))) (* ; "old form, probably written out by notecards, update to new form.") (PROG (X) (SETQ X (SKIO.UPDATE.FROM.OLD.FORM SKETCH)) (* ; "smash sketch so this won't have to happen every time.") (RPLACA SKETCH (CAR X)) (RPLACD SKETCH (CDR X)) (RETURN X))) (T (\ILLEGAL.ARG SKETCH))))) (SETQ W (COND ((WINDOWP SCREENREGION) (AND TITLE (WINDOWPROP SCREENREGION (QUOTE TITLE) TITLE)) SCREENREGION) (T (CREATEW (COND ((REGIONP SCREENREGION)) (T (CREATEREGION LASTMOUSEX LASTMOUSEY 20 20))) (OR TITLE (SK.WINDOW.TITLE SKETCHSTRUCTURE)) NIL T)))) (SK.SET.UP.MENUS W (NOT (OPENWP SCREENREGION)) BRINGUPMENU) (COND ((OR (REGIONP SCREENREGION) (WINDOWP SCREENREGION)) (* ; "user gave a region, don't interact") NIL) (T (* ; "let prompting for reshape show room for both menu and window.") (SHAPEW W))) (* ;; "set the right margin so that text will never run into it. This can be removed when character positions are kept in points so \DSPPRINTCHAR doesn't have to look at the right margin.") (DSPRIGHTMARGIN 64000 W) (WINDOWPROP W (QUOTE SKETCH) SKETCHSTRUCTURE) (WINDOWPROP W (QUOTE SCALE) (SETQ SCALE (COND ((NUMBERP INITIALSCALE)) ((REGIONP SKETCHREGION) (* ; "determine the scale and offsets so that the given region of the sketch fits into the given window.") (FQUOTIENT (fetch (REGION HEIGHT) of SKETCHREGION) (fetch (REGION HEIGHT) of (DSPCLIPPINGREGION NIL W)))) ((NULL SKETCHREGION) INITIAL.SCALE) (T (\ILLEGAL.ARG SKETCHREGION))))) (* ; "check to make sure a context exists on the sketch because before July 1985 it didn't exist.") (WINDOWPROP W (QUOTE SKETCHCONTEXT) (OR (GETSKETCHPROP SKETCHSTRUCTURE (QUOTE SKETCHCONTEXT)) (PUTSKETCHPROP SKETCHSTRUCTURE (QUOTE SKETCHCONTEXT) (CREATE.DEFAULT.SKETCH.CONTEXT)))) (COND ((REGIONP SKETCHREGION) (* ; "if given a region, translate to it.") (WXOFFSET (IMINUS (FIX (QUOTIENT (fetch (REGION LEFT) of SKETCHREGION) SCALE))) W) (WYOFFSET (IMINUS (FIX (QUOTIENT (fetch (REGION BOTTOM) of SKETCHREGION) SCALE))) W))) (SK.UPDATE.REGION.VIEWED W) (* ; "calculate the sketch region being viewed before mapping the sketch into it.") (MAP.SKETCHSPEC.INTO.VIEWER SKETCHSTRUCTURE W) (SK.CREATE.HOTSPOT.CACHE W) (WINDOWPROP W (QUOTE GRIDFACTOR) (COND ((NUMBERP INITIALGRID) (LEASTPOWEROF2GT INITIALGRID)) (T (SK.DEFAULT.GRIDFACTOR W)))) (WINDOWPROP W (QUOTE USEGRID) (COND (INITIALGRID T))) (WINDOWPROP W (QUOTE BUTTONEVENTFN) (FUNCTION WB.BUTTON.HANDLER)) (WINDOWPROP W (QUOTE COPYBUTTONEVENTFN) (FUNCTION SK.COPY.BUTTONEVENTFN)) (WINDOWPROP W (QUOTE COPYINSERTFN) (FUNCTION SK.COPY.INSERTFN)) (WINDOWPROP W (QUOTE RIGHTBUTTONFN) (FUNCTION WB.BUTTON.HANDLER)) (WINDOWPROP W (QUOTE CURSOROUTFN) (FUNCTION SKETCHW.OUTFN)) (WINDOWPROP W (QUOTE REPAINTFN) (FUNCTION SKETCHW.REPAINTFN)) (WINDOWADDPROP W (QUOTE RESHAPEFN) (FUNCTION SKETCHW.RESHAPEFN)) (WINDOWADDPROP W (QUOTE SHRINKFN) (FUNCTION SK.RETURN.TTY)) (WINDOWPROP W (QUOTE ICONFN) (FUNCTION SK.SHRINK.ICONCREATE)) (WINDOWADDPROP W (QUOTE EXPANDFN) (FUNCTION SK.TAKE.TTY)) (WINDOWPROP W (QUOTE SCROLLFN) (FUNCTION SKETCHW.SCROLLFN)) (WINDOWPROP W (QUOTE HARDCOPYFN) (FUNCTION SKETCHW.HARDCOPYFN)) (* ; "I'm not sure why this ever gets called but it did once so to be sure, turn it off.") (WINDOWPROP W (QUOTE PAGEFULLFN) (FUNCTION NILL)) (WINDOWPROP W (QUOTE PROCESS) (SETQ SKPROC (ADD.PROCESS (LIST (FUNCTION WB.EDITOR) (KWOTE W)) (QUOTE RESTARTABLE) T (QUOTE TTYENTRYFN) (QUOTE SK.TTYENTRYFN) (QUOTE TTYEXITFN) (QUOTE SK.TTYEXITFN)))) (WINDOWPROP W (QUOTE SCROLLEXTENTUSE) T) (WINDOWADDPROP W (QUOTE CLOSEFN) (FUNCTION SKETCHW.CLOSEFN) T) (OPENW W) (ADD.SKETCH.VIEWER SKETCHSTRUCTURE W) (SKETCHW.REPAINTFN W) (RETURN W)))
)
@@ -411,199 +576,6 @@ To abort loading the new version of Sketch, type '^'."]
NIL NIL NIL NIL T 16.0)
SLIDENAME])
(SK.PUT.ON.FILE
[LAMBDA (SKETCHW) (* ; "Edited 6-Apr-87 18:18 by rrb")
(* saves a sketch on a Tedit file.)
(* also changes the name of the sketch to be the same as the name of the file.)
(PROG ((SKETCH (INSURE.SKETCH (SKETCH.FROM.VIEWER SKETCHW)))
NOWNAME NEWNAME TEXTSTREAM)
(SETQ NOWNAME (SKETCH.TITLE SKETCH))
(OR [SETQ NEWNAME (MKATOM (PROMPT.GETINPUT SKETCHW "File to PUT to: " (SK.OUTPUT.FILE.NAME
NOWNAME]
(RETURN NIL))
(SETQ NEWNAME (SKETCH.PUT NEWNAME SKETCH SKETCHW))
[COND
((AND NEWNAME (NEQ NOWNAME NEWNAME))
(* change the name of the sketch to be the same as the file name.)
(replace (SKETCH SKETCHNAME) of SKETCH with NEWNAME)
(* change the titles of the viewers
 onto this sketch.)
(for SKW in (ALL.SKETCH.VIEWERS SKETCH) do (WINDOWPROP SKW 'TITLE (SK.WINDOW.TITLE
SKETCH]
(RETURN NEWNAME])
(SK.OUTPUT.FILE.NAME
[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")
NIL)
(T (PACKFILENAME 'VERSION NIL 'BODY SKETCHFILENAME])
(SKETCH.PUT
[LAMBDA (FILENAME SKETCH VIEWER REGION SCALE GRID) (* ; "Edited 1-Feb-2022 09:17 by rmk")
(* ; "Edited 17-Nov-87 17:47 by rrb")
(* puts the sketch SKETCH on the file named FILENAME.
 VIEWER if given provides promptwindows and PUTFNs.)
(PROG (TEXTSTREAM FILESTREAM)
[COND
((NOT (DEFINEDP (FUNCTION OPENTEXTSTREAM)))
(COND
((MOUSECONFIRM "TEDIT must be loaded to save sketches."
"Click LEFT to load TEDIT now, RIGHT to abort.")
(FILESLOAD TEDIT))
(T (STATUSPRINT VIEWER "Sketch not saved.")
(RETURN NIL]
[SETQ TEXTSTREAM (OPENTEXTSTREAM NIL NIL NIL NIL (AND VIEWER (LIST 'PUTFN
(WINDOWPROP VIEWER
'TEDIT.PUTFN)
'PROMPTWINDOW
(GETPROMPTWINDOW VIEWER]
(* make a text stream with nothing in
 it except the sketch.)
(TEDIT.INSERT.OBJECT [SKETCH.IMAGEOBJ (INSURE.SKETCH SKETCH)
(COND
((REGIONP REGION))
(VIEWER (SKETCH.REGION.VIEWED VIEWER)))
(COND
((NUMBERP SCALE))
(VIEWER (VIEWER.SCALE VIEWER)))
(COND
((NUMBERP GRID))
(VIEWER (SK.GRIDFACTOR VIEWER]
TEXTSTREAM 1)
(* set the margins so that if the user hardcopies it directly the margins come
 out)
(TEDIT.PARALOOKS TEXTSTREAM '(LEFTMARGIN 0 RIGHTMARGIN 0 QUAD CENTER)
1 1)
(TEDIT.PAGEFORMAT TEXTSTREAM (TEDIT.SINGLE.PAGEFORMAT NIL NIL NIL NIL NIL 0 0 0 0))
(* save the stream so that it can be
 closed.)
(SETQ FILESTREAM (TEDIT.PUT TEXTSTREAM FILENAME)) (* grab the full file name if it is
 available.)
(AND (OPENP FILESTREAM)
(SETQ FILENAME (CLOSEF FILESTREAM)))
(SK.MARK.UNDIRTY SKETCH)
(RETURN FILENAME])
(SK.GET.FROM.FILE
[LAMBDA (SKETCHW) (* rrb " 1-Oct-86 18:24")
(* retrieves a sketch from a file clobbering any existing sketch.)
(COND
((SK.CONFIRM.DESTRUCTION SKETCHW "Press LEFT to delete current elements before GET.")
(* put the delete on the history list so that it can be undone.
 This leaves the gotten file there as well but seems better than nothing.)
(SK.DELETE.ELEMENT2 (fetch (SKETCH SKETCHELTS) of (INSURE.SKETCH SKETCHW))
SKETCHW)
(SK.INCLUDE.FILE SKETCHW))
((SK.CONFIRM.DESTRUCTION SKETCHW "Press LEFT to include file, RIGHT to abort the GET.")
(SK.INCLUDE.FILE SKETCHW))
(T (STATUSPRINT SKETCHW "GET aborted. The INCLUDE subcommand to GET doesn't delete."])
(SK.INCLUDE.FILE
[LAMBDA (SKETCHW) (* rrb " 2-May-86 11:29")
(* retrieves a sketch from a file and includes it into the existing sketch.)
(* also changes the name of the sketch to be the same as the name of the file.)
(PROG ((SKETCH (SKETCH.FROM.VIEWER SKETCHW))
NOWNAME FILENAME READSKETCH DIRTYSTATUS)
(SETQ NOWNAME (fetch (SKETCH SKETCHNAME) of SKETCH))
(SETQ FILENAME (MKATOM (PROMPT.GETINPUT SKETCHW "File to GET: ")))
(COND
((MEMB FILENAME '(NIL %]))
(CLOSEPROMPTWINDOW SKETCHW)
(RETURN)))
(STATUSPRINT SKETCHW " ...")
(SETQ FILENAME (OR (INFILEP FILENAME)
(ERROR FILENAME "file not found.")))
(OR (SETQ READSKETCH (SKETCH.GET FILENAME SKETCHW))
(RETURN))
[COND
((NEQ NOWNAME FILENAME)
(* change the name of the sketch to be the same as the file name.)
(replace (SKETCH SKETCHNAME) of SKETCH with FILENAME)
(* change the name of the sketch to be the same as the file name.)
(for SKW in (ALL.SKETCH.VIEWERS SKETCH) do (WINDOWPROP SKW 'TITLE (SK.WINDOW.TITLE
SKETCH]
(ADD.SKETCH.TO.VIEWER READSKETCH SKETCHW (COND
((fetch (SKETCH SKETCHELTS) of SKETCH)
(* if the sketch has elements, ask about the defaults from the read file and
 set the status to leave the sketch marked dirty after the read.)
(SETQ DIRTYSTATUS T)
'ASK)
(T
(* if the sketch doesn't have any elements, use the defaults from the read file
 and set the status to leave the sketch marked clean after the read.)
NIL)))
(COND
((NULL DIRTYSTATUS)
(* if sketch was empty before, mark it as not needing to be dumped.)
(SK.MARK.UNDIRTY SKETCH)))
(STATUSPRINT SKETCHW " done."])
(SK.GET.IMAGEOBJ.FROM.FILE
[LAMBDA (FILENAME VIEWER) (* ; "Edited 12-Feb-88 14:13 by rrb")
(* reads the sketch image object
 datum from a file.)
(RESETFORM (CURSOR WAITINGCURSOR)
(PROG ([TEXTSTREAM (OPENTEXTSTREAM FILENAME NIL NIL NIL (AND VIEWER (LIST 'PROMPTWINDOW
(GETPROMPTWINDOW
VIEWER]
(READFILE (INFILEP FILENAME))
IMAGEOBJ READSKETCH)
(SETQ IMAGEOBJ (BIN TEXTSTREAM))
(CLOSEF TEXTSTREAM)
(COND
((NOT (IMAGEOBJP IMAGEOBJ))
(STATUSPRINT (OR VIEWER PROMPTWINDOW)
FILENAME " is not a sketch file.")
(RETURN NIL)))
(COND
([NOT (type? SKETCH (SETQ READSKETCH (fetch (SKETCHIMAGEOBJ SKIO.SKETCH)
of (IMAGEOBJPROP IMAGEOBJ
'OBJECTDATUM]
(STATUSPRINT (OR VIEWER PROMPTWINDOW)
FILENAME " is not a sketch file.")
(RETURN))
(T (* save the name of where the sketch
 came from.)
(replace (SKETCH SKETCHNAME) of READSKETCH with (OR READFILE
FILENAME))
(AND VIEWER (SK.CHANGE.GRID (fetch (SKETCHIMAGEOBJ SKIO.GRID)
of (IMAGEOBJPROP IMAGEOBJ 'OBJECTDATUM))
VIEWER))
(RETURN (IMAGEOBJPROP IMAGEOBJ 'OBJECTDATUM])
(SKETCH.GET
[LAMBDA (FILENAME VIEWER) (* rrb "29-Jan-86 11:21")
(* reads a sketch from a file.)
(fetch (SKETCHIMAGEOBJ SKIO.SKETCH) of (SK.GET.IMAGEOBJ.FROM.FILE FILENAME VIEWER])
(ADD.SKETCH.TO.VIEWER
[LAMBDA (SKETCHTOADD VIEWER ABOUTDEFAULTS?) (* rrb "20-Mar-86 15:55")
(* adds the element in SKETCHTOADD to
@@ -8789,150 +8761,151 @@ Otherwise, type '^'.")
(ADDTOVAR LAMA SK.UNIONREGIONS SKETCH.CREATE)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (21911 85500 (SKETCH 21921 . 24026) (SKETCH.FROM.A.FILE 24028 . 24343) (SKETCHW.CREATE
24345 . 28919) (SKETCH.RESET 28921 . 30443) (SKETCHW.FIG.CHANGED 30445 . 30785) (SK.WINDOW.TITLE 30787
. 31174) (EDITSLIDE 31176 . 31582) (EDITSKETCH 31584 . 31908) (SK.PUT.ON.FILE 31910 . 33362) (
SK.OUTPUT.FILE.NAME 33364 . 33849) (SKETCH.PUT 33851 . 36749) (SK.GET.FROM.FILE 36751 . 37644) (
SK.INCLUDE.FILE 37646 . 40154) (SK.GET.IMAGEOBJ.FROM.FILE 40156 . 42359) (SKETCH.GET 42361 . 42668) (
ADD.SKETCH.TO.VIEWER 42670 . 45256) (SK.ADD.ELEMENTS.TO.SKETCH 45258 . 45772) (SKETCH.SET.A.DEFAULT
45774 . 53325) (SK.POPUP.SELECTIONFN 53327 . 53869) (GETSKETCHWREGION 53871 . 54077) (SK.ADD.ELEMENT
54079 . 55658) (SK.ADD.PRIORITY.ELEMENT.TO.SKETCH 55660 . 57054) (SK.ELTS.BY.PRIORITY 57056 . 57352) (
SK.ORDER.ELEMENTS 57354 . 57621) (SK.ADD.PRIORITY.LOCAL.ELEMENT.TO.SKETCH 57623 . 59117) (
SK.ADD.ELEMENTS 59119 . 59643) (SK.CHECK.WHENADDEDFN 59645 . 60375) (SK.APPLY.MENU.COMMAND 60377 .
61175) (SK.DELETE.ELEMENT1 61177 . 62755) (SK.MARK.DIRTY 62757 . 63423) (SK.MARK.UNDIRTY 63425 . 63756
) (SK.MENU.AND.RETURN.FIELD 63758 . 64423) (SKETCH.SET.BRUSH.SHAPE 64425 . 65010) (
SKETCH.SET.BRUSH.SIZE 65012 . 65518) (SKETCHW.CLOSEFN 65520 . 67311) (SK.CONFIRM.DESTRUCTION 67313 .
68312) (SKETCHW.OUTFN 68314 . 68578) (SKETCHW.REOPENFN 68580 . 68992) (MAKE.LOCAL.SKETCH 68994 . 69724
) (MAP.SKETCHSPEC.INTO.VIEWER 69726 . 70936) (SKETCHW.REPAINTFN 70938 . 71766) (SKETCHW.REPAINTFN1
71768 . 72707) (SK.DRAWFIGURE.IF 72709 . 73231) (SKETCHW.SCROLLFN 73233 . 77426) (SKETCHW.RESHAPEFN
77428 . 79686) (SK.UPDATE.EVENT.SELECTION 79688 . 81743) (LIGHTGRAYWINDOW 81745 . 81908) (
SK.ADD.SPACES 81910 . 82656) (SK.SKETCH.MENU 82658 . 82980) (SK.CHECK.IMAGEOBJ.WHENDELETEDFN 82982 .
83834) (SK.APPLY.IMAGEOBJ.WHENDELETEDFN 83836 . 84796) (SK.RETURN.TTY 84798 . 85166) (SK.TAKE.TTY
85168 . 85498)) (85554 108969 (SKETCH.COMMANDMENU 85564 . 85988) (SKETCH.COMMANDMENU.ITEMS 85990 .
106073) (CREATE.SKETCHW.COMMANDMENU 106075 . 106495) (SKETCHW.SELECTIONFN 106497 . 107600) (
SKETCH.MONITORLOCK 107602 . 108073) (SK.EVAL.AS.PROCESS 108075 . 108688) (SK.EVAL.WITH.LOCK 108690 .
108967)) (108970 116774 (SK.FIX.MENU 108980 . 110074) (SK.SET.UP.MENUS 110076 . 112377) (
SK.INSURE.HAS.MENU 112379 . 113041) (SK.CREATE.STANDARD.MENU 113043 . 113488) (SK.ADD.ITEM.TO.MENU
113490 . 114165) (SK.GET.VIEWER.POPUP.MENU 114167 . 116368) (SK.CLEAR.POPUP.MENU 116370 . 116772)) (
116830 125652 (SKETCH.CREATE 116840 . 117626) (GETSKETCHPROP 117628 . 120685) (PUTSKETCHPROP 120687 .
124619) (CREATE.DEFAULT.SKETCH.CONTEXT 124621 . 125650)) (125818 148714 (SK.COPY.BUTTONEVENTFN 125828
. 137056) (SK.BUTTONEVENT.MARK 137058 . 137441) (SK.BUILD.IMAGEOBJ 137443 . 147358) (
SK.BUTTONEVENT.OVERP 147360 . 147983) (SK.BUTTONEVENT.SAME.KEYS 147985 . 148712)) (148993 174808 (
SK.SEL.AND.CHANGE 149003 . 149295) (SK.CHECK.WHENCHANGEDFN 149297 . 150003) (SK.CHECK.PRECHANGEFN
150005 . 150606) (SK.CHANGE.ELT 150608 . 150800) (SK.CHANGE.THING 150802 . 152053) (
SKETCH.CHANGE.ELEMENTS 152055 . 153238) (SK.APPLY.SINGLE.CHANGEFN 153240 . 153813) (SK.DO.CHANGESPECS
153815 . 155474) (SK.VIEWER.FROM.SKETCH.ARG 155476 . 155918) (SK.DO.CHANGESPEC1 155920 . 157795) (
SK.CHANGEFN 157797 . 158377) (SK.READCHANGEFN 158379 . 158838) (SK.DEFAULT.CHANGEFN 158840 . 161312) (
CHANGEABLEFIELDITEMS 161314 . 161961) (SK.APPLY.CHANGE.COMMAND 161963 . 162580) (
SK.DO.AND.RECORD.CHANGES 162582 . 163979) (SK.APPLY.CHANGE.COMMAND1 163981 . 165469) (
SK.ELEMENTS.CHANGEFN 165471 . 167795) (READ.POINT.TO.ADD 167797 . 168741) (GLOBAL.KNOT.FROM.LOCAL
168743 . 169203) (SK.ADD.KNOT.TO.ELEMENT 169205 . 170149) (SK.GROUP.CHANGEFN 170151 . 171363) (
SK.GROUP.CHANGEFN1 171365 . 174806)) (174975 188708 (ADD.ELEMENT.TO.SKETCH 174985 . 176691) (
ADD.SKETCH.VIEWER 176693 . 177361) (REMOVE.SKETCH.VIEWER 177363 . 177976) (ALL.SKETCH.VIEWERS 177978
. 178218) (SKETCH.ALL.VIEWERS 178220 . 178480) (VIEWER.BUCKET 178482 . 178633) (ELT.INSIDE.REGION?
178635 . 178962) (ELT.INSIDE.SKWP 178964 . 179255) (SCALE.FROM.SKW 179257 . 179507) (
SK.ADDELT.TO.WINDOW 179509 . 180369) (SK.CALC.REGION.VIEWED 180371 . 180749) (SK.DRAWFIGURE 180751 .
182040) (SK.DRAWFIGURE1 182042 . 182426) (SK.LOCAL.FROM.GLOBAL 182428 . 183663) (SKETCH.REGION.VIEWED
183665 . 186352) (SKETCH.VIEW.FROM.NAME 186354 . 186784) (SK.UPDATE.REGION.VIEWED 186786 . 187178) (
SKETCH.ADD.AND.DISPLAY 187180 . 187588) (SKETCH.ADD.AND.DISPLAY1 187590 . 188028) (SK.ADD.ITEM 188030
. 188362) (SKETCHW.ADD.INSTANCE 188364 . 188706)) (188749 201937 (SK.SEL.AND.DELETE 188759 . 189147)
(SK.ERASE.AND.DELETE.ITEM 189149 . 189568) (REMOVE.ELEMENT.FROM.SKETCH 189570 . 190681) (
SK.DELETE.ELEMENT 190683 . 191241) (SK.DELETE.ELEMENT2 191243 . 191904) (SK.DELETE.KNOT 191906 .
192197) (SK.SEL.AND.DELETE.KNOT 192199 . 193324) (SK.DELETE.ELEMENT.KNOT 193326 . 196533) (
SK.CHECK.WHENDELETEDFN 196535 . 197315) (SK.CHECK.PREEDITFN 197317 . 197801) (
SK.CHECK.END.INITIAL.EDIT 197803 . 198337) (SK.CHECK.WHENPOINTDELETEDFN 198339 . 199135) (SK.ERASE.ELT
199137 . 199473) (SK.DELETE.ELT 199475 . 199850) (SK.DELETE.ITEM 199852 . 200260) (DELFROMTCONC
200262 . 201935)) (201976 215810 (SK.COPY.ELT 201986 . 202356) (SK.SEL.AND.COPY 202358 . 202741) (
SK.COPY.ELEMENTS 202743 . 208371) (SK.ADD.COPY.OF.ELEMENTS 208373 . 210140) (
SK.GLOBAL.FROM.LOCAL.ELEMENTS 210142 . 210382) (SK.COPY.ITEM 210384 . 211181) (SK.INSERT.SKETCH 211183
. 215808)) (215850 245871 (SK.MOVE.ELT 215860 . 216135) (SK.MOVE.ELT.OR.PT 216137 . 216450) (
SK.APPLY.DEFAULT.MOVE 216452 . 216886) (SK.SEL.AND.MOVE 216888 . 217435) (SK.MOVE.ELEMENTS 217437 .
228309) (SKETCH.MOVE.ELEMENTS 228311 . 230242) (SKETCH.COPY.ELEMENTS 230244 . 232291) (
\SKETCH.COPY.ELEMENT 232293 . 233018) (SK.TRANSLATE.ELEMENT 233020 . 233503) (SK.COPY.GLOBAL.ELEMENT
233505 . 233716) (SK.MAKE.ELEMENT.MOVE.ARG 233718 . 234338) (SK.MAKE.ELEMENTS.MOVE.ARG 234340 . 234862
) (SK.MAKE.POINTS.AND.ELEMENTS.MOVE.ARG 234864 . 235933) (SK.SHOW.FIG.FROM.INFO 235935 . 236303) (
SK.MOVE.THING 236305 . 237211) (UPDATE.ELEMENT.IN.SKETCH 237213 . 239268) (SK.UPDATE.ELEMENT 239270 .
240829) (SK.UPDATE.ELEMENTS 240831 . 241550) (SK.UPDATE.ELEMENT1 241552 . 245452) (
SK.MOVE.ELEMENT.POINT 245454 . 245869)) (245934 268223 (SK.MOVE.POINTS 245944 . 246231) (
SK.SEL.AND.MOVE.POINTS 246233 . 246538) (SK.DO.MOVE.ELEMENT.POINTS 246540 . 255197) (
SK.MOVE.ITEM.POINTS 255199 . 256870) (SK.TRANSLATEPTSFN 256872 . 257256) (SK.TRANSLATE.POINTS 257258
. 258159) (SK.SELECT.MULTIPLE.POINTS 258161 . 263801) (SK.CONTROL.POINTS.IN.REGION 263803 . 265224) (
SK.ADD.PT.SELECTION 265226 . 265690) (SK.REMOVE.PT.SELECTION 265692 . 266309) (SK.ADD.POINT 266311 .
266934) (SK.ELTS.CONTAINING.PTS 266936 . 267561) (SK.HOTSPOTS.NOT.ON.LIST 267563 . 268221)) (268381
271177 (SK.SET.MOVE.MODE 268391 . 269062) (SK.SET.MOVE.MODE.POINTS 269064 . 269403) (
SK.SET.MOVE.MODE.ELEMENTS 269405 . 269749) (SK.SET.MOVE.MODE.COMBINED 269751 . 270101) (READMOVEMODE
270103 . 271175)) (271178 289933 (SK.ALIGN.POINTS 271188 . 271478) (SK.SEL.AND.ALIGN.POINTS 271480 .
271789) (SK.ALIGN.POINTS.LEFT 271791 . 272094) (SK.ALIGN.POINTS.RIGHT 272096 . 272401) (
SK.ALIGN.POINTS.TOP 272403 . 272704) (SK.ALIGN.POINTS.BOTTOM 272706 . 273013) (
SK.EVEN.SPACE.POINTS.IN.X 273015 . 273335) (SK.EVEN.SPACE.POINTS.IN.Y 273337 . 273657) (
SK.DO.ALIGN.POINTS 273659 . 284281) (SK.NTH.CONTROL.POINT 284283 . 284744) (
SK.GET.SELECTED.ELEMENT.STRUCTURE 284746 . 285412) (SK.CORRESPONDING.CONTROL.PT 285414 . 285968) (
SK.CONTROL.POINT.NUMBER 285970 . 286340) (SK.DO.ALIGN.SETVALUE 286342 . 289931)) (289997 303429 (
SKETCH.CREATE.GROUP 290007 . 290496) (SK.CREATE.GROUP1 290498 . 291045) (SK.UPDATE.GROUP.AFTER.CHANGE
291047 . 291836) (SK.GROUP.ELTS 291838 . 292119) (SK.SEL.AND.GROUP 292121 . 292507) (SK.GROUP.ELEMENTS
292509 . 294158) (SK.UNGROUP.ELT 294160 . 294444) (SK.SEL.AND.UNGROUP 294446 . 296115) (
SK.UNGROUP.ELEMENT 296117 . 297053) (SK.GLOBAL.REGION.OF.LOCAL.ELEMENTS 297055 . 297977) (
SK.LOCAL.REGION.OF.LOCAL.ELEMENTS 297979 . 298990) (SK.GLOBAL.REGION.OF.GLOBAL.ELEMENTS 298992 .
300332) (SK.UNIONREGIONS 300334 . 302700) (SKETCH.REGION.OF.SKETCH 302702 . 303118) (SK.FLASHREGION
303120 . 303427)) (303430 316901 (INIT.GROUP.ELEMENT 303440 . 304312) (GROUP.DRAWFN 304314 . 304764) (
GROUP.EXPANDFN 304766 . 306329) (GROUP.INSIDEFN 306331 . 306740) (GROUP.REGIONFN 306742 . 307137) (
GROUP.GLOBALREGIONFN 307139 . 307457) (GROUP.TRANSLATEFN 307459 . 309491) (GROUP.TRANSFORMFN 309493 .
312973) (GROUP.READCHANGEFN 312975 . 316899)) (316902 317910 (REGION.CENTER 316912 . 317513) (
REMOVE.LAST 317515 . 317908)) (317963 323070 (SK.MOVE.GROUP.CONTROL.PT 317973 . 318264) (
SK.SEL.AND.MOVE.CONTROL.PT 318266 . 319670) (SK.MOVE.GROUP.ELEMENT.CONTROL.POINT 319672 . 321745) (
SK.READ.NEW.GROUP.CONTROL.PT 321747 . 323068)) (323329 327953 (SK.DO.GROUP 323339 . 324791) (
SK.CHECK.WHENGROUPEDFN 324793 . 325503) (SK.DO.UNGROUP 325505 . 326710) (SK.CHECK.WHENUNGROUPEDFN
326712 . 327299) (SK.GROUP.UNDO 327301 . 327624) (SK.UNGROUP.UNDO 327626 . 327951)) (328194 333116 (
SK.FREEZE.ELTS 328204 . 328488) (SK.SEL.AND.FREEZE 328490 . 328880) (SK.FREEZE.ELEMENTS 328882 .
329433) (SK.UNFREEZE.ELT 329435 . 329724) (SK.SEL.AND.UNFREEZE 329726 . 331262) (SK.UNFREEZE.ELEMENTS
331264 . 331823) (SK.FREEZE.UNDO 331825 . 332070) (SK.UNFREEZE.UNDO 332072 . 332319) (SK.DO.FREEZE
332321 . 332714) (SK.DO.UNFREEZE 332716 . 333114)) (333346 343156 (SKETCH.ELEMENTS.OF.SKETCH 333356 .
334191) (SKETCH.LIST.OF.ELEMENTS 334193 . 334911) (SKETCH.ADD.ELEMENT 334913 . 335988) (
SKETCH.DELETE.ELEMENT 335990 . 337722) (DELFROMGROUPELT 337724 . 338524) (SKETCH.ELEMENT.TYPE 338526
. 338875) (SKETCH.ELEMENT.CHANGED 338877 . 340445) (SK.ELEMENT.CHANGED1 340447 . 341098) (
SK.UPDATE.GLOBAL.IMAGE.OBJECT.ELEMENT 341100 . 343154)) (343210 347822 (INSURE.SKETCH 343220 . 345835)
(LOCALSPECS.FROM.VIEWER 345837 . 346197) (SK.LOCAL.ELT.FROM.GLOBALPART 346199 . 346667) (
SKETCH.FROM.VIEWER 346669 . 346903) (INSPECT.SKETCH 346905 . 347230) (ELT.INSIDE.SKETCHWP 347232 .
347505) (SK.INSIDE.REGION 347507 . 347820)) (347823 352153 (MAPSKETCHSPECS 347833 . 348454) (
MAPCOLLECTSKETCHSPECS 348456 . 349205) (MAPSKETCHSPECSUNTIL 349207 . 350015) (MAPGLOBALSKETCHSPECS
350017 . 350718) (MAPGLOBALSKETCHELEMENTS 350720 . 352151)) (352215 378107 (SK.ADD.SELECTION 352225 .
352965) (SK.COPY.INSERTFN 352967 . 356598) (SCREENELEMENTP 356600 . 357073) (SK.ITEM.REGION 357075 .
357562) (SK.ELEMENT.GLOBAL.REGION 357564 . 358092) (SK.LOCAL.ITEMS.IN.REGION 358094 . 360073) (
SK.REGIONFN 360075 . 360397) (SK.GLOBAL.REGIONFN 360399 . 360757) (SK.REMOVE.SELECTION 360759 . 361487
) (SK.SELECT.MULTIPLE.ITEMS 361489 . 371931) (SKETCH.GET.ELEMENTS 371933 . 373356) (SK.PUT.MARKS.UP
373358 . 373697) (SK.TAKE.MARKS.DOWN 373699 . 374038) (SK.TRANSLATE.GLOBALPART 374040 . 376167) (
SK.TRANSLATE.ITEM 376169 . 377096) (SK.TRANSLATEFN 377098 . 377294) (TRANSLATE.SKETCH 377296 . 378105)
) (378373 381280 (SK.INPUT.SCALE 378383 . 379230) (SK.UPDATE.SKETCHCONTEXT 379232 . 379829) (
SK.SET.INPUT.SCALE 379831 . 380480) (SK.SET.INPUT.SCALE.CURRENT 380482 . 380773) (
SK.SET.INPUT.SCALE.VALUE 380775 . 381278)) (381331 383243 (SK.SET.FEEDBACK.MODE 381341 . 382647) (
SK.SET.FEEDBACK.POINT 382649 . 382817) (SK.SET.FEEDBACK.VERBOSE 382819 . 382988) (
SK.SET.FEEDBACK.ALWAYS 382990 . 383241)) (383394 384772 (SKETCH.TITLE 383404 . 383768) (
SK.SHRINK.ICONCREATE 383770 . 384770)) (390462 393276 (READBRUSHSHAPE 390472 . 390931) (READ.FUNCTION
390933 . 391448) (READBRUSHSIZE 391450 . 391908) (READANGLE 391910 . 392402) (READARCDIRECTION 392404
. 393274)) (393277 403688 (SK.CHANGE.DASHING 393287 . 397235) (READ.AND.SAVE.NEW.DASHING 397237 .
399005) (READ.NEW.DASHING 399007 . 400747) (READ.DASHING.CHANGE 400749 . 402224) (SK.CACHE.DASHING
402226 . 403228) (SK.DASHING.LABEL 403230 . 403686)) (403689 407394 (READ.FILLING.CHANGE 403699 .
405680) (SK.CACHE.FILLING 405682 . 406400) (READ.AND.SAVE.NEW.FILLING 406402 . 407000) (
SK.FILLING.LABEL 407002 . 407392)) (407778 444031 (SK.GETGLOBALPOSITION 407788 . 408093) (
SKETCH.TRACK.ELEMENTS 408095 . 411615) (SK.PICKOUT.WHOLE.MOVE.ELEMENTS 411617 . 412176) (
MAP.SKETCH.ELEMENTS.INTO.VIEWER 412178 . 412570) (MAP.GLOBAL.POSITION.INTO.VIEWER 412572 . 412952) (
SKETCH.TO.VIEWER.POSITION 412954 . 413313) (SKETCH.TRACK.IMAGE 413315 . 414169) (SK.TRACK.IMAGE1
414171 . 415583) (MAP.VIEWER.XY.INTO.GLOBAL 415585 . 416579) (SK.SET.POSITION 416581 . 416917) (
MAP.VIEWER.PT.INTO.GLOBAL 416919 . 418025) (VIEWER.TO.SKETCH.POSITION 418027 . 418662) (
SK.INSURE.SCALE 418664 . 418924) (SKETCH.TO.VIEWER.REGION 418926 . 419732) (VIEWER.TO.SKETCH.REGION
419734 . 420072) (SK.READ.POINT.WITH.FEEDBACK 420074 . 431077) (SKETCH.GET.POSITION 431079 . 432959) (
\CLOBBER.POSITION 432961 . 433409) (NEAREST.HOT.SPOT 433411 . 434939) (GETWREGION 434941 . 435702) (
GET.BITMAP.POSITION 435704 . 436488) (SK.TRACK.BITMAP1 436490 . 444029)) (444600 475486 (
SK.BRING.UP.POSITION.PAD 444610 . 450470) (SK.PAD.READER.POSITION 450472 . 452121) (
SK.POSITION.READER.REPAINTFN 452123 . 453907) (SK.POSITION.PAD.FROM.VIEWER 453909 . 455251) (
SK.INIT.POSITION.NUMBER.PAD.MENU 455253 . 455603) (SK.READ.POSITION.PAD.HANDLER 455605 . 461337) (
DISPLAY.POSITION.READER.TOTAL 461339 . 463637) (POSITION.PAD.READER.HANDLER 463639 . 471682) (
POSITIONPAD.HELDFN 471684 . 473168) (\POSITION.PAD.ADD.DIGIT.MENU 473170 . 474749) (
\POSITION.READER.NUMBERPAD 474751 . 475484)) (477112 479790 (SK.DRAWFN 477122 . 477488) (
SK.TRANSFORMFN 477490 . 477871) (SK.EXPANDFN 477873 . 478150) (SK.INPUT 478152 . 478533) (SK.INSIDEFN
478535 . 479175) (SK.UPDATEFN 479177 . 479788)) (484955 487111 (UPDATE-SKETCH 484965 . 486078) (
EDIT-SKETCH 486080 . 487109)) (487712 491657 (SK.CHECK.SKETCH.VERSION 487722 . 488962) (
SK.INSURE.RECORD.LENGTH 488964 . 490447) (SK.INSURE.HAS.LENGTH 490449 . 491187) (SK.RECORD.LENGTH
491189 . 491363) (SK.SET.RECORD.LENGTHS 491365 . 491655)) (492120 493007 (
SK.ADD.EDIT.COMMAND.TO.FILE.BROWSER 492130 . 493005)))))
(FILEMAP (NIL (18222 20092 (SKETCH.FLUSH.EXISTING 18232 . 20090)) (20202 31352 (SKETCH.FROM.A.FILE
20212 . 20527) (SK.PUT.ON.FILE 20529 . 21981) (SKETCH.PUT 21983 . 24626) (SK.OUTPUT.FILE.NAME 24628 .
25113) (SK.INCLUDE.FILE 25115 . 27981) (SK.GET.IMAGEOBJ.FROM.FILE 27983 . 30146) (SK.GET.FROM.FILE
30148 . 31041) (SKETCH.GET 31043 . 31350)) (31353 83865 (SKETCH 31363 . 33468) (SKETCHW.CREATE 33470
. 38044) (SKETCH.RESET 38046 . 39568) (SKETCHW.FIG.CHANGED 39570 . 39910) (SK.WINDOW.TITLE 39912 .
40299) (EDITSLIDE 40301 . 40707) (EDITSKETCH 40709 . 41033) (ADD.SKETCH.TO.VIEWER 41035 . 43621) (
SK.ADD.ELEMENTS.TO.SKETCH 43623 . 44137) (SKETCH.SET.A.DEFAULT 44139 . 51690) (SK.POPUP.SELECTIONFN
51692 . 52234) (GETSKETCHWREGION 52236 . 52442) (SK.ADD.ELEMENT 52444 . 54023) (
SK.ADD.PRIORITY.ELEMENT.TO.SKETCH 54025 . 55419) (SK.ELTS.BY.PRIORITY 55421 . 55717) (
SK.ORDER.ELEMENTS 55719 . 55986) (SK.ADD.PRIORITY.LOCAL.ELEMENT.TO.SKETCH 55988 . 57482) (
SK.ADD.ELEMENTS 57484 . 58008) (SK.CHECK.WHENADDEDFN 58010 . 58740) (SK.APPLY.MENU.COMMAND 58742 .
59540) (SK.DELETE.ELEMENT1 59542 . 61120) (SK.MARK.DIRTY 61122 . 61788) (SK.MARK.UNDIRTY 61790 . 62121
) (SK.MENU.AND.RETURN.FIELD 62123 . 62788) (SKETCH.SET.BRUSH.SHAPE 62790 . 63375) (
SKETCH.SET.BRUSH.SIZE 63377 . 63883) (SKETCHW.CLOSEFN 63885 . 65676) (SK.CONFIRM.DESTRUCTION 65678 .
66677) (SKETCHW.OUTFN 66679 . 66943) (SKETCHW.REOPENFN 66945 . 67357) (MAKE.LOCAL.SKETCH 67359 . 68089
) (MAP.SKETCHSPEC.INTO.VIEWER 68091 . 69301) (SKETCHW.REPAINTFN 69303 . 70131) (SKETCHW.REPAINTFN1
70133 . 71072) (SK.DRAWFIGURE.IF 71074 . 71596) (SKETCHW.SCROLLFN 71598 . 75791) (SKETCHW.RESHAPEFN
75793 . 78051) (SK.UPDATE.EVENT.SELECTION 78053 . 80108) (LIGHTGRAYWINDOW 80110 . 80273) (
SK.ADD.SPACES 80275 . 81021) (SK.SKETCH.MENU 81023 . 81345) (SK.CHECK.IMAGEOBJ.WHENDELETEDFN 81347 .
82199) (SK.APPLY.IMAGEOBJ.WHENDELETEDFN 82201 . 83161) (SK.RETURN.TTY 83163 . 83531) (SK.TAKE.TTY
83533 . 83863)) (83919 107334 (SKETCH.COMMANDMENU 83929 . 84353) (SKETCH.COMMANDMENU.ITEMS 84355 .
104438) (CREATE.SKETCHW.COMMANDMENU 104440 . 104860) (SKETCHW.SELECTIONFN 104862 . 105965) (
SKETCH.MONITORLOCK 105967 . 106438) (SK.EVAL.AS.PROCESS 106440 . 107053) (SK.EVAL.WITH.LOCK 107055 .
107332)) (107335 115139 (SK.FIX.MENU 107345 . 108439) (SK.SET.UP.MENUS 108441 . 110742) (
SK.INSURE.HAS.MENU 110744 . 111406) (SK.CREATE.STANDARD.MENU 111408 . 111853) (SK.ADD.ITEM.TO.MENU
111855 . 112530) (SK.GET.VIEWER.POPUP.MENU 112532 . 114733) (SK.CLEAR.POPUP.MENU 114735 . 115137)) (
115195 124017 (SKETCH.CREATE 115205 . 115991) (GETSKETCHPROP 115993 . 119050) (PUTSKETCHPROP 119052 .
122984) (CREATE.DEFAULT.SKETCH.CONTEXT 122986 . 124015)) (124183 147079 (SK.COPY.BUTTONEVENTFN 124193
. 135421) (SK.BUTTONEVENT.MARK 135423 . 135806) (SK.BUILD.IMAGEOBJ 135808 . 145723) (
SK.BUTTONEVENT.OVERP 145725 . 146348) (SK.BUTTONEVENT.SAME.KEYS 146350 . 147077)) (147358 173173 (
SK.SEL.AND.CHANGE 147368 . 147660) (SK.CHECK.WHENCHANGEDFN 147662 . 148368) (SK.CHECK.PRECHANGEFN
148370 . 148971) (SK.CHANGE.ELT 148973 . 149165) (SK.CHANGE.THING 149167 . 150418) (
SKETCH.CHANGE.ELEMENTS 150420 . 151603) (SK.APPLY.SINGLE.CHANGEFN 151605 . 152178) (SK.DO.CHANGESPECS
152180 . 153839) (SK.VIEWER.FROM.SKETCH.ARG 153841 . 154283) (SK.DO.CHANGESPEC1 154285 . 156160) (
SK.CHANGEFN 156162 . 156742) (SK.READCHANGEFN 156744 . 157203) (SK.DEFAULT.CHANGEFN 157205 . 159677) (
CHANGEABLEFIELDITEMS 159679 . 160326) (SK.APPLY.CHANGE.COMMAND 160328 . 160945) (
SK.DO.AND.RECORD.CHANGES 160947 . 162344) (SK.APPLY.CHANGE.COMMAND1 162346 . 163834) (
SK.ELEMENTS.CHANGEFN 163836 . 166160) (READ.POINT.TO.ADD 166162 . 167106) (GLOBAL.KNOT.FROM.LOCAL
167108 . 167568) (SK.ADD.KNOT.TO.ELEMENT 167570 . 168514) (SK.GROUP.CHANGEFN 168516 . 169728) (
SK.GROUP.CHANGEFN1 169730 . 173171)) (173340 187073 (ADD.ELEMENT.TO.SKETCH 173350 . 175056) (
ADD.SKETCH.VIEWER 175058 . 175726) (REMOVE.SKETCH.VIEWER 175728 . 176341) (ALL.SKETCH.VIEWERS 176343
. 176583) (SKETCH.ALL.VIEWERS 176585 . 176845) (VIEWER.BUCKET 176847 . 176998) (ELT.INSIDE.REGION?
177000 . 177327) (ELT.INSIDE.SKWP 177329 . 177620) (SCALE.FROM.SKW 177622 . 177872) (
SK.ADDELT.TO.WINDOW 177874 . 178734) (SK.CALC.REGION.VIEWED 178736 . 179114) (SK.DRAWFIGURE 179116 .
180405) (SK.DRAWFIGURE1 180407 . 180791) (SK.LOCAL.FROM.GLOBAL 180793 . 182028) (SKETCH.REGION.VIEWED
182030 . 184717) (SKETCH.VIEW.FROM.NAME 184719 . 185149) (SK.UPDATE.REGION.VIEWED 185151 . 185543) (
SKETCH.ADD.AND.DISPLAY 185545 . 185953) (SKETCH.ADD.AND.DISPLAY1 185955 . 186393) (SK.ADD.ITEM 186395
. 186727) (SKETCHW.ADD.INSTANCE 186729 . 187071)) (187114 200302 (SK.SEL.AND.DELETE 187124 . 187512)
(SK.ERASE.AND.DELETE.ITEM 187514 . 187933) (REMOVE.ELEMENT.FROM.SKETCH 187935 . 189046) (
SK.DELETE.ELEMENT 189048 . 189606) (SK.DELETE.ELEMENT2 189608 . 190269) (SK.DELETE.KNOT 190271 .
190562) (SK.SEL.AND.DELETE.KNOT 190564 . 191689) (SK.DELETE.ELEMENT.KNOT 191691 . 194898) (
SK.CHECK.WHENDELETEDFN 194900 . 195680) (SK.CHECK.PREEDITFN 195682 . 196166) (
SK.CHECK.END.INITIAL.EDIT 196168 . 196702) (SK.CHECK.WHENPOINTDELETEDFN 196704 . 197500) (SK.ERASE.ELT
197502 . 197838) (SK.DELETE.ELT 197840 . 198215) (SK.DELETE.ITEM 198217 . 198625) (DELFROMTCONC
198627 . 200300)) (200341 214175 (SK.COPY.ELT 200351 . 200721) (SK.SEL.AND.COPY 200723 . 201106) (
SK.COPY.ELEMENTS 201108 . 206736) (SK.ADD.COPY.OF.ELEMENTS 206738 . 208505) (
SK.GLOBAL.FROM.LOCAL.ELEMENTS 208507 . 208747) (SK.COPY.ITEM 208749 . 209546) (SK.INSERT.SKETCH 209548
. 214173)) (214215 244236 (SK.MOVE.ELT 214225 . 214500) (SK.MOVE.ELT.OR.PT 214502 . 214815) (
SK.APPLY.DEFAULT.MOVE 214817 . 215251) (SK.SEL.AND.MOVE 215253 . 215800) (SK.MOVE.ELEMENTS 215802 .
226674) (SKETCH.MOVE.ELEMENTS 226676 . 228607) (SKETCH.COPY.ELEMENTS 228609 . 230656) (
\SKETCH.COPY.ELEMENT 230658 . 231383) (SK.TRANSLATE.ELEMENT 231385 . 231868) (SK.COPY.GLOBAL.ELEMENT
231870 . 232081) (SK.MAKE.ELEMENT.MOVE.ARG 232083 . 232703) (SK.MAKE.ELEMENTS.MOVE.ARG 232705 . 233227
) (SK.MAKE.POINTS.AND.ELEMENTS.MOVE.ARG 233229 . 234298) (SK.SHOW.FIG.FROM.INFO 234300 . 234668) (
SK.MOVE.THING 234670 . 235576) (UPDATE.ELEMENT.IN.SKETCH 235578 . 237633) (SK.UPDATE.ELEMENT 237635 .
239194) (SK.UPDATE.ELEMENTS 239196 . 239915) (SK.UPDATE.ELEMENT1 239917 . 243817) (
SK.MOVE.ELEMENT.POINT 243819 . 244234)) (244299 266588 (SK.MOVE.POINTS 244309 . 244596) (
SK.SEL.AND.MOVE.POINTS 244598 . 244903) (SK.DO.MOVE.ELEMENT.POINTS 244905 . 253562) (
SK.MOVE.ITEM.POINTS 253564 . 255235) (SK.TRANSLATEPTSFN 255237 . 255621) (SK.TRANSLATE.POINTS 255623
. 256524) (SK.SELECT.MULTIPLE.POINTS 256526 . 262166) (SK.CONTROL.POINTS.IN.REGION 262168 . 263589) (
SK.ADD.PT.SELECTION 263591 . 264055) (SK.REMOVE.PT.SELECTION 264057 . 264674) (SK.ADD.POINT 264676 .
265299) (SK.ELTS.CONTAINING.PTS 265301 . 265926) (SK.HOTSPOTS.NOT.ON.LIST 265928 . 266586)) (266746
269542 (SK.SET.MOVE.MODE 266756 . 267427) (SK.SET.MOVE.MODE.POINTS 267429 . 267768) (
SK.SET.MOVE.MODE.ELEMENTS 267770 . 268114) (SK.SET.MOVE.MODE.COMBINED 268116 . 268466) (READMOVEMODE
268468 . 269540)) (269543 288298 (SK.ALIGN.POINTS 269553 . 269843) (SK.SEL.AND.ALIGN.POINTS 269845 .
270154) (SK.ALIGN.POINTS.LEFT 270156 . 270459) (SK.ALIGN.POINTS.RIGHT 270461 . 270766) (
SK.ALIGN.POINTS.TOP 270768 . 271069) (SK.ALIGN.POINTS.BOTTOM 271071 . 271378) (
SK.EVEN.SPACE.POINTS.IN.X 271380 . 271700) (SK.EVEN.SPACE.POINTS.IN.Y 271702 . 272022) (
SK.DO.ALIGN.POINTS 272024 . 282646) (SK.NTH.CONTROL.POINT 282648 . 283109) (
SK.GET.SELECTED.ELEMENT.STRUCTURE 283111 . 283777) (SK.CORRESPONDING.CONTROL.PT 283779 . 284333) (
SK.CONTROL.POINT.NUMBER 284335 . 284705) (SK.DO.ALIGN.SETVALUE 284707 . 288296)) (288362 301794 (
SKETCH.CREATE.GROUP 288372 . 288861) (SK.CREATE.GROUP1 288863 . 289410) (SK.UPDATE.GROUP.AFTER.CHANGE
289412 . 290201) (SK.GROUP.ELTS 290203 . 290484) (SK.SEL.AND.GROUP 290486 . 290872) (SK.GROUP.ELEMENTS
290874 . 292523) (SK.UNGROUP.ELT 292525 . 292809) (SK.SEL.AND.UNGROUP 292811 . 294480) (
SK.UNGROUP.ELEMENT 294482 . 295418) (SK.GLOBAL.REGION.OF.LOCAL.ELEMENTS 295420 . 296342) (
SK.LOCAL.REGION.OF.LOCAL.ELEMENTS 296344 . 297355) (SK.GLOBAL.REGION.OF.GLOBAL.ELEMENTS 297357 .
298697) (SK.UNIONREGIONS 298699 . 301065) (SKETCH.REGION.OF.SKETCH 301067 . 301483) (SK.FLASHREGION
301485 . 301792)) (301795 315266 (INIT.GROUP.ELEMENT 301805 . 302677) (GROUP.DRAWFN 302679 . 303129) (
GROUP.EXPANDFN 303131 . 304694) (GROUP.INSIDEFN 304696 . 305105) (GROUP.REGIONFN 305107 . 305502) (
GROUP.GLOBALREGIONFN 305504 . 305822) (GROUP.TRANSLATEFN 305824 . 307856) (GROUP.TRANSFORMFN 307858 .
311338) (GROUP.READCHANGEFN 311340 . 315264)) (315267 316275 (REGION.CENTER 315277 . 315878) (
REMOVE.LAST 315880 . 316273)) (316328 321435 (SK.MOVE.GROUP.CONTROL.PT 316338 . 316629) (
SK.SEL.AND.MOVE.CONTROL.PT 316631 . 318035) (SK.MOVE.GROUP.ELEMENT.CONTROL.POINT 318037 . 320110) (
SK.READ.NEW.GROUP.CONTROL.PT 320112 . 321433)) (321694 326318 (SK.DO.GROUP 321704 . 323156) (
SK.CHECK.WHENGROUPEDFN 323158 . 323868) (SK.DO.UNGROUP 323870 . 325075) (SK.CHECK.WHENUNGROUPEDFN
325077 . 325664) (SK.GROUP.UNDO 325666 . 325989) (SK.UNGROUP.UNDO 325991 . 326316)) (326559 331481 (
SK.FREEZE.ELTS 326569 . 326853) (SK.SEL.AND.FREEZE 326855 . 327245) (SK.FREEZE.ELEMENTS 327247 .
327798) (SK.UNFREEZE.ELT 327800 . 328089) (SK.SEL.AND.UNFREEZE 328091 . 329627) (SK.UNFREEZE.ELEMENTS
329629 . 330188) (SK.FREEZE.UNDO 330190 . 330435) (SK.UNFREEZE.UNDO 330437 . 330684) (SK.DO.FREEZE
330686 . 331079) (SK.DO.UNFREEZE 331081 . 331479)) (331711 341521 (SKETCH.ELEMENTS.OF.SKETCH 331721 .
332556) (SKETCH.LIST.OF.ELEMENTS 332558 . 333276) (SKETCH.ADD.ELEMENT 333278 . 334353) (
SKETCH.DELETE.ELEMENT 334355 . 336087) (DELFROMGROUPELT 336089 . 336889) (SKETCH.ELEMENT.TYPE 336891
. 337240) (SKETCH.ELEMENT.CHANGED 337242 . 338810) (SK.ELEMENT.CHANGED1 338812 . 339463) (
SK.UPDATE.GLOBAL.IMAGE.OBJECT.ELEMENT 339465 . 341519)) (341575 346187 (INSURE.SKETCH 341585 . 344200)
(LOCALSPECS.FROM.VIEWER 344202 . 344562) (SK.LOCAL.ELT.FROM.GLOBALPART 344564 . 345032) (
SKETCH.FROM.VIEWER 345034 . 345268) (INSPECT.SKETCH 345270 . 345595) (ELT.INSIDE.SKETCHWP 345597 .
345870) (SK.INSIDE.REGION 345872 . 346185)) (346188 350518 (MAPSKETCHSPECS 346198 . 346819) (
MAPCOLLECTSKETCHSPECS 346821 . 347570) (MAPSKETCHSPECSUNTIL 347572 . 348380) (MAPGLOBALSKETCHSPECS
348382 . 349083) (MAPGLOBALSKETCHELEMENTS 349085 . 350516)) (350580 376472 (SK.ADD.SELECTION 350590 .
351330) (SK.COPY.INSERTFN 351332 . 354963) (SCREENELEMENTP 354965 . 355438) (SK.ITEM.REGION 355440 .
355927) (SK.ELEMENT.GLOBAL.REGION 355929 . 356457) (SK.LOCAL.ITEMS.IN.REGION 356459 . 358438) (
SK.REGIONFN 358440 . 358762) (SK.GLOBAL.REGIONFN 358764 . 359122) (SK.REMOVE.SELECTION 359124 . 359852
) (SK.SELECT.MULTIPLE.ITEMS 359854 . 370296) (SKETCH.GET.ELEMENTS 370298 . 371721) (SK.PUT.MARKS.UP
371723 . 372062) (SK.TAKE.MARKS.DOWN 372064 . 372403) (SK.TRANSLATE.GLOBALPART 372405 . 374532) (
SK.TRANSLATE.ITEM 374534 . 375461) (SK.TRANSLATEFN 375463 . 375659) (TRANSLATE.SKETCH 375661 . 376470)
) (376738 379645 (SK.INPUT.SCALE 376748 . 377595) (SK.UPDATE.SKETCHCONTEXT 377597 . 378194) (
SK.SET.INPUT.SCALE 378196 . 378845) (SK.SET.INPUT.SCALE.CURRENT 378847 . 379138) (
SK.SET.INPUT.SCALE.VALUE 379140 . 379643)) (379696 381608 (SK.SET.FEEDBACK.MODE 379706 . 381012) (
SK.SET.FEEDBACK.POINT 381014 . 381182) (SK.SET.FEEDBACK.VERBOSE 381184 . 381353) (
SK.SET.FEEDBACK.ALWAYS 381355 . 381606)) (381759 383137 (SKETCH.TITLE 381769 . 382133) (
SK.SHRINK.ICONCREATE 382135 . 383135)) (388827 391641 (READBRUSHSHAPE 388837 . 389296) (READ.FUNCTION
389298 . 389813) (READBRUSHSIZE 389815 . 390273) (READANGLE 390275 . 390767) (READARCDIRECTION 390769
. 391639)) (391642 402053 (SK.CHANGE.DASHING 391652 . 395600) (READ.AND.SAVE.NEW.DASHING 395602 .
397370) (READ.NEW.DASHING 397372 . 399112) (READ.DASHING.CHANGE 399114 . 400589) (SK.CACHE.DASHING
400591 . 401593) (SK.DASHING.LABEL 401595 . 402051)) (402054 405759 (READ.FILLING.CHANGE 402064 .
404045) (SK.CACHE.FILLING 404047 . 404765) (READ.AND.SAVE.NEW.FILLING 404767 . 405365) (
SK.FILLING.LABEL 405367 . 405757)) (406143 442396 (SK.GETGLOBALPOSITION 406153 . 406458) (
SKETCH.TRACK.ELEMENTS 406460 . 409980) (SK.PICKOUT.WHOLE.MOVE.ELEMENTS 409982 . 410541) (
MAP.SKETCH.ELEMENTS.INTO.VIEWER 410543 . 410935) (MAP.GLOBAL.POSITION.INTO.VIEWER 410937 . 411317) (
SKETCH.TO.VIEWER.POSITION 411319 . 411678) (SKETCH.TRACK.IMAGE 411680 . 412534) (SK.TRACK.IMAGE1
412536 . 413948) (MAP.VIEWER.XY.INTO.GLOBAL 413950 . 414944) (SK.SET.POSITION 414946 . 415282) (
MAP.VIEWER.PT.INTO.GLOBAL 415284 . 416390) (VIEWER.TO.SKETCH.POSITION 416392 . 417027) (
SK.INSURE.SCALE 417029 . 417289) (SKETCH.TO.VIEWER.REGION 417291 . 418097) (VIEWER.TO.SKETCH.REGION
418099 . 418437) (SK.READ.POINT.WITH.FEEDBACK 418439 . 429442) (SKETCH.GET.POSITION 429444 . 431324) (
\CLOBBER.POSITION 431326 . 431774) (NEAREST.HOT.SPOT 431776 . 433304) (GETWREGION 433306 . 434067) (
GET.BITMAP.POSITION 434069 . 434853) (SK.TRACK.BITMAP1 434855 . 442394)) (442965 473851 (
SK.BRING.UP.POSITION.PAD 442975 . 448835) (SK.PAD.READER.POSITION 448837 . 450486) (
SK.POSITION.READER.REPAINTFN 450488 . 452272) (SK.POSITION.PAD.FROM.VIEWER 452274 . 453616) (
SK.INIT.POSITION.NUMBER.PAD.MENU 453618 . 453968) (SK.READ.POSITION.PAD.HANDLER 453970 . 459702) (
DISPLAY.POSITION.READER.TOTAL 459704 . 462002) (POSITION.PAD.READER.HANDLER 462004 . 470047) (
POSITIONPAD.HELDFN 470049 . 471533) (\POSITION.PAD.ADD.DIGIT.MENU 471535 . 473114) (
\POSITION.READER.NUMBERPAD 473116 . 473849)) (475477 478155 (SK.DRAWFN 475487 . 475853) (
SK.TRANSFORMFN 475855 . 476236) (SK.EXPANDFN 476238 . 476515) (SK.INPUT 476517 . 476898) (SK.INSIDEFN
476900 . 477540) (SK.UPDATEFN 477542 . 478153)) (483320 485476 (UPDATE-SKETCH 483330 . 484443) (
EDIT-SKETCH 484445 . 485474)) (486077 490022 (SK.CHECK.SKETCH.VERSION 486087 . 487327) (
SK.INSURE.RECORD.LENGTH 487329 . 488812) (SK.INSURE.HAS.LENGTH 488814 . 489552) (SK.RECORD.LENGTH
489554 . 489728) (SK.SET.RECORD.LENGTHS 489730 . 490020)) (490485 491372 (
SK.ADD.EDIT.COMMAND.TO.FILE.BROWSER 490495 . 491370)))))
STOP

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "30-Nov-2025 10:57:24" {WMEDLEY}<library>SKETCH>SKETCH-ELEMENTS.;25 545903
(FILECREATED "18-Dec-2025 00:27:41" {WMEDLEY}<library>SKETCH>SKETCH-ELEMENTS.;28 546107
:EDIT-BY rmk
:CHANGES-TO (FNS SK.CHANGE.TEXT SK.CHANGE.FONT)
:CHANGES-TO (FNS SK.DECREASING.FONT.LIST)
:PREVIOUS-DATE " 8-Nov-2025 14:02:38" {WMEDLEY}<library>SKETCH>SKETCH-ELEMENTS.;24)
:PREVIOUS-DATE "30-Nov-2025 10:57:24" {WMEDLEY}<library>SKETCH>SKETCH-ELEMENTS.;25)
(PRETTYCOMPRINT SKETCH-ELEMENTSCOMS)
@@ -5545,7 +5545,8 @@ Click outside the window to stop.")
do (RETURN (FONTPROP FONT 'SPEC])
(SK.DECREASING.FONT.LIST
[LAMBDA (FAMILY DEVICE) (* ; "Edited 6-Nov-2025 17:40 by rmk")
[LAMBDA (FAMILY DEVICE) (* ; "Edited 18-Dec-2025 00:27 by rmk")
(* ; "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")
@@ -5566,19 +5567,19 @@ Click outside the window to stop.")
(SETQ FAMILY 'MODERN))
(LET ((FAMSPEC (create FONTSPEC
FSFAMILY _ FAMILY
FSSIZE _ '*
FSSIZE _ 12
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.")
(* ;; "Coerce for size 12 to getcoercions for all reasonable FAMILYs, then go to *. This gives us all the possible sizes for FAMILY, we ask FONTCREATE to create a FAMILY font for each of those sizes.")
(for FS SIZES in (for FS in [CONS FAMSPEC (COERCEFONTSPEC FAMSPEC (FONTDEVICEPROP
(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])
'CHARCOERCIONS T)))
join (FONTSAVAILABLE (create FONTSPEC using FS FSSIZE _ '*)
NIL NIL NIL NIL T)) do (pushnew SIZES (fetch (FONTSPEC
FSSIZE)
of FS))
finally (RETURN (for S in (SORT SIZES) collect (FONTCREATE FAMILY S NIL NIL DEVICE])
)
(RPAQ? \KNOWN.SKETCH.FONTSIZES )
@@ -9076,136 +9077,136 @@ No more font sizes found.")
(fetch (REGION TOP) of REGION])
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (14197 24607 (INIT.SKETCH.ELEMENTS 14207 . 21770) (CREATE.SKETCH.ELEMENT.TYPE 21772 .
23294) (SKETCH.ELEMENT.TYPEP 23296 . 23684) (SKETCH.ELEMENT.NAMEP 23686 . 23949) (
\CURSOR.IN.MIDDLE.MENU 23951 . 24605)) (24648 25325 (SKETCHINCOLORP 24658 . 24978) (READ.COLOR.CHANGE
24980 . 25323)) (25834 28613 (SK.CREATE.DEFAULT.FILLING 25844 . 26145) (SKFILLINGP 26147 . 26780) (
SK.INSURE.FILLING 26782 . 28210) (SK.INSURE.COLOR 28212 . 28611)) (28614 34224 (SK.TRANSLATE.MODE
28624 . 29406) (SK.CHANGE.FILLING.MODE 29408 . 32991) (READ.FILLING.MODE 32993 . 34222)) (34225 64899
(SKETCH.CREATE.CIRCLE 34235 . 35047) (CIRCLE.EXPANDFN 35049 . 38421) (CIRCLE.DRAWFN 38423 . 41424) (
\CIRCLE.DRAWFN1 41426 . 44021) (CIRCLE.INPUTFN 44023 . 45872) (SK.UPDATE.CIRCLE.AFTER.CHANGE 45874 .
46233) (SK.READ.CIRCLE.POINT 46235 . 46706) (SK.SHOW.CIRCLE 46708 . 47354) (CIRCLE.INSIDEFN 47356 .
47621) (CIRCLE.REGIONFN 47623 . 49304) (CIRCLE.GLOBALREGIONFN 49306 . 50824) (CIRCLE.TRANSLATE 50826
. 52687) (CIRCLE.READCHANGEFN 52689 . 57305) (CIRCLE.TRANSFORMFN 57307 . 59160) (CIRCLE.TRANSLATEPTS
59162 . 60776) (SK.CIRCLE.CREATE 60778 . 61621) (SET.CIRCLE.SCALE 61623 . 62389) (SK.BRUSH.READCHANGE
62391 . 64897)) (64900 65629 (SK.INSURE.BRUSH 64910 . 65304) (SK.INSURE.DASHING 65306 . 65627)) (66843
96337 (SKETCH.CREATE.ELLIPSE 66853 . 67452) (ELLIPSE.EXPANDFN 67454 . 71066) (ELLIPSE.DRAWFN 71068 .
75245) (ELLIPSE.INPUTFN 75247 . 77687) (SK.READ.ELLIPSE.MAJOR.PT 77689 . 78268) (
SK.SHOW.ELLIPSE.MAJOR.RADIUS 78270 . 79025) (SK.READ.ELLIPSE.MINOR.PT 79027 . 79720) (
SK.SHOW.ELLIPSE.MINOR.RADIUS 79722 . 80554) (ELLIPSE.INSIDEFN 80556 . 80826) (ELLIPSE.CREATE 80828 .
82203) (SK.UPDATE.ELLIPSE.AFTER.CHANGE 82205 . 82573) (ELLIPSE.REGIONFN 82575 . 84775) (
ELLIPSE.GLOBALREGIONFN 84777 . 86590) (ELLIPSE.TRANSLATEFN 86592 . 89138) (ELLIPSE.TRANSFORMFN 89140
. 90417) (ELLIPSE.TRANSLATEPTS 90419 . 92460) (MARK.SPOT 92462 . 93713) (DISTANCEBETWEEN 93715 .
94310) (SK.DISTANCE.TO 94312 . 94697) (SQUARE 94699 . 94741) (COMPUTE.ELLIPSE.ORIENTATION 94743 .
95462) (SK.COMPUTE.ELLIPSE.MINOR.RADIUS.PT 95464 . 96335)) (97450 138506 (SKETCH.CREATE.OPEN.CURVE
97460 . 98013) (OPENCURVE.INPUTFN 98015 . 98883) (SK.CURVE.CREATE 98885 . 100630) (MAXXEXTENT 100632
. 101491) (MAXYEXTENT 101493 . 102353) (KNOT.SET.SCALE.FIELD 102355 . 103157) (OPENCURVE.DRAWFN
103159 . 104290) (OPENCURVE.EXPANDFN 104292 . 107607) (OPENCURVE.READCHANGEFN 107609 . 110811) (
OPENCURVE.TRANSFORMFN 110813 . 113311) (OPENCURVE.TRANSLATEFN 113313 . 113735) (
OPENCURVE.TRANSLATEPTSFN 113737 . 115118) (SKETCH.CREATE.CLOSED.CURVE 115120 . 115626) (
CLOSEDCURVE.DRAWFN 115628 . 116412) (CLOSEDCURVE.EXPANDFN 116414 . 119527) (CLOSEDCURVE.REGIONFN
119529 . 120326) (CLOSEDCURVE.GLOBALREGIONFN 120328 . 121761) (READ.LIST.OF.POINTS 121763 . 123742) (
CLOSEDCURVE.INPUTFN 123744 . 124389) (CLOSEDCURVE.READCHANGEFN 124391 . 127286) (
CLOSEDCURVE.TRANSFORMFN 127288 . 129088) (CLOSEDCURVE.TRANSLATEPTSFN 129090 . 130435) (INVISIBLEPARTP
130437 . 130790) (SHOWSKETCHPOINT 130792 . 131097) (SHOWSKETCHXY 131099 . 131617) (KNOTS.REGIONFN
131619 . 132520) (OPENWIRE.GLOBALREGIONFN 132522 . 133386) (CURVE.REGIONFN 133388 . 134329) (
OPENCURVE.GLOBALREGIONFN 134331 . 135738) (KNOTS.TRANSLATEFN 135740 . 136783) (REGION.CONTAINING.PTS
136785 . 138504)) (138507 160783 (CHANGE.ELTS.BRUSH.SIZE 138517 . 139127) (CHANGE.ELTS.BRUSH 139129 .
139646) (CHANGE.ELTS.BRUSH.SHAPE 139648 . 140049) (SK.CHANGE.BRUSH.SHAPE 140051 . 143563) (
SK.CHANGE.BRUSH.COLOR 143565 . 148011) (SK.CHANGE.BRUSH.SIZE 148013 . 152971) (SK.CHANGE.ANGLE 152973
. 155953) (SK.CHANGE.ARC.DIRECTION 155955 . 158334) (SK.SET.DEFAULT.BRUSH.SIZE 158336 . 159035) (
READSIZECHANGE 159037 . 160781)) (160784 162403 (SK.CHANGE.ELEMENT.KNOTS 160794 . 162401)) (162404
163051 (SK.INSURE.POINT.LIST 162414 . 162867) (SK.INSURE.POSITION 162869 . 163049)) (164419 196742 (
SKETCH.CREATE.WIRE 164429 . 164919) (CLOSEDWIRE.EXPANDFN 164921 . 167609) (KNOTS.INSIDEFN 167611 .
168332) (OPEN.WIRE.DRAWFN 168334 . 168926) (WIRE.EXPANDFN 168928 . 172175) (
SK.UPDATE.WIRE.ELT.AFTER.CHANGE 172177 . 172698) (OPENWIRE.READCHANGEFN 172700 . 175193) (
OPENWIRE.TRANSFORMFN 175195 . 177318) (OPENWIRE.TRANSLATEFN 177320 . 177744) (OPENWIRE.TRANSLATEPTSFN
177746 . 179025) (WIRE.INPUTFN 179027 . 180658) (SK.READ.WIRE.POINTS 180660 . 181191) (
SK.READ.POINTS.WITH.FEEDBACK 181193 . 183960) (OPENWIRE.FEEDBACKFN 183962 . 184716) (
CLOSEDWIRE.FEEDBACKFN 184718 . 186074) (CLOSEDWIRE.REGIONFN 186076 . 187061) (
CLOSEDWIRE.GLOBALREGIONFN 187063 . 188115) (SK.WIRE.CREATE 188117 . 189880) (WIRE.ADD.POINT.TO.END
189882 . 190798) (READ.ARROW.CHANGE 190800 . 196276) (CHANGE.ELTS.ARROWHEADS 196278 . 196740)) (196743
207749 (SKETCH.CREATE.CLOSED.WIRE 196753 . 197314) (CLOSED.WIRE.INPUTFN 197316 . 197671) (
CLOSED.WIRE.DRAWFN 197673 . 199718) (CLOSEDWIRE.READCHANGEFN 199720 . 204625) (CLOSEDWIRE.TRANSFORMFN
204627 . 206421) (CLOSEDWIRE.TRANSLATEPTSFN 206423 . 207747)) (207750 260456 (SK.EXPAND.ARROWHEADS
207760 . 208110) (SK.COMPUTE.ARC.ARROWHEAD.POINTS 208112 . 209493) (ARC.ARROWHEAD.POINTS 209495 .
210718) (SET.ARC.ARROWHEAD.POINTS 210720 . 211701) (SET.OPENCURVE.ARROWHEAD.POINTS 211703 . 212604) (
SK.COMPUTE.CURVE.ARROWHEAD.POINTS 212606 . 213876) (SET.WIRE.ARROWHEAD.POINTS 213878 . 214631) (
SK.COMPUTE.WIRE.ARROWHEAD.POINTS 214633 . 215898) (SK.EXPAND.ARROWHEAD 215900 . 217083) (CHANGED.ARROW
217085 . 220257) (SK.CHANGE.ARROWHEAD 220259 . 220712) (SK.CHANGE.ARROWHEAD1 220714 . 225969) (
SK.CREATE.ARROWHEAD 225971 . 226491) (SK.ARROWHEAD.CREATE 226493 . 228067) (SK.ARROWHEAD.END.TEST
228069 . 228993) (READ.ARROWHEAD.END 228995 . 231020) (ARROW.HEAD.POSITIONS 231022 . 232862) (
ARROWHEAD.POINTS.LIST 232864 . 236836) (CURVE.ARROWHEAD.POINTS 236838 . 237701) (LEFT.MOST.IS.BEGINP
237703 . 238584) (WIRE.ARROWHEAD.POINTS 238586 . 240112) (DRAWARROWHEADS 240114 . 242484) (
\SK.DRAW.TRIANGLE.ARROWHEAD 242486 . 244146) (\SK.ENDPT.OF.ARROW 244148 . 246405) (
\SK.ADJUST.FOR.ARROWHEADS 246407 . 248912) (SK.SET.ARROWHEAD.LENGTH 248914 . 250058) (
SK.SET.ARROWHEAD.ANGLE 250060 . 251156) (SK.SET.ARROWHEAD.TYPE 251158 . 254447) (SK.SET.LINE.ARROWHEAD
254449 . 256862) (SK.UPDATE.ARROWHEAD.FORMAT 256864 . 258974) (SK.SET.LINE.LENGTH.MODE 258976 .
260454)) (260457 262258 (SK.INSURE.ARROWHEADS 260467 . 261649) (SK.ARROWHEADP 261651 . 262256)) (
265055 327497 (SKETCH.CREATE.TEXT 265065 . 265579) (TEXT.CHANGEFN 265581 . 265973) (TEXT.READCHANGEFN
265975 . 274046) (\SK.READ.FONT.SIZE1 274048 . 276214) (SK.TEXT.ELT.WITH.SAME.FIELDS 276216 . 277856)
(SK.READFONTFAMILY 277858 . 280328) (CLOSE.PROMPT.WINDOW 280330 . 280754) (TEXT.DRAWFN 280756 . 281477
) (TEXT.DRAWFN1 281479 . 284981) (TEXT.INSIDEFN 284983 . 285372) (TEXT.EXPANDFN 285374 . 287499) (
SK.TEXT.LINE.REGIONS 287501 . 289375) (TEXT.UPDATE.GLOBAL.REGIONS 289377 . 290609) (REL.MOVE.REGION
290611 . 291148) (LTEXT.LINE.REGIONS 291150 . 294568) (TEXT.INPUTFN 294570 . 295080) (READ.TEXT 295082
. 295830) (TEXT.POSITION.AND.CREATE 295832 . 298143) (CREATE.TEXT.ELEMENT 298145 . 298963) (
SK.UPDATE.TEXT.AFTER.CHANGE 298965 . 299367) (SK.TEXT.FROM.TEXTBOX 299369 . 303175) (
TEXT.SET.GLOBAL.REGIONS 303177 . 304470) (TEXT.REGIONFN 304472 . 305242) (TEXT.GLOBALREGIONFN 305244
. 305932) (TEXT.TRANSLATEFN 305934 . 307249) (TEXT.TRANSFORMFN 307251 . 308374) (TEXT.TRANSLATEPTSFN
308376 . 308893) (TEXT.UPDATEFN 308895 . 313551) (SK.CHANGE.TEXT 313553 . 323831) (SK.CHANGE.FONT
323833 . 325563) (TEXT.SET.SCALES 325565 . 326533) (BREAK.AT.CARRIAGE.RETURNS 326535 . 327495)) (
327498 340483 (SK.PICK.FONT 327508 . 331780) (SK.CHOOSE.TEXT.FONT 331782 . 336053) (SK.NEXTSIZEFONT
336055 . 337687) (SK.DECREASING.FONT.LIST 337689 . 340481)) (340902 352576 (SK.SET.FONT 340912 .
342179) (SK.SET.TEXT.FONT 342181 . 343183) (SK.SET.TEXT.SIZE 343185 . 343872) (SK.SET.TEXT.HORIZ.ALIGN
343874 . 345448) (SK.READFONTSIZE 345450 . 347348) (SK.COLLECT.FONT.SIZES 347350 . 348431) (
SK.SET.TEXT.VERT.ALIGN 348433 . 350475) (SK.SET.TEXT.LOOKS 350477 . 351934) (SK.SET.DEFAULT.TEXT.FACE
351936 . 352574)) (352577 353163 (CREATE.SKETCH.TERMTABLE 352587 . 353161)) (353164 354930 (
SK.FONT.LIST 353174 . 353500) (SK.INSURE.FONT 353502 . 354024) (SK.INSURE.STYLE 354026 . 354544) (
SK.INSURE.TEXT 354546 . 354928)) (355470 412763 (SKETCH.CREATE.TEXTBOX 355480 . 357122) (
SK.COMPUTE.TEXTBOX.REGION.FOR.STRING 357124 . 359201) (SK.BREAK.INTO.LINES 359203 . 370389) (
SK.BRUSH.SIZE 370391 . 370772) (SK.TEXTBOX.CREATE 370774 . 371571) (SK.TEXTBOX.CREATE1 371573 . 372637
) (SK.UPDATE.TEXTBOX.AFTER.CHANGE 372639 . 373179) (SK.TEXTBOX.POSITION.IN.BOX 373181 . 375092) (
TEXTBOX.CHANGEFN 375094 . 375568) (TEXTBOX.DRAWFN 375570 . 377606) (SK.TEXTURE.AROUND.REGIONS 377608
. 383681) (ALL.EMPTY.REGIONS 383683 . 384173) (TEXTBOX.EXPANDFN 384175 . 391331) (TEXTBOX.INPUTFN
391333 . 392946) (TEXTBOX.INSIDEFN 392948 . 393361) (TEXTBOX.REGIONFN 393363 . 394217) (
TEXTBOX.GLOBALREGIONFN 394219 . 394547) (TEXTBOX.SET.GLOBAL.REGIONS 394549 . 395880) (
TEXTBOX.TRANSLATEFN 395882 . 397723) (TEXTBOX.TRANSLATEPTSFN 397725 . 400508) (TEXTBOX.TRANSFORMFN
400510 . 402178) (TEXTBOX.UPDATEFN 402180 . 404073) (TEXTBOX.READCHANGEFN 404075 . 408964) (
SK.TEXTBOX.TEXT.POSITION 408966 . 409387) (SK.TEXTBOX.FROM.TEXT 409389 . 411994) (ADD.EOLS 411996 .
412761)) (413292 416793 (SK.SET.TEXTBOX.VERT.ALIGN 413302 . 415182) (SK.SET.TEXTBOX.HORIZ.ALIGN 415184
. 416791)) (417176 461651 (SKETCH.CREATE.BOX 417186 . 417669) (SK.BOX.DRAWFN 417671 . 418830) (
BOX.DRAWFN1 418832 . 421671) (KNOTS.OF.REGION 421673 . 422907) (SK.DRAWAREABOX 422909 . 429510) (
SK.DRAWBOX 429512 . 430701) (SK.BOX.EXPANDFN 430703 . 434451) (SK.BOX.GETREGIONFN 434453 . 435639) (
BOX.SET.SCALES 435641 . 436881) (SK.BOX.INPUTFN 436883 . 438816) (SK.BOX.CREATE 438818 . 439519) (
SK.UPDATE.BOX.AFTER.CHANGE 439521 . 440032) (SK.BOX.INSIDEFN 440034 . 440424) (SK.BOX.REGIONFN 440426
. 441139) (SK.BOX.GLOBALREGIONFN 441141 . 441879) (SK.BOX.READCHANGEFN 441881 . 445602) (
SK.CHANGE.FILLING 445604 . 449552) (SK.CHANGE.FILLING.COLOR 449554 . 453210) (SK.BOX.TRANSLATEFN
453212 . 454391) (SK.BOX.TRANSFORMFN 454393 . 455338) (SK.BOX.TRANSLATEPTSFN 455340 . 457708) (
UNSCALE.REGION.TO.GRID 457710 . 458635) (INCREASEREGION 458637 . 459228) (INSUREREGIONSIZE 459230 .
460401) (EXPANDREGION 460403 . 461283) (REGION.FROM.COORDINATES 461285 . 461649)) (462187 488542 (
SKETCH.CREATE.ARC 462197 . 463006) (ARC.DRAWFN 463008 . 464735) (ARC.EXPANDFN 464737 . 467070) (
ARC.INPUTFN 467072 . 471290) (SK.INVERT.CIRCLE 471292 . 472152) (SK.READ.ARC.ANGLE.POINT 472154 .
472661) (SK.SHOW.ARC 472663 . 473273) (ARC.CREATE 473275 . 474630) (SK.UPDATE.ARC.AFTER.CHANGE 474632
. 474972) (ARC.MOVEFN 474974 . 476557) (ARC.TRANSLATEPTS 476559 . 478444) (ARC.INSIDEFN 478446 .
478696) (ARC.REGIONFN 478698 . 479834) (ARC.GLOBALREGIONFN 479836 . 481558) (ARC.TRANSLATE 481560 .
482542) (ARC.TRANSFORMFN 482544 . 485494) (ARC.READCHANGEFN 485496 . 488540)) (488543 497622 (
SK.COMPUTE.ARC.ANGLE.PT 488553 . 489479) (SK.COMPUTE.ARC.ANGLE.PT.FROM.ANGLE 489481 . 490474) (
SK.COMPUTE.ARC.PTS 490476 . 494048) (SK.SET.ARC.DIRECTION 494050 . 494624) (SK.SET.ARC.DIRECTION.CW
494626 . 494800) (SK.SET.ARC.DIRECTION.CCW 494802 . 495075) (SK.COMPUTE.SLOPE.OF.LINE 495077 . 495569)
(SK.CREATE.ARC.USING 495571 . 496808) (SET.ARC.SCALES 496810 . 497620)) (497623 498068 (
SK.INSURE.DIRECTION 497633 . 498066)) (499439 545298 (GETSKETCHELEMENTPROP 499449 . 500757) (
\SK.GET.ARC.ANGLEPT 500759 . 501320) (\GETSKETCHELEMENTPROP1 501322 . 501576) (\SK.GET.BRUSH 501578 .
502502) (\SK.GET.FILLING 502504 . 503602) (\SK.GET.ARROWHEADS 503604 . 504383) (\SK.GET.FONT 504385 .
504865) (\SK.GET.JUSTIFICATION 504867 . 505391) (\SK.GET.DIRECTION 505393 . 505870) (\SK.GET.DASHING
505872 . 506891) (PUTSKETCHELEMENTPROP 506893 . 509162) (\SK.PUT.FILLING 509164 . 510434) (
ADDSKETCHELEMENTPROP 510436 . 511241) (REMOVESKETCHELEMENTPROP 511243 . 512032) (\SK.PUT.FONT 512034
. 512848) (\SK.PUT.JUSTIFICATION 512850 . 513861) (\SK.PUT.DIRECTION 513863 . 514470) (
\SK.PUT.DASHING 514472 . 515807) (\SK.PUT.BRUSH 515809 . 517728) (\SK.PUT.ARROWHEADS 517730 . 519696)
(SK.COPY.ELEMENT.PROPERTY.LIST 519698 . 520274) (SKETCH.UPDATE 520276 . 521006) (SKETCH.UPDATE1 521008
. 522296) (\SKELT.GET.SCALE 522298 . 523286) (\SKELT.PUT.SCALE 523288 . 524595) (\SKELT.PUT.DATA
524597 . 526394) (SK.REPLACE.TEXT.IN.ELEMENT 526396 . 527349) (\SKELT.GET.DATA 527351 . 528418) (
\SK.GET.1STCONTROLPT 528420 . 529932) (\SK.PUT.1STCONTROLPT 529934 . 535407) (\SK.GET.2NDCONTROLPT
535409 . 536324) (\SK.PUT.2NDCONTROLPT 536326 . 540514) (\SK.GET.3RDCONTROLPT 540516 . 541394) (
\SK.PUT.3RDCONTROLPT 541396 . 545296)) (545299 545880 (LOWERLEFTCORNER 545309 . 545555) (
UPPERRIGHTCORNER 545557 . 545878)))))
(FILEMAP (NIL (14191 24601 (INIT.SKETCH.ELEMENTS 14201 . 21764) (CREATE.SKETCH.ELEMENT.TYPE 21766 .
23288) (SKETCH.ELEMENT.TYPEP 23290 . 23678) (SKETCH.ELEMENT.NAMEP 23680 . 23943) (
\CURSOR.IN.MIDDLE.MENU 23945 . 24599)) (24642 25319 (SKETCHINCOLORP 24652 . 24972) (READ.COLOR.CHANGE
24974 . 25317)) (25828 28607 (SK.CREATE.DEFAULT.FILLING 25838 . 26139) (SKFILLINGP 26141 . 26774) (
SK.INSURE.FILLING 26776 . 28204) (SK.INSURE.COLOR 28206 . 28605)) (28608 34218 (SK.TRANSLATE.MODE
28618 . 29400) (SK.CHANGE.FILLING.MODE 29402 . 32985) (READ.FILLING.MODE 32987 . 34216)) (34219 64893
(SKETCH.CREATE.CIRCLE 34229 . 35041) (CIRCLE.EXPANDFN 35043 . 38415) (CIRCLE.DRAWFN 38417 . 41418) (
\CIRCLE.DRAWFN1 41420 . 44015) (CIRCLE.INPUTFN 44017 . 45866) (SK.UPDATE.CIRCLE.AFTER.CHANGE 45868 .
46227) (SK.READ.CIRCLE.POINT 46229 . 46700) (SK.SHOW.CIRCLE 46702 . 47348) (CIRCLE.INSIDEFN 47350 .
47615) (CIRCLE.REGIONFN 47617 . 49298) (CIRCLE.GLOBALREGIONFN 49300 . 50818) (CIRCLE.TRANSLATE 50820
. 52681) (CIRCLE.READCHANGEFN 52683 . 57299) (CIRCLE.TRANSFORMFN 57301 . 59154) (CIRCLE.TRANSLATEPTS
59156 . 60770) (SK.CIRCLE.CREATE 60772 . 61615) (SET.CIRCLE.SCALE 61617 . 62383) (SK.BRUSH.READCHANGE
62385 . 64891)) (64894 65623 (SK.INSURE.BRUSH 64904 . 65298) (SK.INSURE.DASHING 65300 . 65621)) (66837
96331 (SKETCH.CREATE.ELLIPSE 66847 . 67446) (ELLIPSE.EXPANDFN 67448 . 71060) (ELLIPSE.DRAWFN 71062 .
75239) (ELLIPSE.INPUTFN 75241 . 77681) (SK.READ.ELLIPSE.MAJOR.PT 77683 . 78262) (
SK.SHOW.ELLIPSE.MAJOR.RADIUS 78264 . 79019) (SK.READ.ELLIPSE.MINOR.PT 79021 . 79714) (
SK.SHOW.ELLIPSE.MINOR.RADIUS 79716 . 80548) (ELLIPSE.INSIDEFN 80550 . 80820) (ELLIPSE.CREATE 80822 .
82197) (SK.UPDATE.ELLIPSE.AFTER.CHANGE 82199 . 82567) (ELLIPSE.REGIONFN 82569 . 84769) (
ELLIPSE.GLOBALREGIONFN 84771 . 86584) (ELLIPSE.TRANSLATEFN 86586 . 89132) (ELLIPSE.TRANSFORMFN 89134
. 90411) (ELLIPSE.TRANSLATEPTS 90413 . 92454) (MARK.SPOT 92456 . 93707) (DISTANCEBETWEEN 93709 .
94304) (SK.DISTANCE.TO 94306 . 94691) (SQUARE 94693 . 94735) (COMPUTE.ELLIPSE.ORIENTATION 94737 .
95456) (SK.COMPUTE.ELLIPSE.MINOR.RADIUS.PT 95458 . 96329)) (97444 138500 (SKETCH.CREATE.OPEN.CURVE
97454 . 98007) (OPENCURVE.INPUTFN 98009 . 98877) (SK.CURVE.CREATE 98879 . 100624) (MAXXEXTENT 100626
. 101485) (MAXYEXTENT 101487 . 102347) (KNOT.SET.SCALE.FIELD 102349 . 103151) (OPENCURVE.DRAWFN
103153 . 104284) (OPENCURVE.EXPANDFN 104286 . 107601) (OPENCURVE.READCHANGEFN 107603 . 110805) (
OPENCURVE.TRANSFORMFN 110807 . 113305) (OPENCURVE.TRANSLATEFN 113307 . 113729) (
OPENCURVE.TRANSLATEPTSFN 113731 . 115112) (SKETCH.CREATE.CLOSED.CURVE 115114 . 115620) (
CLOSEDCURVE.DRAWFN 115622 . 116406) (CLOSEDCURVE.EXPANDFN 116408 . 119521) (CLOSEDCURVE.REGIONFN
119523 . 120320) (CLOSEDCURVE.GLOBALREGIONFN 120322 . 121755) (READ.LIST.OF.POINTS 121757 . 123736) (
CLOSEDCURVE.INPUTFN 123738 . 124383) (CLOSEDCURVE.READCHANGEFN 124385 . 127280) (
CLOSEDCURVE.TRANSFORMFN 127282 . 129082) (CLOSEDCURVE.TRANSLATEPTSFN 129084 . 130429) (INVISIBLEPARTP
130431 . 130784) (SHOWSKETCHPOINT 130786 . 131091) (SHOWSKETCHXY 131093 . 131611) (KNOTS.REGIONFN
131613 . 132514) (OPENWIRE.GLOBALREGIONFN 132516 . 133380) (CURVE.REGIONFN 133382 . 134323) (
OPENCURVE.GLOBALREGIONFN 134325 . 135732) (KNOTS.TRANSLATEFN 135734 . 136777) (REGION.CONTAINING.PTS
136779 . 138498)) (138501 160777 (CHANGE.ELTS.BRUSH.SIZE 138511 . 139121) (CHANGE.ELTS.BRUSH 139123 .
139640) (CHANGE.ELTS.BRUSH.SHAPE 139642 . 140043) (SK.CHANGE.BRUSH.SHAPE 140045 . 143557) (
SK.CHANGE.BRUSH.COLOR 143559 . 148005) (SK.CHANGE.BRUSH.SIZE 148007 . 152965) (SK.CHANGE.ANGLE 152967
. 155947) (SK.CHANGE.ARC.DIRECTION 155949 . 158328) (SK.SET.DEFAULT.BRUSH.SIZE 158330 . 159029) (
READSIZECHANGE 159031 . 160775)) (160778 162397 (SK.CHANGE.ELEMENT.KNOTS 160788 . 162395)) (162398
163045 (SK.INSURE.POINT.LIST 162408 . 162861) (SK.INSURE.POSITION 162863 . 163043)) (164413 196736 (
SKETCH.CREATE.WIRE 164423 . 164913) (CLOSEDWIRE.EXPANDFN 164915 . 167603) (KNOTS.INSIDEFN 167605 .
168326) (OPEN.WIRE.DRAWFN 168328 . 168920) (WIRE.EXPANDFN 168922 . 172169) (
SK.UPDATE.WIRE.ELT.AFTER.CHANGE 172171 . 172692) (OPENWIRE.READCHANGEFN 172694 . 175187) (
OPENWIRE.TRANSFORMFN 175189 . 177312) (OPENWIRE.TRANSLATEFN 177314 . 177738) (OPENWIRE.TRANSLATEPTSFN
177740 . 179019) (WIRE.INPUTFN 179021 . 180652) (SK.READ.WIRE.POINTS 180654 . 181185) (
SK.READ.POINTS.WITH.FEEDBACK 181187 . 183954) (OPENWIRE.FEEDBACKFN 183956 . 184710) (
CLOSEDWIRE.FEEDBACKFN 184712 . 186068) (CLOSEDWIRE.REGIONFN 186070 . 187055) (
CLOSEDWIRE.GLOBALREGIONFN 187057 . 188109) (SK.WIRE.CREATE 188111 . 189874) (WIRE.ADD.POINT.TO.END
189876 . 190792) (READ.ARROW.CHANGE 190794 . 196270) (CHANGE.ELTS.ARROWHEADS 196272 . 196734)) (196737
207743 (SKETCH.CREATE.CLOSED.WIRE 196747 . 197308) (CLOSED.WIRE.INPUTFN 197310 . 197665) (
CLOSED.WIRE.DRAWFN 197667 . 199712) (CLOSEDWIRE.READCHANGEFN 199714 . 204619) (CLOSEDWIRE.TRANSFORMFN
204621 . 206415) (CLOSEDWIRE.TRANSLATEPTSFN 206417 . 207741)) (207744 260450 (SK.EXPAND.ARROWHEADS
207754 . 208104) (SK.COMPUTE.ARC.ARROWHEAD.POINTS 208106 . 209487) (ARC.ARROWHEAD.POINTS 209489 .
210712) (SET.ARC.ARROWHEAD.POINTS 210714 . 211695) (SET.OPENCURVE.ARROWHEAD.POINTS 211697 . 212598) (
SK.COMPUTE.CURVE.ARROWHEAD.POINTS 212600 . 213870) (SET.WIRE.ARROWHEAD.POINTS 213872 . 214625) (
SK.COMPUTE.WIRE.ARROWHEAD.POINTS 214627 . 215892) (SK.EXPAND.ARROWHEAD 215894 . 217077) (CHANGED.ARROW
217079 . 220251) (SK.CHANGE.ARROWHEAD 220253 . 220706) (SK.CHANGE.ARROWHEAD1 220708 . 225963) (
SK.CREATE.ARROWHEAD 225965 . 226485) (SK.ARROWHEAD.CREATE 226487 . 228061) (SK.ARROWHEAD.END.TEST
228063 . 228987) (READ.ARROWHEAD.END 228989 . 231014) (ARROW.HEAD.POSITIONS 231016 . 232856) (
ARROWHEAD.POINTS.LIST 232858 . 236830) (CURVE.ARROWHEAD.POINTS 236832 . 237695) (LEFT.MOST.IS.BEGINP
237697 . 238578) (WIRE.ARROWHEAD.POINTS 238580 . 240106) (DRAWARROWHEADS 240108 . 242478) (
\SK.DRAW.TRIANGLE.ARROWHEAD 242480 . 244140) (\SK.ENDPT.OF.ARROW 244142 . 246399) (
\SK.ADJUST.FOR.ARROWHEADS 246401 . 248906) (SK.SET.ARROWHEAD.LENGTH 248908 . 250052) (
SK.SET.ARROWHEAD.ANGLE 250054 . 251150) (SK.SET.ARROWHEAD.TYPE 251152 . 254441) (SK.SET.LINE.ARROWHEAD
254443 . 256856) (SK.UPDATE.ARROWHEAD.FORMAT 256858 . 258968) (SK.SET.LINE.LENGTH.MODE 258970 .
260448)) (260451 262252 (SK.INSURE.ARROWHEADS 260461 . 261643) (SK.ARROWHEADP 261645 . 262250)) (
265049 327491 (SKETCH.CREATE.TEXT 265059 . 265573) (TEXT.CHANGEFN 265575 . 265967) (TEXT.READCHANGEFN
265969 . 274040) (\SK.READ.FONT.SIZE1 274042 . 276208) (SK.TEXT.ELT.WITH.SAME.FIELDS 276210 . 277850)
(SK.READFONTFAMILY 277852 . 280322) (CLOSE.PROMPT.WINDOW 280324 . 280748) (TEXT.DRAWFN 280750 . 281471
) (TEXT.DRAWFN1 281473 . 284975) (TEXT.INSIDEFN 284977 . 285366) (TEXT.EXPANDFN 285368 . 287493) (
SK.TEXT.LINE.REGIONS 287495 . 289369) (TEXT.UPDATE.GLOBAL.REGIONS 289371 . 290603) (REL.MOVE.REGION
290605 . 291142) (LTEXT.LINE.REGIONS 291144 . 294562) (TEXT.INPUTFN 294564 . 295074) (READ.TEXT 295076
. 295824) (TEXT.POSITION.AND.CREATE 295826 . 298137) (CREATE.TEXT.ELEMENT 298139 . 298957) (
SK.UPDATE.TEXT.AFTER.CHANGE 298959 . 299361) (SK.TEXT.FROM.TEXTBOX 299363 . 303169) (
TEXT.SET.GLOBAL.REGIONS 303171 . 304464) (TEXT.REGIONFN 304466 . 305236) (TEXT.GLOBALREGIONFN 305238
. 305926) (TEXT.TRANSLATEFN 305928 . 307243) (TEXT.TRANSFORMFN 307245 . 308368) (TEXT.TRANSLATEPTSFN
308370 . 308887) (TEXT.UPDATEFN 308889 . 313545) (SK.CHANGE.TEXT 313547 . 323825) (SK.CHANGE.FONT
323827 . 325557) (TEXT.SET.SCALES 325559 . 326527) (BREAK.AT.CARRIAGE.RETURNS 326529 . 327489)) (
327492 340687 (SK.PICK.FONT 327502 . 331774) (SK.CHOOSE.TEXT.FONT 331776 . 336047) (SK.NEXTSIZEFONT
336049 . 337681) (SK.DECREASING.FONT.LIST 337683 . 340685)) (341106 352780 (SK.SET.FONT 341116 .
342383) (SK.SET.TEXT.FONT 342385 . 343387) (SK.SET.TEXT.SIZE 343389 . 344076) (SK.SET.TEXT.HORIZ.ALIGN
344078 . 345652) (SK.READFONTSIZE 345654 . 347552) (SK.COLLECT.FONT.SIZES 347554 . 348635) (
SK.SET.TEXT.VERT.ALIGN 348637 . 350679) (SK.SET.TEXT.LOOKS 350681 . 352138) (SK.SET.DEFAULT.TEXT.FACE
352140 . 352778)) (352781 353367 (CREATE.SKETCH.TERMTABLE 352791 . 353365)) (353368 355134 (
SK.FONT.LIST 353378 . 353704) (SK.INSURE.FONT 353706 . 354228) (SK.INSURE.STYLE 354230 . 354748) (
SK.INSURE.TEXT 354750 . 355132)) (355674 412967 (SKETCH.CREATE.TEXTBOX 355684 . 357326) (
SK.COMPUTE.TEXTBOX.REGION.FOR.STRING 357328 . 359405) (SK.BREAK.INTO.LINES 359407 . 370593) (
SK.BRUSH.SIZE 370595 . 370976) (SK.TEXTBOX.CREATE 370978 . 371775) (SK.TEXTBOX.CREATE1 371777 . 372841
) (SK.UPDATE.TEXTBOX.AFTER.CHANGE 372843 . 373383) (SK.TEXTBOX.POSITION.IN.BOX 373385 . 375296) (
TEXTBOX.CHANGEFN 375298 . 375772) (TEXTBOX.DRAWFN 375774 . 377810) (SK.TEXTURE.AROUND.REGIONS 377812
. 383885) (ALL.EMPTY.REGIONS 383887 . 384377) (TEXTBOX.EXPANDFN 384379 . 391535) (TEXTBOX.INPUTFN
391537 . 393150) (TEXTBOX.INSIDEFN 393152 . 393565) (TEXTBOX.REGIONFN 393567 . 394421) (
TEXTBOX.GLOBALREGIONFN 394423 . 394751) (TEXTBOX.SET.GLOBAL.REGIONS 394753 . 396084) (
TEXTBOX.TRANSLATEFN 396086 . 397927) (TEXTBOX.TRANSLATEPTSFN 397929 . 400712) (TEXTBOX.TRANSFORMFN
400714 . 402382) (TEXTBOX.UPDATEFN 402384 . 404277) (TEXTBOX.READCHANGEFN 404279 . 409168) (
SK.TEXTBOX.TEXT.POSITION 409170 . 409591) (SK.TEXTBOX.FROM.TEXT 409593 . 412198) (ADD.EOLS 412200 .
412965)) (413496 416997 (SK.SET.TEXTBOX.VERT.ALIGN 413506 . 415386) (SK.SET.TEXTBOX.HORIZ.ALIGN 415388
. 416995)) (417380 461855 (SKETCH.CREATE.BOX 417390 . 417873) (SK.BOX.DRAWFN 417875 . 419034) (
BOX.DRAWFN1 419036 . 421875) (KNOTS.OF.REGION 421877 . 423111) (SK.DRAWAREABOX 423113 . 429714) (
SK.DRAWBOX 429716 . 430905) (SK.BOX.EXPANDFN 430907 . 434655) (SK.BOX.GETREGIONFN 434657 . 435843) (
BOX.SET.SCALES 435845 . 437085) (SK.BOX.INPUTFN 437087 . 439020) (SK.BOX.CREATE 439022 . 439723) (
SK.UPDATE.BOX.AFTER.CHANGE 439725 . 440236) (SK.BOX.INSIDEFN 440238 . 440628) (SK.BOX.REGIONFN 440630
. 441343) (SK.BOX.GLOBALREGIONFN 441345 . 442083) (SK.BOX.READCHANGEFN 442085 . 445806) (
SK.CHANGE.FILLING 445808 . 449756) (SK.CHANGE.FILLING.COLOR 449758 . 453414) (SK.BOX.TRANSLATEFN
453416 . 454595) (SK.BOX.TRANSFORMFN 454597 . 455542) (SK.BOX.TRANSLATEPTSFN 455544 . 457912) (
UNSCALE.REGION.TO.GRID 457914 . 458839) (INCREASEREGION 458841 . 459432) (INSUREREGIONSIZE 459434 .
460605) (EXPANDREGION 460607 . 461487) (REGION.FROM.COORDINATES 461489 . 461853)) (462391 488746 (
SKETCH.CREATE.ARC 462401 . 463210) (ARC.DRAWFN 463212 . 464939) (ARC.EXPANDFN 464941 . 467274) (
ARC.INPUTFN 467276 . 471494) (SK.INVERT.CIRCLE 471496 . 472356) (SK.READ.ARC.ANGLE.POINT 472358 .
472865) (SK.SHOW.ARC 472867 . 473477) (ARC.CREATE 473479 . 474834) (SK.UPDATE.ARC.AFTER.CHANGE 474836
. 475176) (ARC.MOVEFN 475178 . 476761) (ARC.TRANSLATEPTS 476763 . 478648) (ARC.INSIDEFN 478650 .
478900) (ARC.REGIONFN 478902 . 480038) (ARC.GLOBALREGIONFN 480040 . 481762) (ARC.TRANSLATE 481764 .
482746) (ARC.TRANSFORMFN 482748 . 485698) (ARC.READCHANGEFN 485700 . 488744)) (488747 497826 (
SK.COMPUTE.ARC.ANGLE.PT 488757 . 489683) (SK.COMPUTE.ARC.ANGLE.PT.FROM.ANGLE 489685 . 490678) (
SK.COMPUTE.ARC.PTS 490680 . 494252) (SK.SET.ARC.DIRECTION 494254 . 494828) (SK.SET.ARC.DIRECTION.CW
494830 . 495004) (SK.SET.ARC.DIRECTION.CCW 495006 . 495279) (SK.COMPUTE.SLOPE.OF.LINE 495281 . 495773)
(SK.CREATE.ARC.USING 495775 . 497012) (SET.ARC.SCALES 497014 . 497824)) (497827 498272 (
SK.INSURE.DIRECTION 497837 . 498270)) (499643 545502 (GETSKETCHELEMENTPROP 499653 . 500961) (
\SK.GET.ARC.ANGLEPT 500963 . 501524) (\GETSKETCHELEMENTPROP1 501526 . 501780) (\SK.GET.BRUSH 501782 .
502706) (\SK.GET.FILLING 502708 . 503806) (\SK.GET.ARROWHEADS 503808 . 504587) (\SK.GET.FONT 504589 .
505069) (\SK.GET.JUSTIFICATION 505071 . 505595) (\SK.GET.DIRECTION 505597 . 506074) (\SK.GET.DASHING
506076 . 507095) (PUTSKETCHELEMENTPROP 507097 . 509366) (\SK.PUT.FILLING 509368 . 510638) (
ADDSKETCHELEMENTPROP 510640 . 511445) (REMOVESKETCHELEMENTPROP 511447 . 512236) (\SK.PUT.FONT 512238
. 513052) (\SK.PUT.JUSTIFICATION 513054 . 514065) (\SK.PUT.DIRECTION 514067 . 514674) (
\SK.PUT.DASHING 514676 . 516011) (\SK.PUT.BRUSH 516013 . 517932) (\SK.PUT.ARROWHEADS 517934 . 519900)
(SK.COPY.ELEMENT.PROPERTY.LIST 519902 . 520478) (SKETCH.UPDATE 520480 . 521210) (SKETCH.UPDATE1 521212
. 522500) (\SKELT.GET.SCALE 522502 . 523490) (\SKELT.PUT.SCALE 523492 . 524799) (\SKELT.PUT.DATA
524801 . 526598) (SK.REPLACE.TEXT.IN.ELEMENT 526600 . 527553) (\SKELT.GET.DATA 527555 . 528622) (
\SK.GET.1STCONTROLPT 528624 . 530136) (\SK.PUT.1STCONTROLPT 530138 . 535611) (\SK.GET.2NDCONTROLPT
535613 . 536528) (\SK.PUT.2NDCONTROLPT 536530 . 540718) (\SK.GET.3RDCONTROLPT 540720 . 541598) (
\SK.PUT.3RDCONTROLPT 541600 . 545500)) (545503 546084 (LOWERLEFTCORNER 545513 . 545759) (
UPPERRIGHTCORNER 545761 . 546082)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED " 5-Dec-2023 00:08:46" {WMEDLEY}<library>sketch>SKETCH-OPS.;1 221752
(FILECREATED "14-Dec-2025 00:35:27" {WMEDLEY}<library>sketch>SKETCH-OPS.;9 220612
:EDIT-BY rmk
:CHANGES-TO (RECORDS AFFINETRANSFORMATION SKHISTEVENT SKEVENTTYPE SKETCHVIEW)
:CHANGES-TO (FNS SK.PRINTER.FILE.CANDIDATE.NAME)
:PREVIOUS-DATE " 3-May-2023 21:06:28" {WMEDLEY}<library>sketch>SKETCHOPS.;2)
:PREVIOUS-DATE "29-Nov-2025 21:49:05" {WMEDLEY}<library>sketch>SKETCH-OPS.;8)
(PRETTYCOMPRINT SKETCH-OPSCOMS)
@@ -17,9 +17,8 @@
(COMS
(* ;; "miscellaneous utility functions")
(FNS SK.FONTNAMELIST SCALE.REGION.OUT SK.SCALE.POSITION.INTO.VIEWER
SK.SCALE.POSITION.INTO.VIEWER.EXACT SK.MAKE.POSITION.INTEGER
SCALE.POSITION.INTO.SKETCHW UNSCALE UNSCALE.REGION)
(FNS SCALE.REGION.OUT SK.SCALE.POSITION.INTO.VIEWER SK.SCALE.POSITION.INTO.VIEWER.EXACT
SK.MAKE.POSITION.INTEGER SCALE.POSITION.INTO.SKETCHW UNSCALE UNSCALE.REGION)
(* ;; "misc IO functions")
@@ -45,9 +44,8 @@
(FNS SKETCHW.HARDCOPYFN SK.LIST.IMAGE SK.HARDCOPYIMAGEW)
(FNS SK.DO.HARDCOPYIMAGEW.TOFILE SK.HARDCOPYIMAGEW.TOFILE
SK.HARDCOPYIMAGEW.TOPRINTER SK.LIST.IMAGE.ON.FILE)
(FNS \SK.LIST.PAGE.IMAGE SK.GetImageFile SK.PRINTER.FILE.CANDIDATE.NAME
SK.SET.HARDCOPY.MODE SK.UNSET.HARDCOPY.MODE SK.UPDATE.AFTER.HARDCOPY
DEFAULTPRINTINGIMAGETYPE SK.SWITCH.REGION.X.AND.Y)
(FNS \SK.LIST.PAGE.IMAGE SK.PRINTER.FILE.CANDIDATE.NAME SK.SET.HARDCOPY.MODE
SK.UNSET.HARDCOPY.MODE SK.UPDATE.AFTER.HARDCOPY SK.SWITCH.REGION.X.AND.Y)
(CONSTANTS MICASPERPT IMICASPERPT PTSPERMICA)))
(COMS
(* ;; "fns to implement transformations on the elements")
@@ -140,8 +138,8 @@
SK.NAME.CURRENT.VIEW SKETCH.ADD.VIEW SK.RESTORE.VIEW SK.FORGET.VIEW)
(DECLARE%: DONTCOPY (RECORDS SKETCHVIEW)))
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY (FILES (LOADCOMP)
SKETCH SKETCHELEMENTS SKETCHOBJ
SKETCHEDIT INTERPRESS))
SKETCH SKETCH-ELEMENTS SKETCH-OBJ
SKETCH-EDIT INTERPRESS))
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA)
(NLAML)
(LAMA STATUSPRINT])
@@ -157,12 +155,6 @@
(DEFINEQ
(SK.FONTNAMELIST
[LAMBDA (FONTDESC) (* rrb " 2-NOV-83 21:00")
(LIST (FONTPROP FONTDESC 'FAMILY)
(FONTPROP FONTDESC 'SIZE)
(FONTPROP FONTDESC 'FACE])
(SCALE.REGION.OUT
[LAMBDA (REGION SCALE) (* rrb "30-Dec-85 17:24")
@@ -700,7 +692,8 @@
(DEFINEQ
(SKETCHW.HARDCOPYFN
[LAMBDA (SKETCHW OPENIMAGESTREAM) (* ; "Edited 20-Aug-92 13:33 by jds")
[LAMBDA (SKETCHW OPENIMAGESTREAM) (* ; "Edited 3-Nov-2025 19:55 by rmk")
(* ; "Edited 20-Aug-92 13:33 by jds")
(* ;
 "dumps the sketch onto OPENIMAGESTREAM.")
(* ;
@@ -728,7 +721,9 @@
(* ;; "PAGETOSKETCHFACTOR is the factor to multiply the page coordinates by to get into sketch coordinates.")
(STATUSPRINT SKETCHW "Hardcopying ...")
(STATUSPRINT SKETCHW "Hardcopying" (CL:UNLESS (STREAMP (FULLNAME OPENIMAGESTREAM))
(CONCAT " to " (FULLNAME OPENIMAGESTREAM)))
" ...")
[STREAMPROP OPENIMAGESTREAM 'PRINTOPTIONS (APPEND (LIST 'DOCUMENT.NAME (OR (SKETCH.TITLE
SKETCHW)
"A Sketch"))
@@ -950,15 +945,12 @@
(DEFINEQ
(SK.DO.HARDCOPYIMAGEW.TOFILE
[LAMBDA (W) (* rrb " 5-May-86 13:38")
(* sketch version of
 HARDCOPYIMAGEW.TOFILE that accepts a
 candidate file name.)
(RESETFORM (TTY.PROCESS (THIS.PROCESS))
(LET [(FILE&TYPE (SK.GetImageFile (SK.PRINTER.FILE.CANDIDATE.NAME W]
(COND
(FILE&TYPE (HARDCOPY.SOMEHOW W (CAR FILE&TYPE)
(CDR FILE&TYPE])
[LAMBDA (W) (* ; "Edited 4-Nov-2025 21:47 by rmk")
(* ; "Edited 3-Nov-2025 16:17 by rmk")
(* rrb " 5-May-86 13:38")
(* ;
 "sketch version of HARDCOPYIMAGEW.TOFILE that accepts a candidate file name.")
(HARDCOPY.SOMEHOW W (GetImageFile (SK.PRINTER.FILE.CANDIDATE.NAME W])
(SK.HARDCOPYIMAGEW.TOFILE
[LAMBDA (SKW) (* rrb " 5-May-86 13:34")
@@ -981,16 +973,16 @@
'SketchHardcopy])
(SK.LIST.IMAGE.ON.FILE
[LAMBDA (SKETCHW) (* rrb " 5-May-86 13:39")
[LAMBDA (SKETCHW) (* ; "Edited 4-Nov-2025 21:46 by rmk")
(* ; "Edited 3-Nov-2025 16:20 by rmk")
(* rrb " 5-May-86 13:39")
(* makes a file suitable for the default printing host of the current sketch.
 Pretty dumb about file names.)
(* ;; "makes a file suitable for the default printing host of the current sketch. Pretty dumb about file names.")
(RESETFORM (TTY.PROCESS (THIS.PROCESS))
(LET [(FILE&TYPE (SK.GetImageFile (SK.PRINTER.FILE.CANDIDATE.NAME SKETCHW]
(COND
(FILE&TYPE (SK.LIST.IMAGE SKETCHW (CAR FILE&TYPE)
(CDR FILE&TYPE])
(LET [(FILE&TYPE (GetImageFile (SK.PRINTER.FILE.CANDIDATE.NAME SKETCHW]
(CL:WHEN FILE&TYPE
(SK.LIST.IMAGE SKETCHW (CAR FILE&TYPE)
(CDR FILE&TYPE)))])
)
(DEFINEQ
@@ -1027,46 +1019,21 @@
PAGETOSKETCHFACTOR OPENIMAGESTREAM T))
(DRAW.LOCAL.SKETCH SKETCHX OPENIMAGESTREAM REGIONONPAGE])
(SK.GetImageFile
[LAMBDA (CANDIDATE) (* rrb " 5-May-86 10:41")
(* version of GetImageFile that takes
 a candidate name.)
(PROG ((FILE (PopUpWindowAndGetAtom "File name (CR to abort): " CANDIDATE))
PRINTFILETYPE FILETYPEMENU EXTENSIONSUPPLIED EXTENSIONFORTYPE)
(COND
((NULL FILE)
(RETURN)))
(SETQ FILETYPEMENU (MakeMenuOfImageTypes "File type?"))
(COND
((SETQ PRINTFILETYPE (PRINTFILETYPE.FROM.EXTENSION FILE))
(RETURN (CONS FILE PRINTFILETYPE)))
(T (SETQ PRINTFILETYPE (MENU FILETYPEMENU))
(COND
((NULL PRINTFILETYPE)
(RETURN))
(T (RETURN (CONS FILE PRINTFILETYPE])
(SK.PRINTER.FILE.CANDIDATE.NAME
[LAMBDA (VIEWER) (* rrb " 5-May-86 13:30")
[LAMBDA (VIEWER) (* ; "Edited 14-Dec-2025 00:33 by rmk")
(* ; "Edited 3-Nov-2025 16:05 by rmk")
(* rrb " 5-May-86 13:30")
(* * returns the preferred printer file name for a viewer)
(* ;; "Returns the preferred imagefile name for a viewer.")
(PROG ((FILENAME (SK.OUTPUT.FILE.NAME (SKETCH.TITLE VIEWER)))
EXTENSION PRINTEXTENSION)
(OR FILENAME (RETURN))
[COND
((EQ (SELECTQ (SETQ PRINTEXTENSION (DEFAULTPRINTINGIMAGETYPE))
(INTERPRESS (SETQ PRINTEXTENSION 'IP))
NIL)
(FILENAMEFIELD FILENAME 'EXTENSION))
(* ;; "RMK: Original had IP built in in some way, odd conditions, plus an unbound variable. I assume that the extension of the filename is something like .SKETCH and not usually .IP (or now .PDF). And that therefore the intent is really that the result should have the extension that the deffaultprinting host can print directly.")
(* file name has a printer extension for some reason, propose either a null
 extension or hdcpy extension.)
(COND
(PRINTEXTENSION (SETQ PRINTEREXTENSION NIL))
(T (SETQ PRINTEREXTENSION 'HDCPY]
(RETURN (PACKFILENAME 'EXTENSION PRINTEXTENSION 'BODY FILENAME])
(LET ((FILENAME (SK.OUTPUT.FILE.NAME (SKETCH.TITLE VIEWER)))
PRINTEXTENSION)
(CL:WHEN [AND FILENAME (SETQ PRINTEXTENSION (CAR (EXTENSIONS.FOR.IMAGEFILETYPE (
CAN.PRINT.DIRECTLY
]
(PACKFILENAME 'EXTENSION PRINTEXTENSION 'BODY FILENAME))])
(SK.SET.HARDCOPY.MODE
[LAMBDA (SKETCHW IMAGETYPE) (* rrb "28-Oct-85 16:43")
@@ -1121,15 +1088,6 @@
(VIEWER.SCALE SKETCHW))
(REDISPLAYW SKETCHW])
(DEFAULTPRINTINGIMAGETYPE
[LAMBDA NIL (* rrb "20-Mar-85 12:45")
(* returns the image type of the
 default printer.)
(* code copied from OPENIMAGESTREAM)
(CAR (MKLIST (PRINTERPROP (PRINTERTYPE (OR (CAR (LISTP DEFAULTPRINTINGHOST))
DEFAULTPRINTINGHOST))
'CANPRINT])
(SK.SWITCH.REGION.X.AND.Y
[LAMBDA (REGION) (* rrb " 3-Sep-85 14:50")
(* switchs the X and Y dimensions of a
@@ -1145,7 +1103,7 @@
(RPAQQ IMICASPERPT 35)
(RPAQQ PTSPERMICA 0.02834646)
(RPAQQ PTSPERMICA 0.028346457)
(CONSTANTS MICASPERPT IMICASPERPT PTSPERMICA)
@@ -2884,10 +2842,12 @@ If you meant this, you should use the TWO PT TRANSFORM.")
(STATUSPRINT SKW "Element subsequently modified, can't undo"])
(SK.UNDO.LAST
[LAMBDA (SKW) (* rrb " 5-Dec-85 17:19")
(* undoes the first not yet undone
 history event.)
[LAMBDA (SKW) (* ; "Edited 29-Nov-2025 21:48 by rmk")
(* rrb " 5-Dec-85 17:19")
(* ;
 "undoes the first not yet undone history event.")
(SKED.CLEAR.SELECTION SKW)
(CLEARPROMPTWINDOW SKW)
(PROG [EVENT UNDOFN (HISTLST (WINDOWPROP SKW 'SKETCHHISTORY]
(COND
((NULL HISTLST)
@@ -2905,8 +2865,8 @@ If you meant this, you should use the TWO PT TRANSFORM.")
do (RETURN HISTEVENT)))
(COND
((APPLY* UNDOFN (fetch (SKHISTEVENT EVENTARGS) of EVENT)
SKW EVENT) (* only add to history list if
 something happened.)
SKW EVENT) (* ;
 "only add to history list if something happened.")
(STATUSPRINT SKW (SK.UNDO.NAME EVENT)
" event undone.")
(replace (SKHISTEVENT UNDONE?) of EVENT with T)
@@ -4094,7 +4054,7 @@ It can be either larger or smaller than the present window size.")
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY
(FILESLOAD (LOADCOMP)
SKETCH SKETCHELEMENTS SKETCHOBJ SKETCHEDIT INTERPRESS)
SKETCH SKETCH-ELEMENTS SKETCH-OBJ SKETCH-EDIT INTERPRESS)
)
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS
@@ -4105,85 +4065,84 @@ It can be either larger or smaller than the present window size.")
(ADDTOVAR LAMA STATUSPRINT)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (9853 14154 (SK.FONTNAMELIST 9863 . 10085) (SCALE.REGION.OUT 10087 . 11068) (
SK.SCALE.POSITION.INTO.VIEWER 11070 . 11826) (SK.SCALE.POSITION.INTO.VIEWER.EXACT 11828 . 12370) (
SK.MAKE.POSITION.INTEGER 12372 . 13040) (SCALE.POSITION.INTO.SKETCHW 13042 . 13434) (UNSCALE 13436 .
13564) (UNSCALE.REGION 13566 . 14152)) (14190 17888 (STATUSPRINT 14200 . 15562) (CLEARPROMPTWINDOW
15564 . 15971) (CLOSEPROMPTWINDOW 15973 . 16470) (MYGETPROMPTWINDOW 16472 . 17171) (PROMPT.GETINPUT
17173 . 17886)) (17946 28977 (SK.SEND.TO.BOTTOM 17956 . 18295) (SK.BRING.TO.TOP 18297 . 18665) (
SK.SWITCH.PRIORITIES 18667 . 18993) (SK.SEL.AND.CHANGE.PRIORITY 18995 . 19563) (
SK.SEL.AND.SWITCH.PRIORITIES 19565 . 21332) (SK.SORT.ELTS.BY.PRIORITY 21334 . 22055) (
SK.SORT.GELTS.BY.PRIORITY 22057 . 22636) (SORT.CHANGESPECS.BY.NEW.PRIORITY 22638 . 23326) (
SORT.CHANGESPECS.BY.OLD.PRIORITY 23328 . 24016) (SK.SEND.ELEMENTS.TO.BOTTOM 24018 . 25689) (
SK.BRING.ELEMENTS.TO.TOP 25691 . 27375) (SK.COPY.GLOBAL.ELEMENT.AND.PROPERTY.LIST 27377 . 28975)) (
28978 31834 (SK.ELEMENT.PRIORITY 28988 . 29316) (SK.SET.ELEMENT.PRIORITY 29318 . 30262) (
SK.POP.NEXT.PRIORITY 30264 . 30607) (SK.PRIORITY.CELL 30609 . 30814) (SK.HIGH.PRIORITY 30816 . 31319)
(SK.LOW.PRIORITY 31321 . 31832)) (31897 38700 (DRAW.LOCAL.SKETCH 31907 . 32909) (SET.PRIORITYIMPORTANT
32911 . 33479) (SK.FIGUREIMAGE 33481 . 38698)) (38744 57418 (SKETCHW.HARDCOPYFN 38754 . 45959) (
SK.LIST.IMAGE 45961 . 57068) (SK.HARDCOPYIMAGEW 57070 . 57416)) (57419 59376 (
SK.DO.HARDCOPYIMAGEW.TOFILE 57429 . 58103) (SK.HARDCOPYIMAGEW.TOFILE 58105 . 58467) (
SK.HARDCOPYIMAGEW.TOPRINTER 58469 . 58831) (SK.LIST.IMAGE.ON.FILE 58833 . 59374)) (59377 67301 (
\SK.LIST.PAGE.IMAGE 59387 . 61819) (SK.GetImageFile 61821 . 62751) (SK.PRINTER.FILE.CANDIDATE.NAME
62753 . 63672) (SK.SET.HARDCOPY.MODE 63674 . 65059) (SK.UNSET.HARDCOPY.MODE 65061 . 65479) (
SK.UPDATE.AFTER.HARDCOPY 65481 . 66189) (DEFAULTPRINTINGIMAGETYPE 66191 . 66781) (
SK.SWITCH.REGION.X.AND.Y 66783 . 67299)) (67539 80436 (SK.SEL.AND.TRANSFORM 67549 . 67899) (
SK.TRANSFORM.ELEMENTS 67901 . 69156) (SK.TRANSFORM.ITEM 69158 . 69959) (SK.TRANSFORM.ELEMENT 69961 .
70419) (SK.TRANSFORM.POINT 70421 . 70771) (SK.TRANSFORM.POINT.LIST 70773 . 70994) (SK.TRANSFORM.REGION
70996 . 73182) (SK.PUT.ELTS.ON.GRID 73184 . 73662) (SK.TRANSFORM.GLOBAL.ELEMENTS 73664 . 74166) (
GLOBALELEMENTP 74168 . 74459) (SKETCH.LIST.OF.ELEMENTSP 74461 . 74765) (SK.TRANSFORM.SCALE.FACTOR
74767 . 76460) (SK.TRANSFORM.BRUSH 76462 . 76929) (SK.TRANSFORM.ARROWHEADS 76931 . 78522) (SCALE.BRUSH
78524 . 80434)) (80437 100629 (TWO.PT.TRANSFORMATION.INPUTFN 80447 . 83220) (SK.TWO.PT.TRANSFORM.ELTS
83222 . 83627) (SK.SEL.AND.TWO.PT.TRANSFORM 83629 . 84220) (SK.APPLY.AFFINE.TRANSFORM 84222 . 85341)
(SK.COMPUTE.TWO.PT.TRANSFORMATION 85343 . 89681) (SK.COMPUTE.SLOPE 89683 . 90448) (
SK.THREE.PT.TRANSFORM.ELTS 90450 . 90861) (SK.COMPUTE.THREE.PT.TRANSFORMATION 90863 . 95400) (
SK.SEL.AND.THREE.PT.TRANSFORM 95402 . 95999) (THREE.PT.TRANSFORMATION.INPUTFN 96001 . 100627)) (100630
104657 (SK.COPY.AND.TWO.PT.TRANSFORM.ELTS 100640 . 101059) (SK.SEL.COPY.AND.TWO.PT.TRANSFORM 101061
. 101682) (SK.COPY.AND.THREE.PT.TRANSFORM.ELTS 101684 . 102113) (SK.SEL.COPY.AND.THREE.PT.TRANSFORM
102115 . 102739) (SK.COPY.AND.TRANSFORM.ELEMENTS 102741 . 103785) (SK.COPY.AND.TRANSFORM.ITEM 103787
. 104655)) (106785 109980 (SK.SHOWMARKS 106795 . 107695) (MARKPOINT 107697 . 108417) (SK.MARKHOTSPOTS
108419 . 109494) (SK.MARK.SELECTION 109496 . 109978)) (110509 117287 (SK.SELECT.ITEM 110519 . 113179)
(IN.SKETCH.ELT? 113181 . 115567) (SK.MARK.HOTSPOT 115569 . 116051) (SK.MARK.POSITION 116053 . 116490)
(SK.SELECT.ELT 116492 . 116919) (SK.DESELECT.ELT 116921 . 117285)) (117430 130244 (SK.HOTSPOT.CACHE
117440 . 117784) (SK.HOTSPOT.CACHE.FOR.OPERATION 117786 . 119141) (SK.BUILD.CACHE 119143 . 119966) (
SK.ELEMENT.PROTECTED? 119968 . 120561) (SK.HAS.SOME.HOTSPOTS 120563 . 121017) (SK.SET.HOTSPOT.CACHE
121019 . 121374) (SK.CREATE.HOTSPOT.CACHE 121376 . 121826) (SK.ELTS.FROM.HOTSPOT 121828 . 122668) (
SK.ADD.HOTSPOTS.TO.CACHE 122670 . 123071) (SK.ADD.HOTSPOTS.TO.CACHE1 123073 . 123619) (
SK.ADD.HOTSPOT.TO.CACHE 123621 . 125497) (SK.REMOVE.HOTSPOTS.FROM.CACHE 125499 . 125902) (
SK.REMOVE.HOTSPOTS.FROM.CACHE1 125904 . 126422) (SK.REMOVE.HOTSPOT.FROM.CACHE 126424 . 126987) (
SK.REMOVE.VALUE.FROM.CACHE.BUCKET 126989 . 127958) (SK.FIND.CACHE.BUCKET 127960 . 128549) (
SK.ADD.VALUE.TO.CACHE.BUCKET 128551 . 130242)) (130272 149715 (SK.SET.GRID 130282 . 130703) (
SK.DISPLAY.GRID 130705 . 131254) (SK.DISPLAY.GRID.POINTS 131256 . 131452) (SK.REMOVE.GRID.POINTS
131454 . 132257) (SK.TAKE.DOWN.GRID 132259 . 132570) (SK.SHOW.GRID 132572 . 136186) (SK.GRIDFACTOR
136188 . 136709) (SK.TURN.GRID.ON 136711 . 137039) (SK.TURN.GRID.OFF 137041 . 137399) (
SK.MAKE.GRID.LARGER 137401 . 138133) (SK.MAKE.GRID.SMALLER 138135 . 138888) (SK.CHANGE.GRID 138890 .
139338) (GRID.FACTOR1 139340 . 139697) (LEASTPOWEROF2GT 139699 . 140473) (GREATESTPOWEROF2LT 140475 .
141090) (SK.DEFAULT.GRIDFACTOR 141092 . 141645) (SK.PUT.ON.GRID 141647 . 142205) (MAP.WINDOW.ONTO.GRID
142207 . 142641) (MAP.SCREEN.ONTO.GRID 142643 . 143131) (MAP.GLOBAL.PT.ONTO.GRID 143133 . 143515) (
MAP.GLOBAL.REGION.ONTO.GRID 143517 . 145234) (MAP.WINDOW.POINT.ONTO.GLOBAL.GRID 145236 . 145779) (
MAP.WINDOW.ONTO.GLOBAL.GRID 145781 . 146166) (SK.UPDATE.GRIDFACTOR 146168 . 146804) (
SK.MAP.FROM.WINDOW.TO.GLOBAL.GRID 146806 . 147344) (SK.MAP.INPUT.PT.TO.GLOBAL 147346 . 148563) (
SK.MAP.FROM.WINDOW.TO.NEAREST.GRID 148565 . 149713)) (149855 158278 (SK.ADD.HISTEVENT 149865 . 151000)
(SK.SEL.AND.UNDO 151002 . 153916) (SK.UNDO.LAST 153918 . 155995) (SK.UNDO.NAME 155997 . 156501) (
SKEVENTTYPEFNS 156503 . 156853) (SK.TYPE.OF.FIRST.ARG 156855 . 158276)) (158279 158965 (SK.DELETE.UNDO
158289 . 158718) (SK.ADD.UNDO 158720 . 158963)) (158966 165748 (SK.CHANGE.UNDO 158976 . 160959) (
SK.ELT.IN.SKETCH? 160961 . 161215) (SK.CHANGE.REDO 161217 . 163085) (SK.MOVE.UNDO 163087 . 164480) (
SK.MOVE.REDO 164482 . 165746)) (165749 167848 (SK.UNDO.UNDO 165759 . 167025) (SK.UNDO.MENULABEL 167027
. 167422) (SK.LABEL.FROM.TYPE 167424 . 167846)) (168698 176540 (SHOW.GLOBAL.COORDS 168708 . 169257) (
LOCATOR.CLOSEFN 169259 . 169544) (SKETCHW.FROM.LOCATOR 169546 . 169954) (SKETCHW.UPDATE.LOCATORS
169956 . 170542) (LOCATOR.UPDATE 170544 . 171302) (UPDATE.GLOBAL.LOCATOR 171304 . 172105) (
UPDATE.GLOBALCOORD.LOCATOR 172107 . 172684) (ADD.GLOBAL.DISPLAY 172686 . 173603) (
ADD.GLOBAL.GRIDDED.DISPLAY 173605 . 173864) (CREATE.GLOBAL.DISPLAYER 173866 . 174943) (
UPDATE.GLOBAL.GRIDDED.COORD.LOCATOR 174945 . 176538)) (176747 189234 (DISPLAYREADCOLORHLSLEVELS 176757
. 177593) (DISPLAYREADCOLORLEVEL 177595 . 178630) (DRAWREADCOLORBOX 178632 . 179621) (
READ.CHANGE.COLOR 179623 . 179840) (READCOLOR1 179842 . 182756) (READCOLORCOMMANDMENUSELECTEDFN 182758
. 183125) (READCOLOR2 183127 . 189232)) (189235 190694 (CREATE.CNS.MENU 189245 . 190692)) (190971
193681 (SK.ABSWXOFFSET 190981 . 191275) (SK.ABSWYOFFSET 191277 . 191571) (
SK.UNSCALE.POSITION.FROM.VIEWER 191573 . 192142) (SK.SCALE.REGION 192144 . 193679)) (193720 208718 (
VIEWER.SCALE 193730 . 194039) (SKETCH.ZOOM 194041 . 195076) (SAME.ASPECT.RATIO 195078 . 196442) (
SKETCH.DO.ZOOM 196444 . 197649) (SKETCH.NEW.VIEW 197651 . 198166) (ZOOM.UPDATE.ELT 198168 . 199061) (
SK.UPDATE.AFTER.SCALE.CHANGE 199063 . 200932) (SKETCH.AUTOZOOM 200934 . 205354) (
SKETCH.GLOBAL.REGION.ZOOM 205356 . 208716)) (209355 221267 (SKETCH.HOME 209365 . 209892) (SK.FRAME.IT
209894 . 210486) (SK.FRAME.WINDOW.TO.SKETCH 210488 . 214334) (SK.MOVE.TO.VIEW 214336 . 215750) (
SK.NAME.CURRENT.VIEW 215752 . 216862) (SKETCH.ADD.VIEW 216864 . 217957) (SK.RESTORE.VIEW 217959 .
219835) (SK.FORGET.VIEW 219837 . 221265)))))
(FILEMAP (NIL (9724 13801 (SCALE.REGION.OUT 9734 . 10715) (SK.SCALE.POSITION.INTO.VIEWER 10717 . 11473
) (SK.SCALE.POSITION.INTO.VIEWER.EXACT 11475 . 12017) (SK.MAKE.POSITION.INTEGER 12019 . 12687) (
SCALE.POSITION.INTO.SKETCHW 12689 . 13081) (UNSCALE 13083 . 13211) (UNSCALE.REGION 13213 . 13799)) (
13837 17535 (STATUSPRINT 13847 . 15209) (CLEARPROMPTWINDOW 15211 . 15618) (CLOSEPROMPTWINDOW 15620 .
16117) (MYGETPROMPTWINDOW 16119 . 16818) (PROMPT.GETINPUT 16820 . 17533)) (17593 28624 (
SK.SEND.TO.BOTTOM 17603 . 17942) (SK.BRING.TO.TOP 17944 . 18312) (SK.SWITCH.PRIORITIES 18314 . 18640)
(SK.SEL.AND.CHANGE.PRIORITY 18642 . 19210) (SK.SEL.AND.SWITCH.PRIORITIES 19212 . 20979) (
SK.SORT.ELTS.BY.PRIORITY 20981 . 21702) (SK.SORT.GELTS.BY.PRIORITY 21704 . 22283) (
SORT.CHANGESPECS.BY.NEW.PRIORITY 22285 . 22973) (SORT.CHANGESPECS.BY.OLD.PRIORITY 22975 . 23663) (
SK.SEND.ELEMENTS.TO.BOTTOM 23665 . 25336) (SK.BRING.ELEMENTS.TO.TOP 25338 . 27022) (
SK.COPY.GLOBAL.ELEMENT.AND.PROPERTY.LIST 27024 . 28622)) (28625 31481 (SK.ELEMENT.PRIORITY 28635 .
28963) (SK.SET.ELEMENT.PRIORITY 28965 . 29909) (SK.POP.NEXT.PRIORITY 29911 . 30254) (SK.PRIORITY.CELL
30256 . 30461) (SK.HIGH.PRIORITY 30463 . 30966) (SK.LOW.PRIORITY 30968 . 31479)) (31544 38347 (
DRAW.LOCAL.SKETCH 31554 . 32556) (SET.PRIORITYIMPORTANT 32558 . 33126) (SK.FIGUREIMAGE 33128 . 38345))
(38391 57335 (SKETCHW.HARDCOPYFN 38401 . 45876) (SK.LIST.IMAGE 45878 . 56985) (SK.HARDCOPYIMAGEW
56987 . 57333)) (57336 59339 (SK.DO.HARDCOPYIMAGEW.TOFILE 57346 . 57943) (SK.HARDCOPYIMAGEW.TOFILE
57945 . 58307) (SK.HARDCOPYIMAGEW.TOPRINTER 58309 . 58671) (SK.LIST.IMAGE.ON.FILE 58673 . 59337)) (
59340 66025 (\SK.LIST.PAGE.IMAGE 59350 . 61782) (SK.PRINTER.FILE.CANDIDATE.NAME 61784 . 62988) (
SK.SET.HARDCOPY.MODE 62990 . 64375) (SK.UNSET.HARDCOPY.MODE 64377 . 64795) (SK.UPDATE.AFTER.HARDCOPY
64797 . 65505) (SK.SWITCH.REGION.X.AND.Y 65507 . 66023)) (66264 79161 (SK.SEL.AND.TRANSFORM 66274 .
66624) (SK.TRANSFORM.ELEMENTS 66626 . 67881) (SK.TRANSFORM.ITEM 67883 . 68684) (SK.TRANSFORM.ELEMENT
68686 . 69144) (SK.TRANSFORM.POINT 69146 . 69496) (SK.TRANSFORM.POINT.LIST 69498 . 69719) (
SK.TRANSFORM.REGION 69721 . 71907) (SK.PUT.ELTS.ON.GRID 71909 . 72387) (SK.TRANSFORM.GLOBAL.ELEMENTS
72389 . 72891) (GLOBALELEMENTP 72893 . 73184) (SKETCH.LIST.OF.ELEMENTSP 73186 . 73490) (
SK.TRANSFORM.SCALE.FACTOR 73492 . 75185) (SK.TRANSFORM.BRUSH 75187 . 75654) (SK.TRANSFORM.ARROWHEADS
75656 . 77247) (SCALE.BRUSH 77249 . 79159)) (79162 99354 (TWO.PT.TRANSFORMATION.INPUTFN 79172 . 81945)
(SK.TWO.PT.TRANSFORM.ELTS 81947 . 82352) (SK.SEL.AND.TWO.PT.TRANSFORM 82354 . 82945) (
SK.APPLY.AFFINE.TRANSFORM 82947 . 84066) (SK.COMPUTE.TWO.PT.TRANSFORMATION 84068 . 88406) (
SK.COMPUTE.SLOPE 88408 . 89173) (SK.THREE.PT.TRANSFORM.ELTS 89175 . 89586) (
SK.COMPUTE.THREE.PT.TRANSFORMATION 89588 . 94125) (SK.SEL.AND.THREE.PT.TRANSFORM 94127 . 94724) (
THREE.PT.TRANSFORMATION.INPUTFN 94726 . 99352)) (99355 103382 (SK.COPY.AND.TWO.PT.TRANSFORM.ELTS 99365
. 99784) (SK.SEL.COPY.AND.TWO.PT.TRANSFORM 99786 . 100407) (SK.COPY.AND.THREE.PT.TRANSFORM.ELTS
100409 . 100838) (SK.SEL.COPY.AND.THREE.PT.TRANSFORM 100840 . 101464) (SK.COPY.AND.TRANSFORM.ELEMENTS
101466 . 102510) (SK.COPY.AND.TRANSFORM.ITEM 102512 . 103380)) (105510 108705 (SK.SHOWMARKS 105520 .
106420) (MARKPOINT 106422 . 107142) (SK.MARKHOTSPOTS 107144 . 108219) (SK.MARK.SELECTION 108221 .
108703)) (109234 116012 (SK.SELECT.ITEM 109244 . 111904) (IN.SKETCH.ELT? 111906 . 114292) (
SK.MARK.HOTSPOT 114294 . 114776) (SK.MARK.POSITION 114778 . 115215) (SK.SELECT.ELT 115217 . 115644) (
SK.DESELECT.ELT 115646 . 116010)) (116155 128969 (SK.HOTSPOT.CACHE 116165 . 116509) (
SK.HOTSPOT.CACHE.FOR.OPERATION 116511 . 117866) (SK.BUILD.CACHE 117868 . 118691) (
SK.ELEMENT.PROTECTED? 118693 . 119286) (SK.HAS.SOME.HOTSPOTS 119288 . 119742) (SK.SET.HOTSPOT.CACHE
119744 . 120099) (SK.CREATE.HOTSPOT.CACHE 120101 . 120551) (SK.ELTS.FROM.HOTSPOT 120553 . 121393) (
SK.ADD.HOTSPOTS.TO.CACHE 121395 . 121796) (SK.ADD.HOTSPOTS.TO.CACHE1 121798 . 122344) (
SK.ADD.HOTSPOT.TO.CACHE 122346 . 124222) (SK.REMOVE.HOTSPOTS.FROM.CACHE 124224 . 124627) (
SK.REMOVE.HOTSPOTS.FROM.CACHE1 124629 . 125147) (SK.REMOVE.HOTSPOT.FROM.CACHE 125149 . 125712) (
SK.REMOVE.VALUE.FROM.CACHE.BUCKET 125714 . 126683) (SK.FIND.CACHE.BUCKET 126685 . 127274) (
SK.ADD.VALUE.TO.CACHE.BUCKET 127276 . 128967)) (128997 148440 (SK.SET.GRID 129007 . 129428) (
SK.DISPLAY.GRID 129430 . 129979) (SK.DISPLAY.GRID.POINTS 129981 . 130177) (SK.REMOVE.GRID.POINTS
130179 . 130982) (SK.TAKE.DOWN.GRID 130984 . 131295) (SK.SHOW.GRID 131297 . 134911) (SK.GRIDFACTOR
134913 . 135434) (SK.TURN.GRID.ON 135436 . 135764) (SK.TURN.GRID.OFF 135766 . 136124) (
SK.MAKE.GRID.LARGER 136126 . 136858) (SK.MAKE.GRID.SMALLER 136860 . 137613) (SK.CHANGE.GRID 137615 .
138063) (GRID.FACTOR1 138065 . 138422) (LEASTPOWEROF2GT 138424 . 139198) (GREATESTPOWEROF2LT 139200 .
139815) (SK.DEFAULT.GRIDFACTOR 139817 . 140370) (SK.PUT.ON.GRID 140372 . 140930) (MAP.WINDOW.ONTO.GRID
140932 . 141366) (MAP.SCREEN.ONTO.GRID 141368 . 141856) (MAP.GLOBAL.PT.ONTO.GRID 141858 . 142240) (
MAP.GLOBAL.REGION.ONTO.GRID 142242 . 143959) (MAP.WINDOW.POINT.ONTO.GLOBAL.GRID 143961 . 144504) (
MAP.WINDOW.ONTO.GLOBAL.GRID 144506 . 144891) (SK.UPDATE.GRIDFACTOR 144893 . 145529) (
SK.MAP.FROM.WINDOW.TO.GLOBAL.GRID 145531 . 146069) (SK.MAP.INPUT.PT.TO.GLOBAL 146071 . 147288) (
SK.MAP.FROM.WINDOW.TO.NEAREST.GRID 147290 . 148438)) (148580 157135 (SK.ADD.HISTEVENT 148590 . 149725)
(SK.SEL.AND.UNDO 149727 . 152641) (SK.UNDO.LAST 152643 . 154852) (SK.UNDO.NAME 154854 . 155358) (
SKEVENTTYPEFNS 155360 . 155710) (SK.TYPE.OF.FIRST.ARG 155712 . 157133)) (157136 157822 (SK.DELETE.UNDO
157146 . 157575) (SK.ADD.UNDO 157577 . 157820)) (157823 164605 (SK.CHANGE.UNDO 157833 . 159816) (
SK.ELT.IN.SKETCH? 159818 . 160072) (SK.CHANGE.REDO 160074 . 161942) (SK.MOVE.UNDO 161944 . 163337) (
SK.MOVE.REDO 163339 . 164603)) (164606 166705 (SK.UNDO.UNDO 164616 . 165882) (SK.UNDO.MENULABEL 165884
. 166279) (SK.LABEL.FROM.TYPE 166281 . 166703)) (167555 175397 (SHOW.GLOBAL.COORDS 167565 . 168114) (
LOCATOR.CLOSEFN 168116 . 168401) (SKETCHW.FROM.LOCATOR 168403 . 168811) (SKETCHW.UPDATE.LOCATORS
168813 . 169399) (LOCATOR.UPDATE 169401 . 170159) (UPDATE.GLOBAL.LOCATOR 170161 . 170962) (
UPDATE.GLOBALCOORD.LOCATOR 170964 . 171541) (ADD.GLOBAL.DISPLAY 171543 . 172460) (
ADD.GLOBAL.GRIDDED.DISPLAY 172462 . 172721) (CREATE.GLOBAL.DISPLAYER 172723 . 173800) (
UPDATE.GLOBAL.GRIDDED.COORD.LOCATOR 173802 . 175395)) (175604 188091 (DISPLAYREADCOLORHLSLEVELS 175614
. 176450) (DISPLAYREADCOLORLEVEL 176452 . 177487) (DRAWREADCOLORBOX 177489 . 178478) (
READ.CHANGE.COLOR 178480 . 178697) (READCOLOR1 178699 . 181613) (READCOLORCOMMANDMENUSELECTEDFN 181615
. 181982) (READCOLOR2 181984 . 188089)) (188092 189551 (CREATE.CNS.MENU 188102 . 189549)) (189828
192538 (SK.ABSWXOFFSET 189838 . 190132) (SK.ABSWYOFFSET 190134 . 190428) (
SK.UNSCALE.POSITION.FROM.VIEWER 190430 . 190999) (SK.SCALE.REGION 191001 . 192536)) (192577 207575 (
VIEWER.SCALE 192587 . 192896) (SKETCH.ZOOM 192898 . 193933) (SAME.ASPECT.RATIO 193935 . 195299) (
SKETCH.DO.ZOOM 195301 . 196506) (SKETCH.NEW.VIEW 196508 . 197023) (ZOOM.UPDATE.ELT 197025 . 197918) (
SK.UPDATE.AFTER.SCALE.CHANGE 197920 . 199789) (SKETCH.AUTOZOOM 199791 . 204211) (
SKETCH.GLOBAL.REGION.ZOOM 204213 . 207573)) (208212 220124 (SKETCH.HOME 208222 . 208749) (SK.FRAME.IT
208751 . 209343) (SK.FRAME.WINDOW.TO.SKETCH 209345 . 213191) (SK.MOVE.TO.VIEW 213193 . 214607) (
SK.NAME.CURRENT.VIEW 214609 . 215719) (SKETCH.ADD.VIEW 215721 . 216814) (SK.RESTORE.VIEW 216816 .
218692) (SK.FORGET.VIEW 218694 . 220122)))))
STOP

Binary file not shown.

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "13-Nov-2025 21:00:34" {WMEDLEY}<library>TEDIT>TEDIT.;844 144838
(FILECREATED "24-Dec-2025 22:45:39" {WMEDLEY}<library>TEDIT>TEDIT.;847 145111
:EDIT-BY rmk
:CHANGES-TO (FNS TEDIT.INSERT \TEDIT.INSERT)
:CHANGES-TO (VARS TEDITCOMS)
:PREVIOUS-DATE "28-Oct-2025 00:29:56" {WMEDLEY}<library>TEDIT>TEDIT.;843)
:PREVIOUS-DATE "24-Dec-2025 11:23:12" {WMEDLEY}<library>TEDIT>TEDIT.;846)
(PRETTYCOMPRINT TEDITCOMS)
@@ -76,8 +76,9 @@
(VARS (TEDITSYSTEMDATE (TEDITSYSTEMDATE]
(COMS (* ;
 "IMAGETYPE Interface, so the system can decide if a file is a TEdit file.")
(ADDVARS (PRINTFILETYPES (TEDIT (TEST TEDIT.FORMATTEDFILEP)
(EXTENSION (TEDIT TED])
(FNS TEDIT.IMAGESOURCEP)
(ALISTS (PRINTFILETYPES TEDIT))
(P (DEFAULT.IMAGETYPE.CONVERSIONS '(TEDIT TEDIT.TO.IMAGEFILE])
(FILESLOAD (SYSLOAD)
POSTSCRIPTSTREAM PDFSTREAM WHEELSCROLL)
@@ -2317,30 +2318,40 @@
(* ; "IMAGETYPE Interface, so the system can decide if a file is a TEdit file.")
(DEFINEQ
(ADDTOVAR PRINTFILETYPES (TEDIT (TEST TEDIT.FORMATTEDFILEP)
(TEDIT.IMAGESOURCEP
[LAMBDA (X) (* ; "Edited 23-Dec-2025 11:26 by rmk")
(OR (TEXTSTREAM X T)
(TEDIT.FORMATTEDFILEP X])
)
(ADDTOVAR PRINTFILETYPES (TEDIT (TEST TEDIT.IMAGESOURCEP)
(EXTENSION (TEDIT TED))))
(DEFAULT.IMAGETYPE.CONVERSIONS '(TEDIT TEDIT.TO.IMAGEFILE))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (4838 7232 (MAKE-TEDIT-EXPORTS.ALL 4848 . 5394) (UPDATE-TEDIT 5396 . 6325) (EDIT-TEDIT
6327 . 7230)) (8662 36440 (TEDIT 8672 . 11286) (TEXTSTREAM 11288 . 13177) (TEXTSTREAMP 13179 . 13563)
(COERCETEXTSTREAM 13565 . 17776) (TEDIT.CONCAT 17778 . 21080) (TEDITSTRING 21082 . 21996) (TEDIT-SEE
21998 . 22682) (TEDIT.COPY 22684 . 24829) (TEDIT.DELETE 24831 . 26192) (TEDIT.INSERT 26194 . 29163) (
TEDIT.TERPRI 29165 . 30279) (TEDIT.KILL 30281 . 31263) (TEDIT.QUIT 31265 . 32631) (TEDIT.MOVE 32633 .
33521) (TEDIT.STRINGWIDTH 33523 . 34194) (TEDIT.CHARWIDTH 34196 . 36438)) (36441 38382 (TEXTOBJ 36451
. 36916) (COERCETEXTOBJ 36918 . 38380)) (39782 41432 (TDRIBBLE 39792 . 41430)) (41473 53369 (
TEDIT.INSERT.OBJECT 41483 . 45190) (TEDIT.EDIT.OBJECT 45192 . 48132) (TEDIT.OBJECT.CHANGED 48134 .
51324) (TEDIT.MAP.OBJECTS 51326 . 52897) (\TEDIT.FIRST.OBJPIECE 52899 . 53132) (\TEDIT.NEXT.OBJPIECE
53134 . 53367)) (53392 60835 (\TEDIT.CONCAT.PAGEFRAMES 53402 . 58469) (\TEDIT.GET.PAGE.HEADINGS 58471
. 59500) (\TEDIT.CONCAT.INSTALL.HEADINGS 59502 . 60833)) (60836 64443 (\TEDIT.MOVE.MSG 60846 . 62927)
(\TEDIT.READONLY 62929 . 64441)) (64444 70335 (TEDIT.NCHARS 64454 . 64827) (TEDIT.RPLCHARCODE 64829
. 67819) (TEDIT.NTHCHARCODE 67821 . 69864) (TEDIT.NTHCHAR 69866 . 70333)) (70381 127158 (\TEDIT1
70391 . 72468) (\TEDIT.INSERT 72470 . 78583) (\TEDIT.MOVE 78585 . 86491) (\TEDIT.COPY 86493 . 91024) (
\TEDIT.REPLACE.SELPIECES 91026 . 95562) (\TEDIT.INSERT.SELPIECES 95564 . 98561) (\TEDIT.RESTARTFN
98563 . 101068) (\TEDIT.CHARDELETE 101070 . 103999) (\TEDIT.COPYPIECE 104001 . 109163) (
\TEDIT.APPLY.OBJFN 109165 . 112251) (\TEDIT.DELETE 112253 . 116621) (\TEDIT.DIFFUSE.PARALOOKS 116623
. 118894) (\TEDIT.WORDDELETE 118896 . 120511) (\TEDIT.WORDDELETE.FORWARD 120513 . 122302) (
\TEDIT.FINISHEDIT? 122304 . 127156)) (127159 127818 (\TEDIT.THELP 127169 . 127816)) (127852 136983 (
\TEDIT.PARAPIECES 127862 . 129836) (\TEDIT.PARACHNOS 129838 . 130730) (\TEDIT.PARA.FIRST 130732 .
133833) (\TEDIT.PARA.LAST 133835 . 136981)) (136984 144079 (\TEDIT.WORD.FIRST 136994 . 140998) (
\TEDIT.WORD.LAST 141000 . 144077)) (144280 144557 (TEDITSYSTEMDATE 144290 . 144555)))))
(FILEMAP (NIL (4840 7234 (MAKE-TEDIT-EXPORTS.ALL 4850 . 5396) (UPDATE-TEDIT 5398 . 6327) (EDIT-TEDIT
6329 . 7232)) (8664 36442 (TEDIT 8674 . 11288) (TEXTSTREAM 11290 . 13179) (TEXTSTREAMP 13181 . 13565)
(COERCETEXTSTREAM 13567 . 17778) (TEDIT.CONCAT 17780 . 21082) (TEDITSTRING 21084 . 21998) (TEDIT-SEE
22000 . 22684) (TEDIT.COPY 22686 . 24831) (TEDIT.DELETE 24833 . 26194) (TEDIT.INSERT 26196 . 29165) (
TEDIT.TERPRI 29167 . 30281) (TEDIT.KILL 30283 . 31265) (TEDIT.QUIT 31267 . 32633) (TEDIT.MOVE 32635 .
33523) (TEDIT.STRINGWIDTH 33525 . 34196) (TEDIT.CHARWIDTH 34198 . 36440)) (36443 38384 (TEXTOBJ 36453
. 36918) (COERCETEXTOBJ 36920 . 38382)) (39784 41434 (TDRIBBLE 39794 . 41432)) (41475 53371 (
TEDIT.INSERT.OBJECT 41485 . 45192) (TEDIT.EDIT.OBJECT 45194 . 48134) (TEDIT.OBJECT.CHANGED 48136 .
51326) (TEDIT.MAP.OBJECTS 51328 . 52899) (\TEDIT.FIRST.OBJPIECE 52901 . 53134) (\TEDIT.NEXT.OBJPIECE
53136 . 53369)) (53394 60837 (\TEDIT.CONCAT.PAGEFRAMES 53404 . 58471) (\TEDIT.GET.PAGE.HEADINGS 58473
. 59502) (\TEDIT.CONCAT.INSTALL.HEADINGS 59504 . 60835)) (60838 64445 (\TEDIT.MOVE.MSG 60848 . 62929)
(\TEDIT.READONLY 62931 . 64443)) (64446 70337 (TEDIT.NCHARS 64456 . 64829) (TEDIT.RPLCHARCODE 64831
. 67821) (TEDIT.NTHCHARCODE 67823 . 69866) (TEDIT.NTHCHAR 69868 . 70335)) (70383 127160 (\TEDIT1
70393 . 72470) (\TEDIT.INSERT 72472 . 78585) (\TEDIT.MOVE 78587 . 86493) (\TEDIT.COPY 86495 . 91026) (
\TEDIT.REPLACE.SELPIECES 91028 . 95564) (\TEDIT.INSERT.SELPIECES 95566 . 98563) (\TEDIT.RESTARTFN
98565 . 101070) (\TEDIT.CHARDELETE 101072 . 104001) (\TEDIT.COPYPIECE 104003 . 109165) (
\TEDIT.APPLY.OBJFN 109167 . 112253) (\TEDIT.DELETE 112255 . 116623) (\TEDIT.DIFFUSE.PARALOOKS 116625
. 118896) (\TEDIT.WORDDELETE 118898 . 120513) (\TEDIT.WORDDELETE.FORWARD 120515 . 122304) (
\TEDIT.FINISHEDIT? 122306 . 127158)) (127161 127820 (\TEDIT.THELP 127171 . 127818)) (127854 136985 (
\TEDIT.PARAPIECES 127864 . 129838) (\TEDIT.PARACHNOS 129840 . 130732) (\TEDIT.PARA.FIRST 130734 .
133835) (\TEDIT.PARA.LAST 133837 . 136983)) (136986 144081 (\TEDIT.WORD.FIRST 136996 . 141000) (
\TEDIT.WORD.LAST 141002 . 144079)) (144282 144559 (TEDITSYSTEMDATE 144292 . 144557)) (144695 144902 (
TEDIT.IMAGESOURCEP 144705 . 144900)))))
STOP

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "10-Sep-2025 19:05:00" {WMEDLEY}<library>tedit>TEDIT-HCPY.;179 30623
(FILECREATED "15-Jan-2026 11:08:15" {WMEDLEY}<library>tedit>TEDIT-HCPY.;196 32421
:EDIT-BY rmk
:CHANGES-TO (VARS TEDIT-HCPYCOMS)
:CHANGES-TO (FNS TEDIT.IMAGEFILE.MESSAGE TEDIT.FORMAT.HARDCOPY)
:PREVIOUS-DATE " 9-Sep-2025 21:52:28" {WMEDLEY}<library>tedit>TEDIT-HCPY.;177)
:PREVIOUS-DATE "24-Dec-2025 11:16:22" {WMEDLEY}<library>tedit>TEDIT-HCPY.;194)
(PRETTYCOMPRINT TEDIT-HCPYCOMS)
@@ -15,9 +15,10 @@
((COMS
(* ;; "Generic interface functions and common code")
(FNS TEDIT.HARDCOPY \TEDIT.PRINT.MENU TEDIT.HCPYFILE \TEDIT.HARDCOPY.DISPLAYLINE
\TEDIT.HARDCOPY.FORMATLINE.HEADINGS \TEDIT.HARDCOPY.MODIFYLOOKS \TEDIT.HCPYFMTSPEC
\TEDIT.INTEGER.IMAGEBOX \TEDIT.DISPLAY.DIACRITIC))
(FNS TEDIT.HARDCOPY TEDIT.FORMAT.HARDCOPY TEDIT.IMAGEFILE.MESSAGE \TEDIT.PRINT.MENU
\TEDIT.HARDCOPY.DISPLAYLINE \TEDIT.HARDCOPY.FORMATLINE.HEADINGS
\TEDIT.HARDCOPY.MODIFYLOOKS \TEDIT.HCPYFMTSPEC \TEDIT.INTEGER.IMAGEBOX
\TEDIT.DISPLAY.DIACRITIC))
(COMS
(* ;; "Functions for scaling regions as needed during hardcopy.")
@@ -27,9 +28,9 @@
(INITVARS (TEDIT.DEFAULTPAGEREGION (\TEDIT.SCALEREGION MICASPERINCH
(CREATEREGION 1.1 0.75 6.4 9.25]
(COMS
(* ;; "Support for the window-menu's HARDCOPY button, LISTFILES, etc. THIS IS SCREWY")
(* ;; "Support for the window-menu's HARDCOPY button, LISTFILES, etc. Eliminated postscript, but this still may be screwy")
(FNS TEDIT.HARDCOPYFN \TEDIT.HARDCOPYFILEFN \TEDIT.POSTSCRIPT.HARDCOPY))
(FNS \TEDIT.HARDCOPYFILEFN))
[COMS
(* ;; "vars for Japanese Line Break")
@@ -56,68 +57,120 @@
(TEDIT.HARDCOPY
[LAMBDA (STREAM FILE DONTSEND BREAKPAGETITLE SERVER PRINTOPTIONS)
(* ; "Edited 17-Dec-2025 01:06 by rmk")
(* ; "Edited 6-Mar-2024 23:33 by rmk")
(* ; "Edited 5-Jan-88 16:09 by jds")
(* ;; "Send the text to a printer, unless DONTSEND. If DONTSEND and we can't find a server, we'll get the DEFAULTPRINTERTYPE.")
(CL:UNLESS SERVER (SETQ SERVER DEFAULTPRINTINGHOST))
(CL:UNLESS SERVER
(SETQ SERVER (CAR (DEFAULTPRINTERS))))
(COND
[(OR SERVER DONTSEND)
(for IMAGETYPE in (PRINTERPROP (PRINTERTYPE SERVER)
'CANPRINT)
do (RETURN (TEDIT.FORMAT.HARDCOPY STREAM FILE DONTSEND BREAKPAGETITLE SERVER PRINTOPTIONS
do (RETURN (TEDIT.FORMAT.HARDCOPY STREAM FILE DONTSEND BREAKPAGETITLE SERVER PRINTOPTIONS
IMAGETYPE)) finally (ERROR (CONCAT "Can't print TEDIT documents on a "
(PRINTERTYPE SERVER)
" printer."]
(T (TEDIT.PROMPTPRINT (TEXTOBJ STREAM)
"Can't HARDCOPY: No print server specified." T])
(TEDIT.FORMAT.HARDCOPY
[LAMBDA (TSTREAM IMAGESTREAM DONTSEND BREAKPAGETITLE SERVER PRINTOPTIONS IMAGETYPE FIRSTPG# STARTPG
ENDPG QUIET) (* ; "Edited 15-Jan-2026 08:52 by rmk")
(* ; "Edited 14-Dec-2025 17:40 by rmk")
(* ; "Edited 8-Dec-2025 18:08 by rmk")
(* ; "Edited 7-Dec-2025 15:06 by rmk")
(* ; "Edited 19-Sep-2025 22:04 by rmk")
(* ; "Edited 18-Sep-2025 10:11 by rmk")
(* ; "Edited 12-Sep-2025 23:54 by rmk")
(* ; "Edited 5-Jun-2025 08:24 by rmk")
(* ; "Edited 22-Apr-2025 08:12 by rmk")
(* ; "Edited 30-Aug-2024 15:45 by rmk")
(* ; "Edited 5-Apr-2024 08:01 by rmk")
(* ; "Edited 19-Jan-2024 23:39 by rmk")
(* ; "Edited 15-Nov-2023 23:56 by rmk")
(* ; "Edited 4-Jul-2023 11:16 by rmk")
(* ; "Edited 2-Oct-2022 00:00 by rmk")
(* ;
 "Edited 25-May-93 13:06 by sybalsky:mv:envos")
(* ;; "Format a document for hardcopy. Returns NIL if the before-print-fn said not to print.")
(* ;; "TEXTSTREAM is either already a textstream or somehow denotes a tedit-formatted file, otherwise an error. We don't here try to decide that a non-formatted file is a plain text file, as opposed binary or anything else.")
(RESETLST
(TEDIT.PROMPTCLEAR TSTREAM)
(LET [(IMAGEFILE (TEDIT.TO.IMAGEFILE TSTREAM IMAGESTREAM (OR IMAGETYPE DEFAULTPRINTERTYPE)
`(,@PRINTOPTIONS FIRSTPG# ,FIRSTPG# STARTPG ,STARTPG ENDPG
,ENDPG DOCUMENT.NAME ,BREAKPAGETITLE]
(CL:UNLESS (OR DONTSEND (EQ IMAGEFILE IMAGESTREAM))
(* ;; "If the caller gave us an already open image stream, not just a filename (or NIL), we assume that the caller will close it and send to the printer, if necessary.")
(SEND.FILE.TO.PRINTER IMAGEFILE SERVER `(DOCUMENT.NAME ,BREAKPAGETITLE
,@PRINTOPTIONS DOCUMENT.NAME
"TEdit Hardcopy Output")))
(CL:UNLESS QUIET (TEDIT.IMAGEFILE.MESSAGE TSTREAM SERVER))
IMAGEFILE))])
(TEDIT.IMAGEFILE.MESSAGE
[LAMBDA (TSTREAM SERVER) (* ; "Edited 15-Jan-2026 11:07 by rmk")
(* ; "Edited 14-Dec-2025 17:40 by rmk")
(* ;; "Description of last imagefile goes in promptwindow")
(LET* [(LASTIMAGEFILE (GETTEXTPROP TSTREAM 'LASTIMAGEFILE))
(NPAGES (pop LASTIMAGEFILE))
(IMAGEFILE (pop LASTIMAGEFILE))
(PRINTERNAME (OR (pop LASTIMAGEFILE)
(CL:IF (LISTP SERVER)
(CADR SERVER)
SERVER)]
(TEDIT.PROMPTPRINT TSTREAM [CONCAT NPAGES " page" (CL:IF (EQ 1 NPAGES)
""
"s")
(if PRINTERNAME
then (CONCAT " printed on " PRINTERNAME)
elseif (STREAMP IMAGEFILE)
then " printed"
else (CONCAT " on " (PSEUDOFILENAME IMAGEFILE]
T])
(\TEDIT.PRINT.MENU
[LAMBDA (TSTREAM) (* ; "Edited 28-Jun-2024 22:09 by rmk")
(* ; "Edited 25-Jun-2023 13:16 by rmk")
(* ; "Edited 6-Jun-2023 17:48 by rmk")
(LET ((W (GETTOBJ (TEXTOBJ TSTREAM)
PRIMARYPANE)))
[LAMBDA (TSTREAM) (* ; "Edited 17-Dec-2025 00:09 by rmk")
(* ; "Edited 14-Dec-2025 17:38 by rmk")
(* ; "Edited 13-Dec-2025 08:35 by rmk")
(* ; "Edited 19-Sep-2025 07:43 by rmk")
(* ; "Edited 28-Jun-2024 22:09 by rmk")
(* ; "Edited 25-Jun-2023 13:16 by rmk")
(SETQ TSTREAM (TEXTSTREAM (GETTOBJ (TEXTOBJ TSTREAM)
PRIMARYPANE)))
(TEDIT.PROMPTCLEAR TSTREAM) (* ; "Edited 6-Jun-2023 17:48 by rmk")
(LET (FILE&TYPE)
(SELECTQ [MENU (create MENU
ITEMS _ '(("Print to a file" 'FILE
"Puts image on a file; prompts for filename and format"
)
("Send to a printer" 'PRINTER
"Sends image to a printer of your choosing"]
(FILE (HARDCOPYIMAGEW.TOFILE W))
(PRINTER (HARDCOPYIMAGEW.TOPRINTER W))
NIL])
(TEDIT.HCPYFILE
[LAMBDA (TSTREAM FILE BREAKPAGETITLE) (* ; "Edited 29-Jun-2024 16:33 by rmk")
(* ; "Edited 4-Oct-2022 09:23 by rmk")
(* ; "Edited 1-Oct-2022 22:12 by rmk")
(* ; "Edited 12-Jun-90 18:36 by mitani")
(* ;; "Create a hardcopy-format FILE from the text on TSTREAM, with the file type depending on what the default printer is.")
(LET ([IMAGETYPE (CAR (PRINTERPROP (PRINTERTYPE)
'CANPRINT]
(TEXTOBJ (TEXTOBJ TSTREAM))
FILENM TXTFILE)
(CL:WHEN [SETQ FILENM (OR FILE (\TEDIT.MAKEFILENAME
(TEDIT.GETINPUT TEXTOBJ (CONCAT IMAGETYPE " file name: ")
(COND
((type? STREAM (SETQ TXTFILE (fetch (TEXTOBJ
TXTFILE)
of TEXTOBJ)))
(* ;
 "There was a file, so supply default")
(PACKFILENAME 'VERSION NIL 'EXTENSION
(OR (CAR (PRINTFILETYPE IMAGETYPE
'EXTENSION))
'HCPY)
'BODY
(fetch (STREAM FULLFILENAME) of TXTFILE]
(if FILENM
then (TEDIT.FORMAT.HARDCOPY TSTREAM FILENM T BREAKPAGETITLE NIL NIL IMAGETYPE)
else (TEDIT.PROMPTPRINT TSTREAM "No hardcopy file--aborted" T T)))])
(FILE [LET [(FILENAME (GETTEXTPROP TSTREAM 'FILENAME]
(CL:WHEN FILENAME
(SETQ FILENAME (PACKFILENAME
'VERSION NIL 'EXTENSION
[L-CASE (CAR (EXTENSIONS.FOR.IMAGEFILETYPE
(CAR (PRINTERPROP (PRINTERTYPE
:DEFAULTPRINTER)
'CANPRINT]
'BODY FILENAME)))
(CL:WHEN (SETQ FILE&TYPE (GetImageFile FILENAME))
(TEDIT.TO.IMAGEFILE TSTREAM (CAR FILE&TYPE)
(CDR FILE&TYPE)))])
(PRINTER [SEND.FILE.TO.PRINTER TSTREAM (GetPrinterName)
`(HEADING ,(GETTEXTPROP TSTREAM 'FILENAME])
NIL)
(TEDIT.IMAGEFILE.MESSAGE TSTREAM])
(\TEDIT.HARDCOPY.DISPLAYLINE
[LAMBDA (TSTREAM LINE REGION PRSTREAM FORMATTINGSTATE) (* ; "Edited 21-Apr-2025 19:02 by rmk")
@@ -415,31 +468,12 @@
(* ;; "Support for the window-menu's HARDCOPY button, LISTFILES, etc. THIS IS SCREWY")
(* ;;
"Support for the window-menu's HARDCOPY button, LISTFILES, etc. Eliminated postscript, but this still may be screwy"
)
(DEFINEQ
(TEDIT.HARDCOPYFN
[LAMBDA (WINDOW IMAGESTREAM) (* ; "Edited 13-Dec-2024 22:33 by rmk")
(* ; "Edited 29-Jun-2024 14:42 by rmk")
(* ; "Edited 20-Mar-2024 10:49 by rmk")
(* ; "Edited 25-Sep-2023 16:29 by rmk")
(* ; "Edited 4-Jul-2023 11:16 by rmk")
(* ; "Edited 21-Sep-2021 15:33 by rmk:")
(* ;;
 "This is the TEdit HARDCOPYFN, hooking into the system's standard Hardcopy window-menu operation.")
(LET ((TEXTSTREAM (TEXTSTREAM WINDOW)))
(* ;; "TEXTSTREAM is bound here so we don't drop the steam on the floor if the window goes away, since the TEXTOBJ only has an XPOINTER to the stream in it. Please don't remove this binding!")
(TEDIT.FORMAT.HARDCOPY (CL:IF (FGETTOBJ (TEXTOBJ WINDOW)
MENUFLG)
(\TEDIT.MAINW WINDOW)
WINDOW)
IMAGESTREAM])
(\TEDIT.HARDCOPYFILEFN
[LAMBDA (W EXT) (* ; "Edited 25-Sep-2023 16:19 by rmk")
(LET [(STRM (OR (GETTOBJ (TEXTOBJ W)
@@ -452,22 +486,6 @@
(PACKFILENAME 'VERSION NIL 'EXTENSION (OR EXT 'IMAGEFILE)
'BODY
(FULLNAME STRM)))])
(\TEDIT.POSTSCRIPT.HARDCOPY
[LAMBDA (FILE PFILE) (* ; "Edited 4-Oct-2022 10:40 by rmk")
(* ; "Edited 1-Oct-2022 22:08 by rmk")
(* ; "Edited 12-Jun-90 18:35 by mitani")
(* ;; "Send the document FILE to the printer (or to a print file, as determined by PFILE).")
(CL:WITH-OPEN-STREAM (TEXT-STREAM (OPENTEXTSTREAM FILE))
(RESETLST
[RESETSAVE (\TEDIT.MARKACTIVE (TEXTOBJ TEXT-STREAM))
'(AND (\TEDIT.MARKINACTIVE OLDVALUE]
[RESETSAVE NIL `(AND (CLOSEF? ',PFILE]
(replace (TEXTOBJ EDITOPACTIVE) of (TEXTOBJ TEXT-STREAM) with 'Hardcopy)
(TEDIT.FORMAT.HARDCOPY TEXT-STREAM PFILE T NIL NIL NIL 'POSTSCRIPT)
PFILE)])
)
@@ -505,11 +523,10 @@
(CLOSEF DOC])
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (2652 25209 (TEDIT.HARDCOPY 2662 . 3795) (\TEDIT.PRINT.MENU 3797 . 4763) (TEDIT.HCPYFILE
4765 . 6939) (\TEDIT.HARDCOPY.DISPLAYLINE 6941 . 16164) (\TEDIT.HARDCOPY.FORMATLINE.HEADINGS 16166 .
17895) (\TEDIT.HARDCOPY.MODIFYLOOKS 17897 . 20078) (\TEDIT.HCPYFMTSPEC 20080 . 23538) (
\TEDIT.INTEGER.IMAGEBOX 23540 . 24211) (\TEDIT.DISPLAY.DIACRITIC 24213 . 25207)) (25284 26114 (
\TEDIT.SCALEREGION 25294 . 26112)) (26367 29180 (TEDIT.HARDCOPYFN 26377 . 27682) (
\TEDIT.HARDCOPYFILEFN 27684 . 28245) (\TEDIT.POSTSCRIPT.HARDCOPY 28247 . 29178)) (29799 30600 (
TEDIT-BOOK 29809 . 30598)))))
(FILEMAP (NIL (2727 29208 (TEDIT.HARDCOPY 2737 . 3995) (TEDIT.FORMAT.HARDCOPY 3997 . 7234) (
TEDIT.IMAGEFILE.MESSAGE 7236 . 8533) (\TEDIT.PRINT.MENU 8535 . 10938) (\TEDIT.HARDCOPY.DISPLAYLINE
10940 . 20163) (\TEDIT.HARDCOPY.FORMATLINE.HEADINGS 20165 . 21894) (\TEDIT.HARDCOPY.MODIFYLOOKS 21896
. 24077) (\TEDIT.HCPYFMTSPEC 24079 . 27537) (\TEDIT.INTEGER.IMAGEBOX 27539 . 28210) (
\TEDIT.DISPLAY.DIACRITIC 28212 . 29206)) (29283 30113 (\TEDIT.SCALEREGION 29293 . 30111)) (30405 30978
(\TEDIT.HARDCOPYFILEFN 30415 . 30976)) (31597 32398 (TEDIT-BOOK 31607 . 32396)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED " 6-Oct-2025 20:50:59" {WMEDLEY}<library>TEDIT>TEDIT-LOOKS.;459 155349
(FILECREATED " 7-Dec-2025 16:32:32" {WMEDLEY}<library>tedit>TEDIT-LOOKS.;460 155196
:EDIT-BY rmk
:CHANGES-TO (FNS \TEDIT.MCCS.TRANSLATE)
:CHANGES-TO (VARS TEDIT-LOOKSCOMS)
:PREVIOUS-DATE " 5-Oct-2025 10:57:43" {WMEDLEY}<library>TEDIT>TEDIT-LOOKS.;457)
:PREVIOUS-DATE " 6-Oct-2025 20:50:59" {WMEDLEY}<library>tedit>TEDIT-LOOKS.;459)
(PRETTYCOMPRINT TEDIT-LOOKSCOMS)
@@ -60,7 +60,6 @@
(* ;; "Public entries")
(FNS TEDIT.LOOKS TEDIT.GET.LOOKS TEDIT.SUBLOOKS TEDIT.FINDLOOKS)
[INITVARS (TEDIT.FONTCLASSES '(DISPLAY PDF POSTSCRIPT INTERPRESS]
(FNS \TEDIT.CHANGE.CHARLOOKS \TEDIT.CHANGE.CHARLOOKS.NEW \TEDIT.CHARLOOKS.CHANGE.FONT
\TEDIT.FONT.NEXTSIZE \TEDIT.LOOKS \TEDIT.FONTCOPY \TEDIT.COERCE.FONTCLASS
\TEDIT.FONTCLASS.TO.FONT))
@@ -1375,8 +1374,6 @@
(TEDIT.NORMALIZECARET TEXTOBJ)
(RETURN (\TEDIT.COPYSEL (FGETTOBJ TEXTOBJ SEL])])
)
(RPAQ? TEDIT.FONTCLASSES '(DISPLAY PDF POSTSCRIPT INTERPRESS))
(DEFINEQ
(\TEDIT.CHANGE.CHARLOOKS
@@ -2461,26 +2458,26 @@
(ADDTOVAR LAMA )
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (22099 24041 (\TEDIT.CHARLOOKS.DEFPRINT 22109 . 23245) (\TEDIT.PARALOOKS.DEFPRINT 23247
. 24039)) (24145 24531 (\TEDIT.CREATE.FACE.MENU 24155 . 24327) (\TEDIT.CREATE.SIZE.MENU 24329 . 24529
)) (25535 27424 (\TEDIT.CHARLOOKS.FEATURE.CHECK 25545 . 27422)) (27696 52953 (
\TEDIT.CHARLOOKS.FROM.FONT 27706 . 29990) (\TEDIT.EQCLOOKS 29992 . 33023) (\TEDIT.SAMECLOOKS 33025 .
36196) (TEDIT.CARETLOOKS 36198 . 37744) (TEDIT.COPY.LOOKS 37746 . 41029) (
\TEDIT.UNPARSE.CHARLOOKS.LIST 41031 . 44525) (\TEDIT.MODIFYLOOKS 44527 . 46687) (TEDIT.NEW.FONT 46689
. 47136) (\TEDIT.CARETLOOKS.VERIFY 47138 . 47975) (\TEDIT.CARETPIECE 47977 . 48282) (
\TEDIT.GET.INSERT.CHARLOOKS 48284 . 51331) (\TEDIT.GET.TERMSA.WIDTHS 51333 . 51749) (
\TEDIT.PARSE.CHARLOOKS.LIST 51751 . 52951)) (52954 65081 (\TEDIT.MCCS.TRANSLATE 52964 . 58817) (
\TEDIT.CONVERT.TO.FORMATTED 58819 . 65079)) (65953 73290 (\TEDIT.UNIQUIFY.CHARLOOKS 65963 . 67623) (
\TEDIT.UNIQUIFY.PARALOOKS 67625 . 68892) (\TEDIT.UNIQUIFY.ALL 68894 . 70982) (
\TEDIT.FLUSH.UNUSED.LOOKS 70984 . 73288)) (73323 85281 (TEDIT.LOOKS 73333 . 75722) (TEDIT.GET.LOOKS
75724 . 78059) (TEDIT.SUBLOOKS 78061 . 82441) (TEDIT.FINDLOOKS 82443 . 85279)) (85350 115000 (
\TEDIT.CHANGE.CHARLOOKS 85360 . 94138) (\TEDIT.CHANGE.CHARLOOKS.NEW 94140 . 97955) (
\TEDIT.CHARLOOKS.CHANGE.FONT 97957 . 106264) (\TEDIT.FONT.NEXTSIZE 106266 . 107887) (\TEDIT.LOOKS
107889 . 111218) (\TEDIT.FONTCOPY 111220 . 112721) (\TEDIT.COERCE.FONTCLASS 112723 . 113874) (
\TEDIT.FONTCLASS.TO.FONT 113876 . 114998)) (115043 146691 (\TEDIT.EQFMTSPEC 115053 . 118268) (
TEDIT.GET.PARALOOKS 118270 . 122317) (\TEDIT.PARSE.PARALOOKS.LIST 122319 . 130352) (TEDIT.PARALOOKS
130354 . 131394) (\TEDIT.CHANGE.PARALOOKS 131396 . 138364) (\TEDIT.CHANGE.PARALOOKS.NEW 138366 .
142349) (TEDIT.COPY.PARALOOKS 142351 . 145025) (\TEDIT.PARABOUNDS 145027 . 146689)) (146751 154467 (
TEDIT.SUBPARALOOKS 146761 . 150863) (SAMEPARALOOKS 150865 . 154465)) (154468 155155 (
\TEDIT.MARK.REVISION 154478 . 155153)))))
(FILEMAP (NIL (22014 23956 (\TEDIT.CHARLOOKS.DEFPRINT 22024 . 23160) (\TEDIT.PARALOOKS.DEFPRINT 23162
. 23954)) (24060 24446 (\TEDIT.CREATE.FACE.MENU 24070 . 24242) (\TEDIT.CREATE.SIZE.MENU 24244 . 24444
)) (25450 27339 (\TEDIT.CHARLOOKS.FEATURE.CHECK 25460 . 27337)) (27611 52868 (
\TEDIT.CHARLOOKS.FROM.FONT 27621 . 29905) (\TEDIT.EQCLOOKS 29907 . 32938) (\TEDIT.SAMECLOOKS 32940 .
36111) (TEDIT.CARETLOOKS 36113 . 37659) (TEDIT.COPY.LOOKS 37661 . 40944) (
\TEDIT.UNPARSE.CHARLOOKS.LIST 40946 . 44440) (\TEDIT.MODIFYLOOKS 44442 . 46602) (TEDIT.NEW.FONT 46604
. 47051) (\TEDIT.CARETLOOKS.VERIFY 47053 . 47890) (\TEDIT.CARETPIECE 47892 . 48197) (
\TEDIT.GET.INSERT.CHARLOOKS 48199 . 51246) (\TEDIT.GET.TERMSA.WIDTHS 51248 . 51664) (
\TEDIT.PARSE.CHARLOOKS.LIST 51666 . 52866)) (52869 64996 (\TEDIT.MCCS.TRANSLATE 52879 . 58732) (
\TEDIT.CONVERT.TO.FORMATTED 58734 . 64994)) (65868 73205 (\TEDIT.UNIQUIFY.CHARLOOKS 65878 . 67538) (
\TEDIT.UNIQUIFY.PARALOOKS 67540 . 68807) (\TEDIT.UNIQUIFY.ALL 68809 . 70897) (
\TEDIT.FLUSH.UNUSED.LOOKS 70899 . 73203)) (73238 85196 (TEDIT.LOOKS 73248 . 75637) (TEDIT.GET.LOOKS
75639 . 77974) (TEDIT.SUBLOOKS 77976 . 82356) (TEDIT.FINDLOOKS 82358 . 85194)) (85197 114847 (
\TEDIT.CHANGE.CHARLOOKS 85207 . 93985) (\TEDIT.CHANGE.CHARLOOKS.NEW 93987 . 97802) (
\TEDIT.CHARLOOKS.CHANGE.FONT 97804 . 106111) (\TEDIT.FONT.NEXTSIZE 106113 . 107734) (\TEDIT.LOOKS
107736 . 111065) (\TEDIT.FONTCOPY 111067 . 112568) (\TEDIT.COERCE.FONTCLASS 112570 . 113721) (
\TEDIT.FONTCLASS.TO.FONT 113723 . 114845)) (114890 146538 (\TEDIT.EQFMTSPEC 114900 . 118115) (
TEDIT.GET.PARALOOKS 118117 . 122164) (\TEDIT.PARSE.PARALOOKS.LIST 122166 . 130199) (TEDIT.PARALOOKS
130201 . 131241) (\TEDIT.CHANGE.PARALOOKS 131243 . 138211) (\TEDIT.CHANGE.PARALOOKS.NEW 138213 .
142196) (TEDIT.COPY.PARALOOKS 142198 . 144872) (\TEDIT.PARABOUNDS 144874 . 146536)) (146598 154314 (
TEDIT.SUBPARALOOKS 146608 . 150710) (SAMEPARALOOKS 150712 . 154312)) (154315 155002 (
\TEDIT.MARK.REVISION 154325 . 155000)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "22-Oct-2025 12:55:36" {WMEDLEY}<library>TEDIT>TEDIT-MENU.;498 183397
(FILECREATED "12-Dec-2025 00:01:26" {WMEDLEY}<library>tedit>TEDIT-MENU.;501 183343
:EDIT-BY rmk
:CHANGES-TO (FNS MARGINBAR.NEUTRALIZE \TEDIT.PARALOOKS.TO.MARBAR)
:CHANGES-TO (VARS TEDIT-MENUCOMS)
:PREVIOUS-DATE "19-Oct-2025 15:14:00" {WMEDLEY}<library>TEDIT>TEDIT-MENU.;496)
:PREVIOUS-DATE " 7-Dec-2025 16:34:30" {WMEDLEY}<library>tedit>TEDIT-MENU.;499)
(PRETTYCOMPRINT TEDIT-MENUCOMS)
@@ -67,7 +67,7 @@
(* ;; "")
(* ; "CHARMENU")
[INITVARS (TEDIT.FONTDEVICES '(DISPLAY PDF POSTSCRIPT))
[INITVARS (TEDIT.FONTDEVICES '(DISPLAY PDF))
(TEDIT.FONTFAMILIES '(Classic Modern Terminal Helvetica TimesRoman Gacha]
(FNS \TEDIT.CHARMENU.CREATE \TEDIT.CHARMENU.START \TEDIT.CHARMENU.SPEC \TEDIT.CHARMENU.PARSE
\TEDIT.CHARMENU.FILLIN \TEDIT.SHOW.CHARLOOKS \TEDIT.APPLY.CHARLOOKS
@@ -1952,7 +1952,7 @@
(* ; "CHARMENU")
(RPAQ? TEDIT.FONTDEVICES '(DISPLAY PDF POSTSCRIPT))
(RPAQ? TEDIT.FONTDEVICES '(DISPLAY PDF))
(RPAQ? TEDIT.FONTFAMILIES '(Classic Modern Terminal Helvetica TimesRoman Gacha))
(DEFINEQ
@@ -2907,32 +2907,32 @@
(ADDTOVAR LAMA )
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (4972 16610 (TEDIT.ADD.MENUITEM 4982 . 7099) (TEDIT.DEFAULT.MENUFN 7101 . 13822) (
TEDIT.REMOVE.MENUITEM 13824 . 14821) (\TEDIT.CREATEMENU 14823 . 15388) (\TEDIT.MENU.WHENHELDFN 15390
. 16295) (\TEDIT.MENU.WHENSELECTEDFN 16297 . 16608)) (17424 65459 (DRAWMARGINSCALE 17434 . 20893) (
MARGINBAR 20895 . 28020) (MARGINBAR.CREATE 28022 . 32220) (MB.MARGINBAR.BUTTONEVENTINFN 32222 . 40024)
(MB.MARGINBAR.SELFN.TABS 40026 . 45266) (MB.MARGINBAR.SELFN.TABS.KIND 45268 . 46203) (
MARGINBAR.GETSTATEFN 46205 . 50192) (MARGINBAR.SETSTATEFN 50194 . 50404) (MARGINBAR.NEUTRALIZE 50406
. 51081) (MARGINBAR.LOOKS 51083 . 54189) (MB.MARGINBAR.SIZEFN 54191 . 54977) (MB.MARGINBAR.DISPLAYFN
54979 . 58040) (MDESCALE 58042 . 58582) (MSCALE 58584 . 58914) (MB.MARGINBAR.SHOWTAB 58916 . 61239) (
MB.MARGINBAR.TABTRACK 61241 . 62626) (MARGINBAR.INIT 62628 . 64021) (\TEDIT.PARALOOKS.TO.MARBAR 64023
. 65457)) (66284 73566 (TEDIT.MENUSTREAM 66294 . 67294) (TEDITMENUP 67296 . 68265) (\TEDIT.MENU.START
68267 . 72614) (\TEDIT.MENU.OPEN? 72616 . 72990) (\TEDIT.MENU.BUTTONEVENTFN 72992 . 73564)) (73885
81936 (\TEDIT.MENU.CREATE 73895 . 75835) (\TEDIT.MENU.PARSE 75837 . 79526) (\TEDIT.MENU.NEUTRALIZE
79528 . 81599) (\TEDITMENU.RECORD.UNFORMATTED 81601 . 81934)) (82002 101783 (
\TEDIT.EXPANDEDMENU.CREATE 82012 . 87479) (\TEDIT.EXPANDEDMENU.START 87481 . 89105) (
\TEDIT.EXPANDEDMENU.FN 89107 . 92362) (\TEDIT.EXPANDEDMENU.ACTIONFN 92364 . 101781)) (101845 121270 (
\TEDIT.PARAMENU.CREATE 101855 . 110586) (\TEDIT.PARAMENU.START 110588 . 111842) (
\TEDIT.APPLY.PARALOOKS 111844 . 112896) (\TEDIT.SHOW.PARALOOKS 112898 . 115615) (
\TEDIT.PARAMENU.FILLIN 115617 . 120366) (\TEDIT.PARAMENU.RESHAPEFN 120368 . 121268)) (121475 148317 (
\TEDIT.CHARMENU.CREATE 121485 . 124089) (\TEDIT.CHARMENU.START 124091 . 125381) (\TEDIT.CHARMENU.SPEC
125383 . 130066) (\TEDIT.CHARMENU.PARSE 130068 . 133236) (\TEDIT.CHARMENU.FILLIN 133238 . 137868) (
\TEDIT.SHOW.CHARLOOKS 137870 . 141415) (\TEDIT.APPLY.CHARLOOKS 141417 . 142578) (
\TEDIT.OFFSETTYPE.STATEFN 142580 . 144543) (\TEDIT.OTHER.STATECHANGEFN 144545 . 146190) (
\TEDIT.OTHER.SELECTFN 146192 . 148315)) (148379 177437 (\TEDIT.PAGEMENU.CREATE 148389 . 156901) (
\TEDIT.PAGEMENU.START 156903 . 157254) (\TEDIT.SHOW.PAGELOOKS 157256 . 159142) (\TEDIT.PAGEMENU.FILLIN
159144 . 160694) (\TEDIT.PAGEREGION.UNPARSE 160696 . 170095) (\TEDIT.APPLY.PAGELOOKS 170097 . 172024)
(\TEDIT.CHANGE.PAGELOOKS 172026 . 176593) (\TEDIT.PAGEMENU.CHARLOOKS.STATEFN 176595 . 177435)) (
177438 183241 (\TEDIT.PAGEMENU.CREATE.HEADINGS 177448 . 180260) (\TEDIT.PAGEMENU.HEADINGS.SETSTATEFN
180262 . 181687) (\TEDIT.PAGEMENU.HEADINGS.STATEFN 181689 . 183239)))))
(FILEMAP (NIL (4929 16567 (TEDIT.ADD.MENUITEM 4939 . 7056) (TEDIT.DEFAULT.MENUFN 7058 . 13779) (
TEDIT.REMOVE.MENUITEM 13781 . 14778) (\TEDIT.CREATEMENU 14780 . 15345) (\TEDIT.MENU.WHENHELDFN 15347
. 16252) (\TEDIT.MENU.WHENSELECTEDFN 16254 . 16565)) (17381 65416 (DRAWMARGINSCALE 17391 . 20850) (
MARGINBAR 20852 . 27977) (MARGINBAR.CREATE 27979 . 32177) (MB.MARGINBAR.BUTTONEVENTINFN 32179 . 39981)
(MB.MARGINBAR.SELFN.TABS 39983 . 45223) (MB.MARGINBAR.SELFN.TABS.KIND 45225 . 46160) (
MARGINBAR.GETSTATEFN 46162 . 50149) (MARGINBAR.SETSTATEFN 50151 . 50361) (MARGINBAR.NEUTRALIZE 50363
. 51038) (MARGINBAR.LOOKS 51040 . 54146) (MB.MARGINBAR.SIZEFN 54148 . 54934) (MB.MARGINBAR.DISPLAYFN
54936 . 57997) (MDESCALE 57999 . 58539) (MSCALE 58541 . 58871) (MB.MARGINBAR.SHOWTAB 58873 . 61196) (
MB.MARGINBAR.TABTRACK 61198 . 62583) (MARGINBAR.INIT 62585 . 63978) (\TEDIT.PARALOOKS.TO.MARBAR 63980
. 65414)) (66241 73523 (TEDIT.MENUSTREAM 66251 . 67251) (TEDITMENUP 67253 . 68222) (\TEDIT.MENU.START
68224 . 72571) (\TEDIT.MENU.OPEN? 72573 . 72947) (\TEDIT.MENU.BUTTONEVENTFN 72949 . 73521)) (73842
81893 (\TEDIT.MENU.CREATE 73852 . 75792) (\TEDIT.MENU.PARSE 75794 . 79483) (\TEDIT.MENU.NEUTRALIZE
79485 . 81556) (\TEDITMENU.RECORD.UNFORMATTED 81558 . 81891)) (81959 101740 (
\TEDIT.EXPANDEDMENU.CREATE 81969 . 87436) (\TEDIT.EXPANDEDMENU.START 87438 . 89062) (
\TEDIT.EXPANDEDMENU.FN 89064 . 92319) (\TEDIT.EXPANDEDMENU.ACTIONFN 92321 . 101738)) (101802 121227 (
\TEDIT.PARAMENU.CREATE 101812 . 110543) (\TEDIT.PARAMENU.START 110545 . 111799) (
\TEDIT.APPLY.PARALOOKS 111801 . 112853) (\TEDIT.SHOW.PARALOOKS 112855 . 115572) (
\TEDIT.PARAMENU.FILLIN 115574 . 120323) (\TEDIT.PARAMENU.RESHAPEFN 120325 . 121225)) (121421 148263 (
\TEDIT.CHARMENU.CREATE 121431 . 124035) (\TEDIT.CHARMENU.START 124037 . 125327) (\TEDIT.CHARMENU.SPEC
125329 . 130012) (\TEDIT.CHARMENU.PARSE 130014 . 133182) (\TEDIT.CHARMENU.FILLIN 133184 . 137814) (
\TEDIT.SHOW.CHARLOOKS 137816 . 141361) (\TEDIT.APPLY.CHARLOOKS 141363 . 142524) (
\TEDIT.OFFSETTYPE.STATEFN 142526 . 144489) (\TEDIT.OTHER.STATECHANGEFN 144491 . 146136) (
\TEDIT.OTHER.SELECTFN 146138 . 148261)) (148325 177383 (\TEDIT.PAGEMENU.CREATE 148335 . 156847) (
\TEDIT.PAGEMENU.START 156849 . 157200) (\TEDIT.SHOW.PAGELOOKS 157202 . 159088) (\TEDIT.PAGEMENU.FILLIN
159090 . 160640) (\TEDIT.PAGEREGION.UNPARSE 160642 . 170041) (\TEDIT.APPLY.PAGELOOKS 170043 . 171970)
(\TEDIT.CHANGE.PAGELOOKS 171972 . 176539) (\TEDIT.PAGEMENU.CHARLOOKS.STATEFN 176541 . 177381)) (
177384 183187 (\TEDIT.PAGEMENU.CREATE.HEADINGS 177394 . 180206) (\TEDIT.PAGEMENU.HEADINGS.SETSTATEFN
180208 . 181633) (\TEDIT.PAGEMENU.HEADINGS.STATEFN 181635 . 183185)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED " 5-Jun-2025 08:24:12" {WMEDLEY}<library>tedit>TEDIT-PAGE.;222 134861
(FILECREATED "17-Jan-2026 12:00:08" {WMEDLEY}<library>tedit>TEDIT-PAGE.;241 130528
:EDIT-BY rmk
:CHANGES-TO (FNS TEDIT.FORMAT.HARDCOPY)
:CHANGES-TO (FNS TEDIT.TO.IMAGEFILE)
:PREVIOUS-DATE "11-May-2025 15:03:00" {WMEDLEY}<library>tedit>TEDIT-PAGE.;221)
:PREVIOUS-DATE "15-Jan-2026 10:48:30" {WMEDLEY}<library>tedit>TEDIT-PAGE.;240)
(PRETTYCOMPRINT TEDIT-PAGECOMS)
@@ -50,7 +50,7 @@
72 72 NIL 1)
(TEDIT.SINGLE.PAGEFORMAT T 540 756 NIL 'RIGHT 72 72
72 72 NIL 1]
(FNS TEDIT.FORMAT.HARDCOPY)
(FNS TEDIT.TO.IMAGEFILE)
(COMS
(* ;; "Perform page layout, based on a regular expression of typed regions.")
@@ -631,148 +631,103 @@
(TEDIT.SINGLE.PAGEFORMAT T 540 756 NIL 'RIGHT 72 72 72 72 NIL 1)))
(DEFINEQ
(TEDIT.FORMAT.HARDCOPY
[LAMBDA (TEXTSTREAM FILE DONTSEND BREAKPAGETITLE SERVER PRINTOPTIONS IMAGETYPE FIRSTPG# STARTPG
ENDPG QUIET) (* ; "Edited 5-Jun-2025 08:24 by rmk")
(* ; "Edited 22-Apr-2025 08:12 by rmk")
(* ; "Edited 23-Feb-2025 09:59 by rmk")
(* ; "Edited 30-Aug-2024 15:45 by rmk")
(* ; "Edited 10-Jul-2024 23:34 by rmk")
(* ; "Edited 29-Jun-2024 10:32 by rmk")
(* ; "Edited 5-Apr-2024 08:01 by rmk")
(* ; "Edited 16-Mar-2024 09:31 by rmk")
(* ; "Edited 7-Mar-2024 12:34 by rmk")
(* ; "Edited 19-Jan-2024 23:39 by rmk")
(* ; "Edited 24-Dec-2023 14:10 by rmk")
(* ; "Edited 15-Nov-2023 23:56 by rmk")
(* ; "Edited 22-Sep-2023 20:38 by rmk")
(* ; "Edited 4-Jul-2023 11:16 by rmk")
(* ; "Edited 2-Oct-2022 00:00 by rmk")
(* ;
 "Edited 25-May-93 13:06 by sybalsky:mv:envos")
(TEDIT.TO.IMAGEFILE
[LAMBDA (TSTREAM IMAGEFILE IMAGETYPE OPTIONS) (* ; "Edited 17-Jan-2026 11:59 by rmk")
(* ; "Edited 15-Jan-2026 08:46 by rmk")
(* ; "Edited 25-Dec-2025 15:07 by rmk")
(* ; "Edited 20-Dec-2025 23:03 by rmk")
(* ; "Edited 14-Dec-2025 17:38 by rmk")
(* ; "Edited 27-Sep-2025 14:05 by rmk")
(* ; "Edited 19-Sep-2025 22:08 by rmk")
(* ;; "Format a document for hardcopy. Returns the number of pages printed (not the final page number!). Returns NIL if the before-print-fn said not to print.")
(* ;; "TEXTSTREAM is either already a textstream or somehow denotes a tedit-formatted file, otherwise an error. We don't here try to decide that a non-formatted file is a plain text file, as opposed binary or anything else.")
(* ;; "TSTREAM is either already a textstream or somehow denotes a tedit-formatted file, otherwise an error. ")
(RESETLST
(SETQ TEXTSTREAM (if (TEXTSTREAM TEXTSTREAM T)
elseif (TEDIT.FORMATTEDFILEP TEXTSTREAM)
then [RESETSAVE (SETQ TEXTSTREAM (OPENTEXTSTREAM TEXTSTREAM))
`(PROGN (CLOSEF? OLDVALUE]
TEXTSTREAM
else (ERROR TEXTSTREAM "is not a Tedit stream")))
(PROG ((TEXTOBJ (FTEXTOBJ TEXTSTREAM))
[FORMATTINGSTATE (create PAGEFORMATTINGSTATE
PAGE# _ (FIXP FIRSTPG#)
FIRSTPAGE _ T
STATE _ FIRSTPG#
MINPAGE# _ STARTPG
MAXPAGE# _ (OR ENDPG 65535)
CHNO _ 1
PAGEHEADINGS _ (LIST NIL NIL)
PAGE#GENERATOR _ (AND (LISTP FIRSTPG#)
(CDR FIRSTPG#))
PAGE#TEXT _ (AND (LISTP FIRSTPG#)
(CAR FIRSTPG#]
PRSTREAM PAGEREGION SCRATCHFILE NPAGES WASOPEN TARGETFILENAME)
(CL:WHEN (EQ 'DON'T (APPLY* (OR (GETTEXTPROP TEXTOBJ 'BEFOREHARDCOPYFN)
(FUNCTION NILL))
TEXTSTREAM)) (* ;
(SETQ TSTREAM (if (TEXTSTREAM TSTREAM T)
elseif (TEDIT.FORMATTEDFILEP TSTREAM)
then [RESETSAVE (SETQ TSTREAM (OPENTEXTSTREAM TSTREAM))
`(PROGN (CLOSEF? OLDVALUE]
TSTREAM
else (ERROR TSTREAM "is not a Tedit stream")))
(CL:WHEN (GETTEXTPROP TSTREAM 'MENUFLG)
(SETQ TSTREAM (TEXTSTREAM (\TEDIT.MAINW TSTREAM))))
(CL:UNLESS IMAGEFILE
[SETQ IMAGEFILE (if (GETTEXTPROP TSTREAM 'FILENAME)
then (PACKFILENAME 'VERSION NIL 'EXTENSION (CAR (
EXTENSIONS.FOR.IMAGEFILETYPE
IMAGETYPE))
'BODY
(GETTEXTPROP TSTREAM 'FILENAME))
else (UNIX-TMP-FILE-NAME 'tedit (CAR (EXTENSIONS.FOR.IMAGEFILETYPE
IMAGETYPE])
(PUTTEXTPROP TSTREAM 'LASTIMAGEFILE NIL)
(PROG* ((FIRSTPG# (LISTGET OPTIONS 'FIRSTPG#))
(TEXTOBJ (FTEXTOBJ TSTREAM))
[FORMATTINGSTATE (create PAGEFORMATTINGSTATE
PAGE# _ (FIXP FIRSTPG#)
FIRSTPAGE _ T
STATE _ FIRSTPG#
MINPAGE# _ (LISTGET OPTIONS 'STARTPG)
MAXPAGE# _ (OR (LISTGET OPTIONS 'ENDPG)
65535)
CHNO _ 1
PAGEHEADINGS _ (LIST NIL NIL)
PAGE#GENERATOR _ (AND (LISTP FIRSTPG#)
(CDR FIRSTPG#))
PAGE#TEXT _ (AND (LISTP FIRSTPG#)
(CAR FIRSTPG#]
IMAGESTREAM PAGEREGION SCRATCHFILE)
(CL:WHEN (EQ 'DON'T (APPLY* (OR (GETTEXTPROP TEXTOBJ 'BEFOREHARDCOPYFN)
(FUNCTION NILL))
TSTREAM)) (* ;
 "Do pre-hardcopy processing as indicated, or refuse")
(RETURN))
[RESETSAVE (\TEDIT.MARKACTIVE TEXTOBJ "Hardcopy")
'(PROGN (\TEDIT.MARKINACTIVE OLDVALUE]
(SETQ PAGEREGION (FGETTOBJ TEXTOBJ TXTPAGEFRAMES))
(SETPFS FORMATTINGSTATE PRESSREGION TEDIT.DEFAULTPAGEREGION)
(RETURN))
[RESETSAVE (\TEDIT.MARKACTIVE TEXTOBJ "Hardcopy")
'(PROGN (\TEDIT.MARKINACTIVE OLDVALUE]
(SETQ PAGEREGION (FGETTOBJ TEXTOBJ TXTPAGEFRAMES))
(SETPFS FORMATTINGSTATE PRESSREGION TEDIT.DEFAULTPAGEREGION)
(* ;
 "Print in the usual region on the page")
(CL:UNLESS BREAKPAGETITLE
[SETQ BREAKPAGETITLE (COND
((LISTGET PRINTOPTIONS 'DOCUMENT.NAME))
([OR (NOT (FGETTOBJ TEXTOBJ TXTFILE))
(STRINGP (FGETTOBJ TEXTOBJ TXTFILE))
(type? STREAM (fetch (STREAM FULLNAME)
of (FGETTOBJ TEXTOBJ TXTFILE)))
(STRINGP (fetch (STREAM FULLNAME)
of (FGETTOBJ TEXTOBJ TXTFILE]
(* ;
 "This isn't a real file, so print a generic name on the document break page.")
"TEdit Hardcopy Output")
(T (* ;
 "It's a real file, so use the file name on the break page.")
(fetch (STREAM FULLNAME) of (FGETTOBJ TEXTOBJ TXTFILE])
[SETQ SCRATCHFILE (OR FILE (PRINTER.SCRATCH.FILE (TEXTSTREAM TEXTSTREAM]
(RESETLST (* ;
 "Set up to do the user's cleanup on the way out, as well.")
(CL:UNLESS QUIET (TEDIT.PROMPTPRINT TEXTOBJ "Formatting for print..." T))
[COND
((AND FILE (OPENP FILE)
(IMAGESTREAMTYPE FILE)) (* ;
 "The file he handed us is already an image-type file. Just append the new stuff to it.")
(SETQ WASOPEN T)
(SETQ PRSTREAM FILE))
(T (* ;
 "T'wasn't an image stream, so let's open us one.")
(RESETSAVE (SETQ PRSTREAM (OPENIMAGESTREAM
SCRATCHFILE
[OR IMAGETYPE (SETQ IMAGETYPE
(CAR (PRINTERPROP (PRINTERTYPE
SERVER)
'CANPRINT]
(LIST 'FONT (FONTCREATE 'TERMINAL 10)
'BREAKPAGEFILENAME BREAKPAGETITLE)))
'(AND RESETSTATE (DELFILE (CLOSEF? OLDVALUE]
(* ;
 "So we close and delete the file in case of trouble.")
(* ;; "The right margin must be big enough to prevent line wrap on landscaped 14 inch paper, with Postscript's scaling of .01-point increments. (~ 101,000). This will cause a performance hit. Sigh. JDS 9/5/89")
(* ;; "TEDIT puts its own headings on the page")
(DSPRIGHTMARGIN 131072 PRSTREAM)
(while (ILEQ (GETPFS FORMATTINGSTATE CHNO)
(FGETTOBJ TEXTOBJ TEXTLEN))
do
(* ;; "Format pages according to the existing layout:")
[SETQ IMAGESTREAM (OPENIMAGESTREAM IMAGEFILE IMAGETYPE `(HEADING NIL ,@OPTIONS]
(\TEDIT.FORMATBOX TEXTSTREAM PRSTREAM (GETPFS FORMATTINGSTATE CHNO)
PAGEREGION FORMATTINGSTATE IMAGETYPE)
(CL:WHEN (EQ (GETPFS FORMATTINGSTATE STATE)
:NEW-PAGE-LAYOUT)
(* ;; "The right margin must be big enough to prevent line wrap on landscaped 14 inch paper, with Postscript's scaling of .01-point increments. (~ 101,000). This will cause a performance hit. Sigh. JDS 9/5/89")
(* ;; "New page layout got specified. Prepare to re-enter the formatting code and skip to the equivalent page in the new format.")
(DSPRIGHTMARGIN 131072 IMAGESTREAM)
(while (ILEQ (GETPFS FORMATTINGSTATE CHNO)
(FGETTOBJ TEXTOBJ TEXTLEN))
do
(* ;; "Format pages according to the existing layout:")
(SETQ PAGEREGION (GETPFS FORMATTINGSTATE NEWPAGELAYOUT))
(\TEDIT.FORMATBOX TSTREAM IMAGESTREAM (GETPFS FORMATTINGSTATE CHNO)
PAGEREGION FORMATTINGSTATE IMAGETYPE)
(CL:WHEN (EQ (GETPFS FORMATTINGSTATE STATE)
:NEW-PAGE-LAYOUT)
(* ;; "Set up the formatting state so code knows we're looking for an equivalent page, and which page it is. (The SUB1 is because we counted an extra page for the page on which the new payout was detected.)")
(* ;; "New page layout got specified. Prepare to re-enter the formatting code and skip to the equivalent page in the new format.")
(SETPFS FORMATTINGSTATE REQUIREDREGIONTYPE (SUB1 (GETPFS FORMATTINGSTATE
PAGECOUNT)))
(SETPFS FORMATTINGSTATE PAGECOUNT 0)
(SETPFS FORMATTINGSTATE STATE :SEARCHING-FOR-EQUIVALENT-PAGE)))
(SETQ TARGETFILENAME (STREAMPROP PRSTREAM 'PDFTARGETINFO))
(CL:UNLESS WASOPEN (* ;
 "Only if we created the image stream should we close it.")
(SETQ PRSTREAM (CLOSEF PRSTREAM))
(CL:UNLESS DONTSEND
(SEND.FILE.TO.PRINTER PRSTREAM SERVER (APPEND PRINTOPTIONS
(LIST 'DOCUMENT.NAME
BREAKPAGETITLE)))))
(CL:UNLESS FILE (DELFILE SCRATCHFILE))
(APPLY* (OR (GETTEXTPROP TEXTOBJ 'AFTERHARDCOPYFN)
(FUNCTION NILL))
TEXTSTREAM))
(SETQ NPAGES (GETPFS FORMATTINGSTATE PAGECOUNT))
(CL:UNLESS QUIET
(TEDIT.PROMPTPRINT TEXTOBJ (CONCAT NPAGES " page" (CL:IF (EQ 1 NPAGES)
""
"s")
" printed"
(CL:IF (EQ FILE SCRATCHFILE)
(CONCAT " to " (OR TARGETFILENAME
(FULLNAME FILE)))
""))
T))
(RETURN NPAGES)))])
(SETQ PAGEREGION (GETPFS FORMATTINGSTATE NEWPAGELAYOUT))
(* ;; "Set up the formatting state so code knows we're looking for an equivalent page, and which page it is. (The SUB1 is because we counted an extra page for the page on which the new payout was detected.)")
(SETPFS FORMATTINGSTATE REQUIREDREGIONTYPE (SUB1 (GETPFS FORMATTINGSTATE
PAGECOUNT)))
(SETPFS FORMATTINGSTATE PAGECOUNT 0)
(SETPFS FORMATTINGSTATE STATE :SEARCHING-FOR-EQUIVALENT-PAGE)))
(APPLY* (OR (GETTEXTPROP TEXTOBJ 'AFTERHARDCOPYFN)
(FUNCTION NILL))
TSTREAM)
(* ;; "So caller can formulate a prompt message TEDIT.IMAGEFILE.MESSAGE")
(PUTTEXTPROP TSTREAM 'LASTIMAGEFILE (LIST (GETPFS FORMATTINGSTATE PAGECOUNT)
(FULLNAME IMAGESTREAM)
(PRINTERNAME IMAGESTREAM)))
(RETURN (CLOSEF IMAGESTREAM))))])
)
@@ -2101,18 +2056,18 @@
(RETURN (DREMOVE NIL $$VAL])
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (12139 15751 (\TEDIT.PARSE.PAGEFRAMES 12149 . 13928) (\TEDIT.PUT.PAGEFRAMES 13930 .
14754) (\TEDIT.UNPARSE.PAGEFRAMES 14756 . 15749)) (15814 37831 (TEDIT.SINGLE.PAGEFORMAT 15824 . 26817)
(TEDIT.COMPOUND.PAGEFORMAT 26819 . 27798) (TEDIT.PAGEFORMAT 27800 . 35089) (TEDIT.GET.PAGEFORMAT
35091 . 37829)) (38118 48925 (TEDIT.FORMAT.HARDCOPY 38128 . 48923)) (49012 102264 (\TEDIT.FORMATBOX
49022 . 62446) (\TEDIT.FORMATHEADING 62448 . 67094) (\TEDIT.FORMATPAGE 67096 . 76285) (
\TEDIT.FORMATTEXTBOX 76287 . 92800) (\TEDIT.FORMATFOLIO 92802 . 98119) (\TEDIT.FORMAT.FOUNDBOX? 98121
. 100160) (\TEDIT.SKIP.SPECIALCOND 100162 . 102262)) (102344 107399 (\TEDIT.HARDCOPY.PAGEHEADINGS
102354 . 107397)) (107508 115559 (\TEDIT.HARDCOPY-COLUMN-END 107518 . 115557)) (115604 120545 (
SCALEPAGEUNITS 115614 . 116755) (SCALEPAGEXUNITS 116757 . 117527) (SCALEPAGEYUNITS 117529 . 118300) (
\TEDIT.PAPERHEIGHT 118302 . 119237) (\TEDIT.PAPERWIDTH 119239 . 120543)) (120961 124529 (ROMANNUMERALS
120971 . 124527)) (124568 131834 (TEDIT.PAGENO.CREATE 124578 . 124954) (\TEDIT.PAGENO.OBJINIT 124956
. 126239) (\TEDIT.PAGENO.BUTTONEVENTINFN 126241 . 127307) (\TEDIT.PAGENO.IMAGEBOXFN 127309 . 129459)
(\TEDIT.PAGENO.DISPLAYFN 129461 . 131111) (\TEDIT.PAGENO.GETFN 131113 . 131505) (\TEDIT.PAGENO.PUTFN
131507 . 131832)) (131899 134838 (\TEDIT.FORMAT.FOOTNOTE 131909 . 134836)))))
(FILEMAP (NIL (12133 15745 (\TEDIT.PARSE.PAGEFRAMES 12143 . 13922) (\TEDIT.PUT.PAGEFRAMES 13924 .
14748) (\TEDIT.UNPARSE.PAGEFRAMES 14750 . 15743)) (15808 37825 (TEDIT.SINGLE.PAGEFORMAT 15818 . 26811)
(TEDIT.COMPOUND.PAGEFORMAT 26813 . 27792) (TEDIT.PAGEFORMAT 27794 . 35083) (TEDIT.GET.PAGEFORMAT
35085 . 37823)) (38112 44592 (TEDIT.TO.IMAGEFILE 38122 . 44590)) (44679 97931 (\TEDIT.FORMATBOX 44689
. 58113) (\TEDIT.FORMATHEADING 58115 . 62761) (\TEDIT.FORMATPAGE 62763 . 71952) (\TEDIT.FORMATTEXTBOX
71954 . 88467) (\TEDIT.FORMATFOLIO 88469 . 93786) (\TEDIT.FORMAT.FOUNDBOX? 93788 . 95827) (
\TEDIT.SKIP.SPECIALCOND 95829 . 97929)) (98011 103066 (\TEDIT.HARDCOPY.PAGEHEADINGS 98021 . 103064)) (
103175 111226 (\TEDIT.HARDCOPY-COLUMN-END 103185 . 111224)) (111271 116212 (SCALEPAGEUNITS 111281 .
112422) (SCALEPAGEXUNITS 112424 . 113194) (SCALEPAGEYUNITS 113196 . 113967) (\TEDIT.PAPERHEIGHT 113969
. 114904) (\TEDIT.PAPERWIDTH 114906 . 116210)) (116628 120196 (ROMANNUMERALS 116638 . 120194)) (
120235 127501 (TEDIT.PAGENO.CREATE 120245 . 120621) (\TEDIT.PAGENO.OBJINIT 120623 . 121906) (
\TEDIT.PAGENO.BUTTONEVENTINFN 121908 . 122974) (\TEDIT.PAGENO.IMAGEBOXFN 122976 . 125126) (
\TEDIT.PAGENO.DISPLAYFN 125128 . 126778) (\TEDIT.PAGENO.GETFN 126780 . 127172) (\TEDIT.PAGENO.PUTFN
127174 . 127499)) (127566 130505 (\TEDIT.FORMAT.FOOTNOTE 127576 . 130503)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "23-Sep-2025 08:19:29" {MEDLEY}<library>tedit>TEDIT-STREAM.;15 192029
(FILECREATED " 2-Dec-2025 17:50:45" {WMEDLEY}<library>tedit>TEDIT-STREAM.;930 194007
:EDIT-BY rmk
:CHANGES-TO (FNS \TEDIT.TEXTINIT)
:CHANGES-TO (FNS OPENTEXTSTREAM \TEDIT.OPENTEXTFILE)
:PREVIOUS-DATE "20-Sep-2025 08:49:36" {MEDLEY}<library>tedit>TEDIT-STREAM.;14)
:PREVIOUS-DATE "19-Oct-2025 15:09:09" {WMEDLEY}<library>TEDIT>TEDIT-STREAM.;927)
(PRETTYCOMPRINT TEDIT-STREAMCOMS)
@@ -83,10 +83,6 @@
(ADDVARS (INSPECTMACROS (TEXTOBJ \TEDIT.TEXTOBJ.PROPNAMES
\TEDIT.TEXTOBJ.PROPFETCHFN
\TEDIT.TEXTOBJ.PROPSTOREFN]
[COMS
(* ;; "Support for error handling: The old error handler for the stream-not-open error. This is here, because you only want to do this ONCE, even if you load TEXT-STREAM multiple times (as, e.g., in development)")
(INITVARS (*TEDIT-OLD-STREAM-ERROR-HANDLER* (CONDITION-HANDLER 'XCL:STREAM-NOT-OPEN]
(DECLARE%: DONTEVAL@LOAD DOCOPY (P (\TEDIT.TEXTINIT)))
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA)
(NLAML)
@@ -126,7 +122,9 @@
 "The number of bytes in the UTF-8 encoding of all the Unicode characters in this piece")
[ACCESSFNS ((POBJ (AND (EQ OBJECT.PTYPE (PTYPE DATUM))
(type? IMAGEOBJ (PCONTENTS DATUM))
(PCONTENTS DATUM]
(PCONTENTS DATUM))
(AND (EQ OBJECT.PTYPE (PTYPE DATUM))
(SETPC DATUM PCONTENTS NEWVALUE]
PFPOS _ 0 PLEN _ 0 PBYTELEN _ 0)
(DATATYPE TEXTOBJ (
@@ -698,6 +696,8 @@
(\TEDIT.TEXTBIN
[LAMBDA (TSTREAM)
(* ;; "Edited 13-Oct-2025 17:16 by rmk")
(* ;; "Edited 21-Oct-2024 00:26 by rmk")
(* ;; "Edited 3-May-2024 14:57 by rmk")
@@ -767,7 +767,7 @@
(if (\ENDOFPIECEP PCCHARSLEFT)
then (SETQ PC (\TEDIT.INSTALL.PIECE TSTREAM (NEXTPIECE PC)
0))
else (\TEDIT.INSTALL.FILEBUFFER TSTREAM (SUB1 PCCHARSLEFT))))
else (\TEDIT.INSTALL.FILEBUFFER TSTREAM PCCHARSLEFT)))
(if (NOT PC)
then (STREAMOP 'ENDOFSTREAMOP TSTREAM TSTREAM)
elseif (ffetch (STREAM BINABLE) of TSTREAM)
@@ -1232,6 +1232,10 @@
(OPENTEXTSTREAM
[LAMBDA (TEXT WINDOW START/PROPS END PROPS)
(* ;; "Edited 2-Dec-2025 17:49 by rmk")
(* ;; "Edited 25-Sep-2025 21:30 by rmk")
(* ;; "Edited 9-Sep-2025 22:07 by rmk")
(* ;; "Edited 17-Feb-2025 08:57 by rmk")
@@ -1317,12 +1321,12 @@
(if TEXT
then (* ;
 "Verify/open the file before the window")
(SETQ TEXT (\TEDIT.OPENTEXTFILE TEXT PROPS))
(SETQ TEXT (\TEDIT.OPENTEXTFILE TEXT PROPS T))
(FSETTOBJ TEXTOBJ TXTFILE TEXT)
else
(* ;; "An empty document starts in an MCCS environment")
(FPUTMULTI (FGETTOBJ TEXTOBJ DOCPROPS)
(PUTMULTI (FGETTOBJ TEXTOBJ DOCPROPS)
'CHARENCODING
'MCCS))
@@ -1352,7 +1356,8 @@
TSTREAM))])
(COPYTEXTSTREAM
[LAMBDA (ORIGINAL CROSSCOPY) (* ; "Edited 21-Apr-2025 23:48 by rmk")
[LAMBDA (ORIGINAL CROSSCOPY) (* ; "Edited 5-Oct-2025 10:54 by rmk")
(* ; "Edited 21-Apr-2025 23:48 by rmk")
(* ; "Edited 8-Feb-2025 20:10 by rmk")
(* ; "Edited 12-Jan-2025 12:16 by rmk")
(* ; "Edited 17-Mar-2024 12:41 by rmk")
@@ -1372,7 +1377,10 @@
(LET* ((TSTREAM (TEXTSTREAM ORIGINAL))
(TEXTOBJ (FTEXTOBJ TSTREAM))
[NEWSTREAM (OPENTEXTSTREAM NIL NIL NIL NIL (COPY (FGETTOBJ TEXTOBJ EDITPROPS]
[NEWSTREAM (OPENTEXTSTREAM NIL NIL NIL NIL (APPEND (COPY (FGETTOBJ TEXTOBJ EDITPROPS))
(for DP in (FGETTOBJ TEXTOBJ DOCPROPS)
collect (LIST (CAR DP)
(COPY (CDR DP]
(NEWTEXTOBJ (FTEXTOBJ NEWSTREAM))) (* ;
 "Create an empty textstream into which the pieces can be hammered")
(for PC NEWPC inpieces (\TEDIT.FIRSTPIECE TEXTOBJ)
@@ -1657,7 +1665,8 @@
(SETTOBJ TEXTOBJ DEFAULTPARALOOKS PARALOOKS])
(\TEDIT.OPENTEXTFILE
[LAMBDA (TEXT PROPS) (* ; "Edited 16-Sep-2025 00:28 by rmk")
[LAMBDA (TEXT PROPS ERROR) (* ; "Edited 2-Dec-2025 17:49 by rmk")
(* ; "Edited 16-Sep-2025 00:28 by rmk")
(* ; "Edited 8-Sep-2025 21:52 by rmk")
(* ; "Edited 21-Nov-2024 11:38 by rmk")
(* ; "Edited 20-Dec-2023 10:49 by rmk")
@@ -1668,29 +1677,22 @@
(* ; "Edited 17-Sep-2023 21:29 by rmk")
(CL:WHEN TEXT
(if (\GETSTREAM TEXT 'INPUT T)
elseif (OR (LITATOM TEXT)
(STRINGP TEXT)
(CL:PATHNAMEP TEXT)
(STREAMP TEXT))
then (* ; "String detects empty extension")
[RESETSAVE [SETQ TEXT (OPENSTREAM (if (STREAMP TEXT)
elseif (OR (CL:PATHNAMEP TEXT)
(FILENAMEFIELD.STRING TEXT
'EXTENSION))
then (FINDFILE TEXT T)
elseif (FINDFILE-WITH-EXTENSIONS TEXT NIL
*TEDIT-EXTENSIONS*)
else TEXT)
'INPUT
'OLD
`((TYPE TEXT)
(FORMAT ,(LISTGET PROPS 'FORMAT]
'(PROGN (AND RESETSTATE (CLOSEF? OLDVALUE]
TEXT
else
(* ;; "Don't know what it is")
(ERROR TEXT " does not identify a Tedit document")))])
elseif [AND (OR (LITATOM TEXT)
(STRINGP TEXT)
(CL:PATHNAMEP TEXT)
(STREAMP TEXT))
(CAR (NLSETQ (OPENSTREAM (if (STREAMP TEXT)
elseif (CL:PATHNAMEP TEXT)
then (FINDFILE TEXT T)
elseif (FINDFILE-WITH-EXTENSIONS TEXT NIL
*TEDIT-EXTENSIONS*)
else TEXT)
'INPUT
'OLD
`((TYPE TEXT)
(FORMAT ,(LISTGET PROPS 'FORMAT]
elseif ERROR
then (ERROR "File not found:" TEXT)))])
(\TEDIT.CREATE.TEXTSTREAM
[LAMBDA (PROPS) (* ; "Edited 28-Jul-2025 22:56 by rmk")
@@ -1751,7 +1753,7 @@
NEWSTREAM])
(\TEDIT.TEXTINIT
[LAMBDA NIL (* ; "Edited 23-Sep-2025 08:19 by rmk")
[LAMBDA NIL (* ; "Edited 23-Sep-2025 21:03 by rmk")
(* ; "Edited 20-Sep-2025 08:48 by rmk")
(* ; "Edited 18-Sep-2025 14:52 by rmk")
(* ; "Edited 10-Jul-2025 11:28 by rmk")
@@ -1791,7 +1793,7 @@
(* ;; "(FW8 WORD)")
(SETQ \TEDITIMAGEOPS (create IMAGEOPS
IMAGETYPE _ 'TEXT
IMAGETYPE _ 'TEDIT
IMXPOSITION _ (FUNCTION \TEDIT.TEXTDSPXPOSITION)
IMYPOSITION _ (FUNCTION \TEDIT.TEXTDSPYPOSITION)
IMLEFTMARGIN _ (FUNCTION \TEDIT.TEXTLEFTMARGIN)
@@ -1821,6 +1823,9 @@
(FUNCTION \TEDIT.TEXTOUTCHARFN)
(FUNCTION \TEDIT.TEXTFORMATBYTESTREAM)
'CR NIL (FUNCTION \TEDIT.TEXTFORMATBYTESTRING))
(* ;; "Support for error handling: The old error handler for the stream-not-open error. ")
(SETQ \TEDITFDEV (create FDEV
DEVICENAME _ 'TEDIT
RESETABLE _ T
@@ -1856,6 +1861,9 @@
TRUNCATEFILE _ (FUNCTION NILL)
WRITEPAGES _ (FUNCTION NILL)
DEFAULTEXTERNALFORMAT _ :TEXTSTREAM))
(* ;
 "Only load once, not every time TEDIT-STREAM is loaded e.g. in development")
(RPAQ? *TEDIT-OLD-STREAM-ERROR-HANDLER* (CONDITION-HANDLER 'XCL:STREAM-NOT-OPEN))
(CL:SETF (CONDITION-HANDLER 'XCL:STREAM-NOT-OPEN)
(FUNCTION (LAMBDA (CONDITION)
(LET ((STREAM (STREAM-ERROR-STREAM CONDITION)))
@@ -2100,28 +2108,34 @@
(\TEDIT.INSTALL.PIECE TSTREAM PC (- CH# START-OF-PIECE)))])
(\TEDIT.TEXTDSPXPOSITION
[LAMBDA (TSTREAM XPOSITION) (* ; "Edited 20-Sep-2025 08:30 by rmk")
[LAMBDA (TSTREAM XPOSITION) (* ; "Edited 20-Sep-2025 22:48 by rmk")
(* ; "Edited 25-Jun-2024 11:59 by rmk")
(* ; "Edited 17-Mar-2024 12:15 by rmk")
(* ; "Edited 3-Jan-2001 17:27 by rmk:")
(* ;
 "Edited 24-Oct-88 23:09 by rmk:; Edited 26-Sep-85 16:30 by ajb:")
(* ;; "This doesn't make much sense for a character-oriented stream like a TEDIT stream. If the stream is displayed in a window, this returns the window's current position, and changes it as well. But that doesn't affect or particularly relate to the underlying sequence of characters.")
(* ;;
 "Simply returns the XPOSITION of the primary window's display stream, this is a read-only function")
(* ;; "If there is no window (an OPENTEXTSTREAM being written on by a printing algorithm, like the pretty printer for source files, this estimates the XPOSITION from the number of characters that have been printed on the line since the last TERPRI (= POSITION), assuming that they are all the width of the space (or the average charwidth). And if XPOSITION is non-NIL, that is also translated into an estimated number of characters, and spaces are put out to get out to that position (essentially assuming that we are writing at the end of the file). We can't go backwards.")
(* ;; "")
(* ;; "We could be more accurate by reading backwards to the last TERPRI, and not rely on POSITION. And if we were going backwards, we could think of this as setting the caret position as close as possible to the specified XPOSITION, But going forward, we still would have to fill in with spaces--and that's the PRETTYPRINT case.")
(LET ((WINDOW (\TEDIT.PRIMARYPANE TSTREAM))
SPACEWIDTH) (* ;
SPACEWIDTH CHARPOS NSPACES) (* ;
 "If there is no window, estimate from character position")
(if WINDOW
then (DSPXPOSITION XPOSITION WINDOW)
else (SETQ SPACEWIDTH (CHARWIDTH (CHARCODE SPACE)
TSTREAM))
(PROG1 (TIMES SPACEWIDTH (POSITION TSTREAM))
(CL:WHEN (AND XPOSITION (IGEQ XPOSITION 0))
(SPACES (IDIFFERENCE (QUOTIENT XPOSITION SPACEWIDTH)
(POSITION TSTREAM))
TSTREAM)))])
(SETQ CHARPOS (POSITION TSTREAM))
(PROG1 (TIMES SPACEWIDTH CHARPOS)
(CL:WHEN XPOSITION
(SETQ NSPACES (IDIFFERENCE (FIXR (FQUOTIENT XPOSITION SPACEWIDTH))
CHARPOS))
(CL:WHEN (IGREATERP NSPACES 0)
(SPACES NSPACES TSTREAM))))])
(\TEDIT.TEXTDSPYPOSITION
[LAMBDA (TSTREAM YPOSITION) (* ; "Edited 25-Jun-2024 11:59 by rmk")
@@ -2970,7 +2984,8 @@
OLDITEMS])
(\TEDIT.TEXTPROP
[LAMBDA (TEXTOBJ PROP SETNEWVALUE NEWVALUE) (* ; "Edited 17-Jul-2025 00:19 by rmk")
[LAMBDA (TEXTOBJ PROP SETNEWVALUE NEWVALUE) (* ; "Edited 5-Oct-2025 10:15 by rmk")
(* ; "Edited 17-Jul-2025 00:19 by rmk")
(* ; "Edited 16-Feb-2025 23:27 by rmk")
(* ; "Edited 15-Feb-2025 14:02 by rmk")
(* ; "Edited 22-Dec-2024 00:23 by rmk")
@@ -3056,32 +3071,42 @@
(CL:WHEN SETNEWVALUE (FSETTOBJ TEXTOBJ LOOPFN NEWVALUE))))
(CHARFN (PROG1 (FGETTOBJ TEXTOBJ CHARFN)
(CL:WHEN SETNEWVALUE (FSETTOBJ TEXTOBJ CHARFN NEWVALUE))))
(PROG1 (LISTGET (FGETTOBJ TEXTOBJ EDITPROPS)
PROP)
(CL:WHEN SETNEWVALUE
(CL:UNLESS (LISTP (FGETTOBJ TEXTOBJ EDITPROPS))
(OR (PROG1 (LISTGET (FGETTOBJ TEXTOBJ EDITPROPS)
PROP)
(CL:WHEN SETNEWVALUE
(CL:UNLESS (LISTP (FGETTOBJ TEXTOBJ EDITPROPS))
(* ;
 "Make sure we have a list to smash, no matter what.")
(FSETTOBJ TEXTOBJ EDITPROPS (LIST PROP NIL)))
(LISTPUT (FGETTOBJ TEXTOBJ EDITPROPS)
PROP NEWVALUE)))])
(FSETTOBJ TEXTOBJ EDITPROPS (LIST PROP NIL)))
(LISTPUT (FGETTOBJ TEXTOBJ EDITPROPS)
PROP NEWVALUE)))
(PROG1 (GETMULTI (FGETTOBJ TEXTOBJ DOCPROPS)
PROP)
(CL:WHEN SETNEWVALUE
(PUTMULTI (FGETTOBJ TEXTOBJ DOCPROPS)
PROP NEWVALUE)))])
)
(DEFINEQ
(\TEDIT.TEXTOBJ.PROPNAMES
[LAMBDA (TEXTOBJ) (* ; "Edited 4-Jul-2024 11:08 by rmk")
[LAMBDA (TEXTOBJ) (* ; "Edited 5-Oct-2025 10:50 by rmk")
(* ; "Edited 4-Jul-2024 11:08 by rmk")
(* ; "Edited 30-Jun-2024 09:04 by rmk")
(* ;; "Stick the user properties at the end with --USERPROPS-- separator. INSPECTABLEFIELDNAMES does the sort for defined field names, the UFIELDS have to be sorted here.")
(LET ([TFIELDS (REMOVE 'EDITPROPS (INSPECTABLEFIELDNAMES (OR (RECLOOK 'TEXTOBJ)
(LET [[TFIELDS (REMOVE 'EDITPROPS (INSPECTABLEFIELDNAMES (OR (RECLOOK 'TEXTOBJ)
(SYSRECLOOK1 'TEXTOBJ]
(UFIELDS (for X in (fetch (TEXTOBJ EDITPROPS) of TEXTOBJ) by (CDDR X) collect X)))
(EPROPS (for X in (fetch (TEXTOBJ EDITPROPS) of TEXTOBJ) by (CDDR X) collect X))
(DPROPS (for X in (fetch (TEXTOBJ DOCPROPS) of TEXTOBJ) collect (CAR X]
(CL:UNLESS (OR (EQ T INSPECTDONTSORTFIELDS)
(MEMB 'TEXTOBJ INSPECTDONTSORTFIELDS))
(SETQ UFIELDS (SORT UFIELDS)))
(APPEND TFIELDS (CONS '--USERPROPS--)
UFIELDS])
(SETQ EPROPS (SORT EPROPS))
(SETQ DPROPS (SORT DPROPS)))
(APPEND TFIELDS (CONS '--EDITPROPS--)
EPROPS
(CONS '--DOCPROPS--)
DPROPS])
(\TEDIT.TEXTOBJ.PROPFETCHFN
[LAMBDA (TEXTOBJ PROPNAME) (* ; "Edited 4-Jul-2024 11:53 by rmk")
@@ -3113,15 +3138,6 @@
(ADDTOVAR INSPECTMACROS (TEXTOBJ \TEDIT.TEXTOBJ.PROPNAMES \TEDIT.TEXTOBJ.PROPFETCHFN
\TEDIT.TEXTOBJ.PROPSTOREFN))
)
(* ;;
"Support for error handling: The old error handler for the stream-not-open error. This is here, because you only want to do this ONCE, even if you load TEXT-STREAM multiple times (as, e.g., in development)"
)
(RPAQ? *TEDIT-OLD-STREAM-ERROR-HANDLER* (CONDITION-HANDLER 'XCL:STREAM-NOT-OPEN))
(DECLARE%: DONTEVAL@LOAD DOCOPY
(\TEDIT.TEXTINIT)
@@ -3135,34 +3151,34 @@
(ADDTOVAR LAMA TEXTPROP)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (36887 67703 (\TEDIT.TEXTBIN 36897 . 47647) (\TEDIT.TEXTPEEKBIN 47649 . 53199) (
\TEDIT.TEXTBACKFILEPTR 53201 . 58874) (\TEDIT.TEXTBOUT 58876 . 63493) (\TEDIT.INSTALL.FILEBUFFER 63495
. 67701)) (68601 72892 (\TEDIT.TEXTOUTCHARFN 68611 . 70167) (\TEDIT.TEXTINCCODEFN 70169 . 70908) (
\TEDIT.TEXTBACKCCODEFN 70910 . 71502) (\TEDIT.TEXTFORMATBYTESTREAM 71504 . 72341) (
\TEDIT.TEXTFORMATBYTESTRING 72343 . 72890)) (72939 84503 (OPENTEXTSTREAM 72949 . 79824) (
COPYTEXTSTREAM 79826 . 83726) (TEDIT.STREAMCHANGEDP 83728 . 84030) (TXTFILE 84032 . 84501)) (84504
115746 (\TEDIT.REOPENTEXTSTREAM 84514 . 85866) (\TEDIT.OPENTEXTSTREAM.PIECES 85868 . 90796) (
\TEDIT.OPENTEXTSTREAM.PROPS 90798 . 91900) (\TEDIT.OPENTEXTSTREAM.SETUP.SEL 91902 . 97143) (
\TEDIT.OPENTEXTSTREAM.WINDOW 97145 . 99936) (\TEDIT.OPENTEXTSTREAM.DEFAULTLOOKS 99938 . 101877) (
\TEDIT.OPENTEXTFILE 101879 . 104356) (\TEDIT.CREATE.TEXTSTREAM 104358 . 105505) (\TEDIT.REOPEN.STREAM
105507 . 107843) (\TEDIT.TEXTINIT 107845 . 115744)) (115784 116972 (\TEDIT.TTYBOUT 115794 . 116970)) (
117090 137553 (\TEDIT.TEXTCLOSEF 117100 . 118424) (\TEDIT.TEXTDSPFONT 118426 . 119624) (
\TEDIT.TEXTEOFP 119626 . 121381) (\TEDIT.TEXTGETEOFPTR 121383 . 121706) (\TEDIT.TEXTSETEOFPTR 121708
. 122995) (\TEDIT.TEXTGETFILEPTR 122997 . 125832) (\TEDIT.TEXTSETFILEINFO 125834 . 126342) (
\TEDIT.TEXTOPENF 126344 . 127275) (\TEDIT.TEXTSETEOF 127277 . 127893) (\TEDIT.TEXTSETFILEPTR 127895 .
130005) (\TEDIT.TEXTDSPXPOSITION 130007 . 131490) (\TEDIT.TEXTDSPYPOSITION 131492 . 132233) (
\TEDIT.TEXTLEFTMARGIN 132235 . 132826) (\TEDIT.TEXTCOLOR 132828 . 133411) (\TEDIT.TEXTRIGHTMARGIN
133413 . 136702) (\TEDIT.TEXTDSPCHARWIDTH 136704 . 137008) (\TEDIT.TEXTDSPSTRINGWIDTH 137010 . 137316)
(\TEDIT.TEXTDSPLINEFEED 137318 . 137551)) (137591 150204 (\TEDIT.NTHCHARCODE 137601 . 139052) (
\TEDIT.PIECE.NTHCHARCODE 139054 . 142964) (\TEDIT.RPLCHARCODE 142966 . 144424) (
\TEDIT.PIECE.RPLCHARCODE 144426 . 149849) (\TEDIT.NTHCHARLOOKS 149851 . 150202)) (151251 172345 (
\TEDIT.DELETE.SELPIECES 151261 . 154886) (\TEDIT.INSERTCH 154888 . 162927) (\TEDIT.INSERTCH.HISTORY
162929 . 166393) (\TEDIT.INSERTEOL 166395 . 168220) (\TEDIT.INSERTCH.INSERTION 168222 . 171059) (
\TEDIT.INSERTCH.EXTEND 171061 . 172343)) (172346 173850 (\TEDIT.NEXTCHANGEABLE.CHNO 172356 . 173071) (
\TEDIT.LASTCHANGEABLE.CHNO 173073 . 173848)) (173851 175555 (\SETUPGETCH 173861 . 175553)) (175613
180071 (\TEDIT.INSTALL.PIECE 175623 . 180069)) (180109 189210 (TEXTPROP 180119 . 180466) (GETTEXTPROP
180468 . 180712) (PUTTEXTPROP 180714 . 180971) (GETTEXTPROPS 180973 . 181417) (PUTTEXTPROPS 181419 .
182323) (TEXTPROP.ADD 182325 . 182588) (\TEDIT.TEXTPROP 182590 . 189208)) (189211 191281 (
\TEDIT.TEXTOBJ.PROPNAMES 189221 . 190173) (\TEDIT.TEXTOBJ.PROPFETCHFN 190175 . 190691) (
\TEDIT.TEXTOBJ.PROPSTOREFN 190693 . 191279)))))
(FILEMAP (NIL (36705 67564 (\TEDIT.TEXTBIN 36715 . 47508) (\TEDIT.TEXTPEEKBIN 47510 . 53060) (
\TEDIT.TEXTBACKFILEPTR 53062 . 58735) (\TEDIT.TEXTBOUT 58737 . 63354) (\TEDIT.INSTALL.FILEBUFFER 63356
. 67562)) (68462 72753 (\TEDIT.TEXTOUTCHARFN 68472 . 70028) (\TEDIT.TEXTINCCODEFN 70030 . 70769) (
\TEDIT.TEXTBACKCCODEFN 70771 . 71363) (\TEDIT.TEXTFORMATBYTESTREAM 71365 . 72202) (
\TEDIT.TEXTFORMATBYTESTRING 72204 . 72751)) (72800 84875 (OPENTEXTSTREAM 72810 . 79786) (
COPYTEXTSTREAM 79788 . 84098) (TEDIT.STREAMCHANGEDP 84100 . 84402) (TXTFILE 84404 . 84873)) (84876
116145 (\TEDIT.REOPENTEXTSTREAM 84886 . 86238) (\TEDIT.OPENTEXTSTREAM.PIECES 86240 . 91168) (
\TEDIT.OPENTEXTSTREAM.PROPS 91170 . 92272) (\TEDIT.OPENTEXTSTREAM.SETUP.SEL 92274 . 97515) (
\TEDIT.OPENTEXTSTREAM.WINDOW 97517 . 100308) (\TEDIT.OPENTEXTSTREAM.DEFAULTLOOKS 100310 . 102249) (
\TEDIT.OPENTEXTFILE 102251 . 104383) (\TEDIT.CREATE.TEXTSTREAM 104385 . 105532) (\TEDIT.REOPEN.STREAM
105534 . 107870) (\TEDIT.TEXTINIT 107872 . 116143)) (116183 117371 (\TEDIT.TTYBOUT 116193 . 117369)) (
117489 139172 (\TEDIT.TEXTCLOSEF 117499 . 118823) (\TEDIT.TEXTDSPFONT 118825 . 120023) (
\TEDIT.TEXTEOFP 120025 . 121780) (\TEDIT.TEXTGETEOFPTR 121782 . 122105) (\TEDIT.TEXTSETEOFPTR 122107
. 123394) (\TEDIT.TEXTGETFILEPTR 123396 . 126231) (\TEDIT.TEXTSETFILEINFO 126233 . 126741) (
\TEDIT.TEXTOPENF 126743 . 127674) (\TEDIT.TEXTSETEOF 127676 . 128292) (\TEDIT.TEXTSETFILEPTR 128294 .
130404) (\TEDIT.TEXTDSPXPOSITION 130406 . 133109) (\TEDIT.TEXTDSPYPOSITION 133111 . 133852) (
\TEDIT.TEXTLEFTMARGIN 133854 . 134445) (\TEDIT.TEXTCOLOR 134447 . 135030) (\TEDIT.TEXTRIGHTMARGIN
135032 . 138321) (\TEDIT.TEXTDSPCHARWIDTH 138323 . 138627) (\TEDIT.TEXTDSPSTRINGWIDTH 138629 . 138935)
(\TEDIT.TEXTDSPLINEFEED 138937 . 139170)) (139210 151823 (\TEDIT.NTHCHARCODE 139220 . 140671) (
\TEDIT.PIECE.NTHCHARCODE 140673 . 144583) (\TEDIT.RPLCHARCODE 144585 . 146043) (
\TEDIT.PIECE.RPLCHARCODE 146045 . 151468) (\TEDIT.NTHCHARLOOKS 151470 . 151821)) (152870 173964 (
\TEDIT.DELETE.SELPIECES 152880 . 156505) (\TEDIT.INSERTCH 156507 . 164546) (\TEDIT.INSERTCH.HISTORY
164548 . 168012) (\TEDIT.INSERTEOL 168014 . 169839) (\TEDIT.INSERTCH.INSERTION 169841 . 172678) (
\TEDIT.INSERTCH.EXTEND 172680 . 173962)) (173965 175469 (\TEDIT.NEXTCHANGEABLE.CHNO 173975 . 174690) (
\TEDIT.LASTCHANGEABLE.CHNO 174692 . 175467)) (175470 177174 (\SETUPGETCH 175480 . 177172)) (177232
181690 (\TEDIT.INSTALL.PIECE 177242 . 181688)) (181728 191194 (TEXTPROP 181738 . 182085) (GETTEXTPROP
182087 . 182331) (PUTTEXTPROP 182333 . 182590) (GETTEXTPROPS 182592 . 183036) (PUTTEXTPROPS 183038 .
183942) (TEXTPROP.ADD 183944 . 184207) (\TEDIT.TEXTPROP 184209 . 191192)) (191195 193572 (
\TEDIT.TEXTOBJ.PROPNAMES 191205 . 192464) (\TEDIT.TEXTOBJ.PROPFETCHFN 192466 . 192982) (
\TEDIT.TEXTOBJ.PROPSTOREFN 192984 . 193570)))))
STOP

Binary file not shown.

View File

@@ -1,13 +1,13 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED " 7-Sep-2025 11:11:43" 
{DSK}<Users>kaplan>Local>medley3.5>working-medley>library>tedit>TEDIT-TFBRAVO.;187 97463
(FILECREATED "21-Jan-2026 12:15:57" {WMEDLEY}<library>TEDIT>TEDIT-TFBRAVO.;190 98203
:EDIT-BY rmk
:CHANGES-TO (FNS TEDITFROMBRAVO \TFBRAVO.FONT.FROM.CHARLOOKS)
:CHANGES-TO (FNS BRAVOFILEP)
(VARS TEDIT-TFBRAVOCOMS)
:PREVIOUS-DATE "28-Jul-2025 23:34:14" {WMEDLEY}<library>TEDIT>TEDIT-TFBRAVO.;185)
:PREVIOUS-DATE " 7-Sep-2025 11:11:43" {WMEDLEY}<library>TEDIT>TEDIT-TFBRAVO.;187)
(PRETTYCOMPRINT TEDIT-TFBRAVOCOMS)
@@ -20,10 +20,12 @@
(CONSTANTS (BRAVO.TRAILER.CHARS '(l d z x e y k j c q %( %) %, s S u U b B i I g G v V
w W t f o % \ 0 1 2 3 4 5 6 7 8 9]
(* ;; "Interface to TEDIT")
(* ;; "Interface to TEDIT and CONVERT.TO.IMAGE.FILE")
(FNS TEDIT.BRAVOFILE? TEDITFROMBRAVO)
(ADDVARS (TEDIT.INPUT.FORMATS (TEDIT.BRAVOFILE? TEDITFROMBRAVO)))
(FNS BRAVOFILEP TEDITFROMBRAVO)
(ADDVARS (TEDIT.INPUT.FORMATS (BRAVOFILEP TEDITFROMBRAVO)))
(ALISTS (PRINTFILETYPES BRAVO))
[P (DEFAULT.IMAGETYPE.CONVERSIONS '(BRAVO TEDIT.TO.IMAGEFILE]
(* ;; "Initial looks, USER.CM")
@@ -154,36 +156,44 @@
(* ;; "Interface to TEDIT")
(* ;; "Interface to TEDIT and CONVERT.TO.IMAGE.FILE")
(DEFINEQ
(TEDIT.BRAVOFILE?
[LAMBDA (STREAM TEXTOBJ) (* ; "Edited 28-Nov-2023 10:34 by rmk")
(BRAVOFILEP
[LAMBDA (FILE TEXTOBJ) (* ; "Edited 21-Jan-2026 12:15 by rmk")
(* ; "Edited 28-Nov-2023 10:34 by rmk")
(* ; "Edited 17-Aug-2023 08:09 by rmk")
(* ; "Edited 11-Aug-2023 22:59 by rmk")
(* ; "Edited 5-Aug-2023 23:05 by rmk")
(* ; "Edited 1-Aug-2023 08:15 by rmk")
(* gbn " 3-Jun-85 21:06")
(* ;; "T if the open STREAM looks like a Bravo file.")
(* ;; "T if FILE looks like a Bravo file.")
(PROG (PLOOKS ENDCONDITION (ORIGINAL.FILE.POSITION (GETFILEPTR STREAM))
NAME DIRS USER.CM) (* ;
(RESETLST
(PROG* ((STREAM (\GETSTREAM FILE 'INPUT T))
(ORIGINAL.FILE.POSITION (CL:IF STREAM
(GETFILEPTR STREAM)
0))
PLOOKS ENDCONDITION NAME DIRS USER.CM) (* ;
 "first look for a ^z, (beginning of a Bravo trailer)")
(CL:UNLESS (\TFBRAVO.FIND.LAST.TRAILER STREAM)
(SETFILEPTR STREAM ORIGINAL.FILE.POSITION)
(RETURN NIL)) (* ; "BIN past the ^z")
(BIN STREAM)
(SETQ PLOOKS (\TEST.PARAGRAPH.LOOKS STREAM)) (* ;
(CL:UNLESS STREAM
[RESETSAVE (SETQ STREAM (OPENSTREAM FILE 'INPUT))
`(PROGN (CLOSEF? OLDVALUE])
(CL:UNLESS (\TFBRAVO.FIND.LAST.TRAILER STREAM)
(SETFILEPTR STREAM ORIGINAL.FILE.POSITION)
(RETURN NIL)) (* ; "BIN past the ^z")
(BIN STREAM)
(SETQ PLOOKS (\TEST.PARAGRAPH.LOOKS STREAM)) (* ;
 "if the next symbol is a slash then check if the character looks are valid")
[SETQ ENDCONDITION (CL:WHEN (EQ (CAR PLOOKS)
'\)
(repeatuntil (\TEST.CHARACTER.LOOKS STREAM)))]
(SETFILEPTR STREAM ORIGINAL.FILE.POSITION)
(CL:WHEN (EQ ENDCONDITION 'BADLOOKS)
(RETURN NIL))
(RETURN T])
[SETQ ENDCONDITION (CL:WHEN (EQ (CAR PLOOKS)
'\)
(repeatuntil (\TEST.CHARACTER.LOOKS STREAM)))]
(SETFILEPTR STREAM ORIGINAL.FILE.POSITION)
(CL:WHEN (EQ ENDCONDITION 'BADLOOKS)
(RETURN NIL))
(RETURN T)))])
(TEDITFROMBRAVO
[LAMBDA (BFILE TSTREAM PROPS USER.CM) (* ; "Edited 7-Sep-2025 11:09 by rmk")
@@ -254,7 +264,12 @@
(RETURN TSTREAM)))])
)
(ADDTOVAR TEDIT.INPUT.FORMATS (TEDIT.BRAVOFILE? TEDITFROMBRAVO))
(ADDTOVAR TEDIT.INPUT.FORMATS (BRAVOFILEP TEDITFROMBRAVO))
(ADDTOVAR PRINTFILETYPES (BRAVO (TEST BRAVOFILEP)
(EXTENSION (BRAVO))))
(DEFAULT.IMAGETYPE.CONVERSIONS '(BRAVO TEDIT.TO.IMAGEFILE))
@@ -1556,18 +1571,18 @@
(AND NIL (\TEDIT.NAMEDTAB.INIT))
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (7665 14759 (TEDIT.BRAVOFILE? 7675 . 9405) (TEDITFROMBRAVO 9407 . 14757)) (14870 31286 (
\TFBRAVO.GET.USER.CM 14880 . 18060) (\TFBRAVO.USER.CM.LOOKS 18062 . 19555) (\TFBRAVO.READ.USER.CM
19557 . 24180) (\TFBRAVO.INIT.PARALOOKS 24182 . 26399) (\TFBRAVO.INIT.PAGEFORMAT 26401 . 27281) (
\TFBRAVO.GETPARAMS 27283 . 30137) (\TFBRAVO.FIND.LAST.TRAILER 30139 . 31284)) (31328 52033 (
\TFBRAVO.PARSE.PARA 31338 . 35265) (\TFBRAVO.READ.PARALOOKS 35267 . 42157) (\TFBRAVO.CREATE.RUNS 42159
. 43547) (\TFBRAVO.READ.CHARLOOKS 43549 . 48578) (\TFBRAVO.FONT.FROM.CHARLOOKS 48580 . 50134) (
\TFBRAVO.READNUM? 50136 . 52031)) (52070 63111 (\TFBRAVO.HANDLE.HEADING 52080 . 54807) (
\TFBRAVO.PARSE.PROFILE.PARA 54809 . 63109)) (63154 85488 (\TFBRAVO.INSERT.PARA 63164 . 64005) (
\TFBRAVO.INSERT.RUN 64007 . 67498) (\TFBRAVO.SPLIT.PARA 67500 . 74924) (\TFBRAVO.RUN.TABSPEC 74926 .
79793) (\TFBRAVO.INSTALL.PAGEFORMAT 79795 . 85486)) (85489 89632 (\TFBRAVO.ASSERT 85499 . 86029) (
\TEST.CHARACTER.LOOKS 86031 . 87917) (\TEST.PARAGRAPH.LOOKS 87919 . 89630)) (90642 97297 (
\TFBRAVO.ADD.NAMEDTAB 90652 . 94255) (\TFBRAVO.COPY.NAMEDTAB 94257 . 94705) (\TFBRAVO.PUT.NAMEDTAB
94707 . 94987) (\TFBRAVO.GET.NAMEDTAB 94989 . 95366) (\NAMEDTABNYET 95368 . 95528) (\NAMEDTABSIZE
95530 . 96045) (\NAMEDTABPREPRINT 96047 . 96245) (\TEDIT.NAMEDTAB.INIT 96247 . 97295)))))
(FILEMAP (NIL (7784 15335 (BRAVOFILEP 7794 . 9981) (TEDITFROMBRAVO 9983 . 15333)) (15610 32026 (
\TFBRAVO.GET.USER.CM 15620 . 18800) (\TFBRAVO.USER.CM.LOOKS 18802 . 20295) (\TFBRAVO.READ.USER.CM
20297 . 24920) (\TFBRAVO.INIT.PARALOOKS 24922 . 27139) (\TFBRAVO.INIT.PAGEFORMAT 27141 . 28021) (
\TFBRAVO.GETPARAMS 28023 . 30877) (\TFBRAVO.FIND.LAST.TRAILER 30879 . 32024)) (32068 52773 (
\TFBRAVO.PARSE.PARA 32078 . 36005) (\TFBRAVO.READ.PARALOOKS 36007 . 42897) (\TFBRAVO.CREATE.RUNS 42899
. 44287) (\TFBRAVO.READ.CHARLOOKS 44289 . 49318) (\TFBRAVO.FONT.FROM.CHARLOOKS 49320 . 50874) (
\TFBRAVO.READNUM? 50876 . 52771)) (52810 63851 (\TFBRAVO.HANDLE.HEADING 52820 . 55547) (
\TFBRAVO.PARSE.PROFILE.PARA 55549 . 63849)) (63894 86228 (\TFBRAVO.INSERT.PARA 63904 . 64745) (
\TFBRAVO.INSERT.RUN 64747 . 68238) (\TFBRAVO.SPLIT.PARA 68240 . 75664) (\TFBRAVO.RUN.TABSPEC 75666 .
80533) (\TFBRAVO.INSTALL.PAGEFORMAT 80535 . 86226)) (86229 90372 (\TFBRAVO.ASSERT 86239 . 86769) (
\TEST.CHARACTER.LOOKS 86771 . 88657) (\TEST.PARAGRAPH.LOOKS 88659 . 90370)) (91382 98037 (
\TFBRAVO.ADD.NAMEDTAB 91392 . 94995) (\TFBRAVO.COPY.NAMEDTAB 94997 . 95445) (\TFBRAVO.PUT.NAMEDTAB
95447 . 95727) (\TFBRAVO.GET.NAMEDTAB 95729 . 96106) (\NAMEDTABNYET 96108 . 96268) (\NAMEDTABSIZE
96270 . 96785) (\NAMEDTABPREPRINT 96787 . 96985) (\TEDIT.NAMEDTAB.INIT 96987 . 98035)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "15-Nov-2025 01:27:38" {WMEDLEY}<library>TEDIT>TEDIT-WINDOW.;881 231034
(FILECREATED "24-Dec-2025 11:22:33" {WMEDLEY}<library>TEDIT>TEDIT-WINDOW.;883 231422
:EDIT-BY rmk
:CHANGES-TO (FNS \TEDIT.WINDOW.CREATE)
:CHANGES-TO (FNS \TEDIT.MINIMAL.WINDOW.SETUP TEDIT.PROMPTCLEAR TEDIT.PROMPTPRINT)
:PREVIOUS-DATE "25-Oct-2025 10:33:08" {WMEDLEY}<library>TEDIT>TEDIT-WINDOW.;878)
:PREVIOUS-DATE "15-Nov-2025 01:27:38" {WMEDLEY}<library>tedit>TEDIT-WINDOW.;881)
(PRETTYCOMPRINT TEDIT-WINDOWCOMS)
@@ -608,7 +608,9 @@
(\TEDIT.SET.WINDOW.EXTENT TEXTOBJ PANE])
(\TEDIT.MINIMAL.WINDOW.SETUP
[LAMBDA (PANEWINDOW TSTREAM PROPS) (* ; "Edited 19-Oct-2025 14:55 by rmk")
[LAMBDA (PANEWINDOW TSTREAM PROPS) (* ; "Edited 23-Dec-2025 23:41 by rmk")
(* ; "Edited 20-Dec-2025 23:04 by rmk")
(* ; "Edited 19-Oct-2025 14:55 by rmk")
(* ; "Edited 20-Apr-2025 15:19 by rmk")
(* ; "Edited 30-Nov-2024 13:32 by rmk")
(* ; "Edited 4-Nov-2024 19:46 by rmk")
@@ -687,8 +689,7 @@
(WINDOWPROP PANEWINDOW 'CURSOROUTFN (FUNCTION \TEDIT.CURSOROUTFN))
(WINDOWPROP PANEWINDOW 'BUTTONEVENTFN (FUNCTION \TEDIT.BUTTONEVENTFN))
(WINDOWPROP PANEWINDOW 'RIGHTBUTTONFN (FUNCTION \TEDIT.BUTTONEVENTFN))
(WINDOWPROP PANEWINDOW 'HARDCOPYFN (FUNCTION TEDIT.HARDCOPYFN))
(WINDOWPROP PANEWINDOW 'HARDCOPYFILEFN (FUNCTION \TEDIT.HARDCOPYFILEFN))
(WINDOWPROP PANEWINDOW 'IMAGETYPE 'TEDIT) (* ; "For hardcopy")
(WINDOWPROP PANEWINDOW 'COPYINSERTFN (FUNCTION \TEDIT.COPYINSERTFN))
(WINDOWPROP PANEWINDOW 'REPAINTFN (FUNCTION \TEDIT.REPAINTFN))
(WINDOWPROP PANEWINDOW 'AFTERMOVEFN (FUNCTION \TEDIT.AFTERMOVEFN))
@@ -2059,7 +2060,8 @@
PROMPTWINDOW])
(TEDIT.PROMPTPRINT
[LAMBDA (TEXTSTREAM MSG CLEAR? FLASH?) (* ; "Edited 29-Dec-2024 14:45 by rmk")
[LAMBDA (TSTREAM MSG CLEAR? FLASH?) (* ; "Edited 14-Dec-2025 17:41 by rmk")
(* ; "Edited 29-Dec-2024 14:45 by rmk")
(* ; "Edited 26-Nov-2023 10:10 by rmk")
(* ; "Edited 10-Sep-2023 00:27 by rmk")
(* ; "Edited 30-Jul-2023 08:52 by rmk")
@@ -2070,7 +2072,7 @@
(* ;; "Print a message in the editor's prompt window (if none, use the global promptwindow). Optionally clear the window first.")
(LET ((TEXTOBJ (TEXTOBJ TEXTSTREAM T))
(LET ((TEXTOBJ (TEXTOBJ TSTREAM T))
PWINDOW MAINWINDOW)
(if TEXTOBJ
then (CL:WHEN (SETQ MAINWINDOW (\TEDIT.MAINW TEXTOBJ))
@@ -2078,7 +2080,7 @@
(CAR (NLSETQ (SELECTQ PWINDOW
(DON'T (CL:WHEN (GETTEXTPROP TEXTOBJ 'PWINDOW.ON.DEMAND)
(GETPROMPTWINDOW MAINWINDOW)))
(NIL (CL:WHEN TEXTSTREAM
(NIL (CL:WHEN TSTREAM
[GETPROMPTWINDOW MAINWINDOW NIL NIL
(NOT (GETTEXTPROP TEXTOBJ 'PWINDOW.ON.DEMAND]))
PWINDOW]) (* ;
@@ -2097,15 +2099,15 @@
else (PROMPTPRINT MSG])
(TEDIT.PROMPTCLEAR
[LAMBDA (TSTREAM FONT) (* ; "Edited 18-Sep-2025 23:08 by rmk")
[LAMBDA (TSTREAM FONT) (* ; "Edited 14-Dec-2025 17:34 by rmk")
(* ; "Edited 18-Sep-2025 23:08 by rmk")
(* ; "Edited 14-Mar-98 12:52 by rmk:")
(* ; "Edited 14-Oct-87 15:35 by bvm:")
(* ;; "Clears the promptwindow attached to TSTREAM and shrinks it back to a single line in font FONT (or TEDIT.PROMPT.FONT) if it has grown. [TSTREAM could actually be a stream on the promptwindow itself.--is that true, does this code need to deal with that?]")
(LET* [(MW (\TEDIT.MAINW TSTREAM))
(PW (AND MW (WINDOWPROP (\TEDIT.MAINW TSTREAM)
'TEDIT.PROMPTWINDOW]
(PW (AND MW (GETPROMPTWINDOW MW NIL NIL (NOT (GETTEXTPROP TSTREAM 'PWINDOW.ON.DEMAND]
(CL:WHEN PW
(WINDOWPROP PW 'TEDIT.NLINES 1)
(CL:WHEN [AND (SETQ MW (WINDOWPROP PW 'MAINWINDOW))
@@ -3662,36 +3664,36 @@
(RPAQ? TEDIT.TITLED.ICON.TEMPLATE (create TITLEDICON ICON _ TEDITICON MASK _ TEDITMASK TITLEREG _
TEDIT.ICON.TITLE.REGION))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (17100 17996 (TEDIT.DEFER.UPDATES 17110 . 17994)) (17997 45089 (\TEDIT.WINDOW.CREATE
18007 . 24870) (\TEDIT.WINDOW.GETREGION 24872 . 29576) (\TEDIT.WINDOW.SETUP 29578 . 33908) (
\TEDIT.MINIMAL.WINDOW.SETUP 33910 . 41721) (\TEDIT.CLEARPANE 41723 . 42440) (\TEDIT.FILL.PANES 42442
. 45087)) (45090 68791 (\TEDIT.CURSORMOVEDFN 45100 . 50710) (\TEDIT.CURSOROUTFN 50712 . 51400) (
\TEDIT.ACTIVE.WINDOWP 51402 . 52472) (\TEDIT.EXPANDFN 52474 . 53037) (\TEDIT.MAINW 53039 . 54319) (
\TEDIT.MAINSTREAM 54321 . 54655) (\TEDIT.PRIMARYPANE 54657 . 55427) (\TEDIT.PANELIST 55429 . 55925) (
\TEDIT.NEWREGIONFN 55927 . 58443) (\TEDIT.SET.WINDOW.EXTENT 58445 . 63427) (\TEDIT.SHRINK.ICONCREATE
63429 . 66162) (\TEDIT.SHRINKFN 66164 . 66573) (\TEDIT.PANEREGION 66575 . 68789)) (68823 101869 (
\TEDIT.BUTTONEVENTFN 68833 . 81806) (\TEDIT.BUTTONEVENTFN.DOOPERATION 81808 . 89071) (
\TEDIT.BUTTONEVENTFN.GETOPERATION 89073 . 90915) (\TEDIT.BUTTONEVENTFN.CURSEL.INIT 90917 . 94587) (
\TEDIT.BUTTONEVENTFN.INACTIVE 94589 . 97019) (\TEDIT.BUTTONEVENTFN.INTITLE 97021 . 98856) (
\TEDIT.COPYINSERTFN 98858 . 99990) (\TEDIT.FOREIGN.COPY 99992 . 101867)) (101870 119433 (
\TEDIT.PANE.SPLIT 101880 . 105828) (\TEDIT.SPLITW 105830 . 113889) (\TEDIT.UNSPLITW 113891 . 118090) (
\TEDIT.LINKPANES 118092 . 118855) (\TEDIT.UNLINKPANE 118857 . 119431)) (120867 121758 (TEDITWINDOWP
120877 . 121756)) (121795 124898 (TEDIT.GETINPUT 121805 . 124248) (\TEDIT.MAKEFILENAME 124250 . 124896
)) (124947 132597 (TEDIT.PROMPTWINDOW 124957 . 125271) (TEDIT.PROMPTPRINT 125273 . 127900) (
TEDIT.PROMPTCLEAR 127902 . 129644) (TEDIT.PROMPTFLASH 129646 . 130904) (\TEDIT.PROMPT.PAGEFULLFN
130906 . 132595)) (132835 143413 (\TEDIT.FILENAME 132845 . 133617) (\TEDIT.DEFAULT.TITLE 133619 .
135998) (\TEDIT.WINDOW.TITLE 136000 . 138169) (\TEDIT.LIKELY.FILENAME 138171 . 140895) (
\TEDIT.UPDATE.TITLE 140897 . 143411)) (143456 155940 (TEDIT.DEACTIVATE.WINDOW 143466 . 149039) (
\TEDIT.RESHAPEFN 149041 . 151126) (\TEDIT.REPAINTFN 151128 . 151352) (\TEDIT.CLOSESPLITS 151354 .
153799) (\TEDIT.CLOSEPANE 153801 . 155938)) (155941 198740 (\TEDIT.SCROLLFN 155951 . 158182) (
\TEDIT.SCROLLCH.TOP 158184 . 160295) (\TEDIT.SCROLLCH.BOTTOM 160297 . 164627) (\TEDIT.SCROLLUP 164629
. 170355) (\TEDIT.TOPLINE.YTOP 170357 . 172026) (\TEDIT.SCROLLDOWN 172028 . 179067) (
\TEDIT.SCROLL.CARET 179069 . 181907) (\TEDIT.VISIBLECARETP 181909 . 184203) (\TEDIT.VISIBLECHARP
184205 . 185296) (\TEDIT.BITMAPLINES 185298 . 189218) (\TEDIT.SETPANE.TOPLINE 189220 . 189832) (
\TEDIT.SHIFTLINES 189834 . 198738)) (198741 209610 (\TEDIT.ONSCREEN? 198751 . 203302) (
\TEDIT.ONSCREEN.REGION 203304 . 206955) (\TEDIT.AFTERMOVEFN 206957 . 207854) (OFFSCREENP 207856 .
209608)) (209652 212466 (\TEDIT.PROCIDLEFN 209662 . 211322) (\TEDIT.PROCENTRYFN 211324 . 211769) (
\TEDIT.PROCEXITFN 211771 . 212464)) (212545 225770 (\TEDIT.DOWNCARET 212555 . 213348) (
\TEDIT.FLASHCARET 213350 . 215461) (\TEDIT.UPCARET 215463 . 216567) (TEDIT.NORMALIZECARET 216569 .
219787) (\TEDIT.SETCARET 219789 . 225140) (\TEDIT.CARET 225142 . 225768)))))
(FILEMAP (NIL (17143 18039 (TEDIT.DEFER.UPDATES 17153 . 18037)) (18040 45281 (\TEDIT.WINDOW.CREATE
18050 . 24913) (\TEDIT.WINDOW.GETREGION 24915 . 29619) (\TEDIT.WINDOW.SETUP 29621 . 33951) (
\TEDIT.MINIMAL.WINDOW.SETUP 33953 . 41913) (\TEDIT.CLEARPANE 41915 . 42632) (\TEDIT.FILL.PANES 42634
. 45279)) (45282 68983 (\TEDIT.CURSORMOVEDFN 45292 . 50902) (\TEDIT.CURSOROUTFN 50904 . 51592) (
\TEDIT.ACTIVE.WINDOWP 51594 . 52664) (\TEDIT.EXPANDFN 52666 . 53229) (\TEDIT.MAINW 53231 . 54511) (
\TEDIT.MAINSTREAM 54513 . 54847) (\TEDIT.PRIMARYPANE 54849 . 55619) (\TEDIT.PANELIST 55621 . 56117) (
\TEDIT.NEWREGIONFN 56119 . 58635) (\TEDIT.SET.WINDOW.EXTENT 58637 . 63619) (\TEDIT.SHRINK.ICONCREATE
63621 . 66354) (\TEDIT.SHRINKFN 66356 . 66765) (\TEDIT.PANEREGION 66767 . 68981)) (69015 102061 (
\TEDIT.BUTTONEVENTFN 69025 . 81998) (\TEDIT.BUTTONEVENTFN.DOOPERATION 82000 . 89263) (
\TEDIT.BUTTONEVENTFN.GETOPERATION 89265 . 91107) (\TEDIT.BUTTONEVENTFN.CURSEL.INIT 91109 . 94779) (
\TEDIT.BUTTONEVENTFN.INACTIVE 94781 . 97211) (\TEDIT.BUTTONEVENTFN.INTITLE 97213 . 99048) (
\TEDIT.COPYINSERTFN 99050 . 100182) (\TEDIT.FOREIGN.COPY 100184 . 102059)) (102062 119625 (
\TEDIT.PANE.SPLIT 102072 . 106020) (\TEDIT.SPLITW 106022 . 114081) (\TEDIT.UNSPLITW 114083 . 118282) (
\TEDIT.LINKPANES 118284 . 119047) (\TEDIT.UNLINKPANE 119049 . 119623)) (121059 121950 (TEDITWINDOWP
121069 . 121948)) (121987 125090 (TEDIT.GETINPUT 121997 . 124440) (\TEDIT.MAKEFILENAME 124442 . 125088
)) (125139 132985 (TEDIT.PROMPTWINDOW 125149 . 125463) (TEDIT.PROMPTPRINT 125465 . 128195) (
TEDIT.PROMPTCLEAR 128197 . 130032) (TEDIT.PROMPTFLASH 130034 . 131292) (\TEDIT.PROMPT.PAGEFULLFN
131294 . 132983)) (133223 143801 (\TEDIT.FILENAME 133233 . 134005) (\TEDIT.DEFAULT.TITLE 134007 .
136386) (\TEDIT.WINDOW.TITLE 136388 . 138557) (\TEDIT.LIKELY.FILENAME 138559 . 141283) (
\TEDIT.UPDATE.TITLE 141285 . 143799)) (143844 156328 (TEDIT.DEACTIVATE.WINDOW 143854 . 149427) (
\TEDIT.RESHAPEFN 149429 . 151514) (\TEDIT.REPAINTFN 151516 . 151740) (\TEDIT.CLOSESPLITS 151742 .
154187) (\TEDIT.CLOSEPANE 154189 . 156326)) (156329 199128 (\TEDIT.SCROLLFN 156339 . 158570) (
\TEDIT.SCROLLCH.TOP 158572 . 160683) (\TEDIT.SCROLLCH.BOTTOM 160685 . 165015) (\TEDIT.SCROLLUP 165017
. 170743) (\TEDIT.TOPLINE.YTOP 170745 . 172414) (\TEDIT.SCROLLDOWN 172416 . 179455) (
\TEDIT.SCROLL.CARET 179457 . 182295) (\TEDIT.VISIBLECARETP 182297 . 184591) (\TEDIT.VISIBLECHARP
184593 . 185684) (\TEDIT.BITMAPLINES 185686 . 189606) (\TEDIT.SETPANE.TOPLINE 189608 . 190220) (
\TEDIT.SHIFTLINES 190222 . 199126)) (199129 209998 (\TEDIT.ONSCREEN? 199139 . 203690) (
\TEDIT.ONSCREEN.REGION 203692 . 207343) (\TEDIT.AFTERMOVEFN 207345 . 208242) (OFFSCREENP 208244 .
209996)) (210040 212854 (\TEDIT.PROCIDLEFN 210050 . 211710) (\TEDIT.PROCENTRYFN 211712 . 212157) (
\TEDIT.PROCEXITFN 212159 . 212852)) (212933 226158 (\TEDIT.DOWNCARET 212943 . 213736) (
\TEDIT.FLASHCARET 213738 . 215849) (\TEDIT.UPCARET 215851 . 216955) (TEDIT.NORMALIZECARET 216957 .
220175) (\TEDIT.SETCARET 220177 . 225528) (\TEDIT.CARET 225530 . 226156)))))
STOP

Binary file not shown.

Binary file not shown.

View File

@@ -1,9 +1,11 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "20-Sep-2025 11:04:51" 
{DSK}<Users>kaplan>Local>medley3.5>working-medley>library>tedit>tedit-exports.all;242 52344
(FILECREATED "20-Oct-2025 11:20:51" 
{DSK}<Users>kaplan>Local>medley3.5>working-medley>library>tedit>tedit-exports.all;243 52506
:EDIT-BY rmk)
:EDIT-BY rmk
:PREVIOUS-DATE "20-Sep-2025 11:04:51" {WMEDLEY}<library>TEDIT>tedit-exports.all;242)
(PRETTYCOMPRINT ((E (MAPC (MKLIST FROMFILES) (FUNCTION (LAMBDA (F) (MAPC (IMPORTFILE F FLG) (FUNCTION
@@ -15,7 +17,7 @@ PRINT))))))))
(PUTPROPS FTEXTOBJ MACRO ((X) (TEXTOBJ! (CL:IF (type? TEXTOBJ X) X (GETTSTR X TEXTOBJ)))))
(GLOBALVARS CHECK-TEDIT-ASSERTIONS)
(RPAQ? CHECK-TEDIT-ASSERTIONS T)
(PUTPROP (QUOTE TEDIT) (QUOTE IMPORTDATE) (IDATE " 8-Sep-2025 22:10:20"))
(PUTPROP (QUOTE TEDIT) (QUOTE IMPORTDATE) (IDATE "28-Sep-2025 11:35:06"))
(RPAQQ \BTREEWORDSPERSLOT 4)
(RPAQQ \BTREEMAXCOUNT 8)
(CONSTANTS (\BTREEWORDSPERSLOT 4) (\BTREEMAXCOUNT 8))
@@ -258,7 +260,7 @@ NEXTAVAILABLECHARSLOT) of THISLINE))) (T $$STARTSLOT))) (SETQ $$CHARSLOTLIMIT (F
) by (PREVCHARSLOT I.V.) eachtime (SETQ CHAR (fetch (CHARSLOT CHAR) of I.V.)) (SETQ CHARW (fetch (
CHARSLOT CHARW) of I.V.)) (SETQ CHARCL (fetch (CHARSLOT CHARCL) of I.V.)) repeatuntil (EQ I.V.
$$CHARSLOTLIMIT))))) T)
(PUTPROP (QUOTE TEDIT-SCREEN) (QUOTE IMPORTDATE) (IDATE " 7-Aug-2025 12:51:00"))
(PUTPROP (QUOTE TEDIT-SCREEN) (QUOTE IMPORTDATE) (IDATE "19-Oct-2025 00:07:29"))
(DATATYPE PIECE ((* ;
"The piece describes either a string or part of a file. , or a generalized OBJECT.") PCONTENTS (* ;
"The background source of data for this piece (stream, string, block, object, depending on the PTYPE)."
@@ -275,8 +277,8 @@ PNEW FLAG) (* ;
XPOINTER) (* ; "Points to the PCTB tree-node that contains this piece.") (PCHARSET BYTE) (* ;
"High-order charset for FATFILE1 pieces") (PUTF8BYTESPERCHAR BYTE)) (* ;
"The number of bytes in the UTF-8 encoding of all the Unicode characters in this piece") (ACCESSFNS ((
POBJ (AND (EQ OBJECT.PTYPE (PTYPE DATUM)) (type? IMAGEOBJ (PCONTENTS DATUM)) (PCONTENTS DATUM)))))
PFPOS _ 0 PLEN _ 0 PBYTELEN _ 0)
POBJ (AND (EQ OBJECT.PTYPE (PTYPE DATUM)) (type? IMAGEOBJ (PCONTENTS DATUM)) (PCONTENTS DATUM)) (AND (
EQ OBJECT.PTYPE (PTYPE DATUM)) (SETPC DATUM PCONTENTS NEWVALUE))))) PFPOS _ 0 PLEN _ 0 PBYTELEN _ 0)
(DATATYPE TEXTOBJ ((* ;;
"This is where TEdit stores its state information, and internal data about the text being edited.")
PCTB (* ; "The piece table") TEXTLEN (* ; "# of chars in the text") PRIMARYPANE (* ;
@@ -438,7 +440,7 @@ UTF8.PTYPE UTF16BE.PTYPE UTF16LE.PTYPE)) (STRING.PTYPES (LIST THINSTRING.PTYPE F
BINABLE.PTYPES (LIST THINFILE.PTYPE THINSTRING.PTYPE)) (THIN.PTYPES (LIST THINFILE.PTYPE
THINSTRING.PTYPE)) (FAT.PTYPES (LIST FATFILE2.PTYPE FATSTRING.PTYPE FATFILE1.PTYPE)))
(GLOBALVARS \TEXTIMAGEOPS \TEXTFDEV)
(PUTPROP (QUOTE TEDIT-STREAM) (QUOTE IMPORTDATE) (IDATE "20-Sep-2025 08:49:36"))
(PUTPROP (QUOTE TEDIT-STREAM) (QUOTE IMPORTDATE) (IDATE "19-Oct-2025 15:09:09"))
(PUTPROPS \TEDIT.MOUSESTATE MACRO (BUTTON (* ;;
"Test to see if only the specified mouse button is down. DOES NOT call GETMOUSESTATE, so the mouse-button info is the same as the last time it was called."
) (SELECTQ (CAR BUTTON) (LEFT (QUOTE (EQ LASTMOUSEBUTTONS 4))) (MIDDLE (QUOTE (EQ LASTMOUSEBUTTONS 1))
@@ -452,7 +454,7 @@ I in ARGS as J on ARGS when (NOT (STRINGP I)) collect (LIST (QUOTE OR) I (LIST (
\BIN STREAM)) BITSPERWORD)))
(PUTPROPS \SMALLPOUT MACRO (OPENLAMBDA (STREAM W) (* ; "Signed smallp, unlike \WOUT") (\BOUT STREAM (
LOGAND 255 (LRSH W 8))) (\BOUT STREAM (LOGAND W 255))))
(PUTPROP (QUOTE TEDIT-FILE) (QUOTE IMPORTDATE) (IDATE " 9-Sep-2025 21:49:43"))
(PUTPROP (QUOTE TEDIT-FILE) (QUOTE IMPORTDATE) (IDATE "25-Sep-2025 21:32:46"))
(PUTPROP (QUOTE TEDIT-OLDFILE) (QUOTE IMPORTDATE) (IDATE " 8-Sep-2025 22:10:10"))
(DATATYPE CHARLOOKS ((* ;; "Describes the appearance (%"Looks%") of characters in a TEdit document.")
(* ;; "NOTE: If fields change EQCLOOKS should change too.") CLFONT (* ;
@@ -535,7 +537,7 @@ LINELEAD _ 0)
(PUTPROPS FSETPLOOKS MACRO ((PLOOKS FIELD NEWVALUE) (freplace (PARALOOKS FIELD) of PLOOKS with
NEWVALUE)))
(PUTPROPS PARALOOKS! MACRO ((PL) (\DTEST PL (QUOTE PARALOOKS))))
(PUTPROP (QUOTE TEDIT-LOOKS) (QUOTE IMPORTDATE) (IDATE " 9-Sep-2025 21:55:31"))
(PUTPROP (QUOTE TEDIT-LOOKS) (QUOTE IMPORTDATE) (IDATE " 6-Oct-2025 20:50:59"))
(PUTPROP (QUOTE TEDIT-STYLES) (QUOTE IMPORTDATE) (IDATE "28-Jul-2025 23:25:43"))
(DATATYPE TEDITCARET (TCNOWTIME (* Used to hold the current time, when checking to see if a transition
is due) TCTHENTIME (* Time when the next transition is to take place) TCFORCEDDOWN (* TCFORCEDOWN = T
@@ -598,9 +600,9 @@ OR (CL:IF (TYPENAMEP $$BODY (QUOTE TEXTOBJ)) (FGETTOBJ $$BODY PRIMARYPANE) $$BOD
GETPANEPROP (PANEPROPS P) NEXTPANE))) (GO $$OUT))) by (OR (GETPANEPROP (PANEPROPS I.V.) PREVPANE) (GO
$$OUT)))))
(PUTPROPS ALLBUTTONSUP MACRO (NIL (ZEROP (LOGAND 7 LASTMOUSEBUTTONS))))
(PUTPROP (QUOTE TEDIT-WINDOW) (QUOTE IMPORTDATE) (IDATE "18-Sep-2025 23:09:24"))
(PUTPROP (QUOTE TEDIT-BUTTONS) (QUOTE IMPORTDATE) (IDATE "30-Apr-2025 14:09:18"))
(PUTPROP (QUOTE TEDIT-MENU) (QUOTE IMPORTDATE) (IDATE "10-Sep-2025 17:08:43"))
(PUTPROP (QUOTE TEDIT-WINDOW) (QUOTE IMPORTDATE) (IDATE "19-Oct-2025 15:13:01"))
(PUTPROP (QUOTE TEDIT-BUTTONS) (QUOTE IMPORTDATE) (IDATE "19-Oct-2025 10:44:18"))
(PUTPROP (QUOTE TEDIT-MENU) (QUOTE IMPORTDATE) (IDATE "19-Oct-2025 15:14:00"))
(PUTPROP (QUOTE TEDIT-FIND) (QUOTE IMPORTDATE) (IDATE "21-Apr-2025 22:42:57"))
(RPAQQ \TEDIT.TTCCODES ((NONE 0) (CHARDELETE 1) (WORDDELETE 2) (DELETE 3) (FUNCTIONCALL 4) (REDO 5) (
UNDO 6) (CMD 7) (NEXT 8) (EXPAND 9) (CHARDELETE.FORWARD 10) (WORDDELETE.FORWARD 11) (PUNCT 20) (TEXT
@@ -657,7 +659,7 @@ REGIONPARENT FULLXPOINTER) (* ; "The parent node for this box, for sub-boxes") R
$$VALUES)) (PROG1 (CAR $$VALUES) (\,@ (FOR V IN (CAR ARGS) collect (COND (V (BQUOTE (SETQ (\, V) (POP
$$VALUES)))) (T (BQUOTE (SETQ $$VALUES (CDR $$VALUES))))))))))))
(PUTPROPS TEDIT.VALUES MACRO (ARGS (BQUOTE (LIST (\,@ ARGS)))))
(PUTPROP (QUOTE TEDIT-PAGE) (QUOTE IMPORTDATE) (IDATE "19-Sep-2025 22:09:03"))
(PUTPROP (QUOTE TEDIT-PAGE) (QUOTE IMPORTDATE) (IDATE "27-Sep-2025 16:25:26"))
(PUTPROP (QUOTE TEDIT-ABBREV) (QUOTE IMPORTDATE) (IDATE " 6-Sep-2025 00:10:45"))
(PUTPROP (QUOTE TEDIT-TFBRAVO) (QUOTE IMPORTDATE) (IDATE " 7-Sep-2025 11:11:43"))
(DECLARE%: DONTCOPY