1
0
mirror of synced 2026-01-12 00:42:56 +00:00

Merge branch 'master' into rmk144--Reduce-INFILEPs-in-FONT-lookup

This commit is contained in:
rmkaplan 2025-12-04 18:04:59 -08:00
commit 707a415b35
19 changed files with 2117 additions and 2273 deletions

View File

@ -1,18 +1,21 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED " 5-Dec-2023 00:44:13" {WMEDLEY}<library>sketch>SKETCH.;5 491114
(FILECREATED "30-Nov-2025 10:10:57" {WMEDLEY}<library>SKETCH>SKETCH.;11 493235
:EDIT-BY rmk
:CHANGES-TO (VARS SKETCHCOMS)
(FNS UPDATE-SKETCH EDIT-SKETCH)
:PREVIOUS-DATE "19-Oct-2023 23:55:27" {WMEDLEY}<library>sketch>SKETCH.;4)
:PREVIOUS-DATE " 8-Nov-2025 12:19:12" {WMEDLEY}<library>SKETCH>SKETCH.;10)
(PRETTYCOMPRINT SKETCHCOMS)
(RPAQQ SKETCHCOMS
[[DECLARE%: FIRST DOCOPY DONTEVAL@LOAD
[(FILES (SYSLOAD)
TEDIT)
[DECLARE%: FIRST DOCOPY DONTEVAL@LOAD
(P (PROG ((NOTECARDSFLG (GETPROP 'NOTECARDS 'FILEDATES))
(SKETCHFLG (AND (BOUNDP 'ALL.SKETCHES)
ALL.SKETCHES))
@ -48,17 +51,16 @@ To abort loading the new version of Sketch, type '^'."]
(FNS SKETCH SKETCH.FROM.A.FILE SKETCHW.CREATE SKETCH.RESET SKETCHW.FIG.CHANGED
SK.WINDOW.TITLE EDITSLIDE EDITSKETCH SK.PUT.ON.FILE SK.OUTPUT.FILE.NAME SKETCH.PUT
SK.GET.FROM.FILE SK.INCLUDE.FILE SK.GET.IMAGEOBJ.FROM.FILE SKETCH.GET
ADD.SKETCH.TO.VIEWER FILENAMELESSVERSION SK.ADD.ELEMENTS.TO.SKETCH SKETCH.SET.A.DEFAULT
SK.POPUP.SELECTIONFN GETSKETCHWREGION SK.ADD.ELEMENT SK.ADD.PRIORITY.ELEMENT.TO.SKETCH
SK.ELTS.BY.PRIORITY SK.ORDER.ELEMENTS SK.ADD.PRIORITY.LOCAL.ELEMENT.TO.SKETCH
SK.ADD.ELEMENTS SK.CHECK.WHENADDEDFN SK.APPLY.MENU.COMMAND SK.DELETE.ELEMENT1
SK.MARK.DIRTY SK.MARK.UNDIRTY SK.MENU.AND.RETURN.FIELD SKETCH.SET.BRUSH.SHAPE
SKETCH.SET.BRUSH.SIZE SKETCHW.CLOSEFN SK.CONFIRM.DESTRUCTION SKETCHW.OUTFN
SKETCHW.REOPENFN MAKE.LOCAL.SKETCH MAP.SKETCHSPEC.INTO.VIEWER SKETCHW.REPAINTFN
SKETCHW.REPAINTFN1 SK.DRAWFIGURE.IF SKETCHW.SCROLLFN SKETCHW.RESHAPEFN
SK.UPDATE.EVENT.SELECTION LIGHTGRAYWINDOW SK.ADD.SPACES SK.SKETCH.MENU
SK.CHECK.IMAGEOBJ.WHENDELETEDFN SK.APPLY.IMAGEOBJ.WHENDELETEDFN SK.RETURN.TTY
SK.TAKE.TTY)
ADD.SKETCH.TO.VIEWER SK.ADD.ELEMENTS.TO.SKETCH SKETCH.SET.A.DEFAULT SK.POPUP.SELECTIONFN
GETSKETCHWREGION SK.ADD.ELEMENT SK.ADD.PRIORITY.ELEMENT.TO.SKETCH SK.ELTS.BY.PRIORITY
SK.ORDER.ELEMENTS SK.ADD.PRIORITY.LOCAL.ELEMENT.TO.SKETCH SK.ADD.ELEMENTS
SK.CHECK.WHENADDEDFN SK.APPLY.MENU.COMMAND SK.DELETE.ELEMENT1 SK.MARK.DIRTY
SK.MARK.UNDIRTY SK.MENU.AND.RETURN.FIELD SKETCH.SET.BRUSH.SHAPE SKETCH.SET.BRUSH.SIZE
SKETCHW.CLOSEFN SK.CONFIRM.DESTRUCTION SKETCHW.OUTFN SKETCHW.REOPENFN MAKE.LOCAL.SKETCH
MAP.SKETCHSPEC.INTO.VIEWER SKETCHW.REPAINTFN SKETCHW.REPAINTFN1 SK.DRAWFIGURE.IF
SKETCHW.SCROLLFN SKETCHW.RESHAPEFN SK.UPDATE.EVENT.SELECTION LIGHTGRAYWINDOW
SK.ADD.SPACES SK.SKETCH.MENU SK.CHECK.IMAGEOBJ.WHENDELETEDFN
SK.APPLY.IMAGEOBJ.WHENDELETEDFN SK.RETURN.TTY SK.TAKE.TTY)
(COMS (* ;
 "fns for dealing with the sketch menu")
(FNS SKETCH.COMMANDMENU SKETCH.COMMANDMENU.ITEMS CREATE.SKETCHW.COMMANDMENU
@ -242,6 +244,8 @@ To abort loading the new version of Sketch, type '^'."]
"Reads a file name and opens a sketch window onto the sketch it contains."
]
(VARS (BackgroundMenu))
(COMS (VARS SKETCHFILES)
(FNS UPDATE-SKETCH EDIT-SKETCH))
(FILES SKETCH-OPS SKETCH-ELEMENTS SKETCH-EDIT SKETCH-OBJ SKETCH-BMELT)
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY (FILES (LOADCOMP)
SKETCH-OPS SKETCH-ELEMENTS SKETCH-OBJ
@ -260,13 +264,6 @@ To abort loading the new version of Sketch, type '^'."]
(MACROS SK.SET.RECORD.LENGTHS.MACRO)
(GLOBALVARS SKETCH.RECORD.LENGTHS)
(P (SK.SET.RECORD.LENGTHS)))
[COMS (* ;
 "to correct for a bug in the file package that marks LOADCOMPed file as changed")
(P (UNMARKASCHANGED 'SKETCH 'FILE)
(UNMARKASCHANGED 'SKETCH-ELEMENTS 'FILE)
(UNMARKASCHANGED 'SKETCH-OPS 'FILE)
(UNMARKASCHANGED 'SKETCH-EDIT 'FILE)
(UNMARKASCHANGED 'SKETCH-OBJ 'FILE]
(COMS (* ;
 "add sketch as option to file browser edit command")
(FNS SK.ADD.EDIT.COMMAND.TO.FILE.BROWSER)
@ -275,6 +272,9 @@ To abort loading the new version of Sketch, type '^'."]
(NLAML)
(LAMA SK.UNIONREGIONS
SKETCH.CREATE])
(FILESLOAD (SYSLOAD)
TEDIT)
(DECLARE%: FIRST DOCOPY DONTEVAL@LOAD
[PROG ((NOTECARDSFLG (GETPROP 'NOTECARDS 'FILEDATES))
@ -437,12 +437,13 @@ To abort loading the new version of Sketch, type '^'."]
(RETURN NEWNAME])
(SK.OUTPUT.FILE.NAME
[LAMBDA (SKETCHFILENAME) (* rrb " 5-May-86 10:45")
[LAMBDA (SKETCHFILENAME) (* ; "Edited 3-Nov-2025 15:05 by rmk")
(* rrb " 5-May-86 10:45")
(COND
((STRPOS " " SKETCHFILENAME) (* don't put up dummy names that
 contain spaces)
((STRPOS " " SKETCHFILENAME) (* ;
 "don't put up dummy names that contain spaces")
NIL)
(T (FILENAMELESSVERSION SKETCHFILENAME])
(T (PACKFILENAME 'VERSION NIL 'BODY SKETCHFILENAME])
(SKETCH.PUT
[LAMBDA (FILENAME SKETCH VIEWER REGION SCALE GRID) (* ; "Edited 1-Feb-2022 09:17 by rmk")
@ -640,13 +641,6 @@ To abort loading the new version of Sketch, type '^'."]
(GETSKETCHPROP TOSKETCH 'VIEWS])
(PUTSKETCHPROP TOSKETCH SKPROP (GETSKETCHPROP ADDSKETCH SKPROP])
(FILENAMELESSVERSION
[LAMBDA (FILENAME) (* rrb "29-Jan-86 15:57")
(* strips the version number off of FILENAME if it has one.)
(PACKFILENAME (CONS 'VERSION (CONS NIL (UNPACKFILENAME FILENAME])
(SK.ADD.ELEMENTS.TO.SKETCH
[LAMBDA (ELTS SKW) (* rrb "10-Mar-86 16:50")
(* adds a list of elements to a sketch)
@ -659,7 +653,9 @@ To abort loading the new version of Sketch, type '^'."]
(SK.ADD.ELEMENT ELT SKW])
(SKETCH.SET.A.DEFAULT
[LAMBDA (SKW) (* rrb "14-Jul-86 13:43")
[LAMBDA (SKW) (* ; "Edited 6-Nov-2025 22:34 by rmk")
(* rrb "14-Jul-86 13:43")
(* ; "allows the user to set a default")
(* allows the user to set a default)
(\CURSOR.IN.MIDDLE.MENU (create MENU
ITEMS _ '[(Line SKETCH.SET.BRUSH.SIZE
@ -673,7 +669,8 @@ To abort loading the new version of Sketch, type '^'."]
(Add% arrowhead SK.SET.LINE.ARROWHEAD
"Sets the arrowhead characteristics of new lines."
)
("Mouse line specs" SK.SET.LINE.LENGTH.MODE
("Mouse line specs" SK.SET.LINE.LENGTH.MODE
"Sets whether the lines drawn with the middle mouse button connect to each other."
)))
(Arrowhead SK.SET.ARROWHEAD.LENGTH
@ -715,7 +712,8 @@ To abort loading the new version of Sketch, type '^'."]
(SUBITEMS ("Clockwise" SK.SET.ARC.DIRECTION.CW
"Makes new arcs go around in the clockwise direction"
)
("Counterclockwise" SK.SET.ARC.DIRECTION.CCW
("Counterclockwise" SK.SET.ARC.DIRECTION.CCW
"Makes new arcs go around in the counterclockwise direction"
)))
("Input scale" SK.SET.INPUT.SCALE
@ -740,7 +738,8 @@ To abort loading the new version of Sketch, type '^'."]
This will be slow for arcs and curves."]
CENTERFLG _ T
WHENSELECTEDFN _ (FUNCTION SK.POPUP.SELECTIONFN)
MENUFONT _ (SK.FONTNAMELIST (FONTCREATE BOLDFONT])
MENUFONT _ (FONTPROP (FONTCREATE BOLDFONT)
'SPEC])
(SK.POPUP.SELECTIONFN
[LAMBDA (ITEM MENU) (* rrb " 3-Sep-85 14:27")
@ -1348,12 +1347,13 @@ This will be slow for arcs and curves."]
(DEFINEQ
(SKETCH.COMMANDMENU
[LAMBDA (ITEMS TITLE) (* rrb "14-Jul-86 13:43")
[LAMBDA (ITEMS TITLE) (* ; "Edited 6-Nov-2025 22:36 by rmk")
(* rrb "14-Jul-86 13:43")
(create MENU
ITEMS _ ITEMS
CENTERFLG _ T
WHENSELECTEDFN _ (FUNCTION SKETCHW.SELECTIONFN)
MENUFONT _ (SK.FONTNAMELIST (FONTCREATE BOLDFONT))
MENUFONT _ (FONTCREATE BOLDFONT)
TITLE _ TITLE])
(SKETCH.COMMANDMENU.ITEMS
@ -6657,10 +6657,9 @@ This will be slow for arcs and curves."))
(DEFINEQ
(SKETCH.TITLE
[LAMBDA (SKW) (* rrb " 5-May-86 13:19")
(* gets the title of the sketch being edited in SKW.)
[LAMBDA (SKW) (* rrb " 5-May-86 13:19")
(* gets the title of the sketch being
 edited in SKW.)
(fetch (SKETCH SKETCHNAME) of (INSURE.SKETCH SKW])
(SK.SHRINK.ICONCREATE
@ -8594,6 +8593,43 @@ Otherwise, type '^'.")
(RPAQQ BackgroundMenu NIL)
(RPAQQ SKETCHFILES (SKETCH SKETCH-OPS SKETCH-ELEMENTS SKETCH-EDIT SKETCH-OBJ SKETCH-BMELT))
(DEFINEQ
(UPDATE-SKETCH
[LAMBDA (FILES LDFLG) (* ; "Edited 30-Nov-2025 10:09 by rmk")
(* ; "Edited 9-Mar-2025 19:17 by rmk")
(* ; "Edited 7-Mar-2025 23:40 by rmk")
(* ; "Edited 26-Oct-2022 21:10 by rmk")
(* ; "Edited 16-Feb-2025 11:25 by rmk")
(* ;;
 "Loads compiled TEDITFILES that were compiled on sources different from the currently loaded files.")
(CL:UNLESS LDFLG
(SETQ LDFLG 'SYSLOAD))
(for F CF in (OR FILES SKETCHFILES) when (SETQ CF (FINDFILE-WITH-EXTENSIONS F NIL
*COMPILED-EXTENSIONS*))
unless (thereis LF TCF in LOADEDFILELST first (SETQ TCF (TRUEFILENAME CF))
suchthat (STRING.EQUAL TCF (TRUEFILENAME LF))) do (LOAD CF LDFLG])
(EDIT-SKETCH
[LAMBDA NIL (* ; "Edited 30-Nov-2025 10:10 by rmk")
(* ; "Edited 7-Mar-2025 22:53 by rmk")
(* ; "Edited 3-Jul-2023 13:44 by rmk")
(* ; "Edited 17-Jun-2023 10:00 by rmk")
(* ; "Edited 25-Apr-2023 17:39 by rmk")
(* ; "Edited 26-Oct-2022 21:12 by rmk")
(* ; "Edited 14-Sep-2022 08:37 by rmk")
(BKSYSBUF " ")
(RESETLST
(RESETSAVE LOADDBFLG 'YES)
(UPDATE-SKETCH SKETCHFILES)
(FOR F IN SKETCHFILES DO (LOADFROM F)
(LOADCOMP F)))
(%. ANALYZE ON IN SKETCHFILES])
)
(FILESLOAD SKETCH-OPS SKETCH-ELEMENTS SKETCH-EDIT SKETCH-OBJ SKETCH-BMELT)
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY
@ -8723,21 +8759,6 @@ Otherwise, type '^'.")
(* ; "to correct for a bug in the file package that marks LOADCOMPed file as changed")
(UNMARKASCHANGED 'SKETCH 'FILE)
(UNMARKASCHANGED 'SKETCH-ELEMENTS 'FILE)
(UNMARKASCHANGED 'SKETCH-OPS 'FILE)
(UNMARKASCHANGED 'SKETCH-EDIT 'FILE)
(UNMARKASCHANGED 'SKETCH-OBJ 'FILE)
(* ; "add sketch as option to file browser edit command")
(DEFINEQ
@ -8768,149 +8789,150 @@ Otherwise, type '^'.")
(ADDTOVAR LAMA SK.UNIONREGIONS SKETCH.CREATE)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (22176 85539 (SKETCH 22186 . 24291) (SKETCH.FROM.A.FILE 24293 . 24608) (SKETCHW.CREATE
24610 . 29184) (SKETCH.RESET 29186 . 30708) (SKETCHW.FIG.CHANGED 30710 . 31050) (SK.WINDOW.TITLE 31052
. 31439) (EDITSLIDE 31441 . 31847) (EDITSKETCH 31849 . 32173) (SK.PUT.ON.FILE 32175 . 33627) (
SK.OUTPUT.FILE.NAME 33629 . 34003) (SKETCH.PUT 34005 . 36903) (SK.GET.FROM.FILE 36905 . 37798) (
SK.INCLUDE.FILE 37800 . 40308) (SK.GET.IMAGEOBJ.FROM.FILE 40310 . 42513) (SKETCH.GET 42515 . 42822) (
ADD.SKETCH.TO.VIEWER 42824 . 45410) (FILENAMELESSVERSION 45412 . 45688) (SK.ADD.ELEMENTS.TO.SKETCH
45690 . 46204) (SKETCH.SET.A.DEFAULT 46206 . 53364) (SK.POPUP.SELECTIONFN 53366 . 53908) (
GETSKETCHWREGION 53910 . 54116) (SK.ADD.ELEMENT 54118 . 55697) (SK.ADD.PRIORITY.ELEMENT.TO.SKETCH
55699 . 57093) (SK.ELTS.BY.PRIORITY 57095 . 57391) (SK.ORDER.ELEMENTS 57393 . 57660) (
SK.ADD.PRIORITY.LOCAL.ELEMENT.TO.SKETCH 57662 . 59156) (SK.ADD.ELEMENTS 59158 . 59682) (
SK.CHECK.WHENADDEDFN 59684 . 60414) (SK.APPLY.MENU.COMMAND 60416 . 61214) (SK.DELETE.ELEMENT1 61216 .
62794) (SK.MARK.DIRTY 62796 . 63462) (SK.MARK.UNDIRTY 63464 . 63795) (SK.MENU.AND.RETURN.FIELD 63797
. 64462) (SKETCH.SET.BRUSH.SHAPE 64464 . 65049) (SKETCH.SET.BRUSH.SIZE 65051 . 65557) (
SKETCHW.CLOSEFN 65559 . 67350) (SK.CONFIRM.DESTRUCTION 67352 . 68351) (SKETCHW.OUTFN 68353 . 68617) (
SKETCHW.REOPENFN 68619 . 69031) (MAKE.LOCAL.SKETCH 69033 . 69763) (MAP.SKETCHSPEC.INTO.VIEWER 69765 .
70975) (SKETCHW.REPAINTFN 70977 . 71805) (SKETCHW.REPAINTFN1 71807 . 72746) (SK.DRAWFIGURE.IF 72748 .
73270) (SKETCHW.SCROLLFN 73272 . 77465) (SKETCHW.RESHAPEFN 77467 . 79725) (SK.UPDATE.EVENT.SELECTION
79727 . 81782) (LIGHTGRAYWINDOW 81784 . 81947) (SK.ADD.SPACES 81949 . 82695) (SK.SKETCH.MENU 82697 .
83019) (SK.CHECK.IMAGEOBJ.WHENDELETEDFN 83021 . 83873) (SK.APPLY.IMAGEOBJ.WHENDELETEDFN 83875 . 84835)
(SK.RETURN.TTY 84837 . 85205) (SK.TAKE.TTY 85207 . 85537)) (85593 108921 (SKETCH.COMMANDMENU 85603 .
85940) (SKETCH.COMMANDMENU.ITEMS 85942 . 106025) (CREATE.SKETCHW.COMMANDMENU 106027 . 106447) (
SKETCHW.SELECTIONFN 106449 . 107552) (SKETCH.MONITORLOCK 107554 . 108025) (SK.EVAL.AS.PROCESS 108027
. 108640) (SK.EVAL.WITH.LOCK 108642 . 108919)) (108922 116726 (SK.FIX.MENU 108932 . 110026) (
SK.SET.UP.MENUS 110028 . 112329) (SK.INSURE.HAS.MENU 112331 . 112993) (SK.CREATE.STANDARD.MENU 112995
. 113440) (SK.ADD.ITEM.TO.MENU 113442 . 114117) (SK.GET.VIEWER.POPUP.MENU 114119 . 116320) (
SK.CLEAR.POPUP.MENU 116322 . 116724)) (116782 125604 (SKETCH.CREATE 116792 . 117578) (GETSKETCHPROP
117580 . 120637) (PUTSKETCHPROP 120639 . 124571) (CREATE.DEFAULT.SKETCH.CONTEXT 124573 . 125602)) (
125770 148666 (SK.COPY.BUTTONEVENTFN 125780 . 137008) (SK.BUTTONEVENT.MARK 137010 . 137393) (
SK.BUILD.IMAGEOBJ 137395 . 147310) (SK.BUTTONEVENT.OVERP 147312 . 147935) (SK.BUTTONEVENT.SAME.KEYS
147937 . 148664)) (148945 174760 (SK.SEL.AND.CHANGE 148955 . 149247) (SK.CHECK.WHENCHANGEDFN 149249 .
149955) (SK.CHECK.PRECHANGEFN 149957 . 150558) (SK.CHANGE.ELT 150560 . 150752) (SK.CHANGE.THING 150754
. 152005) (SKETCH.CHANGE.ELEMENTS 152007 . 153190) (SK.APPLY.SINGLE.CHANGEFN 153192 . 153765) (
SK.DO.CHANGESPECS 153767 . 155426) (SK.VIEWER.FROM.SKETCH.ARG 155428 . 155870) (SK.DO.CHANGESPEC1
155872 . 157747) (SK.CHANGEFN 157749 . 158329) (SK.READCHANGEFN 158331 . 158790) (SK.DEFAULT.CHANGEFN
158792 . 161264) (CHANGEABLEFIELDITEMS 161266 . 161913) (SK.APPLY.CHANGE.COMMAND 161915 . 162532) (
SK.DO.AND.RECORD.CHANGES 162534 . 163931) (SK.APPLY.CHANGE.COMMAND1 163933 . 165421) (
SK.ELEMENTS.CHANGEFN 165423 . 167747) (READ.POINT.TO.ADD 167749 . 168693) (GLOBAL.KNOT.FROM.LOCAL
168695 . 169155) (SK.ADD.KNOT.TO.ELEMENT 169157 . 170101) (SK.GROUP.CHANGEFN 170103 . 171315) (
SK.GROUP.CHANGEFN1 171317 . 174758)) (174927 188660 (ADD.ELEMENT.TO.SKETCH 174937 . 176643) (
ADD.SKETCH.VIEWER 176645 . 177313) (REMOVE.SKETCH.VIEWER 177315 . 177928) (ALL.SKETCH.VIEWERS 177930
. 178170) (SKETCH.ALL.VIEWERS 178172 . 178432) (VIEWER.BUCKET 178434 . 178585) (ELT.INSIDE.REGION?
178587 . 178914) (ELT.INSIDE.SKWP 178916 . 179207) (SCALE.FROM.SKW 179209 . 179459) (
SK.ADDELT.TO.WINDOW 179461 . 180321) (SK.CALC.REGION.VIEWED 180323 . 180701) (SK.DRAWFIGURE 180703 .
181992) (SK.DRAWFIGURE1 181994 . 182378) (SK.LOCAL.FROM.GLOBAL 182380 . 183615) (SKETCH.REGION.VIEWED
183617 . 186304) (SKETCH.VIEW.FROM.NAME 186306 . 186736) (SK.UPDATE.REGION.VIEWED 186738 . 187130) (
SKETCH.ADD.AND.DISPLAY 187132 . 187540) (SKETCH.ADD.AND.DISPLAY1 187542 . 187980) (SK.ADD.ITEM 187982
. 188314) (SKETCHW.ADD.INSTANCE 188316 . 188658)) (188701 201889 (SK.SEL.AND.DELETE 188711 . 189099)
(SK.ERASE.AND.DELETE.ITEM 189101 . 189520) (REMOVE.ELEMENT.FROM.SKETCH 189522 . 190633) (
SK.DELETE.ELEMENT 190635 . 191193) (SK.DELETE.ELEMENT2 191195 . 191856) (SK.DELETE.KNOT 191858 .
192149) (SK.SEL.AND.DELETE.KNOT 192151 . 193276) (SK.DELETE.ELEMENT.KNOT 193278 . 196485) (
SK.CHECK.WHENDELETEDFN 196487 . 197267) (SK.CHECK.PREEDITFN 197269 . 197753) (
SK.CHECK.END.INITIAL.EDIT 197755 . 198289) (SK.CHECK.WHENPOINTDELETEDFN 198291 . 199087) (SK.ERASE.ELT
199089 . 199425) (SK.DELETE.ELT 199427 . 199802) (SK.DELETE.ITEM 199804 . 200212) (DELFROMTCONC
200214 . 201887)) (201928 215762 (SK.COPY.ELT 201938 . 202308) (SK.SEL.AND.COPY 202310 . 202693) (
SK.COPY.ELEMENTS 202695 . 208323) (SK.ADD.COPY.OF.ELEMENTS 208325 . 210092) (
SK.GLOBAL.FROM.LOCAL.ELEMENTS 210094 . 210334) (SK.COPY.ITEM 210336 . 211133) (SK.INSERT.SKETCH 211135
. 215760)) (215802 245823 (SK.MOVE.ELT 215812 . 216087) (SK.MOVE.ELT.OR.PT 216089 . 216402) (
SK.APPLY.DEFAULT.MOVE 216404 . 216838) (SK.SEL.AND.MOVE 216840 . 217387) (SK.MOVE.ELEMENTS 217389 .
228261) (SKETCH.MOVE.ELEMENTS 228263 . 230194) (SKETCH.COPY.ELEMENTS 230196 . 232243) (
\SKETCH.COPY.ELEMENT 232245 . 232970) (SK.TRANSLATE.ELEMENT 232972 . 233455) (SK.COPY.GLOBAL.ELEMENT
233457 . 233668) (SK.MAKE.ELEMENT.MOVE.ARG 233670 . 234290) (SK.MAKE.ELEMENTS.MOVE.ARG 234292 . 234814
) (SK.MAKE.POINTS.AND.ELEMENTS.MOVE.ARG 234816 . 235885) (SK.SHOW.FIG.FROM.INFO 235887 . 236255) (
SK.MOVE.THING 236257 . 237163) (UPDATE.ELEMENT.IN.SKETCH 237165 . 239220) (SK.UPDATE.ELEMENT 239222 .
240781) (SK.UPDATE.ELEMENTS 240783 . 241502) (SK.UPDATE.ELEMENT1 241504 . 245404) (
SK.MOVE.ELEMENT.POINT 245406 . 245821)) (245886 268175 (SK.MOVE.POINTS 245896 . 246183) (
SK.SEL.AND.MOVE.POINTS 246185 . 246490) (SK.DO.MOVE.ELEMENT.POINTS 246492 . 255149) (
SK.MOVE.ITEM.POINTS 255151 . 256822) (SK.TRANSLATEPTSFN 256824 . 257208) (SK.TRANSLATE.POINTS 257210
. 258111) (SK.SELECT.MULTIPLE.POINTS 258113 . 263753) (SK.CONTROL.POINTS.IN.REGION 263755 . 265176) (
SK.ADD.PT.SELECTION 265178 . 265642) (SK.REMOVE.PT.SELECTION 265644 . 266261) (SK.ADD.POINT 266263 .
266886) (SK.ELTS.CONTAINING.PTS 266888 . 267513) (SK.HOTSPOTS.NOT.ON.LIST 267515 . 268173)) (268333
271129 (SK.SET.MOVE.MODE 268343 . 269014) (SK.SET.MOVE.MODE.POINTS 269016 . 269355) (
SK.SET.MOVE.MODE.ELEMENTS 269357 . 269701) (SK.SET.MOVE.MODE.COMBINED 269703 . 270053) (READMOVEMODE
270055 . 271127)) (271130 289885 (SK.ALIGN.POINTS 271140 . 271430) (SK.SEL.AND.ALIGN.POINTS 271432 .
271741) (SK.ALIGN.POINTS.LEFT 271743 . 272046) (SK.ALIGN.POINTS.RIGHT 272048 . 272353) (
SK.ALIGN.POINTS.TOP 272355 . 272656) (SK.ALIGN.POINTS.BOTTOM 272658 . 272965) (
SK.EVEN.SPACE.POINTS.IN.X 272967 . 273287) (SK.EVEN.SPACE.POINTS.IN.Y 273289 . 273609) (
SK.DO.ALIGN.POINTS 273611 . 284233) (SK.NTH.CONTROL.POINT 284235 . 284696) (
SK.GET.SELECTED.ELEMENT.STRUCTURE 284698 . 285364) (SK.CORRESPONDING.CONTROL.PT 285366 . 285920) (
SK.CONTROL.POINT.NUMBER 285922 . 286292) (SK.DO.ALIGN.SETVALUE 286294 . 289883)) (289949 303381 (
SKETCH.CREATE.GROUP 289959 . 290448) (SK.CREATE.GROUP1 290450 . 290997) (SK.UPDATE.GROUP.AFTER.CHANGE
290999 . 291788) (SK.GROUP.ELTS 291790 . 292071) (SK.SEL.AND.GROUP 292073 . 292459) (SK.GROUP.ELEMENTS
292461 . 294110) (SK.UNGROUP.ELT 294112 . 294396) (SK.SEL.AND.UNGROUP 294398 . 296067) (
SK.UNGROUP.ELEMENT 296069 . 297005) (SK.GLOBAL.REGION.OF.LOCAL.ELEMENTS 297007 . 297929) (
SK.LOCAL.REGION.OF.LOCAL.ELEMENTS 297931 . 298942) (SK.GLOBAL.REGION.OF.GLOBAL.ELEMENTS 298944 .
300284) (SK.UNIONREGIONS 300286 . 302652) (SKETCH.REGION.OF.SKETCH 302654 . 303070) (SK.FLASHREGION
303072 . 303379)) (303382 316853 (INIT.GROUP.ELEMENT 303392 . 304264) (GROUP.DRAWFN 304266 . 304716) (
GROUP.EXPANDFN 304718 . 306281) (GROUP.INSIDEFN 306283 . 306692) (GROUP.REGIONFN 306694 . 307089) (
GROUP.GLOBALREGIONFN 307091 . 307409) (GROUP.TRANSLATEFN 307411 . 309443) (GROUP.TRANSFORMFN 309445 .
312925) (GROUP.READCHANGEFN 312927 . 316851)) (316854 317862 (REGION.CENTER 316864 . 317465) (
REMOVE.LAST 317467 . 317860)) (317915 323022 (SK.MOVE.GROUP.CONTROL.PT 317925 . 318216) (
SK.SEL.AND.MOVE.CONTROL.PT 318218 . 319622) (SK.MOVE.GROUP.ELEMENT.CONTROL.POINT 319624 . 321697) (
SK.READ.NEW.GROUP.CONTROL.PT 321699 . 323020)) (323281 327905 (SK.DO.GROUP 323291 . 324743) (
SK.CHECK.WHENGROUPEDFN 324745 . 325455) (SK.DO.UNGROUP 325457 . 326662) (SK.CHECK.WHENUNGROUPEDFN
326664 . 327251) (SK.GROUP.UNDO 327253 . 327576) (SK.UNGROUP.UNDO 327578 . 327903)) (328146 333068 (
SK.FREEZE.ELTS 328156 . 328440) (SK.SEL.AND.FREEZE 328442 . 328832) (SK.FREEZE.ELEMENTS 328834 .
329385) (SK.UNFREEZE.ELT 329387 . 329676) (SK.SEL.AND.UNFREEZE 329678 . 331214) (SK.UNFREEZE.ELEMENTS
331216 . 331775) (SK.FREEZE.UNDO 331777 . 332022) (SK.UNFREEZE.UNDO 332024 . 332271) (SK.DO.FREEZE
332273 . 332666) (SK.DO.UNFREEZE 332668 . 333066)) (333298 343108 (SKETCH.ELEMENTS.OF.SKETCH 333308 .
334143) (SKETCH.LIST.OF.ELEMENTS 334145 . 334863) (SKETCH.ADD.ELEMENT 334865 . 335940) (
SKETCH.DELETE.ELEMENT 335942 . 337674) (DELFROMGROUPELT 337676 . 338476) (SKETCH.ELEMENT.TYPE 338478
. 338827) (SKETCH.ELEMENT.CHANGED 338829 . 340397) (SK.ELEMENT.CHANGED1 340399 . 341050) (
SK.UPDATE.GLOBAL.IMAGE.OBJECT.ELEMENT 341052 . 343106)) (343162 347774 (INSURE.SKETCH 343172 . 345787)
(LOCALSPECS.FROM.VIEWER 345789 . 346149) (SK.LOCAL.ELT.FROM.GLOBALPART 346151 . 346619) (
SKETCH.FROM.VIEWER 346621 . 346855) (INSPECT.SKETCH 346857 . 347182) (ELT.INSIDE.SKETCHWP 347184 .
347457) (SK.INSIDE.REGION 347459 . 347772)) (347775 352105 (MAPSKETCHSPECS 347785 . 348406) (
MAPCOLLECTSKETCHSPECS 348408 . 349157) (MAPSKETCHSPECSUNTIL 349159 . 349967) (MAPGLOBALSKETCHSPECS
349969 . 350670) (MAPGLOBALSKETCHELEMENTS 350672 . 352103)) (352167 378059 (SK.ADD.SELECTION 352177 .
352917) (SK.COPY.INSERTFN 352919 . 356550) (SCREENELEMENTP 356552 . 357025) (SK.ITEM.REGION 357027 .
357514) (SK.ELEMENT.GLOBAL.REGION 357516 . 358044) (SK.LOCAL.ITEMS.IN.REGION 358046 . 360025) (
SK.REGIONFN 360027 . 360349) (SK.GLOBAL.REGIONFN 360351 . 360709) (SK.REMOVE.SELECTION 360711 . 361439
) (SK.SELECT.MULTIPLE.ITEMS 361441 . 371883) (SKETCH.GET.ELEMENTS 371885 . 373308) (SK.PUT.MARKS.UP
373310 . 373649) (SK.TAKE.MARKS.DOWN 373651 . 373990) (SK.TRANSLATE.GLOBALPART 373992 . 376119) (
SK.TRANSLATE.ITEM 376121 . 377048) (SK.TRANSLATEFN 377050 . 377246) (TRANSLATE.SKETCH 377248 . 378057)
) (378325 381232 (SK.INPUT.SCALE 378335 . 379182) (SK.UPDATE.SKETCHCONTEXT 379184 . 379781) (
SK.SET.INPUT.SCALE 379783 . 380432) (SK.SET.INPUT.SCALE.CURRENT 380434 . 380725) (
SK.SET.INPUT.SCALE.VALUE 380727 . 381230)) (381283 383195 (SK.SET.FEEDBACK.MODE 381293 . 382599) (
SK.SET.FEEDBACK.POINT 382601 . 382769) (SK.SET.FEEDBACK.VERBOSE 382771 . 382940) (
SK.SET.FEEDBACK.ALWAYS 382942 . 383193)) (383346 384623 (SKETCH.TITLE 383356 . 383619) (
SK.SHRINK.ICONCREATE 383621 . 384621)) (390313 393127 (READBRUSHSHAPE 390323 . 390782) (READ.FUNCTION
390784 . 391299) (READBRUSHSIZE 391301 . 391759) (READANGLE 391761 . 392253) (READARCDIRECTION 392255
. 393125)) (393128 403539 (SK.CHANGE.DASHING 393138 . 397086) (READ.AND.SAVE.NEW.DASHING 397088 .
398856) (READ.NEW.DASHING 398858 . 400598) (READ.DASHING.CHANGE 400600 . 402075) (SK.CACHE.DASHING
402077 . 403079) (SK.DASHING.LABEL 403081 . 403537)) (403540 407245 (READ.FILLING.CHANGE 403550 .
405531) (SK.CACHE.FILLING 405533 . 406251) (READ.AND.SAVE.NEW.FILLING 406253 . 406851) (
SK.FILLING.LABEL 406853 . 407243)) (407629 443882 (SK.GETGLOBALPOSITION 407639 . 407944) (
SKETCH.TRACK.ELEMENTS 407946 . 411466) (SK.PICKOUT.WHOLE.MOVE.ELEMENTS 411468 . 412027) (
MAP.SKETCH.ELEMENTS.INTO.VIEWER 412029 . 412421) (MAP.GLOBAL.POSITION.INTO.VIEWER 412423 . 412803) (
SKETCH.TO.VIEWER.POSITION 412805 . 413164) (SKETCH.TRACK.IMAGE 413166 . 414020) (SK.TRACK.IMAGE1
414022 . 415434) (MAP.VIEWER.XY.INTO.GLOBAL 415436 . 416430) (SK.SET.POSITION 416432 . 416768) (
MAP.VIEWER.PT.INTO.GLOBAL 416770 . 417876) (VIEWER.TO.SKETCH.POSITION 417878 . 418513) (
SK.INSURE.SCALE 418515 . 418775) (SKETCH.TO.VIEWER.REGION 418777 . 419583) (VIEWER.TO.SKETCH.REGION
419585 . 419923) (SK.READ.POINT.WITH.FEEDBACK 419925 . 430928) (SKETCH.GET.POSITION 430930 . 432810) (
\CLOBBER.POSITION 432812 . 433260) (NEAREST.HOT.SPOT 433262 . 434790) (GETWREGION 434792 . 435553) (
GET.BITMAP.POSITION 435555 . 436339) (SK.TRACK.BITMAP1 436341 . 443880)) (444451 475337 (
SK.BRING.UP.POSITION.PAD 444461 . 450321) (SK.PAD.READER.POSITION 450323 . 451972) (
SK.POSITION.READER.REPAINTFN 451974 . 453758) (SK.POSITION.PAD.FROM.VIEWER 453760 . 455102) (
SK.INIT.POSITION.NUMBER.PAD.MENU 455104 . 455454) (SK.READ.POSITION.PAD.HANDLER 455456 . 461188) (
DISPLAY.POSITION.READER.TOTAL 461190 . 463488) (POSITION.PAD.READER.HANDLER 463490 . 471533) (
POSITIONPAD.HELDFN 471535 . 473019) (\POSITION.PAD.ADD.DIGIT.MENU 473021 . 474600) (
\POSITION.READER.NUMBERPAD 474602 . 475335)) (476963 479641 (SK.DRAWFN 476973 . 477339) (
SK.TRANSFORMFN 477341 . 477722) (SK.EXPANDFN 477724 . 478001) (SK.INPUT 478003 . 478384) (SK.INSIDEFN
478386 . 479026) (SK.UPDATEFN 479028 . 479639)) (485309 489254 (SK.CHECK.SKETCH.VERSION 485319 .
486559) (SK.INSURE.RECORD.LENGTH 486561 . 488044) (SK.INSURE.HAS.LENGTH 488046 . 488784) (
SK.RECORD.LENGTH 488786 . 488960) (SK.SET.RECORD.LENGTHS 488962 . 489252)) (489999 490886 (
SK.ADD.EDIT.COMMAND.TO.FILE.BROWSER 490009 . 490884)))))
(FILEMAP (NIL (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)))))
STOP

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

View File

@ -1,14 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "17-Jul-2025 00:24:49" 
{DSK}<Users>kaplan>Local>medley3.5>working-medley>library>tedit>TEDIT-COMMAND.;165 19015
(FILECREATED " 8-Nov-2025 10:03:19" {WMEDLEY}<library>TEDIT>TEDIT-COMMAND.;166 19030
:EDIT-BY rmk
:CHANGES-TO (FNS \TEDIT.COMMAND.RESET.SETUP)
:CHANGES-TO (FNS \TEDIT.COMMAND.FUNCTION?)
:PREVIOUS-DATE "23-Mar-2025 15:27:20"
{DSK}<Users>kaplan>Local>medley3.5>working-medley>library>tedit>TEDIT-COMMAND.;163)
:PREVIOUS-DATE "17-Jul-2025 00:24:49" {WMEDLEY}<library>TEDIT>TEDIT-COMMAND.;165)
(PRETTYCOMPRINT TEDIT-COMMANDCOMS)
@ -137,7 +135,8 @@
(FSETTOBJ TEXTOBJ EDITOPACTIVE NIL)))])
(\TEDIT.COMMAND.FUNCTION?
[LAMBDA (TSTREAM CHARCODE) (* ; "Edited 23-Mar-2025 15:27 by rmk")
[LAMBDA (TSTREAM CHARCODE) (* ; "Edited 8-Nov-2025 10:00 by rmk")
(* ; "Edited 23-Mar-2025 15:27 by rmk")
(DECLARE (SPECVARS TSTREAM CHARCODE))
(* ;; "If CHARCODE is a function in TSTREAM's read table, execute the function.")
@ -145,7 +144,7 @@
(LET ((TEXTOBJ (GETTSTR TSTREAM TEXTOBJ))
FN)
(DECLARE (SPECVARS TEXTOBJ))
(CL:WHEN [AND (EQ (\TEDIT.TTC FUNCTIONCALL)
(CL:WHEN [AND (EQ (\TEDIT.TTC FN)
(\SYNCODE (fetch READSA of (FGETTOBJ TEXTOBJ TXTRTBL))
CHARCODE))
(SETQ FN (CAR (fetch MACROFN of (GETHASH CHARCODE (fetch READMACRODEFS
@ -303,7 +302,7 @@
(GLOBALVARS || TEDIT.INTERRUPTS)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (2709 10263 (\TEDIT.COMMAND.LOOP 2719 . 9060) (\TEDIT.COMMAND.FUNCTION? 9062 . 10261)) (
10264 18725 (\TEDIT.INTERRUPT.SETUP 10274 . 11921) (\TEDIT.MARKACTIVE 11923 . 12252) (
\TEDIT.MARKINACTIVE 12254 . 12470) (\TEDIT.COMMAND.RESET.SETUP 12472 . 18723)))))
(FILEMAP (NIL (2625 10278 (\TEDIT.COMMAND.LOOP 2635 . 8976) (\TEDIT.COMMAND.FUNCTION? 8978 . 10276)) (
10279 18740 (\TEDIT.INTERRUPT.SETUP 10289 . 11936) (\TEDIT.MARKACTIVE 11938 . 12267) (
\TEDIT.MARKINACTIVE 12269 . 12485) (\TEDIT.COMMAND.RESET.SETUP 12487 . 18738)))))
STOP

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -1,25 +1,23 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "29-Jul-2025 22:01:56" 
{DSK}<Users>kaplan>Local>medley3.5>working-medley>lispusers>TEDIT-PF-SEE.;150 11962
(FILECREATED "12-Nov-2025 15:49:07" {WMEDLEY}<lispusers>TEDIT-PF-SEE.;156 13422
:EDIT-BY rmk
:CHANGES-TO (FNS PF-TEDIT)
:CHANGES-TO (VARS TEDIT-PF-SEECOMS)
:PREVIOUS-DATE "29-Jul-2025 18:07:48"
{DSK}<Users>kaplan>Local>medley3.5>working-medley>lispusers>TEDIT-PF-SEE.;149)
:PREVIOUS-DATE "26-Sep-2025 22:53:59" {WMEDLEY}<lispusers>TEDIT-PF-SEE.;155)
(PRETTYCOMPRINT TEDIT-PF-SEECOMS)
(RPAQQ TEDIT-PF-SEECOMS
[(FNS PF-TEDIT PF-TEDIT-FROM-TEXT)
(COMMANDS ts tf)
(COMMANDS ts tf tc tv tr)
(FILES (SYSLOAD)
REGIONMANAGER VERSIONDEFS)
(ALISTS (TEDIT.CHARACTIONS TEDIT-PF)
(TEDIT.CHARBINDINGS TEDIT-PF))
(ALISTS (TEDIT.CHARACTIONS :TEDIT-PF)
(TEDIT.CHARBINDINGS :TEDIT-PF))
(P (MOVD? 'PFCOPYBYTES 'PFI.MAYBE.PP.DEFINITION)
(MOVD? 'NILL (FUNCTION TEDIT.SETFUNCTION))
(TEDIT.INSTALL.CHARBINDINGS))
@ -29,7 +27,9 @@
(DEFINEQ
(PF-TEDIT
[LAMBDA (FN IFILES VERSION REPRINT) (* ; "Edited 29-Jul-2025 22:01 by rmk")
[LAMBDA (ITEM IFILES VERSION REPRINT TYPE) (* ; "Edited 23-Sep-2025 11:24 by rmk")
(* ; "Edited 20-Sep-2025 08:56 by rmk")
(* ; "Edited 29-Jul-2025 22:01 by rmk")
(* ; "Edited 29-Jun-2025 16:18 by rmk")
(* ; "Edited 14-Apr-2025 22:00 by rmk")
(* ; "Edited 26-Mar-2025 10:08 by rmk")
@ -46,24 +46,24 @@
(* ; "Edited 12-Jan-2022 13:15 by rmk")
(* ; "Edited 30-Dec-2021 23:17 by rmk")
(* ;; "PF* to a read-only TEDIT window. First argument is the function name, second if given is the input file.")
(* ;; "Shows ITEM of type TYPE in a scrollable read-only TEDIT window. First argument is the item name, second if given is the input file.")
(* ;; "This uses PFCOPYBYTES so we see what it looks like on the file. But some functions were not prettyprinted, so they appear as useless garbage.")
(* ;; "In that case, calling again with REPRINT=T will read and reprint. And, invoking tf again with no arguments at all will also reprint the last function in the same window")
(* ;; "Calling again with REPRINT=T (or ITEM=T) will read and reprint the same item. And, calling again with no arguments at all will also reprint the last item in the same window")
(SETQ IFILES (MKLIST IFILES))
(CL:WHEN (LISTP FN)
(SETQ FN (CAR FN)))
(SELECTQ FN
(CL:WHEN (INTERSECTION TYPE '(FNS FUNCTIONS))
(SETQ TYPE NIL))
(CL:WHEN (INTERSECTION TYPE '(FNS FUNCTIONS))
(SETQ TYPE NIL))
(SELECTQ ITEM
((t T NIL)
(SETQ REPRINT T)
(SETQ FN LASTWORD))
(if (VERSIONP FN)
then (SETQ IFILES (CONS FN))
(SETQ FN LASTWORD)
else (SETQ LASTWORD FN)))
(CL:UNLESS FN (ERROR "No function to print"))
(SETQ ITEM LASTWORD))
(if (VERSIONP ITEM)
then (SETQ IFILES (CONS ITEM))
(SETQ ITEM LASTWORD)
else (SETQ LASTWORD ITEM)))
(CL:UNLESS ITEM (ERROR "No function to print"))
(CL:WHEN (AND (VERSIONP IFILES)
(NULL VERSION))
(SETQ VERSION IFILES)
@ -73,91 +73,107 @@
(SETQ REPRINT T)
[SETQ IFILES (LDIFFERENCE IFILES '(t T])
(CL:UNLESS IFILES
(SETQ IFILES (WHEREIS FN '(FNS FUNCTIONS)
T)))
[SETQ IFILES (OR (WHEREIS ITEM TYPE T)
(AND (NULL TYPE)
(WHEREIS ITEM 'MACROS T])
(if IFILES
then (* ; "skip compiled files")
then (for IFILE TSTREAM DEF TFPROP WINDOW inside IFILES
eachtime (SETQ IFILE (if (CL:IF (VERSIONP IFILE)
(FINDFILEVERSION (CAR (WHEREIS ITEM TYPE T))
IFILE)
(FINDFILE IFILE T))
else (printout T "file " IFILE " not found." T)
(GO $$ITERATE))) unless (MEMB (FILENAMEFIELD IFILE
'EXTENSION)
*COMPILED-EXTENSIONS*)
do (CL:UNLESS [SETQ DEF (CL:IF TYPE
(GETDEF ITEM TYPE IFILE 'NOERROR)
(OR (GETDEF ITEM 'FNS IFILE 'NOERROR)
(GETDEF ITEM 'FUNCTIONS IFILE 'NOERROR)
(GETDEF ITEM 'MACROS IFILE 'NOERROR)))]
(printout T ITEM " not found on " IFILE "." T)
(GO $$ITERATE))
(* ;; "Since we are creating readonly Tedits, try to keep the TTY where it is.")
(* ;; "We found ITEM of TYPE on IFILE")
(for IFILE LOC TSTREAM ENV EXPR TFPROP WINDOW inside IFILES
eachtime (CL:IF (VERSIONP IFILE)
(SETQ IFILE (FINDFILEVERSION (CAR (WHEREIS FN NIL T))
IFILE))) unless (MEMB (FILENAMEFIELD IFILE 'EXTENSION)
*COMPILED-EXTENSIONS*)
do
(SETQ LOC (FINDFNDEF FN IFILE))
(if (LISTP LOC)
then (SETQ TFPROP (LIST FN (CAR LOC)))
[SETQ WINDOW (find W in (OPENWINDOWS)
suchthat (AND (EQUAL TFPROP (WINDOWPROP W 'TF))
(TEXTSTREAM W T]
[if (AND WINDOW (NOT REPRINT))
then
(* ;;
 "If already an open PF window on this function in this file, just raise it to the top")
(SETQ TFPROP (LIST ITEM TYPE IFILE))
[SETQ WINDOW (find W in (OPENWINDOWS)
suchthat (AND (EQUAL TFPROP (WINDOWPROP W 'TF))
(TEXTSTREAM W T]
(CL:WHEN (AND WINDOW (NOT REPRINT))
(TOTOPW WINDOW)
(RETURN)
else (CL:WITH-OPEN-FILE
(ISTREAM (POP LOC)
:DIRECTION :INPUT)
(SETQ ENV (LISPSOURCEFILEP ISTREAM))
(SETFILEINFO ISTREAM 'FORMAT ENV)
[SETQ TSTREAM (OPENTEXTSTREAM
NIL NIL `(PARABREAKCHARS NIL OPENWIDTH
,(TIMES TEDIT.SOURCE.LINELENGTH
(CHARWIDTH (CHARCODE SPACE)
DEFAULTFONT]
(DSPFONT DEFAULTFONT TSTREAM)
(PRINTOUT TSTREAM 5 "[From " (FULLNAME ISTREAM)
"]" T)
(PRINT-READER-ENVIRONMENT ENV TSTREAM)
(if REPRINT
then (SETFILEPTR ISTREAM (POP LOC))
(SETQ EXPR (WITH-READER-ENVIRONMENT ENV (READ ISTREAM)))
(WITH-READER-ENVIRONMENT ENV
(if (EQ FN (CAR EXPR))
then (DSPFONT BOLDFONT TSTREAM)
(PRINT FN TSTREAM)
(DSPFONT DEFAULTFONT TSTREAM)
(SETQ EXPR (CADR EXPR))
(PRINTDEF EXPR 3 T NIL NIL TSTREAM)
elseif (EQ FN (CADR EXPR))
then
(* ;;
 "Presumably a DEFUN. Print the CAR, boldface the cadr")
(* ;;
 "If already an open window on this item in this file, just raise it to the top")
(PRINTOUT TSTREAM "(" .P2 (CAR EXPR)
" " .FONT BOLDFONT .P2 (CADR EXPR)
.FONT DEFAULTFONT " " .P2 (CADDR EXPR)
T 3)
(PRINTDEF (CDDDR EXPR)
3 T T NIL TSTREAM)
(PRIN3 ")" TSTREAM)
else (PRINTDEF EXPR 3 NIL NIL NIL TSTREAM)))
else (PFI.MAYBE.PP.DEFINITION ISTREAM TSTREAM (POP LOC)
(POP LOC)))
(TERPRI TSTREAM)
[TEDIT TSTREAM (OR WINDOW 'TF)
NIL
`(READONLY T TITLE ,(CONCAT FN " from " (FULLNAME ISTREAM))
ITEM-NAME
,FN BOUNDTABLE ,(TEDIT.ATOMBOUND.READTABLE *READTABLE*]
(TOTOPW WINDOW)
(RETURN))
[SETQ TSTREAM (OPENTEXTSTREAM NIL NIL
`(PARABREAKCHARS NIL OPENWIDTH
,(TIMES TEDIT.SOURCE.LINELENGTH (CHARWIDTH
(CHARCODE SPACE)
DEFAULTFONT]
(CL:WITH-OPEN-FILE (ISTREAM IFILE :DIRECTION :INPUT)
(* ; "Print the reader environment")
(PRINTOUT TSTREAM .FONT DEFAULTFONT 5)
(PRINT-READER-ENVIRONMENT (LISPSOURCEFILEP ISTREAM)
TSTREAM))
(DSPFONT DEFAULTFONT TSTREAM)
[if (FNTYP DEF)
then (PRINTOUT TSTREAM "(" .FONT BOLDFONT .P2 ITEM " " .FONT DEFAULTFONT)
(PRINTDEF DEF 3 T NIL NIL TSTREAM)
(PRIN3 ")" TSTREAM)
elseif (SELECTQ (CAR DEF)
((CL:DEFUN DEFMACRO) (* ; "Could look at :DEFINITION-NAME for definers in general, but we still have to pick out the arguments here (CADDR).")
(PRINTOUT TSTREAM "(" .P2 (CAR DEF)
" " .FONT BOLDFONT .P2 (CADR DEF)
.FONT DEFAULTFONT " " .P2 (CADDR DEF))
(PRINTDEF (CDDDR DEF)
3 T T NIL TSTREAM)
(PRIN3 ")" TSTREAM))
(if (EQ ITEM (CAR DEF))
then (PRINTOUT TSTREAM "(" .FONT BOLDFONT .P2 ITEM .FONT
DEFAULTFONT)
(PRINTDEF (CADR DEF)
3
(NOT TYPE)
NIL NIL TSTREAM)
(PRIN3 ")" TSTREAM)
elseif (EQ ITEM (CADR DEF))
then (PRINTOUT TSTREAM "(" .P2 (CAR DEF)
" " .FONT BOLDFONT .P2 ITEM .FONT DEFAULTFONT)
(PRINTDEF (CDDR DEF)
3
(NEQ TYPE 'VARS)
T NIL TSTREAM)
(PRIN3 ")" TSTREAM)
else (PRINTOUT TSTREAM .FONT BOLDFONT .P2 ITEM ":" .FONT
DEFAULTFONT)
(PRINTDEF DEF 3 (NOT TYPE)
NIL NIL TSTREAM]
(TERPRI TSTREAM)
(* ;; "The windowprop allows for reprinting as a window action, or reprinting from a command that can find and reuse the previous (presumably unprettied) window.")
(* ;; "Since we are creating readonly Tedits, try to keep the TTY where it is.")
(WINDOWPROP (WFROMDS TSTREAM)
'TF TFPROP)
(TOTOPW (WFROMDS TSTREAM]
elseif (EQ LOC 'FILE.NOT.FOUND)
then (printout T "file " IFILE " not found." T)
else (printout T FN " not found on " LOC "." T)))
(SETQ *LAST-DF* FN)
else (PRINTOUT T FN " has no function definition" T])
[TEDIT TSTREAM (OR WINDOW 'TF)
NIL
`(READONLY T TITLE ,(CONCAT ITEM " from " IFILE)
ITEM-NAME
,ITEM BOUNDTABLE ,(TEDIT.ATOMBOUND.READTABLE *READTABLE*]
(* ;; "The windowprop allows for reprinting as a window action, or reprinting from a command that can find and reuse the previous (presumably unprettied) window.")
(WINDOWPROP (WFROMDS TSTREAM)
'TF TFPROP)
(TOTOPW (WFROMDS TSTREAM)))
(SETQ *LAST-DF* ITEM)
else (PRINTOUT T ITEM " has no " (CL:IF TYPE
(L-CASE TYPE)
"function")
" definition" T])
(PF-TEDIT-FROM-TEXT
[LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 14-Apr-2025 21:59 by rmk")
[LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 23-Sep-2025 23:28 by rmk")
(* ; "Edited 14-Apr-2025 21:59 by rmk")
(* ; "Edited 7-Apr-2025 23:03 by rmk")
(* ; "Edited 5-Dec-2024 22:20 by rmk")
(* ; "Edited 26-Aug-2024 23:13 by rmk")
@ -175,7 +191,7 @@
ALLFILES)
(if (EQ 0 (NCHARS FN))
then (TEDIT.PROMPTPRINT TSTREAM "Please select a function to display" T)
elseif (SETQ ALLFILES (WHEREIS FN '(FNS FUNCTIONS)
elseif (SETQ ALLFILES (WHEREIS FN '(FNS FUNCTIONS MACROS)
T))
then (PF-TEDIT FN (CAR (OR (MEMB (FILENAMEFIELD THISFILE)
ALLFILES)
@ -197,12 +213,19 @@
(DEFCOMMAND tf (FN FILE VERSION) (PF-TEDIT FN FILE VERSION))
(DEFCOMMAND tc (ITEM FILE VERSION) (PF-TEDIT (FILECOMS ITEM)
FILE VERSION T 'VARS))
(DEFCOMMAND tv (ITEM FILE VERSION) (PF-TEDIT ITEM FILE VERSION T 'VARS))
(DEFCOMMAND tr (ITEM FILE VERSION) (PF-TEDIT ITEM FILE VERSION T 'RECORDS))
(FILESLOAD (SYSLOAD)
REGIONMANAGER VERSIONDEFS)
(ADDTOVAR TEDIT.CHARACTIONS (TEDIT-PF PF-TEDIT-FROM-TEXT))
(ADDTOVAR TEDIT.CHARACTIONS (:TEDIT-PF PF-TEDIT-FROM-TEXT))
(ADDTOVAR TEDIT.CHARBINDINGS (TEDIT-PF "Meta,t" "Meta,T"))
(ADDTOVAR TEDIT.CHARBINDINGS (:TEDIT-PF "Meta,t" "Meta,T"))
(MOVD? 'PFCOPYBYTES 'PFI.MAYBE.PP.DEFINITION)
@ -218,5 +241,5 @@
(ADDTOVAR LAMA )
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (1080 10900 (PF-TEDIT 1090 . 9166) (PF-TEDIT-FROM-TEXT 9168 . 10898)))))
(FILEMAP (NIL (1018 12068 (PF-TEDIT 1028 . 10218) (PF-TEDIT-FROM-TEXT 10220 . 12066)))))
STOP

Binary file not shown.

View File

@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10)
(FILECREATED "31-Mar-2024 09:38:10" |{DSK}<home>larry>il>medley>sources>AINTERRUPT.;7| 41133
(FILECREATED "12-Nov-2025 11:10:44" |{WMEDLEY}<sources>AINTERRUPT.;4| 41235
:EDIT-BY "lmm"
:EDIT-BY |rmk|
:CHANGES-TO (VARS AINTERRUPTCOMS)
:PREVIOUS-DATE "31-Mar-2024 09:27:57" |{DSK}<home>larry>il>medley>sources>AINTERRUPT.;5|)
:PREVIOUS-DATE "31-Mar-2024 09:38:10" |{WMEDLEY}<sources>AINTERRUPT.;3|)
(PRETTYCOMPRINT AINTERRUPTCOMS)
@ -22,8 +22,8 @@
(5 ERROR MOUSE)
(7 HELP T)
(16 PRINTLEVEL)
(20 (CONTROL-T))
(127 RUBOUT T)))))
(20 (CONTROL-T))))))
(* \; "RMK2025: Removed (127 RUBOUT T)")
(GLOBALVARS LISPINTERRUPTS)
(COMS
(* |;;| "^T this is actually not very useful any more, and the percentages are wrong")
@ -538,14 +538,17 @@
(prog1 \\interruptable (setq \\interruptable flag))))
)
(RPAQ? LISPINTERRUPTS
'((LISPINTERRUPTS (2 BREAK MOUSE)
(4 RESET MOUSE)
(5 ERROR MOUSE)
(7 HELP T)
(16 PRINTLEVEL)
(20 (CONTROL-T))
(127 RUBOUT T))))
(RPAQ? LISPINTERRUPTS '((LISPINTERRUPTS (2 BREAK MOUSE)
(4 RESET MOUSE)
(5 ERROR MOUSE)
(7 HELP T)
(16 PRINTLEVEL)
(20 (CONTROL-T)))))
(* \; "RMK2025: Removed (127 RUBOUT T)")
(DECLARE\: DOEVAL@COMPILE DONTCOPY
(GLOBALVARS LISPINTERRUPTS)
@ -803,10 +806,10 @@ DONTCOPY
(INTCHAR T)
)
(DECLARE\: DONTCOPY
(FILEMAP (NIL (2924 29142 (INTCHAR 2934 . 7957) (INTERRUPTCHAR 7959 . 8233) (INTERRUPTED 8235 . 15814)
(LISPINTERRUPTS 15816 . 16343) (\\DOHELPINTERRUPT 16345 . 17243) (\\DOHELPINTERRUPT1 17245 . 18643) (
\\DOINTERRUPTHERE 18645 . 19825) (\\PROC.FINDREALFRAME 19827 . 20631) (\\SETPRINTLEVEL 20633 . 22585)
(\\SETRECLAIMMIN 22587 . 23460) (GETINTERRUPT 23462 . 24818) (CURRENTINTERRUPTS 24820 . 25030) (
SETINTERRUPT 25032 . 27010) (RESET.INTERRUPTS 27012 . 28969) (INTERRUPTABLE 28971 . 29140)) (29562
35546 (CONTROL-T 29572 . 35013) (\\CONTROL-T.PRINTRATIO 35015 . 35544)))))
(FILEMAP (NIL (2939 29157 (INTCHAR 2949 . 7972) (INTERRUPTCHAR 7974 . 8248) (INTERRUPTED 8250 . 15829)
(LISPINTERRUPTS 15831 . 16358) (\\DOHELPINTERRUPT 16360 . 17258) (\\DOHELPINTERRUPT1 17260 . 18658) (
\\DOINTERRUPTHERE 18660 . 19840) (\\PROC.FINDREALFRAME 19842 . 20646) (\\SETPRINTLEVEL 20648 . 22600)
(\\SETRECLAIMMIN 22602 . 23475) (GETINTERRUPT 23477 . 24833) (CURRENTINTERRUPTS 24835 . 25045) (
SETINTERRUPT 25047 . 27025) (RESET.INTERRUPTS 27027 . 28984) (INTERRUPTABLE 28986 . 29155)) (29664
35648 (CONTROL-T 29674 . 35115) (\\CONTROL-T.PRINTRATIO 35117 . 35646)))))
STOP

Binary file not shown.

View File

@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED " 5-May-2025 20:57:08" {WMEDLEY}<sources>LLKEY.;15 199508
(FILECREATED "12-Nov-2025 16:40:50" {WMEDLEY}<sources>LLKEY.;18 199501
:EDIT-BY rmk
:CHANGES-TO (VARS \MAIKOKEYACTIONS \KEYNAMES)
:CHANGES-TO (VARS \ORIGKEYACTIONS)
:PREVIOUS-DATE " 4-Apr-2025 17:10:10" {WMEDLEY}<sources>LLKEY.;11)
:PREVIOUS-DATE "12-Nov-2025 15:56:25" {WMEDLEY}<sources>LLKEY.;17)
(PRETTYCOMPRINT LLKEYCOMS)
@ -1591,7 +1591,7 @@
(12 ("/" "?" NOLOCKSHIFT))
(13 ("\" "|" NOLOCKSHIFT))
(14 ("LF" "`" NOLOCKSHIFT))
(15 ("Bs" "Bs" NOLOCKSHIFT))
(15 ("Bs" "^W" NOLOCKSHIFT))
(16 ("3" "#" NOLOCKSHIFT))
(17 ("2" "@" NOLOCKSHIFT))
(18 ("w" "W" LOCKSHIFT))
@ -1771,7 +1771,7 @@
(66 ("Function,G" "Function,g" NOLOCKSHIFT))
(104 ("Function,H" "Function,h" NOLOCKSHIFT))
(80 ("Function,I" "Function,i" NOLOCKSHIFT))
(13 ("^W" "^U" NOLOCKSHIFT))
(13 (RUBOUT "^U" NOLOCKSHIFT))
(33 ("Esc" "Esc" NOLOCKSHIFT))
(65 ("Esc" "Esc" NOLOCKSHIFT))
(2 ("6" "^" NOLOCKSHIFT))
@ -1851,9 +1851,9 @@
(4 ("7" "'" NOLOCKSHIFT))
(8 ("0" "0" NOLOCKSHIFT))
(10 ("\" "_" NOLOCKSHIFT))
(13 ("^W" "^U" NOLOCKSHIFT))
(13 (RUBOUT "^U" NOLOCKSHIFT))
(14 METADOWN . METAUP)
(15 ("Bs" "Bs" NOLOCKSHIFT))
(15 ("Bs" "^W" NOLOCKSHIFT))
(17 ("2" "%"" NOLOCKSHIFT))
(22 ("9" ")" NOLOCKSHIFT))
(28 (":" "*" NOLOCKSHIFT))
@ -3916,33 +3916,33 @@
(ADDTOVAR LAMA CURSORPROP METASHIFT MOUSECHORDWAIT)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (14602 21918 (BKSYSCHARCODE 14612 . 14961) (\CLEARSYSBUF 14963 . 15521) (\GETKEY 15523
. 16698) (\NSYSBUFCHARS 16700 . 17442) (\SAVESYSBUF 17444 . 19053) (\SYSBUFP 19055 . 19359) (
\GETSYSBUF 19361 . 19541) (\PUTSYSBUF 19543 . 20756) (\PEEKSYSBUF 20758 . 21916)) (23203 60761 (
\KEYBOARDINIT 23213 . 24933) (\KEYBOARDEVENTFN 24935 . 29635) (\ALLOCLOCKED 29637 . 30227) (
\SETIOPOINTERS 30229 . 34765) (\KEYBOARDOFF 34767 . 35181) (\KEYBOARDON 35183 . 35562) (\KEYHANDLER
35564 . 35695) (\KEYHANDLER1 35697 . 43143) (\RESETKEYBOARD 43145 . 44793) (\DOMOUSECHORDING 44795 .
48615) (\DOTRANSITIONS 48617 . 49294) (\DECODETRANSITION 49296 . 56709) (MOUSECHORDWAIT 56711 . 57375)
(\TRACKCURSOR 57377 . 60759)) (95227 117100 (KEYACTION 95237 . 96090) (KEYACTIONTABLE 96092 . 97274)
(KEYBOARDTYPE 97276 . 98378) (RESETKEYACTION 98380 . 100139) (\KEYBOARD.MACHINE-SPECIFIC-KEYACTIONS
100141 . 102043) (\KEYACTION1 102045 . 112161) (KEYDOWNP 112163 . 112498) (KEYNUMBERP 112500 . 112698)
(\KEYNAMETONUMBER 112700 . 113394) (\KEYNUMBERTONAME 113396 . 113586) (MODIFY.KEYACTIONS 113588 .
114449) (METASHIFT 114451 . 115395) (SHIFTDOWNP 115397 . 117098)) (117163 117459 (
SETUP.OFFICE.KEYBOARD 117173 . 117457)) (120438 122150 (\INIT.KEYBOARD.STREAM 120448 . 122148)) (
122415 138792 (\DOBUFFEREDTRANSITIONS 122425 . 137855) (\TIMER.INTERRUPTFRAME 137857 . 138582) (
\PERIODIC.INTERRUPTFRAME 138584 . 138790)) (139046 143123 (\HARDCURSORUP 139056 . 140938) (
\HARDCURSORPOSITION 140940 . 142976) (\HARDCURSORDOWN 142978 . 143121)) (143124 167184 (CURSOR.INIT
143134 . 146834) (\CURSORDESTINATION 146836 . 149154) (\SOFTCURSORUP 149156 . 154410) (
\SOFTCURSORUPCURRENT 154412 . 161448) (\SOFTCURSORPOSITION 161450 . 162215) (\SOFTCURSORDOWN 162217 .
162925) (CURSORPROP 162927 . 163269) (GETCURSORPROP 163271 . 163459) (PUTCURSORPROP 163461 . 164616) (
\CURSORBITSPERPIXEL 164618 . 166734) (\CURSORIMAGEPROPNAME 166736 . 166960) (\CURSORMASKPROPNAME
166962 . 167182)) (167185 185135 (CURSORCREATE 167195 . 169870) (CURSOR 169872 . 171684) (
\CURSOR-VALID-P 171686 . 172773) (\CURSORUP 172775 . 174490) (\CURSORPOSITION 174492 . 177020) (
\CURSORDOWN 177022 . 177255) (ADJUSTCURSORPOSITION 177257 . 177835) (CURSORPOSITION 177837 . 179379) (
CURSORSCREEN 179381 . 180037) (CURSOREXIT 180039 . 181430) (FLIPCURSOR 181432 . 182558) (FLIPCURSORBAR
182560 . 183540) (LASTMOUSEX 183542 . 183796) (LASTMOUSEY 183798 . 184052) (CREATEPOSITION 184054 .
184260) (POSITIONP 184262 . 184546) (CURSORHOTSPOT 184548 . 185133)) (186373 187921 (GETMOUSESTATE
186383 . 187042) (\EVENTKEYS 187044 . 187919)) (194120 194916 (MACHINETYPE 194130 . 194530) (
SETMAINTPANEL 194532 . 194914)) (194946 196085 (BEEPON 194956 . 195609) (BEEPOFF 195611 . 196083)) (
196536 196799 (WITHOUT-INTERRUPTS 196546 . 196797)))))
(FILEMAP (NIL (14591 21907 (BKSYSCHARCODE 14601 . 14950) (\CLEARSYSBUF 14952 . 15510) (\GETKEY 15512
. 16687) (\NSYSBUFCHARS 16689 . 17431) (\SAVESYSBUF 17433 . 19042) (\SYSBUFP 19044 . 19348) (
\GETSYSBUF 19350 . 19530) (\PUTSYSBUF 19532 . 20745) (\PEEKSYSBUF 20747 . 21905)) (23192 60750 (
\KEYBOARDINIT 23202 . 24922) (\KEYBOARDEVENTFN 24924 . 29624) (\ALLOCLOCKED 29626 . 30216) (
\SETIOPOINTERS 30218 . 34754) (\KEYBOARDOFF 34756 . 35170) (\KEYBOARDON 35172 . 35551) (\KEYHANDLER
35553 . 35684) (\KEYHANDLER1 35686 . 43132) (\RESETKEYBOARD 43134 . 44782) (\DOMOUSECHORDING 44784 .
48604) (\DOTRANSITIONS 48606 . 49283) (\DECODETRANSITION 49285 . 56698) (MOUSECHORDWAIT 56700 . 57364)
(\TRACKCURSOR 57366 . 60748)) (95220 117093 (KEYACTION 95230 . 96083) (KEYACTIONTABLE 96085 . 97267)
(KEYBOARDTYPE 97269 . 98371) (RESETKEYACTION 98373 . 100132) (\KEYBOARD.MACHINE-SPECIFIC-KEYACTIONS
100134 . 102036) (\KEYACTION1 102038 . 112154) (KEYDOWNP 112156 . 112491) (KEYNUMBERP 112493 . 112691)
(\KEYNAMETONUMBER 112693 . 113387) (\KEYNUMBERTONAME 113389 . 113579) (MODIFY.KEYACTIONS 113581 .
114442) (METASHIFT 114444 . 115388) (SHIFTDOWNP 115390 . 117091)) (117156 117452 (
SETUP.OFFICE.KEYBOARD 117166 . 117450)) (120431 122143 (\INIT.KEYBOARD.STREAM 120441 . 122141)) (
122408 138785 (\DOBUFFEREDTRANSITIONS 122418 . 137848) (\TIMER.INTERRUPTFRAME 137850 . 138575) (
\PERIODIC.INTERRUPTFRAME 138577 . 138783)) (139039 143116 (\HARDCURSORUP 139049 . 140931) (
\HARDCURSORPOSITION 140933 . 142969) (\HARDCURSORDOWN 142971 . 143114)) (143117 167177 (CURSOR.INIT
143127 . 146827) (\CURSORDESTINATION 146829 . 149147) (\SOFTCURSORUP 149149 . 154403) (
\SOFTCURSORUPCURRENT 154405 . 161441) (\SOFTCURSORPOSITION 161443 . 162208) (\SOFTCURSORDOWN 162210 .
162918) (CURSORPROP 162920 . 163262) (GETCURSORPROP 163264 . 163452) (PUTCURSORPROP 163454 . 164609) (
\CURSORBITSPERPIXEL 164611 . 166727) (\CURSORIMAGEPROPNAME 166729 . 166953) (\CURSORMASKPROPNAME
166955 . 167175)) (167178 185128 (CURSORCREATE 167188 . 169863) (CURSOR 169865 . 171677) (
\CURSOR-VALID-P 171679 . 172766) (\CURSORUP 172768 . 174483) (\CURSORPOSITION 174485 . 177013) (
\CURSORDOWN 177015 . 177248) (ADJUSTCURSORPOSITION 177250 . 177828) (CURSORPOSITION 177830 . 179372) (
CURSORSCREEN 179374 . 180030) (CURSOREXIT 180032 . 181423) (FLIPCURSOR 181425 . 182551) (FLIPCURSORBAR
182553 . 183533) (LASTMOUSEX 183535 . 183789) (LASTMOUSEY 183791 . 184045) (CREATEPOSITION 184047 .
184253) (POSITIONP 184255 . 184539) (CURSORHOTSPOT 184541 . 185126)) (186366 187914 (GETMOUSESTATE
186376 . 187035) (\EVENTKEYS 187037 . 187912)) (194113 194909 (MACHINETYPE 194123 . 194523) (
SETMAINTPANEL 194525 . 194907)) (194939 196078 (BEEPON 194949 . 195602) (BEEPOFF 195604 . 196076)) (
196529 196792 (WITHOUT-INTERRUPTS 196539 . 196790)))))
STOP

Binary file not shown.

View File

@ -1,14 +1,13 @@
(DEFINE-FILE-INFO PACKAGE (DEFPACKAGE SEDIT (USE LISP XCL)) READTABLE "XCL" BASE 10)
(IL:FILECREATED "15-Aug-2021 21:22:22" 
IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;7| 125181
IL:|changes| IL:|to:| (IL:VARS IL:SEDIT-COMMANDSCOMS)
(IL:FILECREATED "13-Nov-2025 00:19:24" IL:|{WMEDLEY}<sources>SEDIT-COMMANDS.;5| 124301
IL:|previous| IL:|date:| "14-Aug-2021 12:59:29"
IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
:EDIT-BY IL:|rmk|
:CHANGES-TO (IL:VARIABLES COMMAND-TABLE-SPEC)
:PREVIOUS-DATE "13-Nov-2025 00:14:31" IL:|{WMEDLEY}<sources>SEDIT-COMMANDS.;4|)
; Copyright (c) 1986-1988, 1990-1991, 2018, 2021 by Venue & Xerox Corporation.
(IL:PRETTYCOMPRINT IL:SEDIT-COMMANDSCOMS)
@ -30,18 +29,18 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
IL:\; < > IL:\.))))
(IL:FUNCTIONS
(IL:* IL:|;;| "pseudo-selections")
(IL:* IL:|;;| "pseudo-selections")
PSEUDO-SELECTION-FROM-SELECTION COMPOSE-PSEUDO-SELECTION DECOMPOSE-PSEUDO-SELECTION
SELECTION-FROM-PSEUDO-SELECTION SELECT-PSEUDO-SEGMENT)
(IL:* IL:|;;| "user interface to adding new commands")
(IL:* IL:|;;| "user interface to adding new commands")
(IL:FUNCTIONS ADD-COMMAND GET-SELECTION REPLACE-SELECTION RESET-COMMANDS DEFAULT-COMMANDS)
(IL:VARIABLES DEFAULT-COMMAND-TABLE-SPEC FIRST-ADD-COMMAND FIRST-ADD-COMMAND-MENU-ENTRY)
(IL:FUNCTIONS
(IL:* IL:|;;| "building help menu")
(IL:* IL:|;;| "building help menu")
EQUALIZE-STRING-WIDTHS MINIMUM-STRING-WIDTH MAXIMUM-STRING-WIDTH)
(IL:FUNCTIONS FIND-AND-DISPLAY-STRUCTURE FIND-AND-DISPLAY-STRUCTURE-BACKWARDS
@ -65,8 +64,8 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(IL:PUTPROPS IL:SEDIT-COMMANDS IL:FILETYPE :COMPILE-FILE)
(IL:PUTPROPS IL:SEDIT-COMMANDS IL:MAKEFILE-ENVIRONMENT (:READTABLE "XCL" :PACKAGE
(DEFPACKAGE IL:SEDIT
(:USE IL:LISP IL:XCL))))
(DEFPACKAGE IL:SEDIT (:USE IL:LISP
IL:XCL))))
(IL:DECLARE\: IL:DOEVAL@COMPILE IL:DONTCOPY
(IL:LOCALVARS . T)
@ -78,10 +77,10 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFPARAMETER COMMAND-TABLE-SPEC
(IL:* IL:|;;;| "each entry in the COMMAND-TABLE-SPEC should be of the form: (<fn> <help menu entry> <normalize?> <key>+) where <fn> is an atom function name or a list whose car is the function name and the rest are the extra arguments (beyond context and charcode), <help menu entry> is a list of strings for the name, key-name, and help-string, <normalize?> is T if the caret should be normalized after this command, and <key>+ is one or more key specifier which can be passed to charcode (if non-list) or whose car is a termtable syntax (if a list).")
(IL:* IL:|;;;| "each entry in the COMMAND-TABLE-SPEC should be of the form: (<fn> <help menu entry> <normalize?> <key>+) where <fn> is an atom function name or a list whose car is the function name and the rest are the extra arguments (beyond context and charcode), <help menu entry> is a list of strings for the name, key-name, and help-string, <normalize?> is T if the caret should be normalized after this command, and <key>+ is one or more key specifier which can be passed to charcode (if non-list) or whose car is a termtable syntax (if a list).")
'(
(IL:* IL:|;;| "STRUCTURE CONTROL")
(IL:* IL:|;;| "STRUCTURE CONTROL")
(INSERT-NULL-LIST NIL T (IL:LEFTPAREN))
(CLOSE-LIST NIL NIL (IL:RIGHTPAREN))
@ -104,7 +103,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
((INPUT-QUOTE COMMA-AT)
NIL NIL "@")
(IL:* IL:|;;| "EDIT CONTROL")
(IL:* IL:|;;| "EDIT CONTROL")
(DELETE-SELECTION NIL T IL:DEL)
(BACKSPACE NIL T IL:BS "^A")
@ -114,7 +113,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
((VERIFY-STRUCTURE NIL T NIL)
NIL NIL "Meta,^L")
(IL:* IL:|;;| "COMPLETION")
(IL:* IL:|;;| "COMPLETION")
((COMPLETE :ABORT NIL)
("Abort" "M-A" "Complete this edit without installing changes.")
@ -134,14 +133,14 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
("Done, Compile, & Close" "C-M-C" "Complete this edit, compile, and close the window.")
NIL "Meta,^C")
(IL:* IL:|;;| "COMMANDS")
(IL:* IL:|;;| "COMMANDS")
(NULL ("" "" "")
NIL 0)
(UNDO ("Undo" "M-U" "Undo the last change made.")
NIL "Meta,U" "Meta,u" "Function,^D" (UNDO))
NIL "Meta,U" "Meta,u" "Function,^D" (UNDO))
(REDO ("Redo" "M-R" "Redo the last change undone.")
NIL "Meta,R" "Meta,r" "Function,Bs" (REDO))
NIL "Meta,R" "Meta,r" "Function,Bs" (REDO))
(NULL ("" "" "")
NIL 0)
(FIND-OBJ ("Find" "M-F" "Find the current selection, or prompt for structure to Find.")
@ -161,7 +160,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(EDIT-HELP ("Arglist" "M-H" "Show the argument list for the selected function.")
NIL "Meta,H" "Meta,h" "Function,^A" (ARGLIST))
(CONVERT-COMMENT ("Convert Comment" "M-;"
"Convert the old style comments in the current selection.")
"Convert the old style comments in the current selection.")
NIL "Meta,;")
(COMMENT-OUT-SELECTION NIL NIL "Meta,^;")
(EDIT-SELECTION ("Edit" "M-O" "Edit the definition of the current selection.")
@ -173,13 +172,13 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
NIL "Meta,E" "Meta,e" (EVAL))
(EXPAND ("Expand" "M-X" "Replace the current selection with its definition.")
NIL "Meta,X" "Meta,x" IL:ESC "Function,^T" (EXPAND))
(EXTRACT-CURRENT-SELECTION ("Extract" "M-/"
"Extract one level of structure: unquote or unlist.")
(EXTRACT-CURRENT-SELECTION ("Extract" "M-/" "Extract one level of structure: unquote or unlist."
)
NIL "Meta,/" (EXTRACT))
(INSPECT-SELECTION ("Inspect" "M-I" "Inspect the current selection.")
NIL "Meta,I" "Meta,i" (INSPECT))
(JOIN ("Join" "M-J" "Join selected items together.")
NIL "Meta,J" "Meta,j" (JOIN))
NIL "Meta,J" "Meta,j" (JOIN))
(MUTATE ("Mutate" "M-Z" "Prompt for a function to operate on the current selection.")
NIL "Meta,Z" "Meta,z")
((PARENTHESIZE-CURRENT-SELECTION NIL)
@ -209,7 +208,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(ADD-MENU ("Attach Menu" "M-M" "Attach a command menu.")
NIL "Meta,M" "Meta,m")
(IL:* IL:|;;| "RANDOM: tells Meta-Space or Meta-Return to scroll to the selection, using the auto-scroller for free.")
(IL:* IL:|;;| "RANDOM: tells Meta-Space or Meta-Return to scroll to the selection, using the auto-scroller for free.")
(TRUE NIL T "Meta, " "Meta,CR")))
@ -269,19 +268,18 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(IL:RPAQ? MENUS NIL)
(IL:DECLARE\: IL:EVAL@COMPILE
(IL:RPAQ WORD-DELIM-CHARS (IL:CHARCODE (IL:SPACE IL:CR IL:TAB - IL:{ IL:} IL:[ IL:] IL:\; < >
IL:\.)))
(IL:RPAQ WORD-DELIM-CHARS (IL:CHARCODE (IL:SPACE IL:CR IL:TAB - IL:{ IL:} IL:[ IL:] IL:\; < > IL:\.)))
(IL:CONSTANTS (WORD-DELIM-CHARS (IL:CHARCODE (IL:SPACE IL:CR IL:TAB - IL:{ IL:} IL:[ IL:] IL:\; <
> IL:\.))))
(IL:CONSTANTS (WORD-DELIM-CHARS (IL:CHARCODE (IL:SPACE IL:CR IL:TAB - IL:{ IL:} IL:[ IL:] IL:\; < >
IL:\.))))
)
(DEFUN PSEUDO-SELECTION-FROM-SELECTION (SEL)
(IL:* IL:|;;;| "A pseudo-selection is either a node or a list of a node and two integers. It's interpreted as the select-node, select-start, and select-end fields of a selection.")
(IL:* IL:|;;;| "A pseudo-selection is either a node or a list of a node and two integers. It's interpreted as the select-node, select-start, and select-end fields of a selection.")
(IL:* IL:|;;;| "This function takes a selection and creates a pseudo selection from it.")
(IL:* IL:|;;;| "This function takes a selection and creates a pseudo selection from it.")
(COMPOSE-PSEUDO-SELECTION (IL:FETCH SELECT-NODE IL:OF SEL)
(IL:FETCH SELECT-START IL:OF SEL)
@ -290,9 +288,9 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN COMPOSE-PSEUDO-SELECTION (NODE &OPTIONAL START END)
(IL:* IL:|;;;| "A pseudo-selection is either a node or a list of a node and two integers. It's interpreted as the select-node, select-start, and select-end fields of a selection.")
(IL:* IL:|;;;| "A pseudo-selection is either a node or a list of a node and two integers. It's interpreted as the select-node, select-start, and select-end fields of a selection.")
(IL:* IL:|;;;| "This function takes the fields of a pseudo selection and hands back one.")
(IL:* IL:|;;;| "This function takes the fields of a pseudo selection and hands back one.")
(COND
((LISTP NODE)
@ -308,9 +306,9 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN DECOMPOSE-PSEUDO-SELECTION (PSEL)
(IL:* IL:|;;;| "A pseudo-selection is either a node or a list of a node and two integers. It's interpreted as the select-node, select-start, and select-end fields of a selection.")
(IL:* IL:|;;;| "A pseudo-selection is either a node or a list of a node and two integers. It's interpreted as the select-node, select-start, and select-end fields of a selection.")
(IL:* IL:|;;;| "This function takes a pseudo selection and hands its fields back as values.")
(IL:* IL:|;;;| "This function takes a pseudo selection and hands its fields back as values.")
(IF (LISTP PSEL)
(VALUES (FIRST PSEL)
@ -322,9 +320,9 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN SELECTION-FROM-PSEUDO-SELECTION (PSEL &OPTIONAL SEL)
(IL:* IL:|;;;| "A pseudo-selection is either a node or a list of a node and two integers. It's interpreted as the select-node, select-start, and select-end fields of a selection.")
(IL:* IL:|;;;| "A pseudo-selection is either a node or a list of a node and two integers. It's interpreted as the select-node, select-start, and select-end fields of a selection.")
(IL:* IL:|;;;| "This function takes a pseudo-selection and constructs the corresponding selection. If you don't hand it a selection structure, it conses one.")
(IL:* IL:|;;;| "This function takes a pseudo-selection and constructs the corresponding selection. If you don't hand it a selection structure, it conses one.")
(UNLESS SEL
(SETF SEL (IL:CREATE EDIT-SELECTION)))
@ -350,13 +348,13 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN ADD-COMMAND (KEY-CODE FORM &OPTIONAL SCROLL? KEY-NAME COMMAND-NAME HELP-STRING)
(WHEN FIRST-ADD-COMMAND
(IL:* IL:|;;| "cache the command-table-spec so the user can undo this!")
(IL:* IL:|;;| "cache the command-table-spec so the user can undo this!")
(SETQ DEFAULT-COMMAND-TABLE-SPEC (COPY-TREE COMMAND-TABLE-SPEC))
(SETQ FIRST-ADD-COMMAND NIL))
(WHEN (AND KEY-NAME COMMAND-NAME FIRST-ADD-COMMAND-MENU-ENTRY)
(IL:* IL:|;;| "add another separation line to the help menu.")
(IL:* IL:|;;| "add another separation line to the help menu.")
(NCONC COMMAND-TABLE-SPEC (LIST (LIST 'NULL (LIST "-----" "" "")
NIL 0)))
@ -366,8 +364,8 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
SCROLL? KEY-CODE)))
(OR COMMAND-NAME FORM))
(DEFUN GET-SELECTION (CONTEXT) (IL:* IL:\; "Edited 23-Apr-2018 18:11 by rmk:")
(IL:* IL:\; "Edited 22-Apr-2018 16:48 by rmk:")
(DEFUN GET-SELECTION (CONTEXT) (IL:* IL:\; "Edited 23-Apr-2018 18:11 by rmk:")
(IL:* IL:\; "Edited 22-Apr-2018 16:48 by rmk:")
(LET* ((SELECTION (IL:FETCH SELECTION IL:OF CONTEXT))
(NODE (IL:FETCH SELECT-NODE IL:OF SELECTION))
(CHARS (IL:FETCH STRUCTURE IL:OF NODE))
@ -377,7 +375,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(TYPE (IL:FETCH SELECT-TYPE IL:OF SELECTION))
NOT-ALL-SELECTED)
(IL:* IL:|;;| "All except NODE are needed for the atom/string cases")
(IL:* IL:|;;| "All except NODE are needed for the atom/string cases")
(COND
((NULL NODE)
@ -388,7 +386,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(START :SUB-LIST)
(T T))))
(T
(IL:* IL:|;;| "RMK: a single character-atom or a substring of characters in an atom or string. Full multicharacter atoms are structures. Code copies from COPY-SELECTION-LITATOM")
(IL:* IL:|;;| "RMK: a single character-atom or a substring of characters in an atom or string. Full multicharacter atoms are structures. Code copies from COPY-SELECTION-LITATOM")
(WHEN (IL:TYPE? BROKEN-ATOM CHARS)
(IL:SETQ CHARS (IL:FETCH ATOM-CHARS IL:OF CHARS)))
@ -396,7 +394,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(IL:NCHARS STRING))
(IL:NEQ START 1)))
(IL:* IL:|;;| "some subset of the atom/string has been selected")
(IL:* IL:|;;| "some subset of the atom/string has been selected")
(IL:SETQ NOT-ALL-SELECTED T))
(VALUES (IL:MKSTRING (IF NOT-ALL-SELECTED
@ -428,16 +426,14 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(PENDING-DELETE POINT SELECTION)
(INSERT POINT CONTEXT (COPY-LIST NEW-NODES))
(IL:* IL:|;;| "try to select the stuff that was just inserted.")
(IL:* IL:|;;| "try to select the stuff that was just inserted.")
(SELECT-PSEUDO-SEGMENT CONTEXT (COMPOSE-PSEUDO-SELECTION NEW-NODES))))
(DEFUN RESET-COMMANDS ()
(LET ((COMMANDS (CREATE-COMMAND-TABLE COMMAND-TABLE-SPEC)))
(IL:REPLACE (EDIT-ENV COMMAND-TABLE) IL:OF LISP-EDIT-ENVIRONMENT IL:WITH
(FIRST COMMANDS))
(IL:REPLACE (EDIT-ENV HELP-MENU) IL:OF LISP-EDIT-ENVIRONMENT IL:WITH (SECOND
COMMANDS)))
(IL:REPLACE (EDIT-ENV COMMAND-TABLE) IL:OF LISP-EDIT-ENVIRONMENT IL:WITH (FIRST COMMANDS))
(IL:REPLACE (EDIT-ENV HELP-MENU) IL:OF LISP-EDIT-ENVIRONMENT IL:WITH (SECOND COMMANDS)))
T)
(DEFUN DEFAULT-COMMANDS ()
@ -456,13 +452,12 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
"Used in Add-Command to signal the first time a new command is added to the middle button menu, so that the user entries can be separated from the default entries"
)
(DEFUN EQUALIZE-STRING-WIDTHS (STRING-LIST FONT &OPTIONAL PRIN2? (DESIRED-WIDTH (
 MAXIMUM-STRING-WIDTH
STRING-LIST FONT
PRIN2?))
(PAD-CHAR #\Space))
(DEFUN EQUALIZE-STRING-WIDTHS (STRING-LIST FONT &OPTIONAL PRIN2? (DESIRED-WIDTH (MAXIMUM-STRING-WIDTH
STRING-LIST FONT
PRIN2?))
(PAD-CHAR #\Space))
(IL:* IL:|;;;| "Increase the width of all the strings in STRING-LIST to DESIRED-WIDTH by padding them on the right with PAD-CHAR.")
(IL:* IL:|;;;| "Increase the width of all the strings in STRING-LIST to DESIRED-WIDTH by padding them on the right with PAD-CHAR.")
(DO ((PAD-CHAR-WIDTH (IL:CHARWIDTH (CHAR-CODE PAD-CHAR)
FONT))
@ -488,7 +483,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN FIND-AND-DISPLAY-STRUCTURE (CONTEXT STR &OPTIONAL SCOPE START WRAP?)
(IL:* IL:|;;;| "Find structure and display it by selecting it (point after) and normalizing the selection in the window. SCOPE defaults to the root structure of the CONTEXT. The WRAP? flag says to wrap failing searches around and try them again (i.e., ignore start and try again).")
(IL:* IL:|;;;| "Find structure and display it by selecting it (point after) and normalizing the selection in the window. SCOPE defaults to the root structure of the CONTEXT. The WRAP? flag says to wrap failing searches around and try them again (i.e., ignore start and try again).")
(LET* ((PROMPTWINDOW (GET-PROMPT-WINDOW CONTEXT))
(TOP (SUBNODE 1 (IL:FETCH ROOT IL:OF CONTEXT)))
@ -503,7 +498,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN FIND-AND-DISPLAY-STRUCTURE-BACKWARDS (CONTEXT STR &OPTIONAL SCOPE END WRAP?)
(IL:* IL:|;;;| "Like find-and-display-structure, but searches backwards")
(IL:* IL:|;;;| "Like find-and-display-structure, but searches backwards")
(LET* ((PROMPTWINDOW (GET-PROMPT-WINDOW CONTEXT))
(TOP (SUBNODE 1 (IL:FETCH ROOT IL:OF CONTEXT)))
@ -518,7 +513,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN FIND-AND-DISPLAY-SUBSTRUCTURE (CONTEXT STR &OPTIONAL SCOPE START WRAP?)
(IL:* IL:|;;;| "Find substructure and display it by selecting it (pending delete) and normalizing the selection in the window. SCOPE defaults to the root structure of the CONTEXT. The WRAP? flag says to wrap failing searches around and try them again (i.e., ignore start and try again).")
(IL:* IL:|;;;| "Find substructure and display it by selecting it (pending delete) and normalizing the selection in the window. SCOPE defaults to the root structure of the CONTEXT. The WRAP? flag says to wrap failing searches around and try them again (i.e., ignore start and try again).")
(LET* ((PROMPTWINDOW (GET-PROMPT-WINDOW CONTEXT))
(TOP (SUBNODE 1 (IL:FETCH ROOT IL:OF CONTEXT)))
@ -533,7 +528,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN FIND-AND-DISPLAY-SUBSTRUCTURE-BACKWARDS (CONTEXT STR &OPTIONAL SCOPE END WRAP?)
(IL:* IL:|;;;| "Like find-and-display-substructure but searches backwards")
(IL:* IL:|;;;| "Like find-and-display-substructure but searches backwards")
(LET* ((PROMPTWINDOW (GET-PROMPT-WINDOW CONTEXT))
(TOP (SUBNODE 1 (IL:FETCH ROOT IL:OF CONTEXT)))
@ -548,7 +543,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN FIND-NTH-STRUCTURE (CONTEXT CHARCODE STRUCTURE N)
(IL:* IL:|;;;| "Find the Nth occurance of Structure in this edit, always starting from the beginning. This function is used as an external command to set the selection to a desired structure. Find, select, and normalize.")
(IL:* IL:|;;;| "Find the Nth occurance of Structure in this edit, always starting from the beginning. This function is used as an external command to set the selection to a desired structure. Find, select, and normalize.")
(LET ((TOP (SUBNODE 1 (IL:FETCH ROOT IL:OF CONTEXT))))
(DO ((M 1 (+ M 1))
@ -561,13 +556,13 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN FIND-NODE-SUBSTRUCTURE (STR STRLEN NODE &OPTIONAL START END CONTINUATION?)
(IL:* IL:|;;;| "STR is a list of structures of length STRLEN. NODE, together with START and END (which are subnode indices), is taken to indicate a subtree. We return a pseudo-selection which selects the first sequence of sibling nodes in that subtree whose successive structures match the successive elements of STR.")
(IL:* IL:|;;;| "STR is a list of structures of length STRLEN. NODE, together with START and END (which are subnode indices), is taken to indicate a subtree. We return a pseudo-selection which selects the first sequence of sibling nodes in that subtree whose successive structures match the successive elements of STR.")
(IL:* IL:|;;;| "\"First\" here is taken to mean \"first in linearization order\", so we have to do a careful recursion which: (1a) recursively checks the subtree rooted at the START subnode of NODE (default the first), (1b) checks if the START subnode starts a matching sibling sequence, (2a) recursively checks the subtree rooted at the START+1 subnode of NODE, (2b) checks if the START+1 subnode starts a matching sibling sequence, . . ., (Na) recusively checks the subtree rooted at the END subnode of NODE (default the last), (Nb) checks if the END subnode starts a matching sibling sequence [note that such a sequence could be only 1 node long since END is the right end of the subtree being checked].")
(IL:* IL:|;;;| "\"First\" here is taken to mean \"first in linearization order\", so we have to do a careful recursion which: (1a) recursively checks the subtree rooted at the START subnode of NODE (default the first), (1b) checks if the START subnode starts a matching sibling sequence, (2a) recursively checks the subtree rooted at the START+1 subnode of NODE, (2b) checks if the START+1 subnode starts a matching sibling sequence, . . ., (Na) recusively checks the subtree rooted at the END subnode of NODE (default the last), (Nb) checks if the END subnode starts a matching sibling sequence [note that such a sequence could be only 1 node long since END is the right end of the subtree being checked].")
(IL:* IL:|;;;| "N.B. It might seem that, to get true linearization order, we should check to see if a node starts a matching sibling sequence before we check its subtree. But since node structures can not be circular, we know that if a match is found in the subtree below a node then that node could not have started a matching sequence.")
(IL:* IL:|;;;| "N.B. It might seem that, to get true linearization order, we should check to see if a node starts a matching sibling sequence before we check its subtree. But since node structures can not be circular, we know that if a match is found in the subtree below a node then that node could not have started a matching sequence.")
(IL:* IL:|;;;| "The CONTINUATION? flag means that we are continuing a search that has already recursively checked the START subnode, so we skip that particular recursion. This generally happens when we are working our way up and to the right in some subtree which has already been partially checked.")
(IL:* IL:|;;;| "The CONTINUATION? flag means that we are continuing a search that has already recursively checked the START subnode, so we skip that particular recursion. This generally happens when we are working our way up and to the right in some subtree which has already been partially checked.")
(SETF START (OR START 1))
(LET* ((SUBNODES (IL:FETCH SUB-NODES IL:OF NODE))
@ -593,7 +588,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN FIND-NODE-SUBSTRUCTURE-BACKWARDS (STR STRLEN NODE &OPTIONAL START END CONTINUATION?)
(IL:* IL:|;;;| "Like find-node-substructure but searches in reverse linearization order.")
(IL:* IL:|;;;| "Like find-node-substructure but searches in reverse linearization order.")
(LET* ((SUBNODES (IL:FETCH SUB-NODES IL:OF NODE))
(SUBLENGTH (FIRST SUBNODES)))
@ -610,8 +605,8 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
((OR (NULL SUBS)
(AND START (< INDEX START)))
NIL)
(WHEN (AND DOSUBS? (SETF MATCH (FIND-NODE-SUBSTRUCTURE-BACKWARDS STR STRLEN
(FIRST SUBS))))
(WHEN (AND DOSUBS? (SETF MATCH (FIND-NODE-SUBSTRUCTURE-BACKWARDS STR STRLEN (FIRST SUBS)))
)
(RETURN MATCH))
(UNLESS (OR (< STARTINDEX 1)
(MISMATCH STR SUBS :END2 STRLEN :TEST
@ -621,7 +616,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN FIND-OBJ (CONTEXT &OPTIONAL CHARCODE FIND-STRING BACKWARDS?)
(IL:* IL:|;;;| "Find either the passed structure, the selected structure, or a prompted-for structure. The search direction is forward unless BACKWARDS? is specified.")
(IL:* IL:|;;;| "Find either the passed structure, the selected structure, or a prompted-for structure. The search direction is forward unless BACKWARDS? is specified.")
(CLOSE-OPEN-NODE CONTEXT)
(LET ((SELECTION (IL:|fetch| SELECTION IL:|of| CONTEXT))
@ -632,7 +627,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(EQ (IL:|fetch| SELECT-TYPE IL:|of| SELECTION)
'STRUCTURE))
(IL:* IL:|;;| "there is a non-string selection")
(IL:* IL:|;;| "there is a non-string selection")
(IF BACKWARDS?
(FIND-SELECTION-BACKWARDS CONTEXT WRAP?)
@ -644,7 +639,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN FIND-SELECTION (CONTEXT &OPTIONAL WRAP?)
(IL:* IL:|;;;| "Find the next match of the current selection and display it.")
(IL:* IL:|;;;| "Find the next match of the current selection and display it.")
(LET* ((PROMPTWINDOW (GET-PROMPT-WINDOW CONTEXT))
(SELECTION (IL:|fetch| SELECTION IL:|of| CONTEXT))
@ -652,32 +647,31 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(START (IL:|fetch| SELECT-START IL:|of| SELECTION)))
(IF START
(IL:* IL:|;;| "a sibling sequence is selected, look for a matching sequence after it")
(IL:* IL:|;;| "a sibling sequence is selected, look for a matching sequence after it")
(FIND-AND-DISPLAY-SUBSTRUCTURE CONTEXT (STRUCTURE-FROM-SELECTION SELECTION)
NIL
(LIST NODE (1+ START))
WRAP?)
(IL:* IL:|;;| "a node is selected, look for a matching node ")
(IL:* IL:|;;| "a node is selected, look for a matching node ")
(IF (SETF START (NEXT-NODE NODE T))
(IL:* IL:|;;| "start the search with the following node")
(IL:* IL:|;;| "start the search with the following node")
(FIND-AND-DISPLAY-STRUCTURE CONTEXT (STRUCTURE-FROM-SELECTION SELECTION)
NIL START WRAP?)
(IL:* IL:|;;| "there are no more nodes, either wrap or give up")
(IL:* IL:|;;| "there are no more nodes, either wrap or give up")
(IF WRAP?
(FIND-AND-DISPLAY-STRUCTURE CONTEXT (STRUCTURE-FROM-SELECTION SELECTION)
)
(FIND-AND-DISPLAY-STRUCTURE CONTEXT (STRUCTURE-FROM-SELECTION SELECTION))
(FORMAT PROMPTWINDOW "~%At end; no more structure to search."))))))
(DEFUN FIND-SELECTION-BACKWARDS (CONTEXT &OPTIONAL WRAP?)
(IL:* IL:|;;;| "Find the previous match of the current selection and display it.")
(IL:* IL:|;;;| "Find the previous match of the current selection and display it.")
(LET* ((PROMPTWINDOW (GET-PROMPT-WINDOW CONTEXT))
(SELECTION (IL:|fetch| SELECTION IL:|of| CONTEXT))
@ -686,36 +680,34 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(IL:|fetch| SELECT-END IL:|of| SELECTION))))
(IF END
(IL:* IL:|;;| "a sibling sequence is selected, look for a matching sequence before it")
(IL:* IL:|;;| "a sibling sequence is selected, look for a matching sequence before it")
(FIND-AND-DISPLAY-SUBSTRUCTURE-BACKWARDS CONTEXT (STRUCTURE-FROM-SELECTION
SELECTION)
(FIND-AND-DISPLAY-SUBSTRUCTURE-BACKWARDS CONTEXT (STRUCTURE-FROM-SELECTION SELECTION)
NIL
(LIST NODE (1- END))
WRAP?)
(IL:* IL:|;;| "a node is selected, look for a matching node ")
(IL:* IL:|;;| "a node is selected, look for a matching node ")
(IF (SETF END (PREV-NODE NODE T))
(IL:* IL:|;;| "start the search with the previous node")
(IL:* IL:|;;| "start the search with the previous node")
(FIND-AND-DISPLAY-STRUCTURE-BACKWARDS CONTEXT (STRUCTURE-FROM-SELECTION
SELECTION)
(FIND-AND-DISPLAY-STRUCTURE-BACKWARDS CONTEXT (STRUCTURE-FROM-SELECTION SELECTION)
NIL END WRAP?)
(IL:* IL:|;;| "there are no more nodes, either wrap or give up")
(IL:* IL:|;;| "there are no more nodes, either wrap or give up")
(IF WRAP?
(FIND-AND-DISPLAY-STRUCTURE-BACKWARDS CONTEXT (STRUCTURE-FROM-SELECTION
SELECTION))
(FIND-AND-DISPLAY-STRUCTURE-BACKWARDS CONTEXT (STRUCTURE-FROM-SELECTION
SELECTION))
(FORMAT PROMPTWINDOW "~%At beginning; no more structure to search."))))))
(DEFUN FIND-STRUCTURE (STR SCOPE &OPTIONAL START)
(IL:* IL:|;;;| "Search forward in linearization order for a node whose structure matches STR. The search is bounded by SCOPE (a pseudo-selection taken to indicate a subtree) and starts at START (a pseudo-selection taken to indicate its left-most node). START defaults to SCOPE. The return value is the first node in SCOPE at or after START whose structure is IL:EQUAL to STR.")
(IL:* IL:|;;;| "Search forward in linearization order for a node whose structure matches STR. The search is bounded by SCOPE (a pseudo-selection taken to indicate a subtree) and starts at START (a pseudo-selection taken to indicate its left-most node). START defaults to SCOPE. The return value is the first node in SCOPE at or after START whose structure is IL:EQUAL to STR.")
(IL:* IL:|;;;| "N.B. Since node structures can not be circular, no subnode of a node can have structure matching that node. Thus looking for a matching node in pre-order is the same as looking for one in linearization order. So we do a pre-order search here.")
(IL:* IL:|;;;| "N.B. Since node structures can not be circular, no subnode of a node can have structure matching that node. Thus looking for a matching node in pre-order is the same as looking for one in linearization order. So we do a pre-order search here.")
(MULTIPLE-VALUE-BIND (SCOPE-NODE SCOPE-START SCOPE-END)
(DECOMPOSE-PSEUDO-SELECTION SCOPE)
@ -727,11 +719,11 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(EQ START-NODE SCOPE-NODE)))
(IL:EQUAL STR (IL:FETCH STRUCTURE IL:OF SCOPE-NODE)))
(IL:* IL:|;;| "special case: the scope includes its root node, we're starting at the root of the scope, and the root of the scope matches the passed structure.")
(IL:* IL:|;;| "special case: the scope includes its root node, we're starting at the root of the scope, and the root of the scope matches the passed structure.")
(RETURN-FROM FIND-STRUCTURE SCOPE-NODE))
(IL:* IL:|;;| "normal case: check all the nodes in the scope subtree in preorder.")
(IL:* IL:|;;| "normal case: check all the nodes in the scope subtree in preorder.")
(DO* ((MIN-DEPTH (1+ (IL:FETCH DEPTH IL:OF SCOPE-NODE)))
(NODE (OR (IF START-START
@ -755,7 +747,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN FIND-STRUCTURE-BACKWARDS (STR SCOPE &OPTIONAL END)
(IL:* IL:|;;;| "like find-structure but searches in reverse linearization order. Actually we search in postorder rather than reverse linearization order but this works just as well for the same reasons that preorder matches linearization order.")
(IL:* IL:|;;;| "like find-structure but searches in reverse linearization order. Actually we search in postorder rather than reverse linearization order but this works just as well for the same reasons that preorder matches linearization order.")
(MULTIPLE-VALUE-BIND (SCOPE-NODE SCOPE-START SCOPE-END)
(DECOMPOSE-PSEUDO-SELECTION SCOPE)
@ -767,12 +759,11 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(EQ END-NODE SCOPE-NODE)))
(IL:EQUAL STR (IL:FETCH STRUCTURE IL:OF SCOPE-NODE)))
(IL:* IL:|;;| "special case: the scope includes its root node, we're ending at the root of the scope, and the root of the scope matches the passed structure.")
(IL:* IL:|;;| "special case: the scope includes its root node, we're ending at the root of the scope, and the root of the scope matches the passed structure.")
(RETURN-FROM FIND-STRUCTURE-BACKWARDS SCOPE-NODE))
(IL:* IL:|;;|
 "normal case: check all the nodes in the scope subtree in postorder.")
(IL:* IL:|;;| "normal case: check all the nodes in the scope subtree in postorder.")
(DO* ((MIN-DEPTH (1+ (IL:FETCH DEPTH IL:OF SCOPE-NODE)))
(NODE (OR (IF END-END
@ -796,9 +787,9 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN FIND-SUBSTRUCTURE (STR SCOPE &OPTIONAL START)
(IL:* IL:|;;;| "Search forward in linearization order for a sequence of nodes whose successive structures match the successive elements of STR. The search is bounded by SCOPE (a pseudo-selection taken to indicate a subtree) and starts at START (a pseudo-selection taken to indicate the left edge of a subtree). START defauts to SCOPE. The return value is a pseudo-selection indicating the sibling sequence of nodes in SCOPE at or to the right of START whose successive node structures are IL:EQUAL to the successive members of STR.")
(IL:* IL:|;;;| "Search forward in linearization order for a sequence of nodes whose successive structures match the successive elements of STR. The search is bounded by SCOPE (a pseudo-selection taken to indicate a subtree) and starts at START (a pseudo-selection taken to indicate the left edge of a subtree). START defauts to SCOPE. The return value is a pseudo-selection indicating the sibling sequence of nodes in SCOPE at or to the right of START whose successive node structures are IL:EQUAL to the successive members of STR.")
(IL:* IL:|;;;| "N.B. For a sequence of sibling nodes, first in linearization order can not be found by doing a preorder search. See find-node-substructure for details about the correct search method.")
(IL:* IL:|;;;| "N.B. For a sequence of sibling nodes, first in linearization order can not be found by doing a preorder search. See find-node-substructure for details about the correct search method.")
(MULTIPLE-VALUE-BIND (SCOPE-NODE SCOPE-START SCOPE-END)
(DECOMPOSE-PSEUDO-SELECTION SCOPE)
@ -807,18 +798,18 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(COND
((NULL START-NODE)
(IL:* IL:|;;| "just check the entire scope")
(IL:* IL:|;;| "just check the entire scope")
(FIND-NODE-SUBSTRUCTURE STR (LENGTH STR)
SCOPE-NODE SCOPE-START SCOPE-END))
((EQ START-NODE SCOPE-NODE)
(IL:* IL:|;;| "just check a terminal subtree of the scope")
(IL:* IL:|;;| "just check a terminal subtree of the scope")
(FIND-NODE-SUBSTRUCTURE STR (LENGTH STR)
SCOPE-NODE START-START SCOPE-END))
(T
(IL:* IL:|;;| "check each node from the start subtree up and to the right in the scope subtree. We carefully resume the recursion that would have happened if we had started from the root of the subtree. This means checking remaining structure in super-nodes on our way from the start node back up the subtree.")
(IL:* IL:|;;| "check each node from the start subtree up and to the right in the scope subtree. We carefully resume the recursion that would have happened if we had started from the root of the subtree. This means checking remaining structure in super-nodes on our way from the start node back up the subtree.")
(DO ((NODE START-NODE SUPER-NODE)
(SUPER-NODE (IL:FETCH SUPER-NODE IL:OF START-NODE)
@ -839,7 +830,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN FIND-SUBSTRUCTURE-BACKWARDS (STR SCOPE &OPTIONAL END)
(IL:* IL:|;;;| "Like find-substructure but searches in reverse linearization order.")
(IL:* IL:|;;;| "Like find-substructure but searches in reverse linearization order.")
(MULTIPLE-VALUE-BIND (SCOPE-NODE SCOPE-START SCOPE-END)
(DECOMPOSE-PSEUDO-SELECTION SCOPE)
@ -848,18 +839,18 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(COND
((NULL END-NODE)
(IL:* IL:|;;| "just check the entire scope")
(IL:* IL:|;;| "just check the entire scope")
(FIND-NODE-SUBSTRUCTURE-BACKWARDS STR (LENGTH STR)
SCOPE-NODE SCOPE-START SCOPE-END))
((EQ END-NODE SCOPE-NODE)
(IL:* IL:|;;| "just check an initial subtree of the scope")
(IL:* IL:|;;| "just check an initial subtree of the scope")
(FIND-NODE-SUBSTRUCTURE-BACKWARDS STR (LENGTH STR)
SCOPE-NODE SCOPE-START END-END))
(T
(IL:* IL:|;;| "check each node in the initial subtree of scope terminated by the end subtree. We carefully resume the recursion that would have happened if we had started from the root of the scope subtree. This means checking remaining structure in super-nodes on our way from the end node back up the subtree.")
(IL:* IL:|;;| "check each node in the initial subtree of scope terminated by the end subtree. We carefully resume the recursion that would have happened if we had started from the root of the scope subtree. This means checking remaining structure in super-nodes on our way from the end node back up the subtree.")
(DO ((NODE END-NODE SUPER-NODE)
(SUPER-NODE (IL:FETCH SUPER-NODE IL:OF END-NODE)
@ -873,8 +864,8 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(STRLEN (LENGTH STR))
MATCH)
((OR (NULL NODE)
(SETF MATCH (FIND-NODE-SUBSTRUCTURE-BACKWARDS STR STRLEN NODE
START END CONTINUATION?))
(SETF MATCH (FIND-NODE-SUBSTRUCTURE-BACKWARDS STR STRLEN NODE START
END CONTINUATION?))
(EQ NODE SCOPE-NODE))
MATCH)))))))
@ -885,15 +876,14 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN SEARCH-OBJ (CONTEXT &OPTIONAL SEARCH-STRING WRAP?)
(IL:* IL:|;;;| "Search for the the structure(s) in the string SEARCH-OBJ and display them. The search starts just after the current point or selection, if any.")
(IL:* IL:|;;;| "Search for the the structure(s) in the string SEARCH-OBJ and display them. The search starts just after the current point or selection, if any.")
(MULTIPLE-VALUE-BIND (STR STRLEN)
(STRUCTURE-FROM-STRING (OR SEARCH-STRING (SETF SEARCH-STRING
(GET-USER-STRING CONTEXT "Find: "
(OR (IL:|fetch|
FIND-CANDIDATE
IL:|of| CONTEXT)
FIND-CANDIDATE)))))
(GET-USER-STRING CONTEXT "Find: "
(OR (IL:|fetch| FIND-CANDIDATE
IL:|of| CONTEXT)
FIND-CANDIDATE)))))
(COND
((< STRLEN 0)
(FORMAT (GET-PROMPT-WINDOW CONTEXT)
@ -904,12 +894,12 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
"-- aborted.")
(RETURN-FROM SEARCH-OBJ)))
(IL:* IL:|;;| "update the remembered defaults")
(IL:* IL:|;;| "update the remembered defaults")
(IL:|replace| FIND-CANDIDATE IL:|of| CONTEXT IL:|with| (IL:SETQ FIND-CANDIDATE
SEARCH-STRING))
(IL:|replace| FIND-CANDIDATE IL:|of| CONTEXT IL:|with| (IL:SETQ FIND-CANDIDATE
SEARCH-STRING))
(IL:* IL:|;;| "figure out where to search and where to start")
(IL:* IL:|;;| "figure out where to search and where to start")
(LET* ((SCOPE (SUBNODE 1 (IL:FETCH ROOT IL:OF CONTEXT)))
(START (LET* ((POINT (IL:|fetch| CARET-POINT IL:|of| CONTEXT))
@ -933,36 +923,35 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(T SCOPE)))))
(UNLESS (OR WRAP? START)
(IL:* IL:|;;| "Nothing left to search, and we're not supposed to wrap")
(IL:* IL:|;;| "Nothing left to search, and we're not supposed to wrap")
(FORMAT (GET-PROMPT-WINDOW CONTEXT)
"~%At end; no more structure to search.")
(RETURN-FROM SEARCH-OBJ))
(IL:* IL:|;;| "do the search")
(IL:* IL:|;;| "do the search")
(IF (> STRLEN 1)
(IL:* IL:|;;| "substructure search")
(IL:* IL:|;;| "substructure search")
(FIND-AND-DISPLAY-SUBSTRUCTURE CONTEXT STR SCOPE START WRAP?)
(IL:* IL:|;;| "structure search")
(IL:* IL:|;;| "structure search")
(FIND-AND-DISPLAY-STRUCTURE CONTEXT (FIRST STR)
SCOPE START WRAP?)))))
(DEFUN SEARCH-OBJ-BACKWARDS (CONTEXT &OPTIONAL SEARCH-STRING WRAP?)
(IL:* IL:|;;;| "Like search-obj but searches backwards.")
(IL:* IL:|;;;| "Like search-obj but searches backwards.")
(MULTIPLE-VALUE-BIND (STR STRLEN)
(STRUCTURE-FROM-STRING (OR SEARCH-STRING (SETF SEARCH-STRING
(GET-USER-STRING CONTEXT "Find: "
(OR (IL:|fetch|
FIND-CANDIDATE
IL:|of| CONTEXT)
FIND-CANDIDATE)))))
(GET-USER-STRING CONTEXT "Find: "
(OR (IL:|fetch| FIND-CANDIDATE
IL:|of| CONTEXT)
FIND-CANDIDATE)))))
(COND
((< STRLEN 0)
(FORMAT (GET-PROMPT-WINDOW CONTEXT)
@ -973,12 +962,12 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
"-- aborted.")
(RETURN-FROM SEARCH-OBJ-BACKWARDS)))
(IL:* IL:|;;| "update the remembered defaults")
(IL:* IL:|;;| "update the remembered defaults")
(IL:|replace| FIND-CANDIDATE IL:|of| CONTEXT IL:|with| (IL:SETQ FIND-CANDIDATE
SEARCH-STRING))
(IL:|replace| FIND-CANDIDATE IL:|of| CONTEXT IL:|with| (IL:SETQ FIND-CANDIDATE
SEARCH-STRING))
(IL:* IL:|;;| "figure out where to search and where to start")
(IL:* IL:|;;| "figure out where to search and where to start")
(LET* ((SCOPE (SUBNODE 1 (IL:FETCH ROOT IL:OF CONTEXT)))
(END (LET* ((POINT (IL:|fetch| CARET-POINT IL:|of| CONTEXT))
@ -1002,30 +991,30 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(T SCOPE)))))
(UNLESS (OR WRAP? END)
(IL:* IL:|;;| "Nothing left to search, and we're not supposed to wrap")
(IL:* IL:|;;| "Nothing left to search, and we're not supposed to wrap")
(FORMAT (GET-PROMPT-WINDOW CONTEXT)
"~%At beginning; no more structure to search.")
(RETURN-FROM SEARCH-OBJ-BACKWARDS))
(IL:* IL:|;;| "do the search")
(IL:* IL:|;;| "do the search")
(IF (> STRLEN 1)
(IL:* IL:|;;| "substructure search")
(IL:* IL:|;;| "substructure search")
(FIND-AND-DISPLAY-SUBSTRUCTURE-BACKWARDS CONTEXT STR SCOPE END WRAP?)
(IL:* IL:|;;| "structure search")
(IL:* IL:|;;| "structure search")
(FIND-AND-DISPLAY-STRUCTURE-BACKWARDS CONTEXT (FIRST STR)
SCOPE END WRAP?)))))
(DEFUN SUBSTITUTE-OBJ (CONTEXT &OPTIONAL CHARCODE OLDSTR NEWSTR REMOVE?)
(IL:* IL:|;;;| "OLDSTR and NEWSTR are strings. In the scope of the selection, replace every occurence of structure matching OLDSTR by structure parsed from NEWSTR. If REMOVE? is specified, just remove structure matching OLD.")
(IL:* IL:|;;;| "OLDSTR and NEWSTR are strings. In the scope of the selection, replace every occurence of structure matching OLDSTR by structure parsed from NEWSTR. If REMOVE? is specified, just remove structure matching OLD.")
(IL:* IL:|;;;| "We preserve the selection as best we can. Point gets thrown away.")
(IL:* IL:|;;;| "We preserve the selection as best we can. Point gets thrown away.")
(CLOSE-OPEN-NODE CONTEXT)
(LET* ((PROMPTWINDOW (GET-PROMPT-WINDOW CONTEXT))
@ -1033,7 +1022,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(SCOPE NIL)
(TYPE (IF REMOVE?
"delet"
"substitut"))) (IL:* IL:\; "hack!!!")
"substitut"))) (IL:* IL:\; "hack!!!")
(UNLESS (AND (IL:|fetch| SELECT-NODE IL:|of| SELECTION)
(EQ (IL:|fetch| SELECT-TYPE IL:|of| SELECTION)
'STRUCTURE))
@ -1041,14 +1030,13 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(RETURN-FROM SUBSTITUTE-OBJ T))
(SETQ SCOPE (PSEUDO-SELECTION-FROM-SELECTION SELECTION))
(MULTIPLE-VALUE-BIND (OLD OLDLEN)
(STRUCTURE-FROM-STRING (OR OLDSTR (SETF OLDSTR
(GET-USER-STRING CONTEXT
(IF REMOVE?
"Delete form: "
"Replace old form: ")
(OR (IL:|fetch| FIND-CANDIDATE
IL:|of| CONTEXT)
FIND-CANDIDATE)))))
(STRUCTURE-FROM-STRING (OR OLDSTR (SETF OLDSTR (GET-USER-STRING CONTEXT
(IF REMOVE?
"Delete form: "
"Replace old form: ")
(OR (IL:|fetch| FIND-CANDIDATE
IL:|of| CONTEXT)
FIND-CANDIDATE)))))
(COND
((< OLDLEN 0)
(FORMAT PROMPTWINDOW " -- Invalid structure.")
@ -1060,13 +1048,13 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(IF REMOVE?
(VALUES NIL 0)
(STRUCTURE-FROM-STRING (OR NEWSTR
(SETF NEWSTR
(GET-USER-STRING
CONTEXT "with new form: "
(OR (IL:|fetch|
SUBSTITUTE-CANDIDATE
IL:|of| CONTEXT)
SUBSTITUTE-CANDIDATE))))))
(SETF NEWSTR
(GET-USER-STRING CONTEXT
"with new form: "
(OR (IL:|fetch|
SUBSTITUTE-CANDIDATE
IL:|of| CONTEXT)
SUBSTITUTE-CANDIDATE))))))
(COND
((< NEWLEN 0)
(FORMAT PROMPTWINDOW " -- Invalid structure.")
@ -1076,16 +1064,16 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(FORMAT PROMPTWINDOW "-- aborted.")
(RETURN-FROM SUBSTITUTE-OBJ T)))
(IL:* IL:|;;| "update defaults ")
(IL:* IL:|;;| "update defaults ")
(IL:|replace| FIND-CANDIDATE IL:|of| CONTEXT IL:|with| (IL:SETQ
FIND-CANDIDATE
OLDSTR))
(IL:|replace| FIND-CANDIDATE IL:|of| CONTEXT IL:|with| (IL:SETQ FIND-CANDIDATE
OLDSTR))
(UNLESS REMOVE?
(IL:|replace| SUBSTITUTE-CANDIDATE IL:|of| CONTEXT
IL:|with| (IL:SETQ SUBSTITUTE-CANDIDATE NEWSTR)))
(IL:|replace| SUBSTITUTE-CANDIDATE IL:|of| CONTEXT IL:|with| (IL:SETQ
SUBSTITUTE-CANDIDATE
NEWSTR)))
(IL:* IL:|;;| "do the substitution, report, and reselect.")
(IL:* IL:|;;| "do the substitution, report, and reselect.")
(MULTIPLE-VALUE-BIND (NEW-SCOPE SUBCOUNT)
(IF (> OLDLEN 1)
@ -1101,14 +1089,14 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN SUBSTITUTE-STRUCTURE (CONTEXT OLD NEW SCOPE &OPTIONAL REMOVE?)
(IL:* IL:|;;;| "Inside SCOPE, replace any node with structure OLD by nodes gotten from parsing NEW. If REMOVE? is given, just delete the old nodes. Returns two values: the final scope after all substitutions are made, and the number of substitutions/deletions made.")
(IL:* IL:|;;;| "Inside SCOPE, replace any node with structure OLD by nodes gotten from parsing NEW. If REMOVE? is given, just delete the old nodes. Returns two values: the final scope after all substitutions are made, and the number of substitutions/deletions made.")
(IL:* IL:|;;;| "The substitution is done as a single undoable operation, and the current selection and point are thrown away.")
(IL:* IL:|;;;| "The substitution is done as a single undoable operation, and the current selection and point are thrown away.")
(MULTIPLE-VALUE-BIND (SCOPE-NODE SCOPE-START SCOPE-END)
(DECOMPOSE-PSEUDO-SELECTION SCOPE)
(LET* ((ROOT (IL:FETCH ROOT IL:OF CONTEXT))(IL:* IL:\;
 "substituting for root is special")
(LET* ((ROOT (IL:FETCH ROOT IL:OF CONTEXT)) (IL:* IL:\;
 "substituting for root is special")
(POINT (IL:FETCH CARET-POINT IL:OF CONTEXT))
(SELECTION (IL:FETCH SELECTION IL:OF CONTEXT))
(NEWLEN (IF REMOVE?
@ -1139,14 +1127,14 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(SET-SELECTION-NOWHERE SELECTION)
(VALUES SCOPE NUMSUBS))
(IL:* IL:|;;| "replace the target ")
(IL:* IL:|;;| "replace the target ")
(SELECT-NODE CONTEXT TARGET)
(COND
(REMOVE? (COND
((EQ TARGET-SUPER ROOT)
(IL:* IL:|;;| "\"delete\" the root structure by making it nil")
(IL:* IL:|;;| "\"delete\" the root structure by making it nil")
(PENDING-DELETE POINT SELECTION)
(INSERT-NULL-LIST CONTEXT))
@ -1154,19 +1142,19 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(T (PENDING-DELETE POINT SELECTION)
(INSERT POINT CONTEXT (COPY-LIST NEW-NODES))))
(IL:* IL:|;;| "fix up the scope, if necessary")
(IL:* IL:|;;| "fix up the scope, if necessary")
(COND
((EQ TARGET SCOPE-NODE)
(IL:* IL:|;;| "matched the scope, so we're done")
(IL:* IL:|;;| "matched the scope, so we're done")
(COND
(REMOVE? (SETF SCOPE NIL))
((= NEWLEN 1)
(SETF SCOPE (SUBNODE TARGET-INDEX TARGET-SUPER)))
(T
(IL:* IL:|;;| "replacing the root structure with multiple nodes inserts a new level of list between the root (target-super) and the multiple nodes inserted. In this case, make the scope node be the new list node instead of the root itself.")
(IL:* IL:|;;| "replacing the root structure with multiple nodes inserts a new level of list between the root (target-super) and the multiple nodes inserted. In this case, make the scope node be the new list node instead of the root itself.")
(SETF SCOPE (LIST (IF (EQ TARGET-SUPER ROOT)
(SUBNODE 1 ROOT)
@ -1176,7 +1164,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(SETF RESUME NIL))
((AND SCOPE-START (EQ TARGET-SUPER SCOPE-NODE))
(IL:* IL:|;;| "matched a direct subnode of an extended scope")
(IL:* IL:|;;| "matched a direct subnode of an extended scope")
(WHEN (= TARGET-INDEX SCOPE-END)
(SETF RESUME NIL))
@ -1185,9 +1173,9 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN SUBSTITUTE-SUBSTRUCTURE (CONTEXT OLD NEW SCOPE &OPTIONAL REMOVE?)
(IL:* IL:|;;;| "Inside SCOPE, replace any sequences of nodes whose structures sequentially match the elements of OLD by nodes gotten from parsing NEW. If REMOVE? is given, just delete the old sequences. Returns two values: the final scope after all substitutions are made, and the number of substitutions/deletions made.")
(IL:* IL:|;;;| "Inside SCOPE, replace any sequences of nodes whose structures sequentially match the elements of OLD by nodes gotten from parsing NEW. If REMOVE? is given, just delete the old sequences. Returns two values: the final scope after all substitutions are made, and the number of substitutions/deletions made.")
(IL:* IL:|;;;| "The substitution is done as a single undoable operation, and the current selection and point are thrown away.")
(IL:* IL:|;;;| "The substitution is done as a single undoable operation, and the current selection and point are thrown away.")
(MULTIPLE-VALUE-BIND (SCOPE-NODE SCOPE-START SCOPE-END)
(DECOMPOSE-PSEUDO-SELECTION SCOPE)
@ -1218,7 +1206,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(MULTIPLE-VALUE-BIND (TNODE TSTART TEND)
(DECOMPOSE-PSEUDO-SELECTION TARGET)
(IL:* IL:|;;| "replace the target ")
(IL:* IL:|;;| "replace the target ")
(SELECT-PSEUDO-SEGMENT CONTEXT TARGET)
(COND
@ -1226,13 +1214,12 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(T (PENDING-DELETE POINT SELECTION)
(INSERT POINT CONTEXT (COPY-LIST NEW-NODES))))
(IL:* IL:|;;|
 "fix up the scope, if necessary, and figure where to resume")
(IL:* IL:|;;| "fix up the scope, if necessary, and figure where to resume")
(COND
((AND SCOPE-START (EQ TNODE SCOPE-NODE))
(IL:* IL:|;;| "matched direct subnodes of an extended scope")
(IL:* IL:|;;| "matched direct subnodes of an extended scope")
(IF (= TEND SCOPE-END)
(SETF RESUME NIL)
@ -1243,7 +1230,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN STRUCTURE-FROM-SELECTION (SELECTION)
(IL:* IL:|;;;| "selection must be a structure selection. Return the structure encompassed by selection, which if the selection is a node is the structure of that node, and if the selection is a segment a list of the structures of the nodes in that segment.")
(IL:* IL:|;;;| "selection must be a structure selection. Return the structure encompassed by selection, which if the selection is a node is the structure of that node, and if the selection is a segment a list of the structures of the nodes in that segment.")
(LET* ((NODE (IL:FETCH SELECT-NODE IL:OF SELECTION))
(START (IL:FETCH SELECT-START IL:OF SELECTION))
@ -1263,7 +1250,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN STRUCTURE-FROM-STRING (STR)
(IL:* IL:|;;;| "return all the structures that can be read from string as a list. return a second value saying how many structures there were. If an error is encountered, a second value of -1 is returned. ")
(IL:* IL:|;;;| "return all the structures that can be read from string as a list. return a second value saying how many structures there were. If an error is encountered, a second value of -1 is returned. ")
(COND
((NULL STR)
@ -1285,7 +1272,7 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(DEFUN COMMENT-OUT-SELECTION (CONTEXT CHARCODE)
(IL:* IL:|;;;| "given a sequence of whole structure selections, build a 5 level comment node and replace the nodes with the comment.")
(IL:* IL:|;;;| "given a sequence of whole structure selections, build a 5 level comment node and replace the nodes with the comment.")
(LET* ((SELECTION (IL:FETCH SELECTION IL:OF CONTEXT))
(POINT (IL:FETCH CARET-POINT IL:OF CONTEXT))
@ -1301,14 +1288,14 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(START (WITH-OUTPUT-TO-STRING (S)
(IL:BIND BLANK-BEFORE IL:FOR I IL:FROM START
IL:TO (OR (IL:FETCH SELECT-END IL:OF SELECTION)
START) IL:AS X
START) IL:AS X
IL:ON (CDR (IL:NTH (IL:FETCH SUB-NODES IL:OF NODE)
START))
IL:DO (IF BLANK-BEFORE
(WRITE-CHAR #\Space S)
(SETQ BLANK-BEFORE T))
(PRIN1 (IL:FETCH STRUCTURE IL:OF (CAR X))
S))))
START)) IL:DO (IF BLANK-BEFORE
(WRITE-CHAR #\Space S)
(SETQ BLANK-BEFORE T))
(PRIN1 (IL:FETCH STRUCTURE
IL:OF (CAR X))
S))))
(T (FORMAT NIL "~S" (IL:FETCH STRUCTURE IL:OF NODE))))))
(WHEN STR
(LET ((NEW-NODE (PARSE-NEW (LIST 'IL:* 'IL:\| STR)
@ -1585,42 +1572,40 @@ IL:|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SEDIT-COMMANDS.;6|)
(il:lambda (context node subnodes) (il:* il:\; "Edited 7-Jul-87 09:39 by DCB") (il:* il:|;;;| "sticks subnodes back into node and revives them. ") (rplacd (il:fetch sub-nodes il:of node) subnodes) (il:for subnode il:in subnodes il:as index il:from 1 il:do (il:replace super-node il:of subnode il:with node) (il:replace sub-node-index il:of subnode il:with index) (detach-node subnode) (revive-node subnode (il:fetch depth il:of node))) (il:* il:|;;| "used to reparse here. now if we simply note the change, the format types, format values, and linear forms will be recomputed.") (note-change node context))
)
)
(IL:PUTPROPS IL:SEDIT-COMMANDS IL:COPYRIGHT ("Venue & Xerox Corporation" 1986 1987 1988 1990 1991 2018
2021))
(IL:DECLARE\: IL:DONTCOPY
(IL:FILEMAP (NIL (13643 14213 (PSEUDO-SELECTION-FROM-SELECTION 13643 . 14213)) (14215 14969 (
COMPOSE-PSEUDO-SELECTION 14215 . 14969)) (14971 15510 (DECOMPOSE-PSEUDO-SELECTION 14971 . 15510)) (
15512 16309 (SELECTION-FROM-PSEUDO-SELECTION 15512 . 16309)) (16311 16614 (SELECT-PSEUDO-SEGMENT 16311
. 16614)) (16679 17569 (ADD-COMMAND 16679 . 17569)) (17571 19734 (GET-SELECTION 17571 . 19734)) (
19736 20916 (REPLACE-SELECTION 19736 . 20916)) (20918 21410 (RESET-COMMANDS 20918 . 21410)) (21412
21581 (DEFAULT-COMMANDS 21412 . 21581)) (22059 23162 (EQUALIZE-STRING-WIDTHS 22059 . 23162)) (23164
23362 (MINIMUM-STRING-WIDTH 23164 . 23362)) (23364 23562 (MAXIMUM-STRING-WIDTH 23364 . 23562)) (23564
24435 (FIND-AND-DISPLAY-STRUCTURE 23564 . 24435)) (24437 25121 (FIND-AND-DISPLAY-STRUCTURE-BACKWARDS
24437 . 25121)) (25123 26027 (FIND-AND-DISPLAY-SUBSTRUCTURE 25123 . 26027)) (26029 26732 (
FIND-AND-DISPLAY-SUBSTRUCTURE-BACKWARDS 26029 . 26732)) (26734 27375 (FIND-NTH-STRUCTURE 26734 . 27375
)) (27377 30107 (FIND-NODE-SUBSTRUCTURE 27377 . 30107)) (30109 31362 (FIND-NODE-SUBSTRUCTURE-BACKWARDS
30109 . 31362)) (31364 32343 (FIND-OBJ 31364 . 32343)) (32345 33745 (FIND-SELECTION 32345 . 33745)) (
33747 35439 (FIND-SELECTION-BACKWARDS 33747 . 35439)) (35441 38170 (FIND-STRUCTURE 35441 . 38170)) (
38172 40519 (FIND-STRUCTURE-BACKWARDS 38172 . 40519)) (40521 43450 (FIND-SUBSTRUCTURE 40521 . 43450))
(43452 45752 (FIND-SUBSTRUCTURE-BACKWARDS 43452 . 45752)) (45754 45990 (GET-USER-STRING 45754 . 45990)
) (45992 49700 (SEARCH-OBJ 45992 . 49700)) (49702 53367 (SEARCH-OBJ-BACKWARDS 49702 . 53367)) (53369
58195 (SUBSTITUTE-OBJ 53369 . 58195)) (58197 62853 (SUBSTITUTE-STRUCTURE 58197 . 62853)) (62855 66027
(SUBSTITUTE-SUBSTRUCTURE 62855 . 66027)) (66029 67191 (STRUCTURE-FROM-SELECTION 66029 . 67191)) (67193
68036 (STRUCTURE-FROM-STRING 67193 . 68036)) (68038 70179 (COMMENT-OUT-SELECTION 68038 . 70179)) (
70180 125041 (ADD-MENU 70193 . 70856) (BACKSPACE 70858 . 71837) (CHANGE-PACKAGE 71839 . 74639) (
CHANGE-PRINTBASE 74641 . 76823) (CHANGE-QUOTE 76825 . 77180) (CONVERT-COMMENT 77182 . 78942) (
CONVERT-COMMENT-STRUCTURE 78944 . 80247) (CONVERT-COMMENT-TAIL 80249 . 81649) (CREATE-COMMAND-TABLE
81651 . 83629) (DEFAULT-EDIT-FN 83631 . 83768) (DELETE-SELECTION 83770 . 84452) (DELETE-WORD 84454 .
86555) (DO-MUTATION 86557 . 87105) (EDIT-SELECTION 87107 . 87555) (EVAL-SELECTION 87557 . 89426) (
EXPAND 89428 . 90557) (EXTRACT-CURRENT-SELECTION 90559 . 92927) (FIND-COMMENT 92929 . 93623) (GET-MENU
93625 . 94002) (EDIT-HELP 94004 . 95079) (HELPMENU 95081 . 97870) (INPUT-DOT 97872 . 100004) (
INPUT-ESCAPE 100006 . 100254) (INPUT-NORMAL-CHAR 100256 . 102289) (INPUT-QUOTE 102291 . 105373) (
INPUT-SQUARE-BRACKET 105375 . 105726) (INPUT-STRINGDELIM 105728 . 107127) (INPUT-TOKENDELIM 107129 .
108109) (INSERT-MULTI-ESCAPE 108111 . 109239) (INSERT-SPECIAL-CHARACTER 109241 . 110501) (
INSPECT-SELECTION 110503 . 111038) (JOIN 111040 . 114710) (MENU-CLOSEFN 114712 . 114930) (
MENU-FIND-SELECTEDFN 114932 . 115632) (MENU-INIT-STATE 115634 . 116441) (MENU-PACKAGE-SELECTEDFN
116443 . 117494) (MENU-PRINTBASE-SELECTEDFN 117496 . 118372) (MENU-SELECTEDFN 118374 . 118800) (
MENU-SUBSTITUTE-SELECTEDFN 118802 . 119762) (MUTATE 119764 . 120874) (QUOTE-CURRENT-SELECTION 120876
. 121643) (REDISPLAY 121645 . 121884) (REDO 121886 . 122380) (SELECTED-FN-NAME 122382 . 122827) (
SKIP-TO-GAP 122829 . 123606) (UNDO 123608 . 124408) (UNDO-EXTRACT 124410 . 125039)))))
(IL:FILEMAP (NIL (13440 14010 (PSEUDO-SELECTION-FROM-SELECTION 13440 . 14010)) (14012 14766 (
COMPOSE-PSEUDO-SELECTION 14012 . 14766)) (14768 15307 (DECOMPOSE-PSEUDO-SELECTION 14768 . 15307)) (
15309 16106 (SELECTION-FROM-PSEUDO-SELECTION 15309 . 16106)) (16108 16411 (SELECT-PSEUDO-SEGMENT 16108
. 16411)) (16476 17366 (ADD-COMMAND 16476 . 17366)) (17368 19539 (GET-SELECTION 17368 . 19539)) (
19541 20721 (REPLACE-SELECTION 19541 . 20721)) (20723 21044 (RESET-COMMANDS 20723 . 21044)) (21046
21215 (DEFAULT-COMMANDS 21046 . 21215)) (21693 22701 (EQUALIZE-STRING-WIDTHS 21693 . 22701)) (22703
22901 (MINIMUM-STRING-WIDTH 22703 . 22901)) (22903 23101 (MAXIMUM-STRING-WIDTH 22903 . 23101)) (23103
23974 (FIND-AND-DISPLAY-STRUCTURE 23103 . 23974)) (23976 24660 (FIND-AND-DISPLAY-STRUCTURE-BACKWARDS
23976 . 24660)) (24662 25566 (FIND-AND-DISPLAY-SUBSTRUCTURE 24662 . 25566)) (25568 26271 (
FIND-AND-DISPLAY-SUBSTRUCTURE-BACKWARDS 25568 . 26271)) (26273 26914 (FIND-NTH-STRUCTURE 26273 . 26914
)) (26916 29646 (FIND-NODE-SUBSTRUCTURE 26916 . 29646)) (29648 30875 (FIND-NODE-SUBSTRUCTURE-BACKWARDS
29648 . 30875)) (30877 31856 (FIND-OBJ 30877 . 31856)) (31858 33229 (FIND-SELECTION 31858 . 33229)) (
33231 34791 (FIND-SELECTION-BACKWARDS 33231 . 34791)) (34793 37522 (FIND-STRUCTURE 34793 . 37522)) (
37524 39851 (FIND-STRUCTURE-BACKWARDS 37524 . 39851)) (39853 42782 (FIND-SUBSTRUCTURE 39853 . 42782))
(42784 45084 (FIND-SUBSTRUCTURE-BACKWARDS 42784 . 45084)) (45086 45322 (GET-USER-STRING 45086 . 45322)
) (45324 48925 (SEARCH-OBJ 45324 . 48925)) (48927 52485 (SEARCH-OBJ-BACKWARDS 48927 . 52485)) (52487
57315 (SUBSTITUTE-OBJ 52487 . 57315)) (57317 61983 (SUBSTITUTE-STRUCTURE 57317 . 61983)) (61985 65128
(SUBSTITUTE-SUBSTRUCTURE 61985 . 65128)) (65130 66292 (STRUCTURE-FROM-SELECTION 65130 . 66292)) (66294
67137 (STRUCTURE-FROM-STRING 66294 . 67137)) (67139 69410 (COMMENT-OUT-SELECTION 67139 . 69410)) (
69411 124272 (ADD-MENU 69424 . 70087) (BACKSPACE 70089 . 71068) (CHANGE-PACKAGE 71070 . 73870) (
CHANGE-PRINTBASE 73872 . 76054) (CHANGE-QUOTE 76056 . 76411) (CONVERT-COMMENT 76413 . 78173) (
CONVERT-COMMENT-STRUCTURE 78175 . 79478) (CONVERT-COMMENT-TAIL 79480 . 80880) (CREATE-COMMAND-TABLE
80882 . 82860) (DEFAULT-EDIT-FN 82862 . 82999) (DELETE-SELECTION 83001 . 83683) (DELETE-WORD 83685 .
85786) (DO-MUTATION 85788 . 86336) (EDIT-SELECTION 86338 . 86786) (EVAL-SELECTION 86788 . 88657) (
EXPAND 88659 . 89788) (EXTRACT-CURRENT-SELECTION 89790 . 92158) (FIND-COMMENT 92160 . 92854) (GET-MENU
92856 . 93233) (EDIT-HELP 93235 . 94310) (HELPMENU 94312 . 97101) (INPUT-DOT 97103 . 99235) (
INPUT-ESCAPE 99237 . 99485) (INPUT-NORMAL-CHAR 99487 . 101520) (INPUT-QUOTE 101522 . 104604) (
INPUT-SQUARE-BRACKET 104606 . 104957) (INPUT-STRINGDELIM 104959 . 106358) (INPUT-TOKENDELIM 106360 .
107340) (INSERT-MULTI-ESCAPE 107342 . 108470) (INSERT-SPECIAL-CHARACTER 108472 . 109732) (
INSPECT-SELECTION 109734 . 110269) (JOIN 110271 . 113941) (MENU-CLOSEFN 113943 . 114161) (
MENU-FIND-SELECTEDFN 114163 . 114863) (MENU-INIT-STATE 114865 . 115672) (MENU-PACKAGE-SELECTEDFN
115674 . 116725) (MENU-PRINTBASE-SELECTEDFN 116727 . 117603) (MENU-SELECTEDFN 117605 . 118031) (
MENU-SUBSTITUTE-SELECTEDFN 118033 . 118993) (MUTATE 118995 . 120105) (QUOTE-CURRENT-SELECTION 120107
. 120874) (REDISPLAY 120876 . 121115) (REDO 121117 . 121611) (SELECTED-FN-NAME 121613 . 122058) (
SKIP-TO-GAP 122060 . 122837) (UNDO 122839 . 123639) (UNDO-EXTRACT 123641 . 124270)))))
IL:STOP

Binary file not shown.