1
0
mirror of synced 2026-01-13 15:37:38 +00:00

TEDIT + FILEBROWSER: Add function TEDIT-SEE, call from FILEBROWSER

This commit is contained in:
rmkaplan 2021-09-19 19:10:18 -07:00
parent 8ec1ca966d
commit 21088d3eff
4 changed files with 244 additions and 242 deletions

View File

@ -1,10 +1,10 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10)
(FILECREATED "21-Aug-2021 23:33:58" 
|{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>FILEBROWSER.;9| 263236
(FILECREATED "19-Sep-2021 18:08:05" 
|{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>FILEBROWSER.;9| 260675
|changes| |to:| (FNS FB.FIX-DIRECTORY-DATES)
|changes| |to:| (FNS FB.EDITCOMMAND.ONEFILE)
|previous| |date:| "21-Aug-2021 23:08:34"
|previous| |date:| "21-Aug-2021 23:33:58"
|{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>FILEBROWSER.;7|)
@ -22,11 +22,11 @@
(TERPRI T))))
(FILES ATTACHEDWINDOW ICONW TABLEBROWSER)
(P
(* |;;| "Set up for MODERNIZE windows, whether or not MODERNIZE is pre-loaded")
(* |;;| "Set up for MODERNIZE windows, whether or not MODERNIZE is pre-loaded")
(MOVD? 'NILL 'TOTOPW.MODERNIZE))
(* |;;| "JDS 11/94 FB.ICONSPEC is now an INITVAR so we can create smaller ones in profiles for, e.g., laptops.")
(* |;;| "JDS 11/94 FB.ICONSPEC is now an INITVAR so we can create smaller ones in profiles for, e.g., laptops.")
(INITVARS (FB.EXPUNGE?MENU)
(FB.BROWSERFONT DEFAULTFONT)
@ -45,7 +45,7 @@
(FB.PROMPTFONT LITTLEFONT)
(FB.BROWSER.DIRECTORY.FONT BOLDFONT)))
(P
(* |;;| "FONTSET fills in the variables in FONTVARS for us, so do it.")
(* |;;| "FONTSET fills in the variables in FONTVARS for us, so do it.")
(FONTSET (FONTSET)))
(ADDVARS (CACHEDMENUS FB.EXPUNGE?MENU))
@ -170,16 +170,16 @@ You specify how many versions to keep.")))
(VARS FB.VERSION.MENU.ITEMS FB.CLOSE.MENU.ITEMS FB.DEPTH.MENU.ITEMS FB.INFO.MENU.ITEMS
FB.DEFAULT.NAME.WIDTH FB.INFO.FIELDS FB.INFOSHADE FB.ITEMUNSELECTEDSHADE
FB.ITEMSELECTEDSHADE))
(COMS (* \; "Entries")
(COMS (* \; "Entries")
(COMMANDS "fb")
(FNS FB FB.COPYBINARYCOMMAND FB.COPYTEXTCOMMAND FILEBROWSER FB.TABLEBROWSER
FB.SELECTEDFILES FB.FETCHFILENAME FB.DIRECTORYP FB.PROMPTWPRINT FB.PROMPTW.FORMAT
FB.PROMPTFORINPUT FB.YES-OR-NO-P FB.ALLOW.ABORT \\FB.HARDCOPY.TOFILE.EXTENSION)
(* \; "Setup")
(* \; "Setup")
(FNS FB.STARTUP FB.MAKERIGIDWINDOW)
(FNS FB.PRINTFN FB.COPYFN))
(COMS (* \;
 "commands and major subfunctions")
(COMS (* \;
 "commands and major subfunctions")
(FNS FB.MENU.WHENSELECTEDFN FB.COMMANDSELECTEDFN FB.SUBITEMP FB.MAKE.BROWSER.BUSY
FB.FINISH.COMMAND FB.HANDLE.ABORT.BUTTON)
(FNS FB.DELETECOMMAND FB.DELVERCOMMAND FB.IS.NOT.SUBDIRECTORY.ITEM FB.DELVER.FILES
@ -204,7 +204,7 @@ You specify how many versions to keep.")))
(FNS FB.EXPUNGECOMMAND FB.NEWPATTERNCOMMAND FB.NEWINFOCOMMAND FB.DEPTHCOMMAND
FB.SHAPECOMMAND FB.REMOVE.FILE FB.COUNT.FILE.CHANGE FB.SETNEWPATTERN
FB.GET.NEWPATTERN FB.OPTIONSCOMMAND))
(COMS (* \; "window functions")
(COMS (* \; "window functions")
(FNS FB.INFOMENU.SHADEINITIALSELECTIONS FB.INFO.ITEM.NAMED)
(FNS FB.MAKECOUNTERWINDOW FB.COUNTERW.REDISPLAYFN FB.UPDATE.COUNTERS
FB.DISPLAY.COUNTERS FB.COUNTER.STRING)
@ -253,7 +253,7 @@ You specify how many versions to keep.")))
(FILESLOAD ATTACHEDWINDOW ICONW TABLEBROWSER)
(* |;;| "Set up for MODERNIZE windows, whether or not MODERNIZE is pre-loaded")
(* |;;| "Set up for MODERNIZE windows, whether or not MODERNIZE is pre-loaded")
(MOVD? 'NILL 'TOTOPW.MODERNIZE)
@ -295,7 +295,7 @@ You specify how many versions to keep.")))
(FB.BROWSER.DIRECTORY.FONT BOLDFONT))
(* |;;| "FONTSET fills in the variables in FONTVARS for us, so do it.")
(* |;;| "FONTSET fills in the variables in FONTVARS for us, so do it.")
(FONTSET (FONTSET))
@ -1684,84 +1684,49 @@ Your deletions are thus ignored.")))
ELSE (FB.FASTSEECOMMAND BROWSER KEY ITEM MENU)))))
(FB.EDITCOMMAND.ONEFILE
(LAMBDA (BROWSER FILE OPTION ITEM MENU) (* \; "Edited 8-Aug-2021 11:16 by rmk:")
(* \; "Edited 27-Feb-2021 20:07 by rmk:")
(* \; "Edited 1-Feb-88 19:00 by bvm:")
(LAMBDA (BROWSER FILE OPTION ITEM MENU) (* \; "Edited 19-Sep-2021 18:07 by rmk:")
(* \; "Edited 27-Feb-2021 20:07 by rmk:")
(* \; "Edited 1-Feb-88 19:00 by bvm:")
(* |;;| "Called when we know that FILE is a file, not a directory, and that TEDIT exists. If OPTION is READONLY, we don't want to edit, just view. If FILE is a lisp sourcefile, we execute the font changes by COPY.TEXT.TO.IMAGE.")
(* |;;| "Called when we know that FILE is a file, not a directory, and that TEDIT exists. If OPTION is READONLY, we don't want to edit, just view. .")
(* |;;| "We clear the shade stuff here because we don't want the FB to come up on top of our see/edit region. We don't factor it to the top because we want to do whatever heavy lifting (copying files) before. Don't factor to the end because then it is too late--the TEDIT window was up and then buried. (If TEDIT had a don'topen option, we could set things up, then change the shade, then open. We could also do the manufactured title on the window before it shows.")
(* |;;| "We clear the shade stuff here because we don't want the FB to come up on top of our see/edit region. Don't factor to the end because then it is too late--the TEDIT window was up and then buried. (If TEDIT had a don'topen option, we could set things up, then change the shade, then open. We could also do the manufactured title on the window before it shows.")
(CL:UNLESS OPTION (SETQ OPTION FB.DEFAULT.EDITOR))
(CL:MULTIPLE-VALUE-BIND
(IGNORE CONDITION)
(IGNORE-ERRORS
(LET ((ENV (LISPSOURCEFILEP FILE)))
(IF ENV
THEN (SELECTQ OPTION
((LISP NIL TEDIT)
(* |;;|
"Asks to load prop and edits the coms. We really don't want to use a text editor on a source file.")
(CL:UNLESS OPTION (SETQ OPTION FB.DEFAULT.EDITOR)) (* \; "Default editor is TEDIT. ")
(* |;;| "The FUNCALL at the bottom is concerning.")
(* |;;| "Unshade the item before we create the TEDIT window, and tell FB.FINISH.COMMAND that we did that. That way, the FB window won't pop up on top.")
(SHADEITEM ITEM MENU FB.ITEMUNSELECTEDSHADE)
(PUTMENUPROP MENU 'ITEMSHADE (CONS ITEM FB.ITEMUNSELECTEDSHADE))
(FB.EDITLISPFILE FILE BROWSER))
(READONLY (* \; "READONLY on call from SEE")
(CL:WITH-OPEN-FILE
(STREAM FILE :DIRECTION :INPUT)
(LET ((NSTR (OPENTEXTSTREAM)))
(\\EXTERNALFORMAT STREAM ENV)
(COPY.TEXT.TO.IMAGE STREAM NSTR)
(SHADEITEM ITEM MENU FB.ITEMUNSELECTEDSHADE)
(PUTMENUPROP MENU 'ITEMSHADE (CONS ITEM FB.ITEMUNSELECTEDSHADE))
(* |;;| "Unshade the item before we create the TEDIT window, and tell FB.FINISH.COMMAND that we did that. That way, the FB window won't pop up on top.")
(* |;;| "The particular item may be a subitem of the EDIT or SEE menu item, in which case we want to unshade that too. Seems a little bruteforce")
(SHADEITEM ITEM MENU FB.ITEMUNSELECTEDSHADE)
(PUTMENUPROP MENU 'ITEMSHADE (CONS ITEM
(CL:UNLESS (MEMBER ITEM (FETCH (MENU ITEMS) OF MENU))
(FOR I IN (FETCH (MENU ITEMS) OF MENU)
WHEN (MEMBER ITEM (CDR (SASSOC 'SUBITEMS I))) DO (SHADEITEM I MENU
FB.ITEMUNSELECTEDSHADE)
(PUTMENUPROP MENU 'ITEMSHADE
(CONS I
FB.ITEMUNSELECTEDSHADE
))
(WINDOWPROP (WFROMDS (TEXTSTREAM
(TEDIT NSTR NIL NIL
'(READONLY T))))
'TITLE
(CONCAT "SEE window for " (FULLNAME STREAM))))))
(CL:FUNCALL OPTION (MKATOM FILE)))
ELSE (SELECTQ OPTION
(READONLY
))))
(CL:MULTIPLE-VALUE-BIND (IGNORE CONDITION)
(IGNORE-ERRORS (SELECTQ OPTION
(READONLY (TEDIT-SEE FILE))
(LISP (* \;
"Original code allowed OPTION=NIL in thie branch, but NIL should have been coerced to TEDIT above.")
(* |;;| "From SEE command. We want to be able to scroll around in the content, can't do that if it isn't random access. So in that case we do a secret NODIRCORE copy and look at that.")
(* |;;| "Asks to load prop and edits the coms, presumably with SEDIT. We really don't want to use a text editor on a source file.")
(CL:WITH-OPEN-FILE
(STREAM FILE :DIRECTION :INPUT)
(LET ((NSTR))
(CL:UNLESS (RANDACCESSP STREAM)
(SETQ NSTR (OPENSTREAM
'{NODIRCORE}
'BOTH
'NEW NIL (LIST (LIST 'TYPE
(GETFILEINFO
STREAM
'TYPE)))))
(COPYBYTES STREAM NSTR))
(SHADEITEM ITEM MENU FB.ITEMUNSELECTEDSHADE)
(PUTMENUPROP MENU 'ITEMSHADE (CONS ITEM
FB.ITEMUNSELECTEDSHADE))
(WINDOWPROP (WFROMDS (TEXTSTREAM (TEDIT (OR NSTR STREAM)
NIL NIL
'(READONLY T))))
'TITLE
(CONCAT "SEE window for " (FULLNAME STREAM))))))
((TEDIT NIL)
(SHADEITEM ITEM MENU FB.ITEMUNSELECTEDSHADE)
(PUTMENUPROP MENU 'ITEMSHADE (CONS ITEM FB.ITEMUNSELECTEDSHADE))
(TEDIT (MKATOM FILE)))
(LISP (FB.PROMPTW.FORMAT BROWSER
"Failed because not a Lisp source file"))
(CL:FUNCALL OPTION (MKATOM FILE))))))
(|if| CONDITION
|then| (FB.PROMPTW.FORMAT BROWSER "Failed because ~A" CONDITION)))))
(IF (LISPSOURCEFILEP FILE)
THEN (FB.EDITLISPFILE FILE BROWSER)
ELSE (FB.PROMPTW.FORMAT BROWSER
"Failed because not a Lisp source file")))
(PROGN
(* |;;| "Might just be a call to TEDIT (if OPTION = TEDIT)")
(CL:FUNCALL OPTION (MKATOM FILE)))))
(|if| CONDITION
|then| (FB.PROMPTW.FORMAT BROWSER "Failed because ~A" CONDITION)))))
(FB.EDITLISPFILE
(LAMBDA (FILE BROWSER) (* \; "Edited 21-Feb-2021 17:29 by rmk:")
@ -3838,26 +3803,26 @@ then click Recompute"))))
(RECORD INFOFIELD (INFONAME INFOLABEL INFOWIDTH INFOFORMAT INFOPROTOTYPE))
(DATATYPE FBFILEDATA ((FILENAME POINTER) (* \; "Full name of this file")
(FILEINFO POINTER) (* \; "Plist of attributes")
(VERSIONLESSNAME POINTER) (* \; "FILENAME sans version")
(DIRECTORYP FLAG) (* \; "True if it's a directory line")
(HASDIRPREFIX FLAG) (* \;
 "True if it has a directory prefix beyond that in common to all the files")
(DIRECTORYFILEP FLAG) (* \;
 "True if the \"file\" in this item is actually a subdirectory")
(SIZE POINTER) (* \; "Size of file, for stats")
(FILEDEPTH BYTE) (* \;
 "Number of levels of subdirectory beneath the main pattern--zero for files at that level")
(SORTVALUE POINTER) (* \;
 "Cached value by which we are sorting the dir.")
(SUBDIREND WORD) (* \;
 "Index of last char in subdirectory, or zero if HASDIRPREFIX is false")
(STARTOFPNAME WORD) (* \;
 "Start of name for printing purposes. Same as STARTOFNAME when browser sorted by name")
(VERSION WORD) (* \; "Version, or zero if none")
(STARTOFNAME WORD) (* \;
 "Index beyond all directory fields")
(DATATYPE FBFILEDATA ((FILENAME POINTER) (* \; "Full name of this file")
(FILEINFO POINTER) (* \; "Plist of attributes")
(VERSIONLESSNAME POINTER) (* \; "FILENAME sans version")
(DIRECTORYP FLAG) (* \; "True if it's a directory line")
(HASDIRPREFIX FLAG) (* \;
 "True if it has a directory prefix beyond that in common to all the files")
(DIRECTORYFILEP FLAG) (* \;
 "True if the \"file\" in this item is actually a subdirectory")
(SIZE POINTER) (* \; "Size of file, for stats")
(FILEDEPTH BYTE) (* \;
 "Number of levels of subdirectory beneath the main pattern--zero for files at that level")
(SORTVALUE POINTER) (* \;
 "Cached value by which we are sorting the dir.")
(SUBDIREND WORD) (* \;
 "Index of last char in subdirectory, or zero if HASDIRPREFIX is false")
(STARTOFPNAME WORD) (* \;
 "Start of name for printing purposes. Same as STARTOFNAME when browser sorted by name")
(VERSION WORD) (* \; "Version, or zero if none")
(STARTOFNAME WORD) (* \;
 "Index beyond all directory fields")
DUMMY)
(ACCESSFNS FBFILEDATA ((PRINTNAME (SUBSTRING (FETCH (FBFILEDATA FILENAME
)
@ -3872,85 +3837,85 @@ then click Recompute"))))
) OF
DATUM))))))
(DATATYPE FILEBROWSER ((NOSUBDIRECTORIES FLAG) (* \;
 "True if we don't want separate subdirectory lines -- subdirs then included in name")
(NSPATTERN? FLAG) (* \; "True if host is an ns host")
(SHOWUNDELETED? FLAG) (* \;
 "True if counter window should show `Undeleted' rather than `Total' counts")
(PATTERNPARSED? FLAG) (* \;
 "True if PREPAREDPATTERN, NAMESTART, DIRECTORYSTART are valid")
(SORTBYDATE FLAG) (* \;
 "True if SORTATTRIBUTE is one of the date attributes")
(FBREADY FLAG) (* \; "False while FB is enumerating.")
(ABORTING FLAG) (* \;
 "True if enumeration is being aborted")
(FIXEDTITLE FLAG) (* \; "True if caller supplied title")
(FBCOMPUTEDDEPTH BYTE) (* \;
 "Depth at the time we enumerated directory (zero for infinite)")
(FBDISPLAYEDDEPTH BYTE) (* \;
 "Depth we are currently displaying (zero for infinite)")
(TABLEBROWSER POINTER) (* \;
 "Pointer to TABLEBROWSER object controlling the browser")
(BROWSERWINDOW POINTER) (* \; "Main window")
(COUNTERWINDOW POINTER) (* \;
 "Window that counts files, pages, deletions")
(HEADINGWINDOW POINTER) (* \;
 "Window with headings for browser columns")
(INFOMENUW POINTER) (* \;
 "Window containing choices for info to be displayed, or NIL if none yet")
(PROMPTWINDOW POINTER) (* \; "GETPROMPTWINDOW BROWSERWINDOW")
(INFODISPLAYED POINTER) (* \;
 "List of attribute specs to be displayed")
(PATTERN POINTER) (* \;
 "Directory pattern being enumerated")
(PREPAREDPATTERN POINTER) (* \; "DIRECTORY.MATCH.SETUP of same")
(SEEWINDOW POINTER) (* \;
 "Primary window used by FAST SEE command")
(BROWSERFONT POINTER) (* \; "Font of BROWSERWINDOW")
(SORTBY POINTER) (* \;
 "Sorting function or NIL for default sort")
(NAMESTART WORD) (* \;
 "Index of first character in file name beyond the common prefix shared by all")
(DIRECTORYSTART WORD) (* \;
 "Index of first character of directory in file names")
(INFOSTART WORD) (* \;
 "X position in browser where first col of info is displayed")
(NAMEOVERHEAD WORD) (* \;
 "This plus width of name gives is how much to allow before INFOSTART")
(OVERFLOWSPACING WORD) (* \;
 "Increment between sizes considered for INFOSTART")
(DATATYPE FILEBROWSER ((NOSUBDIRECTORIES FLAG) (* \;
 "True if we don't want separate subdirectory lines -- subdirs then included in name")
(NSPATTERN? FLAG) (* \; "True if host is an ns host")
(SHOWUNDELETED? FLAG) (* \;
 "True if counter window should show `Undeleted' rather than `Total' counts")
(PATTERNPARSED? FLAG) (* \;
 "True if PREPAREDPATTERN, NAMESTART, DIRECTORYSTART are valid")
(SORTBYDATE FLAG) (* \;
 "True if SORTATTRIBUTE is one of the date attributes")
(FBREADY FLAG) (* \; "False while FB is enumerating.")
(ABORTING FLAG) (* \;
 "True if enumeration is being aborted")
(FIXEDTITLE FLAG) (* \; "True if caller supplied title")
(FBCOMPUTEDDEPTH BYTE) (* \;
 "Depth at the time we enumerated directory (zero for infinite)")
(FBDISPLAYEDDEPTH BYTE) (* \;
 "Depth we are currently displaying (zero for infinite)")
(TABLEBROWSER POINTER) (* \;
 "Pointer to TABLEBROWSER object controlling the browser")
(BROWSERWINDOW POINTER) (* \; "Main window")
(COUNTERWINDOW POINTER) (* \;
 "Window that counts files, pages, deletions")
(HEADINGWINDOW POINTER) (* \;
 "Window with headings for browser columns")
(INFOMENUW POINTER) (* \;
 "Window containing choices for info to be displayed, or NIL if none yet")
(PROMPTWINDOW POINTER) (* \; "GETPROMPTWINDOW BROWSERWINDOW")
(INFODISPLAYED POINTER) (* \;
 "List of attribute specs to be displayed")
(PATTERN POINTER) (* \;
 "Directory pattern being enumerated")
(PREPAREDPATTERN POINTER) (* \; "DIRECTORY.MATCH.SETUP of same")
(SEEWINDOW POINTER) (* \;
 "Primary window used by FAST SEE command")
(BROWSERFONT POINTER) (* \; "Font of BROWSERWINDOW")
(SORTBY POINTER) (* \;
 "Sorting function or NIL for default sort")
(NAMESTART WORD) (* \;
 "Index of first character in file name beyond the common prefix shared by all")
(DIRECTORYSTART WORD) (* \;
 "Index of first character of directory in file names")
(INFOSTART WORD) (* \;
 "X position in browser where first col of info is displayed")
(NAMEOVERHEAD WORD) (* \;
 "This plus width of name gives is how much to allow before INFOSTART")
(OVERFLOWSPACING WORD) (* \;
 "Increment between sizes considered for INFOSTART")
(DIGITWIDTH WORD)
(TOTALFILES WORD) (* \;
 "Total number of files, deleted files, pages, deleted pages at the moment")
(TOTALFILES WORD) (* \;
 "Total number of files, deleted files, pages, deleted pages at the moment")
(DELETEDFILES WORD)
(TOTALPAGES POINTER)
(DELETEDPAGES POINTER)
(PAGECOUNT? POINTER) (* \;
 "True if INFOCHOICES includes SIZE or LENGTH, so that we can count pages")
(COUNTERPOSITIONS POINTER) (* \;
 "List of pairs (left right) describing regions where the values of the counters are displayed")
(COUNTERPAGESTRING POINTER) (* \;
 "String to print after file/page count")
(OVERFLOWWIDTHS POINTER) (* \;
 "List of (xpos occurrences) describing files whose names exceed default INFOSTART")
(INFOMENUCHOICES POINTER) (* \;
 "Selections user has made in Info window, not necessarily the info currently displayed")
(UPDATEPROC POINTER) (* \;
 "Process doing an Update (Recompute)")
(DEFAULTDIR POINTER) (* \;
 "Default directory for destination of Copy/Rename")
(SORTATTRIBUTE POINTER) (* \;
 "Attribute being sorted on, or NIL if by name")
(PAGECOUNT? POINTER) (* \;
 "True if INFOCHOICES includes SIZE or LENGTH, so that we can count pages")
(COUNTERPOSITIONS POINTER) (* \;
 "List of pairs (left right) describing regions where the values of the counters are displayed")
(COUNTERPAGESTRING POINTER) (* \;
 "String to print after file/page count")
(OVERFLOWWIDTHS POINTER) (* \;
 "List of (xpos occurrences) describing files whose names exceed default INFOSTART")
(INFOMENUCHOICES POINTER) (* \;
 "Selections user has made in Info window, not necessarily the info currently displayed")
(UPDATEPROC POINTER) (* \;
 "Process doing an Update (Recompute)")
(DEFAULTDIR POINTER) (* \;
 "Default directory for destination of Copy/Rename")
(SORTATTRIBUTE POINTER) (* \;
 "Attribute being sorted on, or NIL if by name")
(SORTMENU POINTER)
(FBLOCK POINTER) (* \;
 "Lock acquired by filebrowser operations")
(SORTINDEX WORD) (* \;
 "Index (zero-based) in file info of the sort attribute")
(SIZEINDEX WORD) (* \; "Index of size attribute")
(FBDEPTH POINTER) (* \;
 "Enumeration depth, or NIL for default")
(ABORTWINDOW POINTER) (* \;
 "Dotted pair of (abortwindow . menuw) for this browser's abort window.")
(FBLOCK POINTER) (* \;
 "Lock acquired by filebrowser operations")
(SORTINDEX WORD) (* \;
 "Index (zero-based) in file info of the sort attribute")
(SIZEINDEX WORD) (* \; "Index of size attribute")
(FBDEPTH POINTER) (* \;
 "Enumeration depth, or NIL for default")
(ABORTWINDOW POINTER) (* \;
 "Dotted pair of (abortwindow . menuw) for this browser's abort window.")
DUMMY))
)
@ -4253,35 +4218,35 @@ FB.UNDELETEALLCOMMAND 69511 . 69790) (FB.UNDELETE.FILE 69792 . 70537)) (70540 94
FB.COPY/RENAME.ONE 72023 . 74345) (FB.COPY/RENAME.MANY 74347 . 80567) (FB.MERGE.DIRECTORIES 80569 .
80987) (FB.GREATEST.PREFIX 80989 . 82345) (FB.MAYBE.INSERT.FILE 82347 . 89787) (FB.GET.NEW.FILE.SPEC
89789 . 93620) (FB.CANONICAL.DIRECTORY 93622 . 94719)) (94722 102506 (FB.HARDCOPYCOMMAND 94732 . 95862
) (FB.HARDCOPY.TOFILE 95864 . 102504)) (102507 114945 (FB.EDITCOMMAND 102517 . 103318) (
FB.EDITCOMMAND.ONEFILE 103320 . 109161) (FB.EDITLISPFILE 109163 . 110202) (FB.BROWSECOMMAND 110204 .
114943)) (114946 126739 (FB.FASTSEECOMMAND 114956 . 118406) (FB.FASTSEE.ONEFILE 118408 . 121437) (
FB.SEEFULLFN 121439 . 125570) (FB.SEEBUTTONFN 125572 . 126737)) (126740 128486 (FB.LOADCOMMAND 126750
. 127257) (FB.COMPILECOMMAND 127259 . 127797) (FB.OPERATE.ON.FILES 127799 . 128484)) (128487 176145 (
FB.UPDATECOMMAND 128497 . 128722) (FB.FIX-DIRECTORY-DATES 128724 . 129331) (FB.MAYBE.EXPUNGE 129333 .
130328) (FB.UPDATEBROWSERITEMS 130330 . 143545) (FB.DATE 143547 . 144288) (FB.ADJUST.DATE.WIDTH 144290
. 147258) (FB.SET.BROWSER.TITLE 147260 . 148117) (FB.MAYBE.WIDEN.NAMES 148119 . 150238) (
FB.SET.DEFAULT.NAME.WIDTH 150240 . 151604) (FB.CREATE.FILEBUCKET 151606 . 158826) (
FB.CHECK.NAME.LENGTH 158828 . 161249) (FB.ADD.FILEGROUP 161251 . 162778) (FB.INSERT.DIRECTORY 162780
. 163018) (FB.MAKE.SUBDIRECTORY.ITEM 163020 . 164429) (FB.ADD.FILE 164431 . 165044) (FB.INSERT.FILE
165046 . 168458) (FB.ANALYZE.PATTERN 168460 . 173724) (FB.CANONICALIZE.PATTERN 173726 . 175038) (
FB.GETALLFILEINFO 175040 . 176143)) (176146 184305 (FB.SORT.VERSIONS 176156 . 178927) (
FB.DECREASING.VERSION 178929 . 179598) (FB.INCREASING.VERSION 179600 . 180221) (
FB.NAMES.DECREASING.VERSION 180223 . 181258) (FB.NAMES.INCREASING.VERSION 181260 . 182257) (
FB.DECREASING.NUMERIC.ATTR 182259 . 182939) (FB.INCREASING.NUMERIC.ATTR 182941 . 183615) (
FB.ALPHABETIC.ATTR 183617 . 184303)) (184306 194148 (FB.SORTCOMMAND 184316 . 191146) (
FB.INSERT.SUBDIRECTORIES 191148 . 191945) (FB.GET.SORT.MENU 191947 . 194146)) (194149 210238 (
FB.EXPUNGECOMMAND 194159 . 196678) (FB.NEWPATTERNCOMMAND 196680 . 197078) (FB.NEWINFOCOMMAND 197080 .
199846) (FB.DEPTHCOMMAND 199848 . 201623) (FB.SHAPECOMMAND 201625 . 204967) (FB.REMOVE.FILE 204969 .
206790) (FB.COUNT.FILE.CHANGE 206792 . 208237) (FB.SETNEWPATTERN 208239 . 209409) (FB.GET.NEWPATTERN
209411 . 209995) (FB.OPTIONSCOMMAND 209997 . 210236)) (210273 211285 (
FB.INFOMENU.SHADEINITIALSELECTIONS 210283 . 210930) (FB.INFO.ITEM.NAMED 210932 . 211283)) (211286
220752 (FB.MAKECOUNTERWINDOW 211296 . 212758) (FB.COUNTERW.REDISPLAYFN 212760 . 213347) (
FB.UPDATE.COUNTERS 213349 . 215421) (FB.DISPLAY.COUNTERS 215423 . 220483) (FB.COUNTER.STRING 220485 .
220750)) (220753 225396 (FB.MAKEHEADINGWINDOW 220763 . 222311) (FB.HEADINGW.REDISPLAYFN 222313 .
222579) (FB.HEADINGW.RESHAPEFN 222581 . 222957) (FB.HEADINGW.DISPLAY 222959 . 225394)) (225397 229580
(FB.ICONFN 225407 . 225754) (FB.INFOMENU.WHENSELECTEDFN 225756 . 226486) (FB.CLOSEFN 226488 . 227691)
(FB.EXPUNGE?.MENU 227693 . 228105) (FB.AFTERCLOSEFN 228107 . 228468) (FB.CLOSE&EXPUNGE 228470 . 229578
)) (229581 241639 (FB.HARDCOPY.DIRECTORY 229591 . 239948) (FB.HARDCOPY.PRINT.TITLE 239950 . 240276) (
FB.HARDCOPY.MAXWIDTH 240278 . 241637)))))
) (FB.HARDCOPY.TOFILE 95864 . 102504)) (102507 112384 (FB.EDITCOMMAND 102517 . 103318) (
FB.EDITCOMMAND.ONEFILE 103320 . 106600) (FB.EDITLISPFILE 106602 . 107641) (FB.BROWSECOMMAND 107643 .
112382)) (112385 124178 (FB.FASTSEECOMMAND 112395 . 115845) (FB.FASTSEE.ONEFILE 115847 . 118876) (
FB.SEEFULLFN 118878 . 123009) (FB.SEEBUTTONFN 123011 . 124176)) (124179 125925 (FB.LOADCOMMAND 124189
. 124696) (FB.COMPILECOMMAND 124698 . 125236) (FB.OPERATE.ON.FILES 125238 . 125923)) (125926 173584 (
FB.UPDATECOMMAND 125936 . 126161) (FB.FIX-DIRECTORY-DATES 126163 . 126770) (FB.MAYBE.EXPUNGE 126772 .
127767) (FB.UPDATEBROWSERITEMS 127769 . 140984) (FB.DATE 140986 . 141727) (FB.ADJUST.DATE.WIDTH 141729
. 144697) (FB.SET.BROWSER.TITLE 144699 . 145556) (FB.MAYBE.WIDEN.NAMES 145558 . 147677) (
FB.SET.DEFAULT.NAME.WIDTH 147679 . 149043) (FB.CREATE.FILEBUCKET 149045 . 156265) (
FB.CHECK.NAME.LENGTH 156267 . 158688) (FB.ADD.FILEGROUP 158690 . 160217) (FB.INSERT.DIRECTORY 160219
. 160457) (FB.MAKE.SUBDIRECTORY.ITEM 160459 . 161868) (FB.ADD.FILE 161870 . 162483) (FB.INSERT.FILE
162485 . 165897) (FB.ANALYZE.PATTERN 165899 . 171163) (FB.CANONICALIZE.PATTERN 171165 . 172477) (
FB.GETALLFILEINFO 172479 . 173582)) (173585 181744 (FB.SORT.VERSIONS 173595 . 176366) (
FB.DECREASING.VERSION 176368 . 177037) (FB.INCREASING.VERSION 177039 . 177660) (
FB.NAMES.DECREASING.VERSION 177662 . 178697) (FB.NAMES.INCREASING.VERSION 178699 . 179696) (
FB.DECREASING.NUMERIC.ATTR 179698 . 180378) (FB.INCREASING.NUMERIC.ATTR 180380 . 181054) (
FB.ALPHABETIC.ATTR 181056 . 181742)) (181745 191587 (FB.SORTCOMMAND 181755 . 188585) (
FB.INSERT.SUBDIRECTORIES 188587 . 189384) (FB.GET.SORT.MENU 189386 . 191585)) (191588 207677 (
FB.EXPUNGECOMMAND 191598 . 194117) (FB.NEWPATTERNCOMMAND 194119 . 194517) (FB.NEWINFOCOMMAND 194519 .
197285) (FB.DEPTHCOMMAND 197287 . 199062) (FB.SHAPECOMMAND 199064 . 202406) (FB.REMOVE.FILE 202408 .
204229) (FB.COUNT.FILE.CHANGE 204231 . 205676) (FB.SETNEWPATTERN 205678 . 206848) (FB.GET.NEWPATTERN
206850 . 207434) (FB.OPTIONSCOMMAND 207436 . 207675)) (207712 208724 (
FB.INFOMENU.SHADEINITIALSELECTIONS 207722 . 208369) (FB.INFO.ITEM.NAMED 208371 . 208722)) (208725
218191 (FB.MAKECOUNTERWINDOW 208735 . 210197) (FB.COUNTERW.REDISPLAYFN 210199 . 210786) (
FB.UPDATE.COUNTERS 210788 . 212860) (FB.DISPLAY.COUNTERS 212862 . 217922) (FB.COUNTER.STRING 217924 .
218189)) (218192 222835 (FB.MAKEHEADINGWINDOW 218202 . 219750) (FB.HEADINGW.REDISPLAYFN 219752 .
220018) (FB.HEADINGW.RESHAPEFN 220020 . 220396) (FB.HEADINGW.DISPLAY 220398 . 222833)) (222836 227019
(FB.ICONFN 222846 . 223193) (FB.INFOMENU.WHENSELECTEDFN 223195 . 223925) (FB.CLOSEFN 223927 . 225130)
(FB.EXPUNGE?.MENU 225132 . 225544) (FB.AFTERCLOSEFN 225546 . 225907) (FB.CLOSE&EXPUNGE 225909 . 227017
)) (227020 239078 (FB.HARDCOPY.DIRECTORY 227030 . 237387) (FB.HARDCOPY.PRINT.TITLE 237389 . 237715) (
FB.HARDCOPY.MAXWIDTH 237717 . 239076)))))
STOP

Binary file not shown.

View File

@ -1,14 +1,14 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "19-Apr-2018 12:22:03" {DSK}<Users>kaplan>Local>medley3.5>lispcore>library>TEDIT.;2 140045
(FILECREATED "19-Sep-2021 17:08:56" {DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDIT.;2 141945
changes to%: (VARS TEDITCOMS)
previous date%: "21-Jun-99 20:00:16"
{DSK}<Users>kaplan>Local>medley3.5>lispcore>library>TEDIT.;1)
previous date%: "19-Apr-2018 12:22:03"
{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDIT.;1)
(* ; "
Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1999, 2018 by Venue & Xerox Corporation. All rights reserved.
Copyright (c) 1983-1993, 1995, 1999, 2018, 2021 by Venue & Xerox Corporation.
")
(PRETTYCOMPRINT TEDITCOMS)
@ -24,40 +24,40 @@ Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993,
(TEDIT.DEFAULT.PROPS NIL)
(TEDIT.STARTUP.MONITORLOCK (CREATE.MONITORLOCK 'TEDIT.STARTUP))
(TEDIT.RESTART.MENU (\CREATE.TEDIT.RESTART.MENU))
(* ;
 "Original was (CREATE MENU ITEMS _ '(NewEditProcess)).")
(* ;
 "Changed by yabu.fx, for SUNLOADUP without DWIM.")
(* ;
 "Original was (CREATE MENU ITEMS _ '(NewEditProcess)).")
(* ;
 "Changed by yabu.fx, for SUNLOADUP without DWIM.")
)
(GLOBALVARS TEDIT.TENTATIVE TEDIT.DEFAULT.PROPS)
(FNS \TEDIT2 COERCETEXTOBJ TEDIT TEDIT.CHARWIDTH TEDIT.COPY TEDIT.DELETE
(FNS \TEDIT2 COERCETEXTOBJ TEDIT TEDIT-SEE TEDIT.CHARWIDTH TEDIT.COPY TEDIT.DELETE
TEDIT.DO.BLUEPENDINGDELETE TEDIT.INSERT TEDIT.KILL TEDIT.MAPLINES TEDIT.MAPPIECES
TEDIT.MOVE TEDIT.QUIT TEDIT.STRINGWIDTH TEDIT.\INSERT TEXTOBJ TEXTSTREAM \TEDIT.INCLUDE
\TEDIT.INSERT.PIECES \TEDIT.MOVE.PIECEMAPFN \TEDIT.OBJECT.SHOWSEL \TEDIT.RESTARTFN
\TEDIT.CHARDELETE \TEDIT.COPY.PIECEMAPFN \TEDIT.DELETE \TEDIT.DIFFUSE.PARALOOKS
\TEDIT.FOREIGN.COPY? \TEDIT.QUIT \TEDIT.WORDDELETE \TEDIT1)
(P (MOVD? 'NILL 'OBJECTOUTOFTEDIT))
(* ;
 "HOOK for looked-string copy, etc. Used in \TEDIT.FOREIGN.COPY?.")
(* ;
 "HOOK for looked-string copy, etc. Used in \TEDIT.FOREIGN.COPY?.")
(COMS (FNS \CREATE.TEDIT.RESTART.MENU))
(* ;
 "Added by yabu.fx, for SUNLOADUP without DWIM.")
(COMS (* ; "Debugging functions")
(* ;
 "Added by yabu.fx, for SUNLOADUP without DWIM.")
(COMS (* ; "Debugging functions")
(FNS PLCHAIN PRINTLINE SEEFILE))
(COMS (* ; "Object-oriented editing")
(COMS (* ; "Object-oriented editing")
(FNS TEDIT.INSERT.OBJECT TEDIT.EDIT.OBJECT TEDIT.FIND.OBJECT TEDIT.FIND.OBJECT.SUBTREE
TEDIT.PUT.OBJECT TEDIT.GET.OBJECT TEDIT.OBJECT.CHANGED))
(FILES TEDITFIND TEDITHISTORY TEDITFILE TEDITWINDOW TEDITSELECTION IMAGEOBJ TFBRAVO TEDITHCPY
TEDITPAGE TEDITMENU TEDITFNKEYS)
(COMS (* ; "TEDIT Support information")
(COMS (* ; "TEDIT Support information")
(E (SETQ TEDITSYSTEMDATE (DATE)))
(VARS TEDITSYSTEMDATE (TEDITSUPPORT "TEditSupport.PA"))
(FNS MAKETEDITFORM)
(P (ADDTOVAR LAFITESPECIALFORMS ("TEdit Report" 'MAKETEDITFORM
"Report a problem with TEdit"))
(SETQ LAFITEFORMSMENU NIL)))
(COMS (* ;
 "LISTFILES Interface, so the system can decide if a file is a TEdit file.")
(COMS (* ;
 "LISTFILES Interface, so the system can decide if a file is a TEdit file.")
(ADDVARS (PRINTFILETYPES (TEDIT (TEST \TEDIT.FORMATTEDP1)
(EXTENSION (TEDIT])
@ -327,6 +327,43 @@ Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993,
(TTY.PROCESS PROC)))
(RETURN PROC])
(TEDIT-SEE
[LAMBDA (FILE WINDOW) (* ; "Edited 19-Sep-2021 09:40 by rmk:")
(* ; "Edited 27-Feb-2021 20:07 by rmk:")
(* ; "Edited 1-Feb-88 19:00 by bvm:")
(* ;; "See FILE in a scrollable READONLY TEDIT window. If FILE is a LISP source file, copy first to a temporary NODIRCORE image file that interpretes the fontchange characters rather than showing black boxes.")
(CL:WITH-OPEN-FILE (STREAM FILE :DIRECTION :INPUT)
(LET ((SEESTREAM STREAM)
ENV TSTREAM)
(* ;; "No need to fiddle with a TEDIT file")
(IF (\TEDIT.FORMATTEDP1 STREAM)
ELSEIF (SETQ ENV (LISPSOURCEFILEP STREAM))
THEN
(* ;; "Lisp source file")
(\EXTERNALFORMAT STREAM ENV)
(SETQ SEESTREAM (OPENTEXTSTREAM))
(COPY.TEXT.TO.IMAGE STREAM SEESTREAM)
ELSE
(* ;; "Not a Lisp source file and not a Tedit file. If it is not random access, we copy it so we can scroll around.")
(CL:UNLESS (RANDACCESSP STREAM)
[SETQ SEESTREAM (OPENSTREAM '{NODIRCORE} 'BOTH 'NEW
`([TYPE ,(GETFILEINFO STREAM 'TYPE]
(FORMAT ,(\EXTERNALFORMAT STREAM]
(COPYBYTES STREAM SEESTREAM)))
[SETQ TSTREAM (TEXTSTREAM (TEDIT SEESTREAM WINDOW NIL '(READONLY T]
(WINDOWPROP (WFROMDS TSTREAM)
'TITLE
(CONCAT "SEE window for " (FULLNAME STREAM)))
(FULLNAME STREAM])
(TEDIT.CHARWIDTH
[LAMBDA (CH FONT TERMSA) (* jds "22-OCT-83 19:32")
@ -2192,7 +2229,7 @@ Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993,
(* ; "TEDIT Support information")
(RPAQQ TEDITSYSTEMDATE "19-Apr-2018 12:22:04")
(RPAQQ TEDITSYSTEMDATE "19-Sep-2021 17:08:56")
(RPAQ TEDITSUPPORT "TEditSupport.PA")
(DEFINEQ
@ -2216,21 +2253,21 @@ Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993,
(ADDTOVAR PRINTFILETYPES (TEDIT (TEST \TEDIT.FORMATTEDP1)
(EXTENSION (TEDIT))))
(PUTPROPS TEDIT COPYRIGHT ("Venue & Xerox Corporation" 1983 1984 1985 1986 1987 1988 1989 1990 1991
1992 1993 1995 1999 2018))
1992 1993 1995 1999 2018 2021))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (4382 115216 (\TEDIT2 4392 . 7143) (COERCETEXTOBJ 7145 . 15921) (TEDIT 15923 . 20892) (
TEDIT.CHARWIDTH 20894 . 22918) (TEDIT.COPY 22920 . 31356) (TEDIT.DELETE 31358 . 32048) (
TEDIT.DO.BLUEPENDINGDELETE 32050 . 35117) (TEDIT.INSERT 35119 . 40649) (TEDIT.KILL 40651 . 42208) (
TEDIT.MAPLINES 42210 . 43609) (TEDIT.MAPPIECES 43611 . 44567) (TEDIT.MOVE 44569 . 54353) (TEDIT.QUIT
54355 . 56355) (TEDIT.STRINGWIDTH 56357 . 57028) (TEDIT.\INSERT 57030 . 59055) (TEXTOBJ 59057 . 60182)
(TEXTSTREAM 60184 . 61799) (\TEDIT.INCLUDE 61801 . 65701) (\TEDIT.INSERT.PIECES 65703 . 75618) (
\TEDIT.MOVE.PIECEMAPFN 75620 . 77699) (\TEDIT.OBJECT.SHOWSEL 77701 . 81330) (\TEDIT.RESTARTFN 81332 .
83327) (\TEDIT.CHARDELETE 83329 . 87291) (\TEDIT.COPY.PIECEMAPFN 87293 . 90518) (\TEDIT.DELETE 90520
. 98038) (\TEDIT.DIFFUSE.PARALOOKS 98040 . 100804) (\TEDIT.FOREIGN.COPY? 100806 . 104533) (
\TEDIT.QUIT 104535 . 107681) (\TEDIT.WORDDELETE 107683 . 112516) (\TEDIT1 112518 . 115214)) (115330
115446 (\CREATE.TEDIT.RESTART.MENU 115340 . 115444)) (115545 119234 (PLCHAIN 115555 . 115829) (
PRINTLINE 115831 . 118595) (SEEFILE 118597 . 119232)) (119275 138918 (TEDIT.INSERT.OBJECT 119285 .
128362) (TEDIT.EDIT.OBJECT 128364 . 130620) (TEDIT.FIND.OBJECT 130622 . 131515) (
TEDIT.FIND.OBJECT.SUBTREE 131517 . 132323) (TEDIT.PUT.OBJECT 132325 . 133984) (TEDIT.GET.OBJECT 133986
. 137185) (TEDIT.OBJECT.CHANGED 137187 . 138916)) (139196 139559 (MAKETEDITFORM 139206 . 139557)))))
(FILEMAP (NIL (4327 117111 (\TEDIT2 4337 . 7088) (COERCETEXTOBJ 7090 . 15866) (TEDIT 15868 . 20837) (
TEDIT-SEE 20839 . 22787) (TEDIT.CHARWIDTH 22789 . 24813) (TEDIT.COPY 24815 . 33251) (TEDIT.DELETE
33253 . 33943) (TEDIT.DO.BLUEPENDINGDELETE 33945 . 37012) (TEDIT.INSERT 37014 . 42544) (TEDIT.KILL
42546 . 44103) (TEDIT.MAPLINES 44105 . 45504) (TEDIT.MAPPIECES 45506 . 46462) (TEDIT.MOVE 46464 .
56248) (TEDIT.QUIT 56250 . 58250) (TEDIT.STRINGWIDTH 58252 . 58923) (TEDIT.\INSERT 58925 . 60950) (
TEXTOBJ 60952 . 62077) (TEXTSTREAM 62079 . 63694) (\TEDIT.INCLUDE 63696 . 67596) (\TEDIT.INSERT.PIECES
67598 . 77513) (\TEDIT.MOVE.PIECEMAPFN 77515 . 79594) (\TEDIT.OBJECT.SHOWSEL 79596 . 83225) (
\TEDIT.RESTARTFN 83227 . 85222) (\TEDIT.CHARDELETE 85224 . 89186) (\TEDIT.COPY.PIECEMAPFN 89188 .
92413) (\TEDIT.DELETE 92415 . 99933) (\TEDIT.DIFFUSE.PARALOOKS 99935 . 102699) (\TEDIT.FOREIGN.COPY?
102701 . 106428) (\TEDIT.QUIT 106430 . 109576) (\TEDIT.WORDDELETE 109578 . 114411) (\TEDIT1 114413 .
117109)) (117225 117341 (\CREATE.TEDIT.RESTART.MENU 117235 . 117339)) (117440 121129 (PLCHAIN 117450
. 117724) (PRINTLINE 117726 . 120490) (SEEFILE 120492 . 121127)) (121170 140813 (TEDIT.INSERT.OBJECT
121180 . 130257) (TEDIT.EDIT.OBJECT 130259 . 132515) (TEDIT.FIND.OBJECT 132517 . 133410) (
TEDIT.FIND.OBJECT.SUBTREE 133412 . 134218) (TEDIT.PUT.OBJECT 134220 . 135879) (TEDIT.GET.OBJECT 135881
. 139080) (TEDIT.OBJECT.CHANGED 139082 . 140811)) (141091 141454 (MAKETEDITFORM 141101 . 141452)))))
STOP

Binary file not shown.