1
0
mirror of synced 2026-05-08 08:42:37 +00:00

Compare commits

...

38 Commits

Author SHA1 Message Date
rmkaplan
d0d9b2329a Cleanup the piece datatype, address a few issues 2026-05-07 20:57:58 -07:00
Matt Heffron
4de89a6e94 Fix library>DATABASEFNS DUMPDB to use get the FILEDATES correctly (#2593)
DUMPDB fixed to use ROOTFILENAME vs. NAMEFIELD (U-CASE vs. actual) to retrieve and dump the source file's FILEDATES, so the .DATABASE can be loaded.
2026-05-07 12:33:11 -07:00
rmkaplan
ceccadacef Minor fix in UNICODE-FORMATS (#2596) 2026-05-07 12:32:48 -07:00
rmkaplan
6159c64b84 man [filename] just opens the corresponding documentation file (#2572)
* man [filename] just opens the corresponding documentation file
* When a particular ENTRY is provided and found in the file, scroll its first occurrence to the top
2026-05-06 11:55:34 -07:00
rmkaplan
eb6ee87170 COMPAREDIRECTORIES implements the ** all-subdirectories convention of .gitignore (#2583)
* COMPAREDIRECTORIES implements the ** all-subdirectories convention of .gitignore
* Can specify exclusions/ignores in gwc command line, after hyphen
2026-05-06 11:54:13 -07:00
rmkaplan
c16e3b4a55 Move UNIXY commands to UNIXUTILS, delete UNIXYCD (#2587)
* Move  UNIXY commands to UNIXUTILS, delete UNIXYCD

* Delete UNIXYCD
2026-04-30 23:04:26 -07:00
rmkaplan
285e35f2ea MCCS now includes XCCS external format, separate XCCS file now in Obsolete (#2590) 2026-04-30 22:55:46 -07:00
rmkaplan
4e761298ea This was well-formed, but had a bogus slug character showing as a black box (#2584)
Fix typo
2026-04-29 11:59:27 -07:00
Matt Heffron
cbea9a7c9d HCFILES added filtering and logging details (#2567)
* Add reporting of filtering "Why?"
Add reporting of the actual error Condition on files that FAIL.
Change extraction of the "hcfiles-fails.txt" to a perl program since the Condition reporting sometimes is multiple lines.

* Change running of the getFails.pl that extracts FAIL information.
Also check if perl is installed, and report it if not into the fails file.
2026-04-29 11:45:47 -07:00
Frank Halasz
47dd8edf60 Fix Issue# 2562 - SEE-PDF fails if there is a space in the given filename (#2580)
* Fix Issue# 2562 - SEE-PDF fails if there is a space in the given filename

* Remove PRINT debugging code from ShellOpen

* Fix bug introduced into SLASHIT whereby which it would go into an infinite loop if a filename had two or more spaces in it.
2026-04-27 14:08:14 -07:00
rmkaplan
1d2292aa62 Fixing \DO.PARAMS.AT.OPEN take two (#2581) 2026-04-27 12:16:26 -07:00
Larry Masinter
4499b4d914 Address the \DO.PARAMS.AT.OPEN typos/bugs (#2574)
Resolves #2568
2026-04-26 20:41:49 -07:00
Larry Masinter
0317fbd882 Fix for Issue #2504 (partial): In GRAPHER when a DISPLAYLINKFN is specified but not defined uses the default DRAWLINK (#2564)
In GRAPHER when a DISPLAYLINKFN is specified but not defined, uses the
default DRAWLINK function instead and promptprints a message to that
effect.
2026-04-25 13:01:10 -07:00
Matt Heffron
b0c6136bd6 Fixes issues causing crashing during loadups building. 2026-04-21 22:14:05 -07:00
Matt Heffron
d922212de1 Merge branch 'master' into mth68--Fix_DO.PARAMS.AT.OPEN_typos 2026-04-21 22:12:38 -07:00
Matt Heffron
96c609e5f0 Address the concerns stated in Issue #2568 2026-04-20 15:27:43 -07:00
rmkaplan
728a278dc0 Previous version was smashed (#2569) 2026-04-18 16:00:43 -07:00
Matt Heffron
2814618b9a Add preliminary files with mappings from XCCS to Unihan set of Unicode. (#2559)
* Add preliminary files with mappings from XCCS to Unihan set of Unicode.
These were generated with scripting from the data in the unihan folder of the Unicode Data Base.
That info claims to know the mapping from Unicode(unihan) to "Xerox" coding (2 bytes in octal).
These were not validated at all for correctness/completeness.

* Added char set number line comment to top of each file
2026-04-17 11:22:22 -07:00
rmkaplan
af194bdaf7 UNIX-FILE-NAME wasn't dealing properly with {DSK} versions (#2554)
UNIX-FILE-NAME wasn't dealing properly with {DSK} version 1, and making sure that other versions had a dot
2026-04-15 12:57:31 -07:00
rmkaplan
e73aef6dcc Fix copy/delete for {UNIX} directories (#2553) 2026-04-15 12:57:01 -07:00
rmkaplan
61a05ac2b5 The GITFNS prc menu respects the project (#2544) 2026-04-15 12:56:26 -07:00
Larry Masinter
b611af518a READ symbols in undefined packages so they PRINT correctly (#2561)
As discussed in the 4/13/2026 LispCore meeting:
This allows you to READ symbols in undefined packages such that they
will print as expected.
2026-04-15 10:45:16 -07:00
Frank Halasz
fb0af3c05f Fix GRAPHER so that when a DISPLAYLINKFN is specified but the specifed function is not defined, it uses the default DRAWLINK function instead and promptprints a notice. 2026-04-14 22:36:09 -07:00
Herb Jellinek
93b09dec66 My last-minute change from QUOTE to FUNCTION inadvertently invoked
CL:FUNCTION instead, and RETFROM doesn't want a function object.
Updated to use IL:FUNCTION.
2026-04-14 12:16:13 -07:00
Herb Jellinek
8f3d5c26b5 As discussed in the 4/13/2026 LispCore meeting:
This is a new package that allows you to READ symbols in undefined packages
such that they will print as if there had not been an error.
2026-04-13 14:21:07 -07:00
rmkaplan
5790bce3db Add DISPLAY sanity check to EDITFONT (#2545) 2026-04-10 23:42:01 -07:00
rmkaplan
43f3118544 Rmk172 clean unicode mapping directory (#2552)
* Remove stale files, add README, correct XCCS-164 JIS

* Remake UNICODE-FORMATS to be sure it reflects current files

---------

Co-authored-by: Matt Heffron <heffron@alumni.caltech.edu>
2026-04-10 12:55:06 -07:00
rmkaplan
8eb02d2504 Add deleted/* (from GITFNS) to .gitignore (#2556)
* Add deleted/* (from GITFNS) to .gitignore

* OK, I changed it to **
2026-04-07 14:15:46 -07:00
Nick Briggs
573d87aca3 Updates \ETHEREVENTFN to relocate exit when the ethernet is unvailable. (#2418)
* Updates \ETHEREVENTFN to remove early exit when the ethernet is unvailable.

In the case that the ethernet is unavailable the \ETHEREVENTFN should
still call \SETETHERFLAGS, \SETLOCALNSNUMBERS, and \FLUSHNDBS, or
a newly started image will retain information from the system on which
it was built (such as ethernet MAC address in the NS address).  This
will also ensure that the NS address is not set to 0, instead initializing
with a fake  address based on the system serial number (calls \SERIALNUMBER).

* When no ethernet \FIND.LOCALPUPHOSTNUMBER should immediately return NIL

If there is NO ethernet it is better to avoid a delay waiting for a
PUP lookup response that will never come, and there is no value in
asking for the user to enter a PUP host number that will not be used.

* Updates \SETETHERFLAGS to avoid setting \10MBFLG when no ethernet

* Avoids making copy of \10MBLOCALNDB as \MAIKO.10MB.NDB for \MAIKO.ETHER-INTERRUPT

* RESTART.ETHER at end of loadup-lisp to ensure network structures are set up.

* Removes OCTALSTRING from PUP - now in APRINT

* Prevents \LOOKUPPORT waiting for an ethernet timeout if PUP has already been detected as unavailable
2026-04-02 11:15:23 -07:00
Matt Heffron
13eb940538 Fixes a typo in internal/loadups/man-page/loadup.1.md & derived files. (#2542)
Resolves #2536
2026-03-15 19:05:23 -07:00
Matt Heffron
3dc2bba019 Fixes a typo in internal/loadups/man-page/loadup.1.md & derived files. 2026-03-14 21:17:15 -07:00
Larry Masinter
322b2e0fbe DFV gets FNS and/or FUNCTIONS, depending on what definitions exist (#2530)
If both exist, it brings up 2 Sedit windows.

The relative version numbers are currently mapped to Medley absolute
version numbers. It would be nice to extend VERSIONDEFS with a function
(say GEDV) that maps the relative version numbers into the definitions
on git-file versions, by looking at the history. So (GEDV 'FOO 'RECORD
-3) would find the file for FOO's record declaration from WHEREIS, and
get the definition from the version 3 commits back. But GITFNS doesn't
currently have a primitive for fetching and interpreting history.
2026-03-09 23:07:30 -07:00
rmkaplan
a24a4dffc2 READ-READER-ENVIRONMENT can take a file name in addition to an open stream (#2531) 2026-03-09 12:31:01 -07:00
rmkaplan
95e08680b8 \CORE.DIRECTORYNAMEP returns T for the {CORE} (no directory) case (#2522) 2026-03-09 12:15:33 -07:00
rmkaplan
7a7fca0bcf Add lispusers/CONVERT-TO-UTF8 (#2518)
* Add lispusers/CONVERT-TO-UTF8
* FILETYPE with no DFASL defaults to :FAKE-COMPILE-FILE
2026-03-09 12:15:14 -07:00
Matt Heffron
9e4d37efd7 Most of the --option uses were incorrectly converted when making loadup.1 from loadup.md. (#2528)
Most of the --option uses were incorrectly converted to an en-dash instead of two hyphens when making loadup.1 from loadup.md.
The en-dash didn't display correctly in the shell, typically as u with ^.
Edited loadup.md, and regenerated the other changed files using publish.sh
2026-03-09 12:14:19 -07:00
rmkaplan
b8c0c594a9 DFV gets FNS and/or FNS, depending on what definitions exist 2026-03-08 09:26:18 -07:00
rmkaplan
d9f1a78f47 GITFNS remembers user's last branch number in a {LI} file (#2526) 2026-03-07 12:56:21 -08:00
153 changed files with 13029 additions and 16236 deletions

3
.gitignore vendored
View File

@@ -43,6 +43,9 @@ loadups/gitinfo
*.sysout
*.SYSOUT
# GITFNS deleted subdirectory
deleted/**
#compiled code -- leave in for now
# *.lcom

View File

@@ -1,27 +1,29 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED "28-Jan-2026 11:03:17" {DSK}<Users>larry>il>medley>internal>MEDLEY-UTILS.;3 26880
(FILECREATED "16-Apr-2026 22:42:51" {DSK}<home>matt>Interlisp>medley>internal>MEDLEY-UTILS.;2 30564
:EDIT-BY "lmm"
:EDIT-BY "mth"
:CHANGES-TO (FNS MAKE-INDEX-HTMLS GATHER-INFO MAKE-FULLER-DB MEDLEY-FIX-LINKS MEDLEY-FIX-DATES
MAKE-EXPORTS-ALL MAKE-WHEREIS-HASH MAKE-WHEREIS-LOOPS HCFILES RECOMPILE-ONE
RECMPL COMPILE-SETUP REMAKEFILES)
:CHANGES-TO (FNS HCFILES MAKE-EXPORTS-ALL MAKE-INDEX-HTMLS)
(FUNCTIONS REPORT-AND-GO)
(VARS MEDLEY-UTILSCOMS HC-SKIP-EXTENSIONS)
(ADVICE TEDIT.PROMPTPRINT)
:PREVIOUS-DATE "28-Jan-2026 10:46:02" {DSK}<Users>larry>il>medley>internal>MEDLEY-UTILS.;1)
:PREVIOUS-DATE "16-Apr-2026 22:27:40" {DSK}<home>matt>Interlisp>medley>internal>MEDLEY-UTILS.;1
)
(PRETTYCOMPRINT MEDLEY-UTILSCOMS)
(RPAQQ MEDLEY-UTILSCOMS
[(FNS GATHER-INFO MAKE-FULLER-DB MEDLEY-FIX-LINKS MEDLEY-FIX-DATES)
(VARS MEDLEY-FIX-DIRS OKSOURCES OKLIBRARY OKLISPUSERS OKINTERNAL)
(VARS HC-SKIP-EXTENSIONS MEDLEY-FIX-DIRS OKSOURCES OKLIBRARY OKLISPUSERS OKINTERNAL)
(FNS MAKE-EXPORTS-ALL MAKE-WHEREIS-HASH MAKE-WHEREIS-LOOPS)
(FNS HCFILES MAKE-INDEX-HTMLS)
(PROP FILETYPE MEDLEY-UTILS)
(ADVISE TEDIT.PROMPTPRINT)
(FNS RECOMPILE-ONE RECMPL COMPILE-SETUP REMAKEFILES)
(FUNCTIONS REPORT-AND-GO)
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA)
(NLAML)
(LAMA])
@@ -140,6 +142,12 @@
(for X in (OR DIRS MEDLEY-FIX-DIRS) join (FIX-DIRECTORY-DATES (MEDLEYDIR (PRINT X T])
)
(RPAQQ HC-SKIP-EXTENSIONS
(PDF SKIP HTML LCOM DFASL SH SYSOUT DRIBBLE IMPTR DISPLAYFONT WD WIDTHS MEDLEYDISPLAYFONT
PSCFONT ALL DATABASE 1 MD GZ PRESS IP BITMAP EL ELC XFORMS BUGREPORTS SUITE LISTING AWK
DINFOGRAPH HASHFILE BLTCHAR DOC DOCPOINTERS STATUS NOTEFILE ICO ISS BMP PNG PS1
VENUESYSOUT ACE FMC HKB LGC CMD COMMAND HTM SVG XML EXE))
(RPAQQ MEDLEY-FIX-DIRS ("sources" "library" "lispusers" "internal" "greetfiles" "doctools"))
(RPAQQ OKSOURCES (RENAMEFNS VMEM READSYS CASH-FILE HASH-FILE MEDLEYDIR MAKEINIT))
@@ -162,15 +170,18 @@
(DEFINEQ
(MAKE-EXPORTS-ALL
[LAMBDA (OUTFILE) (* ; "Edited 3-Aug-2023 18:34 by frank")
[LAMBDA (OUTFILE) (* ; "Edited 15-Apr-2026 16:42 by mth")
(* ; "Edited 3-Aug-2023 18:34 by frank")
(* ; "Edited 9-Mar-2021 16:11 by larry")
(* "Edited May 3, 2018 by Ron Kaplan--relative to MEDLEYDIR/lispcore/. Don't know why it does the CORE/RENAME")
(*
 "Edited Aug 17 94 by Sybalsky -- point it to /king/export/lispcore as the truth directory.")
(*
 "Edited July 5, 1990 by Sybalsky -- point it to Pele as the truth directory.")
(*
 "Edited September 29, 1986 by van Melle")
(* ;; "Edited May 3, 2018 by Ron Kaplan--relative to MEDLEYDIR/lispcore/. Don't know why it does the CORE/RENAME")
(* ;; "Edited Aug 17 94 by Sybalsky -- point it to /king/export/lispcore as the truth directory.")
(* ;; "Edited July 5, 1990 by Sybalsky -- point it to Pele as the truth directory.")
(* ;; "Edited September 29, 1986 by van Melle")
(CNDIR (MEDLEYDIR "sources"))
(LOAD 'FILESETS)
(GATHEREXPORTS EXPORTFILES (OR OUTFILE "exports.all"])
@@ -204,7 +215,8 @@
(DEFINEQ
(HCFILES
[LAMBDA (BASE REDO SUBSETS) (* ; "Edited 30-Jun-2024 08:27 by lmm")
[LAMBDA (BASE REDO SUBSETS) (* ; "Edited 16-Apr-2026 22:42 by mth")
(* ; "Edited 30-Jun-2024 08:27 by lmm")
(* ; "Edited 23-Apr-2024 23:15 by lmm")
(* ; "Edited 22-Apr-2024 13:22 by lmm")
(* ; "Edited 5-Feb-2024 12:16 by lmm")
@@ -213,74 +225,116 @@
(* ;;;; "BASE is the root directory. Doesn't replace PDF files except when REDO")
(* ;;; " SUBSETS is some combinsyion og (:YRDY :HYML :PRETTY and INDEX")
(* ;;; " SUBSETS is some combination of (:YRDY :HYML :PRETTY and INDEX")
(LET
[[DIRLIST (LIST (OR BASE (PSEUDOFILENAME (MEDLEYDIR]
(PHASES (OR SUBSETS '(TEDIT PRETTY INDEX HRULE]
(FILESLOAD PDFSTREAM SKETCH)
(FONTSET 'STANDARD)
(while DIRLIST
do
(SETQ BASE (pop DIRLIST))
(for SRCPATH in (DIRECTORY (CONCAT BASE "*.*;"))
do (PROG* [(SRC (UNPACKFILENAME SRCPATH))
[EXT (U-CASE (LISTGET SRC 'EXTENSION]
(DIR (LISTGET SRC 'DIRECTORY))
FRDY LDGP DEST (NOV (PACKFILENAME `(VERSION NIL ,@SRC]
(CL:FORMAT T "Starting on ~a :~%%" SRCPATH)
(CL:WHEN (DIRECTORYNAMEP SRCPATH)
(LET* ([DIRLIST (LIST (OR BASE (PSEUDOFILENAME (MEDLEYDIR]
[PHASES (OR SUBSETS '(TEDIT PRETTY INDEX HRULE]
(DOTEDIT (MEMB 'TEDIT PHASES))
(DOPRETTY (MEMB 'PRETTY PHASES)))
(FILESLOAD PDFSTREAM SKETCH)
(FONTSET 'STANDARD)
(while DIRLIST
do (SETQ BASE (pop DIRLIST))
(* ;; "any directory names, push them off and do them in another phase")
(* ;; "Breadth-first processing")
(CL:UNLESS (OR (STRPOS ">." NOV)
(INFILEP (CONCAT NOV ".skip")))
(SETQ DIRLIST (NCONC1 DIRLIST SRCPATH)))
(RETURN))
(CL:WHEN
(MEMB EXT
'(PDF SKIP HTML LCOM DFASL SH SYSOUT DRIBBLE IMPTR DISPLAYFONT ALL
DATABASE))
(for SRCPATH in (DIRECTORY (CONCAT BASE "*.*;"))
do (PROG* ((SRC (UNPACKFILENAME SRCPATH))
[EXT (U-CASE (LISTGET SRC 'EXTENSION]
(DIR (LISTGET SRC 'DIRECTORY))
[NAME (U-CASE (LISTGET SRC 'NAME]
[NOV (PACKFILENAME.STRING `(VERSION NIL ,@SRC]
LSFP DEST)
(CL:WHEN (DIRECTORYNAMEP SRCPATH)
(* ;; "ignore any of these extensions")
(* ;;
 "any directory names, push them off and do them in another phase")
(RETURN))
(if [NOT (OR (STRPOS "<." NOV)
(CL:SEARCH "<LOADUPS>" NOV :TEST #'CL:CHAR-EQUAL)
(STRPOS ">." NOV)
(INFILEP (CONCAT NOV ".skip"]
then (SETQ DIRLIST (NCONC1 DIRLIST SRCPATH))
(CL:FORMAT T "~&Deferring to later ~a~%%" SRCPATH)
else (CL:FORMAT T "~&Skipping ~a~%%" SRCPATH))
(RETURN))
(* ;;
 " doesnt (yet) implement / to - translattion. .readme should show up as -.readme.")
(* ;; "Fixup files that start with . and have no other extension")
(SETQ DEST (CONCAT NOV ".pdf"))
(CL:WHEN (AND (NOT REDO)
(INFILEP DEST))
(CL:FORMAT T "~a already there~%%" DEST)
(RETURN))
(CL:WHEN (INFILEP (CONCAT DEST ".skip"))
(PRINTOUT T "Explicit .skip " DEST T)
(RETURN))
(if (MEMB 'TEDIT PHASES)
then (CL:WHEN [OR (MEMB EXT '(TEDIT TED SKETCH BRAVO))
(CAR (NLSETQ (TEDIT.FORMATTEDFILEP SRCPATH]
(if (EQ REDO 'TEST)
then (CL:FORMAT T "Testing open ~a..." SRCPATH)
(CLOSEF? (OPENTEXTSTREAM SRCPATH))
else (OR [NLSETQ (CL:WITH-OPEN-STREAM (S (OPENTEXTSTREAM SRCPATH)
)
(TEDIT.FORMAT.HARDCOPY S DEST T NIL NIL
NIL 'PDF]
(PRINT 'FAIL T)))
(CL:FORMAT T "DONE")))
(CL:WHEN (AND (MEMB 'PRETTY PHASES)
(MEMB EXT '(NIL IL))
[SETQ LSFP (CAR (NLSETQ (LISPSOURCEFILEP SRCPATH]
(NEQ LSFP *COMMON-LISP-READ-ENVIRONMENT*))
(PRINTOUT T "PDF printing " " to " DEST "...")
(OR (NLSETQ (CL:WITH-OPEN-STREAM (STR (OPEN-PDF-STREAM DEST))
(PRETTYFILEINDEX SRCPATH NIL STR)))
(PRINT 'FAIL T))
(PRINTOUT T "DONE" T))])
(CL:WHEN (AND (NULL EXT)
(EQ (CHCON1 NAME)
(CHARCODE %.)))
(SETQ EXT (SUBATOM NAME 2)))
(CL:WHEN (MEMB EXT HC-SKIP-EXTENSIONS)
(* ;; "ignore any of these extensions")
(CL:FORMAT T "~&Ignoring (on extension): ~a~%%" SRCPATH)
(RETURN))
(* ;;
 " doesn't (yet) implement / to - translation. .readme should show up as -.readme.")
(SETQ DEST (CONCAT NOV ".pdf"))
(CL:WHEN (AND (NOT REDO)
(INFILEP DEST))
(CL:FORMAT T "~a is already there~%%" DEST)
(RETURN))
(CL:WHEN (INFILEP (CONCAT DEST ".skip"))
(CL:FORMAT T "Explicit .skip ~a~%%" DEST)
(RETURN))
(CL:FORMAT T "~&Starting on ~a:~%%" SRCPATH)
(CL:WHEN [AND DOTEDIT (OR (MEMB EXT '(TEDIT TED SKETCH BRAVO))
(CAR (REPORT-AND-GO (TEDIT.FORMATTEDFILEP
SRCPATH)
(CL:FORMAT NIL
"~~%%~S TEDIT.FORMATTEDFILEP of ~A -- Condition: ~~A"
'FAIL SRCPATH]
(if (EQ REDO 'TEST)
then (CL:FORMAT T "Testing open ~a..." SRCPATH)
(CLOSEF? (OPENTEXTSTREAM SRCPATH))
else (REPORT-AND-GO (CL:WITH-OPEN-STREAM (S (OPENTEXTSTREAM
SRCPATH))
(TEDIT.FORMAT.HARDCOPY S DEST T NIL NIL
NIL 'PDF))
(CL:FORMAT NIL
"~~%%~S TEDIT.FORMAT.HARDCOPY of ~A -- Condition: ~~A"
'FAIL SRCPATH)))
(PRIN3 " DONE" T)
(TERPRI T)
(RETURN))
(CL:WHEN (AND DOPRETTY (OR (NULL EXT)
(EQ EXT 'IL))
[SETQ LSFP (CAR (REPORT-AND-GO (LISPSOURCEFILEP SRCPATH)
(CL:FORMAT NIL
"~~%%~S LISPSOURCEFILEP of ~A -- Condition: ~~A"
'FAIL SRCPATH]
(NEQ LSFP *COMMON-LISP-READ-ENVIRONMENT*))
(* ;; "Why the check for NEQ *COMMON-LISP-READ-ENVIRONMENT* ??")
(PRIN3 "PDF printing " T)
(PRIN3 SRCPATH T)
(PRIN3 " to " T)
(PRIN3 DEST T)
(PRIN3 " ..." T)
(REPORT-AND-GO (CL:WITH-OPEN-STREAM (STR (OPEN-PDF-STREAM DEST))
(PRETTYFILEINDEX SRCPATH NIL STR))
(CL:FORMAT NIL
"~~%%~S PRETTYFILEINDEX of ~A -- Condition: ~~A"
'FAIL SRCPATH))
(PRIN3 " DONE" T)
(TERPRI T)
(RETURN))
(* ;; "Everything else")
(PRIN3 "No processing." T)
(TERPRI T])
(MAKE-INDEX-HTMLS
[LAMBDA (BASE TOP LEVEL ROOT.NAME) (* ; "Edited 28-Jan-2026 11:01 by lmm")
[LAMBDA (BASE TOP LEVEL ROOT.NAME) (* ; "Edited 15-Apr-2026 16:33 by mth")
(* ; "Edited 28-Jan-2026 11:01 by lmm")
(* ; "Edited 27-Jan-2026 10:50 by lmm")
(* ; "Edited 23-Jan-2026 11:59 by lmm")
(* ; "Edited 29-Apr-2024 14:18 by lmm")
@@ -339,8 +393,8 @@
then 2
else 1))
-2)))
(CL:UNLESS (OR (MEMB SHORTNAME '(.git))
(MEMB SHORTNAME '(.GIT))
(CL:UNLESS (OR (EQ SHORTNAME '.git)
(EQ SHORTNAME '.GIT)
[AND (STRPOS ".git" (L-CASE FULLNAME))
(NOT (STRPOS ".github" (L-CASE FULLNAME]
(INFILEP (CONCAT FULLNAME ".skip")))
@@ -372,7 +426,8 @@
(PUTPROPS MEDLEY-UTILS FILETYPE :COMPILE-FILE)
[XCL:REINSTALL-ADVICE 'TEDIT.PROMPTPRINT :BEFORE '((:LAST (PRIN1 MSG T)))
[XCL:REINSTALL-ADVICE 'TEDIT.PROMPTPRINT :BEFORE '[(:LAST (PROGN (PRIN3 " " T)
(PRIN3 MSG T]
:AFTER
'((:LAST (AND (STRPOS "GETFN" MSG)
(HELP MSG]
@@ -463,6 +518,15 @@
(SETQ DIFF (COMPARESOURCES X DESTFILE NIL))
(TERPRI])
)
(DEFMACRO REPORT-AND-GO (FORM REPORT-FORMAT) (* ; "Edited 16-Apr-2026 16:02 by mth")
`[CL:MULTIPLE-VALUE-BIND (FORM-RESULT ERROR-CONDITION)
(IGNORE-ERRORS (CL:VALUES ,FORM)) (* ; "Only the first value")
(COND
(ERROR-CONDITION (PRIN3 (CL:FORMAT NIL ,REPORT-FORMAT ERROR-CONDITION)
T)
NIL)
(T (LIST FORM-RESULT])
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS
(ADDTOVAR NLAMA )
@@ -472,9 +536,10 @@
(ADDTOVAR LAMA )
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (1312 8246 (GATHER-INFO 1322 . 6704) (MAKE-FULLER-DB 6706 . 7615) (MEDLEY-FIX-LINKS 7617
. 8010) (MEDLEY-FIX-DATES 8012 . 8244)) (9425 12213 (MAKE-EXPORTS-ALL 9435 . 10494) (
MAKE-WHEREIS-HASH 10496 . 11685) (MAKE-WHEREIS-LOOPS 11687 . 12211)) (12214 21862 (HCFILES 12224 .
16487) (MAKE-INDEX-HTMLS 16489 . 21860)) (22112 26724 (RECOMPILE-ONE 22122 . 24019) (RECMPL 24021 .
24624) (COMPILE-SETUP 24626 . 25250) (REMAKEFILES 25252 . 26722)))))
(FILEMAP (NIL (1289 8223 (GATHER-INFO 1299 . 6681) (MAKE-FULLER-DB 6683 . 7592) (MEDLEY-FIX-LINKS 7594
. 7987) (MEDLEY-FIX-DATES 7989 . 8221)) (9795 12371 (MAKE-EXPORTS-ALL 9805 . 10652) (
MAKE-WHEREIS-HASH 10654 . 11843) (MAKE-WHEREIS-LOOPS 11845 . 12369)) (12372 24990 (HCFILES 12382 .
19514) (MAKE-INDEX-HTMLS 19516 . 24988)) (25324 29936 (RECOMPILE-ONE 25334 . 27231) (RECMPL 27233 .
27836) (COMPILE-SETUP 27838 . 28462) (REMAKEFILES 28464 . 29934)) (29938 30408 (REPORT-AND-GO 29938 .
30408)))))
STOP

Binary file not shown.

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED "14-Feb-2026 00:42:39" {WMEDLEY}<internal>loadups>LOADUP-FULL.;38 5967
(FILECREATED "28-Apr-2026 10:01:06" {WMEDLEY}<internal>loadups>LOADUP-FULL.;47 5896
:EDIT-BY rmk
:CHANGES-TO (FNS LOADUP-FULL)
:PREVIOUS-DATE "13-Feb-2026 00:47:52" {WMEDLEY}<internal>loadups>LOADUP-FULL.;37)
:PREVIOUS-DATE "16-Apr-2026 09:37:27" {WMEDLEY}<internal>loadups>LOADUP-FULL.;46)
(PRETTYCOMPRINT LOADUP-FULLCOMS)
@@ -16,7 +16,8 @@
(DEFINEQ
(LOADFULLFONTS
[LAMBDA NIL (* ; "Edited 20-Sep-2025 14:17 by rmk")
[LAMBDA NIL (* ; "Edited 16-Apr-2026 09:37 by rmk")
(* ; "Edited 20-Sep-2025 14:17 by rmk")
(* ; "Edited 2-Sep-2025 20:06 by rmk")
(* ; "Edited 13-Jul-2025 11:40 by rmk")
(* ; "Edited 30-Jun-2025 00:04 by rmk")
@@ -27,11 +28,8 @@
(* ;; " Don't do Interpress. Do character set 0 and the symbol character sets 41Q, 42Q, 356Q, 357Q and extended and accented Latin 43Q and 361Q")
(PRINTOUT T "Loading FULL fonts..." T)
(PRINTOUT T T "Loading FULL fonts..." T)
(SETQ *POSTSCRIPT-FILE-TYPE* 'TEXT)
(* ;; "Previous code reset the coercion variables to NIL, which would have resulted in glyph-incomplete charsets. With Medley-formatted fonts, the completions have already been installed in the files and there is no need to deal with those variables.")
(for FAMILY in '(CLASSIC MODERN TERMINAL)
do (PRINTOUT T " Loading " FAMILY " ")
[for SIZE in '(8 10 12)
@@ -47,7 +45,8 @@
(PRINTOUT T "FULL fonts loaded" T])
(LOADUP-FULL
[LAMBDA (DRIBBLEFILE) (* ; "Edited 14-Feb-2026 00:42 by rmk")
[LAMBDA (DRIBBLEFILE) (* ; "Edited 28-Apr-2026 10:00 by rmk")
(* ; "Edited 14-Feb-2026 00:42 by rmk")
(* ; "Edited 5-Feb-2026 10:26 by rmk")
(* ; "Edited 28-Dec-2025 12:06 by rmk")
(* ; "Edited 1-Sep-2025 11:59 by rmk")
@@ -86,8 +85,7 @@
(LOADUP '(CHAT INTERPRESS TEDIT HRULE TEDIT-CHAT READNUMBER EDITBITMAP FILEBROWSER THINFILES
GRAPHER SPY WHERE-IS COPYFILES MSANALYZE MSPARSE MASTERSCOPE UNIXPRINT HELPSYS
DINFO CLIPBOARD MODERNIZE WHEELSCROLL PRETTYFILEINDEX WHO-LINE UNIXCOMM UNIXCHAT
UNIXYCD))
DINFO CLIPBOARD MODERNIZE WHEELSCROLL PRETTYFILEINDEX WHO-LINE UNIXCOMM UNIXCHAT))
(LOADFULLFONTS)
(COND
((WINDOWP *WHO-LINE*)
@@ -103,5 +101,5 @@
(FIXMETA)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (456 5929 (LOADFULLFONTS 466 . 2601) (LOADUP-FULL 2603 . 5679) (FIXMETA 5681 . 5927)))))
(FILEMAP (NIL (456 5858 (LOADFULLFONTS 466 . 2449) (LOADUP-FULL 2451 . 5608) (FIXMETA 5610 . 5856)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,14 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10)
(FILECREATED "22-Feb-2026 14:15:31" |{WMEDLEY}<internal>loadups>LOADUP-LISP.;27| 7420
(FILECREATED "26-Mar-2026 18:38:22" 
|{DSK}<Users>briggs>Projects>medley>internal>loadups>LOADUP-LISP.;14| 7604
:EDIT-BY |rmk|
:EDIT-BY "briggs"
:CHANGES-TO (FNS LOADUP-LISP)
:PREVIOUS-DATE "22-Feb-2026 09:49:23" |{WMEDLEY}<internal>loadups>LOADUP-LISP.;26|)
:PREVIOUS-DATE "22-Feb-2026 14:15:31"
|{DSK}<Users>briggs>Projects>medley>internal>loadups>LOADUP-LISP.;13|)
(PRETTYCOMPRINT LOADUP-LISPCOMS)
@@ -19,7 +21,8 @@
(DEFINEQ
(LOADUP-LISP
(LAMBDA (DRIBBLEFILE) (* \; "Edited 22-Feb-2026 14:15 by rmk")
(LAMBDA (DRIBBLEFILE) (* \; "Edited 26-Mar-2026 18:38 by briggs")
(* \; "Edited 22-Feb-2026 14:15 by rmk")
(* \; "Edited 28-Jan-2026 14:30 by lmm")
(* \; "Edited 27-Dec-2025 15:02 by rmk")
(* \; "Edited 16-Oct-2025 16:55 by rmk")
@@ -135,6 +138,7 @@
(LOADUP '(PUP 10MBDRIVER LEAF LLETHER DPUPFTP LOCALFILE DSKDISPLAY COURIER LLNS TRSERVER SPP
NSPRINT AUTHENTICATION BSP CLEARINGHOUSE NSFILING MAIKOETHER))
(RESTART.ETHER)
(DRIBBLE)
(SETQ MAKESYSNAME :MEDLEY)))
)
@@ -147,5 +151,5 @@
(GLOBALVARS MAKESYSFILENAME MEDLEY-INIT-VARS MEDLEYDIR SYSTEMINITVARS USERRECLST)
)
(DECLARE\: DONTCOPY
(FILEMAP (NIL (640 7214 (LOADUP-LISP 650 . 7212)))))
(FILEMAP (NIL (695 7398 (LOADUP-LISP 705 . 7396)))))
STOP

Binary file not shown.

View File

@@ -111,11 +111,11 @@ output directory called \f[I]gitinfo\f[R] which contains the git commit,
git branch and git status information for the directory at the time the
loadup is run.
.PP
Only one instance (per <MEDLEIDIR>) of loadup can be run at a time.
Only one instance (per <MEDLEYDIR>) of loadup can be run at a time.
There is lock file to prevent simultaneous loadups in the work directory
(named \f[B]\f[BI]lock\f[B]\f[R]) that can be manually removed.
The lock can also be automatically overridden (see the \[en]override
flag below).
The lock can also be automatically overridden (see the --override flag
below).
Alternatively, if a lock is encountered at run time, the user will be
asked to choose whether to override or simply exit the loadup.
.PP
@@ -130,7 +130,7 @@ But Medley can be installed in multiple places on any given machine and
hence MEDLEYDIR is computed on each invocation of loadup.
.SH OPTIONS
.TP
\f[B]-z [+], --man [+], -man [+], -h [+], \[en]help [+]\f[R]
\f[B]-z [+], --man [+], -man [+], -h [+], --help [+]\f[R]
Print this manual page on the screen.
If the \f[B]+\f[R] parameter is specified, then no pager is used when
displaying the man page.
@@ -138,7 +138,7 @@ displaying the man page.
\f[B]-t STAGE, --target STAGE, -target STAGE\f[R]
Run the sequential loadup procedure until the STAGE is complete,
starting from the files created by the previously run STAGE specified in
the \[en]start option.
the --start option.
.RS
.PP
STAGE can be one of the following:
@@ -175,7 +175,7 @@ Full.sysout is copied into the loadups directory.
.RS
.PP
a, apps, 5: Run the loadup sequence through Stage 5 (apps.sysout).
Also run the Aux stage as if \[en]aux option had been specified.
Also run the Aux stage as if --aux option had been specified.
Apps.sysout and the Aux files are copied into the loadups directory.
.RE
.RE
@@ -185,7 +185,7 @@ Apps.sysout and the Aux files are copied into the loadups directory.
a-, apps-, 5-: Run the loadup sequence through Stage 5 (apps.sysout).
The Aux stage is not run unless otherwise specified.
Apps.sysout is copied into the loadups directory.
Also run the Aux stage as if \[en]aux option had been specified.
Also run the Aux stage as if --aux option had been specified.
.RE
.RE
.TP
@@ -245,22 +245,22 @@ If this stage complete successfully, these files are copied into
loadups.
.TP
\f[B]-i, --init, -init, -1\f[R]
Synonym for \[lq]\[en]target init\[rq]
Synonym for \[lq]--target init\[rq]
.TP
\f[B]-m, --mid, -mid, -2\f[R]
Synonym for \[lq]\[en]target mid\[rq]
Synonym for \[lq]--target mid\[rq]
.TP
\f[B]-l, --lisp, -lisp, -3\f[R]
Synonym for \[lq]\[en]target lisp\[rq]
Synonym for \[lq]--target lisp\[rq]
.TP
\f[B]-f, --full. -full, -4\f[R]
Synonym for \[lq]\[en]target full\[rq]
Synonym for \[lq]--target full\[rq]
.TP
\f[B]-a, --apps, -apps, -5\f[R]
Synonym for \[lq]\[en]target apps\[rq]
Synonym for \[lq]--target apps\[rq]
.TP
\f[B]-a-, --apps-, -apps-, -5-\f[R]
Synonym for \[lq]\[en]target apps\[rq]
Synonym for \[lq]--target apps\[rq]
.TP
\f[B]-ov, --override, -override\f[R]
Automatically override the lock that prevents two loadups from running
@@ -300,14 +300,14 @@ contained in the working directory.
If the \f[B]+\f[R] parameter is used, then instead of deleting just the
versioned files, all files and subdirectories are deleted except for
those contained in the working directory.
If \f[B]+\f[R] is used and there is no working directory and
\f[I]\[en]tag TAG\f[R] is also specified, then the tagged loadups
directory (<MEDLEYDIR>/loadups/tagged/TAG) is also deleted.
If \f[B]+\f[R] is used and there is no working directory and \f[I]--tag
TAG\f[R] is also specified, then the tagged loadups directory
(<MEDLEYDIR>/loadups/tagged/TAG) is also deleted.
.TP
\f[B]-th [+], --thin [+], -thin [+]\f[R]
Equivalent to specifying both -tw [+] and -tl [+].
If \f[I]\[en]tag TAG\f[R] is also specified and the \f[B]+\f[R]
parameter is used here, then the tagged loadups directory
If \f[I]--tag TAG\f[R] is also specified and the \f[B]+\f[R] parameter
is used here, then the tagged loadups directory
(<MEDLEYDIR>/loadups/tagged/TAG) is removed.
.TP
\f[B]-d DIR, --maikodir DIR, -maikodir DIR\f[R]
@@ -328,38 +328,36 @@ commonly used in running Medley in the absence of an Xwindows server.
.PP
The defaults for the Options context-dependent and somewhat complicated
due to the goal of maintaining compatibility with legacy loadup scripts.
All of the following defaults rules hold independent of the
\[en]maikodir (-d) option.
All of the following defaults rules hold independent of the --maikodir
(-d) option.
.IP "1." 3
If none of \[en]target, \[en]start, \[en]aux, and \[en]db are specified,
then:
If none of --target, --start, --aux, and --db are specified, then:
.RS
.PP
1A.
If neither \[en]thinw nor \[en]thinl are specified, the options default
to:
If neither --thinw nor --thinl are specified, the options default to:
.RE
.RS
.RS
.PP
\f[B]\[en]target full \[en]start 0 \[en]aux\f[R]
\f[B]--target full --start 0 --aux\f[R]
.RE
.RE
.RS
.PP
1B.
If either \[en]thinw or \[en]thinl are specified, no loadups are run.
If either --thinw or --thinl are specified, no loadups are run.
.RE
.IP "2." 3
If neither \[en]start nor \[en]target are specified but either -aux or
-db or both are, then \[en]start defaults to \f[I]full\f[R] and
\[en]target is irrelevant.
If neither --start nor --target are specified but either -aux or -db or
both are, then --start defaults to \f[I]full\f[R] and --target is
irrelevant.
.IP "3." 3
If \[en]start is specified and \[en]target is not, then \[en]target
defaults to \f[I]full\f[R]
If --start is specified and --target is not, then --target defaults to
\f[I]full\f[R]
.IP "4." 3
If \[en]target is specified and \[en]start is not, then \[en]start
defaults to \f[I]0\f[R]
If --target is specified and --start is not, then --start defaults to
\f[I]0\f[R]
.SH EXAMPLES
.PP
\f[B]./loadup -full -s lisp\f[R] : run loadup thru Stage 4 (full.sysout)
@@ -368,14 +366,14 @@ starting from existing Stage 3 outputs (lisp.sysout).
\f[B]./loadup --target full --start lisp\f[R] : run loadup thru Stage 4
(full.sysout) starting from existing Stage 3 outputs (lisp.sysout).
.PP
\f[B]./loadup -5 \[en]aux\f[R] : run loadup from the beginning thru
Stage 5 (apps.sysout) then run the Aux \[lq]stage\[rq] to create
\f[B]./loadup -5 --aux\f[R] : run loadup from the beginning thru Stage 5
(apps.sysout) then run the Aux \[lq]stage\[rq] to create
\f[I]whereis.hash\f[R] and \f[I]exports.all\f[R]
.PP
\f[B]./loadup -db\f[R] : just run the DB \[lq]stage\[rq] starting from
an existing full.sysout; do not run any of the sequential stages.
.PP
\f[B]./loadup \[en]maikodir \[ti]/il/newmaiko\f[R] : run loadup sequence
\f[B]./loadup --maikodir \[ti]/il/newmaiko\f[R] : run loadup sequence
from beginning to full plus the loadup Aux stage, while using
\f[I]\[ti]/il/newmaiko\f[R] as the location for the lde executables when
running Medley.

View File

@@ -52,7 +52,7 @@ Loadup does all of its work in a work directory (\<MEDLEYDIR>/loadups/build). T
If \<MEDLEYDIR> is a git directory, then a file is created in the loadups output directory called *gitinfo* which contains the git commit, git branch and git status information for the directory at the time the loadup is run.
Only one instance (per \<MEDLEIDIR>) of loadup can be run at a time. There is lock file to prevent simultaneous loadups in the work directory (named ***lock***) that can be manually removed. The lock can also be automatically overridden (see the --override flag below). Alternatively, if a lock is encountered at run time, the user will be asked to choose whether to override or simply exit the loadup.
Only one instance (per \<MEDLEYDIR>) of loadup can be run at a time. There is lock file to prevent simultaneous loadups in the work directory (named ***lock***) that can be manually removed. The lock can also be automatically overridden (see the \-\-override flag below). Alternatively, if a lock is encountered at run time, the user will be asked to choose whether to override or simply exit the loadup.
Note: **MEDLEYDIR** is an environment variable set by the loadup script. It is set to the top level directory of the Medley installation that contains the specific loadup script that
is invoked after all symbolic links are resolved. In the standard global installation this will
@@ -61,12 +61,12 @@ hence MEDLEYDIR is computed on each invocation of loadup.
OPTIONS
=======
**-z [+], \-\-man [+], \-man [+], -h [+], --help [+]**
**-z [+], \-\-man [+], \-man [+], -h [+], \-\-help [+]**
: Print this manual page on the screen. If the **+** parameter is specified, then no pager is used when
displaying the man page.
**-t STAGE, \-\-target STAGE, -target STAGE**
: Run the sequential loadup procedure until the STAGE is complete, starting from the files created by the previously run STAGE specified in the --start option.
: Run the sequential loadup procedure until the STAGE is complete, starting from the files created by the previously run STAGE specified in the \-\-start option.
>STAGE can be one of the following:
@@ -78,9 +78,9 @@ displaying the man page.
>>f, full, 4: Run the loadup sequence through Stage 4 (full.sysout). Full.sysout is copied into the loadups directory.
>>a, apps, 5: Run the loadup sequence through Stage 5 (apps.sysout). Also run the Aux stage as if --aux option had been specified. Apps.sysout and the Aux files are copied into the loadups directory.
>>a, apps, 5: Run the loadup sequence through Stage 5 (apps.sysout). Also run the Aux stage as if \-\-aux option had been specified. Apps.sysout and the Aux files are copied into the loadups directory.
>>a-, apps-, 5-: Run the loadup sequence through Stage 5 (apps.sysout). The Aux stage is not run unless otherwise specified. Apps.sysout is copied into the loadups directory. Also run the Aux stage as if --aux option had been specified.
>>a-, apps-, 5-: Run the loadup sequence through Stage 5 (apps.sysout). The Aux stage is not run unless otherwise specified. Apps.sysout is copied into the loadups directory. Also run the Aux stage as if \-\-aux option had been specified.
**-s STAGE \-\-start STAGE, -start STAGE**
@@ -105,22 +105,22 @@ displaying the man page.
: Run the DB loadup stage, creating the *fuller.database* file. If this stage complete successfully, these files are copied into loadups.
**-i, \-\-init, -init, -1**
: Synonym for "--target init"
: Synonym for "\-\-target init"
**-m, \-\-mid, -mid, -2**
: Synonym for "--target mid"
: Synonym for "\-\-target mid"
**-l, \-\-lisp, -lisp, -3**
: Synonym for "--target lisp"
: Synonym for "\-\-target lisp"
**-f, \-\-full. -full, -4**
: Synonym for "--target full"
: Synonym for "\-\-target full"
**-a, \-\-apps, -apps, -5**
: Synonym for "--target apps"
: Synonym for "\-\-target apps"
**-a-, \-\-apps-, -apps-, -5-**
: Synonym for "--target apps"
: Synonym for "\-\-target apps"
**-ov, \-\-override, -override**
: Automatically override the lock that prevents two loadups from running simultaneously. If this flag is not set and an active lock is encountered, the user will be asked to choose whether to override or exit.
@@ -149,11 +149,11 @@ working directory (and all files and subdirectories it contains) is deleted.
files except for those contained in the working directory.
If the **+** parameter is used, then instead of deleting just the versioned files, all files and
subdirectories are deleted except for those contained in the working directory. If **+** is used and
there is no working directory and *--tag TAG* is also specified,
there is no working directory and *\-\-tag TAG* is also specified,
then the tagged loadups directory (\<MEDLEYDIR>/loadups/tagged/TAG) is also deleted.
**-th [+], \-\-thin [+], -thin [+]**
: Equivalent to specifying both -tw [+] and -tl [+]. If *--tag TAG* is also specified and
: Equivalent to specifying both -tw [+] and -tl [+]. If *\-\-tag TAG* is also specified and
the **+** parameter is used here, then the tagged loadups directory (\<MEDLEYDIR>/loadups/tagged/TAG)
is removed.
@@ -168,21 +168,21 @@ running Medley in the absence of an Xwindows server.
DEFAULTS
====
The defaults for the Options context-dependent and somewhat complicated due to the goal of maintaining compatibility with legacy loadup scripts. All of the following defaults rules hold independent of the --maikodir (-d) option.
The defaults for the Options context-dependent and somewhat complicated due to the goal of maintaining compatibility with legacy loadup scripts. All of the following defaults rules hold independent of the \-\-maikodir (-d) option.
1. If none of --target, --start, --aux, and --db are specified, then:
1. If none of \-\-target, \-\-start, \-\-aux, and \-\-db are specified, then:
>1A. If neither --thinw nor --thinl are specified, the options default to:
>1A. If neither \-\-thinw nor \-\-thinl are specified, the options default to:
>> **--target full --start 0 --aux**
>> **\-\-target full \-\-start 0 \-\-aux**
>1B. If either --thinw or --thinl are specified, no loadups are run.
>1B. If either \-\-thinw or \-\-thinl are specified, no loadups are run.
2. If neither --start nor --target are specified but either -aux or -db or both are, then --start defaults to *full* and --target is irrelevant.
2. If neither \-\-start nor \-\-target are specified but either -aux or -db or both are, then \-\-start defaults to *full* and \-\-target is irrelevant.
3. If --start is specified and --target is not, then --target defaults to *full*
3. If \-\-start is specified and \-\-target is not, then \-\-target defaults to *full*
4. If --target is specified and --start is not, then --start defaults to *0*
4. If \-\-target is specified and \-\-start is not, then \-\-start defaults to *0*
EXAMPLES
====
@@ -190,11 +190,11 @@ EXAMPLES
**./loadup \-\-target full \-\-start lisp** : run loadup thru Stage 4 (full.sysout) starting from existing Stage 3 outputs (lisp.sysout).
**./loadup -5 --aux** : run loadup from the beginning thru Stage 5 (apps.sysout) then run the Aux "stage" to create *whereis.hash* and *exports.all*
**./loadup -5 \-\-aux** : run loadup from the beginning thru Stage 5 (apps.sysout) then run the Aux "stage" to create *whereis.hash* and *exports.all*
**./loadup -db** : just run the DB "stage" starting from an existing full.sysout; do not run any of the sequential stages.
**./loadup --maikodir ~/il/newmaiko** : run loadup sequence from beginning to full plus the loadup Aux stage, while using *~/il/newmaiko* as the location for the lde executables when running Medley.
**./loadup \-\-maikodir ~/il/newmaiko** : run loadup sequence from beginning to full plus the loadup Aux stage, while using *~/il/newmaiko* as the location for the lde executables when running Medley.
**./loadup -full** : run loadup sequence from beginning thru full

View File

@@ -83,11 +83,11 @@ the work directory after the loadup completes.</p>
the loadups output directory called <em>gitinfo</em> which contains the
git commit, git branch and git status information for the directory at
the time the loadup is run.</p>
<p>Only one instance (per &lt;MEDLEIDIR&gt;) of loadup can be run at a
<p>Only one instance (per &lt;MEDLEYDIR&gt;) of loadup can be run at a
time. There is lock file to prevent simultaneous loadups in the work
directory (named <strong><em>lock</em></strong>) that can be manually
removed. The lock can also be automatically overridden (see the
override flag below). Alternatively, if a lock is encountered at run
--override flag below). Alternatively, if a lock is encountered at run
time, the user will be asked to choose whether to override or simply
exit the loadup.</p>
<p>Note: <strong>MEDLEYDIR</strong> is an environment variable set by
@@ -99,7 +99,8 @@ installed in multiple places on any given machine and hence MEDLEYDIR is
computed on each invocation of loadup.</p>
<h1>OPTIONS</h1>
<dl>
<dt><strong>-z [+], --man [+], -man [+], -h [+], help [+]</strong></dt>
<dt><strong>-z [+], --man [+], -man [+], -h [+], --help
[+]</strong></dt>
<dd>
<p>Print this manual page on the screen. If the <strong>+</strong>
parameter is specified, then no pager is used when displaying the man
@@ -109,7 +110,7 @@ page.</p>
<dd>
<p>Run the sequential loadup procedure until the STAGE is complete,
starting from the files created by the previously run STAGE specified in
the start option.</p>
the --start option.</p>
<p>STAGE can be one of the following:</p>
<blockquote>
<p>i, init, 1: Run the loadup sequence through Stage 1 (init.dlinit).
@@ -129,13 +130,13 @@ Full.sysout is copied into the loadups directory.</p>
</blockquote>
<blockquote>
<p>a, apps, 5: Run the loadup sequence through Stage 5 (apps.sysout).
Also run the Aux stage as if aux option had been specified. Apps.sysout
and the Aux files are copied into the loadups directory.</p>
Also run the Aux stage as if --aux option had been specified.
Apps.sysout and the Aux files are copied into the loadups directory.</p>
</blockquote>
<blockquote>
<p>a-, apps-, 5-: Run the loadup sequence through Stage 5 (apps.sysout).
The Aux stage is not run unless otherwise specified. Apps.sysout is
copied into the loadups directory. Also run the Aux stage as if aux
copied into the loadups directory. Also run the Aux stage as if --aux
option had been specified.</p>
</blockquote>
</dd>
@@ -181,27 +182,27 @@ loadups.</p>
</dd>
<dt><strong>-i, --init, -init, -1</strong></dt>
<dd>
<p>Synonym for “target init”</p>
<p>Synonym for “--target init”</p>
</dd>
<dt><strong>-m, --mid, -mid, -2</strong></dt>
<dd>
<p>Synonym for “target mid”</p>
<p>Synonym for “--target mid”</p>
</dd>
<dt><strong>-l, --lisp, -lisp, -3</strong></dt>
<dd>
<p>Synonym for “target lisp”</p>
<p>Synonym for “--target lisp”</p>
</dd>
<dt><strong>-f, --full. -full, -4</strong></dt>
<dd>
<p>Synonym for “target full”</p>
<p>Synonym for “--target full”</p>
</dd>
<dt><strong>-a, --apps, -apps, -5</strong></dt>
<dd>
<p>Synonym for “target apps”</p>
<p>Synonym for “--target apps”</p>
</dd>
<dt><strong>-a-, --apps-, -apps-, -5-</strong></dt>
<dd>
<p>Synonym for “target apps”</p>
<p>Synonym for “--target apps”</p>
</dd>
<dt><strong>-ov, --override, -override</strong></dt>
<dd>
@@ -245,13 +246,13 @@ contained in the working directory. If the <strong>+</strong> parameter
is used, then instead of deleting just the versioned files, all files
and subdirectories are deleted except for those contained in the working
directory. If <strong>+</strong> is used and there is no working
directory and <em>tag TAG</em> is also specified, then the tagged
directory and <em>--tag</em> TAG is also specified, then the tagged
loadups directory (&lt;MEDLEYDIR&gt;/loadups/tagged/TAG) is also
deleted.</p>
</dd>
<dt><strong>-th [+], --thin [+], -thin [+]</strong></dt>
<dd>
<p>Equivalent to specifying both -tw [+] and -tl [+]. If <em>tag
<p>Equivalent to specifying both -tw [+] and -tl [+]. If <em>--tag
TAG</em> is also specified and the <strong>+</strong> parameter is used
here, then the tagged loadups directory
(&lt;MEDLEYDIR&gt;/loadups/tagged/TAG) is removed.</p>
@@ -277,24 +278,24 @@ absence of an Xwindows server.</p>
<p>The defaults for the Options context-dependent and somewhat
complicated due to the goal of maintaining compatibility with legacy
loadup scripts. All of the following defaults rules hold independent of
the maikodir (-d) option.</p>
the --maikodir (-d) option.</p>
<ol type="1">
<li><p>If none of target, start, aux, and db are specified,
<li><p>If none of --target, --start, --aux, and --db are specified,
then:</p>
<p>1A. If neither thinw nor thinl are specified, the options default
<p>1A. If neither --thinw nor --thinl are specified, the options default
to:</p>
<blockquote>
<p><strong>target full start 0 aux</strong></p>
<p><strong>--target full --start 0 --aux</strong></p>
</blockquote>
<p>1B. If either thinw or thinl are specified, no loadups are
<p>1B. If either --thinw or --thinl are specified, no loadups are
run.</p></li>
<li><p>If neither start nor target are specified but either -aux or
-db or both are, then start defaults to <em>full</em> and target is
<li><p>If neither --start nor --target are specified but either -aux or
-db or both are, then --start defaults to <em>full</em> and --target is
irrelevant.</p></li>
<li><p>If start is specified and target is not, then target defaults
to <em>full</em></p></li>
<li><p>If target is specified and start is not, then start defaults
to <em>0</em></p></li>
<li><p>If --start is specified and --target is not, then --target
defaults to <em>full</em></p></li>
<li><p>If --target is specified and --start is not, then --start
defaults to <em>0</em></p></li>
</ol>
<h1>EXAMPLES</h1>
<p><strong>./loadup -full -s lisp</strong> : run loadup thru Stage 4
@@ -302,12 +303,12 @@ to <em>0</em></p></li>
<p><strong>./loadup --target full --start lisp</strong> : run loadup
thru Stage 4 (full.sysout) starting from existing Stage 3 outputs
(lisp.sysout).</p>
<p><strong>./loadup -5 aux</strong> : run loadup from the beginning
<p><strong>./loadup -5 --aux</strong> : run loadup from the beginning
thru Stage 5 (apps.sysout) then run the Aux “stage” to create
<em>whereis.hash</em> and <em>exports.all</em></p>
<p><strong>./loadup -db</strong> : just run the DB “stage” starting from
an existing full.sysout; do not run any of the sequential stages.</p>
<p><strong>./loadup maikodir ~/il/newmaiko</strong> : run loadup
<p><strong>./loadup --maikodir ~/il/newmaiko</strong> : run loadup
sequence from beginning to full plus the loadup Aux stage, while using
<em>~/il/newmaiko</em> as the location for the lde executables when
running Medley.</p>

View File

@@ -1,16 +1,17 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED "20-Feb-2024 23:45:56" {DSK}<mnt>e>Interlisp>medley>library>DATABASEFNS.;4 18445
(FILECREATED " 2-May-2026 17:38:46" {DSK}<home>matt>Interlisp>medley>library>DATABASEFNS.;4 18684
:EDIT-BY "mth"
:CHANGES-TO (FNS DUMPDB)
:PREVIOUS-DATE "19-Feb-2024 16:29:44" {DSK}<mnt>e>Interlisp>medley>library>DATABASEFNS.;1)
:PREVIOUS-DATE "29-Apr-2026 17:43:56" {DSK}<home>matt>Interlisp>medley>library>DATABASEFNS.;2
)
(* ; "
Copyright (c) 1986, 1990-1993, 2024 by Xerox Corporation.
Copyright (c) 1986, 1990-1993, 2024, 2026 by Xerox Corporation.
")
(PRETTYCOMPRINT DATABASEFNSCOMS)
@@ -164,7 +165,9 @@ Copyright (c) 1986, 1990-1993, 2024 by Xerox Corporation.
(DEFINEQ
(DUMPDB
[LAMBDA (FILE PROPFLG) (* ; "Edited 20-Feb-2024 23:45 by mth")
[LAMBDA (FILE PROPFLG) (* ; "Edited 2-May-2026 17:32 by mth")
(* ; "Edited 29-Apr-2026 17:42 by mth")
(* ; "Edited 20-Feb-2024 23:45 by mth")
(* ; "Edited 7-Feb-2024 18:26 by mth")
(* ; "Edited 27-Oct-2021 10:51 by larry")
(* ; "Edited 24-Oct-2021 16:24 by rmk:")
@@ -180,7 +183,7 @@ Copyright (c) 1986, 1990-1993, 2024 by Xerox Corporation.
(LET ((SAVEDCOPYRIGHTFLG COPYRIGHTFLG)
(SAVEDDEFAULTCOPYRIGHTOWNER DEFAULTCOPYRIGHTOWNER))
(CL:UNWIND-PROTECT
(PROG (DBFILE DBFN DBROOTFN FLCPR (FL (NAMEFIELD FILE))
(PROG (DBFILE DBFN DBROOTFN FLCPR (FL (ROOTFILENAME FILE))
(FNS (FILEFNSLST FILE)))
(SETQ DBFN (PACKFILENAME 'EXTENSION 'DATABASE 'VERSION NIL 'BODY FILE))
(SETQ DBROOTFN (ROOTFILENAME DBFN))
@@ -230,7 +233,7 @@ Copyright (c) 1986, 1990-1993, 2024 by Xerox Corporation.
(PRETTYDEF NIL DBFN
`((P (PROGN (PRIN1 "Use LOADDB to load database files!" T)
(ERROR!)))
(E [PRINT (CAR (GETPROP ',FILE 'FILEDATES]
(E [PRINT (CAR (GETPROP ',FL 'FILEDATES]
(DUMPDATABASE ',FNS]
[COND
(PROPFLG (PRINT (FULLNAME DBFILE)
@@ -375,9 +378,9 @@ Copyright (c) 1986, 1990-1993, 2024 by Xerox Corporation.
(RESETSAVE DWIMIFYCOMPFLG T)
)
(PUTPROPS DATABASEFNS COPYRIGHT ("Xerox Corporation" 1986 1990 1991 1992 1993 2024))
(PUTPROPS DATABASEFNS COPYRIGHT ("Xerox Corporation" 1986 1990 1991 1992 1993 2024 2026))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (1768 6793 (DBFILE 1778 . 3423) (DBFILE1 3425 . 4935) (DBFILE2 4937 . 6159) (LOAD 6161
. 6391) (LOADFROM 6393 . 6581) (MAKEFILE 6583 . 6791)) (6849 17838 (DUMPDB 6859 . 11873) (LOADDB
11875 . 16750) (MAKEDB 16752 . 17836)))))
(FILEMAP (NIL (1783 6808 (DBFILE 1793 . 3438) (DBFILE1 3440 . 4950) (DBFILE2 4952 . 6174) (LOAD 6176
. 6406) (LOADFROM 6408 . 6596) (MAKEFILE 6598 . 6806)) (6864 18072 (DUMPDB 6874 . 12107) (LOADDB
12109 . 16984) (MAKEDB 16986 . 18070)))))
STOP

Binary file not shown.

View File

@@ -1,21 +1,18 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "14-Mar-2021 20:40:30" 
{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>GRAPHER.;5 214171
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
changes to%: (VARS GRAPHERCOMS)
(FILECREATED "14-Apr-2026 22:19:19" {DSK}<home>frank>il>medley>library>GRAPHER.;3 215302
previous date%: "14-May-2018 10:24:38"
{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>GRAPHER.;4)
:EDIT-BY "FGH"
:CHANGES-TO (FNS DISPLAYLINK/RL DISPLAYLINK/LR DISPLAYLINK/BT DISPLAYLINK/TB)
:PREVIOUS-DATE "14-Mar-2021 20:40:30" {DSK}<home>frank>il>medley>library>GRAPHER.;1)
(* ; "
Copyright (c) 1983-1994, 2018, 2021 by Venue & Xerox Corporation.
")
(PRETTYCOMPRINT GRAPHERCOMS)
(RPAQQ GRAPHERCOMS
[(COMS (* ; "Graph Editing")
[(COMS (* ; "Graph Editing")
(FNS ADD/AND/DISPLAY/LINK APPLYTOSELECTEDNODE CALL.MOVENODEFN CHANGE.NODEFONT.SIZE
DEFAULT.ADDNODEFN DELETE/AND/DISPLAY/LINK DISPLAY/NAME DISPLAYGRAPH DISPLAYLINK
DISPLAYLINK/BT DISPLAYLINK/LR DISPLAYLINK/RL DISPLAYLINK/TB DISPLAYNODE
@@ -38,18 +35,18 @@ Copyright (c) 1983-1994, 2018, 2021 by Venue & Xerox Corporation.
(CL:WHEN (GETD 'MODERNWINDOW.SETUP)
(MODERNWINDOW.SETUP 'APPLYTOSELECTEDNODE))]
(* ;; "Support for EDITSUBGRAPH and EDITREGION")
(* ;; "Support for EDITSUBGRAPH and EDITREGION")
(FNS EDITMOVEREGION EDITMOVESUBTREE NOT.TRACKCURSOR RECURSIVE.COLLECTDESCENDENTS
MOVEDESCENDENTS COLLECT.CHILD.NODES CREATE.NEW.NODEPOSITION
GETBOXPOSITION.FROMINITIALREGION COLLECTDESCENDENTS))
(COMS (* ;
 "functions for finding larger and smaller fonts")
(COMS (* ;
 "functions for finding larger and smaller fonts")
(FNS NEXTSIZEFONT DECREASING.FONT.LIST SCALE.FONT)
[DECLARE%: DONTEVAL@LOAD DOCOPY (VARS (DECREASING.FONT.LIST (DECREASING.FONT.LIST]
(GLOBALVARS DECREASING.FONT.LIST))
(* ;
 "functions for LAYOUTGRAPH And LAYOUTLATTICE")
(* ;
 "functions for LAYOUTGRAPH And LAYOUTLATTICE")
(FNS BRH/LAYOUT BRH/LAYOUT/DAUGHTERS BRH/OFFSET BRHC/INTERTREE/SPACE BRHC/LAYOUT
BRHC/LAYOUT/DAUGHTERS BRHC/LAYOUT/TERMINAL BRHC/OFFSET BRHL/LAYOUT BRHL/LAYOUT/DAUGHTERS
BRHL/MOVE/RIGHT BROWSE/LAYOUT/HORIZ BROWSE/LAYOUT/HORIZ/COMPACTLY BROWSE/LAYOUT/LATTICE
@@ -95,7 +92,7 @@ Copyright (c) 1983-1994, 2018, 2021 by Venue & Xerox Corporation.
(LOCALVARS . T)
(RECORDS GRAPHNODE GRAPH)
(DECLARE%: DONTCOPY (MACROS HALF))
(COMS (* ; "Grapher image objects")
(COMS (* ; "Grapher image objects")
(FNS GRAPHERIMAGEFNS)
(FNS GRAPHERCOPYBUTTONEVENTFN GRAPHOBJ.FINDGRAPH)
(FNS ALIGNMENTNODE GRAPHOBJ.CHECKALIGN)
@@ -303,96 +300,112 @@ Copyright (c) 1983-1994, 2018, 2021 by Venue & Xerox Corporation.
NIL])
(DISPLAYLINK/BT
[LAMBDA (TRANS GNB GNT WIDTH OPERATION STREAM PARAMS)
[LAMBDA (TRANS GNB GNT WIDTH OPERATION STREAM PARAMS) (* ; "Edited 14-Apr-2026 22:08 by FGH")
(* ; "Edited 29-Apr-94 13:59 by sybalsky")
(* draws a line from the bottom edge of GNB to the top edge of GNT translated
 by TRANS)
(* draws a line from the bottom edge of GNB to the top edge of GNT translated by
 TRANS)
(APPLY* (OR (LISTGET PARAMS 'DRAWLINKFN)
'DRAWLINE)
(IPLUS (fetch XCOORD of TRANS)
(fetch XCOORD of (fetch (GRAPHNODE NODEPOSITION) of GNB)))
(IPLUS (fetch YCOORD of TRANS)
(SUB1 (GN/BOTTOM GNB)))
(IPLUS (fetch XCOORD of TRANS)
(fetch XCOORD of (fetch (GRAPHNODE NODEPOSITION) of GNT)))
(IPLUS (fetch YCOORD of TRANS)
(ADD1 (GN/TOP GNT)))
(OR (LISTGET PARAMS 'LINEWIDTH)
WIDTH 1)
OPERATION STREAM (LISTGET PARAMS 'COLOR)
(LISTGET PARAMS 'DASHING)
PARAMS])
(LET* [(FN (LISTGET PARAMS 'DRAWLINKFN))
(DFN (AND FN (GETD FN]
(if (AND FN (NOT DFN))
then (PROMPTPRINT (CONCAT "DISPLAYLINK: DRAWLINKFN " FN " NOT FOUND")))
(APPLY* (OR (AND DFN FN)
'DRAWLINE)
(IPLUS (fetch XCOORD of TRANS)
(fetch XCOORD of (fetch (GRAPHNODE NODEPOSITION) of GNB)))
(IPLUS (fetch YCOORD of TRANS)
(SUB1 (GN/BOTTOM GNB)))
(IPLUS (fetch XCOORD of TRANS)
(fetch XCOORD of (fetch (GRAPHNODE NODEPOSITION) of GNT)))
(IPLUS (fetch YCOORD of TRANS)
(ADD1 (GN/TOP GNT)))
(OR (LISTGET PARAMS 'LINEWIDTH)
WIDTH 1)
OPERATION STREAM (LISTGET PARAMS 'COLOR)
(LISTGET PARAMS 'DASHING)
PARAMS])
(DISPLAYLINK/LR
[LAMBDA (TRANS GNL GNR WIDTH OPERATION STREAM PARAMS)
[LAMBDA (TRANS GNL GNR WIDTH OPERATION STREAM PARAMS) (* ; "Edited 14-Apr-2026 22:09 by FGH")
(* ; "Edited 29-Apr-94 13:59 by sybalsky")
(* draws a line from the left edge of GNL to the right edge of GNR, translated
 by TRANS)
(* draws a line from the left edge of GNL to the right edge of GNR, translated by
 TRANS)
(APPLY* (OR (LISTGET PARAMS 'DRAWLINKFN)
'DRAWLINE)
(IPLUS (fetch XCOORD of TRANS)
(SUB1 (GN/LEFT GNL)))
(IPLUS (fetch YCOORD of TRANS)
(fetch YCOORD of (fetch (GRAPHNODE NODEPOSITION) of GNL)))
(IPLUS (fetch XCOORD of TRANS)
(ADD1 (GN/RIGHT GNR)))
(IPLUS (fetch YCOORD of TRANS)
(fetch YCOORD of (fetch (GRAPHNODE NODEPOSITION) of GNR)))
(OR (LISTGET PARAMS 'LINEWIDTH)
WIDTH 1)
OPERATION STREAM (LISTGET PARAMS 'COLOR)
(LISTGET PARAMS 'DASHING)
PARAMS])
(LET* [(FN (LISTGET PARAMS 'DRAWLINKFN))
(DFN (AND FN (GETD FN]
(if (AND FN (NOT DFN))
then (PROMPTPRINT (CONCAT "DISPLAYLINK: DRAWLINKFN " FN " NOT FOUND")))
(APPLY* (OR (AND DFN FN)
'DRAWLINE)
(IPLUS (fetch XCOORD of TRANS)
(SUB1 (GN/LEFT GNL)))
(IPLUS (fetch YCOORD of TRANS)
(fetch YCOORD of (fetch (GRAPHNODE NODEPOSITION) of GNL)))
(IPLUS (fetch XCOORD of TRANS)
(ADD1 (GN/RIGHT GNR)))
(IPLUS (fetch YCOORD of TRANS)
(fetch YCOORD of (fetch (GRAPHNODE NODEPOSITION) of GNR)))
(OR (LISTGET PARAMS 'LINEWIDTH)
WIDTH 1)
OPERATION STREAM (LISTGET PARAMS 'COLOR)
(LISTGET PARAMS 'DASHING)
PARAMS])
(DISPLAYLINK/RL
[LAMBDA (TRANS GNR GNL WIDTH OPERATION STREAM PARAMS)
[LAMBDA (TRANS GNR GNL WIDTH OPERATION STREAM PARAMS) (* ; "Edited 14-Apr-2026 22:09 by FGH")
(* ; "Edited 29-Apr-94 13:59 by sybalsky")
(* draws a line from the right edge of GNR, to the left edge of GNL translated
 by TRANS)
(* draws a line from the right edge of GNR, to the left edge of GNL translated by
 TRANS)
(APPLY* (OR (LISTGET PARAMS 'DRAWLINKFN)
'DRAWLINE)
(IPLUS (fetch XCOORD of TRANS)
(ADD1 (GN/RIGHT GNR)))
(IPLUS (fetch YCOORD of TRANS)
(fetch YCOORD of (fetch (GRAPHNODE NODEPOSITION) of GNR)))
(IPLUS (fetch XCOORD of TRANS)
(SUB1 (GN/LEFT GNL)))
(IPLUS (fetch YCOORD of TRANS)
(fetch YCOORD of (fetch (GRAPHNODE NODEPOSITION) of GNL)))
(OR (LISTGET PARAMS 'LINEWIDTH)
WIDTH 1)
OPERATION STREAM (LISTGET PARAMS 'COLOR)
(LISTGET PARAMS 'DASHING)
PARAMS])
(LET* [(FN (LISTGET PARAMS 'DRAWLINKFN))
(DFN (AND FN (GETD FN]
(if (AND FN (NOT DFN))
then (PROMPTPRINT (CONCAT "DISPLAYLINK: DRAWLINKFN " FN " NOT FOUND")))
(APPLY* (OR (AND DFN FN)
'DRAWLINE)
(IPLUS (fetch XCOORD of TRANS)
(ADD1 (GN/RIGHT GNR)))
(IPLUS (fetch YCOORD of TRANS)
(fetch YCOORD of (fetch (GRAPHNODE NODEPOSITION) of GNR)))
(IPLUS (fetch XCOORD of TRANS)
(SUB1 (GN/LEFT GNL)))
(IPLUS (fetch YCOORD of TRANS)
(fetch YCOORD of (fetch (GRAPHNODE NODEPOSITION) of GNL)))
(OR (LISTGET PARAMS 'LINEWIDTH)
WIDTH 1)
OPERATION STREAM (LISTGET PARAMS 'COLOR)
(LISTGET PARAMS 'DASHING)
PARAMS])
(DISPLAYLINK/TB
[LAMBDA (TRANS GNT GNB WIDTH OPERATION STREAM PARAMS)
[LAMBDA (TRANS GNT GNB WIDTH OPERATION STREAM PARAMS) (* ; "Edited 14-Apr-2026 22:09 by FGH")
(* ; "Edited 29-Apr-94 13:59 by sybalsky")
(* draws a line from the top edge of GNT to the bottom edge of GNR, translated
 by TRANS)
(* draws a line from the top edge of GNT to the bottom edge of GNR, translated by
 TRANS)
(APPLY* (OR (LISTGET PARAMS 'DRAWLINKFN)
'DRAWLINE)
(IPLUS (fetch XCOORD of TRANS)
(fetch XCOORD of (fetch (GRAPHNODE NODEPOSITION) of GNT)))
(IPLUS (fetch YCOORD of TRANS)
(ADD1 (GN/TOP GNT)))
(IPLUS (fetch XCOORD of TRANS)
(fetch XCOORD of (fetch (GRAPHNODE NODEPOSITION) of GNB)))
(IPLUS (fetch YCOORD of TRANS)
(SUB1 (GN/BOTTOM GNB)))
(OR (LISTGET PARAMS 'LINEWIDTH)
WIDTH 1)
OPERATION STREAM (LISTGET PARAMS 'COLOR)
(LISTGET PARAMS 'DASHING)
PARAMS])
(LET* [(FN (LISTGET PARAMS 'DRAWLINKFN))
(DFN (AND FN (GETD FN]
(if (AND FN (NOT DFN))
then (PROMPTPRINT (CONCAT "DISPLAYLINK: DRAWLINKFN " FN " NOT FOUND")))
(APPLY* (OR (AND DFN FN)
'DRAWLINE)
(IPLUS (fetch XCOORD of TRANS)
(fetch XCOORD of (fetch (GRAPHNODE NODEPOSITION) of GNT)))
(IPLUS (fetch YCOORD of TRANS)
(ADD1 (GN/TOP GNT)))
(IPLUS (fetch XCOORD of TRANS)
(fetch XCOORD of (fetch (GRAPHNODE NODEPOSITION) of GNB)))
(IPLUS (fetch YCOORD of TRANS)
(SUB1 (GN/BOTTOM GNB)))
(OR (LISTGET PARAMS 'LINEWIDTH)
WIDTH 1)
OPERATION STREAM (LISTGET PARAMS 'COLOR)
(LISTGET PARAMS 'DASHING)
PARAMS])
(DISPLAYNODE
[LAMBDA (NODE TRANS STREAM G TOSONLY) (* kvl "10-Aug-84 19:08")
@@ -2014,7 +2027,7 @@ Copyright (c) 1983-1994, 2018, 2021 by Venue & Xerox Corporation.
of N])
)
(* Was MODERNIZE loaded before?)
(* Was MODERNIZE loaded before?)
(CL:WHEN (GETD 'MODERNWINDOW.SETUP)
(MODERNWINDOW.SETUP 'APPLYTOSELECTEDNODE))
@@ -3075,7 +3088,7 @@ Copyright (c) 1983-1994, 2018, 2021 by Venue & Xerox Corporation.
(RPAQQ GRAPH/HARDCOPY/FORMAT (MODE PORTRAIT PAGENUMBERS T TRANS NIL))
(RPAQ? DEFAULT.GRAPH.WINDOWSIZE (LIST (TIMES SCREENWIDTH 0.7)
(TIMES SCREENHEIGHT 0.4)))
(TIMES SCREENHEIGHT 0.4)))
(RPAQ? EDITGRAPHMENUCOMMANDS
'((Move% Node 'MOVENODE "Moves a single node in the graph." (SUBITEMS (|Move Single Node|
@@ -3113,19 +3126,19 @@ Copyright (c) 1983-1994, 2018, 2021 by Venue & Xerox Corporation.
(DECLARE%: EVAL@COMPILE
(RECORD GRAPHNODE (NODEID NODEPOSITION NODELABELBITMAP NIL NODELABELSHADE NODEWIDTH NODEHEIGHT
TONODES FROMNODES NODEFONT NODELABEL NODEBORDER)
NODEBORDER _ DEFAULT.GRAPH.NODEBORDER NODELABELSHADE _
DEFAULT.GRAPH.NODELABELSHADE NODEFONT _ DEFAULT.GRAPH.NODEFONT)
TONODES FROMNODES NODEFONT NODELABEL NODEBORDER)
NODEBORDER _ DEFAULT.GRAPH.NODEBORDER NODELABELSHADE _ DEFAULT.GRAPH.NODELABELSHADE
NODEFONT _ DEFAULT.GRAPH.NODEFONT)
(RECORD GRAPH (GRAPHNODES SIDESFLG DIRECTEDFLG GRAPH.MOVENODEFN GRAPH.ADDNODEFN
GRAPH.DELETENODEFN GRAPH.ADDLINKFN GRAPH.DELETELINKFN GRAPH.FONTCHANGEFN
GRAPH.INVERTBORDERFN GRAPH.INVERTLABELFN GRAPH.CHANGELABELFN . GRAPH.PROPS))
(RECORD GRAPH (GRAPHNODES SIDESFLG DIRECTEDFLG GRAPH.MOVENODEFN GRAPH.ADDNODEFN GRAPH.DELETENODEFN
GRAPH.ADDLINKFN GRAPH.DELETELINKFN GRAPH.FONTCHANGEFN GRAPH.INVERTBORDERFN
GRAPH.INVERTLABELFN GRAPH.CHANGELABELFN . GRAPH.PROPS))
)
(DECLARE%: DONTCOPY
(DECLARE%: EVAL@COMPILE
(PUTPROPS HALF MACRO ((X)
(LRSH X 1)))
(LRSH X 1)))
)
)
@@ -3789,61 +3802,59 @@ Copyright (c) 1983-1994, 2018, 2021 by Venue & Xerox Corporation.
)
(ADDTOVAR IMAGEOBJGETFNS (GRAPHOBJ.GETFN))
(PUTPROPS GRAPHER COPYRIGHT ("Venue & Xerox Corporation" 1983 1984 1985 1986 1987 1988 1989 1990 1991
1992 1993 1994 2018 2021))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (7195 111244 (ADD/AND/DISPLAY/LINK 7205 . 7907) (APPLYTOSELECTEDNODE 7909 . 8397) (
CALL.MOVENODEFN 8399 . 8748) (CHANGE.NODEFONT.SIZE 8750 . 10062) (DEFAULT.ADDNODEFN 10064 . 10862) (
DELETE/AND/DISPLAY/LINK 10864 . 12431) (DISPLAY/NAME 12433 . 12604) (DISPLAYGRAPH 12606 . 14977) (
DISPLAYLINK 14979 . 17532) (DISPLAYLINK/BT 17534 . 18556) (DISPLAYLINK/LR 18558 . 19581) (
DISPLAYLINK/RL 19583 . 20606) (DISPLAYLINK/TB 20608 . 21631) (DISPLAYNODE 21633 . 21981) (
ERASE/GRAPHNODE 21983 . 23090) (DISPLAYNODE 23092 . 23440) (DISPLAYNODELINKS 23442 . 24586) (
DRAW/GRAPHNODE/BORDER 24588 . 25507) (DRAWAREABOX 25509 . 26710) (EDITADDLINK 26712 . 27110) (
EDITADDNODE 27112 . 29201) (EDITAPPLYTOLINK 29203 . 31282) (EDITCHANGEFONT 31284 . 32456) (
EDITCHANGELABEL 32458 . 33999) (EDITDELETELINK 34001 . 34407) (EDITDELETENODE 34409 . 37110) (
EDITGRAPH 37112 . 37179) (EDITGRAPH1 37181 . 37939) (EDITGRAPH2 37941 . 39672) (EDITMOVENODE 39674 .
41251) (EDITTOGGLEBORDER 41253 . 42549) (EDITTOGGLELABEL 42551 . 43848) (FILL/GRAPHNODE/LABEL 43850 .
44678) (FIX/SCALE 44680 . 45236) (FLIPNODE 45238 . 45842) (FONTNAMELIST 45844 . 46063) (FROMLINKS
46065 . 46235) (GETNODEFROMID 46237 . 47256) (GN/BOTTOM 47258 . 47534) (GN/LEFT 47536 . 47809) (
GN/RIGHT 47811 . 48202) (GN/TOP 48204 . 48628) (GRAPHADDLINK 48630 . 49189) (GRAPHADDNODE 49191 .
49980) (GRAPHBUTTONEVENTFN 49982 . 52162) (GRAPHCHANGELABEL 52164 . 52607) (GRAPHDELETELINK 52609 .
53917) (GRAPHDELETENODE 53919 . 54451) (GRAPHEDITCOMMANDFN 54453 . 55837) (GRAPHEDITEVENTFN 55839 .
56550) (GRAPHER/CENTERPRINTINAREA 56552 . 57316) (GRAPHERPROP 57318 . 57862) (GRAPHNODE/BORDER/WIDTH
57864 . 58385) (GRAPHREGION 58387 . 59556) (HARDCOPYGRAPH 59558 . 66940) (INTERSECT/REGIONP/LBWH 66942
. 68218) (INVERTED/GRAPHNODE/BORDER 68220 . 68804) (INVERTED/SHADE/FOR/GRAPHER 68806 . 69438) (
LAYOUT/POSITION 69440 . 69619) (LINKPARAMETERS 69621 . 70073) (MAX/RIGHT 70075 . 70277) (MAX/TOP 70279
. 70477) (MEASUREGRAPHNODE 70479 . 70928) (MEMBTONODES 70930 . 71455) (MIN/BOTTOM 71457 . 71838) (
MIN/LEFT 71840 . 72215) (MOVENODE 72217 . 73460) (NODECREATE 73462 . 74242) (NODELST/AS/MENU 74244 .
75844) (NODEREGION 75846 . 76306) (PRINTDISPLAYNODE 76308 . 81366) (PROMPTINWINDOW 81368 . 84177) (
READ/NODE 84179 . 85293) (REDISPLAYGRAPH 85295 . 85737) (REMOVETONODES 85739 . 86260) (
RESET/NODE/BORDER 86262 . 88049) (RESET/NODE/LABELSHADE 88051 . 89566) (SCALE/GRAPH 89568 . 95854) (
SCALE/GRAPHNODE/BORDER 95856 . 96551) (SCALE/TONODES 96553 . 97434) (SET/LABEL/SIZE 97436 . 100382) (
SET/LAYOUT/POSITION 100384 . 100869) (SHOWGRAPH 100871 . 102670) (SIZE/GRAPH/WINDOW 102672 . 106156) (
TOGGLE/DIRECTEDFLG 106158 . 106788) (TOGGLE/SIDESFLG 106790 . 107278) (TOLINKS 107280 . 107446) (
TRACKCURSOR 107448 . 108855) (TRACKNODE 108857 . 109493) (TRANSGRAPH 109495 . 111242)) (111485 128102
(EDITMOVEREGION 111495 . 115298) (EDITMOVESUBTREE 115300 . 117077) (NOT.TRACKCURSOR 117079 . 120057) (
RECURSIVE.COLLECTDESCENDENTS 120059 . 121547) (MOVEDESCENDENTS 121549 . 123611) (COLLECT.CHILD.NODES
123613 . 124729) (CREATE.NEW.NODEPOSITION 124731 . 125271) (GETBOXPOSITION.FROMINITIALREGION 125273 .
126745) (COLLECTDESCENDENTS 126747 . 128100)) (128166 130455 (NEXTSIZEFONT 128176 . 129366) (
DECREASING.FONT.LIST 129368 . 129694) (SCALE.FONT 129696 . 130453)) (130679 169831 (BRH/LAYOUT 130689
. 132433) (BRH/LAYOUT/DAUGHTERS 132435 . 133381) (BRH/OFFSET 133383 . 134061) (BRHC/INTERTREE/SPACE
134063 . 135381) (BRHC/LAYOUT 135383 . 137239) (BRHC/LAYOUT/DAUGHTERS 137241 . 140195) (
BRHC/LAYOUT/TERMINAL 140197 . 140878) (BRHC/OFFSET 140880 . 141776) (BRHL/LAYOUT 141778 . 144002) (
BRHL/LAYOUT/DAUGHTERS 144004 . 145762) (BRHL/MOVE/RIGHT 145764 . 146907) (BROWSE/LAYOUT/HORIZ 146909
. 147633) (BROWSE/LAYOUT/HORIZ/COMPACTLY 147635 . 150441) (BROWSE/LAYOUT/LATTICE 150443 . 151299) (
BRV/OFFSET 151301 . 152164) (EXTEND/TRANSITION/CHAIN 152166 . 153437) (FOREST/BREAK/CYCLES 153439 .
154369) (INIT/NODES/FOR/LAYOUT 154371 . 155866) (INTERPRET/MARK/FORMAT 155868 . 157135) (
LATTICE/BREAK/CYCLES 157137 . 157841) (LAYOUTFOREST 157843 . 158544) (LAYOUTGRAPH 158546 . 162013) (
LAYOUTLATTICE 162015 . 163468) (LAYOUTSEXPR 163470 . 164541) (LAYOUTSEXPR1 164543 . 165245) (
MARK/GRAPH/NODE 165247 . 165977) (NEW/INSTANCE/OF/GRAPHNODE 165979 . 167348) (RAISE/TRANSITION/CHAIN
167350 . 167751) (REFLECT/GRAPH/DIAGONALLY 167753 . 168482) (REFLECT/GRAPH/HORIZONTALLY 168484 .
169010) (REFLECT/GRAPH/VERTICALLY 169012 . 169536) (SWITCH/NODE/HEIGHT/WIDTH 169538 . 169829)) (173177
174528 (GRAPHERIMAGEFNS 173187 . 174526)) (174529 176257 (GRAPHERCOPYBUTTONEVENTFN 174539 . 175518) (
GRAPHOBJ.FINDGRAPH 175520 . 176255)) (176258 178878 (ALIGNMENTNODE 176268 . 177690) (
GRAPHOBJ.CHECKALIGN 177692 . 178876)) (178879 194729 (GRAPHEROBJ 178889 . 180635) (
GRAPHOBJ.BUTTONEVENTINFN 180637 . 182064) (GRAPHOBJ.COPYBUTTONEVENTFN 182066 . 182503) (
GRAPHOBJ.COPYFN 182505 . 183429) (GRAPHOBJ.DISPLAYFN 183431 . 186246) (GRAPHOBJ.GETALIGN 186248 .
186987) (GRAPHOBJ.GETFN 186989 . 188494) (GRAPHOBJ.IMAGEBOXFN 188496 . 192512) (GRAPHOBJ.PUTALIGN
192514 . 193344) (GRAPHOBJ.PUTFN 193346 . 194727)) (194730 213882 (COPYGRAPH 194740 . 196288) (
DUMPGRAPH 196290 . 206546) (READGRAPH 206548 . 213880)))))
(FILEMAP (NIL (7149 112538 (ADD/AND/DISPLAY/LINK 7159 . 7861) (APPLYTOSELECTEDNODE 7863 . 8351) (
CALL.MOVENODEFN 8353 . 8702) (CHANGE.NODEFONT.SIZE 8704 . 10016) (DEFAULT.ADDNODEFN 10018 . 10816) (
DELETE/AND/DISPLAY/LINK 10818 . 12385) (DISPLAY/NAME 12387 . 12558) (DISPLAYGRAPH 12560 . 14931) (
DISPLAYLINK 14933 . 17486) (DISPLAYLINK/BT 17488 . 18845) (DISPLAYLINK/LR 18847 . 20205) (
DISPLAYLINK/RL 20207 . 21565) (DISPLAYLINK/TB 21567 . 22925) (DISPLAYNODE 22927 . 23275) (
ERASE/GRAPHNODE 23277 . 24384) (DISPLAYNODE 24386 . 24734) (DISPLAYNODELINKS 24736 . 25880) (
DRAW/GRAPHNODE/BORDER 25882 . 26801) (DRAWAREABOX 26803 . 28004) (EDITADDLINK 28006 . 28404) (
EDITADDNODE 28406 . 30495) (EDITAPPLYTOLINK 30497 . 32576) (EDITCHANGEFONT 32578 . 33750) (
EDITCHANGELABEL 33752 . 35293) (EDITDELETELINK 35295 . 35701) (EDITDELETENODE 35703 . 38404) (
EDITGRAPH 38406 . 38473) (EDITGRAPH1 38475 . 39233) (EDITGRAPH2 39235 . 40966) (EDITMOVENODE 40968 .
42545) (EDITTOGGLEBORDER 42547 . 43843) (EDITTOGGLELABEL 43845 . 45142) (FILL/GRAPHNODE/LABEL 45144 .
45972) (FIX/SCALE 45974 . 46530) (FLIPNODE 46532 . 47136) (FONTNAMELIST 47138 . 47357) (FROMLINKS
47359 . 47529) (GETNODEFROMID 47531 . 48550) (GN/BOTTOM 48552 . 48828) (GN/LEFT 48830 . 49103) (
GN/RIGHT 49105 . 49496) (GN/TOP 49498 . 49922) (GRAPHADDLINK 49924 . 50483) (GRAPHADDNODE 50485 .
51274) (GRAPHBUTTONEVENTFN 51276 . 53456) (GRAPHCHANGELABEL 53458 . 53901) (GRAPHDELETELINK 53903 .
55211) (GRAPHDELETENODE 55213 . 55745) (GRAPHEDITCOMMANDFN 55747 . 57131) (GRAPHEDITEVENTFN 57133 .
57844) (GRAPHER/CENTERPRINTINAREA 57846 . 58610) (GRAPHERPROP 58612 . 59156) (GRAPHNODE/BORDER/WIDTH
59158 . 59679) (GRAPHREGION 59681 . 60850) (HARDCOPYGRAPH 60852 . 68234) (INTERSECT/REGIONP/LBWH 68236
. 69512) (INVERTED/GRAPHNODE/BORDER 69514 . 70098) (INVERTED/SHADE/FOR/GRAPHER 70100 . 70732) (
LAYOUT/POSITION 70734 . 70913) (LINKPARAMETERS 70915 . 71367) (MAX/RIGHT 71369 . 71571) (MAX/TOP 71573
. 71771) (MEASUREGRAPHNODE 71773 . 72222) (MEMBTONODES 72224 . 72749) (MIN/BOTTOM 72751 . 73132) (
MIN/LEFT 73134 . 73509) (MOVENODE 73511 . 74754) (NODECREATE 74756 . 75536) (NODELST/AS/MENU 75538 .
77138) (NODEREGION 77140 . 77600) (PRINTDISPLAYNODE 77602 . 82660) (PROMPTINWINDOW 82662 . 85471) (
READ/NODE 85473 . 86587) (REDISPLAYGRAPH 86589 . 87031) (REMOVETONODES 87033 . 87554) (
RESET/NODE/BORDER 87556 . 89343) (RESET/NODE/LABELSHADE 89345 . 90860) (SCALE/GRAPH 90862 . 97148) (
SCALE/GRAPHNODE/BORDER 97150 . 97845) (SCALE/TONODES 97847 . 98728) (SET/LABEL/SIZE 98730 . 101676) (
SET/LAYOUT/POSITION 101678 . 102163) (SHOWGRAPH 102165 . 103964) (SIZE/GRAPH/WINDOW 103966 . 107450) (
TOGGLE/DIRECTEDFLG 107452 . 108082) (TOGGLE/SIDESFLG 108084 . 108572) (TOLINKS 108574 . 108740) (
TRACKCURSOR 108742 . 110149) (TRACKNODE 110151 . 110787) (TRANSGRAPH 110789 . 112536)) (112779 129396
(EDITMOVEREGION 112789 . 116592) (EDITMOVESUBTREE 116594 . 118371) (NOT.TRACKCURSOR 118373 . 121351) (
RECURSIVE.COLLECTDESCENDENTS 121353 . 122841) (MOVEDESCENDENTS 122843 . 124905) (COLLECT.CHILD.NODES
124907 . 126023) (CREATE.NEW.NODEPOSITION 126025 . 126565) (GETBOXPOSITION.FROMINITIALREGION 126567 .
128039) (COLLECTDESCENDENTS 128041 . 129394)) (129460 131749 (NEXTSIZEFONT 129470 . 130660) (
DECREASING.FONT.LIST 130662 . 130988) (SCALE.FONT 130990 . 131747)) (131973 171125 (BRH/LAYOUT 131983
. 133727) (BRH/LAYOUT/DAUGHTERS 133729 . 134675) (BRH/OFFSET 134677 . 135355) (BRHC/INTERTREE/SPACE
135357 . 136675) (BRHC/LAYOUT 136677 . 138533) (BRHC/LAYOUT/DAUGHTERS 138535 . 141489) (
BRHC/LAYOUT/TERMINAL 141491 . 142172) (BRHC/OFFSET 142174 . 143070) (BRHL/LAYOUT 143072 . 145296) (
BRHL/LAYOUT/DAUGHTERS 145298 . 147056) (BRHL/MOVE/RIGHT 147058 . 148201) (BROWSE/LAYOUT/HORIZ 148203
. 148927) (BROWSE/LAYOUT/HORIZ/COMPACTLY 148929 . 151735) (BROWSE/LAYOUT/LATTICE 151737 . 152593) (
BRV/OFFSET 152595 . 153458) (EXTEND/TRANSITION/CHAIN 153460 . 154731) (FOREST/BREAK/CYCLES 154733 .
155663) (INIT/NODES/FOR/LAYOUT 155665 . 157160) (INTERPRET/MARK/FORMAT 157162 . 158429) (
LATTICE/BREAK/CYCLES 158431 . 159135) (LAYOUTFOREST 159137 . 159838) (LAYOUTGRAPH 159840 . 163307) (
LAYOUTLATTICE 163309 . 164762) (LAYOUTSEXPR 164764 . 165835) (LAYOUTSEXPR1 165837 . 166539) (
MARK/GRAPH/NODE 166541 . 167271) (NEW/INSTANCE/OF/GRAPHNODE 167273 . 168642) (RAISE/TRANSITION/CHAIN
168644 . 169045) (REFLECT/GRAPH/DIAGONALLY 169047 . 169776) (REFLECT/GRAPH/HORIZONTALLY 169778 .
170304) (REFLECT/GRAPH/VERTICALLY 170306 . 170830) (SWITCH/NODE/HEIGHT/WIDTH 170832 . 171123)) (174438
175789 (GRAPHERIMAGEFNS 174448 . 175787)) (175790 177518 (GRAPHERCOPYBUTTONEVENTFN 175800 . 176779) (
GRAPHOBJ.FINDGRAPH 176781 . 177516)) (177519 180139 (ALIGNMENTNODE 177529 . 178951) (
GRAPHOBJ.CHECKALIGN 178953 . 180137)) (180140 195990 (GRAPHEROBJ 180150 . 181896) (
GRAPHOBJ.BUTTONEVENTINFN 181898 . 183325) (GRAPHOBJ.COPYBUTTONEVENTFN 183327 . 183764) (
GRAPHOBJ.COPYFN 183766 . 184690) (GRAPHOBJ.DISPLAYFN 184692 . 187507) (GRAPHOBJ.GETALIGN 187509 .
188248) (GRAPHOBJ.GETFN 188250 . 189755) (GRAPHOBJ.IMAGEBOXFN 189757 . 193773) (GRAPHOBJ.PUTALIGN
193775 . 194605) (GRAPHOBJ.PUTFN 194607 . 195988)) (195991 215143 (COPYGRAPH 196001 . 197549) (
DUMPGRAPH 197551 . 207807) (READGRAPH 207809 . 215141)))))
STOP

Binary file not shown.

View File

@@ -1,15 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10 FORMAT UTF-8)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10 :FORMAT :UTF-8)
(FILECREATED "22-Feb-2026 10:44:33" {WMEDLEY}<library>UNICODE-TABLES.;20 44960
(FILECREATED "31-Mar-2026 09:01:05" {WMEDLEY}<library>UNICODE-TABLES.;22 44782
:EDIT-BY rmk
:CHANGES-TO (FNS ALL-UNICODE-MAPPINGS GET-MCCS-UNICODE-MAPPING INVERT-UNICODE-MAPPING
MAKE-UNICODE-TRANSLATION-TABLES MERGE-UNICODE-TRANSLATION-TABLES
READ-UNICODE-MAPPING-FILENAMES)
(VARS UNICODE-TABLESCOMS)
:CHANGES-TO (VARS XCCS-CHARSETS)
:PREVIOUS-DATE "22-Feb-2026 09:15:20" {WMEDLEY}<library>UNICODE-TABLES.;16)
:PREVIOUS-DATE "22-Feb-2026 10:44:33" {WMEDLEY}<library>UNICODE-TABLES.;20)
(PRETTYCOMPRINT UNICODE-TABLESCOMS)
@@ -78,8 +75,9 @@
(RUNIC-GOTHIC "51")
(MORE-CYRILLIC "52")
(UNKNOWN1 "56")
(DECORATED-RULES "56")
(UNKNOWN2 "57")
(JIS "60-166")
(VERTICAL-JAPANESE "57")
(ARABIC "340")
(HEBREW "341")
(IPA "342")
@@ -101,9 +99,10 @@
(ACCENTED-GREEK2 "364")
(MORE-ARABIC "365")
(GRAPHIC-VARIANTS "375")
(JAPANESE HIRAGANA KATAKANA JIS)
(DEFAULT LATIN ACCENTED-LATIN1 EXTENDED-LATIN SYMBOLS1 SYMBOLS2 FORMS JAPANESE-SYMBOLS1
JAPANESE-SYMBOLS2)
(JAPANESE HIRAGANA KATAKANA JIS)))
(JIS "60-166")))
(DEFINEQ
(READ-UNICODE-MAPPING-FILENAMES
@@ -793,12 +792,12 @@
UNICODE-EXPORTS)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (4107 12829 (READ-UNICODE-MAPPING-FILENAMES 4117 . 8586) (READ-UNICODE-MAPPING 8588 .
12827)) (12896 19704 (MAKE-UNICODE-TRANSLATION-TABLES 12906 . 15666) (GET-MCCS-UNICODE-MAPPING 15668
. 16688) (INVERT-UNICODE-MAPPING 16690 . 18483) (XCCSTOMCCS-MAPPING 18485 . 19702)) (19705 26328 (
ALL-UNICODE-MAPPINGS 19715 . 24991) (XCCSJAPANESECHARSETS 24993 . 26326)) (26373 37135 (
WRITE-UNICODE-MAPPING 26383 . 30127) (WRITE-UNICODE-INCLUDED 30129 . 34441) (
WRITE-UNICODE-MAPPING-HEADER 34443 . 35691) (WRITE-UNICODE-MAPPING-FILENAME 35693 . 37133)) (37136
37812 (XCCS-UTF8-AFTER-OPEN 37146 . 37810)) (40337 42426 (UTF8HEXSTRING 40347 . 42424)) (42453 44495 (
SHOWCHARS 42463 . 44493)))))
(FILEMAP (NIL (3929 12651 (READ-UNICODE-MAPPING-FILENAMES 3939 . 8408) (READ-UNICODE-MAPPING 8410 .
12649)) (12718 19526 (MAKE-UNICODE-TRANSLATION-TABLES 12728 . 15488) (GET-MCCS-UNICODE-MAPPING 15490
. 16510) (INVERT-UNICODE-MAPPING 16512 . 18305) (XCCSTOMCCS-MAPPING 18307 . 19524)) (19527 26150 (
ALL-UNICODE-MAPPINGS 19537 . 24813) (XCCSJAPANESECHARSETS 24815 . 26148)) (26195 36957 (
WRITE-UNICODE-MAPPING 26205 . 29949) (WRITE-UNICODE-INCLUDED 29951 . 34263) (
WRITE-UNICODE-MAPPING-HEADER 34265 . 35513) (WRITE-UNICODE-MAPPING-FILENAME 35515 . 36955)) (36958
37634 (XCCS-UTF8-AFTER-OPEN 36968 . 37632)) (40159 42248 (UTF8HEXSTRING 40169 . 42246)) (42275 44317 (
SHOWCHARS 42285 . 44315)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED "19-Jan-2026 14:09:03" {WMEDLEY}<library>UNIXUTILS.;55 20711
(FILECREATED "28-Apr-2026 09:59:13" {WMEDLEY}<library>UNIXUTILS.;61 22079
:EDIT-BY rmk
:CHANGES-TO (FNS UNIX-FILE-NAME)
:CHANGES-TO (VARS UNIXUTILSCOMS)
:PREVIOUS-DATE "17-Jan-2026 23:16:17" {WMEDLEY}<library>UNIXUTILS.;54)
:PREVIOUS-DATE "27-Apr-2026 11:10:07" {MEDLEY}<library>UNIXUTILS.;60)
(PRETTYCOMPRINT UNIXUTILSCOMS)
@@ -23,6 +23,7 @@
(ShellOpener NIL RESET)))
(FNS ShellBrowser ShellBrowse ShellOpener ShellOpen PROCESS-COMMAND SLASHIT UNIX-FILE-NAME
UNIX-TMP-FILE-NAME)
(COMMANDS "cd" cdm "ls" "pwd")
(PROPS (UNIXUTILS FILETYPE))))
(DECLARE%: EVAL@COMPILE DONTCOPY
@@ -148,7 +149,8 @@
"true"])
(ShellOpen
[LAMBDA (FilenameOrURL) (* ; "Edited 28-Dec-2025 18:26 by rmk")
[LAMBDA (FilenameOrURL) (* ; "Edited 27-Apr-2026 11:08 by FGH")
(* ; "Edited 28-Dec-2025 18:26 by rmk")
(* ; "Edited 10-Sep-2025 15:29 by rmk")
(* ; "Edited 4-May-2025 11:14 by rmk")
@@ -210,7 +212,8 @@
'NAME NEWNAME 'EXTENSION EXTENSION))
(TARGETFILE.UNIX (SLASHIT (PACKFILENAME.STRING 'HOST NIL 'DIRECTORY
TMPDIR 'NAME NEWNAME 'EXTENSION
EXTENSION)))
EXTENSION)
NIL NIL NIL T))
(UNIXFILE NIL))
(DECLARE (SPECVARS UNIXFILE))
(if (OR VERSION.SPECIFIED (NOT UNVERSIONED.EXISTS))
@@ -245,7 +248,8 @@
0))) DO (BLOCK) FINALLY (RETURN CODE])
(SLASHIT
[LAMBDA (X LCASEDIRS NOHOST KEEPDOT) (* ; "Edited 17-Jan-2026 23:15 by rmk")
[LAMBDA (X LCASEDIRS NOHOST KEEPDOT NO.QUOTE.SPACE) (* ; "Edited 27-Apr-2026 11:00 by FGH")
(* ; "Edited 17-Jan-2026 23:15 by rmk")
(* ; "Edited 4-Nov-2025 10:10 by rmk")
(* ; "Edited 22-Oct-2025 13:05 by rmk")
(* ; "Edited 25-Sep-2025 09:57 by rmk")
@@ -258,7 +262,10 @@
(* ;; "This is a first approximation to a utility that converts a filename X on a host whose files physically reside in the local Unix file system into the strings that shell commands can use to reference that file. For now, this just involves replacing directory brackets with /, removing the host, perhaps lower-casing the directory, and perhaps removing a final dot. It probably should be extended to deal with version number translation, for now it just keeps the ; version. ")
(LET [LASTDIRPOS SLASHED (DIRPOS (ADD1 (OR (STRPOS "}" X)
0]
0)))
(REPLACE.SPACE (if NO.QUOTE.SPACE
then (CONS (CHARCODE SPACE))
else (CHARCODE (\ SPACE]
[SETQ SLASHED (CONCATCODES (for I C from DIRPOS while (SETQ C (NTHCHARCODE X I))
join (SELCHARQ C
((< >)
@@ -266,7 +273,7 @@
(CONS (CHARCODE /)))
(/ (SETQ LASTDIRPOS I)
(CONS C))
(SPACE (APPEND (CHARCODE (\ SPACE))))
(SPACE (APPEND REPLACE.SPACE))
(CONS C]
(CL:WHEN (AND LCASEDIRS LASTDIRPOS)
(SETQ LASTDIRPOS (ADD1 (IDIFFERENCE LASTDIRPOS DIRPOS)))
@@ -287,7 +294,9 @@
SLASHED])
(UNIX-FILE-NAME
[LAMBDA (FILE ACCESS COPY EXTENSION) (* ; "Edited 19-Jan-2026 14:05 by rmk")
[LAMBDA (FILE ACCESS COPY EXTENSION) (* ; "Edited 31-Mar-2026 00:13 by rmk")
(* ; "Edited 29-Mar-2026 00:26 by rmk")
(* ; "Edited 19-Jan-2026 14:05 by rmk")
(* ; "Edited 17-Jan-2026 22:32 by rmk")
(* ; "Edited 11-Jan-2026 23:54 by rmk")
(* ; "Edited 27-Dec-2025 21:24 by rmk")
@@ -317,8 +326,13 @@
FILE))
(DSK [LET ((VERSION (FILENAMEFIELD FILE 'VERSION))
(UNAME (PACKFILENAME 'VERSION NIL 'BODY FILE)))
(CL:UNLESS (EQ VERSION 1)
(CONCAT UNAME (CONCAT "~" VERSION "~")))])
(CL:IF (EQ VERSION 1)
UNAME
(CONCAT UNAME (CONCAT (CL:IF (EQ (CHARCODE %.)
(NTHCHARCODE UNAME -1))
""
".")
"~" VERSION "~")))])
(LET (UNAME)
(* ;; "Catch the streams as well as other devices (CORE, servers)")
@@ -358,10 +372,20 @@
unless (INFILEP UNAME) do (RETURN (SLASHIT (CLOSEF (OPENSTREAM UNAME 'OUTPUT 'NEW])
)
(DEFCOMMAND "cd" (DIR) (/CNDIR DIR))
(DEFCOMMAND cdm (SUBDIR) (/CNDIR (CL:IF SUBDIR
(CONCAT '{MEDLEY}/ SUBDIR)
'{MEDLEY})))
(DEFCOMMAND "ls" (FIRST . REST) (DODIR (CONS FIRST REST)))
(DEFCOMMAND "pwd" NIL (DIRECTORYNAME T))
(PUTPROPS UNIXUTILS FILETYPE CL:COMPILE-FILE)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (1170 1543 (ShellCommand 1170 . 1543)) (1545 1942 (ShellWhich 1545 . 1942)) (2052 20633
(ShellBrowser 2062 . 3834) (ShellBrowse 3836 . 4521) (ShellOpener 4523 . 6211) (ShellOpen 6213 . 11982
) (PROCESS-COMMAND 11984 . 12597) (SLASHIT 12599 . 15623) (UNIX-FILE-NAME 15625 . 18952) (
UNIX-TMP-FILE-NAME 18954 . 20631)))))
(FILEMAP (NIL (1208 1581 (ShellCommand 1208 . 1581)) (1583 1980 (ShellWhich 1583 . 1980)) (2090 21695
(ShellBrowser 2100 . 3872) (ShellBrowse 3874 . 4559) (ShellOpener 4561 . 6249) (ShellOpen 6251 . 12198
) (PROCESS-COMMAND 12200 . 12813) (SLASHIT 12815 . 16127) (UNIX-FILE-NAME 16129 . 20014) (
UNIX-TMP-FILE-NAME 20016 . 21693)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED " 2-Mar-2026 18:32:06" {WMEDLEY}<library>tedit>TEDIT.;853 146506
(FILECREATED "10-Mar-2026 18:07:31" {WMEDLEY}<library>tedit>TEDIT.;855 146853
:EDIT-BY rmk
:CHANGES-TO (VARS TEDITCOMS)
:CHANGES-TO (FNS TDRIBBLE)
:PREVIOUS-DATE " 4-Feb-2026 16:02:02" {WMEDLEY}<library>tedit>TEDIT.;852)
:PREVIOUS-DATE " 2-Mar-2026 18:32:06" {WMEDLEY}<library>tedit>TEDIT.;853)
(PRETTYCOMPRINT TEDITCOMS)
@@ -743,17 +743,21 @@
(DEFINEQ
(TDRIBBLE
[LAMBDA NIL (* ; "Edited 31-Mar-2025 12:03 by rmk")
[LAMBDA (TITLE WINDOW) (* ; "Edited 10-Mar-2026 17:39 by rmk")
(* ; "Edited 31-Mar-2025 12:03 by rmk")
(* ; "Edited 16-Mar-2025 21:47 by rmk")
(* ; "Edited 27-Nov-2024 23:20 by rmk")
(* ; "Edited 17-Nov-2024 14:10 by rmk")
(* ; "Edited 15-Nov-2024 21:13 by rmk")
(* ; "Edited 22-Oct-2024 21:23 by rmk")
(LET [(TSTREAM (OPENTEXTSTREAM NIL NIL NIL NIL `(HISTORY OFF FONT DEFAULTFONT]
(LET [(TSTREAM (OPENTEXTSTREAM NIL NIL NIL NIL `(TITLE ,(CONCAT (OR TITLE "Tedit Dribble")
" "
(DATE))
HISTORY OFF FONT DEFAULTFONT]
[WHENCLOSE TSTREAM 'BEFORE
(FUNCTION (LAMBDA (TSTREAM)
[TEDIT TSTREAM 'Dribble NIL
`(TITLE ,(CONCAT "Tedit Dribble " (DATE))
`(TITLE ,(TEXTPROP TSTREAM 'TITLE)
LEAVETTY T APPEND QUIET PARABREAKCHARS NIL HISTORY OFF
OPENWIDTH ,(fetch (REGION WIDTH)
of (WINDOWPROP (WFROMDS T)
@@ -2345,27 +2349,27 @@
(DEFAULT.IMAGETYPE.CONVERSIONS '(TEDIT TEDIT.TO.IMAGEFILE))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (4738 7132 (MAKE-TEDIT-EXPORTS.ALL 4748 . 5294) (UPDATE-TEDIT 5296 . 6225) (EDIT-TEDIT
6227 . 7130)) (8487 37486 (TEDIT 8497 . 11111) (TEXTSTREAM 11113 . 13002) (TEXTSTREAMP 13004 . 13388)
(COERCETEXTSTREAM 13390 . 17601) (TEDIT.CONCAT 17603 . 20905) (TEDITSTRING 20907 . 21821) (TEDIT-SEE
21823 . 22507) (TEDIT.COPY 22509 . 24654) (TEDIT.DELETE 24656 . 26017) (TEDIT.INSERT 26019 . 28988) (
TEDIT.TERPRI 28990 . 30104) (TEDIT.KILL 30106 . 31088) (TEDIT.QUIT 31090 . 32456) (TEDIT.MOVE 32458 .
33346) (TEDIT.STRINGWIDTH 33348 . 34019) (TEDIT.CHARWIDTH 34021 . 36263) (TEDIT.PARAGRAPH.BOUNDARIES
36265 . 37484)) (37487 39428 (TEXTOBJ 37497 . 37962) (COERCETEXTOBJ 37964 . 39426)) (40828 42478 (
TDRIBBLE 40838 . 42476)) (42519 54499 (TEDIT.INSERT.OBJECT 42529 . 46236) (TEDIT.EDIT.OBJECT 46238 .
49178) (TEDIT.OBJECT.CHANGED 49180 . 52370) (TEDIT.MAP.OBJECTS 52372 . 54027) (\TEDIT.FIRST.OBJPIECE
54029 . 54262) (\TEDIT.NEXT.OBJPIECE 54264 . 54497)) (54522 61965 (\TEDIT.CONCAT.PAGEFRAMES 54532 .
59599) (\TEDIT.GET.PAGE.HEADINGS 59601 . 60630) (\TEDIT.CONCAT.INSTALL.HEADINGS 60632 . 61963)) (61966
65573 (\TEDIT.MOVE.MSG 61976 . 64057) (\TEDIT.READONLY 64059 . 65571)) (65574 71465 (TEDIT.NCHARS
65584 . 65957) (TEDIT.RPLCHARCODE 65959 . 68949) (TEDIT.NTHCHARCODE 68951 . 70994) (TEDIT.NTHCHAR
70996 . 71463)) (71511 128555 (\TEDIT1 71521 . 73598) (\TEDIT.INSERT 73600 . 79713) (\TEDIT.MOVE 79715
. 87813) (\TEDIT.COPY 87815 . 92421) (\TEDIT.REPLACE.SELPIECES 92423 . 96959) (
\TEDIT.INSERT.SELPIECES 96961 . 99958) (\TEDIT.RESTARTFN 99960 . 102465) (\TEDIT.CHARDELETE 102467 .
105396) (\TEDIT.COPYPIECE 105398 . 110560) (\TEDIT.APPLY.OBJFN 110562 . 113648) (\TEDIT.DELETE 113650
. 118018) (\TEDIT.DIFFUSE.PARALOOKS 118020 . 120291) (\TEDIT.WORDDELETE 120293 . 121908) (
\TEDIT.WORDDELETE.FORWARD 121910 . 123699) (\TEDIT.FINISHEDIT? 123701 . 128553)) (128556 129215 (
\TEDIT.THELP 128566 . 129213)) (129249 138380 (\TEDIT.PARAPIECES 129259 . 131233) (\TEDIT.PARACHNOS
131235 . 132127) (\TEDIT.PARA.FIRST 132129 . 135230) (\TEDIT.PARA.LAST 135232 . 138378)) (138381
145476 (\TEDIT.WORD.FIRST 138391 . 142395) (\TEDIT.WORD.LAST 142397 . 145474)) (145677 145954 (
TEDITSYSTEMDATE 145687 . 145952)) (146090 146297 (TEDIT.IMAGESOURCEP 146100 . 146295)))))
(FILEMAP (NIL (4736 7130 (MAKE-TEDIT-EXPORTS.ALL 4746 . 5292) (UPDATE-TEDIT 5294 . 6223) (EDIT-TEDIT
6225 . 7128)) (8485 37484 (TEDIT 8495 . 11109) (TEXTSTREAM 11111 . 13000) (TEXTSTREAMP 13002 . 13386)
(COERCETEXTSTREAM 13388 . 17599) (TEDIT.CONCAT 17601 . 20903) (TEDITSTRING 20905 . 21819) (TEDIT-SEE
21821 . 22505) (TEDIT.COPY 22507 . 24652) (TEDIT.DELETE 24654 . 26015) (TEDIT.INSERT 26017 . 28986) (
TEDIT.TERPRI 28988 . 30102) (TEDIT.KILL 30104 . 31086) (TEDIT.QUIT 31088 . 32454) (TEDIT.MOVE 32456 .
33344) (TEDIT.STRINGWIDTH 33346 . 34017) (TEDIT.CHARWIDTH 34019 . 36261) (TEDIT.PARAGRAPH.BOUNDARIES
36263 . 37482)) (37485 39426 (TEXTOBJ 37495 . 37960) (COERCETEXTOBJ 37962 . 39424)) (40826 42825 (
TDRIBBLE 40836 . 42823)) (42866 54846 (TEDIT.INSERT.OBJECT 42876 . 46583) (TEDIT.EDIT.OBJECT 46585 .
49525) (TEDIT.OBJECT.CHANGED 49527 . 52717) (TEDIT.MAP.OBJECTS 52719 . 54374) (\TEDIT.FIRST.OBJPIECE
54376 . 54609) (\TEDIT.NEXT.OBJPIECE 54611 . 54844)) (54869 62312 (\TEDIT.CONCAT.PAGEFRAMES 54879 .
59946) (\TEDIT.GET.PAGE.HEADINGS 59948 . 60977) (\TEDIT.CONCAT.INSTALL.HEADINGS 60979 . 62310)) (62313
65920 (\TEDIT.MOVE.MSG 62323 . 64404) (\TEDIT.READONLY 64406 . 65918)) (65921 71812 (TEDIT.NCHARS
65931 . 66304) (TEDIT.RPLCHARCODE 66306 . 69296) (TEDIT.NTHCHARCODE 69298 . 71341) (TEDIT.NTHCHAR
71343 . 71810)) (71858 128902 (\TEDIT1 71868 . 73945) (\TEDIT.INSERT 73947 . 80060) (\TEDIT.MOVE 80062
. 88160) (\TEDIT.COPY 88162 . 92768) (\TEDIT.REPLACE.SELPIECES 92770 . 97306) (
\TEDIT.INSERT.SELPIECES 97308 . 100305) (\TEDIT.RESTARTFN 100307 . 102812) (\TEDIT.CHARDELETE 102814
. 105743) (\TEDIT.COPYPIECE 105745 . 110907) (\TEDIT.APPLY.OBJFN 110909 . 113995) (\TEDIT.DELETE
113997 . 118365) (\TEDIT.DIFFUSE.PARALOOKS 118367 . 120638) (\TEDIT.WORDDELETE 120640 . 122255) (
\TEDIT.WORDDELETE.FORWARD 122257 . 124046) (\TEDIT.FINISHEDIT? 124048 . 128900)) (128903 129562 (
\TEDIT.THELP 128913 . 129560)) (129596 138727 (\TEDIT.PARAPIECES 129606 . 131580) (\TEDIT.PARACHNOS
131582 . 132474) (\TEDIT.PARA.FIRST 132476 . 135577) (\TEDIT.PARA.LAST 135579 . 138725)) (138728
145823 (\TEDIT.WORD.FIRST 138738 . 142742) (\TEDIT.WORD.LAST 142744 . 145821)) (146024 146301 (
TEDITSYSTEMDATE 146034 . 146299)) (146437 146644 (TEDIT.IMAGESOURCEP 146447 . 146642)))))
STOP

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED "23-Jan-2026 15:49:26" {WMEDLEY}<library>TEDIT>TEDIT-ABBREV.;58 18256
(FILECREATED "30-Apr-2026 11:55:15" {MEDLEY}<library>tedit>TEDIT-ABBREV.;59 18372
:EDIT-BY rmk
:CHANGES-TO (FNS \TEDIT.ABBREV.EXPAND)
:PREVIOUS-DATE "13-Jan-2026 17:51:55" {WMEDLEY}<library>tedit>TEDIT-ABBREV.;55)
:PREVIOUS-DATE "23-Jan-2026 15:49:26" {MEDLEY}<library>tedit>TEDIT-ABBREV.;58)
(PRETTYCOMPRINT TEDIT-ABBREVCOMS)
@@ -86,7 +86,8 @@
(DEFINEQ
(\TEDIT.ABBREV.EXPAND
[LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 23-Jan-2026 15:49 by rmk")
[LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 30-Apr-2026 11:53 by rmk")
(* ; "Edited 23-Jan-2026 15:49 by rmk")
(* ; "Edited 20-Jan-2026 09:56 by rmk")
(* ; "Edited 13-Jan-2026 17:51 by rmk")
(* ; "Edited 8-Jan-2026 09:08 by rmk")
@@ -118,7 +119,7 @@
(SETQ BACKSLASH T) (* ;
 "Started with backslash, extend match")
(SETQ POINTSELECTION NIL)
(for I CH from (SUB1 LASTCHNO) by -1 as J from 1 to 25
(for I CH from (SUB1 LASTCHNO) by -1 to 1 as J from 1 to 25
do (SETQ CH (TEDIT.NTHCHARCODE TSTREAM I)) (* ; "Don't cross over an image obj")
(if (IMAGEOBJP CH)
then (RETURN)
@@ -363,7 +364,7 @@
("DATE" \TEDIT.EXPAND.DATE)
(">>DATE<<" \TEDIT.EXPAND.DATE)))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (4348 15152 (\TEDIT.ABBREV.EXPAND 4358 . 9123) (\TEDIT.ABBREV.EXPANSION 9125 . 12189) (
\TEDIT.ABBREV.TREE 12191 . 13322) (\TEDIT.ABBREV.PARSE 13324 . 14476) (\TEDIT.ABBREV.PARSE.CHARCODE
14478 . 15150)) (15153 15798 (\TEDIT.EXPAND.DATE 15163 . 15796)))))
(FILEMAP (NIL (4346 15268 (\TEDIT.ABBREV.EXPAND 4356 . 9239) (\TEDIT.ABBREV.EXPANSION 9241 . 12305) (
\TEDIT.ABBREV.TREE 12307 . 13438) (\TEDIT.ABBREV.PARSE 13440 . 14592) (\TEDIT.ABBREV.PARSE.CHARCODE
14594 . 15266)) (15269 15914 (\TEDIT.EXPAND.DATE 15279 . 15912)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED "25-Jan-2026 09:14:04" {WMEDLEY}<library>TEDIT>TEDIT-BUTTONS.;230 123301
(FILECREATED "29-Apr-2026 17:57:09" {MEDLEY}<library>TEDIT>TEDIT-BUTTONS.;233 123809
:EDIT-BY rmk
:CHANGES-TO (VARS TEDIT-BUTTONSCOMS)
:CHANGES-TO (FNS MB.NWAY.SIZEFN)
:PREVIOUS-DATE "19-Oct-2025 10:44:18" {WMEDLEY}<library>TEDIT>TEDIT-BUTTONS.;229)
:PREVIOUS-DATE "17-Mar-2026 00:38:38" {MEDLEY}<library>TEDIT>TEDIT-BUTTONS.;231)
(PRETTYCOMPRINT TEDIT-BUTTONSCOMS)
@@ -922,11 +922,12 @@
SOBJ STREAM])
(MB.NWAY.SIZEFN
[LAMBDA (OBJ STREAM CURX RIGHTMARGIN) (* ; "Edited 20-Aug-2024 15:12 by rmk")
[LAMBDA (OBJ STREAM CURX RIGHTMARGIN) (* ; "Edited 29-Apr-2026 17:56 by rmk")
(* ; "Edited 20-Aug-2024 15:12 by rmk")
(* ; "Edited 22-Jul-2024 11:31 by rmk")
(* jds " 6-Sep-84 14:19")
(* ; "Tell the size of an n-way menu")
(OR (IMAGEOBJPROP OBJ 'BOUNDBOX)
(OR (AND NIL (IMAGEOBJPROP OBJ 'BOUNDBOX))
(LET ((OLDBOX (IMAGEOBJPROP OBJ 'BOUNDBOX))
(SUBOBJECTS (IMAGEOBJPROP OBJ 'SUBOBJECTS))
(MAXITEMS/LINE (IMAGEOBJPROP OBJ 'MAXITEMS/LINE))
@@ -935,7 +936,9 @@
(BUTTONHEIGHT (IMAGEOBJPROP OBJ 'BUTTONHEIGHT))
(SPACING (IMAGEOBJPROP OBJ 'ITEMSPACE))
(SLACK (IDIFFERENCE RIGHTMARGIN CURX))
BOX XSIZE YSIZE LINES)
(XSIZE 0)
(YSIZE 0)
BOX YSIZE LINES)
[if (AND (IGEQ SLACK MAXWIDTH)
(EQ MAXITEMS/LINE (LENGTH SUBOBJECTS)))
then (* ;
@@ -950,8 +953,11 @@
(IMAGEOBJPROP SO 'Y 0))
elseif (ILEQ SLACK (IMAGEOBJPROP OBJ 'MINWIDTH))
then (* ; "Stack them vertically.")
(for SO (Y _ (ITIMES BUTTONHEIGHT (LENGTH SUBOBJECTS))) in SUBOBJECTS
(SETQ YSIZE (ITIMES BUTTONHEIGHT (LENGTH SUBOBJECTS)))
(SETQ XSIZE SPACING)
(for SO (Y _ YSIZE) in SUBOBJECTS
do (add Y (IMINUS BUTTONHEIGHT))
[SETQ XSIZE (IMAX XSIZE (fetch XSIZE of (IMAGEOBJPROP SO 'BOUNDBOX]
(IMAGEOBJPROP SO 'Y Y)
(IMAGEOBJPROP SO 'X 0))
else (* ; "Divide them into lines")
@@ -1749,7 +1755,8 @@
ENDPC])
(MB.FIELD.SETSTATEFN
[LAMBDA (PREFIXPC NEWVALUE TSTREAM) (* ; "Edited 6-Apr-2025 12:23 by rmk")
[LAMBDA (PREFIXPC NEWVALUE TSTREAM) (* ; "Edited 17-Mar-2026 00:38 by rmk")
(* ; "Edited 6-Apr-2025 12:23 by rmk")
(* ; "Edited 9-Dec-2024 22:14 by rmk")
(* ; "Edited 4-Dec-2024 20:31 by rmk")
(* ; "Edited 20-Oct-2024 17:20 by rmk")
@@ -1805,8 +1812,9 @@
(\TEDIT.INSERT NEWVALUE FSEL TSTREAM T T)
(NCHARS NEWVALUE)))
(\TEDIT.UPDATE.SEL FSEL FIELDSTART FIELDLENGTH 'LEFT)
(\TEDIT.CHANGE.CHARLOOKS TSTREAM (IMAGEOBJPROP PREFIXOBJ 'FIELDLOOKS)
FSEL)
(CL:UNLESS (EQ 0 (GETSEL FSEL DCH))
(\TEDIT.CHANGE.CHARLOOKS TSTREAM (IMAGEOBJPROP PREFIXOBJ 'FIELDLOOKS)
FSEL))
(IMAGEOBJPROP PREFIXOBJ 'FIELDLENGTH FIELDLENGTH)
(IMAGEOBJPROP PREFIXOBJ 'STATE NEWVALUE)
@@ -1937,25 +1945,25 @@
(MB.FIELD.INIT)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (3188 19324 (MB.ADD 3198 . 9910) (MB.DELETE 9912 . 10286) (MB.GET 10288 . 17058) (
MB.GET.MBARG 17060 . 18729) (TEDIT.BACKTOMAIN 18731 . 19322)) (19368 39304 (MB.BUTTONEVENTINFN 19378
. 20946) (MB.DISPLAYFN 20948 . 23007) (MB.SETIMAGE 23009 . 24177) (MB.SIZEFN 24179 . 25727) (
MB.WHENOPERATEDONFN 25729 . 27678) (MB.COPYFN 27680 . 28138) (MB.GETFN 28140 . 29101) (MB.PUTFN 29103
. 30203) (MB.SHOWSELFN 30205 . 31714) (MB.CREATE 31716 . 35739) (MB.CHANGENAME 35741 . 36223) (
MB.INIT 36225 . 37686) (MB.TRACK.UNTIL 37688 . 38383) (MB.DON'T 38385 . 38681) (MB.SPEC.REMAINDER
38683 . 39302)) (39466 49471 (MB.3STATE.CREATE 39476 . 40340) (MB.3STATE.DISPLAYFN 40342 . 41328) (
MB.3STATE.SHOWSELFN 41330 . 43641) (MB.3STATE.INIT 43643 . 45054) (MB.3STATE.SETSTATEFN 45056 . 45714)
(MB.3STATE.BUTTONEVENTINFN 45716 . 49469)) (49626 78530 (MB.NWAY.CREATE 49636 . 55819) (
MB.NWAY.DISPLAYFN 55821 . 56684) (MB.NWAY.SIZEFN 56686 . 60622) (MB.NWAY.SELECT 60624 . 64194) (
MB.NWAY.BUTTONEVENTINFN 64196 . 67408) (MB.NWAY.NEWMENUBUTTON 67410 . 68122) (MB.NWAY.COPYFN 68124 .
69091) (MB.NWAY.INIT 69093 . 70584) (MB.NWAY.ARRANGEBUTTONS 70586 . 72557) (MB.NWAY.ADDITEM 72559 .
76708) (MB.NWAY.FINDSUBOBJ 76710 . 77224) (MB.NWAY.SETSTATEFN 77226 . 78528)) (78609 90608 (
MB.TOGGLE.CREATE 78619 . 79614) (MB.TOGGLE.DISPLAYFN 79616 . 81099) (MB.TOGGLE.INIT 81101 . 82900) (
MB.SET.TOGGLE 82902 . 84103) (MB.TOGGLE.SETSTATEFN 84105 . 84945) (MB.TOGGLE.BUTTONEVENTINFN 84947 .
89263) (MB.TOGGLE.WHENOPERATEDONFN 89265 . 90606)) (90689 123222 (MB.FIELD.CREATE 90699 . 96150) (
MB.FIELD.DISPLAYFN 96152 . 96943) (MB.FIELD.IMAGEBOXFN 96945 . 98427) (MB.FIELD.PREFIXCREATE 98429 .
102365) (MB.FIELD.SUFFIXCREATE 102367 . 104027) (MB.FIELD.INIT 104029 . 105796) (
MB.FIELD.WHENOPERATEDONFN 105798 . 107069) (MB.FIELD.GETSTATEFN 107071 . 111005) (MB.FIELD.SETSTATEFN
111007 . 115811) (MB.FIELD.BUTTONEVENTINFN 115813 . 118118) (MB.FIELD.SIZEFN 118120 . 118360) (
MB.FIELD.INSURETYPE 118362 . 123220)))))
(FILEMAP (NIL (3182 19318 (MB.ADD 3192 . 9904) (MB.DELETE 9906 . 10280) (MB.GET 10282 . 17052) (
MB.GET.MBARG 17054 . 18723) (TEDIT.BACKTOMAIN 18725 . 19316)) (19362 39298 (MB.BUTTONEVENTINFN 19372
. 20940) (MB.DISPLAYFN 20942 . 23001) (MB.SETIMAGE 23003 . 24171) (MB.SIZEFN 24173 . 25721) (
MB.WHENOPERATEDONFN 25723 . 27672) (MB.COPYFN 27674 . 28132) (MB.GETFN 28134 . 29095) (MB.PUTFN 29097
. 30197) (MB.SHOWSELFN 30199 . 31708) (MB.CREATE 31710 . 35733) (MB.CHANGENAME 35735 . 36217) (
MB.INIT 36219 . 37680) (MB.TRACK.UNTIL 37682 . 38377) (MB.DON'T 38379 . 38675) (MB.SPEC.REMAINDER
38677 . 39296)) (39460 49465 (MB.3STATE.CREATE 39470 . 40334) (MB.3STATE.DISPLAYFN 40336 . 41322) (
MB.3STATE.SHOWSELFN 41324 . 43635) (MB.3STATE.INIT 43637 . 45048) (MB.3STATE.SETSTATEFN 45050 . 45708)
(MB.3STATE.BUTTONEVENTINFN 45710 . 49463)) (49620 78873 (MB.NWAY.CREATE 49630 . 55813) (
MB.NWAY.DISPLAYFN 55815 . 56678) (MB.NWAY.SIZEFN 56680 . 60965) (MB.NWAY.SELECT 60967 . 64537) (
MB.NWAY.BUTTONEVENTINFN 64539 . 67751) (MB.NWAY.NEWMENUBUTTON 67753 . 68465) (MB.NWAY.COPYFN 68467 .
69434) (MB.NWAY.INIT 69436 . 70927) (MB.NWAY.ARRANGEBUTTONS 70929 . 72900) (MB.NWAY.ADDITEM 72902 .
77051) (MB.NWAY.FINDSUBOBJ 77053 . 77567) (MB.NWAY.SETSTATEFN 77569 . 78871)) (78952 90951 (
MB.TOGGLE.CREATE 78962 . 79957) (MB.TOGGLE.DISPLAYFN 79959 . 81442) (MB.TOGGLE.INIT 81444 . 83243) (
MB.SET.TOGGLE 83245 . 84446) (MB.TOGGLE.SETSTATEFN 84448 . 85288) (MB.TOGGLE.BUTTONEVENTINFN 85290 .
89606) (MB.TOGGLE.WHENOPERATEDONFN 89608 . 90949)) (91032 123730 (MB.FIELD.CREATE 91042 . 96493) (
MB.FIELD.DISPLAYFN 96495 . 97286) (MB.FIELD.IMAGEBOXFN 97288 . 98770) (MB.FIELD.PREFIXCREATE 98772 .
102708) (MB.FIELD.SUFFIXCREATE 102710 . 104370) (MB.FIELD.INIT 104372 . 106139) (
MB.FIELD.WHENOPERATEDONFN 106141 . 107412) (MB.FIELD.GETSTATEFN 107414 . 111348) (MB.FIELD.SETSTATEFN
111350 . 116319) (MB.FIELD.BUTTONEVENTINFN 116321 . 118626) (MB.FIELD.SIZEFN 118628 . 118868) (
MB.FIELD.INSURETYPE 118870 . 123728)))))
STOP

Binary file not shown.

View File

@@ -1,13 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED "15-Feb-2026 23:45:51" {WMEDLEY}<library>tedit>TEDIT-FILE.;666 175062
(FILECREATED "29-Apr-2026 23:49:14" {MEDLEY}<library>tedit>TEDIT-FILE.;684 174888
:EDIT-BY rmk
:CHANGES-TO (FNS \TEDIT.PUT.MCCS.SPLITPIECES \TEDIT.PUT.PCTB.NEXTNEW)
(VARS TEDIT-FILECOMS)
:CHANGES-TO (FNS \TEDIT.INTERPRET.MCCS.SHIFTS)
:PREVIOUS-DATE "14-Feb-2026 10:32:44" {WMEDLEY}<library>tedit>TEDIT-FILE.;659)
:PREVIOUS-DATE "24-Apr-2026 21:09:13" {MEDLEY}<library>tedit>TEDIT-FILE.;683)
(PRETTYCOMPRINT TEDIT-FILECOMS)
@@ -39,8 +38,8 @@
(P (MOVD? '\TEDIT.GET.TRAILER '\TEDIT.FORMATTEDP1]
(FNS \TEDIT.GET.PIECES3 \TEDIT.GET.PROPS3 \TEDIT.MAKE.STRINGPIECE)
(FNS \TEDIT.GET.UNFORMATTED.FILE.MCCS \TEDIT.INTERPRET.MCCS.SHIFTS
\TEDIT.CONVERT.XCCSTOMCCS)
(* ; "XCCS")
\TEDIT.CONVERT.XCCSTOMCCS \TEDIT.RUN.TO.STRINGPIECE)
(* ; "MCCS")
(FNS \TEDIT.GET.UNFORMATTED.FILE.UTF8)
(* ; "UTF-8")
(FNS \TEDIT.GET.CHARLOOKS.LIST \TEDIT.GET.SINGLE.CHARLOOKS \TEDIT.GET.CHARLOOKS
@@ -643,7 +642,8 @@
TSTREAM)])
(\TEDIT.GET.UNFORMATTED.FILE
[LAMBDA (STREAM TSTREAM START END PROPS) (* ; "Edited 28-Jul-2025 23:46 by rmk")
[LAMBDA (STREAM TSTREAM START END PROPS) (* ; "Edited 10-Apr-2026 09:33 by rmk")
(* ; "Edited 28-Jul-2025 23:46 by rmk")
(* ; "Edited 24-Apr-2025 17:21 by rmk")
(* ; "Edited 8-Feb-2025 20:21 by rmk")
(* ; "Edited 17-Mar-2024 00:21 by rmk")
@@ -669,7 +669,7 @@
(CL:WHEN (AND (EQ FORMAT :STRING)
(\IOMODEP STREAM 'OUTPUT T))
(SETQ STREAM (COPYFILE STREAM '{NODIRCORE})))
[SETQ PIECES
(SETQ PIECES
(SELECTQ FORMAT
((:MCCS :XCCS) (* ; "XCCS is done later")
(\TEDIT.GET.UNFORMATTED.FILE.MCCS STREAM START END DEFAULTCHARLOOKS
@@ -703,8 +703,7 @@
PPARALAST _ NIL
PPARALOOKS _ DEFAULTPARALOOKS
PTYPE _ THINFILE.PTYPE
PBYTESPERCHAR _ 1
PBINABLE _ (fetch (STREAM BINABLE) of STREAM]
PBYTESPERCHAR _ 1)))
(\TEDIT.INSERTPIECES PIECES NIL TEXTOBJ)))])
(\TEDIT.GET.FORMATTED.FILE
@@ -940,7 +939,9 @@
(DEFINEQ
(\TEDIT.GET.PIECES3
[LAMBDA (TEXT TSTREAM PCCOUNT CURFILEBYTE# END) (* ; "Edited 29-Jul-2025 09:30 by rmk")
[LAMBDA (TEXT TSTREAM PCCOUNT CURTEXTBYTE# END) (* ; "Edited 15-Apr-2026 12:06 by rmk")
(* ; "Edited 9-Apr-2026 13:45 by rmk")
(* ; "Edited 29-Jul-2025 09:30 by rmk")
(* ; "Edited 24-Apr-2025 17:20 by rmk")
(* ; "Edited 8-Feb-2025 20:21 by rmk")
(* ; "Edited 30-Aug-2024 15:44 by rmk")
@@ -962,7 +963,7 @@
(SETFILEPTR TEXT (\DWIN TEXT)) (* ; "Pieceinfo byte #")
(for PCNO PC BYTELEN PREVPC FIRSTPC PARALOOKSMAP CHARLOOKSMAP DEFAULTCHARLOOKS OLDPARALOOKS
(TEXTOBJ _ (TEXTOBJ! (fetch (TEXTSTREAM TEXTOBJ) of TSTREAM)))
(ORIGBYTE# _ CURFILEBYTE#) from 1 to PCCOUNT first (SETQ DEFAULTCHARLOOKS (FGETTOBJ TEXTOBJ
(ORIGBYTE# _ CURTEXTBYTE#) from 1 to PCCOUNT first (SETQ DEFAULTCHARLOOKS (FGETTOBJ TEXTOBJ
DEFAULTCHARLOOKS
))
@@ -981,17 +982,15 @@
(SETQ PC
(create PIECE
PCONTENTS _ TEXT
PFPOS _ CURFILEBYTE#
PFPOS _ CURTEXTBYTE#
PLEN _ BYTELEN
PBYTELEN _ BYTELEN
PPARALOOKS _ OLDPARALOOKS
PTYPE _ THINFILE.PTYPE
PCHARSET _ 0
PBYTESPERCHAR _ 1
PREVPIECE _ PREVPC))
(\TEDIT.GET.CHARLOOKS.INDEX PC TEXT) (* ;
 "Get its looks and character-pointers")
(add CURFILEBYTE# BYTELEN))
(add CURTEXTBYTE# BYTELEN))
(\PieceDescriptorPARA (* ;
 "Reading a new set of paragraph looks.")
(CL:WHEN PREVPC (FSETPC PREVPC PPARALAST T))
@@ -1010,14 +1009,13 @@
(SETQ PC
(create PIECE
PCONTENTS _ TEXT
PFPOS _ CURFILEBYTE#
PBYTELEN _ BYTELEN
PFPOS _ CURTEXTBYTE#
PLEN _ 1
PPARALOOKS _ OLDPARALOOKS
PTYPE _ OBJECT.PTYPE
PREVPIECE _ PREVPC))
(\TEDIT.GET.OBJECT TSTREAM PC TEXT CURFILEBYTE#)
(add CURFILEBYTE# BYTELEN)
(\TEDIT.GET.OBJECT TSTREAM PC TEXT CURTEXTBYTE#)
(add CURTEXTBYTE# BYTELEN)
(FSETPC PC PCHARLOOKS (if (ZEROP (BIN TEXT))
then
@@ -1142,7 +1140,9 @@
PROPS)))])
(\TEDIT.MAKE.STRINGPIECE
[LAMBDA (PC STRING) (* ; "Edited 23-Jan-2024 14:32 by rmk")
[LAMBDA (PC STRING) (* ; "Edited 12-Apr-2026 21:30 by rmk")
(* ; "Edited 10-Apr-2026 09:33 by rmk")
(* ; "Edited 23-Jan-2024 14:32 by rmk")
(* ; "Edited 16-Jan-2024 11:15 by rmk")
(* ; "Edited 12-Jan-2024 16:34 by rmk")
@@ -1155,15 +1155,10 @@
(SETQ SPIECE (if (fetch (STRINGP FATSTRINGP) of STRING)
then (create PIECE using PC PTYPE _ FATSTRING.PTYPE PCONTENTS _ STRING PLEN
_ (NCHARS STRING)
PBYTESPERCHAR _ 2 PBINABLE _ NIL PBYTELEN _
(UNFOLD (NCHARS STRING)
2)
PREVPIECE _ PC PUTF8BYTESPERCHAR _ 2 PFPOS _ 0)
PBYTESPERCHAR _ 2 PREVPIECE _ PC)
else (create PIECE using PC PTYPE _ THINSTRING.PTYPE PCONTENTS _ STRING PLEN
_ (NCHARS STRING)
PBYTESPERCHAR _ 1 PBINABLE _ T PBYTELEN _
(NCHARS STRING)
PREVPIECE _ PC PUTF8BYTESPERCHAR _ 1 PFPOS _ 0)))
PBYTESPERCHAR _ 1 PREVPIECE _ PC)))
(CL:WHEN (NEXTPIECE PC)
(FSETPC (NEXTPIECE PC)
PREVPIECE SPIECE))
@@ -1173,111 +1168,114 @@
(DEFINEQ
(\TEDIT.GET.UNFORMATTED.FILE.MCCS
[LAMBDA (STRM START END DEFAULTCHARLOOKS DEFAULTPARALOOKS) (* ; "Edited 28-Jul-2025 23:45 by rmk")
(* ; "Edited 21-Jan-2024 09:40 by rmk")
(* ; "Edited 12-Jan-2024 13:13 by rmk")
(* ; "Edited 10-Jan-2024 11:19 by rmk")
(* ; "Edited 8-Jan-2024 13:15 by rmk")
[LAMBDA (STRM START END DEFAULTCHARLOOKS DEFAULTPARALOOKS) (* ; "Edited 12-Apr-2026 21:34 by rmk")
(* ; "Edited 10-Apr-2026 09:33 by rmk")
(* ;; "We build a chain of pieces for the NS stringlets, some of which are divided at CR/LF. ")
(* ;;
 "We build a chain of pieces for the MCCS stringlets, some of which are subdivided at CR/LF. ")
(* ;; "We assume that caller has positioned the stream at the intended start byte and has set the ENDOFSTREAMOP to return NIL on EOF. ")
(* ;; "CRBEFORE and the LF test are used to ensure that potential EOL's are normalized to EOL and appear at the end of their pieces, whether or not they we decide to make them PPARALAST on input. LF's after CR are discarded, LF's by themselves are converted to singleton EOLstring pieces.")
(* ;; "This does not set PPARALAST on EOL pieces. Maybe double EOL's?")
(bind (NEXTFILEPOS _ START)
(CHARSET _ 0)
(FIRSTPC _ (create PIECE
PCHARLOOKS _ DEFAULTCHARLOOKS
PPARALOOKS _ DEFAULTPARALOOKS))
(CODESIZE _ 1)
(SBINABLE _ (fetch (STREAM BINABLE) of STRM))
EOLC PC BYTE CHAR PREVPC PTYPE RUNLEN FILEPOS CRBEFORE SHIFTNEXT first (SETQ PREVPC FIRSTPC
)
(* ; "FIRSTPC is a throwaway")
do (SETQ FILEPOS NEXTFILEPOS) (* ; "Start of next file piece")
(* ;; "If a shift at the EOF is ill-formed, it is ignored--no error.")
(* ;; "In thin or fat mode, we have to look at the first byte of the next character, to see if it is a shift. If not a shift, we have to decode the byte configuration to make sure we can detect CR or LF.")
(* ;;
 " LF's after CR are discarded, LF's by themselves are converted to singleton EOLstring pieces.")
(do (CL:WHEN (IGEQ NEXTFILEPOS END)
(RETURN))
(SETQ BYTE (\PEEKBIN STRM T))
(CL:WHEN (SETQ SHIFTNEXT (EQ NSCHARSETSHIFT BYTE))
(SETQ CHAR NIL) (* ;
 "Suppress CR/LF checking on real shift")
(RETURN))
(BIN STRM) (* ; "Not a shift, read the peeked byte")
(SETQ CHAR (if (EQ CODESIZE 2)
then (* ;
 "Return T if this takes us over the end")
(LOGOR (LLSH BYTE 8)
(CL:IF (AND (ILEQ NEXTFILEPOS END)
(SETQ BYTE (BIN STRM)))
BYTE
(RETURN)))
else (LOGOR (LLSH CHARSET 8)
BYTE)))
(add NEXTFILEPOS CODESIZE)
(CL:WHEN (MEMB CHAR (CHARCODE (CR LF)))
(RETURN)))
(bind PREVPC PC CHAR TWOBYTE CHARLIST PLEN STARTPOS STRING (FIRSTPIECE _ (create PIECE))
(CHARSET _ 0) first (SETQ PREVPC FIRSTPIECE)
do (SETQ PLEN 0)
(SETQ STARTPOS (GETFILEPTR STRM))
[while (SETQ CHAR (BIN STRM)) until (EQ CHAR NSCHARSETSHIFT)
do (CL:WHEN TWOBYTE
(SETQ CHARSET (LLSH CHAR 8))
(CL:UNLESS (SETQ CHAR (BIN STRM)) (* ; "Ill-formed at EOF, skip last byte")
(RETURN)))
(SETQ CHAR (LOGOR CHARSET CHAR))
(CL:UNLESS (OR TWOBYTE (EQ CHARSET 0)) (* ; "Collect characters for fatstring")
(push CHARLIST CHAR))
(add PLEN 1) repeatuntil (MEMB CHAR (CHARCODE (CR LF]
(* ;; "NEXTFILEPOS and file are positioned at beginning of the next piece, possibly after CR and LF have been read.")
(* ;; "Reached the end of the current (sub) run")
(SETQ RUNLEN (IDIFFERENCE NEXTFILEPOS FILEPOS))
(CL:WHEN (EQ CHAR (CHARCODE LF)) (* ; "We never produce raw LF's")
(add RUNLEN (IMINUS CODESIZE)))
(CL:WHEN (IGREATERP RUNLEN 0)
(SETQ PTYPE (if (EQ CODESIZE 2)
then FATFILE2.PTYPE
elseif (EQ CHARSET 0)
then THINFILE.PTYPE
else FATFILE1.PTYPE))
(CL:UNLESS (EQ PLEN 0) (* ; "Make subrun's piece")
(SELCHARQ CHAR
(CR (* ; "Skip following LF")
(if TWOBYTE
then (CL:WHEN (EQ 0 (\PEEKCCODE STRM T))
(BIN STRM)
(CL:IF (EQ (CHARCODE LF)
(\PEEKCCODE STRM T))
(BIN STRM)
(\BACKFILEPTR STRM)))
elseif (EQ (CHARCODE LF)
(\PEEKCCODE STRM T))
then (BIN STRM)))
(LF (* ;
 "Prefix bcomes a separate piece, LF a singleton coerced to EOL")
(if (EQ PLEN 1)
then (SETQ CHARLIST (CHARCODE (EOL)))
(* ; "Let it be fat below")
else (add PLEN -1) (* ;
 "Back up to split the LF off into a separate EOL piece")
(\BACKFILEPTR STRM)
(CL:WHEN TWOBYTE (\BACKFILEPTR STRM))))
NIL)
(SETQ PC
(create PIECE
PTYPE _ PTYPE
PCONTENTS _ STRM
PFPOS _ FILEPOS
PLEN _ (IQUOTIENT RUNLEN CODESIZE)
PCHARLOOKS _ DEFAULTCHARLOOKS
PPARALOOKS _ DEFAULTPARALOOKS
PCHARSET _ CHARSET
PBYTESPERCHAR _ CODESIZE
PBYTELEN _ RUNLEN
PREVPIECE _ PREVPC
PBINABLE _ (AND (EQ PTYPE THINFILE.PTYPE)
SBINABLE)))
(SETQ PREVPC (FSETPC PREVPC NEXTPIECE PC)))
(CL:WHEN (EQ CHAR (CHARCODE LF))
[if CRBEFORE
then (SETQ EOLC CRLF.EOLC)
else
(* ;; "Linefeed not preceded by CR, replace by string piece")
(if CHARLIST
then (SETQ STRING (ALLOCSTRING (LENGTH CHARLIST)
NIL NIL T))
(for C in CHARLIST as I from PLEN by -1 do (RPLCHARCODE STRING I C))
(SETQ CHARLIST NIL)
(create PIECE
PTYPE _ FATSTRING.PTYPE
PCONTENTS _ STRING
PLEN _ PLEN
PBYTESPERCHAR _ 2)
elseif TWOBYTE
then (create PIECE
PTYPE _ FATFILE2.PTYPE
PCONTENTS _ STRM
PFPOS _ STARTPOS
PLEN _ PLEN
PBYTESPERCHAR _ 2)
else (create PIECE
PTYPE _ THINFILE.PTYPE
PCONTENTS _ STRM
PFPOS _ STARTPOS
PLEN _ PLEN
PBYTESPERCHAR _ 1)))
(FSETPC PC PCHARLOOKS DEFAULTCHARLOOKS)
(FSETPC PC PPARALOOKS DEFAULTPARALOOKS)
(FSETPC PC PREVPIECE PREVPC)
(FSETPC PREVPC NEXTPIECE PC)
(SETQ PREVPC PC))
(SETQ EOLC LF.EOLC)
(SETQ PREVPC (\TEDIT.MAKE.STRINGPIECE PREVPC (CHARCODE EOL])
(CL:WHEN SHIFTNEXT (* ;
 "Interpret and bump NEXTFILEPOS for the shifting bytes. ")
(BIN STRM) (* ; "Read the original peeked byte")
(SETQ CHARSET (BIN STRM))
(if (EQ CHARSET \NORUNCODE)
then (CL:UNLESS (MEMB (BIN STRM)
'(0 NIL))
(ERROR "EXPECTED PLANE 0 XCCS CHARACTER IS ILL-FORMED"))
(SETQ CHARSET 0)
(SETQ CODESIZE 2)
else (SETQ CODESIZE 1))
(add NEXTFILEPOS (ADD1 CODESIZE))
(SETQ SHIFTNEXT NIL))
(CL:WHEN (IGEQ NEXTFILEPOS END)
(CL:WHEN EOLC (* ;
 "Record the last one we encountered")
(replace (STREAM EOLCONVENTION) of STRM with EOLC))
(RETURN (NEXTPIECE FIRSTPC)))
(CL:WHEN (SETQ CRBEFORE (EQ CHAR (CHARCODE CR)))
(SETQ EOLC CR.EOLC])
(* ;; "Switch to next run, end, or continue with next subrun")
(SELECTC CHAR
(NSCHARSETSHIFT (* ; "Switch to next run")
(SETQ CHARSET (BIN STRM))
(CL:UNLESS CHARSET (* ; "Ill-formed")
(RETURN (NEXTPIECE FIRSTPIECE)))
(SETQ TWOBYTE (CL:WHEN (EQ CHARSET \NORUNCODE)
(SETQ CHARSET (BIN STRM))
(CL:UNLESS CHARSET (* ; "Ill-formed")
(RETURN (NEXTPIECE FIRSTPIECE)))
(CL:UNLESS (EQ CHARSET 0)
(\MCCS.24BITENCODING.ERROR STRM))
T))
(SETQ CHARSET (LLSH CHARSET 8)))
(NIL (* ; "End of file")
(RETURN (NEXTPIECE FIRSTPIECE)))
NIL])
(\TEDIT.INTERPRET.MCCS.SHIFTS
[LAMBDA (PIECES PFILE) (* ; "Edited 21-Oct-2024 00:33 by rmk")
[LAMBDA (PIECES PFILE) (* ; "Edited 29-Apr-2026 23:48 by rmk")
(* ; "Edited 24-Apr-2026 21:08 by rmk")
(* ; "Edited 10-Apr-2026 09:33 by rmk")
(* ; "Edited 21-Oct-2024 00:33 by rmk")
(* ; "Edited 14-May-2024 18:39 by rmk")
(* ; "Edited 21-Jan-2024 00:02 by rmk")
(* ; "Edited 19-Jan-2024 10:34 by rmk")
@@ -1285,58 +1283,44 @@
(* ; "Edited 6-Jan-2024 15:02 by rmk")
(* ; "Edited 19-Dec-2023 13:13 by rmk")
(* ;; "This is called after a GET or PUT, when the file pieces are known all to reside in PFILE.PIECES is a chain of pieces read from a formatted XCCS file but not yet inserted into the BTREE. Each file piece has PFILE, PFPOS, and PBYTELEN. This function interprets any XCCS shift characters that prefix the actual characters, coercing the piece properties and bumping the PFPOS/PLEN to hide the shifts. ")
(* ;; "This is called after by \TEDIT.GET.PIECES, after a GET, when the pieces are known all to reside in PFILE. PIECES is a chain of pieces read from a formatted MCCS (or XCCS) file but not yet inserted into the BTREE. Each file piece has PFILE and PFPOS. This function makes sure that no shift bytes are included in the pieces, by coercing the piece properties and bumping the PFPOS/PLEN to hide the shifts. This also coerces non-charset 0 one-byte pieces to fatstrings.")
(* ;; "We run this before the pieces are inistalled in a stream, since this may change the character lengths.")
(* ;; "This also has some EOL normalization.")
(for PC BYTE EOLC inpieces PIECES when (EQ PFILE (PCONTENTS PC))
do (\SETFILEPTR PFILE (PFPOS PC))
(SETQ BYTE (BIN PFILE))
[if (EQ NSCHARSETSHIFT BYTE)
(if (EQ NSCHARSETSHIFT BYTE)
then (SELECTC (SETQ BYTE (BIN PFILE))
(0 (* ; "Runlength of charset 0")
(add (PBYTELEN PC)
-2) (* ;
 "The shift characters really disappear")
(FSETPC PC PLEN (PBYTELEN PC))
(FSETPC PC PTYPE THINFILE.PTYPE)
(FSETPC PC PBINABLE T)
(FSETPC PC PCHARSET 0)
(add (PFPOS PC)
2))
(\NORUNCODE (* ; "Going for 3 byte characters")
(0 (add (PFPOS PC)
2)
(add (PLEN PC)
-2))
(\NORUNCODE (* ; "Going for 2 byte characters")
(CL:UNLESS (EQ 0 (BIN PFILE))
(\TEDIT.THELP "XCCS CHARACTER NOT IN PLANE 0"))
(\TEDIT.THELP "MCCS CHARACTER NOT IN PLANE 0, FILEPOS = "
(IDIFFERENCE (GETFILEPTR PFILE)
2)))
(FSETPC PC PTYPE FATFILE2.PTYPE)
(FSETPC PC PBYTESPERCHAR 2)
(add (PFPOS PC)
3)
(add (PBYTELEN PC)
-3)
(FSETPC PC PLEN (FOLDLO (PBYTELEN PC)
2)))
(change (PLEN PC)
(FOLDLO (IDIFFERENCE DATUM 3)
2)))
(PROGN
(* ;; "A run in a non-zero charset. Convert it to FATFILE1. Could also read into a FATSTRING instead, get rid of on-file FATFILE1. A string piece could hold adjacent substrings in different charsets")
(* ;; "A run in a non-zero charset. Convert it to FATSTRING so we don't have to maintain code to interpret XCCS stringlet pieces. After all, space efficiency is far worse for our ultimate goal of UTF-8 codes.")
(add (PBYTELEN PC)
-2)
(add (PFPOS PC)
2)
(FSETPC PC PLEN (PBYTELEN PC))
(FSETPC PC PBINABLE NIL)
(FSETPC PC PTYPE FATFILE1.PTYPE)
(FSETPC PC PBYTESPERCHAR 1)
(FSETPC PC PCHARSET BYTE)))
elseif (EQ 2 (PBYTESPERCHAR PC))
then (FSETPC PC PTYPE FATFILE2.PTYPE) (* ; "This is the continuation of an XCCS 2-byte run that was broken up presumably for looks or paragraphs")
(FSETPC PC PCHARSET \NORUNCODE)
(FSETPC PC PLEN (FOLDLO (PBYTELEN PC)
2))
else (FSETPC PC PCHARSET 0) (* ; "A charset 0 1-byte run")
(FSETPC PC PBINABLE T)
(FSETPC PC PBYTESPERCHAR 1)
[\SETFILEPTR PFILE (IPLUS (PFPOS PC)
(SUB1 (PLEN PC]
(\TEDIT.RUN.TO.STRINGPIECE PC BYTE PFILE)))
elseif (EQ FATFILE2.PTYPE (PTYPE PC))
then (* ; "This is the continuation of an MCCS 2-byte run that was broken up presumably for looks or paragraphs")
(change (PLEN PC)
(FOLDLO DATUM 2))
else (FSETPC PC PBYTESPERCHAR 1) (* ; "A charset 0 1-byte run")
[\SETFILEPTR PFILE (SUB1 (IPLUS (PFPOS PC)
(PLEN PC] (* ;
 "Position for the last byte for EOL processing. Maybe only if PPARALAST ?")
(if (EQ (CHARCODE LF)
(SETQ BYTE (BIN PFILE)))
then
@@ -1350,8 +1334,6 @@
else (add (PLEN PC)
-1) (* ;
 "Shorten PC, add EOL string piece unless preceded by CR")
(add (PBYTELEN PC)
-1)
(if (EQ (CHARCODE CR)
(\BACKBIN PFILE))
then (SETQ EOLC CRLF.EOLC)
@@ -1360,10 +1342,9 @@
(FSETPC PC PPARALAST NIL]
else (CL:WHEN (EQ BYTE (CHARCODE CR))
(SETQ EOLC CR.EOLC))
(FSETPC PC PTYPE THINFILE.PTYPE)
(FSETPC PC PLEN (PBYTELEN PC] finally (CL:WHEN EOLC
(replace (STREAM EOLCONVENTION)
of PFILE with EOLC)))
(FSETPC PC PTYPE THINFILE.PTYPE)))
finally (CL:WHEN EOLC
(replace (STREAM EOLCONVENTION) of PFILE with EOLC)))
PIECES])
(\TEDIT.CONVERT.XCCSTOMCCS
@@ -1379,16 +1360,30 @@
TSTREAM CHNO)))
unless (EQ CHAR (SETQ CHAR (MTOXCODE CHAR))) do (\TEDIT.RPLCHARCODE TSTREAM CHNO CHAR NIL
T)))])
(\TEDIT.RUN.TO.STRINGPIECE
[LAMBDA (PC CHARSET PFILE) (* ; "Edited 10-Apr-2026 09:20 by rmk")
(* ; "Edited 7-Apr-2026 18:16 by rmk")
(SETQ CHARSET (LLSH CHARSET 8))
(LET ((STRING (ALLOCSTRING (PLEN PC)
NIL NIL T)))
[for I from 1 to (PLEN PC) do (RPLCHARCODE STRING I (LOGOR CHARSET (BIN PFILE]
(FSETPC PC PTYPE FATSTRING.PTYPE)
(FSETPC PC PCONTENTS STRING)
(FSETPC PC PBYTESPERCHAR 2)
PC])
)
(* ; "XCCS")
(* ; "MCCS")
(DEFINEQ
(\TEDIT.GET.UNFORMATTED.FILE.UTF8
[LAMBDA (STRM START END DEFAULTCHARLOOKS DEFAULTPARALOOKS) (* ; "Edited 23-Oct-2025 08:48 by rmk")
[LAMBDA (STRM START END DEFAULTCHARLOOKS DEFAULTPARALOOKS) (* ; "Edited 12-Apr-2026 21:46 by rmk")
(* ; "Edited 10-Apr-2026 09:24 by rmk")
(* ; "Edited 23-Oct-2025 08:48 by rmk")
(* ; "Edited 28-Jul-2025 23:45 by rmk")
(* ; "Edited 11-Mar-2024 23:55 by rmk")
(* ; "Edited 4-Feb-2024 10:12 by rmk")
@@ -1409,7 +1404,6 @@
PCHARLOOKS _ DEFAULTCHARLOOKS
PPARALOOKS _ DEFAULTPARALOOKS))
(NEXTCODESIZE _ 1)
(SBINABLE _ (fetch (STREAM BINABLE) of STRM))
EOLC CHAR PREVPC PTYPE RUNLEN FILEPOS CRBEFORE CODESIZE PREVCRLF
first (SELECTQ (READBOM STRM)
(:UTF-8 (add NEXTFILEPOS 3))
@@ -1457,21 +1451,16 @@
(SETQ PTYPE (CL:IF (EQ CODESIZE 1)
THINFILE.PTYPE
UTF8.PTYPE))
(SETQ PREVPC
(FSETPC PREVPC NEXTPIECE
(create PIECE
PTYPE _ PTYPE
PCONTENTS _ STRM
PFPOS _ FILEPOS
PLEN _ (IQUOTIENT RUNLEN CODESIZE)
PCHARLOOKS _ DEFAULTCHARLOOKS
PPARALOOKS _ DEFAULTPARALOOKS
PBYTESPERCHAR _ CODESIZE
PBYTELEN _ RUNLEN
PREVPIECE _ PREVPC
PBINABLE _ (AND (EQ PTYPE THINFILE.PTYPE)
SBINABLE)
PUTF8BYTESPERCHAR _ CODESIZE))))
(SETQ PREVPC (FSETPC PREVPC NEXTPIECE
(create PIECE
PTYPE _ PTYPE
PCONTENTS _ STRM
PFPOS _ FILEPOS
PLEN _ (IQUOTIENT RUNLEN CODESIZE)
PCHARLOOKS _ DEFAULTCHARLOOKS
PPARALOOKS _ DEFAULTPARALOOKS
PBYTESPERCHAR _ CODESIZE
PREVPIECE _ PREVPC))))
(CL:WHEN (EQ CHAR (CHARCODE LF))
[if CRBEFORE
then (SETQ EOLC CRLF.EOLC)
@@ -1646,7 +1635,8 @@
(\WIN STREAM])
(\TEDIT.GET.CHARLOOKS.INDEX
[LAMBDA (PC FORMATSTREAM) (* ; "Edited 28-Jul-2025 23:46 by rmk")
[LAMBDA (PC FORMATSTREAM) (* ; "Edited 24-Apr-2026 21:03 by rmk")
(* ; "Edited 28-Jul-2025 23:46 by rmk")
(* ; "Edited 14-Jan-2024 00:11 by rmk")
(* ; "Edited 19-Dec-2023 10:13 by rmk")
(* ; "Edited 3-Sep-2023 23:31 by rmk")
@@ -1654,18 +1644,18 @@
(* ; "Edited 26-Aug-2023 23:22 by rmk")
(* ; "Edited 30-May-91 21:43 by jds")
(* ;; "Set the type, length, and and charlooks-index for the current piece, PC")
(* ;; "Set the type, length, and charlooks-index for the current piece, PC")
(LET ((FLAGS (BIN FORMATSTREAM)))
(FSETPC PC PCHARLOOKS (\WIN FORMATSTREAM))
(CL:UNLESS (ZEROP (LOGAND FLAGS 1))
(FSETPC PC PNEW T))
(CL:UNLESS (ZEROP (LOGAND FLAGS 2)) (* ;
 "XCSS FAT. It may be a continuation of a previous fat piece")
(FSETPC PC PLEN (IQUOTIENT (FGETPC PC PLEN)
2))
(FSETPC PC PTYPE FATFILE2.PTYPE)
(FSETPC PC PBYTESPERCHAR 2))])
(CL:UNLESS (ZEROP (LOGAND FLAGS 2))
(* ;; "MCSS FAT. It may have a 255 255 0 (NSHIFTBYTES=3) prefix or it may be a continuation of a previous fat piece. PLEN on the file is the runlength including the NSHIFTBYTES, so we can't fold from bytes to chars here: \TEDIT.INTERPRET.MCCS.SHIFTS. Until then, this is goofy")
(FSETPC PC PBYTESPERCHAR 2)
(FSETPC PC PTYPE FATFILE2.PTYPE))])
)
(DEFINEQ
@@ -1773,7 +1763,8 @@
(DEFINEQ
(\TEDIT.GET.OBJECT
[LAMBDA (TSTREAM PIECE FILE CURFILEBYTE# BYTELEN) (* ; "Edited 1-Aug-2025 14:50 by rmk")
[LAMBDA (TSTREAM PIECE FILE CURTEXTBYTE# BYTELEN) (* ; "Edited 15-Apr-2026 12:05 by rmk")
(* ; "Edited 1-Aug-2025 14:50 by rmk")
(* ; "Edited 28-Jul-2025 23:46 by rmk")
(* ; "Edited 31-Jul-2024 12:09 by rmk")
(* ; "Edited 5-Dec-2023 12:28 by rmk")
@@ -1794,13 +1785,13 @@
(* ;; "rrb 10-AUG-87 --- calculate the length of the image object's data. This assumes that the file is currently pointed at the end of the data which is where the GETFN is written {I think}.")
(* ;; "RMK: Originally, BYTELEN was calculated here as (DIFFERENCE (GETFILEPTR FILE) CURFILEBYTE#). But this is garbage: (GETFILEPTR FILE) is in the looks section, CURFILEBYTE# is in the text section. The caller knows the true value, now passes it in. ")
(* ;; "RMK: Originally, BYTELEN was calculated here as (DIFFERENCE (GETFILEPTR FILE) CURTEXTBYTE#). But this is garbage: (GETFILEPTR FILE) is in the looks section, CURTEXTBYTE# is in the text section. The caller knows the true value, now passes it in. ")
(SETQ GETFN (\ATMIN FILE)) (* ;
 "The GETFN for this kind of IMAGEOBJ")
(SETQ FILEPTRSAVE (GETFILEPTR FILE)) (* ;
 "Save our file location thru the building of the object")
(SETFILEPTR FILE CURFILEBYTE#)
(SETFILEPTR FILE CURTEXTBYTE#)
(SETQ OBJ (READIMAGEOBJ FILE GETFN NIL BYTELEN))
(CL:WHEN (IMAGEOBJPROP OBJ 'UNKNOWNGETFN) (* ;
 "If the object has an unknown getfn property, then it's an encapsulated object. Warn the user")
@@ -1832,6 +1823,9 @@
(\TEDIT.PUT.PCTB
[LAMBDA (TEXTOBJ CHARSTREAM FORMATSTREAM CONTINUE KEEPSEPARATE)
(* ; "Edited 18-Apr-2026 14:56 by rmk")
(* ; "Edited 9-Apr-2026 23:19 by rmk")
(* ; "Edited 7-Apr-2026 12:31 by rmk")
(* ; "Edited 14-Feb-2026 10:32 by rmk")
(* ; "Edited 9-Sep-2025 21:32 by rmk")
(* ; "Edited 26-Apr-2025 00:11 by rmk")
@@ -1870,8 +1864,8 @@
(CL:WHEN (EQ :UTF-8 (STREAMPROP CHARSTREAM 'FORMAT))
(\TEDIT.PUT.UTF8.SPLITPIECES TEXTOBJ))
(for PC PFILE NEXTNEW RUNLEN UNFORMATTED? (NSHIFTBYTES _ 0)
(CURBYTE# _ 0)
(OLDBYTE# _ 0)
(CURTEXTBYTE# _ 0)
(OLDTEXTBYTE# _ 0)
[UNFORMATTED? _ (PROG1 (EQ FORMATSTREAM T)
(CL:UNLESS (STREAMP FORMATSTREAM)
[SETQ FORMATSTREAM (OPENSTREAM '{NODIRCORE} 'BOTH 'NEW
@@ -1906,8 +1900,8 @@
(* ;; " We're ready to put the pieces on the output file. ")
(SETQ CURBYTE# (\GETFILEPTR CHARSTREAM))
(SETQ OLDBYTE# CURBYTE#)
(SETQ CURTEXTBYTE# (\GETFILEPTR CHARSTREAM))
(SETQ OLDTEXTBYTE# CURTEXTBYTE#)
(* ;; "ZEROP should never happen, but...")
@@ -1915,7 +1909,7 @@
unless (ZEROP (PLEN PC))
do
(* ;; "PC starts a run of one or more pieces that can be collapsed together into a single file piece. The paragraph looks are produced before the first piece of a new paragraph (first piece or previous piece was PPARALAST), then the piece(s)-characters, followed by the charlooks. I.e., FORMATSTREAM describes the paragraph-start piece with its paragraph looks forllowed by its char looks.")
(* ;; "PC starts a run of one or more pieces that can be collapsed together into a single file piece. The paragraph looks are produced before the first piece of a new paragraph (first piece or previous piece was PPARALAST), then the piece(s)-characters, followed by the charlooks. I.e., FORMATSTREAM describes the paragraph-start piece with its paragraph looks followed by its char looks.")
(CL:WHEN (OR (NULL (PREVPIECE PC))
(PPARALAST (PREVPIECE PC)))
@@ -1923,15 +1917,15 @@
(add PCCOUNT 1))
(CL:WHEN (MEMB EXTFORMAT '(:MCCS :XCCS))
(* ;; "For MCCS, CHARSET will put out the char-shifting prefix bytes as needed. In format-version 3 all the file bytes belong to a piece, no skipping in the file. TEDIT.GET calls \TEDIT.INTERPRET.XCCS.SHIFTS to shave those bytes. NSHIFTBYTES is used here if the edit will continue.")
(* ;; "For MCCS, CHARSET will put out the char-shifting prefix bytes as needed. In format-version 3 all the file bytes belong to a piece, no skipping in the file. TEDIT.GET calls \TEDIT.INTERPRET.MCCS.SHIFTS to shave those bytes. NSHIFTBYTES is used here so the edit can continue.")
(CHARSET CHARSTREAM (OR (AND (EQ EXTFORMAT :XCCS)
(MEMB (PTYPE PC)
FAT.PTYPES))
(PCHARSET PC)))
(CHARSET CHARSTREAM (CL:IF (MEMB (PTYPE PC)
FAT.PTYPES)
T
0))
(SETQ NSHIFTBYTES (IDIFFERENCE (\GETFILEPTR CHARSTREAM)
OLDBYTE#)))
(do (\TEDIT.PUT.PCTB.PIECEDATA PC CHARSTREAM TEXTOBJ FORMATSTREAM OLDBYTE#)
OLDTEXTBYTE#)))
(do (\TEDIT.PUT.PCTB.PIECEDATA PC CHARSTREAM TEXTOBJ FORMATSTREAM OLDTEXTBYTE#)
(CL:UNLESS (\TEDIT.PUT.PCTB.MERGEABLE PC (NEXTPIECE PC)
EDITSTENTATIVE EXTFORMAT TEXTOBJ)
(RETURN))
@@ -1939,8 +1933,8 @@
(* ;; "PC is the last piece written for a mergeable sequence. Finish off the corresponding file piece by writing PC's character looks into FORMATSTREAM. ")
(SETQ CURBYTE# (\GETFILEPTR CHARSTREAM))
(SETQ RUNLEN (IDIFFERENCE CURBYTE# OLDBYTE#))
(SETQ CURTEXTBYTE# (\GETFILEPTR CHARSTREAM))
(SETQ RUNLEN (IDIFFERENCE CURTEXTBYTE# OLDTEXTBYTE#))
(CL:UNLESS (EQ OBJECT.PTYPE (PTYPE PC)) (* ;
 "Objects get their charlooks from the preceding piece.")
(\TEDIT.PUT.CHARLOOKS FORMATSTREAM RUNLEN PC EDITSTENTATIVE LOOKSHASH))
@@ -1952,28 +1946,30 @@
(* ;; "Only for continued editing: make a new piece that describes those characters as they now reside on CHARSTREAM. ")
(SETQ NEXTNEW (\TEDIT.PUT.PCTB.NEXTNEW NEXTNEW PC OLDBYTE# RUNLEN EXTFORMAT TEXTOBJ
(SETQ NEXTNEW (\TEDIT.PUT.PCTB.NEXTNEW NEXTNEW PC OLDTEXTBYTE# RUNLEN EXTFORMAT TEXTOBJ
EOLC NSHIFTBYTES)))
(SETQ OLDBYTE# CURBYTE#) finally
(SETQ OLDTEXTBYTE# CURTEXTBYTE#) finally
(* ;; "Finalize and append FORMATSTREAM unless unformatted or KEEPSEPARATE (for splitting). If KEEPSEPARATE, the caller must have provided the formatstream")
(CL:UNLESS UNFORMATTED?
(\TEDIT.PUT.TRAILER FORMATSTREAM (\GETFILEPTR CHARSTREAM
)
PCCOUNT 3 (FGETTOBJ TEXTOBJ DOCPROPS)))
(CL:UNLESS (OR UNFORMATTED? KEEPSEPARATE)
(COPYBYTES FORMATSTREAM CHARSTREAM 0 (GETEOFPTR
FORMATSTREAM
)))
(RETURN (CL:WHEN NEWPIECES
(CL:UNLESS UNFORMATTED?
(\TEDIT.PUT.TRAILER FORMATSTREAM (\GETFILEPTR
CHARSTREAM)
PCCOUNT 3 (FGETTOBJ TEXTOBJ DOCPROPS)))
(CL:UNLESS (OR UNFORMATTED? KEEPSEPARATE)
(COPYBYTES FORMATSTREAM CHARSTREAM 0
(GETEOFPTR FORMATSTREAM)))
(RETURN (CL:WHEN NEWPIECES
(* ;; "Throw away the dummy head of the new piece chain (NEWPIECES is NIL if not continuing). The caller must make install the new pieces.")
(* ;; "Throw away the dummy head of the new piece chain (NEWPIECES is NIL if not continuing). The caller must install the new pieces.")
(NEXTPIECE NEWPIECES))])
(NEXTPIECE NEWPIECES))])
(\TEDIT.PUT.PCTB.PIECEDATA
[LAMBDA (PC CHARSTREAM TEXTOBJ FORMATSTREAM OLDBYTE#) (* ; "Edited 21-Oct-2024 00:33 by rmk")
[LAMBDA (PC CHARSTREAM TEXTOBJ FORMATSTREAM OLDTEXTBYTE#) (* ; "Edited 18-Apr-2026 14:54 by rmk")
(* ; "Edited 9-Apr-2026 13:37 by rmk")
(* ; "Edited 7-Apr-2026 18:10 by rmk")
(* ; "Edited 21-Oct-2024 00:33 by rmk")
(* ; "Edited 15-May-2024 17:04 by rmk")
(* ;; "Write the data defining PC on CHARSTREAM.")
@@ -1982,7 +1978,7 @@
(* ;; "FORMATSTREAM is needed for objects.")
(* ;; "OLDBYTE# needed to deal with XCCS shift before objects.")
(* ;; "OLDTEXTBYTE# needed to deal with XCCS shift before objects.")
(LET (PFILE)
(CL:WHEN (MEMB (PTYPE PC)
@@ -2004,16 +2000,9 @@
(for CH instring (PCONTENTS PC) do (\OUTCHAR CHARSTREAM CH)))
(FATFILE2.PTYPE
(for I from 1 to (PLEN PC) do (\OUTCHAR CHARSTREAM (\WIN PFILE))))
(FATFILE1.PTYPE
(* ;;
 "We read but don't write FATFILE1 pieces, they merge with FATFILE2.")
[for I (CSET _ (LLSH (PCHARSET PC)
8)) from 1 to (PLEN PC)
do (\OUTCHAR CHARSTREAM (LOGOR CSET (BIN PFILE])
(UTF8.PTYPE (for I from 1 to (PLEN PC) do (\OUTCHAR CHARSTREAM (UTF8.INCCODEFN PFILE))))
(OBJECT.PTYPE (* ; "It's an object, use its PUTFN.")
(\TEDIT.PUT.OBJECT PC CHARSTREAM FORMATSTREAM OLDBYTE#)
(\TEDIT.PUT.OBJECT PC CHARSTREAM FORMATSTREAM OLDTEXTBYTE#)
(* ;; "0 indicates that nothing special needs to be done here to recover the looks of this piece. \TEDIT.GET.PIECES3 says that the object-piece looks are taken from the previous piece (or default for first piece. In earlier versions the value 1 indicated that the looks were not indexed and therefore had to be written explicitly here. This byte won't be needed in the next version of the format.")
@@ -2041,7 +2030,9 @@
(\WOUT FORMATSTREAM (IPLUS 31415 VERSION])
(\TEDIT.PUT.PCTB.MERGEABLE
[LAMBDA (PREVPC PC EDITSTENTATIVE EXTFORMAT TEXTOBJ) (* ; "Edited 1-Aug-2025 14:51 by rmk")
[LAMBDA (PREVPC PC EDITSTENTATIVE EXTFORMAT TEXTOBJ) (* ; "Edited 12-Apr-2026 21:44 by rmk")
(* ; "Edited 7-Apr-2026 18:07 by rmk")
(* ; "Edited 1-Aug-2025 14:51 by rmk")
(* ; "Edited 25-Apr-2025 23:50 by rmk")
(* ; "Edited 24-Apr-2025 16:02 by rmk")
(* ; "Edited 14-May-2024 11:55 by rmk")
@@ -2076,21 +2067,21 @@
(THINPIECEP PC)))
(:UTF-8
(* ;; "UTF8 pieces with the same bytesperchar are mergeable. We rely on \TEDIT.PUT.UTF8.SPLITPIECES to examine string pieces and split thin strings that include mixtures of Ascii and non-Ascii characters, and to split fat pieces that may contain Ascii character in 2-byte form. After splitting, all pieces with the same PUTF8BYTESPERCHAR can be merged.")
(* ;; "UTF8 pieces with the same bytesperchar are mergeable. We rely on \TEDIT.PUT.UTF8.SPLITPIECES to examine string pieces and split thin strings that include mixtures of Ascii and non-Ascii characters, and to split fat pieces that may contain Ascii character in 2-byte form. After splitting, all pieces with the same PBYTESPERCHAR can be merged.")
(EQ (FGETPC PREVPC PUTF8BYTESPERCHAR)
(FGETPC PC PUTF8BYTESPERCHAR)))
(EQ (FGETPC PREVPC PBYTESPERCHAR)
(FGETPC PC PBYTESPERCHAR)))
NIL)
(OR (EQ PREVTYPE UTF8.PTYPE)
(AND (EQ PREVTYPE FATFILE1.PTYPE)
(NEQ 0 (PCHARSET PREVPC)))
[AND (EQ EXTFORMAT :UTF-8)
(NOT (MEMB PREVTYPE (CONSTANT (LIST THINFILE.PTYPE THINSTRING.PTYPE]
(NOT (MEMB (\TEDIT.PIECE.NTHCHARCODE PREVPC (SUB1 (PLEN PREVPC)))
(CHARCODE (EOL LF])])])
(\TEDIT.PUT.UTF8.SPLITPIECES
[LAMBDA (TEXTOBJ) (* ; "Edited 19-Jan-2025 15:02 by rmk")
[LAMBDA (TEXTOBJ) (* ; "Edited 12-Apr-2026 21:49 by rmk")
(* ; "Edited 9-Apr-2026 00:05 by rmk")
(* ; "Edited 19-Jan-2025 15:02 by rmk")
(* ; "Edited 17-Mar-2024 00:14 by rmk")
(* ; "Edited 3-Feb-2024 14:52 by rmk")
(* ; "Edited 11-Jan-2024 23:29 by rmk")
@@ -2101,24 +2092,24 @@
(for PC inpieces (\TEDIT.FIRSTPIECE TEXTOBJ)
do (SELECTC (PTYPE PC)
(UTF8.PTYPE (FSETPC PC PUTF8BYTESPERCHAR (PBYTESPERCHAR PC)))
(UTF8.PTYPE)
(STRING.PTYPES (for CH BPC instring (PCONTENTS PC) as I from 1
do
(* ;; "If BPC changes, split off and mark the prefix piece with the previous value, go back to the main loop to continue on the residual suffix piece.")
(if (EQ I 1)
then (SETQ BPC (NUTF8-CODE-BYTES (XTOUCODE CH)))
(FSETPC PC PUTF8BYTESPERCHAR BPC)
then (SETQ BPC (NUTF8-CODE-BYTES (MTOUCODE CH)))
(FSETPC PC PBYTESPERCHAR BPC)
(* ;
 "The first character defines the piece")
elseif (EQ BPC (NUTF8-CODE-BYTES (XTOUCODE CH)))
elseif (EQ BPC (NUTF8-CODE-BYTES (MTOUCODE CH)))
else (\TEDIT.SPLITPIECE PC (SUB1 I)
TEXTOBJ)
(SETQ PC (PREVPIECE PC))
(* ;
 "Prefix piece always exists since I>1")
(FSETPC PC PUTF8BYTESPERCHAR BPC)
(FSETPC PC PBYTESPERCHAR BPC)
(* ;
 "Mark it, iteration continues on its next.")
(RETURN))))
@@ -2128,30 +2119,26 @@
(for I BPC (PFILE _ (PCONTENTS PC)) from 1 to (PLEN PC)
first (\SETFILEPTR PFILE (PFPOS PC))
do (if (EQ I 1)
then [SETQ BPC (NUTF8-CODE-BYTES (XTOUCODE (BIN PFILE]
(FSETPC PC PUTF8BYTESPERCHAR BPC)
elseif [EQ BPC (NUTF8-CODE-BYTES (XTOUCODE (BIN PFILE]
then [SETQ BPC (NUTF8-CODE-BYTES (MTOUCODE (BIN PFILE]
(FSETPC PC PBYTESPERCHAR BPC)
elseif [EQ BPC (NUTF8-CODE-BYTES (MTOUCODE (BIN PFILE]
else (\TEDIT.SPLITPIECE PC (SUB1 I)
TEXTOBJ)
(SETQ PC (PREVPIECE PC))
(FSETPC PC PUTF8BYTESPERCHAR BPC)
(FSETPC PC PBYTESPERCHAR BPC)
(RETURN)))))
((LIST FATFILE2.PTYPE FATFILE1.PTYPE) (* ; "XCCS pieces")
(FATFILE2.PTYPE (* ; "XCCS pieces")
(for I BPC CH (PFILE _ (PCONTENTS PC)) from 1 to (PLEN PC)
first (\SETFILEPTR PFILE (PFPOS PC))
do (SETQ CH (LOGOR (LLSH (CL:IF (EQ FATFILE2.PTYPE (PTYPE PC))
(BIN PFILE)
(PCHARSET PC))
8)
(BIN PFILE)))
do (SETQ CH (\WIN PFILE))
(if (EQ I 1)
then (SETQ BPC (NUTF8-CODE-BYTES (XTOUCODE CH)))
(FSETPC PC PUTF8BYTESPERCHAR BPC)
elseif (EQ BPC (NUTF8-CODE-BYTES (XTOUCODE CH)))
then (SETQ BPC (NUTF8-CODE-BYTES (MTOUCODE CH)))
(FSETPC PC PBYTESPERCHAR BPC)
elseif (EQ BPC (NUTF8-CODE-BYTES (MTOUCODE CH)))
else (\TEDIT.SPLITPIECE PC (SUB1 I)
TEXTOBJ)
(SETQ PC (PREVPIECE PC))
(FSETPC PC PUTF8BYTESPERCHAR BPC)
(FSETPC PC PBYTESPERCHAR BPC)
(RETURN))))
NIL])
@@ -2183,6 +2170,11 @@
(\TEDIT.PUT.PCTB.NEXTNEW
[LAMBDA (NEXTNEW PC OLDBYTE# RUNLEN EXTFORMAT TEXTOBJ EOLC NSHIFTBYTES)
(* ; "Edited 24-Apr-2026 20:45 by rmk")
(* ; "Edited 17-Apr-2026 23:55 by rmk")
(* ; "Edited 12-Apr-2026 21:47 by rmk")
(* ; "Edited 9-Apr-2026 13:20 by rmk")
(* ; "Edited 7-Apr-2026 18:12 by rmk")
(* ; "Edited 15-Feb-2026 15:09 by rmk")
(* ; "Edited 25-Apr-2025 08:48 by rmk")
(* ; "Edited 26-Mar-2025 09:27 by rmk")
@@ -2198,28 +2190,25 @@
(* ;; "This updates the piece chain that is created for continued editing.")
(* ;; "Note that the PCONTENTS (= PFILE) field for these file pieces isn't filled in, that has to be done after CHARSTREAM is closed and reopened at the TEDIT.PUT level. For the same reason, PBINABLE isn't set here.")
(* ;; "Note that the PCONTENTS (= PFILE) field for these file pieces isn't filled in, that has to be done after CHARSTREAM is closed and reopened at the TEDIT.PUT level. ")
(* ;; "NSHIFTBYTES strips any MCCS/XCCS charset shifts at the beginning of the new piece.")
(* ;; "NSHIFTBYTES ignores any MCCS/XCCS charset shifts at the beginning of the new piece.")
(SETQ RUNLEN (IDIFFERENCE RUNLEN NSHIFTBYTES))
(FSETPC NEXTNEW NEXTPIECE (SETQ NEXTNEW (create PIECE
using PC PFPOS _ (IPLUS NSHIFTBYTES OLDBYTE#)
PBYTELEN _ RUNLEN PREVPIECE _ NEXTNEW PTREENODE
_ NIL)))
PLEN _ RUNLEN PREVPIECE _ NEXTNEW PTREENODE _
NIL)))
(SELECTQ EXTFORMAT
(:UTF-8 (FSETPC NEXTNEW PTYPE (CL:IF (EQ 1 (FGETPC PC PUTF8BYTESPERCHAR))
(:UTF-8 (FSETPC NEXTNEW PTYPE (CL:IF (EQ 1 (FGETPC PC PBYTESPERCHAR))
THINFILE.PTYPE
UTF8.PTYPE))
(FSETPC NEXTNEW PBYTESPERCHAR (FGETPC PC PUTF8BYTESPERCHAR)))
UTF8.PTYPE)))
((:MCCS :XCCS) (* ;
 "String pieces can be merged with corresponding file pieces")
(FSETPC NEXTNEW PTYPE (SELECTC (PTYPE PC)
(THINSTRING.PTYPE
THINFILE.PTYPE)
((LIST FATSTRING.PTYPE FATFILE1.PTYPE)
(* ;
 "PCHARSET is not relevant for FILEFILE2")
(FATSTRING.PTYPE
(FSETPC NEXTNEW PBYTESPERCHAR 2)
FATFILE2.PTYPE)
(PTYPE PC))))
@@ -2238,15 +2227,14 @@
(FSETPC NEXTNEW PCONTENTS (ALLOCSTRING 1 (CHARCODE EOL)))
else (add (FGETPC NEXTNEW PLEN)
-1) (* ; "We know it's thin, maybe paralast")
(add (FGETPC NEXTNEW PBYTELEN)
-1)
(SETQ NEXTNEW (\TEDIT.MAKE.STRINGPIECE NEXTNEW (CHARCODE EOL)))
(FSETPC (PREVPIECE NEXTNEW)
PPARALAST NIL))))
NEXTNEW])
(\TEDIT.INSERT.NEWPIECES
[LAMBDA (DESTSTREAM OLDSTREAM NEWPIECES) (* ; "Edited 14-May-2024 18:38 by rmk")
[LAMBDA (DESTSTREAM OLDSTREAM NEWPIECES) (* ; "Edited 10-Apr-2026 09:25 by rmk")
(* ; "Edited 14-May-2024 18:38 by rmk")
(* ; "Edited 29-Apr-2024 10:13 by rmk")
(* ; "Edited 20-Mar-2024 10:59 by rmk")
(* ; "Edited 17-Mar-2024 12:06 by rmk")
@@ -2265,13 +2253,8 @@
(LET ((TEXTOBJ (TEXTOBJ! (fetch (TEXTSTREAM TEXTOBJ) of OLDSTREAM)))
FILEPTR)
(SETQ FILEPTR (\TEDIT.TEXTGETFILEPTR OLDSTREAM)) (* ; "Restore the editing parameters")
(for PC (SBINABLE _ (fetch (STREAM BINABLE) of DESTSTREAM)) inpieces NEWPIECES
when (MEMB (PTYPE PC)
FILE.PTYPES) do (FSETPC PC PCONTENTS DESTSTREAM)
(CL:WHEN (EQ THINFILE.PTYPE (PTYPE PC))
(* ;
 "If the backing stream isn't binable, the thinfile pieces aren't either")
(FSETPC PC PBINABLE SBINABLE)))
(for PC inpieces NEWPIECES when (MEMB (PTYPE PC)
FILE.PTYPES) do (FSETPC PC PCONTENTS DESTSTREAM))
(* ; "Non-object pieces are on OFILE")
(* ;; "Here, finally, we toss the out-of-date pieces to install the new ones. For complete safety, the rest should be uninterruptable (although the file has just been saved, so nothing would really be lost)")
@@ -2459,6 +2442,7 @@
(\TEDIT.PUT.CHARLOOKS
[LAMBDA (FORMATSTREAM BYTELEN PC EDITSTENTATIVE LOOKSHARRAY)
(* ; "Edited 9-Apr-2026 23:24 by rmk")
(* ; "Edited 1-Aug-2025 14:51 by rmk")
(* ; "Edited 14-May-2024 10:24 by rmk")
(* ; "Edited 13-Jan-2024 16:35 by rmk")
@@ -2471,7 +2455,7 @@
(* ;; "Put a description of PC's charlooks into FORMATSTREAM. The looks apply to bytes OLDBYTE# thru CURBYTE#-1")
(\DTEST PC 'PIECE)
(\TEDIT.PUT.CHARLOOKS1 FORMATSTREAM BYTELEN (GETHASH (PCHARALOOKS PC)
(\TEDIT.PUT.CHARLOOKS1 FORMATSTREAM BYTELEN (GETHASH (PCHARLOOKS PC)
LOOKSHARRAY)
(AND EDITSTENTATIVE PC (PNEW PC))
(EQ FATFILE2.PTYPE (PTYPE PC])
@@ -2496,7 +2480,8 @@
(\WOUT FORMATSTREAM CHARLOOKSINDEX])
(\TEDIT.PUT.OBJECT
[LAMBDA (PIECE CHARSTREAM FORMATSTREAM CURFILEBYTE#) (* ; "Edited 14-May-2024 12:09 by rmk")
[LAMBDA (PIECE CHARSTREAM FORMATSTREAM CURTEXTBYTE#) (* ; "Edited 18-Apr-2026 14:52 by rmk")
(* ; "Edited 14-May-2024 12:09 by rmk")
(* ; "Edited 24-Jan-2024 23:35 by rmk")
(* ; "Edited 13-Jan-2024 12:20 by rmk")
(* ; "Edited 19-Dec-2023 10:14 by rmk")
@@ -2519,7 +2504,7 @@
(APPLY* (IMAGEOBJPROP OBJECT 'PUTFN)
OBJECT CHARSTREAM)
(SETQ BYTELEN (IDIFFERENCE (GETEOFPTR CHARSTREAM)
CURFILEBYTE#))
CURTEXTBYTE#))
(SETFILEPTR FORMATSTREAM ORIGFILEPTR) (* ;
 "Now go back and fill in the length of the text description of the object.")
(\DWOUT FORMATSTREAM BYTELEN)
@@ -2721,29 +2706,29 @@
(RPAQ? *TEDIT-FILE-READTABLE* (COPYREADTABLE \ORIGREADTABLE))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (5423 35682 (TEDIT.GET 5433 . 11843) (TEDIT.FORMATTEDFILEP 11845 . 13161) (
TEDIT.FILEDATE 13163 . 14472) (TEDIT.INCLUDE 14474 . 22503) (TEDIT.RAW.INCLUDE 22505 . 23313) (
TEDIT.PUT 23315 . 31671) (TEDIT.PUT.STREAM 31673 . 35680)) (35683 56957 (\TEDIT.GET.FOREIGN.FILE 35693
. 39118) (\TEDIT.GET.UNFORMATTED.FILE 39120 . 43426) (\TEDIT.GET.FORMATTED.FILE 43428 . 47071) (
\TEDIT.FORMATTEDSTREAMP 47073 . 50204) (\ARBIN 50206 . 50926) (\ATMIN 50928 . 51465) (\DWIN 51467 .
51846) (\STRINGIN 51848 . 52556) (\TEDIT.GET.TRAILER 52558 . 55426) (\TEDIT.CACHEFILE 55428 . 56955))
(57123 73161 (\TEDIT.GET.PIECES3 57133 . 68096) (\TEDIT.GET.PROPS3 68098 . 71320) (
\TEDIT.MAKE.STRINGPIECE 71322 . 73159)) (73162 86588 (\TEDIT.GET.UNFORMATTED.FILE.MCCS 73172 . 79405)
(\TEDIT.INTERPRET.MCCS.SHIFTS 79407 . 85652) (\TEDIT.CONVERT.XCCSTOMCCS 85654 . 86586)) (86610 92855 (
\TEDIT.GET.UNFORMATTED.FILE.UTF8 86620 . 92853)) (92878 104220 (\TEDIT.GET.CHARLOOKS.LIST 92888 .
93619) (\TEDIT.GET.SINGLE.CHARLOOKS 93621 . 100693) (\TEDIT.GET.CHARLOOKS 100695 . 102251) (
\TEDIT.GET.PARALOOKS.INDEX 102253 . 102797) (\TEDIT.GET.CHARLOOKS.INDEX 102799 . 104218)) (104221
111878 (\TEDIT.GET.PARALOOKS.LIST 104231 . 104853) (\TEDIT.GET.SINGLE.PARALOOKS 104855 . 111876)) (
111879 115712 (\TEDIT.GET.OBJECT 111889 . 115710)) (115777 150880 (\TEDIT.PUT.PCTB 115787 . 125844) (
\TEDIT.PUT.PCTB.PIECEDATA 125846 . 129044) (\TEDIT.PUT.TRAILER 129046 . 130374) (
\TEDIT.PUT.PCTB.MERGEABLE 130376 . 134149) (\TEDIT.PUT.UTF8.SPLITPIECES 134151 . 138853) (
\TEDIT.PUT.MCCS.SPLITPIECES 138855 . 140433) (\TEDIT.PUT.PCTB.NEXTNEW 140435 . 145041) (
\TEDIT.INSERT.NEWPIECES 145043 . 148478) (\TEDIT.PUTRESET 148480 . 148722) (\ARBOUT 148724 . 149448) (
\ATMOUT 149450 . 150055) (\DWOUT 150057 . 150336) (\STRINGOUT 150338 . 150878)) (150881 163615 (
\TEDIT.PUT.CHARLOOKS.LIST 150891 . 152563) (\TEDIT.PUT.SINGLE.CHARLOOKS 152565 . 158845) (
\TEDIT.PUT.CHARLOOKS 158847 . 160186) (\TEDIT.PUT.CHARLOOKS1 160188 . 161239) (\TEDIT.PUT.OBJECT
161241 . 163613)) (163616 171255 (\TEDIT.PUT.PARALOOKS.LIST 163626 . 164528) (
\TEDIT.PUT.SINGLE.PARALOOKS 164530 . 170114) (\TEDIT.PUT.PARALOOKS 170116 . 171253)) (171350 174755 (
TEDITFROMLISPSOURCE 171360 . 174004) (SHELLSCRIPTP 174006 . 174235) (TEDITFROMSHELLSCRIPT 174237 .
174753)))))
(FILEMAP (NIL (5384 35643 (TEDIT.GET 5394 . 11804) (TEDIT.FORMATTEDFILEP 11806 . 13122) (
TEDIT.FILEDATE 13124 . 14433) (TEDIT.INCLUDE 14435 . 22464) (TEDIT.RAW.INCLUDE 22466 . 23274) (
TEDIT.PUT 23276 . 31632) (TEDIT.PUT.STREAM 31634 . 35641)) (35644 56951 (\TEDIT.GET.FOREIGN.FILE 35654
. 39079) (\TEDIT.GET.UNFORMATTED.FILE 39081 . 43420) (\TEDIT.GET.FORMATTED.FILE 43422 . 47065) (
\TEDIT.FORMATTEDSTREAMP 47067 . 50198) (\ARBIN 50200 . 50920) (\ATMIN 50922 . 51459) (\DWIN 51461 .
51840) (\STRINGIN 51842 . 52550) (\TEDIT.GET.TRAILER 52552 . 55420) (\TEDIT.CACHEFILE 55422 . 56949))
(57117 73044 (\TEDIT.GET.PIECES3 57127 . 68176) (\TEDIT.GET.PROPS3 68178 . 71400) (
\TEDIT.MAKE.STRINGPIECE 71402 . 73042)) (73045 85841 (\TEDIT.GET.UNFORMATTED.FILE.MCCS 73055 . 78706)
(\TEDIT.INTERPRET.MCCS.SHIFTS 78708 . 84304) (\TEDIT.CONVERT.XCCSTOMCCS 84306 . 85238) (
\TEDIT.RUN.TO.STRINGPIECE 85240 . 85839)) (85863 92124 (\TEDIT.GET.UNFORMATTED.FILE.UTF8 85873 . 92122
)) (92147 103665 (\TEDIT.GET.CHARLOOKS.LIST 92157 . 92888) (\TEDIT.GET.SINGLE.CHARLOOKS 92890 . 99962)
(\TEDIT.GET.CHARLOOKS 99964 . 101520) (\TEDIT.GET.PARALOOKS.INDEX 101522 . 102066) (
\TEDIT.GET.CHARLOOKS.INDEX 102068 . 103663)) (103666 111323 (\TEDIT.GET.PARALOOKS.LIST 103676 . 104298
) (\TEDIT.GET.SINGLE.PARALOOKS 104300 . 111321)) (111324 115266 (\TEDIT.GET.OBJECT 111334 . 115264)) (
115331 150489 (\TEDIT.PUT.PCTB 115341 . 125667) (\TEDIT.PUT.PCTB.PIECEDATA 125669 . 128826) (
\TEDIT.PUT.TRAILER 128828 . 130156) (\TEDIT.PUT.PCTB.MERGEABLE 130158 . 134019) (
\TEDIT.PUT.UTF8.SPLITPIECES 134021 . 138597) (\TEDIT.PUT.MCCS.SPLITPIECES 138599 . 140177) (
\TEDIT.PUT.PCTB.NEXTNEW 140179 . 144920) (\TEDIT.INSERT.NEWPIECES 144922 . 148087) (\TEDIT.PUTRESET
148089 . 148331) (\ARBOUT 148333 . 149057) (\ATMOUT 149059 . 149664) (\DWOUT 149666 . 149945) (
\STRINGOUT 149947 . 150487)) (150490 163441 (\TEDIT.PUT.CHARLOOKS.LIST 150500 . 152172) (
\TEDIT.PUT.SINGLE.CHARLOOKS 152174 . 158454) (\TEDIT.PUT.CHARLOOKS 158456 . 159903) (
\TEDIT.PUT.CHARLOOKS1 159905 . 160956) (\TEDIT.PUT.OBJECT 160958 . 163439)) (163442 171081 (
\TEDIT.PUT.PARALOOKS.LIST 163452 . 164354) (\TEDIT.PUT.SINGLE.PARALOOKS 164356 . 169940) (
\TEDIT.PUT.PARALOOKS 169942 . 171079)) (171176 174581 (TEDITFROMLISPSOURCE 171186 . 173830) (
SHELLSCRIPTP 173832 . 174061) (TEDITFROMSHELLSCRIPT 174063 . 174579)))))
STOP

Binary file not shown.

View File

@@ -0,0 +1,183 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "14-Dec-2024 16:53:27" {WMEDLEY}<library>TEDIT>TEDIT-FIXFILES.;14 9776
:EDIT-BY rmk
:CHANGES-TO (FNS CR-LF-FONTFIX)
(VARS TEDIT-FIXFILESCOMS)
(ADVICE ELT)
:PREVIOUS-DATE "12-Dec-2024 21:50:29" {WMEDLEY}<library>TEDIT>TEDIT-FIXFILES.;10)
(PRETTYCOMPRINT TEDIT-FIXFILESCOMS)
(RPAQQ TEDIT-FIXFILESCOMS (
(* ;; "Hacks that may help in fixing broken Tedit files")
(FILES TEDIT-DEBUG)
(FNS CRLFSWAP CHANGEPLEN)
(FNS CR-LF-FONTFIX)
(P (MOVD 'CR-LF-FONTFIX '\TEDIT.GET.SINGLE.CHARLOOKS))
(ADVISE ELT)))
(* ;; "Hacks that may help in fixing broken Tedit files")
(FILESLOAD TEDIT-DEBUG)
(DEFINEQ
(CRLFSWAP
[LAMBDA (INFILE OUTFILE) (* ; "Edited 12-Dec-2024 08:25 by rmk")
(* ; "Edited 9-Dec-2024 13:33 by rmk")
(CL:WITH-OPEN-FILE (INSTREAM INFILE :DIRECTION :INPUT)
(CL:UNLESS OUTFILE
(SETQ OUTFILE (PACKFILENAME 'VERSION NIL 'NAME (CONCAT (FILENAMEFIELD INSTREAM
'NAME)
"-SWAPPED")
'BODY INSTREAM)))
(CL:WITH-OPEN-FILE (OUTSTREAM OUTFILE :DIRECTION :OUTPUT)
(for I B from 1 to (GETEOFPTR INSTREAM)
do (BOUT OUTSTREAM (SELCHARQ (SETQ B (BIN INSTREAM))
(LF (CHARCODE CR))
(CR (CHARCODE LF))
B)))
(FULLNAME OUTSTREAM])
(CHANGEPLEN
[LAMBDA (PC DELTA ARG) (* ; "Edited 11-Dec-2024 15:18 by rmk")
(* ;; "Change the length of piece PC by DELTA (negative = shorter).")
(LET [(PC (SP PC 1 NIL (GTO ARG]
(CL:WHEN (EQ 'Y (ASKUSER NIL NIL (CONCAT "Confirm changing PLEN by " DELTA " from "
(PLEN PC)
" to "
(IPLUS (PLEN PC)
DELTA)
" ? ")))
(FSETPC PC PLEN (IPLUS (PLEN PC)
DELTA))
(SP PC 1 NIL (GTO ARG)))])
)
(DEFINEQ
(CR-LF-FONTFIX
[LAMBDA (FILE TEXTOBJ) (* ; "Edited 14-Dec-2024 14:31 by rmk")
(* ; "Edited 12-Dec-2024 21:50 by rmk")
(SI::%%WITH-CHANGED-CALLS
((|TEXTPROP in INTERLISP::\TEDIT.GET.SINGLE.CHARLOOKS| . TEXTPROP))
(* ; "Edited 12-Dec-2024 20:51 by rmk")
(* ; "Edited 11-Dec-2024 17:11 by rmk")
(* ; "Edited 9-Dec-2024 20:11 by rmk")
(* ; "Edited 13-Aug-2024 08:49 by rmk")
(* ; "Edited 31-Jul-2024 00:04 by rmk")
(* ; "Edited 7-Apr-2024 17:21 by rmk")
(* ; "Edited 16-Jan-2024 22:46 by rmk")
(* ; "Edited 21-Dec-2023 23:54 by rmk")
(* ; "Edited 19-Dec-2023 10:13 by rmk")
(* ; "Edited 25-Nov-2023 23:21 by rmk")
(* ; "Edited 24-Aug-2023 15:05 by rmk")
(* ; "Edited 20-Feb-2022 12:42 by larry")
(* ; "Edited 30-May-91 20:25 by jds")
(* ;; "Read one CHARLOOKS from FILE. This gets and then sets the file pointer, based on the stored length. But that won't work if the file is not random access. Maybe that's not necessary?")
(* ;; "TEXTOBJ only for printing in the local promptwindow, if necessary.")
(PROG* ((LOOKS (create CHARLOOKS))
(FILEPOS (GETFILEPTR FILE))
(LOOKSLEN (\WIN FILE))
FONT NAME FACE SIZE SUPER PROPS STYLESTR)
(SETQ NAME (\ARBIN FILE)) (* ; "The font name")
(SETQ SIZE (\WIN FILE)) (* ; "Size of the type, in points")
(SETQ SUPER (\SMALLPIN FILE)) (* ;
 "Superscripting distance, could be negative")
(FSETCLOOKS LOOKS CLSTYLE (OR (\ARBIN FILE)
0))
(FSETCLOOKS LOOKS CLUSERINFO (\ARBIN FILE))
(SETQ PROPS (\WIN FILE))
(with CHARLOOKS LOOKS [SETQ CLSELBEFORE (NOT (ZEROP (LOGAND 8192 PROPS]
[SETQ CLUNBREAKABLE (NOT (ZEROP (LOGAND 4096 PROPS]
[SETQ CLLEADER (NOT (ZEROP (LOGAND 2048 PROPS]
[SETQ CLINVERTED (NOT (ZEROP (LOGAND 1024 PROPS]
[SETQ CLBOLD (NOT (ZEROP (LOGAND 512 PROPS]
[SETQ CLITAL (NOT (ZEROP (LOGAND 256 PROPS]
[SETQ CLULINE (NOT (ZEROP (LOGAND 128 PROPS]
[SETQ CLOLINE (NOT (ZEROP (LOGAND 64 PROPS]
[SETQ CLSTRIKE (NOT (ZEROP (LOGAND 32 PROPS]
[SETQ CLSMALLCAP (NOT (ZEROP (LOGAND 16 PROPS]
[SETQ CLPROTECTED (NOT (ZEROP (LOGAND 8 PROPS]
[SETQ CLINVISIBLE (NOT (ZEROP (LOGAND 4 PROPS]
[SETQ CLSELAFTER (NOT (ZEROP (LOGAND 2 PROPS]
[SETQ CLCANCOPY (NOT (ZEROP (LOGAND 1 PROPS]
(SETQ CLSIZE SIZE)
(SETQ CLOFFSET SUPER))
(SETQ FACE (PACK* (CL:IF (FGETCLOOKS LOOKS CLBOLD)
'B
'M)
(CL:IF (FGETCLOOKS LOOKS CLITAL)
'I
'R)
'R))
(if (LISTP NAME)
then (* ;
 "This was a font class. Restore it.")
(SETQ FONT (FONTCLASS (pop NAME)
NAME))
elseif (OR (NOT NAME)
(ZEROP SIZE))
then
(* ;; "This was a test in the original, seems bogus")
elseif (SETQ FONT (FONTCREATE NAME SIZE FACE NIL NIL T))
elseif [AND (EQ SIZE 13)
(SETQ FONT (FONTCREATE NAME 10 FACE NIL NIL T))
(SELECTQ (STREAMPROP FILE 'COERCEFONT)
(YES T)
(NO NIL)
(SELECTQ [U-CASE (MKATOM (CL:IF TEXTOBJ
(TEDIT.GETINPUT TEXTOBJ
"Change font size 13 to 10 ? ")
(ASKUSER NIL NIL
"Change font size 13 to 10 ? "))]
((Y YES)
(STREAMPROP FILE 'COERCEFONT 'YES)
T)
(PROGN (STREAMPROP FILE 'COERCEFONT 'NO)
NIL]
then
(* ;; "A hack to deal with files that have CR-LF corruption")
(SETQ SIZE 10)
(FSETCLOOKS LOOKS CLSIZE 10)
else (SETQ FONT (FONTCREATE NAME SIZE FACE)))
(FSETCLOOKS LOOKS CLNAME (if (type? FONTCLASS FONT)
then
(* ;;
 "Put the display family in the CLNAME spot. Better than NIL.")
(CL:WHEN [SETQ NAME (FONTCOPY FONT
'(DEVICE DISPLAY NOERROR T]
(FONTPROP NAME 'FAMILY))
else NAME))
(FSETCLOOKS LOOKS CLFONT FONT)
(SETFILEPTR FILE (IPLUS FILEPOS LOOKSLEN))
(RETURN LOOKS])
)
(MOVD 'CR-LF-FONTFIX '\TEDIT.GET.SINGLE.CHARLOOKS)
[XCL:REINSTALL-ADVICE 'ELT :BEFORE '((:LAST (CL:WHEN (AND (EQ N 13)
(ILESSP (ARRAYSIZE A)
13))
(SETQ N 10]
(READVISE ELT)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (912 2760 (CRLFSWAP 922 . 1990) (CHANGEPLEN 1992 . 2758)) (2761 9403 (CR-LF-FONTFIX 2771
. 9401)))))
STOP

Binary file not shown.

View File

@@ -1,14 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED " 1-Aug-2025 14:58:56" 
{DSK}<Users>kaplan>Local>medley3.5>working-medley>library>tedit>TEDIT-HISTORY.;252 59126
(FILECREATED "19-Feb-2026 12:39:37" {WMEDLEY}<library>tedit>TEDIT-HISTORY.;253 59143
:EDIT-BY rmk
:CHANGES-TO (FNS \TEDIT.UNDO.CHARLOOKS)
:CHANGES-TO (FNS \TEDIT.UNDO1)
:PREVIOUS-DATE "28-Jul-2025 23:47:41"
{DSK}<Users>kaplan>Local>medley3.5>working-medley>library>tedit>TEDIT-HISTORY.;251)
:PREVIOUS-DATE " 1-Aug-2025 14:58:56" {WMEDLEY}<library>tedit>TEDIT-HISTORY.;252)
(PRETTYCOMPRINT TEDIT-HISTORYCOMS)
@@ -407,7 +405,8 @@
(\TEDIT.SHOWSEL SEL T TSTREAM])
(\TEDIT.UNDO1
[LAMBDA (TSTREAM EVENT) (* ; "Edited 6-Apr-2025 14:42 by rmk")
[LAMBDA (TSTREAM EVENT) (* ; "Edited 19-Feb-2026 12:39 by rmk")
(* ; "Edited 6-Apr-2025 14:42 by rmk")
(* ; "Edited 1-Apr-2025 21:22 by rmk")
(* ; "Edited 28-Mar-2025 14:22 by rmk")
(* ; "Edited 16-Mar-2025 18:46 by rmk")
@@ -457,7 +456,7 @@
(COND
(UNDOFN
(* ;; "<EFBFBD>TEDIT.HISTORY.TYPELST is an ALST of form (type redofn undofn)")
(* ;; "TEDIT.HISTORY.TYPELST is an ALST of form (type redofn undofn)")
(APPLY* UNDOFN TSTREAM EVENT (GETTH EVENT THLEN)
(GETTH EVENT THCH#)
@@ -920,15 +919,15 @@
(\TEDIT.THELP 'Redo-composite])
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (5022 6043 (\TEDIT.HISTORYEVENT.DEFPRINT 5032 . 6041)) (7133 18387 (\TEDIT.HISTORYADD
7143 . 12405) (\TEDIT.HISTORYADD.COMPOSITE 12407 . 13439) (\TEDIT.CUMULATE.EVENTS 13441 . 15035) (
\TEDIT.COMPOSITE.EVENT 15037 . 15773) (\TEDIT.HISTORY.PROP 15775 . 17138) (\TEDIT.HISTORY.EVENT 17140
. 18211) (\TEDIT.POPEVENT 18213 . 18385)) (18440 37427 (TEDIT.UNDO 18450 . 23326) (\TEDIT.UNDO1 23328
. 27666) (TEDIT.REDO 27668 . 34581) (\TEDIT.UNDO.UNDO 34583 . 37425)) (37428 56129 (
\TEDIT.UNDO.INSERT 37438 . 38563) (\TEDIT.UNDO.DELETE 38565 . 39577) (\TEDIT.UNDO.MOVE 39579 . 41232)
(\TEDIT.UNDO.REPLACE 41234 . 42744) (\TEDIT.UNDO.CHARLOOKS 42746 . 48209) (\TEDIT.UNDO.PARALOOKS 48211
. 52040) (\TEDIT.UNDO.PAGELOOKS 52042 . 52600) (\TEDIT.UNDO.COMPOSITE 52602 . 54202) (
\TEDIT.UNDO.REPLACECODE 54204 . 54538) (\TEDIT.UNDO.WRAP 54540 . 55469) (\TEDIT.UNDO.SEL 55471 . 56127
)) (56130 59103 (\TEDIT.REDO.INSERT 56140 . 57102) (\TEDIT.REDO.REPLACE 57104 . 58710) (
\TEDIT.REDO.COMPOSITE 58712 . 59101)))))
(FILEMAP (NIL (4931 5952 (\TEDIT.HISTORYEVENT.DEFPRINT 4941 . 5950)) (7042 18296 (\TEDIT.HISTORYADD
7052 . 12314) (\TEDIT.HISTORYADD.COMPOSITE 12316 . 13348) (\TEDIT.CUMULATE.EVENTS 13350 . 14944) (
\TEDIT.COMPOSITE.EVENT 14946 . 15682) (\TEDIT.HISTORY.PROP 15684 . 17047) (\TEDIT.HISTORY.EVENT 17049
. 18120) (\TEDIT.POPEVENT 18122 . 18294)) (18349 37444 (TEDIT.UNDO 18359 . 23235) (\TEDIT.UNDO1 23237
. 27683) (TEDIT.REDO 27685 . 34598) (\TEDIT.UNDO.UNDO 34600 . 37442)) (37445 56146 (
\TEDIT.UNDO.INSERT 37455 . 38580) (\TEDIT.UNDO.DELETE 38582 . 39594) (\TEDIT.UNDO.MOVE 39596 . 41249)
(\TEDIT.UNDO.REPLACE 41251 . 42761) (\TEDIT.UNDO.CHARLOOKS 42763 . 48226) (\TEDIT.UNDO.PARALOOKS 48228
. 52057) (\TEDIT.UNDO.PAGELOOKS 52059 . 52617) (\TEDIT.UNDO.COMPOSITE 52619 . 54219) (
\TEDIT.UNDO.REPLACECODE 54221 . 54555) (\TEDIT.UNDO.WRAP 54557 . 55486) (\TEDIT.UNDO.SEL 55488 . 56144
)) (56147 59120 (\TEDIT.REDO.INSERT 56157 . 57119) (\TEDIT.REDO.REPLACE 57121 . 58727) (
\TEDIT.REDO.COMPOSITE 58729 . 59118)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED "16-Feb-2026 00:36:00" {WMEDLEY}<library>TEDIT>TEDIT-LOOKS.;467 155443
(FILECREATED "10-Apr-2026 09:34:11" {WMEDLEY}<library>tedit>TEDIT-LOOKS.;469 155253
:EDIT-BY rmk
:CHANGES-TO (FNS \TEDIT.MCCS.TRANSLATE)
:PREVIOUS-DATE "10-Feb-2026 11:07:12" {WMEDLEY}<library>tedit>TEDIT-LOOKS.;465)
:PREVIOUS-DATE " 9-Apr-2026 17:25:54" {WMEDLEY}<library>tedit>TEDIT-LOOKS.;468)
(PRETTYCOMPRINT TEDIT-LOOKSCOMS)
@@ -924,7 +924,8 @@
(DEFINEQ
(\TEDIT.MCCS.TRANSLATE
[LAMBDA (TSTREAM) (* ; "Edited 16-Feb-2026 00:35 by rmk")
[LAMBDA (TSTREAM) (* ; "Edited 10-Apr-2026 09:34 by rmk")
(* ; "Edited 16-Feb-2026 00:35 by rmk")
(* ; "Edited 6-Oct-2025 20:50 by rmk")
(* ; "Edited 5-Oct-2025 10:57 by rmk")
(* ; "Edited 25-Sep-2025 21:30 by rmk")
@@ -972,14 +973,9 @@
THINSTRING.PTYPE))
(FSETPC PC PCONTENTS STRING)
(FSETPC PC PFPOS NIL)
(FSETPC PC PBINABLE (NOT FAT))
(FSETPC PC PBYTESPERCHAR (CL:IF FAT
2
1))
(FSETPC PC PBYTELEN (CL:IF FAT
(UNFOLD (PLEN PC)
2)
(PLEN PC)))
(CL:UNLESS (EQ 'MCCS (fetch (FONTDESCRIPTOR FONTCHARENCODING) of CLFONT))
(* ;;
@@ -2472,18 +2468,18 @@
\TEDIT.UNPARSE.CHARLOOKS.LIST 40951 . 44445) (\TEDIT.MODIFYLOOKS 44447 . 46607) (TEDIT.NEW.FONT 46609
. 47056) (\TEDIT.CARETLOOKS.VERIFY 47058 . 47895) (\TEDIT.CARETPIECE 47897 . 48202) (
\TEDIT.GET.INSERT.CHARLOOKS 48204 . 51251) (\TEDIT.GET.TERMSA.WIDTHS 51253 . 51669) (
\TEDIT.PARSE.CHARLOOKS.LIST 51671 . 52871)) (52874 64879 (\TEDIT.MCCS.TRANSLATE 52884 . 58615) (
\TEDIT.CONVERT.TO.FORMATTED 58617 . 64877)) (65751 73088 (\TEDIT.UNIQUIFY.CHARLOOKS 65761 . 67421) (
\TEDIT.UNIQUIFY.PARALOOKS 67423 . 68690) (\TEDIT.UNIQUIFY.ALL 68692 . 70780) (
\TEDIT.FLUSH.UNUSED.LOOKS 70782 . 73086)) (73121 85079 (TEDIT.LOOKS 73131 . 75520) (TEDIT.GET.LOOKS
75522 . 77857) (TEDIT.SUBLOOKS 77859 . 82239) (TEDIT.FINDLOOKS 82241 . 85077)) (85080 114853 (
\TEDIT.CHANGE.CHARLOOKS 85090 . 93991) (\TEDIT.CHANGE.CHARLOOKS.NEW 93993 . 97808) (
\TEDIT.CHARLOOKS.CHANGE.FONT 97810 . 106117) (\TEDIT.FONT.NEXTSIZE 106119 . 107740) (\TEDIT.LOOKS
107742 . 111071) (\TEDIT.FONTCOPY 111073 . 112574) (\TEDIT.COERCE.FONTCLASS 112576 . 113727) (
\TEDIT.FONTCLASS.TO.FONT 113729 . 114851)) (114896 146785 (\TEDIT.EQFMTSPEC 114906 . 118121) (
TEDIT.GET.PARALOOKS 118123 . 122170) (\TEDIT.PARSE.PARALOOKS.LIST 122172 . 130205) (TEDIT.PARALOOKS
130207 . 131247) (\TEDIT.CHANGE.PARALOOKS 131249 . 138458) (\TEDIT.CHANGE.PARALOOKS.NEW 138460 .
142443) (TEDIT.COPY.PARALOOKS 142445 . 145119) (\TEDIT.PARABOUNDS 145121 . 146783)) (146845 154561 (
TEDIT.SUBPARALOOKS 146855 . 150957) (SAMEPARALOOKS 150959 . 154559)) (154562 155249 (
\TEDIT.MARK.REVISION 154572 . 155247)))))
\TEDIT.PARSE.CHARLOOKS.LIST 51671 . 52871)) (52874 64689 (\TEDIT.MCCS.TRANSLATE 52884 . 58425) (
\TEDIT.CONVERT.TO.FORMATTED 58427 . 64687)) (65561 72898 (\TEDIT.UNIQUIFY.CHARLOOKS 65571 . 67231) (
\TEDIT.UNIQUIFY.PARALOOKS 67233 . 68500) (\TEDIT.UNIQUIFY.ALL 68502 . 70590) (
\TEDIT.FLUSH.UNUSED.LOOKS 70592 . 72896)) (72931 84889 (TEDIT.LOOKS 72941 . 75330) (TEDIT.GET.LOOKS
75332 . 77667) (TEDIT.SUBLOOKS 77669 . 82049) (TEDIT.FINDLOOKS 82051 . 84887)) (84890 114663 (
\TEDIT.CHANGE.CHARLOOKS 84900 . 93801) (\TEDIT.CHANGE.CHARLOOKS.NEW 93803 . 97618) (
\TEDIT.CHARLOOKS.CHANGE.FONT 97620 . 105927) (\TEDIT.FONT.NEXTSIZE 105929 . 107550) (\TEDIT.LOOKS
107552 . 110881) (\TEDIT.FONTCOPY 110883 . 112384) (\TEDIT.COERCE.FONTCLASS 112386 . 113537) (
\TEDIT.FONTCLASS.TO.FONT 113539 . 114661)) (114706 146595 (\TEDIT.EQFMTSPEC 114716 . 117931) (
TEDIT.GET.PARALOOKS 117933 . 121980) (\TEDIT.PARSE.PARALOOKS.LIST 121982 . 130015) (TEDIT.PARALOOKS
130017 . 131057) (\TEDIT.CHANGE.PARALOOKS 131059 . 138268) (\TEDIT.CHANGE.PARALOOKS.NEW 138270 .
142253) (TEDIT.COPY.PARALOOKS 142255 . 144929) (\TEDIT.PARABOUNDS 144931 . 146593)) (146655 154371 (
TEDIT.SUBPARALOOKS 146665 . 150767) (SAMEPARALOOKS 150769 . 154369)) (154372 155059 (
\TEDIT.MARK.REVISION 154382 . 155057)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED " 9-Feb-2026 09:10:43" {WMEDLEY}<library>tedit>TEDIT-MENU.;510 183027
(FILECREATED "29-Apr-2026 15:35:33" {MEDLEY}<library>TEDIT>TEDIT-MENU.;512 183159
:EDIT-BY rmk
:CHANGES-TO (FNS \TEDIT.PAGEMENU.CREATE)
:CHANGES-TO (FNS \TEDIT.SHOW.PAGELOOKS)
:PREVIOUS-DATE "27-Jan-2026 10:42:09" {WMEDLEY}<library>tedit>TEDIT-MENU.;508)
:PREVIOUS-DATE " 9-Feb-2026 09:10:43" {MEDLEY}<library>TEDIT>TEDIT-MENU.;510)
(PRETTYCOMPRINT TEDIT-MENUCOMS)
@@ -2525,7 +2525,8 @@
'PAGE))])
(\TEDIT.SHOW.PAGELOOKS
[LAMBDA (OBJ MENUSEL MENUWINDOW MENUSTREAM) (* ; "Edited 20-Apr-2025 23:41 by rmk")
[LAMBDA (OBJ MENUSEL MENUWINDOW MENUSTREAM) (* ; "Edited 29-Apr-2026 15:35 by rmk")
(* ; "Edited 20-Apr-2025 23:41 by rmk")
(* ; "Edited 22-Oct-2024 11:04 by rmk")
(* ; "Edited 20-Oct-2024 17:32 by rmk")
(* ; "Edited 29-Sep-2024 15:10 by rmk")
@@ -2538,19 +2539,18 @@
(* ;; "OBJ is unused, presumably to have a standard interface with other menu functions that update image objects.")
(PROG [(PAGEID (MB.GET 'PAGEID MENUSTREAM 'STATE]
(CL:WHEN (MEMB PAGEID '(NIL OFF))
(TEDIT.PROMPTPRINT MENUWINDOW "Please specify the page-type" T T)
(RETURN))
(RESETLST
(TEDIT.DEFER.UPDATES MENUSTREAM)
(\TEDIT.PAGEMENU.FILLIN MENUSTREAM (\TEDIT.PAGEREGION.UNPARSE (\TEDIT.MAINSTREAM
(LET [(PAGEID (MB.GET 'PAGEID MENUSTREAM 'STATE]
(if (MEMB PAGEID '(NIL OFF))
then (TEDIT.PROMPTPRINT MENUWINDOW "Please specify the page-type" T T)
else (RESETLST
(TEDIT.DEFER.UPDATES MENUSTREAM)
(\TEDIT.PAGEMENU.FILLIN MENUSTREAM (\TEDIT.PAGEREGION.UNPARSE (\TEDIT.MAINSTREAM
MENUSTREAM)
PAGEID)))
(FSETSEL MENUSEL ONFLG T)
(\TEDIT.UPDATE.SEL MENUSEL 1 0 'LEFT)
(\TEDIT.FIXSEL MENUSEL MENUSTREAM)
(TEDIT.BACKTOMAIN MENUSTREAM])
PAGEID)))
(FSETSEL MENUSEL ONFLG T)
(\TEDIT.UPDATE.SEL MENUSEL 1 0 'LEFT)
(\TEDIT.FIXSEL MENUSEL MENUSTREAM))
(TEDIT.BACKTOMAIN MENUSTREAM])
(\TEDIT.PAGEMENU.FILLIN
[LAMBDA (MENUSTREAM PAGELOOKS) (* ; "Edited 29-Sep-2024 12:53 by rmk")
@@ -2899,32 +2899,32 @@
(ADDTOVAR LAMA )
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (4936 16574 (TEDIT.ADD.MENUITEM 4946 . 7063) (TEDIT.DEFAULT.MENUFN 7065 . 13786) (
TEDIT.REMOVE.MENUITEM 13788 . 14785) (\TEDIT.CREATEMENU 14787 . 15352) (\TEDIT.MENU.WHENHELDFN 15354
. 16259) (\TEDIT.MENU.WHENSELECTEDFN 16261 . 16572)) (17388 65423 (DRAWMARGINSCALE 17398 . 20857) (
MARGINBAR 20859 . 27984) (MARGINBAR.CREATE 27986 . 32184) (MB.MARGINBAR.BUTTONEVENTINFN 32186 . 39988)
(MB.MARGINBAR.SELFN.TABS 39990 . 45230) (MB.MARGINBAR.SELFN.TABS.KIND 45232 . 46167) (
MARGINBAR.GETSTATEFN 46169 . 50156) (MARGINBAR.SETSTATEFN 50158 . 50368) (MARGINBAR.NEUTRALIZE 50370
. 51045) (MARGINBAR.LOOKS 51047 . 54153) (MB.MARGINBAR.SIZEFN 54155 . 54941) (MB.MARGINBAR.DISPLAYFN
54943 . 58004) (MDESCALE 58006 . 58546) (MSCALE 58548 . 58878) (MB.MARGINBAR.SHOWTAB 58880 . 61203) (
MB.MARGINBAR.TABTRACK 61205 . 62590) (MARGINBAR.INIT 62592 . 63985) (\TEDIT.PARALOOKS.TO.MARBAR 63987
. 65421)) (66248 73530 (TEDIT.MENUSTREAM 66258 . 67258) (TEDITMENUP 67260 . 68229) (\TEDIT.MENU.START
68231 . 72578) (\TEDIT.MENU.OPEN? 72580 . 72954) (\TEDIT.MENU.BUTTONEVENTFN 72956 . 73528)) (73849
81900 (\TEDIT.MENU.CREATE 73859 . 75799) (\TEDIT.MENU.PARSE 75801 . 79490) (\TEDIT.MENU.NEUTRALIZE
79492 . 81563) (\TEDITMENU.RECORD.UNFORMATTED 81565 . 81898)) (81966 101368 (
\TEDIT.EXPANDEDMENU.CREATE 81976 . 87654) (\TEDIT.EXPANDEDMENU.START 87656 . 89280) (
\TEDIT.EXPANDEDMENU.FN 89282 . 92537) (\TEDIT.EXPANDEDMENU.ACTIONFN 92539 . 101366)) (101430 120855 (
\TEDIT.PARAMENU.CREATE 101440 . 110171) (\TEDIT.PARAMENU.START 110173 . 111427) (
\TEDIT.APPLY.PARALOOKS 111429 . 112481) (\TEDIT.SHOW.PARALOOKS 112483 . 115200) (
\TEDIT.PARAMENU.FILLIN 115202 . 119951) (\TEDIT.PARAMENU.RESHAPEFN 119953 . 120853)) (121049 147891 (
\TEDIT.CHARMENU.CREATE 121059 . 123663) (\TEDIT.CHARMENU.START 123665 . 124955) (\TEDIT.CHARMENU.SPEC
124957 . 129640) (\TEDIT.CHARMENU.PARSE 129642 . 132810) (\TEDIT.CHARMENU.FILLIN 132812 . 137442) (
\TEDIT.SHOW.CHARLOOKS 137444 . 140989) (\TEDIT.APPLY.CHARLOOKS 140991 . 142152) (
\TEDIT.OFFSETTYPE.STATEFN 142154 . 144117) (\TEDIT.OTHER.STATECHANGEFN 144119 . 145764) (
\TEDIT.OTHER.SELECTFN 145766 . 147889)) (147953 177067 (\TEDIT.PAGEMENU.CREATE 147963 . 156484) (
\TEDIT.PAGEMENU.START 156486 . 156837) (\TEDIT.SHOW.PAGELOOKS 156839 . 158725) (\TEDIT.PAGEMENU.FILLIN
158727 . 160277) (\TEDIT.PAGEREGION.UNPARSE 160279 . 169678) (\TEDIT.APPLY.PAGELOOKS 169680 . 171607)
(\TEDIT.CHANGE.PAGELOOKS 171609 . 176223) (\TEDIT.PAGEMENU.CHARLOOKS.STATEFN 176225 . 177065)) (
177068 182871 (\TEDIT.PAGEMENU.CREATE.HEADINGS 177078 . 179890) (\TEDIT.PAGEMENU.HEADINGS.SETSTATEFN
179892 . 181317) (\TEDIT.PAGEMENU.HEADINGS.STATEFN 181319 . 182869)))))
(FILEMAP (NIL (4933 16571 (TEDIT.ADD.MENUITEM 4943 . 7060) (TEDIT.DEFAULT.MENUFN 7062 . 13783) (
TEDIT.REMOVE.MENUITEM 13785 . 14782) (\TEDIT.CREATEMENU 14784 . 15349) (\TEDIT.MENU.WHENHELDFN 15351
. 16256) (\TEDIT.MENU.WHENSELECTEDFN 16258 . 16569)) (17385 65420 (DRAWMARGINSCALE 17395 . 20854) (
MARGINBAR 20856 . 27981) (MARGINBAR.CREATE 27983 . 32181) (MB.MARGINBAR.BUTTONEVENTINFN 32183 . 39985)
(MB.MARGINBAR.SELFN.TABS 39987 . 45227) (MB.MARGINBAR.SELFN.TABS.KIND 45229 . 46164) (
MARGINBAR.GETSTATEFN 46166 . 50153) (MARGINBAR.SETSTATEFN 50155 . 50365) (MARGINBAR.NEUTRALIZE 50367
. 51042) (MARGINBAR.LOOKS 51044 . 54150) (MB.MARGINBAR.SIZEFN 54152 . 54938) (MB.MARGINBAR.DISPLAYFN
54940 . 58001) (MDESCALE 58003 . 58543) (MSCALE 58545 . 58875) (MB.MARGINBAR.SHOWTAB 58877 . 61200) (
MB.MARGINBAR.TABTRACK 61202 . 62587) (MARGINBAR.INIT 62589 . 63982) (\TEDIT.PARALOOKS.TO.MARBAR 63984
. 65418)) (66245 73527 (TEDIT.MENUSTREAM 66255 . 67255) (TEDITMENUP 67257 . 68226) (\TEDIT.MENU.START
68228 . 72575) (\TEDIT.MENU.OPEN? 72577 . 72951) (\TEDIT.MENU.BUTTONEVENTFN 72953 . 73525)) (73846
81897 (\TEDIT.MENU.CREATE 73856 . 75796) (\TEDIT.MENU.PARSE 75798 . 79487) (\TEDIT.MENU.NEUTRALIZE
79489 . 81560) (\TEDITMENU.RECORD.UNFORMATTED 81562 . 81895)) (81963 101365 (
\TEDIT.EXPANDEDMENU.CREATE 81973 . 87651) (\TEDIT.EXPANDEDMENU.START 87653 . 89277) (
\TEDIT.EXPANDEDMENU.FN 89279 . 92534) (\TEDIT.EXPANDEDMENU.ACTIONFN 92536 . 101363)) (101427 120852 (
\TEDIT.PARAMENU.CREATE 101437 . 110168) (\TEDIT.PARAMENU.START 110170 . 111424) (
\TEDIT.APPLY.PARALOOKS 111426 . 112478) (\TEDIT.SHOW.PARALOOKS 112480 . 115197) (
\TEDIT.PARAMENU.FILLIN 115199 . 119948) (\TEDIT.PARAMENU.RESHAPEFN 119950 . 120850)) (121046 147888 (
\TEDIT.CHARMENU.CREATE 121056 . 123660) (\TEDIT.CHARMENU.START 123662 . 124952) (\TEDIT.CHARMENU.SPEC
124954 . 129637) (\TEDIT.CHARMENU.PARSE 129639 . 132807) (\TEDIT.CHARMENU.FILLIN 132809 . 137439) (
\TEDIT.SHOW.CHARLOOKS 137441 . 140986) (\TEDIT.APPLY.CHARLOOKS 140988 . 142149) (
\TEDIT.OFFSETTYPE.STATEFN 142151 . 144114) (\TEDIT.OTHER.STATECHANGEFN 144116 . 145761) (
\TEDIT.OTHER.SELECTFN 145763 . 147886)) (147950 177199 (\TEDIT.PAGEMENU.CREATE 147960 . 156481) (
\TEDIT.PAGEMENU.START 156483 . 156834) (\TEDIT.SHOW.PAGELOOKS 156836 . 158857) (\TEDIT.PAGEMENU.FILLIN
158859 . 160409) (\TEDIT.PAGEREGION.UNPARSE 160411 . 169810) (\TEDIT.APPLY.PAGELOOKS 169812 . 171739)
(\TEDIT.CHANGE.PAGELOOKS 171741 . 176355) (\TEDIT.PAGEMENU.CHARLOOKS.STATEFN 176357 . 177197)) (
177200 183003 (\TEDIT.PAGEMENU.CREATE.HEADINGS 177210 . 180022) (\TEDIT.PAGEMENU.HEADINGS.SETSTATEFN
180024 . 181449) (\TEDIT.PAGEMENU.HEADINGS.STATEFN 181451 . 183001)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED " 8-Sep-2025 22:10:10" {WMEDLEY}<library>TEDIT>TEDIT-OLDFILE.;40 73888
(FILECREATED "10-Apr-2026 09:29:21" {WMEDLEY}<library>tedit>TEDIT-OLDFILE.;45 73241
:EDIT-BY rmk
:CHANGES-TO (FNS \TEDIT.GET.PCTB2)
:CHANGES-TO (FNS \TEDIT.GET.PCTB2 \TEDIT.GET.PCTB1 \TEDIT.GET.PCTB0)
:PREVIOUS-DATE " 7-Sep-2025 11:07:57" {WMEDLEY}<library>TEDIT>TEDIT-OLDFILE.;39)
:PREVIOUS-DATE "10-Apr-2026 00:16:32" {WMEDLEY}<library>tedit>TEDIT-OLDFILE.;41)
(PRETTYCOMPRINT TEDIT-OLDFILECOMS)
@@ -46,23 +46,18 @@
(DEFINEQ
(\TEDIT.GET.PCTB2
[LAMBDA (TEXT TSTREAM PCCOUNT START END) (* ; "Edited 8-Sep-2025 22:08 by rmk")
[LAMBDA (TEXT TSTREAM PCCOUNT START END) (* ; "Edited 10-Apr-2026 09:28 by rmk")
(* ; "Edited 8-Sep-2025 22:08 by rmk")
(* ; "Edited 1-Aug-2025 14:55 by rmk")
(* ; "Edited 28-Jul-2025 23:39 by rmk")
(* ; "Edited 8-Feb-2025 20:21 by rmk")
(* ; "Edited 21-Oct-2024 00:33 by rmk")
(* ; "Edited 29-Apr-2024 10:28 by rmk")
(* ; "Edited 20-Mar-2024 11:00 by rmk")
(* ; "Edited 17-Mar-2024 12:41 by rmk")
(* ; "Edited 15-Mar-2024 14:37 by rmk")
(* ; "Edited 21-Jan-2024 10:21 by rmk")
(* ; "Edited 13-Jan-2024 12:09 by rmk")
(* ; "Edited 19-Dec-2023 10:13 by rmk")
(* ; "Edited 25-Nov-2023 23:18 by rmk")
(* ; "Edited 8-Nov-2023 13:48 by rmk")
(* ; "Edited 4-Oct-2022 16:58 by rmk")
(* ; "Edited 8-Sep-2022 23:06 by rmk")
(* ; "Edited 5-Sep-2022 21:33 by rmk")
(* ; "Edited 4-May-93 16:27 by jds")
(* ;; "READ OBSOLETE FORMATS OF TEDIT FILE")
@@ -80,8 +75,7 @@
(SETQ PIECEINFOCH# (\DWIN TEXT))
(SETFILEPTR TEXT PIECEINFOCH#)
(bind PC TYPECODE PCLEN OLDPC (DEFAULTCHARLOOKS _ (FGETTOBJ TEXTOBJ DEFAULTCHARLOOKS))
(OLDPARALOOKS _ (FGETTOBJ TEXTOBJ DEFAULTPARALOOKS))
(SBINABLE _ (fetch (STREAM BINABLE) of TEXT)) for I from 1 to PCCOUNT
(OLDPARALOOKS _ (FGETTOBJ TEXTOBJ DEFAULTPARALOOKS)) for I from 1 to PCCOUNT
do (SETQ PC NIL) (* ;
 "This loop may not really read a piece, so we have to distinguish that case.")
(SETQ PCLEN (\DWIN TEXT))
@@ -131,37 +125,35 @@
(create PIECE
PCONTENTS _ TEXT
PFPOS _ CURFILECH#
PBYTELEN _ PCLEN
PLEN _ PCLEN
PPARALOOKS _ OLDPARALOOKS
PTYPE _ THINFILE.PTYPE
PBYTESPERCHAR _ 1)) (* ; "Build the new piece")
(\TEDIT.GET.CHARLOOKS2 PC TEXT LOOKSHASH)
(CL:WHEN (EQ THINFILE.PTYPE (PTYPE PC))
(FSETPC PC PBINABLE SBINABLE))(* ;
(* ;
 "Read the character looks for this guy.")
(COND
[OLDPC (* ;
(if OLDPC
then (* ;
 "If there's a prior piece, hook this one on the chain.")
(COND
([AND (EQ FATFILE2.PTYPE (PTYPE PC))
(NOT (EQ FATFILE2.PTYPE (PTYPE OLDPC]
(* ;
(if [AND (EQ FATFILE2.PTYPE (PTYPE PC))
(NOT (EQ FATFILE2.PTYPE (PTYPE OLDPC]
then (* ;
 "Switching from not-fat to fat. Add 3 bytes for the 255-255-0")
(add (PFPOS PC)
3)
(add CURFILECH# -3))
([AND (EQ FATFILE2.PTYPE (PTYPE OLDPC))
(NOT (EQ FATFILE2.PTYPE (PTYPE PC]
(* ;
(add (PFPOS PC)
3)
(add CURFILECH# -3)
elseif [AND (EQ FATFILE2.PTYPE (PTYPE OLDPC))
(NOT (EQ FATFILE2.PTYPE (PTYPE PC]
then (* ;
 "Switching from fat to not-fat. Add 3 bytes for the 255-0")
(add (PFPOS PC)
2]
((EQ FATFILE2.PTYPE (PTYPE PC)) (* ;
(add (PFPOS PC)
2))
elseif (EQ FATFILE2.PTYPE (PTYPE PC))
then (* ;
 "Switching from not-fat to fat. Add 3 bytes for the 255-255-0")
(add (PFPOS PC)
3)
(add CURFILECH# -3))) (* ;
(add (PFPOS PC)
3)
(add CURFILECH# -3)) (* ;
 "And note the passing of characters.")
(add CURFILECH# PCLEN))
(\PieceDescriptorOBJECT (* ;
@@ -580,7 +572,8 @@
(DEFINEQ
(\TEDIT.GET.PCTB1
[LAMBDA (TEXT TSTREAM PCCOUNT START END) (* ; "Edited 1-Aug-2025 14:56 by rmk")
[LAMBDA (TEXT TSTREAM PCCOUNT START END) (* ; "Edited 10-Apr-2026 09:25 by rmk")
(* ; "Edited 1-Aug-2025 14:56 by rmk")
(* ; "Edited 28-Jul-2025 23:39 by rmk")
(* ; "Edited 8-Feb-2025 20:22 by rmk")
(* ; "Edited 21-Oct-2024 00:33 by rmk")
@@ -612,8 +605,7 @@
(SETQ PIECEINFOCH# (\DWIN TEXT))
(SETFILEPTR TEXT PIECEINFOCH#)
(bind PC TYPECODE PCLEN OLDPC (DEFAULTCHARLOOKS _ (FGETTOBJ TEXTOBJ DEFAULTCHARLOOKS))
(OLDPARALOOKS _ (FGETTOBJ TEXTOBJ DEFAULTPARALOOKS))
(SBINABLE _ (fetch (STREAM BINABLE) of TEXT)) for I from 1 to PCCOUNT
(OLDPARALOOKS _ (FGETTOBJ TEXTOBJ DEFAULTPARALOOKS)) for I from 1 to PCCOUNT
do (SETQ PC NIL) (* ;
 "This loop may not really read a piece, so we have to distinguish that case.")
(SETQ PCLEN (\DWIN TEXT))
@@ -640,13 +632,11 @@
(create PIECE
PCONTENTS _ TEXT
PFPOS _ CURFILECH#
PBYTELEN _ PCLEN
PLEN _ PCLEN
PPARALOOKS _ OLDPARALOOKS
PTYPE _ THINFILE.PTYPE
PBYTESPERCHAR _ 1))
(\TEDIT.GET.CHARLOOKS1 PC TEXT)
(FSETPC PC PBINABLE SBINABLE) (* ;
(\TEDIT.GET.CHARLOOKS1 PC TEXT) (* ;
 "Read the character looks for this guy.")
(add CURFILECH# (PLEN PC)) (* ;
 "And note the passing of characters.")
@@ -891,7 +881,8 @@
(DEFINEQ
(\TEDIT.GET.PCTB0
[LAMBDA (TEXT TSTREAM PCCOUNT START END) (* ; "Edited 8-Feb-2025 20:22 by rmk")
[LAMBDA (TEXT TSTREAM PCCOUNT START END) (* ; "Edited 10-Apr-2026 09:22 by rmk")
(* ; "Edited 8-Feb-2025 20:22 by rmk")
(* ; "Edited 21-Oct-2024 00:33 by rmk")
(* ; "Edited 29-Apr-2024 10:27 by rmk")
(* ; "Edited 17-Mar-2024 12:41 by rmk")
@@ -908,7 +899,7 @@
(LET ((TEXTOBJ (TEXTOBJ! (fetch (TEXTSTREAM TEXTOBJ) of TSTREAM)))
OLDPC TYPECODE PCLEN PIECEINFOCH# TSTREAM USERFILEFORMAT USERTEMP (CURFILECH# (OR START 0))
(SBINABLE (fetch (STREAM BINABLE) of TEXT)))
)
(SETFILEPTR TEXT (IDIFFERENCE (OR END (GETEOFPTR TEXT))
8))
(SETQ PIECEINFOCH# (\DWIN TEXT))
@@ -924,8 +915,7 @@
PREVPIECE _ OLDPC
PPARALOOKS _ DEFAULTPARALOOKS
PTYPE _ THINFILE.PTYPE
PBYTESPERCHAR _ 1
PBINABLE _ SBINABLE))
PBYTESPERCHAR _ 1))
[COND
(OLDPC (FSETPC OLDPC NEXTPIECE PC)
(FSETPC PC PPARALOOKS (PPARALOOKS OLDPC]
@@ -1100,14 +1090,14 @@
PARALOOKS])
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (1649 37832 (\TEDIT.GET.PCTB2 1659 . 12415) (\TEDIT.GET.PARALOOKS2 12417 . 13006) (
\TEDIT.GET.CHARLOOKS2 13008 . 14565) (\TEDIT.PARSE.PAGEFRAMES2 14567 . 17306) (
\TEDIT.GET.CHARLOOKS.LIST2 17308 . 17815) (\TEDIT.GET.SINGLE.CHARLOOKS2 17817 . 21176) (
\TEDIT.PUT.SINGLE.PARALOOKS2 21178 . 25428) (\TEDIT.PUT.SINGLE.CHARLOOKS2 25430 . 29140) (
\TEDIT.GET.PARALOOKS.LIST2 29142 . 29649) (\TEDIT.GET.SINGLE.PARALOOKS2 29651 . 34550) (
\TEDIT.PUT.CHARLOOKS.LIST2 34552 . 36631) (\TEDIT.PUT.PARALOOKS.LIST2 36633 . 37830)) (37909 59190 (
\TEDIT.GET.PCTB1 37919 . 44936) (\TEDIT.GET.PAGEFRAMES1 44938 . 45390) (\TEDIT.PARSE.PAGEFRAMES1 45392
. 48045) (\TEDIT.GET.CHARLOOKS1 48047 . 52413) (\TEDIT.GET.PARALOOKS1 52415 . 57326) (
TEDIT.GET.OBJECT1 57328 . 59188)) (59250 73865 (\TEDIT.GET.PCTB0 59260 . 63341) (\TEDIT.GET.CHARLOOKS0
63343 . 67783) (\TEDIT.GET.OBJECT0 67785 . 69860) (\TEDIT.GET.PARALOOKS0 69862 . 73863)))))
(FILEMAP (NIL (1683 37235 (\TEDIT.GET.PCTB2 1693 . 11818) (\TEDIT.GET.PARALOOKS2 11820 . 12409) (
\TEDIT.GET.CHARLOOKS2 12411 . 13968) (\TEDIT.PARSE.PAGEFRAMES2 13970 . 16709) (
\TEDIT.GET.CHARLOOKS.LIST2 16711 . 17218) (\TEDIT.GET.SINGLE.CHARLOOKS2 17220 . 20579) (
\TEDIT.PUT.SINGLE.PARALOOKS2 20581 . 24831) (\TEDIT.PUT.SINGLE.CHARLOOKS2 24833 . 28543) (
\TEDIT.GET.PARALOOKS.LIST2 28545 . 29052) (\TEDIT.GET.SINGLE.PARALOOKS2 29054 . 33953) (
\TEDIT.PUT.CHARLOOKS.LIST2 33955 . 36034) (\TEDIT.PUT.PARALOOKS.LIST2 36036 . 37233)) (37312 58528 (
\TEDIT.GET.PCTB1 37322 . 44274) (\TEDIT.GET.PAGEFRAMES1 44276 . 44728) (\TEDIT.PARSE.PAGEFRAMES1 44730
. 47383) (\TEDIT.GET.CHARLOOKS1 47385 . 51751) (\TEDIT.GET.PARALOOKS1 51753 . 56664) (
TEDIT.GET.OBJECT1 56666 . 58526)) (58588 73218 (\TEDIT.GET.PCTB0 58598 . 62694) (\TEDIT.GET.CHARLOOKS0
62696 . 67136) (\TEDIT.GET.OBJECT0 67138 . 69213) (\TEDIT.GET.PARALOOKS0 69215 . 73216)))))
STOP

Binary file not shown.

View File

@@ -1,13 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED "27-Jan-2026 10:30:27" {WMEDLEY}<library>TEDIT>TEDIT-PAGE.;243 130855
(FILECREATED " 6-May-2026 22:17:41" {MEDLEY}<library>TEDIT>TEDIT-PAGE.;244 130772
:EDIT-BY rmk
:CHANGES-TO (FNS TEDIT.SINGLE.PAGEFORMAT)
(VARS TEDIT-PAGECOMS)
:CHANGES-TO (FNS TEDIT.TO.IMAGEFILE)
:PREVIOUS-DATE "17-Jan-2026 12:00:08" {WMEDLEY}<library>TEDIT>TEDIT-PAGE.;241)
:PREVIOUS-DATE "27-Jan-2026 10:30:27" {MEDLEY}<library>TEDIT>TEDIT-PAGE.;243)
(PRETTYCOMPRINT TEDIT-PAGECOMS)
@@ -636,7 +635,8 @@
(DEFINEQ
(TEDIT.TO.IMAGEFILE
[LAMBDA (TSTREAM IMAGEFILE IMAGETYPE OPTIONS) (* ; "Edited 17-Jan-2026 11:59 by rmk")
[LAMBDA (TSTREAM IMAGEFILE IMAGETYPE OPTIONS) (* ; "Edited 6-May-2026 22:16 by rmk")
(* ; "Edited 17-Jan-2026 11:59 by rmk")
(* ; "Edited 15-Jan-2026 08:46 by rmk")
(* ; "Edited 25-Dec-2025 15:07 by rmk")
(* ; "Edited 20-Dec-2025 23:03 by rmk")
@@ -650,11 +650,9 @@
(RESETLST
(SETQ TSTREAM (if (TEXTSTREAM TSTREAM T)
elseif (TEDIT.FORMATTEDFILEP TSTREAM)
then [RESETSAVE (SETQ TSTREAM (OPENTEXTSTREAM TSTREAM))
`(PROGN (CLOSEF? OLDVALUE]
TSTREAM
else (ERROR TSTREAM "is not a Tedit stream")))
else [RESETSAVE (SETQ TSTREAM (OPENTEXTSTREAM TSTREAM))
`(PROGN (CLOSEF? OLDVALUE]
TSTREAM))
(CL:WHEN (GETTEXTPROP TSTREAM 'MENUFLG)
(SETQ TSTREAM (TEXTSTREAM (\TEDIT.MAINW TSTREAM))))
(CL:UNLESS IMAGEFILE
@@ -2062,18 +2060,18 @@
(RETURN (DREMOVE NIL $$VAL])
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (12248 15860 (\TEDIT.PARSE.PAGEFRAMES 12258 . 14037) (\TEDIT.PUT.PAGEFRAMES 14039 .
14863) (\TEDIT.UNPARSE.PAGEFRAMES 14865 . 15858)) (15923 38091 (TEDIT.SINGLE.PAGEFORMAT 15933 . 27077)
(TEDIT.COMPOUND.PAGEFORMAT 27079 . 28058) (TEDIT.PAGEFORMAT 28060 . 35349) (TEDIT.GET.PAGEFORMAT
35351 . 38089)) (38378 44858 (TEDIT.TO.IMAGEFILE 38388 . 44856)) (45006 98258 (\TEDIT.FORMATBOX 45016
. 58440) (\TEDIT.FORMATHEADING 58442 . 63088) (\TEDIT.FORMATPAGE 63090 . 72279) (\TEDIT.FORMATTEXTBOX
72281 . 88794) (\TEDIT.FORMATFOLIO 88796 . 94113) (\TEDIT.FORMAT.FOUNDBOX? 94115 . 96154) (
\TEDIT.SKIP.SPECIALCOND 96156 . 98256)) (98338 103393 (\TEDIT.HARDCOPY.PAGEHEADINGS 98348 . 103391)) (
103502 111553 (\TEDIT.HARDCOPY-COLUMN-END 103512 . 111551)) (111598 116539 (SCALEPAGEUNITS 111608 .
112749) (SCALEPAGEXUNITS 112751 . 113521) (SCALEPAGEYUNITS 113523 . 114294) (\TEDIT.PAPERHEIGHT 114296
. 115231) (\TEDIT.PAPERWIDTH 115233 . 116537)) (116955 120523 (ROMANNUMERALS 116965 . 120521)) (
120562 127828 (TEDIT.PAGENO.CREATE 120572 . 120948) (\TEDIT.PAGENO.OBJINIT 120950 . 122233) (
\TEDIT.PAGENO.BUTTONEVENTINFN 122235 . 123301) (\TEDIT.PAGENO.IMAGEBOXFN 123303 . 125453) (
\TEDIT.PAGENO.DISPLAYFN 125455 . 127105) (\TEDIT.PAGENO.GETFN 127107 . 127499) (\TEDIT.PAGENO.PUTFN
127501 . 127826)) (127893 130832 (\TEDIT.FORMAT.FOOTNOTE 127903 . 130830)))))
(FILEMAP (NIL (12201 15813 (\TEDIT.PARSE.PAGEFRAMES 12211 . 13990) (\TEDIT.PUT.PAGEFRAMES 13992 .
14816) (\TEDIT.UNPARSE.PAGEFRAMES 14818 . 15811)) (15876 38044 (TEDIT.SINGLE.PAGEFORMAT 15886 . 27030)
(TEDIT.COMPOUND.PAGEFORMAT 27032 . 28011) (TEDIT.PAGEFORMAT 28013 . 35302) (TEDIT.GET.PAGEFORMAT
35304 . 38042)) (38331 44775 (TEDIT.TO.IMAGEFILE 38341 . 44773)) (44923 98175 (\TEDIT.FORMATBOX 44933
. 58357) (\TEDIT.FORMATHEADING 58359 . 63005) (\TEDIT.FORMATPAGE 63007 . 72196) (\TEDIT.FORMATTEXTBOX
72198 . 88711) (\TEDIT.FORMATFOLIO 88713 . 94030) (\TEDIT.FORMAT.FOUNDBOX? 94032 . 96071) (
\TEDIT.SKIP.SPECIALCOND 96073 . 98173)) (98255 103310 (\TEDIT.HARDCOPY.PAGEHEADINGS 98265 . 103308)) (
103419 111470 (\TEDIT.HARDCOPY-COLUMN-END 103429 . 111468)) (111515 116456 (SCALEPAGEUNITS 111525 .
112666) (SCALEPAGEXUNITS 112668 . 113438) (SCALEPAGEYUNITS 113440 . 114211) (\TEDIT.PAPERHEIGHT 114213
. 115148) (\TEDIT.PAPERWIDTH 115150 . 116454)) (116872 120440 (ROMANNUMERALS 116882 . 120438)) (
120479 127745 (TEDIT.PAGENO.CREATE 120489 . 120865) (\TEDIT.PAGENO.OBJINIT 120867 . 122150) (
\TEDIT.PAGENO.BUTTONEVENTINFN 122152 . 123218) (\TEDIT.PAGENO.IMAGEBOXFN 123220 . 125370) (
\TEDIT.PAGENO.DISPLAYFN 125372 . 127022) (\TEDIT.PAGENO.GETFN 127024 . 127416) (\TEDIT.PAGENO.PUTFN
127418 . 127743)) (127810 130749 (\TEDIT.FORMAT.FOOTNOTE 127820 . 130747)))))
STOP

Binary file not shown.

View File

@@ -1,13 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED "14-Feb-2026 13:22:06" {WMEDLEY}<library>TEDIT>TEDIT-PCTREE.;251 68691
(FILECREATED " 9-Apr-2026 17:25:38" {WMEDLEY}<library>TEDIT>TEDIT-PCTREE.;252 68540
:EDIT-BY rmk
:CHANGES-TO (VARS TEDIT-PCTREECOMS)
(FNS \TEDIT.UNLINKPIECE \TEDIT.DELETEPIECES)
:CHANGES-TO (FNS \TEDIT.SPLITPIECE)
:PREVIOUS-DATE "28-Jul-2025 23:25:19" {WMEDLEY}<library>TEDIT>TEDIT-PCTREE.;249)
:PREVIOUS-DATE "14-Feb-2026 13:22:06" {WMEDLEY}<library>TEDIT>TEDIT-PCTREE.;251)
(PRETTYCOMPRINT TEDIT-PCTREECOMS)
@@ -658,7 +657,8 @@
NEW])
(\TEDIT.SPLITPIECE
[LAMBDA (PC CHOFFSET TEXTOBJ) (* ; "Edited 21-Oct-2024 00:33 by rmk")
[LAMBDA (PC CHOFFSET TEXTOBJ) (* ; "Edited 9-Apr-2026 13:22 by rmk")
(* ; "Edited 21-Oct-2024 00:33 by rmk")
(* ; "Edited 17-Mar-2024 00:11 by rmk")
(* ; "Edited 28-Dec-2023 22:17 by rmk")
(* ; "Edited 7-Dec-2023 21:07 by rmk")
@@ -680,9 +680,8 @@
(\INSURE.VACANT.BTREESLOT (FGETPC PC PTREENODE)
TEXTOBJ) (* ;
 "Do this before reducing PC, so tree remains valid")
(LET [(PREVPC (create PIECE using PC PPARALAST _ NIL PLEN _ CHOFFSET PBYTELEN _
(ITIMES (PBYTESPERCHAR PC)
CHOFFSET] (* ;
(LET ((PREVPC (create PIECE using PC PPARALAST _ NIL PLEN _ CHOFFSET)))
(* ;
 "There can be no para break before the split, as things now work.")
(* ;; "PREVPC is the prefix before the split point of length CHOFFSET, PC will be the suffix, a shortened version of a piece that was already in the piece tree.")
@@ -713,8 +712,6 @@
(change (PLEN PC)
(IDIFFERENCE DATUM CHOFFSET))
(FSETPC PC PBYTELEN (ITIMES (PBYTESPERCHAR PC)
(PLEN PC)))
(freplace (BTSLOT DLEN) of (\FINDSLOT (FGETPC PC PTREENODE)
PC) with (PLEN PC))
@@ -1104,13 +1101,13 @@
(GLOBALVARS BTVALIDATETAGS)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (8731 56217 (\TEDIT.MAKEPCTB 8741 . 10634) (\TEDIT.UPDATEPCNODES 10636 . 12930) (
\TEDIT.FIRSTPIECE 12932 . 14339) (\TEDIT.DELETETREE 14341 . 17615) (\TEDIT.INSERTTREE 17617 . 20362) (
\TEDIT.LASTPIECE 20364 . 21171) (\TEDIT.PCTOCH 21173 . 23270) (\TEDIT.CHTOPC 23272 . 29449) (
\TEDIT.SET-TOTLEN 29451 . 30239) (\TEDIT.MAKE.VACANT.BTREESLOT 30241 . 36971) (\TEDIT.LINKNEWPIECE
36973 . 38562) (\TEDIT.SPLITPIECE 38564 . 43220) (\TEDIT.INSERTPIECE 43222 . 46494) (
\TEDIT.INSERTPIECES 46496 . 49588) (\TEDIT.DELETEPIECES 49590 . 54100) (\TEDIT.ALIGNEDPIECE 54102 .
56215)) (56245 68568 (\TEDIT.BTVALIDATE 56255 . 57796) (\TEDIT.BTVALIDATE.PRINT 57798 . 59163) (
\TEDIT.CHECK-BTREE 59165 . 61492) (\TEDIT.CHECK-BTREE1 61494 . 67125) (\TEDIT.BTFAIL 67127 . 67549) (
\TEDIT.MATCHPCS 67551 . 68566)))))
(FILEMAP (NIL (8668 56066 (\TEDIT.MAKEPCTB 8678 . 10571) (\TEDIT.UPDATEPCNODES 10573 . 12867) (
\TEDIT.FIRSTPIECE 12869 . 14276) (\TEDIT.DELETETREE 14278 . 17552) (\TEDIT.INSERTTREE 17554 . 20299) (
\TEDIT.LASTPIECE 20301 . 21108) (\TEDIT.PCTOCH 21110 . 23207) (\TEDIT.CHTOPC 23209 . 29386) (
\TEDIT.SET-TOTLEN 29388 . 30176) (\TEDIT.MAKE.VACANT.BTREESLOT 30178 . 36908) (\TEDIT.LINKNEWPIECE
36910 . 38499) (\TEDIT.SPLITPIECE 38501 . 43069) (\TEDIT.INSERTPIECE 43071 . 46343) (
\TEDIT.INSERTPIECES 46345 . 49437) (\TEDIT.DELETEPIECES 49439 . 53949) (\TEDIT.ALIGNEDPIECE 53951 .
56064)) (56094 68417 (\TEDIT.BTVALIDATE 56104 . 57645) (\TEDIT.BTVALIDATE.PRINT 57647 . 59012) (
\TEDIT.CHECK-BTREE 59014 . 61341) (\TEDIT.CHECK-BTREE1 61343 . 66974) (\TEDIT.BTFAIL 66976 . 67398) (
\TEDIT.MATCHPCS 67400 . 68415)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED " 5-Feb-2026 00:39:54" {WMEDLEY}<library>TEDIT>TEDIT-SCREEN.;916 186880
(FILECREATED " 6-May-2026 22:52:37" {MEDLEY}<library>TEDIT>TEDIT-SCREEN.;918 186879
:EDIT-BY rmk
:CHANGES-TO (FNS \TEDIT.FORMATLINE)
:PREVIOUS-DATE "31-Dec-2025 23:10:18" {WMEDLEY}<library>TEDIT>TEDIT-SCREEN.;915)
:PREVIOUS-DATE " 5-Feb-2026 00:39:54" {MEDLEY}<library>TEDIT>TEDIT-SCREEN.;916)
(PRETTYCOMPRINT TEDIT-SCREENCOMS)
@@ -654,6 +654,7 @@
(\TEDIT.FORMATLINE
[LAMBDA (TSTREAM CH#1 LINE REGION IMAGESTREAM FORMATTINGSTATE)
(* ; "Edited 6-May-2026 22:52 by rmk")
(* ; "Edited 5-Feb-2026 00:38 by rmk")
(* ; "Edited 21-Nov-2025 16:36 by rmk")
(* ; "Edited 7-Aug-2025 12:49 by rmk")
@@ -1101,28 +1102,26 @@
(CL:WHEN (EQ CHARSLOT LASTCHARSLOT)
(* ;;
 "If too long, we let it roll over to the next line. Should we put something in the margin??")
(* ;; "If too long, we let it roll over to the next line. ")
(TEDIT.PROMPTPRINT TEXTOBJ "Line too long to format." T)
(RETURN)) finally
(GO $$OUT)) finally
(* ;;
(* ;;
 "Ran out of TEXTLEN (and paragraph). Back up and force a break. Are ASCENT/DESCENT correct?")
(CL:WHEN (AND (EQ PREVSP (PREVCHARSLOT CHARSLOT))
(NULL (CHAR PREVSP)))
(CL:WHEN (AND (EQ PREVSP (PREVCHARSLOT CHARSLOT))
(NULL (CHAR PREVSP)))
(* ;; "The line ended in a space that needs to be resolved. If we coded the end of a space-chain as (CHARCODE SPACE) instead of NIL, maybe this wouldn't be necessary.")
(FILLCHARSLOT PREVSP (CHARCODE SPACE)
(CHARW PREVSP)
CHARLOOKS)
(SETQ PREVSP NIL))
(SETQ CHARSLOT (PREVCHARSLOT CHARSLOT))
(add CHNO -1)
(SETQ DX 0) (* ; "TX is already correct")
(FORCEBREAK))
(FILLCHARSLOT PREVSP (CHARCODE SPACE)
(CHARW PREVSP)
CHARLOOKS)
(SETQ PREVSP NIL))
(SETQ CHARSLOT (PREVCHARSLOT CHARSLOT))
(add CHNO -1)
(SETQ DX 0) (* ; "TX is already correct")
(FORCEBREAK))
(* ;; "End of character loop. ")
@@ -2866,21 +2865,21 @@
(\TEDIT.LINE.TALLP LINE PHEIGHT))))])
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (26200 28416 (\TEDIT.LINEDESCRIPTOR.DEFPRINT 26210 . 28414)) (35870 119724 (
\TEDIT.FORMATLINE 35880 . 71208) (\TEDIT.FORMATLINE.SETUP.PARA 71210 . 76404) (
\TEDIT.FORMATLINE.HORIZONTAL 76406 . 81223) (\TEDIT.FORMATLINE.VERTICAL 81225 . 83676) (
\TEDIT.FORMATLINE.JUSTIFY 83678 . 89699) (\TEDIT.FORMATLINE.TABS 89701 . 97729) (\TEDIT.SCALE.TABS
97731 . 98522) (\TEDIT.FORMATLINE.PURGE.SPACES 98524 . 99951) (\TEDIT.FORMATLINE.FLUSH.SOFTHYPHEN
99953 . 101030) (\TEDIT.FORMATLINE.EMPTY 101032 . 105852) (\TEDIT.FORMATLINE.UPDATELOOKS 105854 .
112035) (\TEDIT.FORMATLINE.LASTLEGAL 112037 . 115487) (\TEDIT.LINES.ABOVE 115489 . 119100) (
\TEDIT.CHNO.TO.YTOP 119102 . 119722)) (120001 140581 (\TEDIT.DISPLAYLINE 120011 . 132521) (
\TEDIT.DISPLAYLINE.TABS 132523 . 135327) (\TEDIT.LINECACHE 135329 . 136057) (\TEDIT.CREATE.LINECACHE
136059 . 136895) (\TEDIT.BLTCHAR 136897 . 139524) (\TEDIT.DIACRITIC.SHIFT 139526 . 140579)) (141196
186857 (\TEDIT.BACKFORMAT 141206 . 143760) (\TEDIT.PREVIOUS.LINEBREAK 143762 . 146565) (
\TEDIT.UPDATE.LINES 146567 . 152873) (\TEDIT.PANE.CREATELINES 152875 . 155165) (
\TEDIT.SUFFIXLINE.CREATE 155167 . 156782) (\TEDIT.LINES.BELOW 156784 . 161394) (\TEDIT.MEASURED.LINES
161396 . 163405) (\TEDIT.VALID.LASTCHNOS 163407 . 167183) (\TEDIT.VALID.NEXTCHNOS 167185 . 170659) (
\TEDIT.LASTVALIDLINE 170661 . 175332) (\TEDIT.NEXTVALIDLINE 175334 . 178304) (
\TEDIT.CLEARPANE.BELOW.LINE 178306 . 180412) (\TEDIT.INSERTLINE 180414 . 181800) (\TEDIT.LINE.BOTTOM
181802 . 185032) (\TEDIT.SHOW.AT.BOTTOMP 185034 . 186144) (\TEDIT.SHOW.AT.TOPP 186146 . 186855)))))
(FILEMAP (NIL (26198 28414 (\TEDIT.LINEDESCRIPTOR.DEFPRINT 26208 . 28412)) (35868 119723 (
\TEDIT.FORMATLINE 35878 . 71207) (\TEDIT.FORMATLINE.SETUP.PARA 71209 . 76403) (
\TEDIT.FORMATLINE.HORIZONTAL 76405 . 81222) (\TEDIT.FORMATLINE.VERTICAL 81224 . 83675) (
\TEDIT.FORMATLINE.JUSTIFY 83677 . 89698) (\TEDIT.FORMATLINE.TABS 89700 . 97728) (\TEDIT.SCALE.TABS
97730 . 98521) (\TEDIT.FORMATLINE.PURGE.SPACES 98523 . 99950) (\TEDIT.FORMATLINE.FLUSH.SOFTHYPHEN
99952 . 101029) (\TEDIT.FORMATLINE.EMPTY 101031 . 105851) (\TEDIT.FORMATLINE.UPDATELOOKS 105853 .
112034) (\TEDIT.FORMATLINE.LASTLEGAL 112036 . 115486) (\TEDIT.LINES.ABOVE 115488 . 119099) (
\TEDIT.CHNO.TO.YTOP 119101 . 119721)) (120000 140580 (\TEDIT.DISPLAYLINE 120010 . 132520) (
\TEDIT.DISPLAYLINE.TABS 132522 . 135326) (\TEDIT.LINECACHE 135328 . 136056) (\TEDIT.CREATE.LINECACHE
136058 . 136894) (\TEDIT.BLTCHAR 136896 . 139523) (\TEDIT.DIACRITIC.SHIFT 139525 . 140578)) (141195
186856 (\TEDIT.BACKFORMAT 141205 . 143759) (\TEDIT.PREVIOUS.LINEBREAK 143761 . 146564) (
\TEDIT.UPDATE.LINES 146566 . 152872) (\TEDIT.PANE.CREATELINES 152874 . 155164) (
\TEDIT.SUFFIXLINE.CREATE 155166 . 156781) (\TEDIT.LINES.BELOW 156783 . 161393) (\TEDIT.MEASURED.LINES
161395 . 163404) (\TEDIT.VALID.LASTCHNOS 163406 . 167182) (\TEDIT.VALID.NEXTCHNOS 167184 . 170658) (
\TEDIT.LASTVALIDLINE 170660 . 175331) (\TEDIT.NEXTVALIDLINE 175333 . 178303) (
\TEDIT.CLEARPANE.BELOW.LINE 178305 . 180411) (\TEDIT.INSERTLINE 180413 . 181799) (\TEDIT.LINE.BOTTOM
181801 . 185031) (\TEDIT.SHOW.AT.BOTTOMP 185033 . 186143) (\TEDIT.SHOW.AT.TOPP 186145 . 186854)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED "16-Feb-2026 00:38:33" {WMEDLEY}<library>TEDIT>TEDIT-SELECTION.;738 162152
(FILECREATED "16-Apr-2026 09:27:41" {WMEDLEY}<library>TEDIT>TEDIT-SELECTION.;741 161623
:EDIT-BY rmk
:CHANGES-TO (FNS \TEDIT.SELPIECES.CHARTRANSFORM)
:CHANGES-TO (FNS \TEDIT.SELPIECES.FROM.STRING)
:PREVIOUS-DATE "14-Jan-2026 14:32:01" {WMEDLEY}<library>tedit>TEDIT-SELECTION.;736)
:PREVIOUS-DATE "10-Apr-2026 09:31:20" {WMEDLEY}<library>TEDIT>TEDIT-SELECTION.;740)
(PRETTYCOMPRINT TEDIT-SELECTIONCOMS)
@@ -2041,7 +2041,8 @@
SPLASTCHAR _ (ffetch (SELPIECES SPLASTCHAR) of SP2])
(\TEDIT.SELPIECES.CHARTRANSFORM
[LAMBDA (SELPIECES CHARFN OBJECTSTOO TSTREAM) (* ; "Edited 16-Feb-2026 00:38 by rmk")
[LAMBDA (SELPIECES CHARFN OBJECTSTOO TSTREAM) (* ; "Edited 10-Apr-2026 09:17 by rmk")
(* ; "Edited 16-Feb-2026 00:38 by rmk")
(* ; "Edited 24-Apr-2025 16:02 by rmk")
(* ; "Edited 20-Apr-2025 23:23 by rmk")
(* ; "Edited 16-Mar-2025 10:03 by rmk")
@@ -2063,7 +2064,7 @@
(STRING.PTYPES (for I CH (STR _ PCONTENTS) from 1 while (SETQ CH (NTHCHARCODE STR I))
do (RPLCHARCODE STR I (APPLY* CHARFN CH (add INDEX 1)
TEXTOBJ))))
(FILE.PTYPES [LET [(STR (ALLOCSTRING (PLEN PC]
(FILE.PTYPES (LET [(STR (ALLOCSTRING (PLEN PC]
(* ;; "This assumes that no file piece has a PLEN greater than \MaxArrayLen characters. We rely on the piece-table reader and writer to guarantee this. If not, ALLOCSTRING will cause an error.")
@@ -2074,13 +2075,9 @@
(if (fetch (STRINGP FATSTRINGP) of STR)
then (FSETPC PC PTYPE FATSTRING.PTYPE)
(FSETPC PC PBYTESPERCHAR 2)
(FSETPC PC PBINABLE NIL)
else (FSETPC PC PTYPE THINSTRING.PTYPE)
(FSETPC PC PBYTESPERCHAR 1)
(FSETPC PC PBINABLE T))
(FSETPC PC PCONTENTS STR)
(FSETPC PC PBYTELEN (ITIMES (PBYTESPERCHAR PC)
(PLEN PC])
(FSETPC PC PBYTESPERCHAR 1))
(FSETPC PC PCONTENTS STR)))
(OBJECT.PTYPE (add INDEX 1)
(CL:WHEN OBJECTSTOO
(FSETPC PC PCONTENTS (APPLY* CHARFN PCONTENTS INDEX))))
@@ -2088,7 +2085,8 @@
SELPIECES])
(\TEDIT.SELPIECES.FROM.STRING
[LAMBDA (STRING TEXTOBJ CHECKFOREOL CHARLOOKS PARALOOKS) (* ; "Edited 28-Jul-2025 23:50 by rmk")
[LAMBDA (STRING TEXTOBJ CHECKFOREOL CHARLOOKS PARALOOKS) (* ; "Edited 10-Apr-2026 09:18 by rmk")
(* ; "Edited 28-Jul-2025 23:50 by rmk")
(* ; "Edited 8-Feb-2025 20:14 by rmk")
(* ; "Edited 20-Mar-2024 10:57 by rmk")
(* ; "Edited 3-Mar-2024 13:00 by rmk")
@@ -2109,12 +2107,10 @@
(CL:WHEN (AND TEXTOBJ (FGETTOBJ TEXTOBJ FORMATTEDP))
(SETQ CHECKFOREOL T))
(LET (FIRSTPIECE EOLPOS (BYTESPERCHAR 1)
(PTYPE THINSTRING.PTYPE)
(PBINABLE T))
(PTYPE THINSTRING.PTYPE))
(SETQ STRING (CONCAT STRING))
(CL:WHEN (fetch (STRINGP FATSTRINGP) of STRING)
(SETQ PTYPE FATSTRING.PTYPE)
(SETQ PBINABLE NIL)
(SETQ BYTESPERCHAR 2))
(if (AND CHECKFOREOL (SETQ EOLPOS (STRPOS (CONSTANT (CHARACTER (CHARCODE EOL)))
STRING)))
@@ -2131,13 +2127,10 @@
PTYPE _ PTYPE
PCONTENTS _ STR
PLEN _ (NCHARS STR)
PBYTELEN _ (ITIMES (NCHARS STR)
BYTESPERCHAR)
PCHARLOOKS _ CHARLOOKS
PPARALOOKS _ PARALOOKS
PPARALAST _ T
PREVPIECE _ PC
PBINABLE _ PBINABLE))
PREVPIECE _ PC))
(CL:WHEN PREVPC (FSETPC PREVPC NEXTPIECE PC))
(SETQ PREVPC PC)
(SETQ EOLPOS (OR (STRPOS (CONSTANT (CHARACTER (CHARCODE EOL)))
@@ -2158,10 +2151,7 @@
PTYPE _ PTYPE
PCONTENTS _ STRING
PLEN _ (NCHARS STRING)
PBYTELEN _ (ITIMES (NCHARS STRING)
BYTESPERCHAR)
PBYTESPERCHAR _ BYTESPERCHAR
PBINABLE _ PBINABLE
PCHARLOOKS _ CHARLOOKS
PPARALOOKS _ PARALOOKS))
(create SELPIECES
@@ -2571,26 +2561,26 @@
(ADDTOVAR LAMA TEDIT.SELPROP)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (15888 17709 (\TEDIT.SELECTION.DEFPRINT 15898 . 17707)) (17746 19251 (
\TEDIT.SET.GLOBAL.SELECTIONS 17756 . 19249)) (19252 25473 (\TEDIT.SELECTED.PIECES 19262 . 20901) (
\TEDIT.FIND.PROTECTED.END 20903 . 22697) (\TEDIT.FIND.PROTECTED.START 22699 . 24682) (
\TEDIT.WORD.BOUND 24684 . 25471)) (25607 59714 (\TEDIT.EXTEND.SEL 25617 . 32857) (\TEDIT.SCAN.LINE
32859 . 44532) (\TEDIT.SCAN.LINE.WORD 44534 . 49527) (\TEDIT.XYTOSEL 49529 . 56867) (\TEDIT.REGIONTYPE
56869 . 57888) (\TEDIT.XYTOSEL.INLINEP 57890 . 58345) (\TEDIT.XYTOSEL.LINE 58347 . 59712)) (59715
73260 (\TEDIT.FIXSEL 59725 . 69102) (\TEDIT.CHTOLINEX 69104 . 73258)) (73261 77465 (
\TEDIT.RESET.EXTEND.PENDING.DELETE 73271 . 74549) (\TEDIT.SET.SEL.LOOKS 74551 . 77463)) (78402 99555 (
\TEDIT.SHOWSEL 78412 . 83388) (\TEDIT.NOSEL 83390 . 83691) (\TEDIT.SEL.OFF 83693 . 84104) (
\TEDIT.SEL.ON 84106 . 84522) (\TEDIT.SHOWSEL.HILIGHT 84524 . 89145) (\TEDIT.UPDATE.SEL 89147 . 93749)
(\TEDIT.CARETLINE 93751 . 94465) (\TEDIT.SEL.L1 94467 . 95150) (\TEDIT.SEL.LN 95152 . 95835) (
\TEDIT.SEL.DELETEDCHARS 95837 . 99553)) (99556 104438 (\TEDIT.COPYSEL 99566 . 102208) (
\TEDIT.SEL.CHANGED? 102210 . 104436)) (104469 118128 (\TEDIT.SELECT.OBJECT 104479 . 109432) (
\TEDIT.SHOWSEL.OBJECT 109434 . 111665) (\TEDIT.CLIP.OBJECT 111667 . 113671) (\TEDIT.OPERATE.OBJECT
113673 . 118126)) (118156 137982 (\TEDIT.SELPIECES 118166 . 122447) (\TEDIT.SELPIECES.COPY 122449 .
124938) (\TEDIT.SELPIECES.CONCAT 124940 . 126819) (\TEDIT.SELPIECES.CHARTRANSFORM 126821 . 130357) (
\TEDIT.SELPIECES.FROM.STRING 130359 . 135617) (\TEDIT.SELPIECES.TO.STRING 135619 . 137980)) (138035
161983 (TEDIT.XYTOCH 138045 . 140621) (TEDIT.SELPROP 140623 . 144900) (TEDIT.GETPOINT 144902 . 146822)
(TEDIT.GETSEL 146824 . 147700) (TEDIT.GETSEL.PARA 147702 . 148651) (TEDIT.SCANSEL 148653 . 149601) (
TEDIT.SET.SEL.LOOKS 149603 . 151088) (TEDIT.SETSEL 151090 . 156008) (TEDIT.SHOWSEL 156010 . 157874) (
TEDIT.SEL.AS.STRING 157876 . 160361) (TEDIT.SEL.AS.SEXPR 160363 . 161649) (TEDIT.SELECTALL 161651 .
161981)))))
(FILEMAP (NIL (15886 17707 (\TEDIT.SELECTION.DEFPRINT 15896 . 17705)) (17744 19249 (
\TEDIT.SET.GLOBAL.SELECTIONS 17754 . 19247)) (19250 25471 (\TEDIT.SELECTED.PIECES 19260 . 20899) (
\TEDIT.FIND.PROTECTED.END 20901 . 22695) (\TEDIT.FIND.PROTECTED.START 22697 . 24680) (
\TEDIT.WORD.BOUND 24682 . 25469)) (25605 59712 (\TEDIT.EXTEND.SEL 25615 . 32855) (\TEDIT.SCAN.LINE
32857 . 44530) (\TEDIT.SCAN.LINE.WORD 44532 . 49525) (\TEDIT.XYTOSEL 49527 . 56865) (\TEDIT.REGIONTYPE
56867 . 57886) (\TEDIT.XYTOSEL.INLINEP 57888 . 58343) (\TEDIT.XYTOSEL.LINE 58345 . 59710)) (59713
73258 (\TEDIT.FIXSEL 59723 . 69100) (\TEDIT.CHTOLINEX 69102 . 73256)) (73259 77463 (
\TEDIT.RESET.EXTEND.PENDING.DELETE 73269 . 74547) (\TEDIT.SET.SEL.LOOKS 74549 . 77461)) (78400 99553 (
\TEDIT.SHOWSEL 78410 . 83386) (\TEDIT.NOSEL 83388 . 83689) (\TEDIT.SEL.OFF 83691 . 84102) (
\TEDIT.SEL.ON 84104 . 84520) (\TEDIT.SHOWSEL.HILIGHT 84522 . 89143) (\TEDIT.UPDATE.SEL 89145 . 93747)
(\TEDIT.CARETLINE 93749 . 94463) (\TEDIT.SEL.L1 94465 . 95148) (\TEDIT.SEL.LN 95150 . 95833) (
\TEDIT.SEL.DELETEDCHARS 95835 . 99551)) (99554 104436 (\TEDIT.COPYSEL 99564 . 102206) (
\TEDIT.SEL.CHANGED? 102208 . 104434)) (104467 118126 (\TEDIT.SELECT.OBJECT 104477 . 109430) (
\TEDIT.SHOWSEL.OBJECT 109432 . 111663) (\TEDIT.CLIP.OBJECT 111665 . 113669) (\TEDIT.OPERATE.OBJECT
113671 . 118124)) (118154 137453 (\TEDIT.SELPIECES 118164 . 122445) (\TEDIT.SELPIECES.COPY 122447 .
124936) (\TEDIT.SELPIECES.CONCAT 124938 . 126817) (\TEDIT.SELPIECES.CHARTRANSFORM 126819 . 130189) (
\TEDIT.SELPIECES.FROM.STRING 130191 . 135088) (\TEDIT.SELPIECES.TO.STRING 135090 . 137451)) (137506
161454 (TEDIT.XYTOCH 137516 . 140092) (TEDIT.SELPROP 140094 . 144371) (TEDIT.GETPOINT 144373 . 146293)
(TEDIT.GETSEL 146295 . 147171) (TEDIT.GETSEL.PARA 147173 . 148122) (TEDIT.SCANSEL 148124 . 149072) (
TEDIT.SET.SEL.LOOKS 149074 . 150559) (TEDIT.SETSEL 150561 . 155479) (TEDIT.SHOWSEL 155481 . 157345) (
TEDIT.SEL.AS.STRING 157347 . 159832) (TEDIT.SEL.AS.SEXPR 159834 . 161120) (TEDIT.SELECTALL 161122 .
161452)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED "16-Feb-2026 12:40:44" {WMEDLEY}<library>tedit>TEDIT-STREAM.;944 193110
(FILECREATED " 1-May-2026 08:15:56" {MEDLEY}<library>tedit>TEDIT-STREAM.;956 190971
:EDIT-BY rmk
:CHANGES-TO (FNS \TEDIT.STREAMINIT)
:CHANGES-TO (RECORDS PIECE)
:PREVIOUS-DATE "16-Feb-2026 09:39:00" {WMEDLEY}<library>tedit>TEDIT-STREAM.;943)
:PREVIOUS-DATE "26-Apr-2026 23:46:38" {MEDLEY}<library>tedit>TEDIT-STREAM.;955)
(PRETTYCOMPRINT TEDIT-STREAMCOMS)
@@ -14,8 +14,8 @@
(RPAQQ TEDIT-STREAMCOMS
[(DECLARE%: EVAL@COMPILE DONTCOPY
(EXPORT (RECORDS PIECE TEXTOBJ TEXTSTREAM)
(MACROS NEXTPIECE PREVPIECE PLEN PLAST PTYPE PCONTENTS PCHARLOOKS PCHARSET
PPARALOOKS PPARALAST PFPOS PBYTELEN PNEW PBINABLE PBYTESPERCHAR POBJ)
(MACROS NEXTPIECE PREVPIECE PLEN PLAST PTYPE PCONTENTS PCHARLOOKS PPARALOOKS
PPARALAST PFPOS PBYTELEN PNEW PBYTESPERCHAR POBJ)
(MACROS SETPC FSETPC GETPC FGETPC)
(MACROS THINPIECEP)
(MACROS VISIBLEPIECEP \NEXT.VISIBLE.PIECE \PREV.VISIBLE.PIECE)
@@ -94,8 +94,8 @@
PCONTENTS (* ; "The background source of data for this piece (stream, string, block, object, depending on the PTYPE).")
(PTYPE BITS 4) (* ;
 "How the characters are delivered: thinfile, fatstring, object, substream")
PBYTELEN (* ;
 "Length of this character piece in bytes. PBYTELEN = PLEN*PBYTESPERCHAR")
NIL (* ;
 "Was PBYTELEN: Length of this character piece in bytes. PBYTELEN = PLEN*PBYTESPERCHAR")
PFPOS (* ;
 "The FILEPTR of the start of the piece in the file")
PLEN (* ;
@@ -111,20 +111,18 @@
(PNEW FLAG) (* ;
 "This text is new here; used by the tentative edit system, and anyone else interested.")
(NIL FLAG) (* ; "Was PFATP")
(PBINABLE FLAG) (* ;
 "8-bit bytes are binable (THINSTRING and THINFILE) ")
(NIL FLAG)
(PTREENODE XPOINTER) (* ;
 "Points to the PCTB tree-node that contains this piece.")
(PCHARSET BYTE) (* ;
 "High-order charset for FATFILE1 pieces")
(PUTF8BYTESPERCHAR BYTE)) (* ;
 "The number of bytes in the UTF-8 encoding of all the Unicode characters in this piece")
(NIL BYTE) (* ;
 "Was PCHARSET: High-order charset for FATFILE1 pieces")
NIL) (* ; "Was PUTF8BYTESPERCHAR: The number of bytes in the UTF-8 encoding of all the Unicode characters in this piece. But this just duplicates PBYTESPERCHAR for UTF-8 pieces")
[ACCESSFNS ((POBJ (AND (EQ OBJECT.PTYPE (PTYPE DATUM))
(type? IMAGEOBJ (PCONTENTS DATUM))
(PCONTENTS DATUM))
(AND (EQ OBJECT.PTYPE (PTYPE DATUM))
(SETPC DATUM PCONTENTS NEWVALUE]
PFPOS _ 0 PLEN _ 0 PBYTELEN _ 0)
PFPOS _ 0 PLEN _ 0)
(DATATYPE TEXTOBJ (
(* ;;
@@ -294,7 +292,7 @@
(/DECLAREDATATYPE 'PIECE
'(POINTER (BITS 4)
POINTER POINTER POINTER POINTER FULLXPOINTER POINTER POINTER FLAG POINTER FLAG FLAG
FLAG XPOINTER BYTE BYTE)
FLAG XPOINTER BYTE POINTER)
'((PIECE 0 POINTER)
(PIECE 0 (BITS . 3))
(PIECE 2 POINTER)
@@ -311,8 +309,8 @@
(PIECE 16 (FLAGBITS . 32))
(PIECE 18 XPOINTER)
(PIECE 20 (BITS . 7))
(PIECE 20 (BITS . 135)))
'22)
(PIECE 22 POINTER))
'24)
(/DECLAREDATATYPE 'TEXTOBJ
'(POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER FLAG FLAG POINTER
@@ -405,9 +403,6 @@
(PUTPROPS PCHARLOOKS MACRO ((PC)
(ffetch (PIECE PCHARLOOKS) of PC)))
(PUTPROPS PCHARSET MACRO ((PC)
(ffetch (PIECE PCHARSET) of PC)))
(PUTPROPS PPARALOOKS MACRO ((PC)
(ffetch (PIECE PPARALOOKS) of PC)))
@@ -417,15 +412,13 @@
(PUTPROPS PFPOS MACRO ((PC)
(ffetch (PIECE PFPOS) of PC)))
(PUTPROPS PBYTELEN MACRO ((PC)
(ffetch (PIECE PBYTELEN) of PC)))
(PUTPROPS PBYTELEN MACRO (OPENLAMBDA (PC)
(ITIMES (ffetch (PIECE PLEN) of PC)
(ffetch (PIECE PBYTESPERCHAR) of PC))))
(PUTPROPS PNEW MACRO ((PC)
(ffetch (PIECE PNEW) of PC)))
(PUTPROPS PBINABLE MACRO ((PC)
(ffetch (PIECE PBINABLE) of PC)))
(PUTPROPS PBYTESPERCHAR MACRO ((PC)
(ffetch (PIECE PBYTESPERCHAR) of PC)))
@@ -454,7 +447,7 @@
(SELECTC (PTYPE PC)
(THIN.PTYPES T)
(UTF8.PTYPE (EQ 1 (FGETPC PC PUTF8BYTESPERCHAR)))
(UTF8.PTYPE (EQ 1 (FGETPC PC PBYTESPERCHAR)))
NIL)))
)
(DECLARE%: EVAL@COMPILE
@@ -517,7 +510,6 @@
(RPAQQ PTYPES
((THINFILE.PTYPE 0)
(FATFILE1.PTYPE 1)
(FATFILE2.PTYPE 2)
(THINSTRING.PTYPE 3)
(FATSTRING.PTYPE 4)
@@ -527,18 +519,15 @@
(UTF16BE.PTYPE 8)
(UTF16LE.PTYPE 9)
(UTF8.PTYPE 11)
(FILE.PTYPES (LIST THINFILE.PTYPE FATFILE1.PTYPE FATFILE2.PTYPE UTF8.PTYPE UTF16BE.PTYPE
UTF16LE.PTYPE))
(FILE.PTYPES (LIST THINFILE.PTYPE FATFILE2.PTYPE UTF8.PTYPE UTF16BE.PTYPE UTF16LE.PTYPE))
(STRING.PTYPES (LIST THINSTRING.PTYPE FATSTRING.PTYPE))
(BINABLE.PTYPES (LIST THINFILE.PTYPE THINSTRING.PTYPE))
(THIN.PTYPES (LIST THINFILE.PTYPE THINSTRING.PTYPE))
(FAT.PTYPES (LIST FATFILE2.PTYPE FATSTRING.PTYPE FATFILE1.PTYPE))))
(FAT.PTYPES (LIST FATFILE2.PTYPE FATSTRING.PTYPE))))
(DECLARE%: EVAL@COMPILE
(RPAQQ THINFILE.PTYPE 0)
(RPAQQ FATFILE1.PTYPE 1)
(RPAQQ FATFILE2.PTYPE 2)
(RPAQQ THINSTRING.PTYPE 3)
@@ -557,8 +546,7 @@
(RPAQQ UTF8.PTYPE 11)
(RPAQ FILE.PTYPES (LIST THINFILE.PTYPE FATFILE1.PTYPE FATFILE2.PTYPE UTF8.PTYPE UTF16BE.PTYPE
UTF16LE.PTYPE))
(RPAQ FILE.PTYPES (LIST THINFILE.PTYPE FATFILE2.PTYPE UTF8.PTYPE UTF16BE.PTYPE UTF16LE.PTYPE))
(RPAQ STRING.PTYPES (LIST THINSTRING.PTYPE FATSTRING.PTYPE))
@@ -566,11 +554,10 @@
(RPAQ THIN.PTYPES (LIST THINFILE.PTYPE THINSTRING.PTYPE))
(RPAQ FAT.PTYPES (LIST FATFILE2.PTYPE FATSTRING.PTYPE FATFILE1.PTYPE))
(RPAQ FAT.PTYPES (LIST FATFILE2.PTYPE FATSTRING.PTYPE))
(CONSTANTS (THINFILE.PTYPE 0)
(FATFILE1.PTYPE 1)
(FATFILE2.PTYPE 2)
(THINSTRING.PTYPE 3)
(FATSTRING.PTYPE 4)
@@ -580,12 +567,11 @@
(UTF16BE.PTYPE 8)
(UTF16LE.PTYPE 9)
(UTF8.PTYPE 11)
(FILE.PTYPES (LIST THINFILE.PTYPE FATFILE1.PTYPE FATFILE2.PTYPE UTF8.PTYPE UTF16BE.PTYPE
UTF16LE.PTYPE))
(FILE.PTYPES (LIST THINFILE.PTYPE FATFILE2.PTYPE UTF8.PTYPE UTF16BE.PTYPE UTF16LE.PTYPE))
(STRING.PTYPES (LIST THINSTRING.PTYPE FATSTRING.PTYPE))
(BINABLE.PTYPES (LIST THINFILE.PTYPE THINSTRING.PTYPE))
(THIN.PTYPES (LIST THINFILE.PTYPE THINSTRING.PTYPE))
(FAT.PTYPES (LIST FATFILE2.PTYPE FATSTRING.PTYPE FATFILE1.PTYPE)))
(FAT.PTYPES (LIST FATFILE2.PTYPE FATSTRING.PTYPE)))
)
(DECLARE%: DOEVAL@COMPILE DONTCOPY
@@ -599,7 +585,7 @@
(/DECLAREDATATYPE 'PIECE
'(POINTER (BITS 4)
POINTER POINTER POINTER POINTER FULLXPOINTER POINTER POINTER FLAG POINTER FLAG FLAG
FLAG XPOINTER BYTE BYTE)
FLAG XPOINTER BYTE POINTER)
'((PIECE 0 POINTER)
(PIECE 0 (BITS . 3))
(PIECE 2 POINTER)
@@ -616,8 +602,8 @@
(PIECE 16 (FLAGBITS . 32))
(PIECE 18 XPOINTER)
(PIECE 20 (BITS . 7))
(PIECE 20 (BITS . 135)))
'22)
(PIECE 22 POINTER))
'24)
(/DECLAREDATATYPE 'TEXTOBJ
'(POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER FLAG FLAG POINTER
@@ -697,6 +683,10 @@
(\TEDIT.TEXTBIN
[LAMBDA (TSTREAM)
(* ;; "Edited 9-Apr-2026 00:06 by rmk")
(* ;; "Edited 7-Apr-2026 09:57 by rmk")
(* ;; "Edited 13-Oct-2025 17:16 by rmk")
(* ;; "Edited 21-Oct-2024 00:26 by rmk")
@@ -818,18 +808,6 @@
(\TEDIT.INSTALL.FILEBUFFER TSTREAM
(ffetch (TEXTSTREAM PCCHARSLEFT)
of TSTREAM)))))
(FATFILE1.PTYPE
(PROG1 (create WORD
HIBYTE _ (PCHARSET PC)
LOBYTE _ (BIN (PCONTENTS PC)))
(add (ffetch (STREAM COFFSET) of TSTREAM)
1)
(CL:WHEN (\ENDOFBUFFERP TSTREAM)
(\TEDIT.INSTALL.FILEBUFFER TSTREAM (ffetch
(TEXTSTREAM
PCCHARSLEFT
)
of TSTREAM)))))
(THINFILE.PTYPE (* ;
 "Fall through when the underlying stream is not binable")
(PROG1 (BIN (PCONTENTS PC))
@@ -848,7 +826,8 @@
(\TEDIT.THELP "\TEXTBIN UNKNOWN PTYPE" (PTYPE PC])
(\TEDIT.TEXTPEEKBIN
[LAMBDA (TSTREAM NOERROR) (* ; "Edited 21-Oct-2024 00:33 by rmk")
[LAMBDA (TSTREAM NOERROR) (* ; "Edited 9-Apr-2026 00:06 by rmk")
(* ; "Edited 21-Oct-2024 00:33 by rmk")
(* ; "Edited 19-Mar-2024 19:14 by rmk")
(* ; "Edited 16-Mar-2024 12:44 by rmk")
(* ; "Edited 1-Feb-2024 11:13 by rmk")
@@ -911,10 +890,6 @@
'OBJECTBYTE)
PCONTENTS))
(UTF8.PTYPE (UTF8.PEEKCCODEFN PCONTENTS))
(FATFILE1.PTYPE
(create WORD
HIBYTE _ (PCHARSET PC)
LOBYTE _ (\PEEKBIN PCONTENTS)))
(SUBSTREAM.PTYPE (* ; "A substream stored as an object")
(\PEEKBIN (IMAGEOBJPROP PCONTENTS 'SUBSTREAM)))
(\TEDIT.THELP "UNKNOWN PIECE TYPE")))
@@ -923,7 +898,8 @@
else (STREAMOP 'ENDOFSTREAMOP TSTREAM TSTREAM])
(\TEDIT.TEXTBACKFILEPTR
[LAMBDA (TSTREAM) (* ; "Edited 16-Feb-2026 08:54 by rmk")
[LAMBDA (TSTREAM) (* ; "Edited 9-Apr-2026 00:07 by rmk")
(* ; "Edited 16-Feb-2026 08:54 by rmk")
(* ; "Edited 21-Oct-2024 00:33 by rmk")
(* ; "Edited 1-Feb-2024 11:25 by rmk")
(* ; "Edited 5-Jan-2024 17:57 by rmk")
@@ -1008,10 +984,6 @@
'OBJECTBYTE)
(PCONTENTS PC)))
(UTF8.PTYPE (UTF8.PEEKCCODEFN (PCONTENTS PC)))
(FATFILE1.PTYPE
(LOGOR (LLSH (PCHARSET PC)
8)
(\PEEKBIN (PCONTENTS PC))))
(SUBSTREAM.PTYPE (* ; "A substream stored as an object")
(BIN (IMAGEOBJPROP (PCONTENTS PC)
'SUBSTREAM)))
@@ -1760,7 +1732,8 @@
(DEFINEQ
(\TEDIT.STREAMINIT
[LAMBDA NIL (* ; "Edited 16-Feb-2026 12:40 by rmk")
[LAMBDA NIL (* ; "Edited 24-Feb-2026 23:38 by rmk")
(* ; "Edited 16-Feb-2026 12:40 by rmk")
(* ; "Edited 26-Jan-2026 16:06 by rmk")
(* ; "Edited 23-Sep-2025 21:03 by rmk")
(* ; "Edited 20-Sep-2025 08:48 by rmk")
@@ -1823,7 +1796,7 @@
(FUNCTION \TEDIT.TEXTBACKCCODEFN)
(FUNCTION \TEDIT.TEXTOUTCHARFN)
(FUNCTION \TEDIT.TEXTFORMATBYTESTREAM)
'CR NIL (FUNCTION \TEDIT.TEXTFORMATBYTESTRING))
'CR T (FUNCTION \TEDIT.TEXTFORMATBYTESTRING))
(* ;; "Support for error handling: The old error handler for the stream-not-open error. ")
@@ -2277,7 +2250,8 @@
(IDIFFERENCE N START-OF-PIECE)))])
(\TEDIT.PIECE.NTHCHARCODE
[LAMBDA (PC OFFSET) (* ; "Edited 15-Feb-2026 14:31 by rmk")
[LAMBDA (PC OFFSET) (* ; "Edited 9-Apr-2026 00:06 by rmk")
(* ; "Edited 15-Feb-2026 14:31 by rmk")
(* ; "Edited 24-Apr-2025 16:04 by rmk")
(* ; "Edited 21-Oct-2024 00:26 by rmk")
(* ; "Edited 29-Apr-2024 08:46 by rmk")
@@ -2304,14 +2278,6 @@
OFFSET))
(PROG1 (BIN PCONTENTS)
(\SETFILEPTR PCONTENTS FILEPOS)))
(FATFILE1.PTYPE
(SETQ FILEPOS (\GETFILEPTR PCONTENTS))
(\SETFILEPTR PCONTENTS (IPLUS (PFPOS PC)
OFFSET))
(PROG1 (create WORD
HIBYTE _ (PCHARSET PC)
LOBYTE _ (BIN PCONTENTS))
(\SETFILEPTR PCONTENTS FILEPOS)))
(FATFILE2.PTYPE
(SETQ FILEPOS (\GETFILEPTR PCONTENTS))
(\SETFILEPTR PCONTENTS (IPLUS (PFPOS PC)
@@ -2359,7 +2325,8 @@
TSTREAM))])
(\TEDIT.PIECE.RPLCHARCODE
[LAMBDA (TEXTOBJ PC OFFSET NEWCHARCODE NEWCHARLOOKS) (* ; "Edited 16-Feb-2026 08:41 by rmk")
[LAMBDA (TEXTOBJ PC OFFSET NEWCHARCODE NEWCHARLOOKS) (* ; "Edited 10-Apr-2026 09:32 by rmk")
(* ; "Edited 16-Feb-2026 08:41 by rmk")
(* ; "Edited 28-Jul-2025 23:38 by rmk")
(* ; "Edited 24-Apr-2025 16:30 by rmk")
(* ; "Edited 20-Apr-2025 13:25 by rmk")
@@ -2393,10 +2360,7 @@
(CL:WHEN (AND (EQ THINSTRING.PTYPE (PTYPE PC))
(IGREATERP NEWCHARCODE \MAXTHINCHAR))
(FSETPC PC PTYPE FATSTRING.PTYPE)
(FSETPC PC PBINABLE NIL)
(FSETPC PC PBYTESPERCHAR 2)
(FSETPC PC PBYTELEN (UNFOLD (PLEN PC)
2)))
(FSETPC PC PBYTESPERCHAR 2))
elseif [AND (IMAGEOBJP NEWCHARCODE)
(EQ OBJECT.PTYPE (PTYPE PC))
(OR (NULL NEWCHARLOOKS)
@@ -2425,24 +2389,17 @@
(SETQ OLDCHAR (\TEDIT.PIECE.NTHCHARCODE PC 0))
(if (IMAGEOBJP NEWCHARCODE)
then (FSETPC PC PBINABLE NIL)
(FSETPC PC PCONTENTS NEWCHARCODE)
then (FSETPC PC PCONTENTS NEWCHARCODE)
(FSETPC PC PTYPE OBJECT.PTYPE)
(FSETPC PC PBYTESPERCHAR NIL) (* ; "Doesn't make sense for objects")
(FSETPC PC PBYTELEN NIL)
else (FSETPC PC PCONTENTS (MKSTRING (CHARACTER NEWCHARCODE)))
(* ;
 "Use the extend-string in INSERTCH for repeated calls?")
(if (IGREATERP NEWCHARCODE \MAXTHINCHAR)
then (FSETPC PC PTYPE FATSTRING.PTYPE)
(FSETPC PC PBINABLE NIL)
(FSETPC PC PBYTESPERCHAR 2)
(FSETPC PC PBYTELEN 2)
else (FSETPC PC PTYPE THINSTRING.PTYPE)
(FSETPC PC PBINABLE T)
(FSETPC PC PBYTESPERCHAR 1)
(FSETPC PC PBYTELEN 1)
(FSETPC PC PCHARSET 0)))
(FSETPC PC PBYTESPERCHAR 1)))
(FSETPC PC PFPOS NIL)
(CL:WHEN NEWCHARLOOKS
(FSETPC PC PCHARLOOKS (CL:IF (FONTP NEWCHARLOOKS)
@@ -2546,7 +2503,8 @@
T)])
(\TEDIT.INSERTCH
[LAMBDA (CH CH# TEXTOBJ PARALAST) (* ; "Edited 26-Jul-2025 21:13 by rmk")
[LAMBDA (CH CH# TEXTOBJ PARALAST) (* ; "Edited 10-Apr-2026 09:46 by rmk")
(* ; "Edited 26-Jul-2025 21:13 by rmk")
(* ; "Edited 26-Mar-2025 00:29 by rmk")
(* ; "Edited 22-Nov-2024 13:48 by rmk")
(* ; "Edited 22-Sep-2024 12:32 by rmk")
@@ -2634,14 +2592,9 @@
PNEW _ T))
(SELECTC INSERTPTYPE
(THINSTRING.PTYPE
(FSETPC PREVPC PBYTESPERCHAR 1)
(FSETPC PREVPC PBYTELEN ILEN)
(FSETPC PREVPC PBINABLE T)
(FSETPC PREVPC PCHARSET 0))
(FATSTRING.PTYPE (* ; "PCHARSET is not relevant")
(FSETPC PREVPC PBYTESPERCHAR 2)
(FSETPC PREVPC PBYTELEN (UNFOLD ILEN 2))
(FSETPC PREVPC PBINABLE NIL))
(FSETPC PREVPC PBYTESPERCHAR 1))
(FATSTRING.PTYPE
(FSETPC PREVPC PBYTESPERCHAR 2))
(\TEDIT.THELP "Unexpected PTYPE"))
(\TEDIT.INSERTPIECE PREVPC INSERTPC TEXTOBJ))
@@ -2785,7 +2738,8 @@
INSERTION])
(\TEDIT.INSERTCH.EXTEND
[LAMBDA (PC ILEN TEXTOBJ) (* ; "Edited 16-Mar-2024 09:56 by rmk")
[LAMBDA (PC ILEN TEXTOBJ) (* ; "Edited 9-Apr-2026 13:24 by rmk")
(* ; "Edited 16-Mar-2024 09:56 by rmk")
(* ; "Edited 21-Jan-2024 14:09 by rmk")
(* ; "Edited 12-Apr-2023 09:37 by rmk")
(* ; "Edited 1-Sep-2022 08:26 by rmk")
@@ -2796,8 +2750,6 @@
(add (PLEN PC)
ILEN)
(FSETPC PC PBYTELEN (ITIMES (PLEN PC)
(PBYTESPERCHAR PC)))
(add (ffetch (STRINGP LENGTH) of (PCONTENTS PC))
ILEN)
(add (ffetch (BTSLOT DLEN) of (\FINDSLOT (ffetch (PIECE PTREENODE) of PC)
@@ -2836,7 +2788,8 @@
(DEFINEQ
(\TEDIT.INSTALL.PIECE
[LAMBDA (TSTREAM PC CHOFFSET) (* ; "Edited 21-Oct-2024 00:26 by rmk")
[LAMBDA (TSTREAM PC CHOFFSET) (* ; "Edited 26-Apr-2026 23:46 by rmk")
(* ; "Edited 21-Oct-2024 00:26 by rmk")
(* ; "Edited 18-May-2024 22:39 by rmk")
(* ; "Edited 9-May-2024 22:34 by rmk")
(* ; "Edited 18-Mar-2024 22:26 by rmk")
@@ -2891,7 +2844,11 @@
PLEN)))
(OBJECT.PTYPE (freplace (STREAM CBUFSIZE) of TSTREAM with 1))
NIL)
(freplace (STREAM BINABLE) of TSTREAM with (PBINABLE PC))
(* ;; "Would work for an ASCII. PTYPE or 1-byte UTF-8, except for MCCS/UNICODE differences.")
[freplace (STREAM BINABLE) of TSTREAM with (OR (EQ THINFILE.PTYPE (PTYPE PC))
(EQ THINSTRING.PTYPE (PTYPE PC]
(freplace (TEXTSTREAM STARTINGCOFFSET) of TSTREAM with (ffetch (STREAM COFFSET)
of TSTREAM))
(freplace (TEXTSTREAM PCCHARSLEFT) of TSTREAM with PCCHARSLEFT)
@@ -3127,33 +3084,33 @@
(ADDTOVAR LAMA TEXTPROP)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (36667 67629 (\TEDIT.TEXTBIN 36677 . 47470) (\TEDIT.TEXTPEEKBIN 47472 . 53022) (
\TEDIT.TEXTBACKFILEPTR 53024 . 58800) (\TEDIT.TEXTBOUT 58802 . 63419) (\TEDIT.INSTALL.FILEBUFFER 63421
. 67627)) (68527 72818 (\TEDIT.TEXTOUTCHARFN 68537 . 70093) (\TEDIT.TEXTINCCODEFN 70095 . 70834) (
\TEDIT.TEXTBACKCCODEFN 70836 . 71428) (\TEDIT.TEXTFORMATBYTESTREAM 71430 . 72267) (
\TEDIT.TEXTFORMATBYTESTRING 72269 . 72816)) (72865 84940 (OPENTEXTSTREAM 72875 . 79851) (
COPYTEXTSTREAM 79853 . 84163) (TEDIT.STREAMCHANGEDP 84165 . 84467) (TXTFILE 84469 . 84938)) (84941
108146 (\TEDIT.REOPENTEXTSTREAM 84951 . 86303) (\TEDIT.OPENTEXTSTREAM.PIECES 86305 . 91233) (
\TEDIT.OPENTEXTSTREAM.PROPS 91235 . 92337) (\TEDIT.OPENTEXTSTREAM.SETUP.SEL 92339 . 97789) (
\TEDIT.OPENTEXTSTREAM.WINDOW 97791 . 100582) (\TEDIT.OPENTEXTSTREAM.DEFAULTLOOKS 100584 . 102523) (
\TEDIT.OPENTEXTFILE 102525 . 104657) (\TEDIT.CREATE.TEXTSTREAM 104659 . 105806) (\TEDIT.REOPEN.STREAM
105808 . 108144)) (108147 116372 (\TEDIT.STREAMINIT 108157 . 116189) (TEDIT.IMAGESTREAM.OPEN 116191 .
116370)) (116560 117748 (\TEDIT.TTYBOUT 116570 . 117746)) (117866 139549 (\TEDIT.TEXTCLOSEF 117876 .
119200) (\TEDIT.TEXTDSPFONT 119202 . 120400) (\TEDIT.TEXTEOFP 120402 . 122157) (\TEDIT.TEXTGETEOFPTR
122159 . 122482) (\TEDIT.TEXTSETEOFPTR 122484 . 123771) (\TEDIT.TEXTGETFILEPTR 123773 . 126608) (
\TEDIT.TEXTSETFILEINFO 126610 . 127118) (\TEDIT.TEXTOPENF 127120 . 128051) (\TEDIT.TEXTSETEOF 128053
. 128669) (\TEDIT.TEXTSETFILEPTR 128671 . 130781) (\TEDIT.TEXTDSPXPOSITION 130783 . 133486) (
\TEDIT.TEXTDSPYPOSITION 133488 . 134229) (\TEDIT.TEXTLEFTMARGIN 134231 . 134822) (\TEDIT.TEXTCOLOR
134824 . 135407) (\TEDIT.TEXTRIGHTMARGIN 135409 . 138698) (\TEDIT.TEXTDSPCHARWIDTH 138700 . 139004) (
\TEDIT.TEXTDSPSTRINGWIDTH 139006 . 139312) (\TEDIT.TEXTDSPLINEFEED 139314 . 139547)) (139587 152583 (
\TEDIT.NTHCHARCODE 139597 . 141123) (\TEDIT.PIECE.NTHCHARCODE 141125 . 145033) (\TEDIT.RPLCHARCODE
145035 . 146593) (\TEDIT.PIECE.RPLCHARCODE 146595 . 152228) (\TEDIT.NTHCHARLOOKS 152230 . 152581)) (
153630 174724 (\TEDIT.DELETE.SELPIECES 153640 . 157265) (\TEDIT.INSERTCH 157267 . 165306) (
\TEDIT.INSERTCH.HISTORY 165308 . 168772) (\TEDIT.INSERTEOL 168774 . 170599) (\TEDIT.INSERTCH.INSERTION
170601 . 173438) (\TEDIT.INSERTCH.EXTEND 173440 . 174722)) (174725 176332 (\TEDIT.NEXTCHANGEABLE.CHNO
174735 . 175450) (\TEDIT.LASTCHANGEABLE.CHNO 175452 . 176330)) (176333 180791 (\TEDIT.INSTALL.PIECE
176343 . 180789)) (180829 190295 (TEXTPROP 180839 . 181186) (GETTEXTPROP 181188 . 181432) (PUTTEXTPROP
181434 . 181691) (GETTEXTPROPS 181693 . 182137) (PUTTEXTPROPS 182139 . 183043) (TEXTPROP.ADD 183045
. 183308) (\TEDIT.TEXTPROP 183310 . 190293)) (190296 192673 (\TEDIT.TEXTOBJ.PROPNAMES 190306 . 191565
) (\TEDIT.TEXTOBJ.PROPFETCHFN 191567 . 192083) (\TEDIT.TEXTOBJ.PROPSTOREFN 192085 . 192671)))))
(FILEMAP (NIL (36156 66033 (\TEDIT.TEXTBIN 36166 . 46068) (\TEDIT.TEXTPEEKBIN 46070 . 51495) (
\TEDIT.TEXTBACKFILEPTR 51497 . 57204) (\TEDIT.TEXTBOUT 57206 . 61823) (\TEDIT.INSTALL.FILEBUFFER 61825
. 66031)) (66931 71222 (\TEDIT.TEXTOUTCHARFN 66941 . 68497) (\TEDIT.TEXTINCCODEFN 68499 . 69238) (
\TEDIT.TEXTBACKCCODEFN 69240 . 69832) (\TEDIT.TEXTFORMATBYTESTREAM 69834 . 70671) (
\TEDIT.TEXTFORMATBYTESTRING 70673 . 71220)) (71269 83344 (OPENTEXTSTREAM 71279 . 78255) (
COPYTEXTSTREAM 78257 . 82567) (TEDIT.STREAMCHANGEDP 82569 . 82871) (TXTFILE 82873 . 83342)) (83345
106550 (\TEDIT.REOPENTEXTSTREAM 83355 . 84707) (\TEDIT.OPENTEXTSTREAM.PIECES 84709 . 89637) (
\TEDIT.OPENTEXTSTREAM.PROPS 89639 . 90741) (\TEDIT.OPENTEXTSTREAM.SETUP.SEL 90743 . 96193) (
\TEDIT.OPENTEXTSTREAM.WINDOW 96195 . 98986) (\TEDIT.OPENTEXTSTREAM.DEFAULTLOOKS 98988 . 100927) (
\TEDIT.OPENTEXTFILE 100929 . 103061) (\TEDIT.CREATE.TEXTSTREAM 103063 . 104210) (\TEDIT.REOPEN.STREAM
104212 . 106548)) (106551 114883 (\TEDIT.STREAMINIT 106561 . 114700) (TEDIT.IMAGESTREAM.OPEN 114702 .
114881)) (115071 116259 (\TEDIT.TTYBOUT 115081 . 116257)) (116377 138060 (\TEDIT.TEXTCLOSEF 116387 .
117711) (\TEDIT.TEXTDSPFONT 117713 . 118911) (\TEDIT.TEXTEOFP 118913 . 120668) (\TEDIT.TEXTGETEOFPTR
120670 . 120993) (\TEDIT.TEXTSETEOFPTR 120995 . 122282) (\TEDIT.TEXTGETFILEPTR 122284 . 125119) (
\TEDIT.TEXTSETFILEINFO 125121 . 125629) (\TEDIT.TEXTOPENF 125631 . 126562) (\TEDIT.TEXTSETEOF 126564
. 127180) (\TEDIT.TEXTSETFILEPTR 127182 . 129292) (\TEDIT.TEXTDSPXPOSITION 129294 . 131997) (
\TEDIT.TEXTDSPYPOSITION 131999 . 132740) (\TEDIT.TEXTLEFTMARGIN 132742 . 133333) (\TEDIT.TEXTCOLOR
133335 . 133918) (\TEDIT.TEXTRIGHTMARGIN 133920 . 137209) (\TEDIT.TEXTDSPCHARWIDTH 137211 . 137515) (
\TEDIT.TEXTDSPSTRINGWIDTH 137517 . 137823) (\TEDIT.TEXTDSPLINEFEED 137825 . 138058)) (138098 150332 (
\TEDIT.NTHCHARCODE 138108 . 139634) (\TEDIT.PIECE.NTHCHARCODE 139636 . 143204) (\TEDIT.RPLCHARCODE
143206 . 144764) (\TEDIT.PIECE.RPLCHARCODE 144766 . 149977) (\TEDIT.NTHCHARLOOKS 149979 . 150330)) (
151379 172254 (\TEDIT.DELETE.SELPIECES 151389 . 155014) (\TEDIT.INSERTCH 155016 . 162821) (
\TEDIT.INSERTCH.HISTORY 162823 . 166287) (\TEDIT.INSERTEOL 166289 . 168114) (\TEDIT.INSERTCH.INSERTION
168116 . 170953) (\TEDIT.INSERTCH.EXTEND 170955 . 172252)) (172255 173862 (\TEDIT.NEXTCHANGEABLE.CHNO
172265 . 172980) (\TEDIT.LASTCHANGEABLE.CHNO 172982 . 173860)) (173863 178652 (\TEDIT.INSTALL.PIECE
173873 . 178650)) (178690 188156 (TEXTPROP 178700 . 179047) (GETTEXTPROP 179049 . 179293) (PUTTEXTPROP
179295 . 179552) (GETTEXTPROPS 179554 . 179998) (PUTTEXTPROPS 180000 . 180904) (TEXTPROP.ADD 180906
. 181169) (\TEDIT.TEXTPROP 181171 . 188154)) (188157 190534 (\TEDIT.TEXTOBJ.PROPNAMES 188167 . 189426
) (\TEDIT.TEXTOBJ.PROPFETCHFN 189428 . 189944) (\TEDIT.TEXTOBJ.PROPSTOREFN 189946 . 190532)))))
STOP

Binary file not shown.

View File

@@ -1,13 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED "21-Jan-2026 12:15:57" {WMEDLEY}<library>TEDIT>TEDIT-TFBRAVO.;190 98203
(FILECREATED "10-Apr-2026 09:25:52" {WMEDLEY}<library>tedit>TEDIT-TFBRAVO.;192 97960
:EDIT-BY rmk
:CHANGES-TO (FNS BRAVOFILEP)
(VARS TEDIT-TFBRAVOCOMS)
:CHANGES-TO (FNS \TFBRAVO.INSERT.RUN)
:PREVIOUS-DATE " 7-Sep-2025 11:11:43" {WMEDLEY}<library>TEDIT>TEDIT-TFBRAVO.;187)
:PREVIOUS-DATE " 9-Apr-2026 17:24:28" {WMEDLEY}<library>tedit>TEDIT-TFBRAVO.;191)
(PRETTYCOMPRINT TEDIT-TFBRAVOCOMS)
@@ -1027,7 +1026,8 @@
(\TFBRAVO.INSERT.RUN RUN BSTREAM PARALOOKS TEXTOBJ])
(\TFBRAVO.INSERT.RUN
[LAMBDA (RUN BSTREAM PARALOOKS TEXTOBJ) (* ; "Edited 28-Jul-2025 23:33 by rmk")
[LAMBDA (RUN BSTREAM PARALOOKS TEXTOBJ) (* ; "Edited 10-Apr-2026 09:22 by rmk")
(* ; "Edited 28-Jul-2025 23:33 by rmk")
(* ; "Edited 8-Feb-2025 23:08 by rmk")
(* ; "Edited 17-Mar-2024 12:41 by rmk")
(* ; "Edited 16-Jan-2024 18:28 by rmk")
@@ -1064,17 +1064,11 @@
THINSTRING.PTYPE))
(SETQ PBYTESPERCHAR (CL:IF FATP
2
1))
(SETQ PBINABLE (NOT FATP))
(SETQ PBYTELEN (UNFOLD NCHARS 2))
(SETQ PUTF8BYTESPERCHAR 2))
1)))
else (with PIECE PC (SETQ PCONTENTS BSTREAM)
(SETQ PFPOS RUNSTART)
(SETQ PTYPE THINFILE.PTYPE)
(SETQ PBINABLE T)
(SETQ PBYTESPERCHAR 1)
(SETQ PBYTELEN NCHARS)
(SETQ PUTF8BYTESPERCHAR 2)))
(SETQ PBYTESPERCHAR 1)))
(\TEDIT.INSERTPIECE PC NIL TEXTOBJ)
PC))])
@@ -1571,18 +1565,18 @@
(AND NIL (\TEDIT.NAMEDTAB.INIT))
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (7784 15335 (BRAVOFILEP 7794 . 9981) (TEDITFROMBRAVO 9983 . 15333)) (15610 32026 (
\TFBRAVO.GET.USER.CM 15620 . 18800) (\TFBRAVO.USER.CM.LOOKS 18802 . 20295) (\TFBRAVO.READ.USER.CM
20297 . 24920) (\TFBRAVO.INIT.PARALOOKS 24922 . 27139) (\TFBRAVO.INIT.PAGEFORMAT 27141 . 28021) (
\TFBRAVO.GETPARAMS 28023 . 30877) (\TFBRAVO.FIND.LAST.TRAILER 30879 . 32024)) (32068 52773 (
\TFBRAVO.PARSE.PARA 32078 . 36005) (\TFBRAVO.READ.PARALOOKS 36007 . 42897) (\TFBRAVO.CREATE.RUNS 42899
. 44287) (\TFBRAVO.READ.CHARLOOKS 44289 . 49318) (\TFBRAVO.FONT.FROM.CHARLOOKS 49320 . 50874) (
\TFBRAVO.READNUM? 50876 . 52771)) (52810 63851 (\TFBRAVO.HANDLE.HEADING 52820 . 55547) (
\TFBRAVO.PARSE.PROFILE.PARA 55549 . 63849)) (63894 86228 (\TFBRAVO.INSERT.PARA 63904 . 64745) (
\TFBRAVO.INSERT.RUN 64747 . 68238) (\TFBRAVO.SPLIT.PARA 68240 . 75664) (\TFBRAVO.RUN.TABSPEC 75666 .
80533) (\TFBRAVO.INSTALL.PAGEFORMAT 80535 . 86226)) (86229 90372 (\TFBRAVO.ASSERT 86239 . 86769) (
\TEST.CHARACTER.LOOKS 86771 . 88657) (\TEST.PARAGRAPH.LOOKS 88659 . 90370)) (91382 98037 (
\TFBRAVO.ADD.NAMEDTAB 91392 . 94995) (\TFBRAVO.COPY.NAMEDTAB 94997 . 95445) (\TFBRAVO.PUT.NAMEDTAB
95447 . 95727) (\TFBRAVO.GET.NAMEDTAB 95729 . 96106) (\NAMEDTABNYET 96108 . 96268) (\NAMEDTABSIZE
96270 . 96785) (\NAMEDTABPREPRINT 96787 . 96985) (\TEDIT.NAMEDTAB.INIT 96987 . 98035)))))
(FILEMAP (NIL (7750 15301 (BRAVOFILEP 7760 . 9947) (TEDITFROMBRAVO 9949 . 15299)) (15576 31992 (
\TFBRAVO.GET.USER.CM 15586 . 18766) (\TFBRAVO.USER.CM.LOOKS 18768 . 20261) (\TFBRAVO.READ.USER.CM
20263 . 24886) (\TFBRAVO.INIT.PARALOOKS 24888 . 27105) (\TFBRAVO.INIT.PAGEFORMAT 27107 . 27987) (
\TFBRAVO.GETPARAMS 27989 . 30843) (\TFBRAVO.FIND.LAST.TRAILER 30845 . 31990)) (32034 52739 (
\TFBRAVO.PARSE.PARA 32044 . 35971) (\TFBRAVO.READ.PARALOOKS 35973 . 42863) (\TFBRAVO.CREATE.RUNS 42865
. 44253) (\TFBRAVO.READ.CHARLOOKS 44255 . 49284) (\TFBRAVO.FONT.FROM.CHARLOOKS 49286 . 50840) (
\TFBRAVO.READNUM? 50842 . 52737)) (52776 63817 (\TFBRAVO.HANDLE.HEADING 52786 . 55513) (
\TFBRAVO.PARSE.PROFILE.PARA 55515 . 63815)) (63860 85985 (\TFBRAVO.INSERT.PARA 63870 . 64711) (
\TFBRAVO.INSERT.RUN 64713 . 67995) (\TFBRAVO.SPLIT.PARA 67997 . 75421) (\TFBRAVO.RUN.TABSPEC 75423 .
80290) (\TFBRAVO.INSTALL.PAGEFORMAT 80292 . 85983)) (85986 90129 (\TFBRAVO.ASSERT 85996 . 86526) (
\TEST.CHARACTER.LOOKS 86528 . 88414) (\TEST.PARAGRAPH.LOOKS 88416 . 90127)) (91139 97794 (
\TFBRAVO.ADD.NAMEDTAB 91149 . 94752) (\TFBRAVO.COPY.NAMEDTAB 94754 . 95202) (\TFBRAVO.PUT.NAMEDTAB
95204 . 95484) (\TFBRAVO.GET.NAMEDTAB 95486 . 95863) (\NAMEDTABNYET 95865 . 96025) (\NAMEDTABSIZE
96027 . 96542) (\NAMEDTABPREPRINT 96544 . 96742) (\TEDIT.NAMEDTAB.INIT 96744 . 97792)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "24-Dec-2025 11:22:33" {WMEDLEY}<library>TEDIT>TEDIT-WINDOW.;883 231422
(FILECREATED " 7-Feb-2026 18:53:22" {WMEDLEY}<library>TEDIT>TEDIT-WINDOW.;896 234678
:EDIT-BY rmk
:CHANGES-TO (FNS \TEDIT.MINIMAL.WINDOW.SETUP TEDIT.PROMPTCLEAR TEDIT.PROMPTPRINT)
:CHANGES-TO (FNS TEDIT.PROMPTPRINT)
:PREVIOUS-DATE "15-Nov-2025 01:27:38" {WMEDLEY}<library>tedit>TEDIT-WINDOW.;881)
:PREVIOUS-DATE " 5-Feb-2026 08:24:23" {WMEDLEY}<library>TEDIT>TEDIT-WINDOW.;895)
(PRETTYCOMPRINT TEDIT-WINDOWCOMS)
@@ -458,7 +458,10 @@
WINDOW])
(\TEDIT.WINDOW.GETREGION
[LAMBDA (TSTREAM REGIONTYPE PHEIGHT) (* ; "Edited 25-Oct-2025 10:27 by rmk")
[LAMBDA (TSTREAM REGIONTYPE PHEIGHT) (* ; "Edited 5-Feb-2026 08:24 by rmk")
(* ; "Edited 27-Jan-2026 15:30 by rmk")
(* ; "Edited 25-Jan-2026 20:09 by rmk")
(* ; "Edited 25-Oct-2025 10:27 by rmk")
(* ; "Edited 19-Oct-2025 01:05 by rmk")
(* ; "Edited 14-Apr-2025 00:05 by rmk")
(* ; "Edited 31-Mar-2025 22:43 by rmk")
@@ -466,87 +469,94 @@
(* ; "Edited 18-Mar-2025 21:52 by rmk")
(* ; "Edited 19-Feb-2025 16:48 by rmk")
(* ; "Edited 18-Feb-2025 10:09 by rmk")
(LET ((TEXTOBJ (GETTSTR TSTREAM TEXTOBJ))
[WIDTHOVERHEAD (IPLUS \TEDIT.LINEREGION.WIDTH (TIMES 2 WBorder)
(if (FGETTOBJ TEXTOBJ TXTNOTSPLITTABLE)
then 0
elseif (ILEQ \TEDIT.OP.WIDTH 0)
then
(* ;; "On both sides, for symmetry")
(LET* ((TEXTOBJ (GETTSTR TSTREAM TEXTOBJ))
[WIDTHOVERHEAD (IPLUS \TEDIT.LINEREGION.WIDTH (TIMES 2 WBorder)
(if (FGETTOBJ TEXTOBJ TXTNOTSPLITTABLE)
then 0
elseif (ILEQ \TEDIT.OP.WIDTH 0)
then
(* ;; "On both sides, for symmetry")
\TEDIT.LINEREGION.WIDTH
else
(* ;;
\TEDIT.LINEREGION.WIDTH
else
(* ;;
 "36 to allow for some spacing between the text and the OPS area on the right.")
(IPLUS \TEDIT.OP.WIDTH 36]
[HEIGHTOVERHEAD (IPLUS PHEIGHT (ADD1 (TIMES 2 WBorder))
(FONTPROP WindowTitleDisplayStream 'HEIGHT]
WIDTH HEIGHT)
(IPLUS \TEDIT.OP.WIDTH 36]
[HEIGHTOVERHEAD (IPLUS PHEIGHT (ADD1 (TIMES 2 WBorder))
(FONTPROP WindowTitleDisplayStream 'HEIGHT]
WIDTH HEIGHT)
(* ;; "Explict properties cover content")
(* ;; "Explict properties cover content")
[SETQ WIDTH (OR (GETTEXTPROP TEXTOBJ 'OPENWIDTH)
(for PARALOOKS in (FGETTOBJ TEXTOBJ TXTPARALOOKSLIST)
when (IGREATERP (GETPLOOKS PARALOOKS RIGHTMAR)
0) largest (GETPLOOKS PARALOOKS RIGHTMAR)
finally (RETURN $$EXTREME]
(SETQ HEIGHT (GETTEXTPROP TEXTOBJ 'OPENHEIGHT))
[SETQ WIDTH (OR (GETTEXTPROP TEXTOBJ 'OPENWIDTH)
(for PARALOOKS in (FGETTOBJ TEXTOBJ TXTPARALOOKSLIST)
when (IGREATERP (GETPLOOKS PARALOOKS RIGHTMAR)
0) largest (GETPLOOKS PARALOOKS RIGHTMAR)
finally (RETURN $$EXTREME]
(SETQ HEIGHT (GETTEXTPROP TEXTOBJ 'OPENHEIGHT))
(* ;; "If still no WIDTH or HEIGHT, look at the first 20 lines")
(* ;; "If still no WIDTH or HEIGHT, look at the first 20 lines")
(CL:UNLESS (AND HEIGHT WIDTH)
(for I L (TEXTLEN _ (TEXTLEN TEXTOBJ))
(REG _ (CREATEREGION 0 0 (IDIFFERENCE SCREENWIDTH WIDTHOVERHEAD)
(IDIFFERENCE SCREENHEIGHT HEIGHTOVERHEAD)))
(W _ 0)
(H _ 0)
(CHNO _ 1) from 1 to 20 while (ILEQ CHNO TEXTLEN)
do
(* ;;
(CL:UNLESS (AND HEIGHT WIDTH)
(for I L (TEXTLEN _ (TEXTLEN TEXTOBJ))
(REG _ (CREATEREGION 0 0 (IDIFFERENCE SCREENWIDTH WIDTHOVERHEAD)
(IDIFFERENCE SCREENHEIGHT HEIGHTOVERHEAD)))
(IMAGESTREAM _ (CL:IF (\TEDIT.PRIMARYPANE TSTREAM)
(WINDOWPROP (\TEDIT.PRIMARYPANE TSTREAM)
'DSP)
(DSPCREATE)))
(W _ 0)
(H _ 0)
(CHNO _ 1) from 1 to 20 while (ILESSP CHNO TEXTLEN)
do
(* ;;
 "But we start by saying that the right margin is infinite, so we can find the true width")
(SETQ L (\TEDIT.FORMATLINE TSTREAM CHNO NIL REG))
(SETQ CHNO (FGETLD L LCHARLIM))
(add H (FGETLD L LHEIGHT))
(CL:UNLESS WIDTH
(CL:WHEN (EQ 'LEFT (FGETPLOOKS (FGETLD L LPARALOOKS)
QUAD))
(SETQ L (\TEDIT.FORMATLINE TSTREAM CHNO NIL REG IMAGESTREAM))
(SETQ CHNO (FGETLD L LCHARLIM))
(add H (FGETLD L LHEIGHT))
(CL:UNLESS WIDTH
(CL:WHEN (EQ 'LEFT (FGETPLOOKS (FGETLD L LPARALOOKS)
QUAD))
(* ;;
 "JUSTIFIED, RIGHT and CENTERED involve right margin, which we don't know")
(* ;;
 "JUSTIFIED, RIGHT and CENTERED involve right margin, which we don't know")
(SETQ W (IMAX W (FGETLD L LXLIM)))))
finally (CL:UNLESS (OR WIDTH (EQ W 0)) (* ; "Maybe no lefts?")
(SETQ WIDTH W))
(CL:UNLESS (OR HEIGHT (EQ H 0))
(SETQ HEIGHT H))))
(SETQ W (IMAX W (FGETLD L LXLIM)))))
finally (CL:UNLESS (OR WIDTH (EQ W 0)) (* ; "Maybe no lefts?")
(SETQ WIDTH W))
(CL:UNLESS (OR HEIGHT (EQ H 0))
(SETQ HEIGHT H))))
(* ;; "Minimum sizes")
(* ;; "Minimum sizes: 90 characters by 10 lines")
(SETQ WIDTH (IMAX 200 (OR WIDTH 0)))
(SETQ HEIGHT (IMAX 100 (OR HEIGHT 0)))
(CL:UNLESS WIDTH
[SETQ WIDTH (TIMES 80 (FONTPROP TSTREAM 'AVGCHARWIDTH])
(CL:UNLESS HEIGHT
[SETQ HEIGHT (TIMES 10 (FONTPROP TSTREAM 'HEIGHT])
(* ;; "Allow for the extra stuff")
(* ;; "Allow for the extra stuff")
(add WIDTH WIDTHOVERHEAD)
(add HEIGHT HEIGHTOVERHEAD)
(if (GRAB-TYPED-REGION REGIONTYPE WIDTH HEIGHT 1.1)
else
(* ;; "Maximum new sizes")
(add WIDTH WIDTHOVERHEAD)
(add HEIGHT HEIGHTOVERHEAD)
(if (GRAB-TYPED-REGION REGIONTYPE WIDTH HEIGHT 1.1)
else
(* ;; "Maximum new sizes")
[SETQ WIDTH (IMIN WIDTH (FIXR (FTIMES SCREENWIDTH 0.9]
[SETQ HEIGHT (IMIN HEIGHT (FIXR (FTIMES SCREENHEIGHT 0.9]
(CLRPROMPT) (* ; "System promptwindow")
(printout PROMPTWINDOW "Please specify a " (OR REGIONTYPE "Tedit")
" region")
(CL:WHEN (TXTFILE TSTREAM)
(printout PROMPTWINDOW " for " 2 (GETTEXTPROP TSTREAM 'FILENAME)))
(TERPRI PROMPTWINDOW)
(GETBOXREGION WIDTH HEIGHT])
[SETQ WIDTH (IMIN WIDTH (FIXR (FTIMES SCREENWIDTH 0.9]
[SETQ HEIGHT (IMIN HEIGHT (FIXR (FTIMES SCREENHEIGHT 0.9]
(CLRPROMPT) (* ; "System promptwindow")
(printout PROMPTWINDOW "Please specify a " (OR REGIONTYPE "Tedit")
" region")
(CL:WHEN (TXTFILE TSTREAM)
(printout PROMPTWINDOW " for " 2 (GETTEXTPROP TSTREAM 'FILENAME)))
(TERPRI PROMPTWINDOW)
(GETBOXREGION WIDTH HEIGHT])
(\TEDIT.WINDOW.SETUP
[LAMBDA (PANE TSTREAM PROPS AFTERPANE LCHAR1) (* ; "Edited 6-May-2025 11:44 by rmk")
[LAMBDA (PANE TSTREAM PROPS AFTERPANE LCHAR1) (* ; "Edited 15-Jan-2026 10:35 by rmk")
(* ; "Edited 6-May-2025 11:44 by rmk")
(* ; "Edited 21-Apr-2025 12:02 by rmk")
(* ; "Edited 6-Apr-2025 18:56 by rmk")
(* ; "Edited 5-Apr-2025 14:07 by rmk")
@@ -595,11 +605,12 @@
(\TEDIT.CLEARPANE PANE)
(\TEDIT.SUFFIXLINE.CREATE PANE TSTREAM (\TEDIT.LINES.BELOW NIL PANE TSTREAM))
(CL:WHEN AFTERPANE
(for PANE inpanes (PROGN TEXTOBJ) as L1 on (GETSEL SEL L1) as LN
on (GETSEL SEL LN) when (EQ PANE AFTERPANE) do (push (CDR L1)
NIL)
(push (CDR LN)
NIL)))
(for P inpanes (PROGN TEXTOBJ) as L1 on (GETSEL SEL L1) as LN
on (GETSEL SEL LN) when (EQ P AFTERPANE) do (push (CDR L1)
NIL)
(push (CDR LN)
NIL))
(WINDOWPROP PANE 'PROMPTWINDOW (WINDOWPROP AFTERPANE 'PROMPTWINDOW)))
(FSETSEL SEL HASCARET (NOT (FGETTOBJ TEXTOBJ TXTREADONLY)))
(\TEDIT.FIXSEL SEL TSTREAM (AND AFTERPANE PANE)) (* ;
 "If not fixed, the highlight in the lower pane will disappear")
@@ -775,7 +786,8 @@
(DEFINEQ
(\TEDIT.CURSORMOVEDFN
[LAMBDA (PANE) (* ; "Edited 27-Apr-2025 23:43 by rmk")
[LAMBDA (PANE) (* ; "Edited 14-Jan-2026 00:42 by rmk")
(* ; "Edited 27-Apr-2025 23:43 by rmk")
(* ; "Edited 24-Apr-2025 10:35 by rmk")
(* ; "Edited 19-Apr-2025 22:22 by rmk")
(* ; "Edited 1-Dec-2024 11:55 by rmk")
@@ -792,71 +804,68 @@
(CL:WHEN (fetch (TEXTWINDOW WTEXTSTREAM) of (OR (WINDOWP PANE)
(PANEWINDOW PANE)))
[PROG ((X (LASTMOUSEX PANE))
(Y (LASTMOUSEY PANE))
(TEXTOBJ (PANETEXTOBJ PANE))
(CURSORREG (fetch (TEXTWINDOW CURSORREGION) of (PANEWINDOW PANE)))
LINE LEFT)
(CL:UNLESS (INSIDE? (PANEREGION PANE)
X Y)
(CURSOR T)
(RETURN))
(CL:UNLESS (INSIDE? CURSORREG X Y)
[if [AND (IGEQ X (SETQ LEFT (IDIFFERENCE (PANERIGHT PANE)
\TEDIT.OP.WIDTH)))
(IGEQ Y (IPLUS (PANEBOTTOM PANE)
\TEDIT.OP.BOTTOM))
(NOT (OR (FGETTOBJ TEXTOBJ TXTNOTSPLITTABLE)
(EQ \TEDIT.OP.WIDTH -1]
then
(* ;; "We're in the split region on the right")
[LET ((X (LASTMOUSEX PANE))
(Y (LASTMOUSEY PANE))
(TEXTOBJ (PANETEXTOBJ PANE))
(CURSORREG (fetch (TEXTWINDOW CURSORREGION) of (PANEWINDOW PANE)))
LINE LEFT)
(CL:UNLESS (INSIDE? CURSORREG X Y)
[if [AND (IGEQ X (SETQ LEFT (IDIFFERENCE (PANERIGHT PANE)
\TEDIT.OP.WIDTH)))
(IGEQ Y (IPLUS (PANEBOTTOM PANE)
\TEDIT.OP.BOTTOM))
(NOT (OR (FGETTOBJ TEXTOBJ TXTNOTSPLITTABLE)
(EQ \TEDIT.OP.WIDTH -1]
then
(* ;; "We're in the split region on the right")
(CURSOR \TEDIT.SPLITCURSOR)
(FSETTOBJ TEXTOBJ MOUSEREGION 'PANE)
(CURSOR \TEDIT.SPLITCURSOR)
(FSETTOBJ TEXTOBJ MOUSEREGION 'PANE)
(* ;
 "PANE just signals \TEDIT.BUTTONEVENTFN to do a split operation.")
(replace (REGION LEFT) of CURSORREG with LEFT)
(replace (REGION WIDTH) of CURSORREG with \TEDIT.OP.WIDTH)
else
(* ;; "Not in the split region. Are we in the line-select region on the left? Don't call PANEPREFIX, because that tests for LINEDESCRIPTOR")
(replace (REGION LEFT) of CURSORREG with LEFT)
(replace (REGION WIDTH) of CURSORREG with \TEDIT.OP.WIDTH)
else
(* ;; "Not in the split region. Are we in the line-select region on the left? Don't call PANEPREFIX, because that tests for LINEDESCRIPTOR")
(SETQ LINE (find L inlines (GETPANEPROP (PANEPROPS PANE)
PREFIXLINE)
suchthat (ILEQ (FGETLD L YBOT)
Y)))
(CL:WHEN LINE (* ;
(SETQ LINE (find L inlines (GETPANEPROP (PANEPROPS PANE)
PREFIXLINE)
suchthat (ILEQ (FGETLD L YBOT)
Y)))
(CL:WHEN LINE (* ;
 "The CURSORREGION picks out just LINE")
(replace BOTTOM of CURSORREG with (FGETLD LINE YBOT))
(replace HEIGHT of CURSORREG with (FGETLD LINE LHEIGHT)))
(replace BOTTOM of CURSORREG with (FGETLD LINE YBOT))
(replace HEIGHT of CURSORREG with (FGETLD LINE LHEIGHT)))
(* ;; "The line region gets wider if the paragraph is indented")
(* ;; "The line region gets wider if the paragraph is indented")
(SETQ LEFT (OR (AND LINE (FGETLD LINE LEFTMARGIN))
(IPLUS (PANELEFT PANE)
\TEDIT.LINEREGION.WIDTH)))
(if (ILESSP X LEFT)
then
(* ;; "In left margin; switch to the line-select cursor")
(SETQ LEFT (OR (AND LINE (FGETLD LINE LEFTMARGIN))
(IPLUS (PANELEFT PANE)
\TEDIT.LINEREGION.WIDTH)))
(if (ILESSP X LEFT)
then
(* ;; "In left margin; switch to the line-select cursor")
(CURSOR \TEDIT.LINECURSOR)
(FSETTOBJ TEXTOBJ MOUSEREGION 'LINE)
(replace (REGION LEFT) of CURSORREG with 0)
(replace (REGION WIDTH) of CURSORREG with LEFT)
else
(* ;;
(CURSOR \TEDIT.LINECURSOR)
(FSETTOBJ TEXTOBJ MOUSEREGION 'LINE)
(replace (REGION LEFT) of CURSORREG with 0)
(replace (REGION WIDTH) of CURSORREG with LEFT)
else
(* ;;
 "Not in the line-select region, not in the split region, must be the main text. ")
(CURSOR T)
(FSETTOBJ TEXTOBJ MOUSEREGION 'TEXT)
(replace (REGION LEFT) of CURSORREG with LEFT)
(replace (REGION WIDTH) of CURSORREG with (IDIFFERENCE (PANERIGHT
PANE)
(IPLUS LEFT
(CURSOR T)
(FSETTOBJ TEXTOBJ MOUSEREGION 'TEXT)
(replace (REGION LEFT) of CURSORREG with LEFT)
(replace (REGION WIDTH) of CURSORREG with (IDIFFERENCE (PANERIGHT
PANE)
(IPLUS LEFT
\TEDIT.LINEREGION.WIDTH
])])])
])])])
(\TEDIT.CURSOROUTFN
[LAMBDA (PANE) (* ; "Edited 4-May-2025 14:27 by rmk")
[LAMBDA (PANE) (* ; "Edited 10-Jan-2026 22:49 by rmk")
(* ; "Edited 4-May-2025 14:27 by rmk")
(* ; "Edited 20-Jul-2023 20:32 by rmk")
(* ; "Edited 30-May-91 23:32 by jds")
@@ -1147,7 +1156,9 @@
(DEFINEQ
(\TEDIT.BUTTONEVENTFN
[LAMBDA (PANE) (* ; "Edited 6-May-2025 20:35 by rmk")
[LAMBDA (PANE) (* ; "Edited 15-Jan-2026 00:39 by rmk")
(* ; "Edited 11-Jan-2026 08:30 by rmk")
(* ; "Edited 6-May-2025 20:35 by rmk")
(* ; "Edited 21-Apr-2025 20:19 by rmk")
(* ; "Edited 13-Apr-2025 13:33 by rmk")
(* ; "Edited 6-Apr-2025 18:59 by rmk")
@@ -1187,7 +1198,7 @@
(OLDX _ MIN.SMALLP)
(OLDY _ MIN.SMALLP)
(PREG _ (PANEREGION PANE))
TEXTOBJ CURSEL NEWSEL CUROPERATION NEWOPERATION PENDINGDEL READONLY
TEXTOBJ CURSEL NEWSEL CUROPERATION NEWOPERATION PENDINGDEL READONLY SECSEL
declare (SPECVARS CURSEL) first
(* ;; "Pick off and return from a bunch of peripheral situations, then fall through to the complexities of normal text selection.")
@@ -1215,13 +1226,34 @@
(* ;; "")
(SETQ READONLY (FGETTOBJ TEXTOBJ TXTREADONLY))
(SETQ CUROPERATION 'NORMAL)
(SETQ NEWOPERATION (\TEDIT.BUTTONEVENTFN.GETOPERATION
READONLY NIL))
(CL:UNLESS (SETQ CURSEL (
READONLY NIL))
(* ;; "")
(if (SETQ CURSEL (FGETTOBJ TEXTOBJ SECONDARYSEL))
then (* ;
 "Mouse moved out and came back...and clicked.")
(SETQ CUROPERATION (FGETSEL CURSEL
SELOPERATION))
(SETQ PENDINGDEL (EQ CUROPERATION
'PENDINGDEL))
(CL:UNLESS (EQ NEWOPERATION CUROPERATION)
(* ;
 "Shift keys have changed, turn off old secondary")
(\TEDIT.SEL.OFF TSTREAM CURSEL))
(CL:WHEN (EQ NEWOPERATION 'NORMAL)
(* ; "")
(CL:UNLESS (SETQ CURSEL (
 \TEDIT.BUTTONEVENTFN.CURSEL.INIT
NEWOPERATION TSTREAM))
(RETURN))
NEWOPERATION
TSTREAM))
(RETURN)))
elseif (SETQ CURSEL (
 \TEDIT.BUTTONEVENTFN.CURSEL.INIT
NEWOPERATION TSTREAM))
then (SETQ CUROPERATION 'NORMAL)
else (RETURN))
(SETQ NEWSEL (\TEDIT.COPYSEL CURSEL))
(* ;
 "Gets line-chains and consistent initial looks")
@@ -1230,35 +1262,27 @@
(GETMOUSESTATE) (* ;
 "And get the new mouse and key info")
(\TEDIT.CURSORMOVEDFN PANE)
(SETQ NEWOPERATION (\TEDIT.BUTTONEVENTFN.GETOPERATION READONLY CUROPERATION))
(SETQ NEWOPERATION (\TEDIT.BUTTONEVENTFN.GETOPERATION READONLY CUROPERATION))
(FSETTOBJ TEXTOBJ SECONDARYSEL CURSEL)
(* ;; "We're done if keys and buttons are up")
until (AND (EQ NEWOPERATION 'NORMAL)
(ALLBUTTONSUP)) unless (AND (IEQP OLDX (SETQ X (LASTMOUSEX DS)))
(IEQP OLDY (SETQ Y (LASTMOUSEY DS)))
(EQ CUROPERATION NEWOPERATION))
do
do (CL:UNLESS (INSIDEP (PANEREGION PANE PREG)
X Y) (* ;
 "Left the window, stay in the loop if scrolling")
(CL:UNLESS (IN/SCROLL/BAR? PANE LASTMOUSEX LASTMOUSEY)
(RETURN))
(SCROLL.HANDLER PANE))
(* ;; "")
(* ;; "Polling loop, track the mouse until the buttons and modifier keys come up, i.e. NORMAL Nothing to do until the mouse moves or the operation changes. .")
(* ;; "First and always: CURSEL is ON at this point and matches the display. NEWSEL may not be well-defined.")
(CL:UNLESS (INSIDEP (PANEREGION PANE PREG)
X Y) (* ;
 "The mouse left the window: cleanup and leave. ")
(CL:UNLESS (EQ CUROPERATION 'NORMAL) (* ;
 "Take down the copy/delete/copylooks highlight")
(\TEDIT.SEL.OFF TSTREAM CURSEL)
(\TEDIT.SEL.ON TSTREAM)) (* ; "Go back to original selection?")
(* ;;
 "Scroll if mouse moved to scroll bar (and scroll bar doesn't overlap the window)")
(CL:WHEN (IN/SCROLL/BAR? PANE LASTMOUSEX LASTMOUSEY)
(SCROLL.HANDLER PANE))
(RETURN))
(* ;; "")
(* ;; "Ready to track the selection.")
(SETQ OLDX X)
@@ -1322,9 +1346,12 @@
(* ;; "Out of Polling loop")
(SETTOBJ (FTEXTOBJ TSTREAM)
SECONDARYSEL NIL) (* ;
 "All keys are up, secondary selection is closed")
(CL:UNLESS (FGETSEL NEWSEL SET)
(* ;; ".Here to restore when no valid selection, maybe an unhappy image object?")
(* ;; "Here to restore when no valid selection, maybe an unhappy image object?")
(\TEDIT.SEL.OFF TSTREAM CURSEL) (* ; "Turn off CURSEL")
(\TEDIT.SET.SEL.LOOKS (TEXTSEL TEXTOBJ)
@@ -1335,6 +1362,8 @@
(\TEDIT.BUTTONEVENTFN.DOOPERATION
[LAMBDA (CURSEL CUROPERATION TSTREAM PANE PENDINGDEL TTYPROC)
(* ; "Edited 31-Jan-2026 11:51 by rmk")
(* ; "Edited 9-Jan-2026 11:28 by rmk")
(* ; "Edited 6-May-2025 11:54 by rmk")
(* ; "Edited 27-Apr-2025 22:26 by rmk")
(* ; "Edited 21-Apr-2025 20:32 by rmk")
@@ -1388,14 +1417,14 @@
 "Make sure the caret blinks in the position of a successful deletion")
(FSETSEL TEXTSEL HASCARET T))
(\TEDIT.SETCARET TEXTSEL PANE TEXTOBJ T))
(COPY (CL:IF TTYSEL
(COPY (\TEDIT.SEL.OFF TSTREAM CURSEL)
(CL:IF TTYSEL
(\TEDIT.COPY CURSEL TTYSEL TSTREAM TTYSTREAM)
(\TEDIT.FOREIGN.COPY TTYW CURSEL TSTREAM))
(\TEDIT.SEL.OFF TSTREAM CURSEL))
(\TEDIT.FOREIGN.COPY CURSEL TSTREAM)))
(MOVE (\TEDIT.SEL.OFF TSTREAM CURSEL)
(if TTYSEL
then (\TEDIT.MOVE CURSEL TTYSEL TSTREAM TTYSTREAM)
else (\TEDIT.FOREIGN.COPY TTYW CURSEL TSTREAM)
else (\TEDIT.FOREIGN.COPY CURSEL TSTREAM)
(* ; "TEXTSEL moves to deletion point")
(\TEDIT.UPDATE.SEL TEXTSEL (FGETSEL CURSEL CH#)
0
@@ -1618,7 +1647,8 @@
then (TEDIT.INSERT TSTREAM I])
(\TEDIT.FOREIGN.COPY
[LAMBDA (TTYW SOURCESEL SOURCESTREAM BKSYSBUFP) (* ; "Edited 28-Mar-2025 12:51 by rmk")
[LAMBDA (SOURCESEL SOURCESTREAM BKSYSBUFP) (* ; "Edited 31-Jan-2026 09:20 by rmk")
(* ; "Edited 28-Mar-2025 12:51 by rmk")
(* ; "Edited 27-Aug-2024 13:38 by rmk")
(* ; "Edited 7-Jul-2024 09:26 by rmk")
(* ; "Edited 29-Apr-2024 13:37 by rmk")
@@ -1630,7 +1660,8 @@
(CL:WHEN (IGREATERP (GETSEL SOURCESEL DCH)
0) (* ; "If empty, nothing to do")
[if (AND NIL (NOT BKSYSBUFP)
(WINDOWPROP TTYW 'COPYINSERTFN))
(PROCESSPROP (TTY.PROCESS)
'WINDOW))
then
(* ;; "This is a stub for a definition that knows how to do a looked string object, given that the destination TTY window has a COPYINSERTFN. OBJECTFROMSEL is in {LFG}tedit/UNBREAKABLESTRING")
@@ -2060,7 +2091,8 @@
PROMPTWINDOW])
(TEDIT.PROMPTPRINT
[LAMBDA (TSTREAM MSG CLEAR? FLASH?) (* ; "Edited 14-Dec-2025 17:41 by rmk")
[LAMBDA (TSTREAM MSG CLEAR? FLASH?) (* ; "Edited 7-Feb-2026 18:51 by rmk")
(* ; "Edited 14-Dec-2025 17:41 by rmk")
(* ; "Edited 29-Dec-2024 14:45 by rmk")
(* ; "Edited 26-Nov-2023 10:10 by rmk")
(* ; "Edited 10-Sep-2023 00:27 by rmk")
@@ -2072,31 +2104,33 @@
(* ;; "Print a message in the editor's prompt window (if none, use the global promptwindow). Optionally clear the window first.")
(LET ((TEXTOBJ (TEXTOBJ TSTREAM T))
PWINDOW MAINWINDOW)
(if TEXTOBJ
then (CL:WHEN (SETQ MAINWINDOW (\TEDIT.MAINW TEXTOBJ))
[SETQ PWINDOW
(CAR (NLSETQ (SELECTQ PWINDOW
(DON'T (CL:WHEN (GETTEXTPROP TEXTOBJ 'PWINDOW.ON.DEMAND)
(GETPROMPTWINDOW MAINWINDOW)))
(NIL (CL:WHEN TSTREAM
[GETPROMPTWINDOW MAINWINDOW NIL NIL
(NOT (GETTEXTPROP TEXTOBJ 'PWINDOW.ON.DEMAND]))
PWINDOW]) (* ;
(PROG ((TEXTOBJ (TEXTOBJ TSTREAM T))
PWINDOW MAINWINDOW)
(CL:UNLESS TEXTOBJ
(PROMPTPRINT MSG)
(RETURN))
(CL:WHEN (SETQ MAINWINDOW (\TEDIT.MAINW TSTREAM))
(SETQ PWINDOW (FGETTOBJ TEXTOBJ PROMPTWINDOW))
[SETQ PWINDOW (CAR (NLSETQ (SELECTQ PWINDOW
(DON'T (CL:WHEN (GETTEXTPROP TEXTOBJ 'PWINDOW.ON.DEMAND)
(GETPROMPTWINDOW MAINWINDOW)))
(NIL (CL:WHEN TSTREAM
[GETPROMPTWINDOW MAINWINDOW NIL NIL
(NOT (GETTEXTPROP TEXTOBJ
'PWINDOW.ON.DEMAND]))
PWINDOW]) (* ;
 "Try to find an editor's prompt window for our message")
(COND
((WINDOWP PWINDOW) (* ;
(if (WINDOWP PWINDOW)
then (* ;
 "We found a window to use. Print the message.")
(CL:WHEN CLEAR? (CLEARW PWINDOW))
(CL:WHEN FLASH? (FLASHWINDOW PWINDOW 1 75))
(PRIN1 MSG PWINDOW))
(T (* ;
(CL:WHEN CLEAR? (CLEARW PWINDOW))
(CL:WHEN FLASH? (FLASHWINDOW PWINDOW 1 75))
(PRIN1 MSG PWINDOW)
else (* ;
 "Failing all else, use global PROMPTWINDOW.")
(FRESHLINE PROMPTWINDOW)
(CL:WHEN FLASH? (FLASHWINDOW PWINDOW 1 75))
(printout PROMPTWINDOW MSG)))
else (PROMPTPRINT MSG])
(FRESHLINE PROMPTWINDOW)
(CL:WHEN FLASH? (FLASHWINDOW PWINDOW 1 75))
(printout PROMPTWINDOW MSG])
(TEDIT.PROMPTCLEAR
[LAMBDA (TSTREAM FONT) (* ; "Edited 14-Dec-2025 17:34 by rmk")
@@ -3664,36 +3698,36 @@
(RPAQ? TEDIT.TITLED.ICON.TEMPLATE (create TITLEDICON ICON _ TEDITICON MASK _ TEDITMASK TITLEREG _
TEDIT.ICON.TITLE.REGION))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (17143 18039 (TEDIT.DEFER.UPDATES 17153 . 18037)) (18040 45281 (\TEDIT.WINDOW.CREATE
18050 . 24913) (\TEDIT.WINDOW.GETREGION 24915 . 29619) (\TEDIT.WINDOW.SETUP 29621 . 33951) (
\TEDIT.MINIMAL.WINDOW.SETUP 33953 . 41913) (\TEDIT.CLEARPANE 41915 . 42632) (\TEDIT.FILL.PANES 42634
. 45279)) (45282 68983 (\TEDIT.CURSORMOVEDFN 45292 . 50902) (\TEDIT.CURSOROUTFN 50904 . 51592) (
\TEDIT.ACTIVE.WINDOWP 51594 . 52664) (\TEDIT.EXPANDFN 52666 . 53229) (\TEDIT.MAINW 53231 . 54511) (
\TEDIT.MAINSTREAM 54513 . 54847) (\TEDIT.PRIMARYPANE 54849 . 55619) (\TEDIT.PANELIST 55621 . 56117) (
\TEDIT.NEWREGIONFN 56119 . 58635) (\TEDIT.SET.WINDOW.EXTENT 58637 . 63619) (\TEDIT.SHRINK.ICONCREATE
63621 . 66354) (\TEDIT.SHRINKFN 66356 . 66765) (\TEDIT.PANEREGION 66767 . 68981)) (69015 102061 (
\TEDIT.BUTTONEVENTFN 69025 . 81998) (\TEDIT.BUTTONEVENTFN.DOOPERATION 82000 . 89263) (
\TEDIT.BUTTONEVENTFN.GETOPERATION 89265 . 91107) (\TEDIT.BUTTONEVENTFN.CURSEL.INIT 91109 . 94779) (
\TEDIT.BUTTONEVENTFN.INACTIVE 94781 . 97211) (\TEDIT.BUTTONEVENTFN.INTITLE 97213 . 99048) (
\TEDIT.COPYINSERTFN 99050 . 100182) (\TEDIT.FOREIGN.COPY 100184 . 102059)) (102062 119625 (
\TEDIT.PANE.SPLIT 102072 . 106020) (\TEDIT.SPLITW 106022 . 114081) (\TEDIT.UNSPLITW 114083 . 118282) (
\TEDIT.LINKPANES 118284 . 119047) (\TEDIT.UNLINKPANE 119049 . 119623)) (121059 121950 (TEDITWINDOWP
121069 . 121948)) (121987 125090 (TEDIT.GETINPUT 121997 . 124440) (\TEDIT.MAKEFILENAME 124442 . 125088
)) (125139 132985 (TEDIT.PROMPTWINDOW 125149 . 125463) (TEDIT.PROMPTPRINT 125465 . 128195) (
TEDIT.PROMPTCLEAR 128197 . 130032) (TEDIT.PROMPTFLASH 130034 . 131292) (\TEDIT.PROMPT.PAGEFULLFN
131294 . 132983)) (133223 143801 (\TEDIT.FILENAME 133233 . 134005) (\TEDIT.DEFAULT.TITLE 134007 .
136386) (\TEDIT.WINDOW.TITLE 136388 . 138557) (\TEDIT.LIKELY.FILENAME 138559 . 141283) (
\TEDIT.UPDATE.TITLE 141285 . 143799)) (143844 156328 (TEDIT.DEACTIVATE.WINDOW 143854 . 149427) (
\TEDIT.RESHAPEFN 149429 . 151514) (\TEDIT.REPAINTFN 151516 . 151740) (\TEDIT.CLOSESPLITS 151742 .
154187) (\TEDIT.CLOSEPANE 154189 . 156326)) (156329 199128 (\TEDIT.SCROLLFN 156339 . 158570) (
\TEDIT.SCROLLCH.TOP 158572 . 160683) (\TEDIT.SCROLLCH.BOTTOM 160685 . 165015) (\TEDIT.SCROLLUP 165017
. 170743) (\TEDIT.TOPLINE.YTOP 170745 . 172414) (\TEDIT.SCROLLDOWN 172416 . 179455) (
\TEDIT.SCROLL.CARET 179457 . 182295) (\TEDIT.VISIBLECARETP 182297 . 184591) (\TEDIT.VISIBLECHARP
184593 . 185684) (\TEDIT.BITMAPLINES 185686 . 189606) (\TEDIT.SETPANE.TOPLINE 189608 . 190220) (
\TEDIT.SHIFTLINES 190222 . 199126)) (199129 209998 (\TEDIT.ONSCREEN? 199139 . 203690) (
\TEDIT.ONSCREEN.REGION 203692 . 207343) (\TEDIT.AFTERMOVEFN 207345 . 208242) (OFFSCREENP 208244 .
209996)) (210040 212854 (\TEDIT.PROCIDLEFN 210050 . 211710) (\TEDIT.PROCENTRYFN 211712 . 212157) (
\TEDIT.PROCEXITFN 212159 . 212852)) (212933 226158 (\TEDIT.DOWNCARET 212943 . 213736) (
\TEDIT.FLASHCARET 213738 . 215849) (\TEDIT.UPCARET 215851 . 216955) (TEDIT.NORMALIZECARET 216957 .
220175) (\TEDIT.SETCARET 220177 . 225528) (\TEDIT.CARET 225530 . 226156)))))
(FILEMAP (NIL (17097 17993 (TEDIT.DEFER.UPDATES 17107 . 17991)) (17994 46195 (\TEDIT.WINDOW.CREATE
18004 . 24867) (\TEDIT.WINDOW.GETREGION 24869 . 30356) (\TEDIT.WINDOW.SETUP 30358 . 34865) (
\TEDIT.MINIMAL.WINDOW.SETUP 34867 . 42827) (\TEDIT.CLEARPANE 42829 . 43546) (\TEDIT.FILL.PANES 43548
. 46193)) (46196 69923 (\TEDIT.CURSORMOVEDFN 46206 . 51733) (\TEDIT.CURSOROUTFN 51735 . 52532) (
\TEDIT.ACTIVE.WINDOWP 52534 . 53604) (\TEDIT.EXPANDFN 53606 . 54169) (\TEDIT.MAINW 54171 . 55451) (
\TEDIT.MAINSTREAM 55453 . 55787) (\TEDIT.PRIMARYPANE 55789 . 56559) (\TEDIT.PANELIST 56561 . 57057) (
\TEDIT.NEWREGIONFN 57059 . 59575) (\TEDIT.SET.WINDOW.EXTENT 59577 . 64559) (\TEDIT.SHRINK.ICONCREATE
64561 . 67294) (\TEDIT.SHRINKFN 67296 . 67705) (\TEDIT.PANEREGION 67707 . 69921)) (69955 105080 (
\TEDIT.BUTTONEVENTFN 69965 . 84672) (\TEDIT.BUTTONEVENTFN.DOOPERATION 84674 . 92145) (
\TEDIT.BUTTONEVENTFN.GETOPERATION 92147 . 93989) (\TEDIT.BUTTONEVENTFN.CURSEL.INIT 93991 . 97661) (
\TEDIT.BUTTONEVENTFN.INACTIVE 97663 . 100093) (\TEDIT.BUTTONEVENTFN.INTITLE 100095 . 101930) (
\TEDIT.COPYINSERTFN 101932 . 103064) (\TEDIT.FOREIGN.COPY 103066 . 105078)) (105081 122644 (
\TEDIT.PANE.SPLIT 105091 . 109039) (\TEDIT.SPLITW 109041 . 117100) (\TEDIT.UNSPLITW 117102 . 121301) (
\TEDIT.LINKPANES 121303 . 122066) (\TEDIT.UNLINKPANE 122068 . 122642)) (124078 124969 (TEDITWINDOWP
124088 . 124967)) (125006 128109 (TEDIT.GETINPUT 125016 . 127459) (\TEDIT.MAKEFILENAME 127461 . 128107
)) (128158 136241 (TEDIT.PROMPTWINDOW 128168 . 128482) (TEDIT.PROMPTPRINT 128484 . 131451) (
TEDIT.PROMPTCLEAR 131453 . 133288) (TEDIT.PROMPTFLASH 133290 . 134548) (\TEDIT.PROMPT.PAGEFULLFN
134550 . 136239)) (136479 147057 (\TEDIT.FILENAME 136489 . 137261) (\TEDIT.DEFAULT.TITLE 137263 .
139642) (\TEDIT.WINDOW.TITLE 139644 . 141813) (\TEDIT.LIKELY.FILENAME 141815 . 144539) (
\TEDIT.UPDATE.TITLE 144541 . 147055)) (147100 159584 (TEDIT.DEACTIVATE.WINDOW 147110 . 152683) (
\TEDIT.RESHAPEFN 152685 . 154770) (\TEDIT.REPAINTFN 154772 . 154996) (\TEDIT.CLOSESPLITS 154998 .
157443) (\TEDIT.CLOSEPANE 157445 . 159582)) (159585 202384 (\TEDIT.SCROLLFN 159595 . 161826) (
\TEDIT.SCROLLCH.TOP 161828 . 163939) (\TEDIT.SCROLLCH.BOTTOM 163941 . 168271) (\TEDIT.SCROLLUP 168273
. 173999) (\TEDIT.TOPLINE.YTOP 174001 . 175670) (\TEDIT.SCROLLDOWN 175672 . 182711) (
\TEDIT.SCROLL.CARET 182713 . 185551) (\TEDIT.VISIBLECARETP 185553 . 187847) (\TEDIT.VISIBLECHARP
187849 . 188940) (\TEDIT.BITMAPLINES 188942 . 192862) (\TEDIT.SETPANE.TOPLINE 192864 . 193476) (
\TEDIT.SHIFTLINES 193478 . 202382)) (202385 213254 (\TEDIT.ONSCREEN? 202395 . 206946) (
\TEDIT.ONSCREEN.REGION 206948 . 210599) (\TEDIT.AFTERMOVEFN 210601 . 211498) (OFFSCREENP 211500 .
213252)) (213296 216110 (\TEDIT.PROCIDLEFN 213306 . 214966) (\TEDIT.PROCENTRYFN 214968 . 215413) (
\TEDIT.PROCEXITFN 215415 . 216108)) (216189 229414 (\TEDIT.DOWNCARET 216199 . 216992) (
\TEDIT.FLASHCARET 216994 . 219105) (\TEDIT.UPCARET 219107 . 220211) (TEDIT.NORMALIZECARET 220213 .
223431) (\TEDIT.SETCARET 223433 . 228784) (\TEDIT.CARET 228786 . 229412)))))
STOP

Binary file not shown.

Binary file not shown.

View File

@@ -1,11 +1,10 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED "16-Feb-2026 08:56:58" 
{DSK}<Users>kaplan>Local>medley3.5>working-medley>library>tedit>tedit-exports.all;249 52790
(FILECREATED " 1-May-2026 08:16:04" {MEDLEY}<library>tedit>tedit-exports.all;255 52514
:EDIT-BY rmk
:PREVIOUS-DATE "14-Jan-2026 14:50:53" {WMEDLEY}<library>TEDIT>tedit-exports.all;248)
:PREVIOUS-DATE "15-Apr-2026 23:45:28" {MEDLEY}<library>TEDIT>tedit-exports.all;254)
(PRETTYCOMPRINT ((E (MAPC (MKLIST FROMFILES) (FUNCTION (LAMBDA (F) (MAPC (IMPORTFILE F FLG) (FUNCTION
@@ -17,7 +16,7 @@ PRINT))))))))
(PUTPROPS FTEXTOBJ MACRO ((X) (TEXTOBJ! (CL:IF (type? TEXTOBJ X) X (GETTSTR X TEXTOBJ)))))
(GLOBALVARS CHECK-TEDIT-ASSERTIONS)
(RPAQ? CHECK-TEDIT-ASSERTIONS T)
(PUTPROP (QUOTE TEDIT) (QUOTE IMPORTDATE) (IDATE " 4-Feb-2026 16:02:02"))
(PUTPROP (QUOTE TEDIT) (QUOTE IMPORTDATE) (IDATE "10-Mar-2026 18:07:31"))
(RPAQQ \BTREEWORDSPERSLOT 4)
(RPAQQ \BTREEMAXCOUNT 8)
(CONSTANTS (\BTREEWORDSPERSLOT 4) (\BTREEMAXCOUNT 8))
@@ -51,7 +50,7 @@ DLEN1 DOWN2 DLEN2 DOWN3 DLEN3 DOWN4 DLEN4 DOWN5 DLEN5 DOWN6 DLEN6 DOWN7 DLEN7 DO
(\DTEST (OR (NEXTPIECE I.V.) (GO $$OUT)) (QUOTE PIECE)))))
(I.S.OPR (QUOTE backpieces) NIL (QUOTE (first (SETQ I.V. (\DTEST (OR BODY (GO $$OUT)) (QUOTE PIECE)))
by (\DTEST (OR (PREVPIECE I.V.) (GO $$OUT)) (QUOTE PIECE)))))
(PUTPROP (QUOTE TEDIT-PCTREE) (QUOTE IMPORTDATE) (IDATE "14-Feb-2026 13:22:06"))
(PUTPROP (QUOTE TEDIT-PCTREE) (QUOTE IMPORTDATE) (IDATE " 9-Apr-2026 17:25:38"))
(DATATYPE SELECTION ((* ;;
"Description of a piece of selected text for TEdit. Text has to be selected before it can be operated on by the user. The caret is to the left of CH# if POINT is LEFT, to the keft of CHLIM if POINT is RIGHT."
) (* ;; "If DCH > 0, highlighting goes from CH# to (SUB1 CHLIM = (SUB1 (IPLUS CH# DCH)).") (* ;;
@@ -128,7 +127,7 @@ TSTREAM ONLYPANE DONTFIX)))
(PUTPROPS \TEDIT.SEL.OFF MACRO ((TSTREAM SEL ONLYPANE) (* ;
"Takes down SEL in TSTREAM, where SEL defaults to the current selection") (\TEDIT.SHOWSEL SEL NIL
TSTREAM ONLYPANE)))
(PUTPROP (QUOTE TEDIT-SELECTION) (QUOTE IMPORTDATE) (IDATE "16-Feb-2026 00:38:33"))
(PUTPROP (QUOTE TEDIT-SELECTION) (QUOTE IMPORTDATE) (IDATE "16-Apr-2026 09:27:41"))
(RECORD TAB (TABX . TABKIND))
(RECORD TABSPEC (DEFAULTTAB . TABS))
(DATATYPE LINECACHE ((* ;; "Image cache for display lines.") LCBITMAP (* ;
@@ -263,21 +262,22 @@ $$CHARSLOTLIMIT))))) T)
(DATATYPE PIECE ((* ;
"The piece describes either a string or part of a file. , or a generalized OBJECT.") PCONTENTS (* ;
"The background source of data for this piece (stream, string, block, object, depending on the PTYPE)."
) (PTYPE BITS 4) (* ; "How the characters are delivered: thinfile, fatstring, object, substream")
PBYTELEN (* ; "Length of this character piece in bytes. PBYTELEN = PLEN*PBYTESPERCHAR") PFPOS (* ;
"The FILEPTR of the start of the piece in the file") PLEN (* ; "Length of the piece, in characters.")
NEXTPIECE (* ; "-> Next piece in this textobj.") (PREVPIECE FULLXPOINTER) (* ;
"-> Prior piece in this text object.") PCHARLOOKS (* ; "Character formatting info ") PBYTESPERCHAR (*
; "The number of bytes per character, given that all characters in a piece are the same length.") (
) (PTYPE BITS 4) (* ; "How the characters are delivered: thinfile, fatstring, object, substream") NIL
(* ; "Was PBYTELEN: Length of this character piece in bytes. PBYTELEN = PLEN*PBYTESPERCHAR") PFPOS (*
; "The FILEPTR of the start of the piece in the file") PLEN (* ;
"Length of the piece, in characters.") NEXTPIECE (* ; "-> Next piece in this textobj.") (PREVPIECE
FULLXPOINTER) (* ; "-> Prior piece in this text object.") PCHARLOOKS (* ; "Character formatting info "
) PBYTESPERCHAR (* ;
"The number of bytes per character, given that all characters in a piece are the same length.") (
PPARALAST FLAG) (* ; "This piece ends paragraph") PPARALOOKS (* ; "Paragraph looks for this piece") (
PNEW FLAG) (* ;
"This text is new here; used by the tentative edit system, and anyone else interested.") (NIL FLAG) (
* ; "Was PFATP") (PBINABLE FLAG) (* ; "8-bit bytes are binable (THINSTRING and THINFILE) ") (PTREENODE
XPOINTER) (* ; "Points to the PCTB tree-node that contains this piece.") (PCHARSET BYTE) (* ;
"High-order charset for FATFILE1 pieces") (PUTF8BYTESPERCHAR BYTE)) (* ;
"The number of bytes in the UTF-8 encoding of all the Unicode characters in this piece") (ACCESSFNS ((
POBJ (AND (EQ OBJECT.PTYPE (PTYPE DATUM)) (type? IMAGEOBJ (PCONTENTS DATUM)) (PCONTENTS DATUM)) (AND (
EQ OBJECT.PTYPE (PTYPE DATUM)) (SETPC DATUM PCONTENTS NEWVALUE))))) PFPOS _ 0 PLEN _ 0 PBYTELEN _ 0)
* ; "Was PFATP") (NIL FLAG) (PTREENODE XPOINTER) (* ;
"Points to the PCTB tree-node that contains this piece.") (NIL BYTE) (* ;
"Was PCHARSET: High-order charset for FATFILE1 pieces") NIL) (* ;
"Was PUTF8BYTESPERCHAR: The number of bytes in the UTF-8 encoding of all the Unicode characters in this piece. But this just duplicates PBYTESPERCHAR for UTF-8 pieces"
) (ACCESSFNS ((POBJ (AND (EQ OBJECT.PTYPE (PTYPE DATUM)) (type? IMAGEOBJ (PCONTENTS DATUM)) (PCONTENTS
DATUM)) (AND (EQ OBJECT.PTYPE (PTYPE DATUM)) (SETPC DATUM PCONTENTS NEWVALUE))))) PFPOS _ 0 PLEN _ 0)
(DATATYPE TEXTOBJ ((* ;;
"This is where TEdit stores its state information, and internal data about the text being edited.")
PCTB (* ; "The piece table") TEXTLEN (* ; "# of chars in the text") PRIMARYPANE (* ;
@@ -376,13 +376,12 @@ IMAGEDATA _ NIL)))
(PUTPROPS PTYPE MACRO ((PC) (ffetch (PIECE PTYPE) of PC)))
(PUTPROPS PCONTENTS MACRO ((PC) (ffetch (PIECE PCONTENTS) of PC)))
(PUTPROPS PCHARLOOKS MACRO ((PC) (ffetch (PIECE PCHARLOOKS) of PC)))
(PUTPROPS PCHARSET MACRO ((PC) (ffetch (PIECE PCHARSET) of PC)))
(PUTPROPS PPARALOOKS MACRO ((PC) (ffetch (PIECE PPARALOOKS) of PC)))
(PUTPROPS PPARALAST MACRO ((PC) (ffetch (PIECE PPARALAST) of PC)))
(PUTPROPS PFPOS MACRO ((PC) (ffetch (PIECE PFPOS) of PC)))
(PUTPROPS PBYTELEN MACRO ((PC) (ffetch (PIECE PBYTELEN) of PC)))
(PUTPROPS PBYTELEN MACRO (OPENLAMBDA (PC) (ITIMES (ffetch (PIECE PLEN) of PC) (ffetch (PIECE
PBYTESPERCHAR) of PC))))
(PUTPROPS PNEW MACRO ((PC) (ffetch (PIECE PNEW) of PC)))
(PUTPROPS PBINABLE MACRO ((PC) (ffetch (PIECE PBINABLE) of PC)))
(PUTPROPS PBYTESPERCHAR MACRO ((PC) (ffetch (PIECE PBYTESPERCHAR) of PC)))
(PUTPROPS POBJ MACRO ((PC) (ffetch (PIECE POBJ) of PC)))
(PUTPROPS SETPC MACRO ((PC FIELD NEWVALUE) (replace (PIECE FIELD) of PC with NEWVALUE)))
@@ -391,7 +390,7 @@ IMAGEDATA _ NIL)))
(PUTPROPS FGETPC MACRO ((PC FIELD) (ffetch (PIECE FIELD) of PC)))
(PUTPROPS THINPIECEP MACRO ((PC) (* ;;
"Assume that objects start out thin, for CHARSET in \TEDIT.PUT.PCTB. The putfn might immediately change that, but we don't care."
) (SELECTC (PTYPE PC) (THIN.PTYPES T) (UTF8.PTYPE (EQ 1 (FGETPC PC PUTF8BYTESPERCHAR))) NIL)))
) (SELECTC (PTYPE PC) (THIN.PTYPES T) (UTF8.PTYPE (EQ 1 (FGETPC PC PBYTESPERCHAR))) NIL)))
(PUTPROPS VISIBLEPIECEP MACRO ((PC) (AND PC (NEQ 0 (PLEN PC)) (NOT (FGETCLOOKS (PCHARLOOKS PC)
CLINVISIBLE)))))
(PUTPROPS \NEXT.VISIBLE.PIECE MACRO ((PC) (find NPC inpieces (AND PC (NEXTPIECE PC)) suchthat (
@@ -411,14 +410,13 @@ VISIBLEPIECEP PPC))))
(PUTPROPS FSETTSTR MACRO ((TSTR FIELD NEWVALUE) (freplace (TEXTSTREAM FIELD) of TSTR with NEWVALUE)))
(PUTPROPS TEXTSTREAM! MACRO (OPENLAMBDA (TSTR) (AND (\DTEST TSTR (QUOTE STREAM)) (TEXTOBJ! (FGETTSTR
TSTR TEXTOBJ)) TSTR)))
(RPAQQ PTYPES ((THINFILE.PTYPE 0) (FATFILE1.PTYPE 1) (FATFILE2.PTYPE 2) (THINSTRING.PTYPE 3) (
FATSTRING.PTYPE 4) (SUBSTREAM.PTYPE 5) (OBJECT.PTYPE 6) (LOOKS.PTYPE 7) (UTF16BE.PTYPE 8) (
UTF16LE.PTYPE 9) (UTF8.PTYPE 11) (FILE.PTYPES (LIST THINFILE.PTYPE FATFILE1.PTYPE FATFILE2.PTYPE
UTF8.PTYPE UTF16BE.PTYPE UTF16LE.PTYPE)) (STRING.PTYPES (LIST THINSTRING.PTYPE FATSTRING.PTYPE)) (
BINABLE.PTYPES (LIST THINFILE.PTYPE THINSTRING.PTYPE)) (THIN.PTYPES (LIST THINFILE.PTYPE
THINSTRING.PTYPE)) (FAT.PTYPES (LIST FATFILE2.PTYPE FATSTRING.PTYPE FATFILE1.PTYPE))))
(RPAQQ PTYPES ((THINFILE.PTYPE 0) (FATFILE2.PTYPE 2) (THINSTRING.PTYPE 3) (FATSTRING.PTYPE 4) (
SUBSTREAM.PTYPE 5) (OBJECT.PTYPE 6) (LOOKS.PTYPE 7) (UTF16BE.PTYPE 8) (UTF16LE.PTYPE 9) (UTF8.PTYPE 11
) (FILE.PTYPES (LIST THINFILE.PTYPE FATFILE2.PTYPE UTF8.PTYPE UTF16BE.PTYPE UTF16LE.PTYPE)) (
STRING.PTYPES (LIST THINSTRING.PTYPE FATSTRING.PTYPE)) (BINABLE.PTYPES (LIST THINFILE.PTYPE
THINSTRING.PTYPE)) (THIN.PTYPES (LIST THINFILE.PTYPE THINSTRING.PTYPE)) (FAT.PTYPES (LIST
FATFILE2.PTYPE FATSTRING.PTYPE))))
(RPAQQ THINFILE.PTYPE 0)
(RPAQQ FATFILE1.PTYPE 1)
(RPAQQ FATFILE2.PTYPE 2)
(RPAQQ THINSTRING.PTYPE 3)
(RPAQQ FATSTRING.PTYPE 4)
@@ -428,20 +426,19 @@ THINSTRING.PTYPE)) (FAT.PTYPES (LIST FATFILE2.PTYPE FATSTRING.PTYPE FATFILE1.PTY
(RPAQQ UTF16BE.PTYPE 8)
(RPAQQ UTF16LE.PTYPE 9)
(RPAQQ UTF8.PTYPE 11)
(RPAQ FILE.PTYPES (LIST THINFILE.PTYPE FATFILE1.PTYPE FATFILE2.PTYPE UTF8.PTYPE UTF16BE.PTYPE
UTF16LE.PTYPE))
(RPAQ FILE.PTYPES (LIST THINFILE.PTYPE FATFILE2.PTYPE UTF8.PTYPE UTF16BE.PTYPE UTF16LE.PTYPE))
(RPAQ STRING.PTYPES (LIST THINSTRING.PTYPE FATSTRING.PTYPE))
(RPAQ BINABLE.PTYPES (LIST THINFILE.PTYPE THINSTRING.PTYPE))
(RPAQ THIN.PTYPES (LIST THINFILE.PTYPE THINSTRING.PTYPE))
(RPAQ FAT.PTYPES (LIST FATFILE2.PTYPE FATSTRING.PTYPE FATFILE1.PTYPE))
(CONSTANTS (THINFILE.PTYPE 0) (FATFILE1.PTYPE 1) (FATFILE2.PTYPE 2) (THINSTRING.PTYPE 3) (
FATSTRING.PTYPE 4) (SUBSTREAM.PTYPE 5) (OBJECT.PTYPE 6) (LOOKS.PTYPE 7) (UTF16BE.PTYPE 8) (
UTF16LE.PTYPE 9) (UTF8.PTYPE 11) (FILE.PTYPES (LIST THINFILE.PTYPE FATFILE1.PTYPE FATFILE2.PTYPE
UTF8.PTYPE UTF16BE.PTYPE UTF16LE.PTYPE)) (STRING.PTYPES (LIST THINSTRING.PTYPE FATSTRING.PTYPE)) (
BINABLE.PTYPES (LIST THINFILE.PTYPE THINSTRING.PTYPE)) (THIN.PTYPES (LIST THINFILE.PTYPE
THINSTRING.PTYPE)) (FAT.PTYPES (LIST FATFILE2.PTYPE FATSTRING.PTYPE FATFILE1.PTYPE)))
(RPAQ FAT.PTYPES (LIST FATFILE2.PTYPE FATSTRING.PTYPE))
(CONSTANTS (THINFILE.PTYPE 0) (FATFILE2.PTYPE 2) (THINSTRING.PTYPE 3) (FATSTRING.PTYPE 4) (
SUBSTREAM.PTYPE 5) (OBJECT.PTYPE 6) (LOOKS.PTYPE 7) (UTF16BE.PTYPE 8) (UTF16LE.PTYPE 9) (UTF8.PTYPE 11
) (FILE.PTYPES (LIST THINFILE.PTYPE FATFILE2.PTYPE UTF8.PTYPE UTF16BE.PTYPE UTF16LE.PTYPE)) (
STRING.PTYPES (LIST THINSTRING.PTYPE FATSTRING.PTYPE)) (BINABLE.PTYPES (LIST THINFILE.PTYPE
THINSTRING.PTYPE)) (THIN.PTYPES (LIST THINFILE.PTYPE THINSTRING.PTYPE)) (FAT.PTYPES (LIST
FATFILE2.PTYPE FATSTRING.PTYPE)))
(GLOBALVARS \TEXTIMAGEOPS \TEXTFDEV)
(PUTPROP (QUOTE TEDIT-STREAM) (QUOTE IMPORTDATE) (IDATE "16-Feb-2026 08:56:40"))
(PUTPROP (QUOTE TEDIT-STREAM) (QUOTE IMPORTDATE) (IDATE " 1-May-2026 08:15:56"))
(PUTPROPS \TEDIT.MOUSESTATE MACRO (BUTTON (* ;;
"Test to see if only the specified mouse button is down. DOES NOT call GETMOUSESTATE, so the mouse-button info is the same as the last time it was called."
) (SELECTQ (CAR BUTTON) (LEFT (QUOTE (EQ LASTMOUSEBUTTONS 4))) (MIDDLE (QUOTE (EQ LASTMOUSEBUTTONS 1))
@@ -455,8 +452,8 @@ I in ARGS as J on ARGS when (NOT (STRINGP I)) collect (LIST (QUOTE OR) I (LIST (
\BIN STREAM)) BITSPERWORD)))
(PUTPROPS \SMALLPOUT MACRO (OPENLAMBDA (STREAM W) (* ; "Signed smallp, unlike \WOUT") (\BOUT STREAM (
LOGAND 255 (LRSH W 8))) (\BOUT STREAM (LOGAND W 255))))
(PUTPROP (QUOTE TEDIT-FILE) (QUOTE IMPORTDATE) (IDATE "15-Feb-2026 23:45:51"))
(PUTPROP (QUOTE TEDIT-OLDFILE) (QUOTE IMPORTDATE) (IDATE " 8-Sep-2025 22:10:10"))
(PUTPROP (QUOTE TEDIT-FILE) (QUOTE IMPORTDATE) (IDATE "29-Apr-2026 23:49:14"))
(PUTPROP (QUOTE TEDIT-OLDFILE) (QUOTE IMPORTDATE) (IDATE "10-Apr-2026 09:29:21"))
(DATATYPE CHARLOOKS ((* ;; "Describes the appearance (%"Looks%") of characters in a TEdit document.")
(* ;; "NOTE: If fields change EQCLOOKS should change too.") CLFONT (* ;
"The font descriptor for these characters") CLFONTUNPARSE (* ;;
@@ -538,7 +535,7 @@ LINELEAD _ 0)
(PUTPROPS FSETPLOOKS MACRO ((PLOOKS FIELD NEWVALUE) (freplace (PARALOOKS FIELD) of PLOOKS with
NEWVALUE)))
(PUTPROPS PARALOOKS! MACRO ((PL) (\DTEST PL (QUOTE PARALOOKS))))
(PUTPROP (QUOTE TEDIT-LOOKS) (QUOTE IMPORTDATE) (IDATE "16-Feb-2026 00:36:00"))
(PUTPROP (QUOTE TEDIT-LOOKS) (QUOTE IMPORTDATE) (IDATE "10-Apr-2026 09:34:11"))
(PUTPROP (QUOTE TEDIT-STYLES) (QUOTE IMPORTDATE) (IDATE "28-Jul-2025 23:25:43"))
(DATATYPE TEDITCARET (TCNOWTIME (* Used to hold the current time, when checking to see if a transition
is due) TCTHENTIME (* Time when the next transition is to take place) TCFORCEDDOWN (* TCFORCEDOWN = T
@@ -602,8 +599,8 @@ GETPANEPROP (PANEPROPS P) NEXTPANE))) (GO $$OUT))) by (OR (GETPANEPROP (PANEPROP
$$OUT)))))
(PUTPROPS ALLBUTTONSUP MACRO (NIL (ZEROP (LOGAND 7 LASTMOUSEBUTTONS))))
(PUTPROP (QUOTE TEDIT-WINDOW) (QUOTE IMPORTDATE) (IDATE " 7-Feb-2026 18:53:22"))
(PUTPROP (QUOTE TEDIT-BUTTONS) (QUOTE IMPORTDATE) (IDATE "25-Jan-2026 09:14:04"))
(PUTPROP (QUOTE TEDIT-MENU) (QUOTE IMPORTDATE) (IDATE " 9-Feb-2026 09:10:43"))
(PUTPROP (QUOTE TEDIT-BUTTONS) (QUOTE IMPORTDATE) (IDATE "29-Apr-2026 17:57:09"))
(PUTPROP (QUOTE TEDIT-MENU) (QUOTE IMPORTDATE) (IDATE "29-Apr-2026 15:35:33"))
(PUTPROP (QUOTE TEDIT-FIND) (QUOTE IMPORTDATE) (IDATE "21-Apr-2025 22:42:57"))
(RPAQQ \TEDIT.TTCCODES ((NONE . 0) (CHARDELETE . 1) (:CHARDELETE.BACKWARD . 1) (WORDDELETE . 2) (
:WORDDELETE.BACKWORD . 2) (DELETE . 3) (:DELETE . 3) (FN . 4) (REDO . 5) (:REDO . 5) (UNDO . 6) (:UNDO
@@ -626,7 +623,7 @@ TEDITHISTORYEVENT THLEN) of DATUM) 0))))) (INIT (DEFPRINT (QUOTE TEDITHISTORYEVE
(PUTPROPS GETTH MACRO ((EVENT FIELD) (fetch (TEDITHISTORYEVENT FIELD) of EVENT)))
(PUTPROPS SETTH MACRO ((EVENT FIELD NEWVALUE) (replace (TEDITHISTORYEVENT FIELD) of EVENT with
NEWVALUE)))
(PUTPROP (QUOTE TEDIT-HISTORY) (QUOTE IMPORTDATE) (IDATE " 1-Aug-2025 14:58:56"))
(PUTPROP (QUOTE TEDIT-HISTORY) (QUOTE IMPORTDATE) (IDATE "19-Feb-2026 12:39:37"))
(RECORD PAGEFORMATTINGSTATE ((* ;; "Contains the state for a TEdit page-formatting job.") PAGE# (* ;
"The current page number. Counted from 1") FIRSTPAGE (* ;;
"T if the current page is the 'first page' . Is set initially, and can be set again by the user at will. Gets reset after each page image is printed."
@@ -662,8 +659,8 @@ $$VALUES)) (PROG1 (CAR $$VALUES) (\,@ (FOR V IN (CAR ARGS) collect (COND (V (BQU
$$VALUES)))) (T (BQUOTE (SETQ $$VALUES (CDR $$VALUES))))))))))))
(PUTPROPS TEDIT.VALUES MACRO (ARGS (BQUOTE (LIST (\,@ ARGS)))))
(PUTPROP (QUOTE TEDIT-PAGE) (QUOTE IMPORTDATE) (IDATE "27-Jan-2026 10:30:27"))
(PUTPROP (QUOTE TEDIT-ABBREV) (QUOTE IMPORTDATE) (IDATE "23-Jan-2026 15:49:26"))
(PUTPROP (QUOTE TEDIT-TFBRAVO) (QUOTE IMPORTDATE) (IDATE "21-Jan-2026 12:15:57"))
(PUTPROP (QUOTE TEDIT-ABBREV) (QUOTE IMPORTDATE) (IDATE "30-Apr-2026 11:55:15"))
(PUTPROP (QUOTE TEDIT-TFBRAVO) (QUOTE IMPORTDATE) (IDATE "10-Apr-2026 09:25:52"))
(DECLARE%: DONTCOPY
(FILEMAP (NIL)))
STOP

Binary file not shown.

187
lispusers/BROKEN-ATOMS Normal file
View File

@@ -0,0 +1,187 @@
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED "14-Apr-2026 12:14:44" {PROJECTS}<BROKENATOMS>BROKEN-ATOMS.;10 7207
:CHANGES-TO (FUNCTIONS WITHOUT-BROKEN-ATOMS TEST-PRETTY-FILE TEST-DEEP-COMPUTATION
CURE-BROKEN-ATOM)
(VARS BROKEN-ATOMSCOMS)
:PREVIOUS-DATE "18-Feb-2026 16:08:40" {PROJECTS}<BROKENATOMS>BROKEN-ATOMS.;3)
(PRETTYCOMPRINT BROKEN-ATOMSCOMS)
(RPAQQ BROKEN-ATOMSCOMS
(
(* ;; "the representation of a broken atom")
(RECORDS BROKEN-ATOM)
(FUNCTIONS CURE-BROKEN-ATOM)
(* ;; "for DEFPRINT")
(FNS BROKEN-ATOM-PRINTER)
(* ;; "special form")
(FUNCTIONS WITHOUT-BROKEN-ATOMS)
(* ;; "setup")
(P (DEFPRINT 'BROKEN-ATOM 'BROKEN-ATOM-PRINTER))
(* ;; "Debugging/testing")
(FUNCTIONS TEST-INTERNAL-BA TEST-EXTERNAL-BA TEST-DEEP-COMPUTATION TEST-PRETTY-FILE)))
(* ;; "the representation of a broken atom")
(DECLARE%: EVAL@COMPILE
(DATATYPE BROKEN-ATOM ((PACKAGE POINTER)
(NAME POINTER)
(EXTERNAL FLAG)))
)
(/DECLAREDATATYPE 'BROKEN-ATOM '(POINTER POINTER FLAG)
'((BROKEN-ATOM 0 POINTER)
(BROKEN-ATOM 2 POINTER)
(BROKEN-ATOM 2 (FLAGBITS . 0)))
'4)
(CL:DEFUN CURE-BROKEN-ATOM (CONDITION)
"Given an XCL:MISSING-EXTERNAL-SYMBOL condition, return a corresponding BROKEN-ATOM"
(COND
((TYPEP CONDITION 'XCL:MISSING-PACKAGE) (* ; "no such package ")
(create BROKEN-ATOM
PACKAGE _ (XCL:MISSING-PACKAGE-PACKAGE-NAME CONDITION)
NAME _ (XCL:MISSING-PACKAGE-SYMBOL-NAME CONDITION)
EXTERNAL _ (XCL:MISSING-PACKAGE-EXTERNAL CONDITION)))
((TYPEP CONDITION 'XCL:MISSING-EXTERNAL-SYMBOL) (* ;
 "package exists, no such external symbol")
(create BROKEN-ATOM
PACKAGE _ (CL:PACKAGE-NAME (XCL:MISSING-EXTERNAL-SYMBOL-PACKAGE CONDITION))
NAME _ (XCL:MISSING-EXTERNAL-SYMBOL-NAME CONDITION)
EXTERNAL _ NIL))
(T (HELP "Don't know how to cure" CONDITION))))
(* ;; "for DEFPRINT")
(DEFINEQ
(BROKEN-ATOM-PRINTER
[LAMBDA (BROKEN-ATOM STREAM)
(CONS (CONCAT (fetch (BROKEN-ATOM PACKAGE) of BROKEN-ATOM)
(if (fetch (BROKEN-ATOM EXTERNAL) of BROKEN-ATOM)
then ":"
else "::")
(fetch (BROKEN-ATOM NAME) of BROKEN-ATOM])
)
(* ;; "special form")
(DEFMACRO WITHOUT-BROKEN-ATOMS (&BODY FORMS)
"Handle any broken-atom errors by producing a BROKEN-ATOM that prints as if the original atom were intact"
`[HANDLER-BIND [[XCL:MISSING-PACKAGE #'(CL:LAMBDA (C)
(CONDITIONS:INVOKE-RESTART
'CREATE-MISSING-PACKAGE-BA (CURE-BROKEN-ATOM
C]
(XCL:MISSING-EXTERNAL-SYMBOL #'(CL:LAMBDA (C)
(CONDITIONS:INVOKE-RESTART
'CREATE-EXTERNAL-BA (CURE-BROKEN-ATOM
C]
(CONDITIONS:RESTART-BIND [(CREATE-MISSING-PACKAGE-BA
#'(CL:LAMBDA (V)
(RETFROM (FUNCTION RESOLVE-MISSING-PACKAGE)
V)
V))
(CREATE-EXTERNAL-BA #'(CL:LAMBDA (V)
(RETFROM (FUNCTION
RESOLVE-MISSING-EXTERNAL-SYMBOL
)
V)
V]
(PROGN ,@FORMS])
(* ;; "setup")
(DEFPRINT 'BROKEN-ATOM 'BROKEN-ATOM-PRINTER)
(* ;; "Debugging/testing")
(CL:DEFUN TEST-INTERNAL-BA ()
[LET ((FILE NIL))
(CL:WITH-OPEN-STREAM (OUT (OPENSTREAM "{nodircore}" 'OUTPUT))
(SETQ FILE OUT)
(PRINTOUT OUT "BROKEN::INTERNAL-ATOM" T))
(CL:WITH-OPEN-STREAM (IN (OPENSTREAM FILE 'INPUT))
(WITHOUT-BROKEN-ATOMS (RATOM IN])
(CL:DEFUN TEST-EXTERNAL-BA ()
[LET ((FILE NIL))
(CL:WITH-OPEN-STREAM (OUT (OPENSTREAM "{nodircore}" 'OUTPUT))
(SETQ FILE OUT)
(PRINTOUT OUT "BROKEN:EXTERNAL-ATOM" T))
(CL:WITH-OPEN-STREAM (IN (OPENSTREAM FILE 'INPUT))
(WITHOUT-BROKEN-ATOMS (RATOM IN])
(CL:DEFUN TEST-DEEP-COMPUTATION ()
"Test that we can handle internal calls to READ that encounter broken atoms"
(* ;; "make sure it works when there's no error")
(LET [(RESULT (WITHOUT-BROKEN-ATOMS (CL:LOOP :FOR X :FROM 0 :TO 9 :COLLECT X]
(PRINTOUT T "No error loop result: " RESULT T))
(* ;; "and when reading legit atoms")
(LET [(RESULT (WITHOUT-BROKEN-ATOMS (CL:LOOP :FOR X :FROM 0 :TO 9 :COLLECT (CL:READ-FROM-STRING
(CONCAT "IL:ATOM" X]
(PRINTOUT T "No error read loop result: " RESULT T))
(* ;; "test XCL:MISSING-PACKAGE.")
(COND
((CL:FIND-PACKAGE :BROKEN)
(DELETE-PACKAGE :BROKEN)))
(LET [(RESULT (WITHOUT-BROKEN-ATOMS (CL:LOOP :FOR X :FROM 0 :TO 9 :COLLECT (CL:READ-FROM-STRING
(CONCAT "BROKEN:ATOM"
X]
(PRINTOUT T "No such package loop result: " RESULT T))
(* ;; "test XCL:MISSING-EXTERNAL-SYMBOL")
(CL:UNWIND-PROTECT
(PROGN (CL:MAKE-PACKAGE :BROKEN)
(LET [(RESULT (WITHOUT-BROKEN-ATOMS (CL:LOOP :FOR X :FROM 0 :TO 9 :COLLECT
(CL:READ-FROM-STRING (CONCAT "BROKEN:ATOM" X
]
(PRINTOUT T "Not external symbol loop result: " RESULT T)))
[COND
((CL:FIND-PACKAGE :BROKEN)
(DELETE-PACKAGE 'BROKEN]))
(CL:DEFUN TEST-PRETTY-FILE (SOURCE-FILE-NAME OUTPUT-FILE-NAME OUTPUT-TYPE)
"Prettyprint a Lisp source file to an imagestream file"
(CL:WITH-OPEN-STREAM (OUTPUT-STREAM (OPENIMAGESTREAM OUTPUT-FILE-NAME OUTPUT-TYPE))
(WITHOUT-BROKEN-ATOMS (PRETTYFILEINDEX SOURCE-FILE-NAME NIL OUTPUT-STREAM T))
(FULLNAME OUTPUT-STREAM)))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (1403 2315 (CURE-BROKEN-ATOM 1403 . 2315)) (2346 2699 (BROKEN-ATOM-PRINTER 2356 . 2697))
(2731 4397 (WITHOUT-BROKEN-ATOMS 2731 . 4397)) (4503 4831 (TEST-INTERNAL-BA 4503 . 4831)) (4833 5160
(TEST-EXTERNAL-BA 4833 . 5160)) (5162 6829 (TEST-DEEP-COMPUTATION 5162 . 6829)) (6831 7184 (
TEST-PRETTY-FILE 6831 . 7184)))))
STOP

Binary file not shown.

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED "10-Feb-2026 21:28:55" {WMEDLEY}<lispusers>COMPAREDIRECTORIES.;286 138607
(FILECREATED "28-Apr-2026 23:41:24" {MEDLEY}<lispusers>COMPAREDIRECTORIES.;289 139726
:EDIT-BY rmk
:CHANGES-TO (FNS CD-MENUFN)
:CHANGES-TO (FNS CDFILES.PATS CDFILES.MATCH CDBROWSER-COPY)
:PREVIOUS-DATE " 8-Nov-2025 13:07:39" {WMEDLEY}<lispusers>COMPAREDIRECTORIES.;285)
:PREVIOUS-DATE "28-Apr-2026 21:38:49" {MEDLEY}<lispusers>COMPAREDIRECTORIES.;288)
(PRETTYCOMPRINT COMPAREDIRECTORIESCOMS)
@@ -507,32 +507,37 @@
UNLESS (CDFILES.MATCH SUBDIR NAME EXT THISDEPTH EXCLUDES) COLLECT FULLNAME])
(CDFILES.MATCH
[LAMBDA (SUBDIR NAME EXT THISDEPTH PATTERNS) (* ; "Edited 26-Jan-2022 15:33 by rmk")
[LAMBDA (SUBDIR NAME EXT THISDEPTH PATTERNS) (* ; "Edited 28-Apr-2026 23:40 by rmk")
(* ; "Edited 26-Jan-2022 15:33 by rmk")
(* ; "Edited 23-Dec-2021 21:47 by rmk")
(thereis P in PATTERNS suchthat
(* ;; "True if the components of the fullname match at least one of the patterns")
(* ;; "The SUBDIR test is tricky. If the exclusion pattern was internal/fonts/**, this shows up as (* * internal/fonts 65535), it has to match internal/fonts/display/completed/. Below we test for an initial substring")
(THEREIS P IN PATTERNS SUCHTHAT (AND [OR (STRING.EQUAL NAME (CAR P)
FILEDIRCASEARRAY)
(EQ '* (CAR P))
(AND (EQ (CHARCODE %.)
(CHCON1 (CAR P)))
(EQ (CHARCODE %.)
(CHCON1 NAME))
(OR (STRING.EQUAL NAME (SUBATOM (CAR P)
2))
(EQ (CHARCODE *)
(NTHCHARCODE (CAR P)
2]
(OR (STRING.EQUAL EXT (CADR P))
(EQ '* (CADR P)))
(OR (STRING.EQUAL SUBDIR (CADDR P))
(NULL (CADDR P))
(EQ '* (CADDR P)))
(ILEQ THISDEPTH (CADDDR P])
(AND [OR (STRING.EQUAL NAME (CAR P)
FILEDIRCASEARRAY)
(EQ '* (CAR P))
(AND (EQ (CHARCODE %.)
(CHCON1 (CAR P)))
(EQ (CHARCODE %.)
(CHCON1 NAME))
(OR (STRING.EQUAL NAME (SUBATOM (CAR P)
2))
(EQ (CHARCODE *)
(NTHCHARCODE (CAR P)
2]
(OR (STRING.EQUAL EXT (CADR P))
(EQ '* (CADR P)))
(ILEQ THISDEPTH (CADDDR P))
(OR (STRING.EQUAL SUBDIR (CADDR P))
(NULL (CADDR P))
(EQ '* (CADDR P))
(STRPOS (CADDR P)
SUBDIR 1 NIL T])
(CDFILES.PATS
[LAMBDA (PATTERNS) (* ; "Edited 17-Jun-2023 23:36 by rmk")
[LAMBDA (PATTERNS) (* ; "Edited 28-Apr-2026 23:01 by rmk")
(* ; "Edited 17-Jun-2023 23:36 by rmk")
(* ; "Edited 23-Dec-2021 17:02 by rmk")
(* ;; "Returns (NAME EXT SUBDIR DEPTH) items where NAME or EXT may be the wildcard *, SD is the subdirectory (if any) and DEPTH is the number of / or > in the subdirectory")
@@ -544,15 +549,15 @@
(* * NIL 1)
)
ELSE (FOR P N E SD DEPTH UNPACK INSIDE PATTERNS
JOIN (SETQ UNPACK (UNPACKFILENAME.STRING P)) (* ;
JOIN (SETQ UNPACK (UNPACKFILENAME P)) (* ;
 "String so we can tell the difference between x and x.")
[SETQ SD (MKATOM (LISTGET UNPACK 'SUBDIRECTORY]
(SETQ SD (LISTGET UNPACK 'SUBDIRECTORY))
(* ;; "Count the subdirectory depth")
[SETQ DEPTH (IF (EQ SD '*)
THEN MAX.SMALLP
ELSE (FOR I (CNT _ 1) FROM 1 DO (SELCHARQ (NTHCHARCODE SD I)
[SETQ DEPTH (if (EQ SD '*)
then MAX.SMALLP
else (for I (CNT _ 1) from 1 do (SELCHARQ (NTHCHARCODE SD I)
((/ >)
(ADD CNT 1))
(NIL (RETURN CNT))
@@ -560,28 +565,31 @@
(SETQ N (LISTGET UNPACK 'NAME))
(SETQ N (if (NULL N)
then '*
elseif (EQ N '**)
then (SETQ DEPTH MAX.SMALLP)
'*
elseif (NEQ 0 (NCHARS N))
then (MKATOM N)))
then N))
(SETQ E (LISTGET UNPACK 'EXTENSION))
(SETQ E (if (NULL E)
then '*
elseif (NEQ 0 (NCHARS E))
then (MKATOM E)))
(if [OR (AND (STRING.EQUAL N 'COM)
then E))
(if [OR (AND (EQ N 'COM)
(NULL E))
(AND (STRING.EQUAL E 'COM)
(AND (EQ E 'COM)
(MEMB N ' (* NIL)]
THEN (FOR CE IN *COMPILED-EXTENSIONS* COLLECT (LIST '* CE SD DEPTH))
ELSE (CONS (IF N
THEN (LIST N E SD DEPTH)
ELSEIF E
THEN
then (for CE in *COMPILED-EXTENSIONS* collect (LIST '* CE SD DEPTH))
else (CONS (if N
then (LIST N E SD DEPTH)
elseif E
then
(* ;; "This is the case .XXX, which presumably identifies a dotted file. If this is supposed to be all files with extension XXX, it shoud be specified as *.XXX, the case above. So we move .E into the N field.")
(LIST (PACK* '%. E)
NIL SD DEPTH)
ELSE `
else `
(* * (\, SD) (\, DEPTH))
])
@@ -2146,7 +2154,9 @@
NIL])
(CDBROWSER-COPY
[LAMBDA (CDBROWSER TBITEM SOURCE UNIXDEST) (* ; "Edited 28-Oct-2025 17:39 by rmk")
[LAMBDA (CDBROWSER TBITEM SOURCE UNIXDEST) (* ; "Edited 28-Apr-2026 18:54 by rmk")
(* ; "Edited 31-Mar-2026 10:49 by rmk")
(* ; "Edited 28-Oct-2025 17:39 by rmk")
(* ; "Edited 25-Oct-2025 23:58 by rmk")
(* ; "Edited 24-May-2022 15:49 by rmk")
(* ; "Edited 25-Apr-2022 09:24 by rmk")
@@ -2184,7 +2194,8 @@
(PRIN3 "No source file to copy" T)
(RETURN NIL))
(CL:WHEN [AND (EQ DATERELBAD (FETCH (CDENTRY DATEREL) OF CDENTRY))
(PROGN (FLASHWINDOW T)
(PROGN (GIVE.TTY.PROCESS T)
(FLASHWINDOW T)
(EQ 'N (ASKUSER NIL NIL
"Target is newer than source. Really copy? "]
(RETURN NIL))
@@ -2194,6 +2205,7 @@
))
'VERSION))
(PROGN (FLASHWINDOW T)
(GIVE.TTY.PROCESS T)
(EQ 'N (ASKUSER NIL NIL (CONCAT SOURCEFILE
" is not the newest version. Really copy? "
]
@@ -2202,8 +2214,10 @@
(CL:UNLESS DESTFILE
(SETQ DESTFILE (CD-SWAPDIRS SOURCEFILE SOURCEDIR DESTDIR)))
[SETQ RESULT (if UNIXDEST
then (SPUTMULTI (fetch (TABLEBROWSER TBUSERDATA) of CDBROWSER)
'ORIGINALFILES DESTFILE (COPYFILE DESTFILE '{NODIRCORE))
then (CL:WHEN (INFILEP DESTFILE)
(SPUTMULTI (fetch (TABLEBROWSER TBUSERDATA) of CDBROWSER)
'ORIGINALFILES DESTFILE (COPYFILE DESTFILE
'{NODIRCORE})))
[PSEUDOFILENAME (PACKFILENAME 'HOST 'DSK 'BODY
(COPYFILE SOURCEFILE (PACKFILENAME
'HOST
@@ -2323,25 +2337,25 @@
(MOVD? 'NILL 'TEDIT.FILEDATE)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (2653 23632 (COMPAREDIRECTORIES 2663 . 7998) (COMPAREDIRECTORIES.INFOS 8000 . 11229) (
COMPAREDIRECTORIES.CANDIDATES 11231 . 14616) (CDENTRIES.SELECT 14618 . 19520) (
COMPAREDIRECTORIES.INFOS.TYPE 19522 . 20866) (MATCHNAME 20868 . 21548) (CD.INSURECDVALUE 21550 . 23164
) (CD.UPDATEWIDTHS 23166 . 23630)) (23633 34338 (CDFILES 23643 . 29740) (CDFILES.MATCH 29742 . 31367)
(CDFILES.PATS 31369 . 34336)) (34339 52357 (CDPRINT 34349 . 36866) (CDPRINT.HEADER 36868 . 37765) (
CDPRINT.LINE 37767 . 41196) (CDPRINT.MAXWIDTHS 41198 . 45313) (CDPRINT.COLHEADERS 45315 . 46600) (
CDPRINT.COLUMNS 46602 . 51722) (CDTEDIT 51724 . 52355)) (52358 61479 (CDMAP 52368 . 53800) (CDENTRY
53802 . 54111) (CDSUBSET 54113 . 55552) (CDMERGE 55554 . 59538) (CDMERGE.COMMON 59540 . 60855) (
CD.SORT 60857 . 61477)) (61480 69018 (BINCOMP 61490 . 65779) (EOLTYPE 65781 . 68343) (EOLTYPE.SHOW
68345 . 69016)) (69546 82073 (FIND-UNCOMPILED-FILES 69556 . 73199) (FIND-UNSOURCED-FILES 73201 . 75585
) (FIND-SOURCE-FILES 75587 . 77325) (FIND-COMPILED-FILES 77327 . 79204) (FIND-UNLOADED-FILES 79206 .
80059) (FIND-LOADED-FILES 80061 . 80489) (FIND-MULTICOMPILED-FILES 80491 . 82071)) (82074 90505 (
CREATED-AS 82084 . 86881) (SOURCE-FOR-COMPILED-P 86883 . 89810) (COMPILE-SOURCE-DATE-DIFF 89812 .
90503)) (90506 101269 (FIX-DIRECTORY-DATES 90516 . 93966) (FIX-EQUIV-DATES 93968 . 95493) (
COPY-COMPARED-FILES 95495 . 97316) (COPY-MISSING-FILES 97318 . 99475) (COMPILED-ON-SAME-SOURCE 99477
. 101267)) (101463 109341 (CDBROWSER 101473 . 105440) (CDBROWSER.STRINGS 105442 . 109339)) (109503
111239 (CD.TABLEITEM 109513 . 109733) (CD.TABLEITEM.PRINTFN 109735 . 109934) (CD.TABLEITEM.COPYFN
109936 . 110994) (CDTABLEBROWSER.HEADING.REPAINTFN 110996 . 111237)) (111240 138091 (
CDTABLEBROWSER.WHENSELECTEDFN 111250 . 111718) (CD.COMMANDSELECTEDFN 111720 . 117893) (CD-MENUFN
117895 . 124372) (CD-COMPARE-FILES 124374 . 127901) (CDBROWSER-COPY 127903 . 132965) (
CDBROWSER-DELETE-FILE 132967 . 137570) (CD-SWAPDIRS 137572 . 138089)))))
(FILEMAP (NIL (2683 23662 (COMPAREDIRECTORIES 2693 . 8028) (COMPAREDIRECTORIES.INFOS 8030 . 11259) (
COMPAREDIRECTORIES.CANDIDATES 11261 . 14646) (CDENTRIES.SELECT 14648 . 19550) (
COMPAREDIRECTORIES.INFOS.TYPE 19552 . 20896) (MATCHNAME 20898 . 21578) (CD.INSURECDVALUE 21580 . 23194
) (CD.UPDATEWIDTHS 23196 . 23660)) (23663 34971 (CDFILES 23673 . 29770) (CDFILES.MATCH 29772 . 31782)
(CDFILES.PATS 31784 . 34969)) (34972 52990 (CDPRINT 34982 . 37499) (CDPRINT.HEADER 37501 . 38398) (
CDPRINT.LINE 38400 . 41829) (CDPRINT.MAXWIDTHS 41831 . 45946) (CDPRINT.COLHEADERS 45948 . 47233) (
CDPRINT.COLUMNS 47235 . 52355) (CDTEDIT 52357 . 52988)) (52991 62112 (CDMAP 53001 . 54433) (CDENTRY
54435 . 54744) (CDSUBSET 54746 . 56185) (CDMERGE 56187 . 60171) (CDMERGE.COMMON 60173 . 61488) (
CD.SORT 61490 . 62110)) (62113 69651 (BINCOMP 62123 . 66412) (EOLTYPE 66414 . 68976) (EOLTYPE.SHOW
68978 . 69649)) (70179 82706 (FIND-UNCOMPILED-FILES 70189 . 73832) (FIND-UNSOURCED-FILES 73834 . 76218
) (FIND-SOURCE-FILES 76220 . 77958) (FIND-COMPILED-FILES 77960 . 79837) (FIND-UNLOADED-FILES 79839 .
80692) (FIND-LOADED-FILES 80694 . 81122) (FIND-MULTICOMPILED-FILES 81124 . 82704)) (82707 91138 (
CREATED-AS 82717 . 87514) (SOURCE-FOR-COMPILED-P 87516 . 90443) (COMPILE-SOURCE-DATE-DIFF 90445 .
91136)) (91139 101902 (FIX-DIRECTORY-DATES 91149 . 94599) (FIX-EQUIV-DATES 94601 . 96126) (
COPY-COMPARED-FILES 96128 . 97949) (COPY-MISSING-FILES 97951 . 100108) (COMPILED-ON-SAME-SOURCE 100110
. 101900)) (102096 109974 (CDBROWSER 102106 . 106073) (CDBROWSER.STRINGS 106075 . 109972)) (110136
111872 (CD.TABLEITEM 110146 . 110366) (CD.TABLEITEM.PRINTFN 110368 . 110567) (CD.TABLEITEM.COPYFN
110569 . 111627) (CDTABLEBROWSER.HEADING.REPAINTFN 111629 . 111870)) (111873 139210 (
CDTABLEBROWSER.WHENSELECTEDFN 111883 . 112351) (CD.COMMANDSELECTEDFN 112353 . 118526) (CD-MENUFN
118528 . 125005) (CD-COMPARE-FILES 125007 . 128534) (CDBROWSER-COPY 128536 . 134084) (
CDBROWSER-DELETE-FILE 134086 . 138689) (CD-SWAPDIRS 138691 . 139208)))))
STOP

Binary file not shown.

52
lispusers/CONVERT-TO-UTF8 Normal file
View File

@@ -0,0 +1,52 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "25-Feb-2026 09:09:57" {WMEDLEY}<lispusers>CONVERT-TO-UTF8.;16 2573
:EDIT-BY rmk
:CHANGES-TO (FNS CONVERT-TO-UTF8)
:PREVIOUS-DATE "24-Feb-2026 22:45:57" {WMEDLEY}<lispusers>CONVERT-TO-UTF8.;14)
(PRETTYCOMPRINT CONVERT-TO-UTF8COMS)
(RPAQQ CONVERT-TO-UTF8COMS ((FNS CONVERT-TO-UTF8)))
(DEFINEQ
(CONVERT-TO-UTF8
[LAMBDA (FILENAME FILETYPE) (* ; "Edited 25-Feb-2026 09:09 by rmk")
(* ;; "This produces a new version of the source FILENAME with :UTF-8 external format.")
(* ;; "If we had a list of problematic functions (multiple definitions on multiple files, MOVD's), we could check that against the functions in FILENAME, and at least produce a warning.")
(* ;; "Compiling may be tricky: some files have CL:COMPILE-FILE FILETYPE properties that don't correspond to the fact that they actually have only an LCOM. This tries to revert the filetype back to FAKE-COMPILE-FILE so that we don't get confused when a DFASL mysteriously appears.")
(SETQ FILENAME (PSEUDOFILENAME FILENAME))
(SETQ FILENAME (OR (FINDFILE FILENAME T)
(ERROR "FILE NOT FOUND" FILENAME)))
(if [EQ :UTF-8 (CL:WITH-OPEN-FILE (STREAM FILENAME :DIRECTION :INPUT)
(fetch (READER-ENVIRONMENT REFORMAT) of (GET-ENVIRONMENT-AND-FILEMAP STREAM
T]
then (PRINTOUT T FILENAME " is already " .P2 :UTF-8 T)
NIL
else (LOAD? (MEDLEYDIR "loadups" 'EXPORTS.ALL)) (* ; "Maybe this should load SYSEDIT ?")
(LOAD FILENAME 'PROP)
(LOADCOMP FILENAME)
(SETQ FILENAME (PACKFILENAME 'VERSION NIL 'BODY FILENAME))
(CL:WHEN [AND (EQ 'CL:COMPILE-FILE (GETPROP (ROOTFILENAME FILENAME)
'FILETYPE))
(FINDFILE (PACKFILENAME 'EXTENSION 'LCOM 'BODY FILENAME))
(NOT (FINDFILE (PACKFILENAME 'EXTENSION 'DFASL 'BODY FILENAME]
(CL:UNLESS FILETYPE (SETQ FILETYPE :FAKE-COMPILE-FILE))
(PRINTOUT T "Changing FILETYPE back to " .P2 FILETYPE T)
(PUTPROP (ROOTFILENAME FILENAME)
'FILETYPE FILETYPE))
[SETQ FILENAME (MAKEFILE FILENAME '(NEW :UTF-8]
(MAKEFILE1 FILENAME NIL '(F))
FILENAME])
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (406 2550 (CONVERT-TO-UTF8 416 . 2548)))))
STOP

Binary file not shown.

Binary file not shown.

View File

@@ -1,13 +1,13 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED "12-Oct-2025 17:39:29" {WMEDLEY}<lispusers>EDITFONT.;41 26261
(FILECREATED "16-Mar-2026 23:19:02" {WMEDLEY}<lispusers>EDITFONT.;42 26474
:EDIT-BY rmk
:CHANGES-TO (RECORDS CHARITEM)
(FNS EF.SAVE)
:CHANGES-TO (FNS EDITFONT)
(RECORDS CHARITEM)
:PREVIOUS-DATE " 7-Oct-2025 14:56:00" {WMEDLEY}<lispusers>EDITFONT.;40)
:PREVIOUS-DATE "12-Oct-2025 17:39:29" {WMEDLEY}<lispusers>EDITFONT.;41)
(PRETTYCOMPRINT EDITFONTCOMS)
@@ -429,7 +429,8 @@
(RETURN FONT])
(EDITFONT
[LAMBDA (FONT CHARSET ROWMAJOR NCOLUMNS TITLETAG) (* ; "Edited 7-Oct-2025 14:55 by rmk")
[LAMBDA (FONT CHARSET ROWMAJOR NCOLUMNS TITLETAG) (* ; "Edited 16-Mar-2026 23:17 by rmk")
(* ; "Edited 7-Oct-2025 14:55 by rmk")
(* ; "Edited 5-Oct-2025 15:06 by rmk")
(* ; "Edited 4-Sep-2025 09:27 by rmk")
(* ; "Edited 29-Aug-2025 22:34 by rmk")
@@ -440,6 +441,8 @@
(* kbr%: "21-Oct-85 15:35")
(* kbr%: "21-Oct-85 15:35")
(SETQ FONT (FONTCREATE FONT))
(CL:UNLESS (EQ 'DISPLAY (FONTPROP FONT 'DEVICE))
(ERROR FONT " is not a display font"))
(SETQ CHARSET (OR (CHARSET.DECODE CHARSET)
0))
(LET (CHARITEMS MENU TITLE HEIGHT WIDTH REGION POS WINDOW)
@@ -494,10 +497,10 @@
(EF.INIT)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (1146 16903 (EF.INIT 1156 . 1790) (EF.PROMPT 1792 . 2374) (EF.MESSAGE 2376 . 2588) (
EF.CLOSEFN 2590 . 3117) (EF.CHARITEMS 3119 . 4955) (EF.BUTTONEVENTFN 4957 . 5369) (EF.WHENSELECTEDFN
5371 . 5775) (EF.EDITBM 5777 . 7271) (EF.MIDDLEBUTTONFN 7273 . 7518) (EF.CHANGESIZE 7520 . 8849) (
EF.DELETE 8851 . 10032) (EF.ENTER 10034 . 10975) (EF.REPLACE 10977 . 11950) (EF.SAVE 11952 . 16195) (
COPYFONT 16197 . 16472) (READSTRIKEFONTFILE 16474 . 16901)) (16904 26073 (BLANKCHARSETCREATE 16914 .
22999) (EDITFONT 23001 . 26071)))))
(FILEMAP (NIL (1147 16904 (EF.INIT 1157 . 1791) (EF.PROMPT 1793 . 2375) (EF.MESSAGE 2377 . 2589) (
EF.CLOSEFN 2591 . 3118) (EF.CHARITEMS 3120 . 4956) (EF.BUTTONEVENTFN 4958 . 5370) (EF.WHENSELECTEDFN
5372 . 5776) (EF.EDITBM 5778 . 7272) (EF.MIDDLEBUTTONFN 7274 . 7519) (EF.CHANGESIZE 7521 . 8850) (
EF.DELETE 8852 . 10033) (EF.ENTER 10035 . 10976) (EF.REPLACE 10978 . 11951) (EF.SAVE 11953 . 16196) (
COPYFONT 16198 . 16473) (READSTRIKEFONTFILE 16475 . 16902)) (16905 26286 (BLANKCHARSETCREATE 16915 .
23000) (EDITFONT 23002 . 26284)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,14 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10 :FORMAT :UTF-8)
(FILECREATED "28-Oct-2025 14:10:06" {WMEDLEY}<lispusers>GITFNS.;569 131593
(FILECREATED "29-Apr-2026 12:51:53" {MEDLEY}<lispusers>GITFNS.;592 137200
:EDIT-BY rmk
:CHANGES-TO (FNS GIT-WORKING-COMPARE-DIRECTORIES GIT-BRANCHES-COMPARE-DIRECTORIES)
:CHANGES-TO (FNS GIT-GWC-COMMAND)
(COMMANDS gwc)
(VARS GITFNSCOMS)
:PREVIOUS-DATE "28-Oct-2025 13:32:16" {WMEDLEY}<lispusers>GITFNS.;568)
:PREVIOUS-DATE "29-Apr-2026 09:00:33" {MEDLEY}<lispusers>GITFNS.;588)
(PRETTYCOMPRINT GITFNSCOMS)
@@ -51,7 +53,7 @@
(INITVARS (GIT-MERGE-COMPARES T)
(GIT-CDBROWSER-SEPARATE-DIRECTIONS T))
(COMMANDS gwc bbc prc cob b? cdg cdw)
(FNS PRC-COMMAND)
(FNS PRC-COMMAND GIT-GWC-COMMAND)
(* ;; "")
@@ -60,7 +62,7 @@
(FNS ALLSUBDIRS MEDLEYSUBDIRS GITSUBDIRS)
(FNS TOGIT FROMGIT)
(FNS MYMEDLEYSUBDIR GITSUBDIR STRIPDIR STRIPHOST STRIPNAME STRIPWHERE)
(FNS WORKINGSUBDIR GITSUBDIR STRIPDIR STRIPHOST STRIPNAME STRIPWHERE)
(FNS GFILE4MFILE MFILE4GFILE GIT-REPO-FILENAME)
(* ;; "")
@@ -74,7 +76,7 @@
(* ;; "Differences")
(FNS GIT-BRANCH-DIFF GIT-COMMIT-DIFFS GIT-BRANCH-RELATIONS)
(FNS GIT-BRANCH-DIFF GIT-COMMIT-DIFFS GIT-BRANCH-RELATIONS GIT-MODIFIED)
(* ;; "")
@@ -169,6 +171,10 @@
(GIT-MAKE-PROJECT
[LAMBDA (PROJECTNAME CLONEPATH WORKINGPATH EXCLUSIONS DEFAULTSUBDIRS)
(* ; "Edited 29-Apr-2026 09:00 by rmk")
(* ; "Edited 17-Apr-2026 12:33 by rmk")
(* ; "Edited 15-Apr-2026 16:33 by rmk")
(* ; "Edited 25-Feb-2026 23:25 by rmk")
(* ; "Edited 25-Oct-2025 16:53 by rmk")
(* ; "Edited 22-Oct-2025 12:45 by rmk")
(* ; "Edited 20-Oct-2025 18:10 by rmk")
@@ -234,9 +240,8 @@
(CL:WHEN (SETQ GITIGNORE (INFILEP (PACKFILENAME.STRING 'NAME ".gitignore" 'BODY
CLONEPATH)))
(SETQ GITIGNORE (CL:WITH-OPEN-FILE (STREAM GITIGNORE :EXTERNAL-FORMAT :UTF-8)
(bind L until (EOFP STREAM)
while (SETQ L (CL:READ-LINE STREAM :EOF-ERROR-P NIL
:EOF-VALUE NIL))
(bind L until (EOFP STREAM) while (SETQ L (CL:READ-LINE
STREAM NIL))
unless (OR (EQ 0 (NCHARS L))
(STRPOS "#" L)) collect L))))
(SETQ EXCLUSIONS (CL:REMOVE-DUPLICATES (APPEND (for E inside EXCLUSIONS
@@ -274,16 +279,17 @@
"")
"for " PROJECTNAME]
(SETQ PROJECT (create GIT-PROJECT
PROJECTNAME _ PROJECTNAME
GITHOST _ (PACK* "{" (PSEUDOHOST PROJECTNAME CLONEPATH)
PROJECTNAME PROJECTNAME
GITHOST (PACK* "{" (PSEUDOHOST (CONCAT "G" PROJECTNAME)
CLONEPATH)
"}")
WHOST _ (AND WORKINGPATH (PACK* "{" (PSEUDOHOST (CONCAT "W"
WHOST (AND WORKINGPATH (PACK* "{" (PSEUDOHOST (CONCAT "W"
PROJECTNAME)
WORKINGPATH)
"}"))
EXCLUSIONS _ EXCLUSIONS
DEFAULTSUBDIRS _ (MKLIST DEFAULTSUBDIRS)
CLONEPATH _ CLONEPATH))
EXCLUSIONS EXCLUSIONS
DEFAULTSUBDIRS (MKLIST DEFAULTSUBDIRS)
CLONEPATH CLONEPATH))
(/RPLACD [OR (ASSOC PROJECTNAME GIT-PROJECTS)
(CAR (push GIT-PROJECTS (CONS PROJECTNAME]
PROJECT)
@@ -358,7 +364,7 @@
(FIND-ANCESTOR-DIRECTORY
[LAMBDA (STARTDIR PREDFN) (* ; "Edited 8-May-2022 12:17 by rmk")
(BIND POS (A _ STARTDIR) WHILE (SETQ POS (STRPOS "/" A -2 NIL NIL NIL FILEDIRCASEARRAY T))
(BIND POS (A STARTDIR) WHILE (SETQ POS (STRPOS "/" A -2 NIL NIL NIL FILEDIRCASEARRAY T))
DO (SETQ A (SUBSTRING A 1 POS))
(CL:WHEN (APPLY* PREDFN A)
(RETURN A])
@@ -372,7 +378,7 @@
(GIT-CLONEP (GIT-PROJECT-PATH PROJECTNAME PROJECTPATH)
T T)
[FIND-ANCESTOR-DIRECTORY PROJECTPATH (FUNCTION (LAMBDA (A)
(BIND D (GEN _ (\GENERATEFILES A NIL NIL 1))
(BIND D (GEN (\GENERATEFILES A NIL NIL 1))
WHILE (SETQ D (\GENERATENEXTFILE GEN))
WHEN (GIT-CLONEP D T)
DO (RETFROM (FUNCTION
@@ -439,18 +445,7 @@
(RPAQ? GIT-CDBROWSER-SEPARATE-DIRECTIONS T)
(DEFCOMMAND gwc (SUBDIR . OTHERS)
(* ;; "Compares the specified local git-medley subdirectories against my working Medley. The SUBDIRS are the arguments up to one that looks like a project")
(LET ((SUBDIRS (AND SUBDIR (CONS SUBDIR OTHERS)))
PROJECT)
(SETQ SUBDIRS (FOR STAIL ON SUBDIRS COLLECT (IF (GIT-GET-PROJECT (CAR STAIL)
NIL T)
THEN (SETQ PROJECT (CAR STAIL))
(GO $$OUT))
(CAR STAIL)))
(GIT-WORKING-COMPARE-DIRECTORIES SUBDIRS NIL NIL NIL T PROJECT)))
(DEFCOMMAND gwc (SUBDIR . OTHERS) (GIT-GWC-COMMAND SUBDIR OTHERS))
(DEFCOMMAND bbc (BRANCH1 BRANCH2 LOCAL PROJECT)
@@ -535,7 +530,8 @@
(DEFINEQ
(PRC-COMMAND
[LAMBDA (REMOTEBRANCH DRAFTS PROJECT) (* ; "Edited 29-Jan-2025 19:19 by rmk")
[LAMBDA (REMOTEBRANCH DRAFTS PROJECT) (* ; "Edited 16-Mar-2026 11:54 by rmk")
(* ; "Edited 29-Jan-2025 19:19 by rmk")
(* ; "Edited 13-May-2024 18:49 by rmk")
(* ; "Edited 2-May-2024 11:44 by rmk")
(* ; "Edited 1-Apr-2024 20:24 by rmk")
@@ -592,7 +588,10 @@
then (SETQ MENUWINDOW (ADDMENU (GIT-BRANCH-MENU (GIT-PRC-BRANCHES DRAFTS
PROJECT PRS)
(CONCAT (LENGTH PRS)
" pull requests"))
" pull requests in "
(GIT-GET-PROJECT PROJECT
'PROJECTNAME))
PROJECT)
NIL NIL T))
(* ;; "Position the new menu just under the current TTY window, to keep it out of the way of the comparison windows. If we have menus open for other projects, those probably should be pushed down to make room for the new menu, and moved up when a higher menu is closed. An edge case that is not worth the effort. ")
@@ -612,6 +611,32 @@
PROJECT))
else (CONCAT "No open " (OR REMOTEBRANCH "")
" pull requests"])
(GIT-GWC-COMMAND
[LAMBDA (SUBDIR OTHERS) (* ; "Edited 29-Apr-2026 12:51 by rmk")
(* ;; "Compares the specified local git-medley subdirectories against my working Medley. The SUBDIRS are the arguments up to one that looks like a project, which may be followed by - and some excluded files")
(LET ((SUBDIRS (AND SUBDIR (CONS SUBDIR OTHERS)))
EXCLUDEDFILES PROJECT)
(SETQ SUBDIRS (for STAIL on SUBDIRS unless (CL:WHEN (AND (NULL PROJECT)
(SETQ PROJECT (GIT-GET-PROJECT
(CAR STAIL)
NIL T)))
(CL:UNLESS (EQ '- (CADR STAIL))
(RETURN $$VAL))
T) collect (CL:WHEN (EQ '- (CAR STAIL))
(SETQ EXCLUDEDFILES
(CDR STAIL))
(RETURN $$VAL))
(CAR STAIL)))
(CL:UNLESS PROJECT
(SETQ PROJECT (GIT-GET-PROJECT PROJECT)))
(if (AND (fetch GITHOST of PROJECT)
(fetch WHOST of PROJECT))
then (GIT-WORKING-COMPARE-DIRECTORIES SUBDIRS NIL EXCLUDEDFILES NIL T PROJECT)
else (PRINTOUT T "gwc requires " (fetch PROJECTNAME of PROJECT)
" to have both git and working directories" T T])
)
@@ -684,7 +709,7 @@
(GIT-MAINBRANCH? (GIT-WHICH-BRANCH PROJECT)
PROJECT)
(FOR MF GF DEST (MEDLEYSUBDIRS _ (MEDLEYSUBDIRS PROJECT)) INSIDE MFILES
(FOR MF GF DEST (MEDLEYSUBDIRS (MEDLEYSUBDIRS PROJECT)) INSIDE MFILES
COLLECT (SETQ MF (OR (FINDFILE MF NIL MEDLEYSUBDIRS)
(ERROR "FILE NOT FOUND" MF)))
(CL:UNLESS (STRING.EQUAL MF (INFILEP (PACKFILENAME 'VERSION NIL 'BODY MF))
@@ -709,7 +734,7 @@
(* ;; "Does anybody call this?")
(SETQ PROJECT (GIT-GET-PROJECT PROJECT))
(FOR GF MF DEST (GITSUBDIRS _ (GITSUBDIRS PROJECT)) INSIDE GFILES
(FOR GF MF DEST (GITSUBDIRS (GITSUBDIRS PROJECT)) INSIDE GFILES
COLLECT (SETQ GF (OR (FINDFILE GF NIL GITSUBDIRS)
(ERROR "FILE NOT FOUND" GF)))
(SETQ MF (MFILE4GFILE GF))
@@ -723,7 +748,7 @@
)
(DEFINEQ
(MYMEDLEYSUBDIR
(WORKINGSUBDIR
[LAMBDA (SUBDIR STAR PROJECT) (* ; "Edited 13-May-2022 10:40 by rmk")
(* ; "Edited 7-May-2022 23:15 by rmk")
(UNSLASHIT (PACK* (PACKFILENAME 'HOST (FETCH WHOST OF PROJECT)
@@ -742,8 +767,8 @@
"")])
(STRIPDIR
[LAMBDA (FILE DIRECTORY) (* ; "Edited 18-Jan-2022 16:09 by rmk")
(* ; "Edited 8-Nov-2021 11:50 by rmk:")
[LAMBDA (FILE DIRECTORY) (* ; "Edited 18-Jan-2022 16:09 by rmk")
(* ; "Edited 8-Nov-2021 11:50 by rmk:")
(IF (STRPOS DIRECTORY FILE 1 NIL T NIL FILEDIRCASEARRAY)
THEN (SUBSTRING FILE (ADD1 (NCHARS DIRECTORY)))
ELSE FILE])
@@ -1023,7 +1048,7 @@
": ")
(IF (EQ (CAR X)
'Comments)
THEN (FOR CC (POS _ (POSITION T)) IN (CDR X)
THEN (FOR CC (POS (POSITION T)) IN (CDR X)
DO (IF (EQ CC T)
THEN (TERPRI T)
ELSE (PRINTOUT T .TAB0 POS CC)))
@@ -1163,7 +1188,7 @@
(* ;; "Returns the identifiers for commits in BRANCH1 but not in BUTNOTBRANCH2")
(GIT-COMMAND (CONCAT "git log --format=%"%%h%" %"" BRANCH1 "%" %"­" BUTNOTBRANCH2 "%"")
(GIT-COMMAND (CONCAT "git log --format=%"%%h%" %"" BRANCH1 "%" %"^" BUTNOTBRANCH2 "%"")
NIL NIL PROJECT])
(GIT-BRANCH-RELATIONS
@@ -1227,6 +1252,16 @@
then (CONS MAIN (DREMOVE MAIN (SORT DATUM)))
else (SORT DATUM]
(RETURN (LIST SUPERSETS EQUALS])
(GIT-MODIFIED
[LAMBDA (PROJECT) (* ; "Edited 25-Dec-2025 13:39 by rmk")
(* ;;
 "A list of files that have been modified M or introduced but not committed ??. see git help status")
(for X POS in (GIT-COMMAND "git status --porcelain")
when (SETQ POS (OR (STRPOS " M " X NIL NIL NIL T)
(STRPOS "?? " X NIL NIL NIL T))) collect (SUBSTRING X POS])
)
@@ -1353,7 +1388,7 @@
(CL:WHEN (thereis B in BRANCHES suchthat (STRPOS "HEAD detached" B))
(PRINTOUT T "Execute %"git gc%" to eliminate a branch with a detached HEAD" T))
(CL:WHEN EXCLUDEMERGED
(SETQ BRANCHES (for B (MAINBRANCH _ (GIT-MAINBRANCH PROJECT 'LOCAL)) in BRANCHES
(SETQ BRANCHES (for B (MAINBRANCH (GIT-MAINBRANCH PROJECT 'LOCAL)) in BRANCHES
when (EQUAL (GIT-COMMAND (CONCAT "git merge-base %"" B "%" %""
MAINBRANCH "%""))
(GIT-COMMAND (CONCAT "git rev-parse %"" B "%"")))
@@ -1384,22 +1419,22 @@
" branches"])
(GIT-BRANCH-MENU
[LAMBDA (BRANCHES TITLE PIN?) (* ; "Edited 1-May-2024 14:36 by rmk")
[LAMBDA (BRANCHES TITLE) (* ; "Edited 18-Apr-2026 21:36 by rmk")
(* ; "Edited 1-May-2024 14:36 by rmk")
(* ; "Edited 6-Jul-2023 22:31 by rmk")
(* ; "Edited 30-Jun-2023 16:58 by rmk")
(* ; "Edited 18-May-2022 13:44 by rmk")
(CL:WHEN (SETQ BRANCHES (MKLIST BRANCHES))
(CL:WHEN PIN?
[SETQ BRANCHES (APPEND BRANCHES '((" Pin menu" 'PinMenu])
(create MENU
TITLE _ (OR TITLE (CONCAT (LENGTH BRANCHES)
TITLE (OR TITLE (CONCAT (LENGTH BRANCHES)
" branches"))
ITEMS _ BRANCHES
MENUFONT _ DEFAULTFONT
WHENSELECTEDFN _ (FUNCTION GIT-BRANCH-WHENSELECTEDFN)))])
ITEMS BRANCHES
MENUFONT DEFAULTFONT
WHENSELECTEDFN (FUNCTION GIT-BRANCH-WHENSELECTEDFN)))])
(GIT-BRANCH-WHENSELECTEDFN
[LAMBDA (ITEM MENU BUTTON) (* ; "Edited 2-Oct-2025 23:08 by rmk")
[LAMBDA (ITEM MENU BUTTON) (* ; "Edited 16-Mar-2026 12:05 by rmk")
(* ; "Edited 2-Oct-2025 23:08 by rmk")
(* ; "Edited 30-Sep-2025 14:58 by rmk")
(* ; "Edited 21-Mar-2025 19:07 by rmk")
(* ; "Edited 11-May-2024 11:05 by rmk")
@@ -1410,9 +1445,11 @@
(LET [(PR (CAR (LAST ITEM]
(if (EQ BUTTON 'MIDDLE)
then (ShellOpen (CONCAT "https://github.com/Interlisp/medley/pull/" (fetch (PULLREQUEST
PRNUMBER)
of PR)))
then (ShellOpen (CONCAT "https://github.com/Interlisp/"
(L-CASE (GIT-GET-PROJECT (fetch PRPROJECT of PR)
'PROJECTNAME))
"/pull/"
(fetch (PULLREQUEST PRNUMBER) of PR)))
else
(* ;; "This prints notices in its own TTY window")
@@ -1446,20 +1483,20 @@
eachtime [SETQ DRAFT (EQ 'true (JSON-GET JSOBJ 'isDraft] when (OR INCLUDEDRAFTS
(NOT DRAFT))
collect [SETQ PR (create PULLREQUEST
PRNUMBER _ (JSON-GET JSOBJ 'number)
PRNAME _ (JSON-GET JSOBJ 'headRefName)
PRDESCRIPTION _ (JSON-GET JSOBJ 'title)
PRSTATUS _ (CL:IF DRAFT
PRNUMBER (JSON-GET JSOBJ 'number)
PRNAME (JSON-GET JSOBJ 'headRefName)
PRDESCRIPTION (JSON-GET JSOBJ 'title)
PRSTATUS (CL:IF DRAFT
'D
(SELECTQ (MKATOM (JSON-GET JSOBJ 'reviewDecision))
(CHANGES¬REQUESTED
(CHANGES_REQUESTED
'C)
(REVIEW¬REQUIRED
(REVIEW_REQUIRED
" ")
'A))
PRPROJECT _ PROJECT
PRURL _ (JSON-GET JSOBJ 'url)
PRLOGIN _ (JSON-GET JSOBJ '(headRepositoryOwner login]
PRPROJECT PROJECT
PRURL (JSON-GET JSOBJ 'url)
PRLOGIN (JSON-GET JSOBJ '(headRepositoryOwner login]
(CL:WHEN (STRPOS ":" (fetch (PULLREQUEST PRNAME) of PR))
(* ;; "From Nick: Git commands to bring install and deal with the remotes:")
@@ -1510,8 +1547,8 @@
(LET ((RELATIONS (GIT-BRANCH-RELATIONS (for PR in PRS
collect (GITORIGIN (fetch PRNAME of PR)))
NIL T PROJECT)))
(SORT (for PR REL LABEL PRNAME STATUS (SUPERSETS _ (CAR RELATIONS))
(EQUALS _ (CADR RELATIONS)) in PRS
(SORT (for PR REL LABEL PRNAME STATUS (SUPERSETS (CAR RELATIONS))
(EQUALS (CADR RELATIONS)) in PRS
eachtime (SETQ PRNAME (fetch PRNAME of PR))
(SETQ LABEL (CONCAT "#" (fetch (PULLREQUEST PRNUMBER) of PR)
" "
@@ -1558,15 +1595,33 @@
(GIT-BRANCH-NUM (OR BRANCH (GIT-WHICH-BRANCH PROJECT T])
(GIT-MY-NEXT-BRANCH
[LAMBDA (PROJECT) (* ; "Edited 19-May-2022 14:08 by rmk")
[LAMBDA (PROJECT) (* ; "Edited 2-Mar-2026 14:00 by rmk")
(* ; "Edited 19-May-2022 14:08 by rmk")
(* ; "Edited 8-Jan-2022 09:43 by rmk")
(* ;; "Figures out the number of my next incremental branch would be. ")
(PACK* (GIT-INITIALS)
(ADD1 (OR (GIT-MY-BRANCHP (GIT-MY-CURRENT-BRANCH PROJECT)
PROJECT)
0])
(LET (PROJECTLIST PROJECTENTRY NEXTNUM)
(CL:WITH-OPEN-FILE (STRM "{LI}GIT-MY-CURRENT-BRANCH-NUMS;1" :DIRECTION :IO
:IF-DOES-NOT-EXIST :CREATE :IF-EXISTS :OVERWRITE)
(SETQ PROJECTLIST (CL:UNLESS (EQ 0 (GETEOFPTR STRM))
(READ STRM)))
(SETQ PROJECTENTRY (ASSOC (GIT-GET-PROJECT PROJECT 'PROJECTNAME)
PROJECTLIST))
(CL:UNLESS PROJECTENTRY
(SETQ PROJECTENTRY (LIST (GIT-GET-PROJECT PROJECT 'PROJECTNAME)
(OR (GIT-MY-BRANCHP (GIT-MY-CURRENT-BRANCH
PROJECT)
PROJECT)
0)))
(push PROJECTLIST PROJECTENTRY))
(SETQ NEXTNUM (ADD1 (CADR PROJECTENTRY)))
(RPLACA (CDR PROJECTENTRY)
NEXTNUM)
(SETFILEPTR STRM 0)
(PRINT PROJECTLIST STRM)
NEXTNUM])
(GIT-MY-BRANCHES
[LAMBDA (PROJECT EXCLUDEMERGED INITS) (* ; "Edited 19-May-2022 19:10 by rmk")
@@ -1647,14 +1702,14 @@
(CL:WHEN (STRPOS "fatal: " (CAR LINES)
1 NIL T)
(ERROR "Could not remove worktree for " BRANCH))
(* (DELFILE (CONCAT PATH "/.DS_Store"))
(* (DELFILE (CONCAT PATH "/.DSStore"))
 (GIT-COMMAND (CONCAT "rmdir " DIR) NIL
 NIL PROJECT))
BRANCH])
(GIT-LIST-WORKTREES
[LAMBDA NIL (* ; "Edited 12-Dec-2021 12:13 by rmk")
(* ; "Edited 19-Nov-2021 18:53 by rmk:")
[LAMBDA NIL (* ; "Edited 12-Dec-2021 12:13 by rmk")
(* ; "Edited 19-Nov-2021 18:53 by rmk:")
(* ;; "The git command tells us what the clone thinks about it, but then we look to see what is actually in our worktrees directory, to make sure that the subdirectory wasn't deleted in a wy that the clone didn't know about.")
@@ -1880,14 +1935,14 @@
(replace (CDENTRY INFO2) of CDE
with (create CDINFO
FULLNAME _ (CADR MAP)
DATE _ (CL:IF (EQ 'R (CADDR MAP))
FULLNAME (CADR MAP)
DATE (CL:IF (EQ 'R (CADDR MAP))
" <-"
" ==")
LENGTH _ ""
AUTHOR _ ""
TYPE _ ""
EOL _ ""))
LENGTH ""
AUTHOR ""
TYPE ""
EOL ""))
(replace (CDENTRY DATEREL) of CDE
with (CADDR MAP]
(TERPRI T)
@@ -1915,6 +1970,8 @@
(GIT-WORKING-COMPARE-DIRECTORIES
[LAMBDA (SUBDIRS SELECT EXCLUDEDFILES FIXDIRECTORYDATES UPDATE PROJECT)
(* ;; "Edited 29-Apr-2026 08:46 by rmk")
(* ;; "Edited 28-Oct-2025 14:00 by rmk")
(* ;; "Edited 25-Oct-2025 23:32 by rmk")
@@ -1925,18 +1982,12 @@
(* ;; "Edited 26-Sep-2023 22:41 by rmk")
(* ;; "Edited 17-Jun-2023 22:54 by rmk")
(* ;; "Edited 10-Jun-2023 21:32 by rmk")
(* ;; "Edited 20-Jul-2022 21:18 by rmk")
(* ;; "Edited 25-Jun-2022 21:37 by rmk")
(* ;; "Edited 17-May-2022 17:39 by rmk")
(* ;; "Edited 10-May-2022 10:41 by rmk")
(* ;;
 "Edited 29-Mar-2022 13:58 by rmk: working medley subdirectories with the current local git branch.")
@@ -1956,19 +2007,21 @@
(LET ((SUBDIRSTRING (if (EQ SUBDIRS 'all)
then (SETQ SUBDIRS (ALLSUBDIRS PROJECT))
"ALL subdirectories"
else SUBDIRS)))
(for SUBDIR TITLE CDVAL (WPROJ _ (CONCAT "Working " (L-CASE (fetch PROJECTNAME of PROJECT)
else SUBDIRS))
(EXCLUSIONS))
(for SUBDIR TITLE CDVAL (WPROJ ← (CONCAT "Working " (L-CASE (fetch PROJECTNAME of PROJECT)
T)))
(NENTRIES _ 0)
(BRANCH2 _ (GIT-WHICH-BRANCH PROJECT T))
(NENTRIES 0)
(BRANCH2 (GIT-WHICH-BRANCH PROJECT T))
first (PRINTOUT T "Comparing " SUBDIRSTRING 6 " of " WPROJ " and Git " BRANCH2 T)
(BKSYSBUF " ") inside SUBDIRS
collect (TERPRI T)
(SETQ CDVAL (COMPAREDIRECTORIES (MYMEDLEYSUBDIR SUBDIR T PROJECT)
(SETQ CDVAL (COMPAREDIRECTORIES (WORKINGSUBDIR SUBDIR T PROJECT)
(GITSUBDIR SUBDIR T PROJECT)
(OR SELECT '(> < ~= -* *-))
'(*.* *>*.* .* *>.*)
(for E DPOS in (GIT-GET-PROJECT PROJECT 'EXCLUSIONS)
(for E DPOS in (APPEND (MKLIST EXCLUDEDFILES)
(GIT-GET-PROJECT PROJECT 'EXCLUSIONS))
collect (SETQ DPOS (STRPOS SUBDIR (FILENAMEFIELD E
'DIRECTORY)
1 NIL T T FILEDIRCASEARRAY))
@@ -2132,12 +2185,12 @@
NIL]
(CL:WHEN (OR COPYITEM COMPAREITEMS)
(SELECTQ (MENU (CREATE MENU
TITLE _ (CONCAT (WINDOWPROP WINDOW 'SUBDIR)
TITLE (CONCAT (WINDOWPROP WINDOW 'SUBDIR)
"/"
(FETCH MATCHNAME OF CDENTRY))
ITEMS _ (APPEND COPYITEM COMPAREITEMS)
MENUFONT _ FONT
MENUTITLEFONT _ FONT))
ITEMS (APPEND COPYITEM COMPAREITEMS)
MENUFONT FONT
MENUTITLEFONT FONT))
(TOGIT (CL:WHEN (TOGIT (FETCH (CDINFO FULLNAME) OF INFO1)
WINDOW)
(IMAGEOBJPROP OBJ 'COPIED T)
@@ -2162,18 +2215,18 @@
NIL)))])
(GIT-CD-LABELFN
[LAMBDA (FILE1 FILE2 USERDATA) (* ; "Edited 5-Jan-2022 15:10 by rmk")
(* ; "Edited 16-Dec-2021 12:25 by rmk")
[LAMBDA (FILE1 FILE2 USERDATA) (* ; "Edited 5-Jan-2022 15:10 by rmk")
(* ; "Edited 16-Dec-2021 12:25 by rmk")
(* ; "Edited 13-Dec-2021 22:13 by rmk")
(DECLARE (USEDFREE CDVALUE))
(LET (NC B LABEL1 LABEL2)
(CL:WHEN (SETQ NC (FETCH NCDIR OF (FETCH CDMAXNC1 OF CDVALUE)))
(SETQ LABEL1 (SLASHIT (SUBSTRING FILE1 (ADD1 NC))
(SETQ LABEL1 (SLASHIT (SUBSTRING FILE1 (ADD1 NC))
T))
(CL:WHEN (SETQ B (LISTGET USERDATA 'BRANCH1))
(SETQ LABEL1 (CONCAT B "/" LABEL1))))
(CL:WHEN (SETQ NC (FETCH NCDIR OF (FETCH CDMAXNC2 OF CDVALUE)))
(SETQ LABEL2 (SLASHIT (SUBSTRING FILE2 (ADD1 NC))
(SETQ LABEL2 (SLASHIT (SUBSTRING FILE2 (ADD1 NC))
T))
(CL:WHEN (SETQ B (LISTGET USERDATA 'BRANCH2))
(SETQ LABEL2 (CONCAT B "/" LABEL2))))
@@ -2181,7 +2234,7 @@
(OR LABEL2 FILE2])
(GIT-CD-MENUFN
[LAMBDA (TBITEM MENUITEM CDBROWSER KEY) (* ; "Edited 28-Oct-2025 11:50 by rmk")
[LAMBDA (TBITEM MENUITEM CDBROWSER KEY) (* ; "Edited 28-Oct-2025 11:30 by rmk")
(* ; "Edited 25-Oct-2025 23:44 by rmk")
(* ; "Edited 21-Sep-2022 21:34 by rmk")
(* ; "Edited 22-May-2022 19:13 by rmk")
@@ -2190,9 +2243,32 @@
(* ;; "MENUITEM is of the form (display-atom <this function> . extrainfo). The selector for the selectq is either the CAR of the extrainfo or the display atom")
(DECLARE (USEDFREE FILE1 FILE2 LABEL2 TYPE CDENTRY USERDATA PWINDOW))
(DECLARE (USEDFREE FILE1 FILE2 LABEL2 TYPE CDENTRY USERDATA))
(SELECTQ (OR (CADDR MENUITEM)
(CAR MENUITEM))
(Delete% -> (FLASHWINDOW PWINDOW)
(GIVE.TTY.PROCESS PWINDOW)
(CL:WHEN [OR (EQ KEY 'MIDDLE)
(EQ 'Y (ASKUSER NIL 'N (CONCAT "Delete " LABEL2 " ? "]
(CDBROWSER-DELETE-FILE CDBROWSER TBITEM 'RIGHT NIL T)))
(|Delete ALL <-|
(FLASHWINDOW PWINDOW)
(GIVE.TTY.PROCESS PWINDOW)
(if (NAMEFIELD LABEL1 T)
then (CL:WHEN [OR (EQ KEY 'MIDDLE)
(EQ 'Y (ASKUSER NIL 'N (CONCAT "Delete ALL versions of "
(NAMEFIELD LABEL1 T)
" ? "]
(CDBROWSER-DELETE-FILE CDBROWSER TBITEM 'LEFT NIL T))
else (PRINTOUT T "Nothing to delete")))
(Delete% BOTH (FLASHWINDOW PWINDOW)
(GIVE.TTY.PROCESS PWINDOW)
(CL:WHEN (EQ 'Y (ASKUSER NIL 'N (CONCAT
"Delete all Medley and git versions of "
(NAMEFIELD LABEL1 T)
" ? ")))
(CDBROWSER-DELETE-FILE CDBROWSER TBITEM 'LEFT NIL T)
(CDBROWSER-DELETE-FILE CDBROWSER TBITEM 'RIGHT NIL T T)))
(Copy% -> (CDBROWSER-COPY CDBROWSER TBITEM 'LEFT (CADDDR MENUITEM)))
(SHOULDNT])
@@ -2367,15 +2443,15 @@
NIL])
(GIT-RESULT-TO-LINES
[LAMBDA (FILE ALL) (* ; "Edited 31-Mar-2025 15:19 by rmk")
[LAMBDA (FILE ALL) (* ; "Edited 25-Feb-2026 23:24 by rmk")
(* ; "Edited 31-Mar-2025 15:19 by rmk")
(* ; "Edited 16-Jul-2022 22:21 by rmk")
(* ;; "Suppress .git lines unless ALL SYSTEM-EXTERNALFORMAT may make the wrong guess, but at least we ensure here that lines get broken.")
(CL:WITH-OPEN-FILE (STREAM FILE :DIRECTION :INPUT :EXTERNAL-FORMAT (LIST (SYSTEM-EXTERNALFORMAT)
'ANY))
(bind LINE until (EOFP STREAM) when [PROGN (SETQ LINE (CL:READ-LINE STREAM :EOF-ERROR-P
NIL :EOF-VALUE NIL))
(bind LINE until (EOFP STREAM) when [PROGN (SETQ LINE (CL:READ-LINE STREAM NIL))
(OR ALL (NOT (STRPOS ".git" LINE 1]
collect LINE])
@@ -2394,32 +2470,33 @@
(PUTPROPS GITFNS FILETYPE :TCOMPL)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (4196 21002 (GIT-CLONEP 4206 . 5637) (GIT-INIT 5639 . 6269) (GIT-MAKE-PROJECT 6271 .
14060) (GIT-GET-PROJECT 14062 . 15987) (GIT-PUT-PROJECT-FIELD 15989 . 17630) (GIT-PROJECT-PATH 17632
. 18676) (FIND-ANCESTOR-DIRECTORY 18678 . 19027) (GIT-FIND-CLONE 19029 . 20110) (GIT-MAINBRANCH 20112
. 20507) (GIT-MAINBRANCH? 20509 . 21000)) (26465 31394 (PRC-COMMAND 26475 . 31392)) (31450 34238 (
ALLSUBDIRS 31460 . 32746) (MEDLEYSUBDIRS 32748 . 33441) (GITSUBDIRS 33443 . 34236)) (34239 36640 (
TOGIT 34249 . 35655) (FROMGIT 35657 . 36638)) (36641 39644 (MYMEDLEYSUBDIR 36651 . 37107) (GITSUBDIR
37109 . 37552) (STRIPDIR 37554 . 37925) (STRIPHOST 37927 . 38167) (STRIPNAME 38169 . 38922) (
STRIPWHERE 38924 . 39642)) (39645 41880 (GFILE4MFILE 39655 . 40351) (MFILE4GFILE 40353 . 40922) (
GIT-REPO-FILENAME 40924 . 41878)) (41929 52184 (GIT-COMMIT 41939 . 42765) (GIT-PUSH 42767 . 43527) (
GIT-PULL 43529 . 44281) (GIT-APPROVAL 44283 . 44632) (GIT-GET-FILE 44634 . 46549) (GIT-FILE-EXISTS?
46551 . 46825) (GIT-REMOTE-UPDATE 46827 . 47662) (GIT-REMOTE-ADD 47664 . 47971) (GIT-FILE-DATE 47973
. 49020) (GIT-FILE-HISTORY 49022 . 50956) (GIT-PRINT-FILE-HISTORY 50958 . 52008) (GIT-FETCH 52010 .
52182)) (52214 63694 (GIT-BRANCH-DIFF 52224 . 59113) (GIT-COMMIT-DIFFS 59115 . 60006) (
GIT-BRANCH-RELATIONS 60008 . 63692)) (63739 82478 (GIT-BRANCH-NUM 63749 . 64322) (GIT-CHECKOUT 64324
. 65610) (GIT-WHICH-BRANCH 65612 . 66019) (GIT-MAKE-BRANCH 66021 . 68600) (GIT-BRANCHES 68602 . 71197
) (GIT-BRANCH-EXISTS? 71199 . 72070) (GIT-PICK-BRANCH 72072 . 72562) (GIT-BRANCH-MENU 72564 . 73445) (
GIT-BRANCH-WHENSELECTEDFN 73447 . 74986) (GIT-PULL-REQUESTS 74988 . 78859) (GIT-SHORT-BRANCH-NAME
78861 . 79152) (GIT-LONG-NAME 79154 . 79471) (GIT-PRC-BRANCHES 79473 . 82476)) (82508 85956 (
GIT-MY-CURRENT-BRANCH 82518 . 82888) (GIT-MY-BRANCHP 82890 . 83508) (GIT-MY-NEXT-BRANCH 83510 . 84004)
(GIT-MY-BRANCHES 84006 . 85954)) (86002 90077 (GIT-ADD-WORKTREE 86012 . 87619) (GIT-REMOVE-WORKTREE
87621 . 88551) (GIT-LIST-WORKTREES 88553 . 89357) (WORKTREEDIR 89359 . 90075)) (90125 123133 (
GIT-GET-DIFFERENT-FILES 90135 . 97043) (GIT-BRANCHES-COMPARE-DIRECTORIES 97045 . 104672) (
GIT-WORKING-COMPARE-DIRECTORIES 104674 . 110470) (GIT-COMPARE-WORKTREE 110472 . 114450) (
GITCDOBJBUTTONFN 114452 . 118942) (GIT-CD-LABELFN 118944 . 120026) (GIT-CD-MENUFN 120028 . 121114) (
GIT-WORKING-COMPARE-FILES 121116 . 121736) (GIT-BRANCHES-COMPARE-FILES 121738 . 122902) (
GIT-PR-COMPARE 122904 . 123131)) (123203 131526 (CDGITDIR 123213 . 123900) (GIT-COMMAND 123902 .
125460) (GITORIGIN 125462 . 126159) (GIT-INITIALS 126161 . 126465) (GIT-COMMAND-TO-FILE 126467 .
129952) (GIT-RESULT-TO-LINES 129954 . 130859) (STRIPLOCAL 130861 . 131524)))))
(FILEMAP (NIL (4257 21537 (GIT-CLONEP 4267 . 5698) (GIT-INIT 5700 . 6330) (GIT-MAKE-PROJECT 6332 .
14591) (GIT-GET-PROJECT 14593 . 16518) (GIT-PUT-PROJECT-FIELD 16520 . 18161) (GIT-PROJECT-PATH 18163
. 19207) (FIND-ANCESTOR-DIRECTORY 19209 . 19560) (GIT-FIND-CLONE 19562 . 20645) (GIT-MAINBRANCH 20647
. 21042) (GIT-MAINBRANCH? 21044 . 21535)) (26309 33483 (PRC-COMMAND 26319 . 31601) (GIT-GWC-COMMAND
31603 . 33481)) (33539 36327 (ALLSUBDIRS 33549 . 34835) (MEDLEYSUBDIRS 34837 . 35530) (GITSUBDIRS
35532 . 36325)) (36328 38733 (TOGIT 36338 . 37746) (FROMGIT 37748 . 38731)) (38734 41743 (
WORKINGSUBDIR 38744 . 39199) (GITSUBDIR 39201 . 39644) (STRIPDIR 39646 . 40024) (STRIPHOST 40026 .
40266) (STRIPNAME 40268 . 41021) (STRIPWHERE 41023 . 41741)) (41744 43979 (GFILE4MFILE 41754 . 42450)
(MFILE4GFILE 42452 . 43021) (GIT-REPO-FILENAME 43023 . 43977)) (44028 54285 (GIT-COMMIT 44038 . 44864)
(GIT-PUSH 44866 . 45626) (GIT-PULL 45628 . 46380) (GIT-APPROVAL 46382 . 46731) (GIT-GET-FILE 46733 .
48648) (GIT-FILE-EXISTS? 48650 . 48924) (GIT-REMOTE-UPDATE 48926 . 49761) (GIT-REMOTE-ADD 49763 .
50070) (GIT-FILE-DATE 50072 . 51119) (GIT-FILE-HISTORY 51121 . 53055) (GIT-PRINT-FILE-HISTORY 53057 .
54109) (GIT-FETCH 54111 . 54283)) (54315 66267 (GIT-BRANCH-DIFF 54325 . 61214) (GIT-COMMIT-DIFFS 61216
. 62107) (GIT-BRANCH-RELATIONS 62109 . 65793) (GIT-MODIFIED 65795 . 66265)) (66312 85259 (
GIT-BRANCH-NUM 66322 . 66895) (GIT-CHECKOUT 66897 . 68183) (GIT-WHICH-BRANCH 68185 . 68592) (
GIT-MAKE-BRANCH 68594 . 71173) (GIT-BRANCHES 71175 . 73772) (GIT-BRANCH-EXISTS? 73774 . 74645) (
GIT-PICK-BRANCH 74647 . 75137) (GIT-BRANCH-MENU 75139 . 76040) (GIT-BRANCH-WHENSELECTEDFN 76042 .
77749) (GIT-PULL-REQUESTS 77751 . 81636) (GIT-SHORT-BRANCH-NAME 81638 . 81929) (GIT-LONG-NAME 81931 .
82248) (GIT-PRC-BRANCHES 82250 . 85257)) (85289 90043 (GIT-MY-CURRENT-BRANCH 85299 . 85669) (
GIT-MY-BRANCHP 85671 . 86289) (GIT-MY-NEXT-BRANCH 86291 . 88091) (GIT-MY-BRANCHES 88093 . 90041)) (
90089 94173 (GIT-ADD-WORKTREE 90099 . 91706) (GIT-REMOVE-WORKTREE 91708 . 92640) (GIT-LIST-WORKTREES
92642 . 93453) (WORKTREEDIR 93455 . 94171)) (94221 128732 (GIT-GET-DIFFERENT-FILES 94231 . 101139) (
GIT-BRANCHES-COMPARE-DIRECTORIES 101141 . 108780) (GIT-WORKING-COMPARE-DIRECTORIES 108782 . 114597) (
GIT-COMPARE-WORKTREE 114599 . 118577) (GITCDOBJBUTTONFN 118579 . 123077) (GIT-CD-LABELFN 123079 .
124165) (GIT-CD-MENUFN 124167 . 126713) (GIT-WORKING-COMPARE-FILES 126715 . 127335) (
GIT-BRANCHES-COMPARE-FILES 127337 . 128501) (GIT-PR-COMPARE 128503 . 128730)) (128802 137133 (CDGITDIR
128812 . 129499) (GIT-COMMAND 129501 . 131059) (GITORIGIN 131061 . 131758) (GIT-INITIALS 131760 .
132064) (GIT-COMMAND-TO-FILE 132066 . 135551) (GIT-RESULT-TO-LINES 135553 . 136466) (STRIPLOCAL 136468
. 137131)))))
STOP

Binary file not shown.

Binary file not shown.

View File

@@ -1,13 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED "27-Jan-2026 13:21:10" {WMEDLEY}<lispusers>HELPSYS.;21 88654
(FILECREATED "20-Apr-2026 08:07:50" {MEDLEY}<lispusers>HELPSYS.;24 89018
:EDIT-BY rmk
:CHANGES-TO (FNS DOCS.LOOKUP GENERIC.MAN.LOOKUP)
(VARS HELPSYSCOMS)
:CHANGES-TO (FNS REPO.LOOKUP)
:PREVIOUS-DATE " 5-May-2025 22:04:32" {WMEDLEY}<lispusers>HELPSYS.;15)
:PREVIOUS-DATE "27-Jan-2026 13:21:10" {MEDLEY}<lispusers>HELPSYS.;21)
(PRETTYCOMPRINT HELPSYSCOMS)
@@ -340,21 +339,27 @@
else "git web--browse"])
(REPO.LOOKUP
[LAMBDA (ENTRY TYPES) (* ; "Edited 13-Jan-2023 10:46 by lmm")
[LAMBDA (ENTRY TYPES) (* ; "Edited 20-Apr-2026 08:06 by rmk")
(* ; "Edited 13-Jan-2023 10:46 by lmm")
(* ; "Edited 16-Aug-2022 16:26 by lmm")
(for FL in (UNION (WHEREIS ENTRY (OR TYPES HELPSYS.REPO.TYPES)
T)
(LIST ENTRY)) bind POS FND
(for FL POS FND TSTREAM in (UNION (WHEREIS ENTRY (OR TYPES HELPSYS.REPO.TYPES)
T)
(LIST ENTRY))
when [SETQ FND (OR (FINDFILE-WITH-EXTENSIONS FL NIL '(TEDIT TXT TED))
(AND (SETQ POS (STRPOS "-" FL))
(FINDFILE-WITH-EXTENSIONS (SUBSTRING FL 1 (CL:1- POS))
NIL
'(TEDIT TXT TTY TED]
join (CL:WITH-OPEN-FILE (STR (PATHNAME FND)
:DIRECTION :INPUT)
(CL:WHEN (SETQ POS (FFILEPOS ENTRY STR))
(TEDIT-SEE STR NIL NIL (CL:FORMAT NIL "~a [~a]" FL ENTRY))
(LIST FL))])
collect (SETQ TSTREAM (OPENTEXTSTREAM FND))
[TEDIT TSTREAM NIL NIL `(READONLY T LEAVETTY T FONT ,DEFAULTFONT TITLE
,(CL:IF (EQ FL ENTRY)
FL
(CONCAT ENTRY " on " FL))]
(CL:UNLESS (EQ FL ENTRY)
(CL:WHEN (SETQ POS (TEDIT.FIND TSTREAM ENTRY))
(TEDIT.SETSEL TSTREAM POS (NCHARS ENTRY))
(TEDIT.NORMALIZECARET TSTREAM)))
FL])
)
(RPAQQ CLHS.INDEX
@@ -1716,14 +1721,14 @@
(PUTPROPS HELPSYS FILETYPE :FAKE-COMPILE-FILE)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (4640 10992 (HELPSYS 4650 . 6491) (IRM.LOOKUP 6493 . 8131) (GENERIC.MAN.LOOKUP 8133 .
10001) (IRM.SMART.LOOKUP 10003 . 10159) (IRM.RESET 10161 . 10570) (DOCS.LOOKUP 10572 . 10990)) (11249
18568 (CLHS.INDEX 11259 . 14223) (CLHS.LOOKUP 14225 . 16231) (CLHS.OPENER 16233 . 17556) (REPO.LOOKUP
17558 . 18566)) (71663 73181 (IRM.GET.DINFOGRAPH 71673 . 72548) (IRM.DISPLAY.REF 72550 . 73179)) (
73183 73545 (IRM.LOAD-GRAPH 73183 . 73545)) (73870 79374 (IRM.DISPLAY.CREF 73880 . 75594) (
IRM.CREF.BOX 75596 . 76423) (IRM.PUT.CREF 76425 . 76650) (IRM.GET.CREF 76652 . 77023) (
IRM.CREF.BUTTONEVENTFN 77025 . 79372)) (79929 88235 (\IRM.GET.REF 79939 . 81270) (\IRM.SMART.REF 81272
. 83199) (\IRM.CHOOSE.REF 83201 . 84452) (\IRM.WILD.REF 84454 . 85709) (\IRM.WILDCARD 85711 . 86077)
(\IRM.WILD.MATCH 86079 . 87309) (\IRM.GET.HASHFILE 87311 . 87774) (\IRM.GET.KEYWORDS 87776 . 88233)) (
88372 88528 (\IRM.AROUND-EXIT 88372 . 88528)))))
(FILEMAP (NIL (4582 10934 (HELPSYS 4592 . 6433) (IRM.LOOKUP 6435 . 8073) (GENERIC.MAN.LOOKUP 8075 .
9943) (IRM.SMART.LOOKUP 9945 . 10101) (IRM.RESET 10103 . 10512) (DOCS.LOOKUP 10514 . 10932)) (11191
18932 (CLHS.INDEX 11201 . 14165) (CLHS.LOOKUP 14167 . 16173) (CLHS.OPENER 16175 . 17498) (REPO.LOOKUP
17500 . 18930)) (72027 73545 (IRM.GET.DINFOGRAPH 72037 . 72912) (IRM.DISPLAY.REF 72914 . 73543)) (
73547 73909 (IRM.LOAD-GRAPH 73547 . 73909)) (74234 79738 (IRM.DISPLAY.CREF 74244 . 75958) (
IRM.CREF.BOX 75960 . 76787) (IRM.PUT.CREF 76789 . 77014) (IRM.GET.CREF 77016 . 77387) (
IRM.CREF.BUTTONEVENTFN 77389 . 79736)) (80293 88599 (\IRM.GET.REF 80303 . 81634) (\IRM.SMART.REF 81636
. 83563) (\IRM.CHOOSE.REF 83565 . 84816) (\IRM.WILD.REF 84818 . 86073) (\IRM.WILDCARD 86075 . 86441)
(\IRM.WILD.MATCH 86443 . 87673) (\IRM.GET.HASHFILE 87675 . 88138) (\IRM.GET.KEYWORDS 88140 . 88597)) (
88736 88892 (\IRM.AROUND-EXIT 88736 . 88892)))))
STOP

Binary file not shown.

View File

@@ -1,24 +0,0 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "12-Aug-2022 12:29:18" {DSK}<home>larry>medley>lispusers>UNIXYCD.;1 568
:CHANGES-TO (VARS UNIXYCDCOMS)
:PREVIOUS-DATE "12-Aug-2022 11:14:47" {DSK}<home>larry>medley>lispusers>UNIXYCD.;1)
(PRETTYCOMPRINT UNIXYCDCOMS)
(RPAQQ UNIXYCDCOMS ((COMMANDS "cd" "ls" "pwd")))
(DEFCOMMAND "cd" (DIR)
(/CNDIR DIR))
(DEFCOMMAND "ls" (FIRST . REST)
(DODIR (CONS FIRST REST)))
(DEFCOMMAND "pwd" ()
(DIRECTORYNAME T))
(DECLARE%: DONTCOPY
(FILEMAP (NIL)))
STOP

View File

@@ -1,13 +0,0 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "12-Aug-2022 12:29:30" ("compiled on " {DSK}<home>larry>medley>lispusers>UNIXYCD.;1)
"12-Aug-2022 10:18:11" bcompl'd in "Welcome to Fuller sysout 12-Aug-2022 ..." dated
"12-Aug-2022 10:22:21")
(FILECREATED "12-Aug-2022 12:29:18" {DSK}<home>larry>medley>lispusers>UNIXYCD.;1 568 :CHANGES-TO (VARS
UNIXYCDCOMS) :PREVIOUS-DATE "12-Aug-2022 11:14:47" {DSK}<home>larry>medley>lispusers>UNIXYCD.;1)
(PRETTYCOMPRINT UNIXYCDCOMS)
(RPAQQ UNIXYCDCOMS ((COMMANDS "cd" "ls" "pwd")))
(DEFCOMMAND "cd" (DIR) (/CNDIR DIR))
(DEFCOMMAND "ls" (FIRST . REST) (DODIR (CONS FIRST REST)))
(DEFCOMMAND "pwd" NIL (DIRECTORYNAME T))
NIL

View File

@@ -1,13 +0,0 @@
UNIXYCD & .LCOM .TXT
This file implements little commands:
cd change Lisp's current directory to home
cd dir dir can be a path separated by / or >.
if no "hostname" is given, it's assumed {DSK}
ls [dir] list current directory or a directory that's given
non-feature: ls foo only prints foo; you need to
specify ls foo/
pwd print working directory

View File

@@ -1,22 +1,21 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10 :FORMAT :UTF-8)
(FILECREATED "27-Jan-2025 08:49:34" {WMEDLEY}<lispusers>VERSIONDEFS.;12 5880
(FILECREATED " 7-Mar-2026 22:55:43" {WMEDLEY}<lispusers>VERSIONDEFS.;18 6534
:EDIT-BY rmk
:CHANGES-TO (FNS GETVINFO)
:PREVIOUS-DATE "12-Dec-2024 15:07:45" {WMEDLEY}<lispusers>VERSIONDEFS.;11)
:PREVIOUS-DATE " 6-Mar-2026 22:47:25" {WMEDLEY}<lispusers>VERSIONDEFS.;17)
(PRETTYCOMPRINT VERSIONDEFSCOMS)
(RPAQQ VERSIONDEFSCOMS [(FNS FINDFILEVERSION GETVINFO VERSIONP)
(FNS EDV DFV)
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS
(ADDVARS (NLAMA DFV EDV)
(NLAML)
(LAMA])
(RPAQQ VERSIONDEFSCOMS
[(FNS FINDFILEVERSION GETVINFO VERSIONP)
(FNS EDV DFV)
(PROP ARGNAMES EDV DFV)
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA DFV EDV)
(NLAML)
(LAMA])
(DEFINEQ
(FINDFILEVERSION
@@ -119,16 +118,26 @@
(CAR VINFO])
(DFV
[NLAMBDA ARGS (* ; "Edited 6-Dec-2024 21:29 by rmk")
[NLAMBDA ARGS (* ; "Edited 6-Mar-2026 22:42 by rmk")
(* ; "Edited 6-Dec-2024 21:29 by rmk")
(* ; "Edited 2-Dec-2024 00:08 by rmk")
(SETQ ARGS (MKLIST ARGS))
(APPLY (FUNCTION EDV)
(LIST (POP ARGS)
NIL
(POP ARGS)
(POP ARGS)
(POP ARGS])
(LET ((NAME (POP ARGS))) (* ; "If FNS and FUNCTIONS, show both")
(CL:WHEN (HASDEF NAME 'FUNCTIONS '?)
(APPLY (FUNCTION EDV)
(LIST NAME 'FUNCTIONS (POP ARGS)
(POP ARGS)
(POP ARGS))))
(CL:WHEN (HASDEF NAME 'FNS '?)
(APPLY (FUNCTION EDV)
(LIST NAME 'FNS (POP ARGS)
(POP ARGS)
(POP ARGS))))])
)
(PUTPROPS EDV ARGNAMES (NAME TYPE FILE VERSION DIRLST . VINFO))
(PUTPROPS DFV ARGNAMES (NAME FILE VERSION DIRLST . VINFO))
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS
(ADDTOVAR NLAMA DFV EDV)
@@ -138,6 +147,6 @@
(ADDTOVAR LAMA )
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (671 4570 (FINDFILEVERSION 681 . 2128) (GETVINFO 2130 . 4253) (VERSIONP 4255 . 4568)) (
4571 5717 (EDV 4581 . 5281) (DFV 5283 . 5715)))))
(FILEMAP (NIL (706 4605 (FINDFILEVERSION 716 . 2163) (GETVINFO 2165 . 4288) (VERSIONP 4290 . 4603)) (
4606 6230 (EDV 4616 . 5316) (DFV 5318 . 6228)))))
STOP

Binary file not shown.

Binary file not shown.

View File

@@ -57,7 +57,12 @@ main() {
# save dribble file to loadups; extract and save fails
"${MEDLEYDIR}"/scripts/cpv ${logindir}/HCFILES.DRIBBLE "${MEDLEYDIR}"/loadups/hcfiles.dribble
grep "IL:FAIL" < "${MEDLEYDIR}"/loadups/hcfiles.dribble > ${logindir}/fails
if [ -f "$(command -v perl)" ] && [ -x "$(command -v perl)" ]
then
perl "${MEDLEYDIR}"/scripts/getFails.pl '^[^\n]*IL:FAIL' 'DONE' "${MEDLEYDIR}"/loadups/hcfiles.dribble > ${logindir}/fails
else
echo Unable to extract FAIL information from "${MEDLEYDIR}"/loadups/hcfiles.dribble > ${logindir}/fails
fi
"${MEDLEYDIR}"/scripts/cpv ${logindir}/fails "${MEDLEYDIR}"/loadups/hcfiles-fails.txt
# cleanup

31
scripts/getFails.pl Normal file
View File

@@ -0,0 +1,31 @@
#!/usr/bin/env perl
use strict;
use warnings;
die "Usage: $0 <pattern1> <pattern2> [file...]\n" unless @ARGV >= 2;
my $pat1 = shift;
my $pat2 = shift;
my $regex1line = qr/${pat1}.*?${pat2}/; # all on 1 line
my $regexStart = qr/${pat1}/; # the line has the start pattern
my $regexEnd = qr/${pat2}/; # the line has the end pattern
my $flag = 0;
while (<>) {
if ($flag) { # we're in a multi-line block
print;
if (/$regexEnd/) { # does this line end the multi-line block?
$flag = 0;
print "\n"; # separator
};
}
elsif (/$regex1line/) { # all on 1 line
print;
print "\n"; # separator
}
elsif (/$regexStart/) { # begin a multi-line block
print;
$flag = 1;
}
}

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED "25-Feb-2026 15:03:24" {WMEDLEY}<sources>BOOTSTRAP.;69 47041
(FILECREATED " 2-Mar-2026 12:03:05" {WMEDLEY}<sources>BOOTSTRAP.;71 47856
:EDIT-BY rmk
:CHANGES-TO (FNS MAKE-DEFINE-FILE-INFO-ENV READ-READER-ENVIRONMENT)
:CHANGES-TO (FNS READ-READER-ENVIRONMENT)
:PREVIOUS-DATE "25-Feb-2026 13:52:00" {WMEDLEY}<sources>BOOTSTRAP.;66)
:PREVIOUS-DATE "25-Feb-2026 15:03:24" {WMEDLEY}<sources>BOOTSTRAP.;69)
(PRETTYCOMPRINT BOOTSTRAPCOMS)
@@ -800,7 +800,9 @@
(TERPRI STREAM)))])
(READ-READER-ENVIRONMENT
[LAMBDA (STREAM DEFAULTENV RETURNFORM) (* ; "Edited 25-Feb-2026 14:15 by rmk")
[LAMBDA (STREAM DEFAULTENV RETURNFORM) (* ; "Edited 2-Mar-2026 12:03 by rmk")
(* ; "Edited 1-Mar-2026 10:49 by rmk")
(* ; "Edited 25-Feb-2026 14:15 by rmk")
(* ; "Edited 26-Sep-2021 23:31 by rmk:")
(* ;; "Starting environment is the old interlisp file, just for the seprchar scans.")
@@ -809,42 +811,49 @@
(* ;; "RETURNFORM=T means return the DEFINE-FILE-INFO as a second value, for READFILE")
(CL:UNLESS DEFAULTENV (SETQ DEFAULTENV *OLD-INTERLISP-READ-ENVIRONMENT*))
(LET ((START (GETFILEPTR STREAM))
ARGS
(ENV DEFAULTENV)
(*READTABLE* (FETCH (READER-ENVIRONMENT REREADTABLE) OF *OLD-INTERLISP-READ-ENVIRONMENT*)))
(DECLARE (SPECVARS *READTABLE*))
(SETFILEPTR STREAM 0) (* ; "Hope we are RANDACCESSP")
(SELCHARQ (SKIPSEPRCODES STREAM)
(";" (* ; "Assume it's a common lisp file")
(\EXTERNALFORMAT STREAM (FETCH (READER-ENVIRONMENT REFORMAT) OF
(if (\GETSTREAM STREAM 'INPUT T)
then (CL:UNLESS DEFAULTENV (SETQ DEFAULTENV *OLD-INTERLISP-READ-ENVIRONMENT*))
(LET ((START (GETFILEPTR STREAM))
ARGS
(ENV DEFAULTENV)
(*READTABLE* (FETCH (READER-ENVIRONMENT REREADTABLE) OF
*OLD-INTERLISP-READ-ENVIRONMENT*
)))
(DECLARE (SPECVARS *READTABLE*))
(SETFILEPTR STREAM 0) (* ; "Hope we are RANDACCESSP")
(SELCHARQ (SKIPSEPRCODES STREAM)
(";" (* ; "Assume it's a common lisp file")
(\EXTERNALFORMAT STREAM (FETCH (READER-ENVIRONMENT REFORMAT) OF
*COMMON-LISP-READ-ENVIRONMENT*
))
*COMMON-LISP-READ-ENVIRONMENT*)
("(" (\EXTERNALFORMAT STREAM (FETCH (READER-ENVIRONMENT REFORMAT) OF
))
*COMMON-LISP-READ-ENVIRONMENT*)
("(" (\EXTERNALFORMAT STREAM (FETCH (READER-ENVIRONMENT REFORMAT) OF
*DEFINE-FILE-INFO-ENV*
)) (* ;
))(* ;
 "Should we reset the format if we fail?")
(READCCODE STREAM)
(WITH-READER-ENVIRONMENT *DEFINE-FILE-INFO-ENV*
(if (STREQUAL "DEFINE-FILE-INFO" (RSTRING STREAM))
then
(* ;;
(READCCODE STREAM)
(WITH-READER-ENVIRONMENT *DEFINE-FILE-INFO-ENV*
(if (STREQUAL "DEFINE-FILE-INFO" (RSTRING STREAM))
then
(* ;;
 "After the \DO-DEFINE-FILE-INFO, we have the new environment and we have set the new format.")
(SETQ ARGS (CL:READ-DELIMITED-LIST (CHARCODE ")")
STREAM))
(SETQ ENV (\DO-DEFINE-FILE-INFO STREAM ARGS))
else (SETFILEPTR STREAM START))
(SETQ ARGS (CL:READ-DELIMITED-LIST (CHARCODE ")")
STREAM))
(SETQ ENV (\DO-DEFINE-FILE-INFO STREAM ARGS))
else (SETFILEPTR STREAM START))
(* ;;
(* ;;
 "If we didn't see ARGS, then we didn't see a DEFINE-FILE-INFO, no form to return.")
(CL:IF (AND RETURNFORM ARGS)
(CL:VALUES ENV (CONS 'DEFINE-FILE-INFO ARGS))
ENV)))
DEFAULTENV])
(CL:IF (AND RETURNFORM ARGS)
(CL:VALUES ENV (CONS 'DEFINE-FILE-INFO ARGS))
ENV)))
DEFAULTENV))
else (CL:WITH-OPEN-FILE (STRM (OR (FINDFILE STREAM T)
STREAM)
:DIRECTION :INPUT)
(READ-READER-ENVIRONMENT STRM DEFAULTENV RETURNFORM])
(MAKE-DEFINE-FILE-INFO-ENV
[LAMBDA NIL (* ; "Edited 25-Feb-2026 15:03 by rmk")
@@ -969,13 +978,13 @@
(ADDTOVAR LAMA )
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (4621 14293 (GETPROP 4631 . 5203) (SETATOMVAL 5205 . 5334) (RPAQQ 5336 . 5389) (RPAQ
5391 . 5703) (RPAQ? 5705 . 6075) (MOVD 6077 . 7941) (MOVD? 7943 . 8373) (SELECTQ 8375 . 8562) (
SELECTQ1 8564 . 8906) (NCONC1 8908 . 9104) (PUTPROP 9106 . 10590) (PROPNAMES 10592 . 10783) (ADDPROP
10785 . 12848) (REMPROP 12850 . 13704) (MEMB 13706 . 13965) (CLOSEF? 13967 . 14291)) (14366 34343 (
LOAD 14376 . 15545) (\LOAD-STREAM 15547 . 28034) (FILECREATED 28036 . 29454) (FILECREATED1 29456 .
30564) (PRETTYCOMPRINT 30566 . 31051) (BOOTSTRAP-NAMEFIELD 31053 . 32013) (PUTPROPS 32015 . 32383) (
DECLARE%: 32385 . 32517) (DECLARE%:1 32519 . 33391) (ROOTFILENAME 33393 . 34341)) (34381 44987 (
DEFINE-FILE-INFO 34391 . 34826) (\DO-DEFINE-FILE-INFO 34828 . 38971) (PRINT-READER-ENVIRONMENT 38973
. 40725) (READ-READER-ENVIRONMENT 40727 . 43553) (MAKE-DEFINE-FILE-INFO-ENV 43555 . 44985)))))
(FILEMAP (NIL (4595 14267 (GETPROP 4605 . 5177) (SETATOMVAL 5179 . 5308) (RPAQQ 5310 . 5363) (RPAQ
5365 . 5677) (RPAQ? 5679 . 6049) (MOVD 6051 . 7915) (MOVD? 7917 . 8347) (SELECTQ 8349 . 8536) (
SELECTQ1 8538 . 8880) (NCONC1 8882 . 9078) (PUTPROP 9080 . 10564) (PROPNAMES 10566 . 10757) (ADDPROP
10759 . 12822) (REMPROP 12824 . 13678) (MEMB 13680 . 13939) (CLOSEF? 13941 . 14265)) (14340 34317 (
LOAD 14350 . 15519) (\LOAD-STREAM 15521 . 28008) (FILECREATED 28010 . 29428) (FILECREATED1 29430 .
30538) (PRETTYCOMPRINT 30540 . 31025) (BOOTSTRAP-NAMEFIELD 31027 . 31987) (PUTPROPS 31989 . 32357) (
DECLARE%: 32359 . 32491) (DECLARE%:1 32493 . 33365) (ROOTFILENAME 33367 . 34315)) (34355 45802 (
DEFINE-FILE-INFO 34365 . 34800) (\DO-DEFINE-FILE-INFO 34802 . 38945) (PRINT-READER-ENVIRONMENT 38947
. 40699) (READ-READER-ENVIRONMENT 40701 . 44368) (MAKE-DEFINE-FILE-INFO-ENV 44370 . 45800)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED "11-Sep-2025 16:49:07" {WMEDLEY}<sources>COREIO.;18 56903
(FILECREATED "28-Feb-2026 12:09:38" {WMEDLEY}<sources>COREIO.;20 57201
:EDIT-BY rmk
:CHANGES-TO (FNS \CORE.DIRECTORYNAMEP)
:PREVIOUS-DATE " 5-Jun-2022 00:14:07" {WMEDLEY}<sources>COREIO.;17)
:PREVIOUS-DATE "11-Sep-2025 16:49:07" {WMEDLEY}<sources>COREIO.;18)
(PRETTYCOMPRINT COREIOCOMS)
@@ -89,6 +89,8 @@
(\CORE.DIRECTORYNAMEP
[LAMBDA (DIRNAME DEV)
(* ;; "Edited 28-Feb-2026 12:08 by rmk")
(* ;; "Edited 11-Sep-2025 16:48 by rmk")
(* ;; "Edited 18-Jan-2022 11:17 by rmk")
@@ -106,18 +108,21 @@
(* ;; "Returns NIL for a DIRNAME of just {CORE}, or {CORE}xxx. If the latter, then we want it to be a directory and not a file (assuming that xxx and xxx> can't both exist.")
[LET [(DIR (FILENAMEFIELD DIRNAME 'DIRECTORY]
(CL:WHEN DIR
(SETQ DIR (CONCAT DIR ">"))
(LET [(DIR (FILENAMEFIELD DIRNAME 'DIRECTORY]
(if DIR
then (SETQ DIR (CONCAT DIR ">"))
(* ;; "DIRPOS because caller may not have stripped off the device. This will match the first < or / (or >)")
(* ;; "DIRPOS because caller may not have stripped off the device. This will match the first < or / (or >)")
(FOR ENTRY (DIRPOS _ (STRPOS "<" DIRNAME 1 NIL NIL NIL FILEDIRCASEARRAY))
FIRST (CL:UNLESS (EQ DIRPOS 1)
(SETQ DIRNAME (SUBSTRING DIRNAME DIRPOS)))
IN (CDR (FETCH COREDIRECTORY OF DEV))
WHEN (STRPOS DIRNAME (CAR ENTRY)
1 NIL T NIL FILEDIRCASEARRAY) DO (RETURN T)))])])
(FOR ENTRY (DIRPOS _ (STRPOS "<" DIRNAME 1 NIL NIL NIL FILEDIRCASEARRAY))
FIRST (CL:UNLESS (EQ DIRPOS 1)
(SETQ DIRNAME (SUBSTRING DIRNAME DIRPOS)))
IN (CDR (FETCH COREDIRECTORY OF DEV))
WHEN (STRPOS DIRNAME (CAR ENTRY)
1 NIL T NIL FILEDIRCASEARRAY) DO (RETURN T))
else (* ;
 "Top level: does the device exist at al. The cd {CORE}case")
T)))])
(\CORE.FINDPAGE
[LAMBDA (STREAM PN) (* bvm%: "20-Apr-85 13:32")
@@ -997,16 +1002,16 @@
)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (1572 46115 (\CORE.CLOSEFILE 1582 . 2355) (\CORE.DELETEFILE 2357 . 4343) (
\CORE.DIRECTORYNAMEP 4345 . 5838) (\CORE.FINDPAGE 5840 . 9069) (\CORE.GENERATEFILES 9071 . 11658) (
\CORE.NEXTFILEFN 11660 . 12159) (\CORE.FILEINFOFN 12161 . 12390) (\CORE.GETFILEHANDLE 12392 . 14546) (
\CORE.GETFILEINFO 14548 . 15511) (\CORE.GETFILEINFO.FROM.INFOBLOCK 15513 . 17050) (\CORE.GETFILENAME
17052 . 19341) (\CORE.GETINFOBLOCK 19343 . 21966) (\CORE.NAMESCAN 21968 . 23515) (\CORE.NAMESEGMENT
23517 . 23954) (\CORE.OPENFILE 23956 . 27348) (\COREFILE.SETPARAMETERS 27350 . 29531) (
\CORE.PACKFILENAME 29533 . 29928) (\CORE.RELEASEPAGES 29930 . 30531) (\CORE.SETFILEPTR 30533 . 31632)
(\CORE.UPDATEOF 31634 . 33263) (\CORE.BACKFILEPTR 33265 . 35473) (\CORE.SETEOFPTR 35475 . 37344) (
\CORE.SETACCESSTIME 37346 . 37971) (\CORE.SETFILEINFO 37973 . 40275) (\CORE.GETNEXTBUFFER 40277 .
44233) (\CORE.UNPACKFILENAME 44235 . 46113)) (46116 49749 (COREDEVICE 46126 . 46297) (
\CREATECOREDEVICE 46299 . 49747)) (49750 52164 (\NODIRCOREFDEV 49760 . 50357) (\NODIRCORE.OPENFILE
50359 . 52162)))))
(FILEMAP (NIL (1572 46413 (\CORE.CLOSEFILE 1582 . 2355) (\CORE.DELETEFILE 2357 . 4343) (
\CORE.DIRECTORYNAMEP 4345 . 6136) (\CORE.FINDPAGE 6138 . 9367) (\CORE.GENERATEFILES 9369 . 11956) (
\CORE.NEXTFILEFN 11958 . 12457) (\CORE.FILEINFOFN 12459 . 12688) (\CORE.GETFILEHANDLE 12690 . 14844) (
\CORE.GETFILEINFO 14846 . 15809) (\CORE.GETFILEINFO.FROM.INFOBLOCK 15811 . 17348) (\CORE.GETFILENAME
17350 . 19639) (\CORE.GETINFOBLOCK 19641 . 22264) (\CORE.NAMESCAN 22266 . 23813) (\CORE.NAMESEGMENT
23815 . 24252) (\CORE.OPENFILE 24254 . 27646) (\COREFILE.SETPARAMETERS 27648 . 29829) (
\CORE.PACKFILENAME 29831 . 30226) (\CORE.RELEASEPAGES 30228 . 30829) (\CORE.SETFILEPTR 30831 . 31930)
(\CORE.UPDATEOF 31932 . 33561) (\CORE.BACKFILEPTR 33563 . 35771) (\CORE.SETEOFPTR 35773 . 37642) (
\CORE.SETACCESSTIME 37644 . 38269) (\CORE.SETFILEINFO 38271 . 40573) (\CORE.GETNEXTBUFFER 40575 .
44531) (\CORE.UNPACKFILENAME 44533 . 46411)) (46414 50047 (COREDEVICE 46424 . 46595) (
\CREATECOREDEVICE 46597 . 50045)) (50048 52462 (\NODIRCOREFDEV 50058 . 50655) (\NODIRCORE.OPENFILE
50657 . 52460)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(FILECREATED " 6-Feb-2026 23:22:00" {WMEDLEY}<sources>FILEIO.;142 166519
(FILECREATED "26-Apr-2026 23:27:40" {WMEDLEY}<sources>FILEIO.;146 165936
:EDIT-BY rmk
:CHANGES-TO (FNS DIRECTORYNAME)
:CHANGES-TO (FNS \DO.PARAMS.AT.OPEN)
:PREVIOUS-DATE "12-Sep-2025 08:19:06" {WMEDLEY}<sources>FILEIO.;141)
:PREVIOUS-DATE "26-Apr-2026 21:00:55" {WMEDLEY}<sources>FILEIO.;145)
(PRETTYCOMPRINT FILEIOCOMS)
@@ -1446,7 +1446,10 @@
(GO RETRY])
(\DO.PARAMS.AT.OPEN
[LAMBDA (STREAM ACCESS PARAMETERS) (* ; "Edited 25-Dec-2024 10:54 by rmk")
[LAMBDA (STREAM ACCESS PARAMETERS) (* ; "Edited 26-Apr-2026 23:27 by rmk")
(* ; "Edited 21-Apr-2026 20:57 by mth")
(* ; "Edited 20-Apr-2026 17:36 by mth")
(* ; "Edited 25-Dec-2024 10:54 by rmk")
(* ; "Edited 15-Jul-2024 22:29 by rmk")
(* ; "Edited 25-Aug-2023 08:43 by rmk")
(* ; "Edited 6-Jul-2022 00:00 by rmk")
@@ -1469,44 +1472,40 @@
(DECLARE (USEDFREE STREAM-AFTER-OPEN-FNS))
(\EXTERNALFORMAT STREAM :DEFAULT)
[for X ATTR VAL EOL in PARAMETERS do [(COND
[(LISTP X)
(SETQ ATTR (CAR X))
(SETQ VAL (CAR (LISTP (CDR X]
(T (SETQ ATTR X)
(SETQ VAL T)))
(SELECTQ ATTR
(BUFFERS (SETFILEINFO STREAM 'BUFFERS VAL))
(ENDOFSTREAMOP (SETFILEINFO STREAM 'ENDOFSTREAMOP VAL))
(CHARSET (CHARSET STREAM VAL))
((FORMAT EXTERNALFORMAT :EXTERNAL-FORMAT)
(for X ATTR VAL EOL in PARAMETERS
do (COND
[(LISTP X)
(SETQ ATTR (CAR X))
(SETQ VAL (CAR (LISTP (CDR X]
(T (SETQ ATTR X)
(SETQ VAL T)))
(SELECTQ ATTR
(BUFFERS (SETFILEINFO STREAM 'BUFFERS VAL))
(ENDOFSTREAMOP (SETFILEINFO STREAM 'ENDOFSTREAMOP VAL))
(CHARSET (CHARSET STREAM VAL))
((FORMAT EXTERNALFORMAT :EXTERNAL-FORMAT)
(* ;;
 "This allows an EOL and format to be intermixed, the last ones of each are installed")
(* ;;
 "VAL can be :UTF-8, CR, (UTF:8 CR), i.e. specify either one or both")
(for V inside VAL do (if (MEMB V '(LF CR CRLF ANY))
then (SETQ EOL V)
else (\EXTERNALFORMAT STREAM V))))
(CONVHANKAKU (CONVHANKAKU STREAM VAL))
((EOL EOLCONVENTION EOLC)
(SETQ EOL VAL))
NIL) finally
(if (LISTP VAL)
then (* ;
 "VAL could be (:UTF-8 CR) e.g. from CL:OPEN")
(\EXTERNALFORMAT STREAM (CAR VAL))
(* ;
 "Can override the EOL of the format")
(SETQ EOL (CADR VAL))
elseif (SETQ EOL (CAR)
VAL)
else (\EXTERNALFORMAT STREAM VAL)))
(CONVHANKAKU (CONVHANKAKU STREAM VAL))
((EOL EOLCONVENTION EOLC)
(SETQ EOL VAL] finally
(* ;; "If EOL is not specified, default input streams to ANY. ")
(* ;;
 "If not specified, default EOL to ANY--SETFILEINFO checks for output streams")
(SETFILEINFO STREAM 'EOL
(OR EOL 'ANY]
(FOR FN IN STREAM-AFTER-OPEN-FNS DO (APPLY* FN STREAM ACCESS PARAMETERS])
(CL:UNLESS (OR EOL (\GETSTREAM STREAM 'OUTPUT T))
(SETQ EOL 'ANY))
(CL:WHEN EOL
(SETFILEINFO STREAM 'EOL EOL)))
(for FN in STREAM-AFTER-OPEN-FNS do (APPLY* FN STREAM ACCESS PARAMETERS])
(\RENAMEFILE
[LAMBDA (OLDFILE NEWFILE) (* ; "Edited 25-Dec-2024 10:14 by rmk")
[LAMBDA (OLDFILE NEWFILE) (* ; "Edited 25-Apr-2026 16:03 by rmk")
(* ; "Edited 25-Dec-2024 10:14 by rmk")
(* ; "Edited 16-Dec-2024 21:07 by rmk")
(* hdj " 7-May-86 12:22")
(SETQ OLDFILE (\ADD.CONNECTED.DIR OLDFILE))
@@ -1521,7 +1520,7 @@
NEW-DEVICE
(TRUEFILENAME NEWFILE)))
(CL:IF (PSEUDOHOSTP NEWFILE)
(PSEUDOFILENAME NEWFULLNAME)
(PSEUDOFILENAME NEWFULLNAME (FILENAMEFIELD NEWFILE 'HOST))
NEWFULLNAME))])
(\REVALIDATEFILE
@@ -3161,39 +3160,39 @@ update the map")
(ADDTOVAR LAMA \IS.NOT.RANDACCESSP \ILLEGAL.DEVICEOP STREAMPROP)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (27706 31822 (STREAMPROP 27716 . 28150) (GETSTREAMPROP 28152 . 28901) (PUTSTREAMPROP
28903 . 31670) (STREAMP 31672 . 31820)) (31865 35244 (\DEFPRINT.BY.NAME 31875 . 33027) (
\STREAM.DEFPRINT 33029 . 34937) (\FDEV.DEFPRINT 34939 . 35242)) (35502 40543 (\GETACCESS 35512 . 35966
) (\SETACCESS 35968 . 40541)) (60769 66738 (\DEFINEDEVICE 60779 . 63095) (\GETDEVICEFROMNAME 63097 .
63570) (\GETDEVICEFROMHOSTNAME 63572 . 64616) (\REMOVEDEVICE 64618 . 65741) (\REMOVEDEVICE.NAMES 65743
. 66736)) (66778 94509 (\CLOSEFILE 66788 . 67613) (\DELETEFILE 67615 . 67909) (\DEVICEEVENT 67911 .
69681) (\GENERATEFILES 69683 . 70630) (\GENERATENEXTFILE 70632 . 71283) (\GENERATEFILEINFO 71285 .
71746) (\GETFILENAME 71748 . 72137) (\GENERIC.OUTFILEP 72139 . 72609) (\OPENFILE 72611 . 75189) (
\DO.PARAMS.AT.OPEN 75191 . 79387) (\RENAMEFILE 79389 . 80345) (\REVALIDATEFILE 80347 . 82949) (
\PAGED.REVALIDATEFILELST 82951 . 84509) (\PAGED.REVALIDATEFILES 84511 . 86230) (\PAGED.REVALIDATEFILE
86232 . 88515) (\BUFFERED.REVALIDATEFILE 88517 . 90803) (\BUFFERED.REVALIDATEFILELST 90805 . 91989) (
\PRINT-REVALIDATION-RESULT 91991 . 92833) (\TRUNCATEFILE 92835 . 93226) (\FILE-CONFLICT 93228 . 94507)
) (94545 99208 (\GENERATENOFILES 94555 . 96651) (\NULLFILEGENERATOR 96653 . 96897) (\NOFILESNEXTFILEFN
96899 . 98890) (\NOFILESINFOFN 98892 . 99206)) (99327 101235 (\FILE.NOT.OPEN 99337 . 99850) (
\FILE.WONT.OPEN 99852 . 100180) (\ILLEGAL.DEVICEOP 100182 . 100464) (\IS.NOT.RANDACCESSP 100466 .
100912) (\STREAM.NOT.OPEN 100914 . 101233)) (101370 103668 (\FDEVINSTANCE 101380 . 103666)) (104870
111841 (CNDIR 104880 . 106185) (DIRECTORYNAME 106187 . 109967) (DIRECTORYNAMEP 109969 . 110585) (
HOSTNAMEP 110587 . 111394) (\ADD.CONNECTED.DIR 111396 . 111839)) (111886 140833 (\BACKFILEPTR 111896
. 112084) (\BACKPEEKBIN 112086 . 112447) (\BACKBIN 112449 . 112800) (BIN 112802 . 113019) (\BIN
113021 . 113298) (\BINS 113300 . 113586) (BOUT 113588 . 113950) (\BOUT 113952 . 114267) (\BOUTS 114269
. 114580) (COPYBYTES 114582 . 117914) (COPYCHARS 117916 . 121714) (COPYFILE 121716 . 123076) (
\COPYOPENFILE 123078 . 126277) (\INFER.FILE.TYPE 126279 . 127233) (EOFP 127235 . 127532) (FORCEOUTPUT
127534 . 127781) (\FLUSH.OPEN.STREAMS 127783 . 128139) (CHARSET 128141 . 129500) (ACCESS-CHARSET
129502 . 130139) (GETEOFPTR 130141 . 130391) (GETFILEINFO 130393 . 133586) (\TYPE.FROM.FILETYPE 133588
. 134058) (\FILETYPE.FROM.TYPE 134060 . 134239) (GETFILEPTR 134241 . 134493) (SETFILEINFO 134495 .
138732) (SETFILEPTR 138734 . 140453) (BOUT16 140455 . 140640) (BIN16 140642 . 140831)) (140936 148116
(\GENERIC.BINS 140946 . 141226) (\GENERIC.BOUTS 141228 . 141493) (\GENERIC.RENAMEFILE 141495 . 143743)
(\GENERIC.OPENP 143745 . 145060) (\GENERIC.READP 145062 . 146214) (\GENERIC.CHARSET 146216 . 148114))
(148117 148456 (\MAP-OPEN-STREAMS 148127 . 148454)) (150311 152391 (\EOF.ACTION 150321 . 150572) (
\EOSERROR 150574 . 150767) (\GETEOFPTR 150769 . 150951) (\INCFILEPTR 150953 . 151303) (\PEEKBIN 151305
. 151496) (\SETCLOSEDFILELENGTH 151498 . 151832) (\SETEOFPTR 151834 . 152022) (\SETFILEPTR 152024 .
152389)) (152392 152934 (\FIXPOUT 152402 . 152702) (\FIXPIN 152704 . 152932)) (152935 153501 (\BOUTEOL
152945 . 153499)) (156397 166261 (\BUFFERED.BIN 156407 . 157259) (\BUFFERED.PEEKBIN 157261 . 158043)
(\BUFFERED.BOUT 158045 . 158905) (\BUFFERED.BINS 158907 . 162592) (\BUFFERED.BOUTS 162594 . 164395) (
\BUFFERED.COPYBYTES 164397 . 166259)))))
(FILEMAP (NIL (27711 31827 (STREAMPROP 27721 . 28155) (GETSTREAMPROP 28157 . 28906) (PUTSTREAMPROP
28908 . 31675) (STREAMP 31677 . 31825)) (31870 35249 (\DEFPRINT.BY.NAME 31880 . 33032) (
\STREAM.DEFPRINT 33034 . 34942) (\FDEV.DEFPRINT 34944 . 35247)) (35507 40548 (\GETACCESS 35517 . 35971
) (\SETACCESS 35973 . 40546)) (60774 66743 (\DEFINEDEVICE 60784 . 63100) (\GETDEVICEFROMNAME 63102 .
63575) (\GETDEVICEFROMHOSTNAME 63577 . 64621) (\REMOVEDEVICE 64623 . 65746) (\REMOVEDEVICE.NAMES 65748
. 66741)) (66783 93926 (\CLOSEFILE 66793 . 67618) (\DELETEFILE 67620 . 67914) (\DEVICEEVENT 67916 .
69686) (\GENERATEFILES 69688 . 70635) (\GENERATENEXTFILE 70637 . 71288) (\GENERATEFILEINFO 71290 .
71751) (\GETFILENAME 71753 . 72142) (\GENERIC.OUTFILEP 72144 . 72614) (\OPENFILE 72616 . 75194) (
\DO.PARAMS.AT.OPEN 75196 . 78665) (\RENAMEFILE 78667 . 79762) (\REVALIDATEFILE 79764 . 82366) (
\PAGED.REVALIDATEFILELST 82368 . 83926) (\PAGED.REVALIDATEFILES 83928 . 85647) (\PAGED.REVALIDATEFILE
85649 . 87932) (\BUFFERED.REVALIDATEFILE 87934 . 90220) (\BUFFERED.REVALIDATEFILELST 90222 . 91406) (
\PRINT-REVALIDATION-RESULT 91408 . 92250) (\TRUNCATEFILE 92252 . 92643) (\FILE-CONFLICT 92645 . 93924)
) (93962 98625 (\GENERATENOFILES 93972 . 96068) (\NULLFILEGENERATOR 96070 . 96314) (\NOFILESNEXTFILEFN
96316 . 98307) (\NOFILESINFOFN 98309 . 98623)) (98744 100652 (\FILE.NOT.OPEN 98754 . 99267) (
\FILE.WONT.OPEN 99269 . 99597) (\ILLEGAL.DEVICEOP 99599 . 99881) (\IS.NOT.RANDACCESSP 99883 . 100329)
(\STREAM.NOT.OPEN 100331 . 100650)) (100787 103085 (\FDEVINSTANCE 100797 . 103083)) (104287 111258 (
CNDIR 104297 . 105602) (DIRECTORYNAME 105604 . 109384) (DIRECTORYNAMEP 109386 . 110002) (HOSTNAMEP
110004 . 110811) (\ADD.CONNECTED.DIR 110813 . 111256)) (111303 140250 (\BACKFILEPTR 111313 . 111501) (
\BACKPEEKBIN 111503 . 111864) (\BACKBIN 111866 . 112217) (BIN 112219 . 112436) (\BIN 112438 . 112715)
(\BINS 112717 . 113003) (BOUT 113005 . 113367) (\BOUT 113369 . 113684) (\BOUTS 113686 . 113997) (
COPYBYTES 113999 . 117331) (COPYCHARS 117333 . 121131) (COPYFILE 121133 . 122493) (\COPYOPENFILE
122495 . 125694) (\INFER.FILE.TYPE 125696 . 126650) (EOFP 126652 . 126949) (FORCEOUTPUT 126951 .
127198) (\FLUSH.OPEN.STREAMS 127200 . 127556) (CHARSET 127558 . 128917) (ACCESS-CHARSET 128919 .
129556) (GETEOFPTR 129558 . 129808) (GETFILEINFO 129810 . 133003) (\TYPE.FROM.FILETYPE 133005 . 133475
) (\FILETYPE.FROM.TYPE 133477 . 133656) (GETFILEPTR 133658 . 133910) (SETFILEINFO 133912 . 138149) (
SETFILEPTR 138151 . 139870) (BOUT16 139872 . 140057) (BIN16 140059 . 140248)) (140353 147533 (
\GENERIC.BINS 140363 . 140643) (\GENERIC.BOUTS 140645 . 140910) (\GENERIC.RENAMEFILE 140912 . 143160)
(\GENERIC.OPENP 143162 . 144477) (\GENERIC.READP 144479 . 145631) (\GENERIC.CHARSET 145633 . 147531))
(147534 147873 (\MAP-OPEN-STREAMS 147544 . 147871)) (149728 151808 (\EOF.ACTION 149738 . 149989) (
\EOSERROR 149991 . 150184) (\GETEOFPTR 150186 . 150368) (\INCFILEPTR 150370 . 150720) (\PEEKBIN 150722
. 150913) (\SETCLOSEDFILELENGTH 150915 . 151249) (\SETEOFPTR 151251 . 151439) (\SETFILEPTR 151441 .
151806)) (151809 152351 (\FIXPOUT 151819 . 152119) (\FIXPIN 152121 . 152349)) (152352 152918 (\BOUTEOL
152362 . 152916)) (155814 165678 (\BUFFERED.BIN 155824 . 156676) (\BUFFERED.PEEKBIN 156678 . 157460)
(\BUFFERED.BOUT 157462 . 158322) (\BUFFERED.BINS 158324 . 162009) (\BUFFERED.BOUTS 162011 . 163812) (
\BUFFERED.COPYBYTES 163814 . 165676)))))
STOP

Binary file not shown.

View File

@@ -1,15 +1,13 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED " 3-May-2021 23:13:56" {DSK}<home>larry>ilisp>medley>sources>LLETHER.;4 139646
changes to%: (FNS \ETHEREVENTFN \ETHER-AVAILABLE)
(VARS LLETHERCOMS)
(FILECREATED "23-Jan-2026 12:42:02" {DSK}<Users>briggs>PROJECTS>Medley>sources>LLETHER.;4 138728
previous date%: " 2-May-2021 12:37:02" {DSK}<home>larry>ilisp>medley>sources>LLETHER.;3)
:EDIT-BY nhb
:CHANGES-TO (FNS \SETETHERFLAGS)
:PREVIOUS-DATE "20-Dec-2025 14:12:06" {DSK}<Users>briggs>PROJECTS>Medley>sources>LLETHER.;3)
(* ; "
Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
")
(PRETTYCOMPRINT LLETHERCOMS)
@@ -17,19 +15,19 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
[(DECLARE%: EVAL@COMPILE DONTCOPY (FILES (SOURCE)
LLNSDECLS))
[COMS (* ;
 "Stuff that should be somewhere else!")
 "Stuff that should be somewhere else!")
(INITVARS (ERRORMESSAGESTREAM T)
(PROMPTWINDOW T))
(GLOBALVARS ERRORMESSAGESTREAM PROMPTWINDOW)
(COMS (* ;
 "Queue management for data which can be chain-linked through the first cell")
 "Queue management for data which can be chain-linked through the first cell")
(DECLARE%: DONTCOPY (EXPORT (RECORDS SYSQUEUE QABLEITEM)
(MACROS \QUEUEHEAD)))
(INITRECORDS SYSQUEUE)
(SYSRECORDS SYSQUEUE)
(FNS CANONICAL.HOSTNAME \ENQUEUE \DEQUEUE \QUEUELENGTH \ONQUEUE \UNQUEUE)
(* ;
 "Queue management constructed by TCONC")
 "Queue management constructed by TCONC")
(EXPORT (MACROS \DETCONC \ENTCONC \PEEKTCONC]
(COMS (* ; "General packet management")
(DECLARE%: DONTCOPY
@@ -124,7 +122,7 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(DECLARE%: EVAL@COMPILE DONTCOPY (GLOBALVARS \CENTICLOCKFACTOR \CENTICLOCKBOX)
(RECORDS CENTICLOCK)))
(COMS (* ;
 "3MB stuff, which is not needed in DandeLion")
 "3MB stuff, which is not needed in DandeLion")
(FNS \3MBGETPACKET \3MB.CREATENDB \3MBSENDPACKET \3MBWATCHER \3MBENCAPSULATE
\3MB.BROADCASTP \3MBFLUSH)
(INITVARS (\MAXWATCHERGETS 5))
@@ -168,19 +166,18 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE
(DATATYPE SYSQUEUE ((NIL BYTE)
(SYSQUEUEHEAD POINTER)
(NIL BYTE)
(SYSQUEUETAIL POINTER)))
(SYSQUEUEHEAD POINTER)
(NIL BYTE)
(SYSQUEUETAIL POINTER)))
(BLOCKRECORD QABLEITEM ((NIL BITS 4)
(QLINK POINTER) (* ;
 "Link to next thing in queue always in first pointer of datum, independent of what the datum is")
)
(BLOCKRECORD QABLEITEM ((NIL BITS 4)
(LINK POINTER)
(* ;
 "Let's also be able to call it a LINK")
)))
(QLINK POINTER) (* ;
 "Link to next thing in queue always in first pointer of datum, independent of what the datum is")
)
(BLOCKRECORD QABLEITEM ((NIL BITS 4)
(LINK POINTER)(* ;
 "Let's also be able to call it a LINK")
)))
)
(/DECLAREDATATYPE 'SYSQUEUE '(BYTE POINTER BYTE POINTER)
@@ -192,7 +189,7 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(DECLARE%: EVAL@COMPILE
(PUTPROPS \QUEUEHEAD MACRO ((Q)
(fetch (SYSQUEUE SYSQUEUEHEAD) of Q)))
(fetch (SYSQUEUE SYSQUEUEHEAD) of Q)))
)
(* "END EXPORTED DEFINITIONS")
@@ -208,9 +205,9 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(ADDTOVAR SYSTEMRECLST
(DATATYPE SYSQUEUE ((NIL BYTE)
(SYSQUEUEHEAD POINTER)
(NIL BYTE)
(SYSQUEUETAIL POINTER)))
(SYSQUEUEHEAD POINTER)
(NIL BYTE)
(SYSQUEUETAIL POINTER)))
)
(DEFINEQ
@@ -362,9 +359,9 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE
(PUTPROPS \DETCONC MACRO [OPENLAMBDA (TQ)
(PROG1 (\PEEKTCONC TQ)
(if [NULL (CAR (RPLACA TQ (CDAR TQ]
then (RPLACD TQ)))])
(PROG1 (\PEEKTCONC TQ)
(if [NULL (CAR (RPLACA TQ (CDAR TQ]
then (RPLACD TQ)))])
(PUTPROPS \ENTCONC MACRO (= . TCONC))
@@ -382,48 +379,48 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE
(DATATYPE ETHERPACKET ((NIL BYTE)
(EPLINK POINTER) (* ; "For queue maintenence")
(EPFLAGS BYTE) (* ;
 "optional flags for some applications")
(EPUSERFIELD POINTER) (* ;
 "Arbitrary pointer for applications")
(NIL BYTE)
(EPPLIST POINTER) (* ;
 "Extra field for use as an A-list for properties")
(EPTRANSMITTING FLAG) (* ;
 "True while packet is being transmitted and hence cannot be reused")
(EPRECEIVING FLAG) (* ;
 "True when a packet has been seen at the head of the network's input queue at least once")
(NIL BITS 6)
(EPREQUEUE POINTER) (* ;
 "Where to requeue this packet after transmission")
(NIL BYTE)
(EPSOCKET POINTER)
(NIL BYTE)
(EPNETWORK POINTER)
(EPTYPE WORD) (* ;
 "Type of packet to be encapsulated (PUP or XIP or 10TO3)")
(NIL WORD)
(EPTIMESTAMP FIXP) (* ;
 "Gets RCLK value when transmitted/received")
(EPREQUEUEFN POINTER) (* ; "FN to perform requeueing")
(NIL 4 WORD) (* ; "Space for expansion")
(EPLINK POINTER) (* ; "For queue maintenence")
(EPFLAGS BYTE) (* ;
 "optional flags for some applications")
(EPUSERFIELD POINTER) (* ;
 "Arbitrary pointer for applications")
(NIL BYTE)
(EPPLIST POINTER) (* ;
 "Extra field for use as an A-list for properties")
(EPTRANSMITTING FLAG) (* ;
 "True while packet is being transmitted and hence cannot be reused")
(EPRECEIVING FLAG) (* ;
 "True when a packet has been seen at the head of the network's input queue at least once")
(NIL BITS 6)
(EPREQUEUE POINTER) (* ;
 "Where to requeue this packet after transmission")
(NIL BYTE)
(EPSOCKET POINTER)
(NIL BYTE)
(EPNETWORK POINTER)
(EPTYPE WORD) (* ;
 "Type of packet to be encapsulated (PUP or XIP or 10TO3)")
(NIL WORD)
(EPTIMESTAMP FIXP) (* ;
 "Gets RCLK value when transmitted/received")
(EPREQUEUEFN POINTER) (* ; "FN to perform requeueing")
(NIL 4 WORD) (* ; "Space for expansion")
(* ;
 "Note: This next field wants to be quad+2 aligned so that the 10mb packet is quad+3 aligned")
(EPENCAPSULATION 8 WORD) (* ;
 "10mb encapsulation, or 3mb encapsulation with padding")
(EPBODY 289 WORD) (* ;
 "Body of packet, header up to 16 words plus data up to 546 bytes")
))
 "Note: This next field wants to be quad+2 aligned so that the 10mb packet is quad+3 aligned")
(EPENCAPSULATION 8 WORD) (* ;
 "10mb encapsulation, or 3mb encapsulation with padding")
(EPBODY 289 WORD) (* ;
 "Body of packet, header up to 16 words plus data up to 546 bytes")
))
(ACCESSFNS ETHERAUX ((AUXPTR (CDR (ASSOC 'AUXPTR (fetch EPPLIST of DATUM)))
(\EP.PUT.AUX DATUM 'AUXPTR NEWVALUE))
(AUXWORD (OR (CDR (ASSOC 'AUXWORD (fetch EPPLIST of DATUM)))
0)
(\EP.PUT.AUX DATUM 'AUXWORD NEWVALUE))
(AUXBYTE (OR (CDR (ASSOC 'AUXBYTE (fetch EPPLIST of DATUM)))
0)
(\EP.PUT.AUX DATUM 'AUXBYTE NEWVALUE))))
(\EP.PUT.AUX DATUM 'AUXPTR NEWVALUE))
(AUXWORD (OR (CDR (ASSOC 'AUXWORD (fetch EPPLIST of DATUM)))
0)
(\EP.PUT.AUX DATUM 'AUXWORD NEWVALUE))
(AUXBYTE (OR (CDR (ASSOC 'AUXBYTE (fetch EPPLIST of DATUM)))
0)
(\EP.PUT.AUX DATUM 'AUXBYTE NEWVALUE))))
)
(/DECLAREDATATYPE 'ETHERPACKET
@@ -1140,26 +1137,26 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(ADDTOVAR SYSTEMRECLST
(DATATYPE ETHERPACKET ((NIL BYTE)
(EPLINK POINTER)
(EPFLAGS BYTE)
(EPUSERFIELD POINTER)
(NIL BYTE)
(EPPLIST POINTER)
(EPTRANSMITTING FLAG)
(EPRECEIVING FLAG)
(NIL BITS 6)
(EPREQUEUE POINTER)
(NIL BYTE)
(EPSOCKET POINTER)
(NIL BYTE)
(EPNETWORK POINTER)
(EPTYPE WORD)
(NIL WORD)
(EPTIMESTAMP FIXP)
(EPREQUEUEFN POINTER)
(NIL 4 WORD)
(EPENCAPSULATION 8 WORD)
(EPBODY 289 WORD)))
(EPLINK POINTER)
(EPFLAGS BYTE)
(EPUSERFIELD POINTER)
(NIL BYTE)
(EPPLIST POINTER)
(EPTRANSMITTING FLAG)
(EPRECEIVING FLAG)
(NIL BITS 6)
(EPREQUEUE POINTER)
(NIL BYTE)
(EPSOCKET POINTER)
(NIL BYTE)
(EPNETWORK POINTER)
(EPTYPE WORD)
(NIL WORD)
(EPTIMESTAMP FIXP)
(EPREQUEUEFN POINTER)
(NIL 4 WORD)
(EPENCAPSULATION 8 WORD)
(EPBODY 289 WORD)))
)
(DEFINEQ
@@ -1499,21 +1496,19 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
HOSTNAMEP _ 'NILL])
(\ETHEREVENTFN
[LAMBDA (DEV EVENT) (* ; "Edited 3-May-2021 23:12 by larry")
[LAMBDA (DEV EVENT) (* ; "Edited 17-Dec-2025 11:01 by nhb")
(* ; "Edited 3-May-2021 23:12 by larry")
(PROG (NDB TURNOFFNS TIMESET)
(SELECTQ EVENT
((NIL AFTERLOGOUT AFTERSYSOUT AFTERMAKESYS AFTERSAVEVM RESTART)
(SETQ \PUP.READY (SETQ \NS.READY (SETQ \IP.READY)))
(OR (\ETHER-AVAILABLE)
(RETURN))
(\SETETHERFLAGS)
(\SETLOCALNSNUMBERS)
(\FLUSHNDBS EVENT)
(SETQ \10MBLOCALNDB (COND
(\10MBFLG (SETQ NDB (\10MB.CREATENDB \10MBFLG))
(COND
(\LOCALNDBS (replace NDBNEXT of
\LOCALNDBS
(\LOCALNDBS (replace NDBNEXT of \LOCALNDBS
with NDB))
(T (SETQ \LOCALNDBS NDB)))
NDB)))
@@ -1536,10 +1531,10 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
((BEFOREMAKESYS BEFORELOGOUT BEFORESYSOUT BEFORESAVEVM)
(COND
((EQ EVENT 'BEFORESAVEVM) (* ;
 "Save passwords in place outside vmem to avoid having to reenter them later")
 "Save passwords in place outside vmem to avoid having to reenter them later")
(\STASH.PASSWORDS))
(T (* ;
 "No need to flush this before SAVEVM")
 "No need to flush this before SAVEVM")
(CLRHASH \ETHERPORTS)))
(CLRHASH LOGINPASSWORDS))
NIL])
@@ -1556,11 +1551,13 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(printout PROMPTWINDOW T "[Time not set]"])
(\SETETHERFLAGS
[LAMBDA NIL (* ; "Edited 2-May-2021 12:35 by larry")
[LAMBDA NIL (* ; "Edited 23-Jan-2026 12:39 by nhb")
(* ; "Edited 2-May-2021 12:35 by larry")
(* ;; "for Medley there is no 3MB ethernet ; used to be conditional on \MACHINETYPE")
(SETQ \10MBFLG 0)
(SETQ \10MBFLG (AND (\ETHER-AVAILABLE)
0))
(SETQ \3MBFLG NIL)
(SETQ *MAXIMUM-PACKET-SIZE* (- (TIMES 2 BYTESPERPAGE)
(UNFOLD (INDEXF (FETCH EPBODY))
@@ -1706,40 +1703,40 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(DECLARE%: DONTCOPY
(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE
(DATATYPE NDB ((NETTYPE BYTE) (* ; "10 or 3 for now")
(NDBNEXT POINTER) (* ; "Link to next NDB")
(NDBPUPNET# BYTE) (* ;
 "Pup number of this net. May be different from NS net number, though not in Xerox world")
(NDBNSNET# POINTER) (* ;
 "Can be 32-bits, so might as well leave its box around")
(NDBTASK# BYTE) (* ; "Task # of this network")
(NDBBROADCASTP POINTER) (* ;
 "Function that returns true if packet is of broadcast type")
(NDBPUPHOST# BYTE) (* ;
 "My pup address on this net. NS address is global to all nets, so not needed here")
(NDBTRANSMITTER POINTER) (* ;
 "(NDB PACKET) -- fn to send a raw packet on this net. returns NIL on failure")
(NIL BYTE)
(NDBENCAPSULATOR POINTER) (* ;
 "(NDB PACKET HOST LENGTH TYPE) -- fn to encapsulate and send a higher-level packet on this net ")
(NDBCSB POINTER) (* ; "Pointer to CSB for this network")
(NDBIQLENGTH BYTE)
(NDBIQ POINTER) (* ;
 "Queue of empty packets for receiver")
(NDBTQ POINTER) (* ; "Queue of packets to transmit")
(NDBTRANSLATIONS POINTER) (* ;
 "Cache of translations, 3:10 or 10:3 according to network")
(NDBETHERFLUSHER POINTER) (* ; "Turns off this ether. Args NDB")
(NDBWATCHER POINTER)
(NDBCANHEARSELF POINTER) (* ;
 "True if receiver can hear packets sent by transmitter")
(NDBIPNET# POINTER)
(NDBIPHOST# POINTER)
(NDBPUPTYPE WORD) (* ;
 "The packet encapsulation of PUP on this net")
(NIL WORD)
(NIL POINTER) (* ; "Spares")
))
(DATATYPE NDB ((NETTYPE BYTE) (* ; "10 or 3 for now")
(NDBNEXT POINTER) (* ; "Link to next NDB")
(NDBPUPNET# BYTE) (* ;
 "Pup number of this net. May be different from NS net number, though not in Xerox world")
(NDBNSNET# POINTER) (* ;
 "Can be 32-bits, so might as well leave its box around")
(NDBTASK# BYTE) (* ; "Task # of this network")
(NDBBROADCASTP POINTER) (* ;
 "Function that returns true if packet is of broadcast type")
(NDBPUPHOST# BYTE) (* ;
 "My pup address on this net. NS address is global to all nets, so not needed here")
(NDBTRANSMITTER POINTER) (* ;
 "(NDB PACKET) -- fn to send a raw packet on this net. returns NIL on failure")
(NIL BYTE)
(NDBENCAPSULATOR POINTER) (* ;
 "(NDB PACKET HOST LENGTH TYPE) -- fn to encapsulate and send a higher-level packet on this net ")
(NDBCSB POINTER) (* ; "Pointer to CSB for this network")
(NDBIQLENGTH BYTE)
(NDBIQ POINTER) (* ;
 "Queue of empty packets for receiver")
(NDBTQ POINTER) (* ; "Queue of packets to transmit")
(NDBTRANSLATIONS POINTER) (* ;
 "Cache of translations, 3:10 or 10:3 according to network")
(NDBETHERFLUSHER POINTER) (* ; "Turns off this ether. Args NDB")
(NDBWATCHER POINTER)
(NDBCANHEARSELF POINTER) (* ;
 "True if receiver can hear packets sent by transmitter")
(NDBIPNET# POINTER)
(NDBIPHOST# POINTER)
(NDBPUPTYPE WORD) (* ;
 "The packet encapsulation of PUP on this net")
(NIL WORD)
(NIL POINTER) (* ; "Spares")
))
(RECORD ROUTING (RTNET# RTHOPCOUNT RTGATEWAY# RTNDB RTTIMER RTRECENT))
)
@@ -1786,26 +1783,24 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(DECLARE%: EVAL@COMPILE
(PUTPROPS ENCAPSULATE.ETHERPACKET MACRO ((NDB PACKET HOST LENGTH TYPE)
(SPREADAPPLY* (fetch NDBENCAPSULATOR
of NDB)
NDB PACKET HOST LENGTH TYPE)))
(SPREADAPPLY* (fetch NDBENCAPSULATOR of NDB)
NDB PACKET HOST LENGTH TYPE)))
(PUTPROPS TRANSMIT.ETHERPACKET MACRO ((NDB PACKET)
(SPREADAPPLY* (fetch NDBTRANSMITTER of NDB)
NDB PACKET)))
(SPREADAPPLY* (fetch NDBTRANSMITTER of NDB)
NDB PACKET)))
(PUTPROPS BROADCASTP MACRO ((PACKET)
([LAMBDA (NDB)
(AND NDB (APPLY* (fetch NDBBROADCASTP of NDB)
PACKET NDB]
(fetch EPNETWORK of PACKET))))
([LAMBDA (NDB)
(AND NDB (APPLY* (fetch NDBBROADCASTP of NDB)
PACKET NDB]
(fetch EPNETWORK of PACKET))))
(PUTPROPS \CHECK.ROUTING.TABLE MACRO [(TABLE)
(if (NEQ (NTYPX TABLE)
\ROUTING.TABLE.TYPENUM)
then (CL:ERROR 'CONDITIONS:SIMPLE-TYPE-ERROR
:CULPRIT TABLE :EXPECTED-TYPE
'RoutingTable])
(if (NEQ (NTYPX TABLE)
\ROUTING.TABLE.TYPENUM)
then (CL:ERROR 'CONDITIONS:SIMPLE-TYPE-ERROR :CULPRIT TABLE
:EXPECTED-TYPE 'RoutingTable])
)
(DECLARE%: DOEVAL@COMPILE DONTCOPY
@@ -1851,28 +1846,28 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(ADDTOVAR SYSTEMRECLST
(DATATYPE NDB ((NETTYPE BYTE)
(NDBNEXT POINTER)
(NDBPUPNET# BYTE)
(NDBNSNET# POINTER)
(NDBTASK# BYTE)
(NDBBROADCASTP POINTER)
(NDBPUPHOST# BYTE)
(NDBTRANSMITTER POINTER)
(NIL BYTE)
(NDBENCAPSULATOR POINTER)
(NDBCSB POINTER)
(NDBIQLENGTH BYTE)
(NDBIQ POINTER)
(NDBTQ POINTER)
(NDBTRANSLATIONS POINTER)
(NDBETHERFLUSHER POINTER)
(NDBWATCHER POINTER)
(NDBCANHEARSELF POINTER)
(NDBIPNET# POINTER)
(NDBIPHOST# POINTER)
(NDBPUPTYPE WORD)
(NIL WORD)
(NIL POINTER)))
(NDBNEXT POINTER)
(NDBPUPNET# BYTE)
(NDBNSNET# POINTER)
(NDBTASK# BYTE)
(NDBBROADCASTP POINTER)
(NDBPUPHOST# BYTE)
(NDBTRANSMITTER POINTER)
(NIL BYTE)
(NDBENCAPSULATOR POINTER)
(NDBCSB POINTER)
(NDBIQLENGTH BYTE)
(NDBIQ POINTER)
(NDBTQ POINTER)
(NDBTRANSLATIONS POINTER)
(NDBETHERFLUSHER POINTER)
(NDBWATCHER POINTER)
(NDBCANHEARSELF POINTER)
(NDBIPNET# POINTER)
(NDBIPHOST# POINTER)
(NDBPUPTYPE WORD)
(NIL WORD)
(NIL POINTER)))
)
(DEFINEQ
@@ -2231,48 +2226,49 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(DECLARE%: EVAL@COMPILE
(ACCESSFNS ETHERTRANS [(TRANSBODY (LOCF (fetch (ETHERPACKET EPBODY) of DATUM]
[BLOCKRECORD TRANSBODY ((TRANSOPERATION WORD)
[BLOCKRECORD TRANSBODY ((TRANSOPERATION WORD)
(* ; "Request or response")
(BASETRANSNSHOST 3 WORD)
(BASETRANSNSHOST 3 WORD)
(* ; "Known or desired NS address")
(TRANSPUPHOST BYTE)
(TRANSPUPHOST BYTE)
(* ; "Known or desired PUP address")
(NIL BYTE) (* ; "Padding")
(BASETRANSSENDERNSHOST 3 WORD)
(NIL BYTE) (* ; "Padding")
(BASETRANSSENDERNSHOST 3 WORD)
(* ; "Sender's info")
(TRANSSENDERPUPHOST BYTE)
(NIL BYTE))
[ACCESSFNS BASETRANSNSHOST ((TRANSNSHOST (\LOADNSHOSTNUMBER
(LOCF DATUM))
(\STORENSHOSTNUMBER (LOCF DATUM)
NEWVALUE]
(ACCESSFNS BASETRANSSENDERNSHOST ((TRANSSENDERNSHOST
(\LOADNSHOSTNUMBER (LOCF DATUM))
(\STORENSHOSTNUMBER (LOCF DATUM)
NEWVALUE]
[ACCESSFNS ETHERTRANS
([TRANSNSADDRESS
(PROGN (* ;
 "Kludge to get a pointer that looks like a full ns address")
(\ADDBASE DATUM (CONSTANT (+ (INDEXF (FETCH
(ETHERPACKET EPBODY)
of T))
(INDEXF (FETCH
(ETHERTRANS
(TRANSSENDERPUPHOST BYTE)
(NIL BYTE))
[ACCESSFNS BASETRANSNSHOST ((TRANSNSHOST (\LOADNSHOSTNUMBER (LOCF DATUM)
)
(\STORENSHOSTNUMBER (LOCF DATUM)
NEWVALUE]
(ACCESSFNS BASETRANSSENDERNSHOST ((TRANSSENDERNSHOST (\LOADNSHOSTNUMBER
(LOCF DATUM))
(\STORENSHOSTNUMBER
(LOCF DATUM)
NEWVALUE]
[ACCESSFNS ETHERTRANS
([TRANSNSADDRESS (PROGN (* ;
 "Kludge to get a pointer that looks like a full ns address")
(\ADDBASE
DATUM
(CONSTANT (+ (INDEXF (FETCH (ETHERPACKET EPBODY
)
of T))
(INDEXF (FETCH (ETHERTRANS
BASETRANSNSHOST
) of
T))
-2]
(TRANSSENDERNSADDRESS
(\ADDBASE DATUM (CONSTANT (+ (INDEXF (FETCH (ETHERPACKET
EPBODY)
of T))
(INDEXF (FETCH (ETHERTRANS
)
of T))
-2]
(TRANSSENDERNSADDRESS (\ADDBASE
DATUM
(CONSTANT (+ (INDEXF (FETCH (ETHERPACKET EPBODY)
of T))
(INDEXF (FETCH (ETHERTRANS
BASETRANSSENDERNSHOST
)
of T))
-2]
(TYPE? (type? ETHERPACKET DATUM)))
)
of T))
-2]
(TYPE? (type? ETHERPACKET DATUM)))
)
(DECLARE%: EVAL@COMPILE
@@ -2571,7 +2567,7 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(RPAQ? \RAWTRACING )
(ADDTOVAR \PACKET.PRINTERS (512 . PRINTPUP)
(1537 . PRINT10TO3))
(1537 . PRINT10TO3))
(DECLARE%: DOEVAL@COMPILE DONTCOPY
(GLOBALVARS \RAWTRACING \PACKET.PRINTERS PUPTRACEFILE XIPTRACEFILE \RCLKMILLISECOND)
@@ -2615,7 +2611,7 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(DECLARE%: EVAL@COMPILE
(BLOCKRECORD CENTICLOCK ((CENTICLOCKSIGNBIT BITS 1)
(CENTICLOCKMAGNITUDE BITS 31)))
(CENTICLOCKMAGNITUDE BITS 31)))
)
)
@@ -2757,43 +2753,41 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(DECLARE%: DONTCOPY
(DECLARE%: EVAL@COMPILE
(ACCESSFNS 3MBENCAPSULATION [(3MBENCAPSTART (LOCF (fetch (ETHERPACKET EPENCAPSULATION)
of DATUM]
(BLOCKRECORD 3MBENCAPSTART ((NIL 5 WORD)
(ACCESSFNS 3MBENCAPSULATION [(3MBENCAPSTART (LOCF (fetch (ETHERPACKET EPENCAPSULATION) of DATUM]
(BLOCKRECORD 3MBENCAPSTART ((NIL 5 WORD)
(* ; "waste space")
(3MBLENGTH WORD)
(3MBLENGTH WORD)
(* ;
 "Length of packet in words, starting at the next word")
(3MBDESTHOST BYTE)
 "Length of packet in words, starting at the next word")
(3MBDESTHOST BYTE)
(* ; "Immediate destination host")
(3MBSOURCEHOST BYTE)
(3MBSOURCEHOST BYTE)
(* ; "Us")
(3MBTYPE WORD)
(3MBTYPE WORD)
(* ;
 "Type of packet -- PUP or XIP or 10TO3")
)
[ACCESSFNS 3MBLENGTH ((3MBBASE (LOCF DATUM]
 "Type of packet -- PUP or XIP or 10TO3")
)
[ACCESSFNS 3MBLENGTH ((3MBBASE (LOCF DATUM]
(* ; "What to hand to BCPL")
)
(TYPE? (type? ETHERPACKET DATUM)))
)
(TYPE? (type? ETHERPACKET DATUM)))
(BLOCKRECORD PBI ((PBILINK WORD)
(PBIQUEUE WORD)
(PBISOCKET WORD)
(PBINDB WORD)
(PBIINPUTP FLAG)
(PBIALLNETSP FLAG)
(PBINOZEROP FLAG)
(NIL BITS 13)
(PBITIMER WORD)
(PBILENGTH WORD)
(PBIENCAPSULATION 2 WORD)
(PBIFIRSTPUPWORD 10 WORD)
(PBIFIRSTPUPDATAWORD WORD))
[ACCESSFNS PBI ((PBIPUPSTART (LOCF (fetch PBIFIRSTPUPWORD of DATUM)))
(PBIPUPDATASTART (LOCF (fetch PBIFIRSTPUPDATAWORD
of DATUM)))
(PBIRAWSTART (LOCF (fetch PBILENGTH of DATUM])
(PBIQUEUE WORD)
(PBISOCKET WORD)
(PBINDB WORD)
(PBIINPUTP FLAG)
(PBIALLNETSP FLAG)
(PBINOZEROP FLAG)
(NIL BITS 13)
(PBITIMER WORD)
(PBILENGTH WORD)
(PBIENCAPSULATION 2 WORD)
(PBIFIRSTPUPWORD 10 WORD)
(PBIFIRSTPUPDATAWORD WORD))
[ACCESSFNS PBI ((PBIPUPSTART (LOCF (fetch PBIFIRSTPUPWORD of DATUM)))
(PBIPUPDATASTART (LOCF (fetch PBIFIRSTPUPDATAWORD of DATUM)))
(PBIRAWSTART (LOCF (fetch PBILENGTH of DATUM])
)
(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE
@@ -2879,8 +2873,8 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
T])
)
(RPAQQ ROUTINGINFOMACRO (1 "Operation = " WORDS 2 "Info: " REPEAT "(" SEPR ", " INTEGER -4 WORDS
SEPR ") " -2 FINALLY ")"))
(RPAQQ ROUTINGINFOMACRO (1 "Operation = " WORDS 2 "Info: " REPEAT "(" SEPR ", " INTEGER -4 WORDS SEPR
") " -2 FINALLY ")"))
(DECLARE%: EVAL@COMPILE DONTCOPY
(DECLARE%: DOEVAL@COMPILE DONTCOPY
@@ -2913,10 +2907,10 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(DECLARE%: DONTCOPY
(RPAQQ D0DEVICES ((\DEVICE.3MBETHERIN 7)
(\DEVICE.3MBETHEROUT 6)
(\DEVICE.10MBETHER 21)
(\DEVICE.SA4000 3)
(\DEVICE.DISPLAY 2)))
(\DEVICE.3MBETHEROUT 6)
(\DEVICE.10MBETHER 21)
(\DEVICE.SA4000 3)
(\DEVICE.DISPLAY 2)))
(DECLARE%: EVAL@COMPILE
(RPAQQ \DEVICE.3MBETHERIN 7)
@@ -2947,33 +2941,31 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(* "END EXPORTED DEFINITIONS")
)
(PUTPROPS LLETHER COPYRIGHT ("Venue & Xerox Corporation" 1982 1983 1984 1985 1986 1987 1988 1990 1991
1992 1993 2021))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (10792 19248 (CANONICAL.HOSTNAME 10802 . 12391) (\ENQUEUE 12393 . 15038) (\DEQUEUE 15040
. 16367) (\QUEUELENGTH 16369 . 16669) (\ONQUEUE 16671 . 16937) (\UNQUEUE 16939 . 19246)) (52949 56815
(\ALLOCATE.ETHERPACKET 52959 . 54000) (\RELEASE.ETHERPACKET 54002 . 55075) (RELEASE.PUP 55077 . 55222
) (\FLUSH.PACKET.QUEUE 55224 . 55575) (\REQUEUE.ETHERPACKET 55577 . 56091) (\EP.PUT.AUX 56093 . 56813)
) (57389 68770 (\SETLOCALNSNUMBERS 57399 . 58784) (\LOADNSADDRESS 58786 . 59078) (\STORENSADDRESS
59080 . 59261) (\PRINTNSADDRESS 59263 . 60346) (\NSADDRESS.DEFPRINT 60348 . 65293) (
\NSADDRESS.PRINT.DECIMAL 65295 . 67426) (\LOADNSHOSTNUMBER 67428 . 68057) (\STORENSHOSTNUMBER 68059 .
68463) (PRINTNSHOSTNUMBER 68465 . 68768)) (68883 74631 (\ETHERINIT 68893 . 69463) (\ETHEREVENTFN 69465
. 71997) (\ETHER-AVAILABLE 71999 . 72157) (\TIME.NOT.SET 72159 . 72485) (\SETETHERFLAGS 72487 . 72938
) (\FLUSHNDBS 72940 . 74118) (\FLUSH.NDB.QUEUE 74120 . 74629)) (74632 77924 (\CHECKSUM 74642 . 76574)
(\HANDLE.RAW.OTHER 76576 . 76931) (\HANDLE.RAW.PACKET 76933 . 77445) (\ADD.PACKET.FILTER 77447 . 77679
) (\DEL.PACKET.FILTER 77681 . 77922)) (85757 86282 (ENCAPSULATE.ETHERPACKET 85767 . 86039) (
TRANSMIT.ETHERPACKET 86041 . 86280)) (86570 99166 (\AGE.ROUTING.TABLE 86580 . 88729) (
\ADD.ROUTING.TABLE.ENTRY 88731 . 89427) (\CLEAR.ROUTING.TABLE 89429 . 90156) (\MAP.ROUTING.TABLE 90158
. 90686) (PRINTROUTINGTABLE 90688 . 94313) (\ROUTINGTABLE.INFOHOOK 94315 . 99164)) (99651 106436 (
\TRANSLATE.10TO3 99661 . 101445) (\NOTE.10TO3 101447 . 103063) (\HANDLE.RAW.10TO3 103065 . 106434)) (
110418 125240 (PRINTPACKET 110428 . 110989) (\MAYBEPRINTPACKET 110991 . 112648) (PRINT10TO3 112650 .
114018) (PRINTPACKETDATA 114020 . 119310) (PRINTPACKETQUEUE 119312 . 119741) (TIME.SINCE.PACKET 119743
. 120228) (MAKE-NETWORK-TRACE-WINDOW 120230 . 123772) (\CHANGE.ETHER.TRACING 123774 . 125238)) (
125611 126426 (\CENTICLOCK 125621 . 126424)) (126881 132981 (\3MBGETPACKET 126891 . 128311) (
\3MB.CREATENDB 128313 . 129028) (\3MBSENDPACKET 129030 . 131213) (\3MBWATCHER 131215 . 131953) (
\3MBENCAPSULATE 131955 . 132503) (\3MB.BROADCASTP 132505 . 132676) (\3MBFLUSH 132678 . 132979)) (
135935 137878 (ASSURE.ETHER.ON 135945 . 136275) (INITPUPLEVEL1 136277 . 136757) (TURN.ON.ETHER 136759
. 136904) (RESTART.ETHER 136906 . 137280) (TURN.OFF.ETHER 137282 . 137600) (PRINTWORDS 137602 .
137876)) (138153 138688 (\DEVICE.INPUT 138163 . 138328) (\DEVICE.OUTPUT 138330 . 138524) (\D0.STARTIO
138526 . 138686)))))
(FILEMAP (NIL (10585 19041 (CANONICAL.HOSTNAME 10595 . 12184) (\ENQUEUE 12186 . 14831) (\DEQUEUE 14833
. 16160) (\QUEUELENGTH 16162 . 16462) (\ONQUEUE 16464 . 16730) (\UNQUEUE 16732 . 19039)) (52600 56466
(\ALLOCATE.ETHERPACKET 52610 . 53651) (\RELEASE.ETHERPACKET 53653 . 54726) (RELEASE.PUP 54728 . 54873
) (\FLUSH.PACKET.QUEUE 54875 . 55226) (\REQUEUE.ETHERPACKET 55228 . 55742) (\EP.PUT.AUX 55744 . 56464)
) (57040 68421 (\SETLOCALNSNUMBERS 57050 . 58435) (\LOADNSADDRESS 58437 . 58729) (\STORENSADDRESS
58731 . 58912) (\PRINTNSADDRESS 58914 . 59997) (\NSADDRESS.DEFPRINT 59999 . 64944) (
\NSADDRESS.PRINT.DECIMAL 64946 . 67077) (\LOADNSHOSTNUMBER 67079 . 67708) (\STORENSHOSTNUMBER 67710 .
68114) (PRINTNSHOSTNUMBER 68116 . 68419)) (68534 74394 (\ETHERINIT 68544 . 69114) (\ETHEREVENTFN 69116
. 71594) (\ETHER-AVAILABLE 71596 . 71754) (\TIME.NOT.SET 71756 . 72082) (\SETETHERFLAGS 72084 . 72701
) (\FLUSHNDBS 72703 . 73881) (\FLUSH.NDB.QUEUE 73883 . 74392)) (74395 77687 (\CHECKSUM 74405 . 76337)
(\HANDLE.RAW.OTHER 76339 . 76694) (\HANDLE.RAW.PACKET 76696 . 77208) (\ADD.PACKET.FILTER 77210 . 77442
) (\DEL.PACKET.FILTER 77444 . 77685)) (85191 85716 (ENCAPSULATE.ETHERPACKET 85201 . 85473) (
TRANSMIT.ETHERPACKET 85475 . 85714)) (86004 98600 (\AGE.ROUTING.TABLE 86014 . 88163) (
\ADD.ROUTING.TABLE.ENTRY 88165 . 88861) (\CLEAR.ROUTING.TABLE 88863 . 89590) (\MAP.ROUTING.TABLE 89592
. 90120) (PRINTROUTINGTABLE 90122 . 93747) (\ROUTINGTABLE.INFOHOOK 93749 . 98598)) (99085 105870 (
\TRANSLATE.10TO3 99095 . 100879) (\NOTE.10TO3 100881 . 102497) (\HANDLE.RAW.10TO3 102499 . 105868)) (
109860 124682 (PRINTPACKET 109870 . 110431) (\MAYBEPRINTPACKET 110433 . 112090) (PRINT10TO3 112092 .
113460) (PRINTPACKETDATA 113462 . 118752) (PRINTPACKETQUEUE 118754 . 119183) (TIME.SINCE.PACKET 119185
. 119670) (MAKE-NETWORK-TRACE-WINDOW 119672 . 123214) (\CHANGE.ETHER.TRACING 123216 . 124680)) (
125049 125864 (\CENTICLOCK 125059 . 125862)) (126315 132415 (\3MBGETPACKET 126325 . 127745) (
\3MB.CREATENDB 127747 . 128462) (\3MBSENDPACKET 128464 . 130647) (\3MBWATCHER 130649 . 131387) (
\3MBENCAPSULATE 131389 . 131937) (\3MB.BROADCASTP 131939 . 132110) (\3MBFLUSH 132112 . 132413)) (
135157 137100 (ASSURE.ETHER.ON 135167 . 135497) (INITPUPLEVEL1 135499 . 135979) (TURN.ON.ETHER 135981
. 136126) (RESTART.ETHER 136128 . 136502) (TURN.OFF.ETHER 136504 . 136822) (PRINTWORDS 136824 .
137098)) (137371 137906 (\DEVICE.INPUT 137381 . 137546) (\DEVICE.OUTPUT 137548 . 137742) (\D0.STARTIO
137744 . 137904)))))
STOP

Binary file not shown.

View File

@@ -1,14 +1,14 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10)
(FILECREATED "25-Oct-2021 15:12:33" |{DSK}<home>larry>medley>sources>MAIKOETHER.;2| 28792
(FILECREATED "30-Dec-2025 19:09:34" |{DSK}<Users>briggs>projects>medley>sources>MAIKOETHER.;7| 26899
|changes| |to:| (FNS \\DISPLAYLINE)
(VARS MAIKOETHERCOMS)
:EDIT-BY |nhb|
|previous| |date:| "25-Mar-2021 09:50:57" |{DSK}<home>larry>medley>sources>MAIKOETHER.;1|)
:CHANGES-TO (VARS MAIKOETHERCOMS)
:PREVIOUS-DATE "30-Dec-2025 18:50:46" |{DSK}<Users>briggs>projects>medley>sources>MAIKOETHER.;6|
)
; Copyright (c) 1988-1991, 2021 by Venue & Xerox Corporation.
(PRETTYCOMPRINT MAIKOETHERCOMS)
@@ -23,10 +23,6 @@
(DECLARE\: EVAL@COMPILE DONTCOPY (FILES (LOADCOMP)
10MBDRIVER)
(GLOBALVARS \\MAIKO.INPUT.PACKET |\\ETHERtopMonitor|)
(* |;;| "The NDB for Maiko's 10MB connection; used by \\MAIKO.ETHER-INTERRUPT:")
(GLOBALVARS \\MAIKO.10MB.NDB)
(GLOBALVARS \\MAIKO.IO-INTERRUPT-FLAGS \\MAIKO.IO-INTERRUPT-VECTOR))
(ADDVARS (\\MAIKO.MOVDS (\\MAIKO.10MBSTARTDRIVER \\10MB.STARTDRIVER)
(\\MAIKO.10MBWATCHER \\10MBWATCHER)
@@ -35,9 +31,13 @@
(\\MAIKO.10MBTURNONETHER \\10MB.TURNONETHER)
(\\MAIKO.ETHERRESUME \\10MB.RESTART.ETHER)
(\\MAIKO.CHECKSUM \\CHECKSUM)))
(COMS (* \; "MAIKO handler for new interrupt-driven incoming ethernet communication, rather than polling for it.")
(COMS
(* |;;| "MAIKO handler for new interrupt-driven incoming ethernet communication, rather than polling for it.")
(FNS \\MAIKO.ETHER-INTERRUPT))
(COMS (* \; "MAIKO Log & Console message handling. Interrupt-driven message printing, instead of polled printing.")
(COMS
(* |;;| "MAIKO Log & Console message handling. Interrupt-driven message printing, instead of polled printing.")
(FNS \\MAIKO.CONSOLE-LOG-PRINT))
(COMS
(* |;;| "Asynchronous I/O handling")
@@ -48,13 +48,12 @@
(DEFINEQ
(\\10MB.RESTART.ETHER
(LAMBDA NIL (* \; "Edited 11-May-88 16:09 by MASINTER")
(LAMBDA NIL (* \; "Edited 11-May-88 16:09 by MASINTER")
(SUBRCALL ETHER-RESUME)))
(\\10MB.STARTDRIVER
(LAMBDA (NDB RESTARTFLG MYNSNUMBER) (* \; "Edited 5-Apr-89 15:03 by snow")
(DECLARE (GLOBALVARS \\MAIKO.INPUT.PACKET \\10MB.EXPECTED.RECEIVE.INTERVAL
\\10MB.INPUT.TIMEOUT))
(LAMBDA (NDB RESTARTFLG MYNSNUMBER) (* \; "Edited 5-Apr-89 15:03 by snow")
(DECLARE (GLOBALVARS \\MAIKO.INPUT.PACKET \\10MB.EXPECTED.RECEIVE.INTERVAL \\10MB.INPUT.TIMEOUT))
(SUBRCALL ETHER-SUSPEND)
(OR (\\INIT.ETHER.BUFFER.POOL)
(ERROR "Unable to create buffer pool"))
@@ -65,21 +64,17 @@
0 0)
(PROG ((CSB (|fetch| NDBCSB |of| NDB)))
(OR \\MAIKO.INPUT.PACKET (SETQ \\MAIKO.INPUT.PACKET (\\ALLOCATE.ETHERPACKET)))
(|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with|
\\ES.PENDING)
(SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE |of|
\\MAIKO.INPUT.PACKET
))
(|replace| NDBWATCHER |of| NDB |with| (ADD.PROCESS (LIST '\\10MBWATCHER
(KWOTE NDB))
'RESTARTABLE
'SYSTEM
'AFTEREXIT
'DELETE))
(|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with| \\ES.PENDING)
(SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE |of| \\MAIKO.INPUT.PACKET))
(|replace| NDBWATCHER |of| NDB |with| (ADD.PROCESS (LIST '\\10MBWATCHER (KWOTE NDB))
'RESTARTABLE
'SYSTEM
'AFTEREXIT
'DELETE))
(RETURN NDB))))
(\\10MB.TURNOFFETHER
(LAMBDA NIL (* \; "Edited 11-May-88 16:11 by MASINTER")
(LAMBDA NIL (* \; "Edited 11-May-88 16:11 by MASINTER")
(SUBRCALL ETHER-SUSPEND)))
(\\10MB.TURNONETHER
@@ -92,20 +87,16 @@
(PROG ((CSB (|fetch| NDBCSB |of| NDB)))
(\\MAIKO.ETHERSUSPEND)
(OR CSB (|replace| NDBCSB |of| NDB |with| (SETQ CSB
(LOCF (|fetch| DLETHERNET
|of| \\IOPAGE)))))
(OR CSB (|replace| NDBCSB |of| NDB |with| (SETQ CSB (LOCF (|fetch| DLETHERNET |of| \\IOPAGE
)))))
(|replace| DLFIRSTOCB |of| CSB |with| 0)
(|replace| DLFIRSTICB |of| CSB |with| 0)
(AND NSHOSTNUMBER (COND
((EQ NSHOSTNUMBER T)
(\\BLT (LOCF (|fetch| DLLOCALHOST0 |of| CSB))
(LOCF (|fetch| (IFPAGE |NSHost0|) |of|
|\\InterfacePage|)
)
(LOCF (|fetch| (IFPAGE |NSHost0|) |of| |\\InterfacePage|))
\\#WDS.NSHOSTNUMBER))
(T (\\STORENSHOSTNUMBER (LOCF (|fetch| DLLOCALHOST0 |of|
CSB))
(T (\\STORENSHOSTNUMBER (LOCF (|fetch| DLLOCALHOST0 |of| CSB))
NSHOSTNUMBER))))
(AND OUTINTERRUPT (|replace| DLOUTPUTMASK |of| CSB |with| OUTINTERRUPT))
(AND ININTERRUPT (|replace| DLINPUTMASK |of| CSB |with| ININTERRUPT))
@@ -117,7 +108,7 @@
(RETURN NDB))))
(\\10MBSENDPACKET
(LAMBDA (NDB PACKET) (* \; "Edited 11-May-88 16:10 by MASINTER")
(LAMBDA (NDB PACKET) (* \; "Edited 11-May-88 16:10 by MASINTER")
(PROG NIL
(COND
(\\RAWTRACING (\\MAYBEPRINTPACKET PACKET 'RAWPUT)))
@@ -125,23 +116,23 @@
((OR (|fetch| 10MBMULTICASTP |of| PACKET)
(EQNSADDRESS.HOST \\MY.NSADDRESS (|fetch| 10MBDESTHOSTBASE |of| PACKET)))
(* \;
 "We would hear this packet if our hardware let us, so fake receipt")
 "We would hear this packet if our hardware let us, so fake receipt")
(PROG ((COPYPACKET (\\ALLOCATE.ETHERPACKET)))
(\\BLT (LOCF (|fetch| 10MBLENGTH |of| COPYPACKET))
(LOCF (|fetch| 10MBLENGTH |of| PACKET))
(ADD1 (|fetch| 10MBLENGTH |of| PACKET)))
(* \;
 "Copy all data that would have been transmitted")
 "Copy all data that would have been transmitted")
(|replace| EPNETWORK |of| COPYPACKET |with| NDB)
(|replace| EPTYPE |of| COPYPACKET
|with| (|for| PAIR |in| \\10MBTYPE.TRANSLATIONS
|bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET))
|when| (EQ TYPE (CAR PAIR)) |do|
|bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET))
|when| (EQ TYPE (CAR PAIR)) |do|
(* |;;| "TYPE is the raw type of the etherpacket. These do not always correspond one-to-one with the EPTYPE constants we use (in particular, for pups), so translate if necessary.")
(RETURN (CDR PAIR))
|finally| (RETURN TYPE)))
(RETURN (CDR PAIR))
|finally| (RETURN TYPE)))
(COND
(\\RAWTRACING (\\MAYBEPRINTPACKET COPYPACKET 'RAWGET)))
(\\HANDLE.RAW.PACKET COPYPACKET))))
@@ -154,20 +145,21 @@
(RETURN T))))
(\\10MBWATCHER
(LAMBDA (NDB) (* \; "Edited 16-May-88 22:24 by MASINTER")
(LAMBDA (NDB) (* \; "Edited 16-May-88 22:24 by MASINTER")
(* |;;| "merge message and packet reading")
(PROG ((CNTR 0)
MESSAGE-BUFFER MESSAGE-LENGTH PACKET)
LP (IF (SUBRCALL MESSAGE-READP)
THEN (PROMPTPRINT (IF (SETQ MESSAGE-LENGTH (SUBRCALL MESSAGE-READ
(OR MESSAGE-BUFFER
(SETQ MESSAGE-BUFFER
(ALLOCSTRING 1024)))
1024))
THEN (SUBSTRING MESSAGE-BUFFER 1 MESSAGE-LENGTH)
ELSE "?? system message: polling failed")))
THEN (PROMPTPRINT (IF (SETQ MESSAGE-LENGTH (SUBRCALL MESSAGE-READ (OR MESSAGE-BUFFER
(SETQ
MESSAGE-BUFFER
(ALLOCSTRING
1024)))
1024))
THEN (SUBSTRING MESSAGE-BUFFER 1 MESSAGE-LENGTH)
ELSE "?? system message: polling failed")))
(UNINTERRUPTABLY
(SUBRCALL ETHER-CHECK)
(SETQ PACKET (\\MAIKO.INPUT.INTERRUPT NDB)))
@@ -182,31 +174,31 @@
(GO LP))))
(\\MAIKO.10MBSENDPACKET
(LAMBDA (NDB PACKET) (* \; "Edited 31-Oct-89 14:10 by bvm")
(LAMBDA (NDB PACKET) (* \; "Edited 31-Oct-89 14:10 by bvm")
(PROG NIL
(COND
(\\RAWTRACING (\\MAYBEPRINTPACKET PACKET 'RAWPUT)))
(COND
((OR (|fetch| 10MBMULTICASTP |of| PACKET)
(EQNSADDRESS.HOST \\MY.NSADDRESS (|fetch| 10MBDESTNSADDRESSBASE |of| PACKET
)))(* \;
 "We would hear this packet if our hardware let us, so fake receipt")
(EQNSADDRESS.HOST \\MY.NSADDRESS (|fetch| 10MBDESTNSADDRESSBASE |of| PACKET)))
(* \;
 "We would hear this packet if our hardware let us, so fake receipt")
(PROG ((COPYPACKET (\\ALLOCATE.ETHERPACKET)))
(\\BLT (LOCF (|fetch| 10MBLENGTH |of| COPYPACKET))
(LOCF (|fetch| 10MBLENGTH |of| PACKET))
(ADD1 (|fetch| 10MBLENGTH |of| PACKET)))
(* \;
 "Copy all data that would have been transmitted")
 "Copy all data that would have been transmitted")
(|replace| EPNETWORK |of| COPYPACKET |with| NDB)
(|replace| EPTYPE |of| COPYPACKET
|with| (|for| PAIR |in| \\10MBTYPE.TRANSLATIONS
|bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET))
|when| (EQ TYPE (CAR PAIR)) |do|
|bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET))
|when| (EQ TYPE (CAR PAIR)) |do|
(* |;;| "TYPE is the raw type of the etherpacket. These do not always correspond one-to-one with the EPTYPE constants we use (in particular, for pups), so translate if necessary.")
(RETURN (CDR PAIR))
|finally| (RETURN TYPE)))
(RETURN (CDR PAIR))
|finally| (RETURN TYPE)))
(COND
(\\RAWTRACING (\\MAYBEPRINTPACKET COPYPACKET 'RAWGET)))
(\\HANDLE.RAW.PACKET COPYPACKET))))
@@ -219,20 +211,21 @@
(RETURN T))))
(\\MAIKO.10MBWATCHER
(LAMBDA (NDB) (* \; "Edited 16-May-88 22:24 by MASINTER")
(LAMBDA (NDB) (* \; "Edited 16-May-88 22:24 by MASINTER")
(* |;;| "merge message and packet reading")
(PROG ((CNTR 0)
MESSAGE-BUFFER MESSAGE-LENGTH PACKET)
LP (IF (SUBRCALL MESSAGE-READP)
THEN (PROMPTPRINT (IF (SETQ MESSAGE-LENGTH (SUBRCALL MESSAGE-READ
(OR MESSAGE-BUFFER
(SETQ MESSAGE-BUFFER
(ALLOCSTRING 1024)))
1024))
THEN (SUBSTRING MESSAGE-BUFFER 1 MESSAGE-LENGTH)
ELSE "?? system message: polling failed")))
THEN (PROMPTPRINT (IF (SETQ MESSAGE-LENGTH (SUBRCALL MESSAGE-READ (OR MESSAGE-BUFFER
(SETQ
MESSAGE-BUFFER
(ALLOCSTRING
1024)))
1024))
THEN (SUBSTRING MESSAGE-BUFFER 1 MESSAGE-LENGTH)
ELSE "?? system message: polling failed")))
(UNINTERRUPTABLY
(SUBRCALL ETHER-CHECK)
(SETQ PACKET (\\MAIKO.INPUT.INTERRUPT NDB)))
@@ -247,15 +240,15 @@
(GO LP))))
(\\MAIKO.ETHERRESUME
(LAMBDA NIL (* \; "Edited 11-May-88 16:09 by MASINTER")
(LAMBDA NIL (* \; "Edited 11-May-88 16:09 by MASINTER")
(SUBRCALL ETHER-RESUME)))
(\\MAIKO.ETHERSUSPEND
(LAMBDA NIL (* \; "Edited 11-May-88 16:11 by MASINTER")
(LAMBDA NIL (* \; "Edited 11-May-88 16:11 by MASINTER")
(SUBRCALL ETHER-SUSPEND)))
(\\MAIKO.INPUT.INTERRUPT
(LAMBDA (NDB) (* \; "Edited 11-May-88 16:05 by MASINTER")
(LAMBDA (NDB) (* \; "Edited 11-May-88 16:05 by MASINTER")
(* |;;| "This routine gets called when 10MB input signals an interrupt. See if the \\MAIKO.INPUT.PACKET has indeed been processed, and if so, take care of it")
@@ -266,43 +259,38 @@
(|replace| 10MBLENGTH |of| PACKET |with| LENGTH)
(\\RCLK (LOCF (|fetch| EPTIMESTAMP |of| PACKET)))
(|replace| EPNETWORK |of| PACKET |with| NDB)
(|replace| EPTYPE |of| PACKET |with| (|for| PAIR |in|
\\10MBTYPE.TRANSLATIONS
|bind| (TYPE _
(|fetch|
10MBTYPE
|of| PACKET
))
|when| (EQ TYPE (CAR PAIR))
|do| (RETURN (CDR PAIR))
|finally| (RETURN TYPE)))
(|replace| EPTYPE |of| PACKET |with| (|for| PAIR |in| \\10MBTYPE.TRANSLATIONS
|bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET))
|when| (EQ TYPE (CAR PAIR))
|do| (RETURN (CDR PAIR))
|finally| (RETURN TYPE)))
(COND
(\\RAWTRACING (\\MAYBEPRINTPACKET PACKET 'RAWGET)))
(RETURN (PROG1 PACKET
(SETQ \\MAIKO.INPUT.PACKET (\\ALLOCATE.ETHERPACKET))
(|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB)
|with| \\ES.PENDING)
(SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE
|of| \\MAIKO.INPUT.PACKET))))
)
(|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with| \\ES.PENDING)
(SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE |of|
\\MAIKO.INPUT.PACKET
)))))
(T (RETURN NIL))))))
(\\NS.SETTIME
(LAMBDA (RETFLG) (* \; "Edited 13-May-88 15:22 by MASINTER")
(LAMBDA (RETFLG) (* \; "Edited 13-May-88 15:22 by MASINTER")
(CL:UNLESS (AND RETFLG (NOT (STRINGP RETFLG)))
(SETQ |\\TimeZoneComp| (SUBRCALL GETUNIXTIME 8 NIL)))
(\\PROCESS.RESET.TIMERS)
(DAYTIME)))
(\\PUP.SETTIME
(LAMBDA (RETFLG) (* \; "Edited 13-May-88 15:22 by MASINTER")
(LAMBDA (RETFLG) (* \; "Edited 13-May-88 15:22 by MASINTER")
(CL:UNLESS (AND RETFLG (NOT (STRINGP RETFLG)))
(SETQ |\\TimeZoneComp| (SUBRCALL GETUNIXTIME 8 NIL)))
(\\PROCESS.RESET.TIMERS)
(DAYTIME)))
(\\MAIKO.10MBSTARTDRIVER
(LAMBDA (NDB RESTARTFLG MYNSNUMBER) (* \; "Edited 4-May-91 15:50 by jds")
(LAMBDA (NDB RESTARTFLG MYNSNUMBER) (* \; "Edited 30-Dec-2025 18:50 by nhb")
(* \; "Edited 4-May-91 15:50 by jds")
(* |;;| "Start the \"driver\" for the 10MB ethernet on Sun Medley. In particular, turn on the C ehternet code, queue up the first input packet, and start the \\10MBWATCHER process.")
@@ -312,13 +300,11 @@
(|replace| NDBTQ |of| NDB |with| (|create| SYSQUEUE))
(SETQ \\10MB.RAWPACKETQ (|create| SYSQUEUE))
(SETQ \\10MB.INPUT.TIMEOUT (TIMES \\RCLKSECOND \\10MB.EXPECTED.RECEIVE.INTERVAL))
(SETQ \\MAIKO.10MB.NDB NDB)
(\\10MB.TURNONETHER NDB NIL NIL (OR MYNSNUMBER T)
0 0)
(PROG ((CSB (|fetch| NDBCSB |of| NDB)))
(OR \\MAIKO.INPUT.PACKET (SETQ \\MAIKO.INPUT.PACKET (\\ALLOCATE.ETHERPACKET)))
(|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with|
\\ES.PENDING)
(|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with| \\ES.PENDING)
(AND (SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE |of|
\\MAIKO.INPUT.PACKET
))
@@ -340,20 +326,16 @@
(PROG ((CSB (|fetch| NDBCSB |of| NDB)))
(\\MAIKO.ETHERSUSPEND)
(OR CSB (|replace| NDBCSB |of| NDB |with| (SETQ CSB
(LOCF (|fetch| DLETHERNET
|of| \\IOPAGE)))))
(OR CSB (|replace| NDBCSB |of| NDB |with| (SETQ CSB (LOCF (|fetch| DLETHERNET |of| \\IOPAGE
)))))
(|replace| DLFIRSTOCB |of| CSB |with| 0)
(|replace| DLFIRSTICB |of| CSB |with| 0)
(AND NSHOSTNUMBER (COND
((EQ NSHOSTNUMBER T)
(\\BLT (LOCF (|fetch| DLLOCALHOST0 |of| CSB))
(LOCF (|fetch| (IFPAGE |NSHost0|) |of|
|\\InterfacePage|)
)
(LOCF (|fetch| (IFPAGE |NSHost0|) |of| |\\InterfacePage|))
\\#WDS.NSHOSTNUMBER))
(T (\\STORENSHOSTNUMBER (LOCF (|fetch| DLLOCALHOST0 |of|
CSB))
(T (\\STORENSHOSTNUMBER (LOCF (|fetch| DLLOCALHOST0 |of| CSB))
NSHOSTNUMBER))))
(AND OUTINTERRUPT (|replace| DLOUTPUTMASK |of| CSB |with| OUTINTERRUPT))
(AND ININTERRUPT (|replace| DLINPUTMASK |of| CSB |with| ININTERRUPT))
@@ -365,14 +347,14 @@
(RETURN NDB))))
(\\MAIKO.10MB.RESTART.ETHER
(LAMBDA (NDB) (* \; "Edited 11-May-88 16:08 by MASINTER")
(LAMBDA (NDB) (* \; "Edited 11-May-88 16:08 by MASINTER")
(* |;;;| "Kick the Ethernet receiver task to restart the Ethernet receiver task. This function gets called when the 10MBDRIVER thinks the Ethernet has been accidentally disabled")
(SUBRCALL ETHER-RESUME)))
(\\MAIKO.CHECKSUM
(LAMBDA (BASE NWORDS INITSUM) (* \; "Edited 20-May-88 11:48 by MASINTER")
(LAMBDA (BASE NWORDS INITSUM) (* \; "Edited 20-May-88 11:48 by MASINTER")
(SUBRCALL CHECK-SUM BASE NWORDS INITSUM)))
)
@@ -391,41 +373,37 @@
(DECLARE\: DOEVAL@COMPILE DONTCOPY
(GLOBALVARS \\MAIKO.10MB.NDB)
)
(DECLARE\: DOEVAL@COMPILE DONTCOPY
(GLOBALVARS \\MAIKO.IO-INTERRUPT-FLAGS \\MAIKO.IO-INTERRUPT-VECTOR)
)
)
(ADDTOVAR \\MAIKO.MOVDS (\\MAIKO.10MBSTARTDRIVER \\10MB.STARTDRIVER)
(\\MAIKO.10MBWATCHER \\10MBWATCHER)
(\\MAIKO.10MBSENDPACKET \\10MBSENDPACKET)
(\\MAIKO.ETHERSUSPEND \\10MB.TURNOFFETHER)
(\\MAIKO.10MBTURNONETHER \\10MB.TURNONETHER)
(\\MAIKO.ETHERRESUME \\10MB.RESTART.ETHER)
(\\MAIKO.CHECKSUM \\CHECKSUM))
(\\MAIKO.10MBWATCHER \\10MBWATCHER)
(\\MAIKO.10MBSENDPACKET \\10MBSENDPACKET)
(\\MAIKO.ETHERSUSPEND \\10MB.TURNOFFETHER)
(\\MAIKO.10MBTURNONETHER \\10MB.TURNONETHER)
(\\MAIKO.ETHERRESUME \\10MB.RESTART.ETHER)
(\\MAIKO.CHECKSUM \\CHECKSUM))
(* \;
(* |;;|
"MAIKO handler for new interrupt-driven incoming ethernet communication, rather than polling for it.")
(DEFINEQ
(\\MAIKO.ETHER-INTERRUPT
(LAMBDA NIL (* \; "Edited 4-May-91 13:46 by jds")
(LAMBDA NIL (* \; "Edited 30-Dec-2025 18:36 by nhb")
(* \; "Edited 4-May-91 13:46 by jds")
(* |;;| "This routine gets called when 10MB input signals an interrupt. See if the \\MAIKO.INPUT.PACKET has indeed been processed, and if so, take care of it")
(PROG ((NDB \\MAIKO.10MB.NDB)
(PROG ((NDB \\10MBLOCALNDB)
LENGTH)
(* |;;| "First, turn off the interrupt flag:")
(REPLACE (INTERRUPTSTATE ETHERINTERRUPT) OF \\INTERRUPTSTATE WITH NIL)
(|replace| (INTERRUPTSTATE ETHERINTERRUPT) |of| \\INTERRUPTSTATE |with| NIL)
(* |;;| "Now handle it:")
@@ -437,33 +415,27 @@
READ-MORE-LOOP
(COND
((NEQ (SETQ LENGTH (|fetch| DLFIRSTICB |of| (|fetch| NDBCSB
|of| NDB)))
((NEQ (SETQ LENGTH (|fetch| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB)))
\\ES.PENDING)
(|replace| 10MBLENGTH |of| PACKET |with| LENGTH)
(\\RCLK (LOCF (|fetch| EPTIMESTAMP |of| PACKET)))
(|replace| EPNETWORK |of| PACKET |with| NDB)
(|replace| EPTYPE |of| PACKET
|with| (|for| PAIR |in| \\10MBTYPE.TRANSLATIONS
|bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET
))
|when| (EQ TYPE (CAR PAIR))
|do| (RETURN (CDR PAIR)) |finally| (RETURN
TYPE)))
|bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET))
|when| (EQ TYPE (CAR PAIR)) |do| (RETURN (CDR PAIR))
|finally| (RETURN TYPE)))
(COND
(\\RAWTRACING (\\MAYBEPRINTPACKET PACKET 'RAWGET)))
(\\HANDLE.RAW.PACKET PACKET)
(SETQ \\MAIKO.INPUT.PACKET (\\ALLOCATE.ETHERPACKET))
(|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB)
|with| \\ES.PENDING)
(|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with| \\ES.PENDING)
(COND
((SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE
|of|
\\MAIKO.INPUT.PACKET)
)
|of| \\MAIKO.INPUT.PACKET))
(* |;;|
 "Returned T, so there's another packet waiting already. Process it.")
 "Returned T, so there's another packet waiting already. Process it.")
(SETQ PACKET \\MAIKO.INPUT.PACKET)
(GO READ-MORE-LOOP)))))))))))
@@ -471,7 +443,7 @@
(* \;
(* |;;|
"MAIKO Log & Console message handling. Interrupt-driven message printing, instead of polled printing."
)
@@ -527,14 +499,13 @@
(RPAQ \\MAIKO.IO-INTERRUPT-FLAGS (\\CREATECELL \\FIXP))
(RPAQQ \\MAIKO.IO-INTERRUPT-VECTOR NIL)
(PUTPROPS MAIKOETHER COPYRIGHT ("Venue & Xerox Corporation" 1988 1989 1990 1991 2021))
(DECLARE\: DONTCOPY
(FILEMAP (NIL (2591 22216 (\\10MB.RESTART.ETHER 2601 . 2761) (\\10MB.STARTDRIVER 2763 . 4522) (
\\10MB.TURNOFFETHER 4524 . 4684) (\\10MB.TURNONETHER 4686 . 7056) (\\10MBSENDPACKET 7058 . 9429) (
\\10MBWATCHER 9431 . 10770) (\\MAIKO.10MBSENDPACKET 10772 . 13150) (\\MAIKO.10MBWATCHER 13152 . 14497)
(\\MAIKO.ETHERRESUME 14499 . 14658) (\\MAIKO.ETHERSUSPEND 14660 . 14821) (\\MAIKO.INPUT.INTERRUPT
14823 . 17085) (\\NS.SETTIME 17087 . 17367) (\\PUP.SETTIME 17369 . 17650) (\\MAIKO.10MBSTARTDRIVER
17652 . 19307) (\\MAIKO.10MBTURNONETHER 19309 . 21684) (\\MAIKO.10MB.RESTART.ETHER 21686 . 22039) (
\\MAIKO.CHECKSUM 22041 . 22214)) (23271 26336 (\\MAIKO.ETHER-INTERRUPT 23281 . 26334)) (26458 27821 (
\\MAIKO.CONSOLE-LOG-PRINT 26468 . 27819)) (27867 28547 (\\MAIKO.IO-INTERRUPT 27877 . 28545)))))
(FILEMAP (NIL (2301 20787 (\\10MB.RESTART.ETHER 2311 . 2475) (\\10MB.STARTDRIVER 2477 . 3863) (
\\10MB.TURNOFFETHER 3865 . 4029) (\\10MB.TURNONETHER 4031 . 6121) (\\10MBSENDPACKET 6123 . 8481) (
\\10MBWATCHER 8483 . 9926) (\\MAIKO.10MBSENDPACKET 9928 . 12296) (\\MAIKO.10MBWATCHER 12298 . 13747) (
\\MAIKO.ETHERRESUME 13749 . 13912) (\\MAIKO.ETHERSUSPEND 13914 . 14079) (\\MAIKO.INPUT.INTERRUPT 14081
. 15925) (\\NS.SETTIME 15927 . 16211) (\\PUP.SETTIME 16213 . 16498) (\\MAIKO.10MBSTARTDRIVER 16500 .
18150) (\\MAIKO.10MBTURNONETHER 18152 . 20247) (\\MAIKO.10MB.RESTART.ETHER 20249 . 20606) (
\\MAIKO.CHECKSUM 20608 . 20785)) (21751 24528 (\\MAIKO.ETHER-INTERRUPT 21761 . 24526)) (24652 26015 (
\\MAIKO.CONSOLE-LOG-PRINT 24662 . 26013)) (26061 26741 (\\MAIKO.IO-INTERRUPT 26071 . 26739)))))
STOP

Binary file not shown.

View File

@@ -1,15 +1,13 @@
(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP" BASE 8)
(FILECREATED " 1-May-2021 19:49:18" {DSK}<home>larry>ilisp>medley>sources>PUP.;2 336270Q
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 8)
changes to%: (FNS \PUP.SETTIME CANONICAL.HOSTNAME)
(VARS PUPCOMS)
(FILECREATED " 2-Apr-2026 09:13:04" {DSK}<Users>briggs>projects>medley>sources>PUP.;8 333567Q
previous date%: "19-Jan-93 11:14:09" {DSK}<home>larry>ilisp>medley>sources>PUP.;1)
:EDIT-BY "briggs"
:CHANGES-TO (FNS \LOOKUPPORT)
:PREVIOUS-DATE " 3-Feb-2026 18:40:52" {DSK}<Users>briggs>projects>medley>sources>PUP.;7)
(* ; "
Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
")
(PRETTYCOMPRINT PUPCOMS)
@@ -35,7 +33,7 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(FNS SETUPPUP SWAPPUPPORTS GETPUP SENDPUP EXCHANGEPUPS DISCARDPUPS GETPUPWORD \PUPINIT)
(FNS ETHERHOSTNAME ETHERHOSTNUMBER ETHERPORT BESTPUPADDRESS NETDAYTIME0 \PUP.SETTIME
\SETNEWTIME0 \NET.SETTIME NETDATE \LOOKUPPORT \PARSE.PORTCONSTANT \FIXLOCALNET)
(FNS PORTSTRING OCTALSTRING)
(FNS PORTSTRING)
(INITVARS (\ETHERPORTS (HASHARRAY 24Q))
(\ETHERTIMEOUT 3720Q)
(\MAXETHERTRIES 4)
@@ -45,13 +43,13 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(FNS CLEARPUP PUTPUPWORD GETPUPBYTE PUTPUPBYTE GETPUPSTRING GETPUPSTREAM PUTPUPSTRING)
(OPTIMIZERS GETPUPWORD PUTPUPWORD GETPUPBYTE PUTPUPBYTE))
(COMS (* ;
 "Reading property lists from streams")
 "Reading property lists from streams")
(FNS READPLIST)
(INITVARS \READPLIST.READTABLES)
(GLOBALVARS \READPLIST.READTABLES))
(COMS (FNS \CANONICAL.HOSTNAME \CANONICALIZE.PUP.HOSTNAME)
(P (* ;
 "Default this for when IP not loaded")
 "Default this for when IP not loaded")
(MOVD? 'NILL '\CANONICALIZE.IP.HOSTNAME NIL T))
(ADDVARS (\HOSTNAMES)
(\SYSTEMCACHEVARS \HOSTNAMES))
@@ -138,53 +136,52 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE
(ACCESSFNS PUP [(PUPBASE (LOCF (fetch (ETHERPACKET EPBODY) of DATUM]
[BLOCKRECORD PUPBASE ((PUPLENGTH WORD)
(PUPTCONTROL BYTE)
(PUPTYPE BYTE)
(PUPID FIXP)
(PUPDEST WORD)
(PUPDESTSOCKET FIXP)
(PUPSOURCE WORD)
(PUPSOURCESOCKET FIXP)
(PUPDATASTART 412Q WORD))
(BLOCKRECORD PUPBASE ((NIL WORD)
(TYPEWORD WORD)
(PUPIDHI WORD)
(PUPIDLO WORD)
(PUPDESTNET BYTE)
(PUPDESTHOST BYTE)
(PUPDESTSOCKETHI WORD)
(PUPDESTSOCKETLO WORD)
(PUPSOURCENET BYTE)
(PUPSOURCEHOST BYTE)
(PUPSOURCESOCKETHI WORD)
(PUPSOURCESOCKETLO WORD))
[BLOCKRECORD PUPBASE ((PUPLENGTH WORD)
(PUPTCONTROL BYTE)
(PUPTYPE BYTE)
(PUPID FIXP)
(PUPDEST WORD)
(PUPDESTSOCKET FIXP)
(PUPSOURCE WORD)
(PUPSOURCESOCKET FIXP)
(PUPDATASTART 412Q WORD))
(BLOCKRECORD PUPBASE ((NIL WORD)
(TYPEWORD WORD)
(PUPIDHI WORD)
(PUPIDLO WORD)
(PUPDESTNET BYTE)
(PUPDESTHOST BYTE)
(PUPDESTSOCKETHI WORD)
(PUPDESTSOCKETLO WORD)
(PUPSOURCENET BYTE)
(PUPSOURCEHOST BYTE)
(PUPSOURCESOCKETHI WORD)
(PUPSOURCESOCKETLO WORD))
(* ; "Temporary extra synonyms")
(SYNONYM PUPDESTNET (DESTNET))
(SYNONYM PUPDESTHOST (DESTHOST))
(SYNONYM PUPDESTSOCKETHI (DESTSKTHI))
(SYNONYM PUPDESTSOCKETLO (DESTSKTLO))
(SYNONYM PUPSOURCENET (SOURCENET))
(SYNONYM PUPSOURCEHOST (SOURCEHOST))
(SYNONYM PUPSOURCESOCKETHI (SOURCESKTHI))
(SYNONYM PUPSOURCESOCKETLO (SOURCESKTLO)))
(SYNONYM PUPDEST (DEST))
(SYNONYM PUPDESTSOCKET (DESTSKT))
(SYNONYM PUPSOURCE (SOURCE))
(SYNONYM PUPSOURCESOCKET (SOURCESKT))
(ACCESSFNS PUPDATASTART ((PUPCONTENTS (LOCF DATUM]
[ACCESSFNS PUP [(PUPCHECKSUMBASE (fetch PUPBASE of DATUM))
(PUPCHECKSUMLOC (\ADDBASE (fetch PUPBASE of DATUM)
(FOLDLO (SUB1 (fetch PUPLENGTH
of DATUM))
BYTESPERWORD]
(BLOCKRECORD PUPCHECKSUMLOC ((PUPCHECKSUM WORD]
(TYPE? (type? ETHERPACKET DATUM)))
(SYNONYM PUPDESTNET (DESTNET))
(SYNONYM PUPDESTHOST (DESTHOST))
(SYNONYM PUPDESTSOCKETHI (DESTSKTHI))
(SYNONYM PUPDESTSOCKETLO (DESTSKTLO))
(SYNONYM PUPSOURCENET (SOURCENET))
(SYNONYM PUPSOURCEHOST (SOURCEHOST))
(SYNONYM PUPSOURCESOCKETHI (SOURCESKTHI))
(SYNONYM PUPSOURCESOCKETLO (SOURCESKTLO)))
(SYNONYM PUPDEST (DEST))
(SYNONYM PUPDESTSOCKET (DESTSKT))
(SYNONYM PUPSOURCE (SOURCE))
(SYNONYM PUPSOURCESOCKET (SOURCESKT))
(ACCESSFNS PUPDATASTART ((PUPCONTENTS (LOCF DATUM]
[ACCESSFNS PUP [(PUPCHECKSUMBASE (fetch PUPBASE of DATUM))
(PUPCHECKSUMLOC (\ADDBASE (fetch PUPBASE of DATUM)
(FOLDLO (SUB1 (fetch PUPLENGTH of DATUM))
BYTESPERWORD]
(BLOCKRECORD PUPCHECKSUMLOC ((PUPCHECKSUM WORD]
(TYPE? (type? ETHERPACKET DATUM)))
(ACCESSFNS PUPADDRESS ((PUPNET# (LRSH DATUM 10Q))
(PUPHOST# (LOGAND DATUM 377Q)))
(CREATE (IPLUS (LLSH PUPNET# 10Q)
PUPHOST#)))
(PUPHOST# (LOGAND DATUM 377Q)))
(CREATE (IPLUS (LLSH PUPNET# 10Q)
PUPHOST#)))
)
(DECLARE%: EVAL@COMPILE
@@ -274,23 +271,26 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(RETURN T])])
(\FIND.LOCALPUPHOSTNUMBER
[LAMBDA (NDB EVENT QUIET) (* bvm%: "26-Jul-84 16:27")
[LAMBDA (NDB EVENT QUIET) (* ; "Edited 22-Dec-2025 11:58 by nhb")
(* ; "Edited 20-Dec-2025 13:51 by nhb")
(* bvm%: "26-Jul-84 16:27")
(* ;; "Finds out our pup address on this 10mb NDB")
(PROG (NEWNUMBER)
[COND
((NOT (\ETHER-AVAILABLE))
(RETURN NIL))
[(SETQ NEWNUMBER (\LOOKUPPUPNUMBER \MY.NSHOSTNUMBER NDB))
(COND
(PUPTRACEFLG (printout PUPTRACEFILE "My pup address = " (fetch PUPNET#
of NEWNUMBER)
(PUPTRACEFLG (printout PUPTRACEFILE "My pup address = " (fetch PUPNET# of NEWNUMBER)
"#"
(fetch PUPHOST# of NEWNUMBER)
"#" T]
(QUIET (RETURN NIL))
(T (SETQ NEWNUMBER (\PROMPT.FOR.PUP.NUMBER (AND (EQ EVENT 'AFTERLOGOUT)
(NEQ \OLDPUPHOST# 0)
(OCTALSTRING \OLDPUPHOST#]
(NEQ \OLDPUPHOST# 0)
(OCTALSTRING \OLDPUPHOST#]
(* ;; "Only rely on the host number part of reply. There is confusion for machines that exist on more than one net")
@@ -470,14 +470,14 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE
(ACCESSFNS ERRORPUP ((ERRORPUPBASE (fetch PUPCONTENTS of DATUM)))
(BLOCKRECORD ERRORPUPBASE ((ERRORPUPCOPY 12Q WORD)
(BLOCKRECORD ERRORPUPBASE ((ERRORPUPCOPY 12Q WORD)
(* ; "Copy of pup header")
(ERRORPUPCODE WORD)
(ERRORPUPARG WORD)
(ERRORPUPCODE WORD)
(ERRORPUPARG WORD)
(* ; "Usually zero")
(ERRORPUPSTRINGBASE WORD)
(ERRORPUPSTRINGBASE WORD)
(* ; "Human readable message")
)))
)))
)
(RPAQQ PUPERRORCODES
@@ -969,11 +969,13 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(\DAYTIME0 (create FIXP])
(\LOOKUPPORT
[LAMBDA (NAME) (* ; "Edited 1-Apr-87 12:37 by bvm:")
[LAMBDA (NAME) (* ; "Edited 2-Apr-2026 09:08 by briggs")
(* ; "Edited 1-Apr-87 12:37 by bvm:")
(* ;;; "Looks up the ether address of NAME, returning a list of dotted pairs (nethost . socket), or NIL on failure")
(AND NAME
(AND NAME (EQ (OR \PUP.READY (ASSURE.PUP.READY))
T)
(PROG ((SOC (\GETMISCSOCKET))
(OPUP (ALLOCATE.PUP))
RESULT BUF LEN IPUP)
@@ -981,35 +983,31 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(PUTPUPSTRING OPUP NAME)
[to \MAXETHERTRIES when (SETQ IPUP (EXCHANGEPUPS SOC OPUP NIL T))
do (SELECTC (fetch PUPTYPE of IPUP)
(\PT.NAMERESPONSE
[COND
((> (SETQ LEN (IQUOTIENT (FOLDLO (- (fetch PUPLENGTH
of IPUP)
\PUPOVLEN)
BYTESPERWORD)
\PORTIDLEN))
1)
(COND
(PUPTRACEFLG (printout PUPTRACEFILE
"Multiple response received for " NAME T
]
[RETURN (SETQ RESULT (from 1 to LEN
as (PTR _ (fetch PUPCONTENTS
of IPUP))
by (\ADDBASE PTR \PORTIDLEN)
collect (CONS (fetch (PORT NETHOST)
of PTR)
(fetch (PORT SOCKET)
of PTR])
(\PT.NAME/ADDRERROR
(\PT.NAMERESPONSE
[COND
((> (SETQ LEN (IQUOTIENT (FOLDLO (- (fetch PUPLENGTH of IPUP)
\PUPOVLEN)
BYTESPERWORD)
\PORTIDLEN))
1)
(COND
(PUPTRACEFLG (printout PUPTRACEFILE "Name lookup error for "
NAME ": " (GETPUPSTRING IPUP)
T)))
(RETURN))
NIL) finally (COND
(PUPTRACEFLG (printout PUPTRACEFILE
"Name lookup timed out" T]
(PUPTRACEFLG (printout PUPTRACEFILE
"Multiple response received for " NAME T]
[RETURN (SETQ RESULT (from 1 to LEN
as (PTR _ (fetch PUPCONTENTS of IPUP))
by (\ADDBASE PTR \PORTIDLEN)
collect (CONS (fetch (PORT NETHOST)
of PTR)
(fetch (PORT SOCKET) of PTR])
(\PT.NAME/ADDRERROR
(COND
(PUPTRACEFLG (printout PUPTRACEFILE "Name lookup error for " NAME
": " (GETPUPSTRING IPUP)
T)))
(RETURN))
NIL) finally (COND
(PUPTRACEFLG (printout PUPTRACEFILE "Name lookup timed out"
T]
(AND IPUP (RELEASE.PUP IPUP))
(RELEASE.PUP OPUP)
(RETURN RESULT])
@@ -1080,11 +1078,6 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(COND
(SOCKET (OCTALSTRING SOCKET))
(T ""])
(OCTALSTRING
[LAMBDA (N) (* bvm%: "21-JUL-81 12:16")
(GLOBALRESOURCE (\NUMSTR \NUMSTR1)
(CONCAT (\CONVERTNUMBER N 10Q NIL NIL \NUMSTR \NUMSTR1])
)
(RPAQ? \ETHERPORTS (HASHARRAY 24Q))
@@ -1174,24 +1167,22 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
)
(DEFOPTIMIZER GETPUPWORD (PUPARG WORD#)
`(\GETBASE (fetch PUPCONTENTS of (\DTEST ,PUPARG 'ETHERPACKET))
,WORD#))
`(\GETBASE (fetch PUPCONTENTS of (\DTEST ,PUPARG 'ETHERPACKET))
,WORD#))
(DEFOPTIMIZER PUTPUPWORD (PUPARG WORD# VALUE)
`(\PUTBASE (fetch PUPCONTENTS of (\DTEST ,PUPARG 'ETHERPACKET))
,WORD#
,VALUE))
`(\PUTBASE (fetch PUPCONTENTS of (\DTEST ,PUPARG 'ETHERPACKET))
,WORD#
,VALUE))
(DEFOPTIMIZER GETPUPBYTE (PUPARG BYTE#)
`(\GETBASEBYTE (fetch PUPCONTENTS of (\DTEST ,PUPARG
'ETHERPACKET))
,BYTE#))
`(\GETBASEBYTE (fetch PUPCONTENTS of (\DTEST ,PUPARG 'ETHERPACKET))
,BYTE#))
(DEFOPTIMIZER PUTPUPBYTE (PUPARG BYTE# VALUE)
`(\PUTBASEBYTE (fetch PUPCONTENTS of (\DTEST ,PUPARG
'ETHERPACKET))
,BYTE#
,VALUE))
`(\PUTBASEBYTE (fetch PUPCONTENTS of (\DTEST ,PUPARG 'ETHERPACKET))
,BYTE#
,VALUE))
@@ -1282,7 +1273,7 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
)
(* ;
 "Default this for when IP not loaded")
 "Default this for when IP not loaded")
(MOVD? 'NILL '\CANONICALIZE.IP.HOSTNAME NIL T)
@@ -1301,8 +1292,8 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE
(PUTPROPS BINDPUPS MACRO [X (CONS (LIST 'LAMBDA (CAR X)
(CONS 'PROGN (CDR X)))
(in (CAR X) collect (LIST 'ALLOCATE.PUP])
(CONS 'PROGN (CDR X)))
(in (CAR X) collect (LIST 'ALLOCATE.PUP])
)
(PUTPROPS BINDPUPS INFO BINDS)
@@ -1597,12 +1588,12 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(DECLARE%: DONTCOPY
(DECLARE%: EVAL@COMPILE
(BLOCKRECORD PUPROUTINGINFO ( (* ;
 "Format of each entry in a pup routing info packet. We only actually use NET# and #HOPS")
(NET# BYTE)
(GATENET# BYTE)
(GATEHOST# BYTE)
(%#HOPS BYTE)))
(BLOCKRECORD PUPROUTINGINFO ( (* ;
 "Format of each entry in a pup routing info packet. We only actually use NET# and #HOPS")
(NET# BYTE)
(GATENET# BYTE)
(GATEHOST# BYTE)
(%#HOPS BYTE)))
)
(DECLARE%: EVAL@COMPILE
@@ -1628,24 +1619,24 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(DECLARE%: EVAL@COMPILE
(DATATYPE PUPSOCKET ((NIL BITS 4)
(PUPSOCLINK POINTER) (* ; "So that we can Queue them")
(PSOCKET# FIXP)
(INQUEUE POINTER)
(INQUEUELENGTH WORD)
(PUPSOC#ALLOCATION WORD)
(PUPSOCHANDLE WORD) (* ; "Back-fitting for Bcpl")
(PUPSOCPUPADDRESS WORD) (* ; "Local net/host")
(NIL BITS 4)
(PUPSOCEVENT POINTER) (* ;
 "Event that is notified when a pup arrives on this socket")
(NIL BITS 4)
(NIL POINTER))
(BLOCKRECORD PUPSOCKET ((NIL BITS 4)
(NIL POINTER)
(PSOCKETHI WORD)
(PSOCKETLO WORD)))
INQUEUE _ (create SYSQUEUE)
PUPSOC#ALLOCATION _ \MAX.EPKTS.ON.PUPSOCKET)
(PUPSOCLINK POINTER) (* ; "So that we can Queue them")
(PSOCKET# FIXP)
(INQUEUE POINTER)
(INQUEUELENGTH WORD)
(PUPSOC#ALLOCATION WORD)
(PUPSOCHANDLE WORD) (* ; "Back-fitting for Bcpl")
(PUPSOCPUPADDRESS WORD) (* ; "Local net/host")
(NIL BITS 4)
(PUPSOCEVENT POINTER) (* ;
 "Event that is notified when a pup arrives on this socket")
(NIL BITS 4)
(NIL POINTER))
(BLOCKRECORD PUPSOCKET ((NIL BITS 4)
(NIL POINTER)
(PSOCKETHI WORD)
(PSOCKETLO WORD)))
INQUEUE _ (create SYSQUEUE)
PUPSOC#ALLOCATION _ \MAX.EPKTS.ON.PUPSOCKET)
)
(/DECLAREDATATYPE 'PUPSOCKET '((BITS 4)
@@ -1670,11 +1661,11 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(DECLARE%: EVAL@COMPILE
(PUTPROPS \PUPSOCKET.FROM# MACRO (OPENLAMBDA (SOCHI SOCLO)
(for SOC in \PUPSOCKETS
when (AND (EQ (fetch PSOCKETLO of SOC)
SOCLO)
(EQ (fetch PSOCKETHI of SOC)
SOCHI)) do (RETURN SOC))))
(for SOC in \PUPSOCKETS
when (AND (EQ (fetch PSOCKETLO of SOC)
SOCLO)
(EQ (fetch PSOCKETHI of SOC)
SOCHI)) do (RETURN SOC))))
)
(DECLARE%: DOEVAL@COMPILE DONTCOPY
@@ -1704,17 +1695,17 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(ADDTOVAR SYSTEMRECLST
(DATATYPE PUPSOCKET ((NIL BITS 4)
(PUPSOCLINK POINTER)
(PSOCKET# FIXP)
(INQUEUE POINTER)
(INQUEUELENGTH WORD)
(PUPSOC#ALLOCATION WORD)
(PUPSOCHANDLE WORD)
(PUPSOCPUPADDRESS WORD)
(NIL BITS 4)
(PUPSOCEVENT POINTER)
(NIL BITS 4)
(NIL POINTER)))
(PUPSOCLINK POINTER)
(PSOCKET# FIXP)
(INQUEUE POINTER)
(INQUEUELENGTH WORD)
(PUPSOC#ALLOCATION WORD)
(PUPSOCHANDLE WORD)
(PUPSOCPUPADDRESS WORD)
(NIL BITS 4)
(PUPSOCEVENT POINTER)
(NIL BITS 4)
(NIL POINTER)))
)
(DEFINEQ
@@ -1826,21 +1817,21 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE
(BLOCKRECORD PORT ((NETHOST WORD)
(SOCKET FIXP))
(BLOCKRECORD PORT ((NET BYTE)
(HOST BYTE)
(SOCKETHI WORD)
(SOCKETLO WORD))))
(SOCKET FIXP))
(BLOCKRECORD PORT ((NET BYTE)
(HOST BYTE)
(SOCKETHI WORD)
(SOCKETLO WORD))))
(ACCESSFNS ERRORPUP ((ERRORPUPBASE (fetch PUPCONTENTS of DATUM)))
(BLOCKRECORD ERRORPUPBASE ((ERRORPUPCOPY 12Q WORD)
(BLOCKRECORD ERRORPUPBASE ((ERRORPUPCOPY 12Q WORD)
(* ; "Copy of pup header")
(ERRORPUPCODE WORD)
(ERRORPUPARG WORD)
(ERRORPUPCODE WORD)
(ERRORPUPARG WORD)
(* ; "Usually zero")
(ERRORPUPSTRINGBASE WORD)
(ERRORPUPSTRINGBASE WORD)
(* ; "Human readable message")
)))
)))
)
(DECLARE%: DOEVAL@COMPILE DONTCOPY
@@ -1868,20 +1859,20 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(DECLARE%: EVAL@COMPILE
(PUTPROPS \GETPUPWORD DMACRO ((PUP WORD#)
(\GETBASE (fetch PUPCONTENTS of PUP)
WORD#)))
(\GETBASE (fetch PUPCONTENTS of PUP)
WORD#)))
(PUTPROPS \PUTPUPWORD DMACRO ((PUP WORD# VALUE)
(\PUTBASE (fetch PUPCONTENTS of PUP)
WORD# VALUE)))
(\PUTBASE (fetch PUPCONTENTS of PUP)
WORD# VALUE)))
(PUTPROPS \GETPUPBYTE DMACRO ((PUP BYTE#)
(\GETBASEBYTE (fetch PUPCONTENTS of PUP)
BYTE#)))
(\GETBASEBYTE (fetch PUPCONTENTS of PUP)
BYTE#)))
(PUTPROPS \PUTPUPBYTE DMACRO ((PUP BYTE# VALUE)
(\PUTBASEBYTE (fetch PUPCONTENTS of PUP)
BYTE# VALUE)))
(\PUTBASEBYTE (fetch PUPCONTENTS of PUP)
BYTE# VALUE)))
)
(RPAQQ RAWPUPTYPES
@@ -2033,13 +2024,13 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(RPAQ? PUPTYPES RAWPUPTYPES)
(RPAQQ WELLKNOWNPUPSOCKETS ((\PUPSOCKET.TELNET 1)
(\PUPSOCKET.ROUTING 2)
(\PUPSOCKET.FTP 3)
(\PUPSOCKET.MISCSERVICES 4)
(\PUPSOCKET.ECHO 5)
(\PUPSOCKET.EFTP 20Q)
(\PUPSOCKET.PRINTERSTATUS 21Q)
(\PUPSOCKET.LEAF 43Q)))
(\PUPSOCKET.ROUTING 2)
(\PUPSOCKET.FTP 3)
(\PUPSOCKET.MISCSERVICES 4)
(\PUPSOCKET.ECHO 5)
(\PUPSOCKET.EFTP 20Q)
(\PUPSOCKET.PRINTERSTATUS 21Q)
(\PUPSOCKET.LEAF 43Q)))
(DECLARE%: EVAL@COMPILE
(RPAQQ \PUPSOCKET.TELNET 1)
@@ -2074,9 +2065,9 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(RPAQQ PUPCONSTANTS ((\PUPHEADERLEN 24Q)
(\NetMask 177400Q)
(\HILOCALSOCKET 1)
(\PORTIDLEN 3)))
(\NetMask 177400Q)
(\HILOCALSOCKET 1)
(\PORTIDLEN 3)))
(DECLARE%: EVAL@COMPILE
(RPAQQ \PUPHEADERLEN 24Q)
@@ -2097,28 +2088,28 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(DECLARE%: EVAL@COMPILE
(PUTPROPS PUPDEBUGGING MACRO [(X . Y)
(COND
(PUPTRACEFLG (printout PUPTRACEFILE X . Y])
(COND
(PUPTRACEFLG (printout PUPTRACEFILE X . Y])
)
(ADDTOVAR PUPPRINTMACROS (210Q CHARS)
(214Q CHARS)
(211Q CHARS)
(213Q CHARS)
(201Q WORDS 2 CHARS 24Q |...|)
(30Q CHARS))
(214Q CHARS)
(211Q CHARS)
(213Q CHARS)
(201Q WORDS 2 CHARS 24Q |...|)
(30Q CHARS))
(DECLARE%: EVAL@COMPILE
(BLOCKRECORD TIMEPUPCONTENTS ((TIMEPUPVALUEHI WORD)
(TIMEPUPVALUELO WORD)
(TIMEPUPEASTP FLAG)
(TIMEPUPHOURS BITS 7)
(TIMEPUPMINUTES BITS 10Q)
(TIMEPUPBEGINDST WORD)
(TIMEPUPENDDST WORD)) (* ; "format of alto time response")
)
(TIMEPUPVALUELO WORD)
(TIMEPUPEASTP FLAG)
(TIMEPUPHOURS BITS 7)
(TIMEPUPMINUTES BITS 10Q)
(TIMEPUPBEGINDST WORD)
(TIMEPUPENDDST WORD)) (* ; "format of alto time response")
)
)
)
@@ -2447,10 +2438,10 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(ADDTOVAR PUPIGNORETYPES )
(ADDTOVAR PUPPRINTMACROS (4 . PRINTERRORPUP)
(220Q CHARS)
(221Q REPEAT BYTES -2 WORDS -4)
(223Q BYTES -2 WORDS)
(224Q CHARS))
(220Q CHARS)
(221Q REPEAT BYTES -2 WORDS -4)
(223Q BYTES -2 WORDS)
(224Q CHARS))
(DECLARE%: DONTEVAL@LOAD
(\PUPINIT)
@@ -2469,32 +2460,30 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(PUTPROPS PUP MAKEFILE-ENVIRONMENT (:READTABLE "INTERLISP" :PACKAGE "INTERLISP" :BASE 10Q))
(PUTPROPS PUP FILETYPE CL:COMPILE-FILE)
(PUTPROPS PUP COPYRIGHT ("Venue & Xerox Corporation" 3676Q 3677Q 3700Q 3701Q 3702Q 3703Q 3704Q 3705Q
3706Q 3707Q 3710Q 3711Q 3745Q))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (25631Q 61606Q (\STARTPUP 25643Q . 26515Q) (ASSURE.PUP.READY 26517Q . 34612Q) (
\FIND.LOCALPUPHOSTNUMBER 34614Q . 37012Q) (\PROMPT.FOR.PUP.NUMBER 37014Q . 41034Q) (\HANDLE.RAW.PUP
41036Q . 57136Q) (\FORWARD.PUP 57140Q . 60060Q) (\SETPUPCHECKSUM 60062Q . 61604Q)) (66376Q 73470Q (
\PUPERROR 66410Q . 73466Q)) (73527Q 112663Q (SETUPPUP 73541Q . 76727Q) (SWAPPUPPORTS 76731Q . 77546Q)
(GETPUP 77550Q . 102462Q) (SENDPUP 102464Q . 106306Q) (EXCHANGEPUPS 106310Q . 110346Q) (DISCARDPUPS
110350Q . 111154Q) (GETPUPWORD 111156Q . 111475Q) (\PUPINIT 111477Q . 112661Q)) (112664Q 154244Q (
ETHERHOSTNAME 112676Q . 122024Q) (ETHERHOSTNUMBER 122026Q . 122441Q) (ETHERPORT 122443Q . 126162Q) (
BESTPUPADDRESS 126164Q . 136224Q) (NETDAYTIME0 136226Q . 136557Q) (\PUP.SETTIME 136561Q . 137206Q) (
\SETNEWTIME0 137210Q . 140270Q) (\NET.SETTIME 140272Q . 141361Q) (NETDATE 141363Q . 141720Q) (
\LOOKUPPORT 141722Q . 147561Q) (\PARSE.PORTCONSTANT 147563Q . 152673Q) (\FIXLOCALNET 152675Q . 154242Q
)) (154245Q 155602Q (PORTSTRING 154257Q . 155246Q) (OCTALSTRING 155250Q . 155600Q)) (156174Q 165305Q (
CLEARPUP 156206Q . 160721Q) (PUTPUPWORD 160723Q . 161250Q) (GETPUPBYTE 161252Q . 161575Q) (PUTPUPBYTE
161577Q . 162130Q) (GETPUPSTRING 162132Q . 163563Q) (GETPUPSTREAM 163565Q . 164514Q) (PUTPUPSTRING
164516Q . 165303Q)) (167410Q 175227Q (READPLIST 167422Q . 175225Q)) (175410Q 200610Q (
\CANONICAL.HOSTNAME 175422Q . 176467Q) (\CANONICALIZE.PUP.HOSTNAME 176471Q . 200606Q)) (203163Q
236370Q (\PUPGATELISTENER 203175Q . 207026Q) (\HANDLE.PUP.ROUTING.INFO 207030Q . 221367Q) (\ROUTE.PUP
221371Q . 225224Q) (\LOCATE.PUPNET 225226Q . 231763Q) (SORT.PUPHOSTS.BY.DISTANCE 231765Q . 234241Q) (
\PUPNET.CLOSERP 234243Q . 235424Q) (PUPNET.DISTANCE 235426Q . 236366Q)) (250017Q 257771Q (
OPENPUPSOCKET 250031Q . 254512Q) (CLOSEPUPSOCKET 254514Q . 256173Q) (PUPSOCKETNUMBER 256175Q . 256426Q
) (PUPSOCKETFROMNUMBER 256430Q . 257067Q) (PUPSOCKETEVENT 257071Q . 257350Q) (\FLUSHPUPSOCQUEUE
257352Q . 257767Q)) (257772Q 260537Q (\GETMISCSOCKET 260004Q . 260535Q)) (300551Q 313341Q (
PUP.ECHOSERVER 300563Q . 303370Q) (PUP.ECHOUSER 303372Q . 313337Q)) (313372Q 322523Q (\PEEKPUP 313404Q
. 320535Q) (\MAYBEPEEKPUP 320537Q . 322521Q)) (323124Q 334361Q (PRINTPUP 323136Q . 327306Q) (
PRINTPUPROUTE 327310Q . 331255Q) (PRINTPUPDATA 331257Q . 331727Q) (PRINTERRORPUP 331731Q . 332431Q) (
PUPTRACE 332433Q . 332744Q) (PRINTCONSTANT 332746Q . 334357Q)))))
(FILEMAP (NIL (25073Q 61361Q (\STARTPUP 25105Q . 25757Q) (ASSURE.PUP.READY 25761Q . 34054Q) (
\FIND.LOCALPUPHOSTNUMBER 34056Q . 36565Q) (\PROMPT.FOR.PUP.NUMBER 36567Q . 40607Q) (\HANDLE.RAW.PUP
40611Q . 56711Q) (\FORWARD.PUP 56713Q . 57633Q) (\SETPUPCHECKSUM 57635Q . 61357Q)) (66125Q 73217Q (
\PUPERROR 66137Q . 73215Q)) (73256Q 112412Q (SETUPPUP 73270Q . 76456Q) (SWAPPUPPORTS 76460Q . 77275Q)
(GETPUP 77277Q . 102211Q) (SENDPUP 102213Q . 106035Q) (EXCHANGEPUPS 106037Q . 110075Q) (DISCARDPUPS
110077Q . 110703Q) (GETPUPWORD 110705Q . 111224Q) (\PUPINIT 111226Q . 112410Q)) (112413Q 153423Q (
ETHERHOSTNAME 112425Q . 121553Q) (ETHERHOSTNUMBER 121555Q . 122170Q) (ETHERPORT 122172Q . 125711Q) (
BESTPUPADDRESS 125713Q . 135753Q) (NETDAYTIME0 135755Q . 136306Q) (\PUP.SETTIME 136310Q . 136735Q) (
\SETNEWTIME0 136737Q . 140017Q) (\NET.SETTIME 140021Q . 141110Q) (NETDATE 141112Q . 141447Q) (
\LOOKUPPORT 141451Q . 146740Q) (\PARSE.PORTCONSTANT 146742Q . 152052Q) (\FIXLOCALNET 152054Q . 153421Q
)) (153424Q 154427Q (PORTSTRING 153436Q . 154425Q)) (155021Q 164132Q (CLEARPUP 155033Q . 157546Q) (
PUTPUPWORD 157550Q . 160075Q) (GETPUPBYTE 160077Q . 160422Q) (PUTPUPBYTE 160424Q . 160755Q) (
GETPUPSTRING 160757Q . 162410Q) (GETPUPSTREAM 162412Q . 163341Q) (PUTPUPSTRING 163343Q . 164130Q)) (
165723Q 173542Q (READPLIST 165735Q . 173540Q)) (173723Q 177123Q (\CANONICAL.HOSTNAME 173735Q . 175002Q
) (\CANONICALIZE.PUP.HOSTNAME 175004Q . 177121Q)) (201460Q 234665Q (\PUPGATELISTENER 201472Q . 205323Q
) (\HANDLE.PUP.ROUTING.INFO 205325Q . 217664Q) (\ROUTE.PUP 217666Q . 223521Q) (\LOCATE.PUPNET 223523Q
. 230260Q) (SORT.PUPHOSTS.BY.DISTANCE 230262Q . 232536Q) (\PUPNET.CLOSERP 232540Q . 233721Q) (
PUPNET.DISTANCE 233723Q . 234663Q)) (246060Q 256032Q (OPENPUPSOCKET 246072Q . 252553Q) (CLOSEPUPSOCKET
252555Q . 254234Q) (PUPSOCKETNUMBER 254236Q . 254467Q) (PUPSOCKETFROMNUMBER 254471Q . 255130Q) (
PUPSOCKETEVENT 255132Q . 255411Q) (\FLUSHPUPSOCQUEUE 255413Q . 256030Q)) (256033Q 256600Q (
\GETMISCSOCKET 256045Q . 256576Q)) (276276Q 311066Q (PUP.ECHOSERVER 276310Q . 301115Q) (PUP.ECHOUSER
301117Q . 311064Q)) (311117Q 320250Q (\PEEKPUP 311131Q . 316262Q) (\MAYBEPEEKPUP 316264Q . 320246Q)) (
320651Q 332106Q (PRINTPUP 320663Q . 325033Q) (PRINTPUPROUTE 325035Q . 327002Q) (PRINTPUPDATA 327004Q
. 327454Q) (PRINTERRORPUP 327456Q . 330156Q) (PUPTRACE 330160Q . 330471Q) (PRINTCONSTANT 330473Q .
332104Q)))))
STOP

Binary file not shown.

View File

@@ -1,13 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10 FORMAT UTF-8)
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10 :FORMAT :UTF-8)
(FILECREATED "23-Feb-2026 12:15:24" {WMEDLEY}<sources>UNICODE-FORMATS.;2 216288
(FILECREATED " 7-May-2026 11:08:18" {MEDLEY}<sources>UNICODE-FORMATS.;5 218405
:EDIT-BY rmk
:CHANGES-TO (VARS UNICODE-FORMATSCOMS)
(FNS MAKE-UNICODE-FORMATS)
:CHANGES-TO (FNS SYSTEM-EXTERNALFORMAT)
:PREVIOUS-DATE "23-Feb-2026 08:52:29" {WMEDLEY}<sources>UNICODE-UTF8.;26)
:PREVIOUS-DATE "31-Mar-2026 09:03:25" {MEDLEY}<sources>UNICODE-FORMATS.;4)
(PRETTYCOMPRINT UNICODE-FORMATSCOMS)
@@ -47,6 +46,9 @@
(LAST-PRIVATE-MCCSCODE (CHARCODE "230,377"]
(FNS UNICODE-INIT)
(P (UNICODE-INIT)))
(COMS (FNS SYSTEM-EXTERNALFORMAT MTOSYSSTRING SYSTOMSTRING)
(EXPORT (GLOBALVARS *SYSTEM-EXTERNALFORMAT*))
(INITVARS (*SYSTEM-EXTERNALFORMAT* :UTF-8)))
(DECLARE%: EVAL@LOAD DONTCOPY (FILES UNICODE-TABLES))
(E (PRINTOUT NIL "(MERGE-UNICODE-TRANSLATION-TABLES NIL (QUOTE " (GET-MCCS-UNICODE-MAPPING
'ALL)
@@ -1243,6 +1245,46 @@
)
(UNICODE-INIT)
(DEFINEQ
(SYSTEM-EXTERNALFORMAT
[LAMBDA NIL (* ; "Edited 7-May-2026 11:08 by rmk")
(* ; "Edited 6-Feb-2026 11:29 by rmk")
(* ; "Edited 31-Jan-2026 18:51 by rmk")
(* ; "Edited 10-Oct-2022 11:55 by lmm")
(* ; "Edited 7-Jul-2022 10:41 by rmk")
(* ;; "Returns the name, sets the global. For now, UTF-8 or through, could be something else.")
(fetch (EXTERNALFORMAT NAME) of (SETQ *SYSTEM-EXTERNALFORMAT*
(FIND-FORMAT (for X in '("LC_CTYPE" "LC_ALL" "LANG")
when (STRPOS "UTF" (U-CASE (UNIX-GETENV X)))
do
(* ;;
 "Should it check separately for 8? Would anyone ever say UTF-16 ?")
(RETURN :UTF-8) finally (RETURN :THROUGH])
(MTOSYSSTRING
[LAMBDA (MSTRING) (* ; "Edited 6-Feb-2026 00:20 by rmk")
(MCCSTOFORMATBYTES *SYSTEM-EXTERNALFORMAT* (MKSTRING MSTRING])
(SYSTOMSTRING
[LAMBDA (SYSTRING) (* ; "Edited 5-Feb-2026 23:36 by rmk")
(* ;; "SYSSTRING is presumably shared with Unix, guarantee a copy on the way out")
(CONCAT (FORMATBYTESTOMCCS *SYSTEM-EXTERNALFORMAT* SYSTRING])
)
(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: DOEVAL@COMPILE DONTCOPY
(GLOBALVARS *SYSTEM-EXTERNALFORMAT*)
)
(* "END EXPORTED DEFINITIONS")
(RPAQ? *SYSTEM-EXTERNALFORMAT* :UTF-8)
(DECLARE%: EVAL@LOAD DONTCOPY
(FILESLOAD UNICODE-TABLES)
@@ -2721,19 +2763,20 @@
(64994 8322) (64995 8323) (64996 8324) (64997 8325) (64998 8326) (64999 8327) (65000 8328) (65001
8329) (65002 8331) (65003 8330) (65004 8332) (65008 (48 824)))))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (3333 19425 (UTF8.OUTCHARFN 3343 . 6359) (UTF8.SLUG.OUTCHARFN 6361 . 7025) (
UTF8.INCCODEFN 7027 . 13306) (UTF8.PEEKCCODEFN 13308 . 18441) (\UTF8.BACKCCODEFN 18443 . 19423)) (
19426 24341 (UTF16BE.OUTCHARFN 19436 . 20455) (UTF16BE.INCCODEFN 20457 . 21799) (UTF16BE.PEEKCCODEFN
21801 . 23145) (\UTF16BE.BACKCCODEFN 23147 . 24339)) (24342 29073 (UTF16LE.OUTCHARFN 24352 . 25468) (
UTF16LE.INCCODEFN 25470 . 26599) (UTF16LE.PEEKCCODEFN 26601 . 27877) (\UTF16LE.BACKCCODEFN 27879 .
29071)) (29074 32121 (READBOM 29084 . 31153) (WRITEBOM 31155 . 32119)) (32122 36153 (
MAKE-UNICODE-FORMATS 32132 . 36151)) (36221 40715 (UTF8.BINCODE 36231 . 38919) (\UTF8.FETCHCODE 38921
. 40713)) (40716 46339 (UTF8.VALIDATE 40726 . 43323) (NUTF8-BYTE1-BYTES 43325 . 44062) (
NUTF8-CODE-BYTES 44064 . 45121) (NUTF8-STRING-BYTES 45123 . 46015) (N-MCHARS 46017 . 46337)) (46403
47677 (MTOUCODE 46413 . 46582) (UTOMCODE 46584 . 46781) (MTOUCODE? 46783 . 47162) (UTOMCODE? 47164 .
47675)) (47678 54250 (MTOUSTRING 47688 . 48271) (UTOMSTRING 48273 . 48856) (MTOUTF8STRING 48858 .
53137) (UTF8TOMSTRING 53139 . 54248)) (54308 60016 (XTOUCODE 54318 . 54836) (UTOXCODE 54838 . 55346) (
XTOUCODE? 55348 . 56409) (UTOXCODE? 56411 . 57494) (XTOUSTRING 57496 . 58191) (UTOXSTRING 58193 .
58936) (XTOUTF8STRING 58938 . 60014)) (60017 65196 (MERGE-UNICODE-TRANSLATION-TABLES 60027 . 62789) (
UNICODE.UNMAPPED 62791 . 65194)) (68935 69188 (UNICODE-INIT 68945 . 69186)))))
(FILEMAP (NIL (3476 19568 (UTF8.OUTCHARFN 3486 . 6502) (UTF8.SLUG.OUTCHARFN 6504 . 7168) (
UTF8.INCCODEFN 7170 . 13449) (UTF8.PEEKCCODEFN 13451 . 18584) (\UTF8.BACKCCODEFN 18586 . 19566)) (
19569 24484 (UTF16BE.OUTCHARFN 19579 . 20598) (UTF16BE.INCCODEFN 20600 . 21942) (UTF16BE.PEEKCCODEFN
21944 . 23288) (\UTF16BE.BACKCCODEFN 23290 . 24482)) (24485 29216 (UTF16LE.OUTCHARFN 24495 . 25611) (
UTF16LE.INCCODEFN 25613 . 26742) (UTF16LE.PEEKCCODEFN 26744 . 28020) (\UTF16LE.BACKCCODEFN 28022 .
29214)) (29217 32264 (READBOM 29227 . 31296) (WRITEBOM 31298 . 32262)) (32265 36296 (
MAKE-UNICODE-FORMATS 32275 . 36294)) (36364 40858 (UTF8.BINCODE 36374 . 39062) (\UTF8.FETCHCODE 39064
. 40856)) (40859 46482 (UTF8.VALIDATE 40869 . 43466) (NUTF8-BYTE1-BYTES 43468 . 44205) (
NUTF8-CODE-BYTES 44207 . 45264) (NUTF8-STRING-BYTES 45266 . 46158) (N-MCHARS 46160 . 46480)) (46546
47820 (MTOUCODE 46556 . 46725) (UTOMCODE 46727 . 46924) (MTOUCODE? 46926 . 47305) (UTOMCODE? 47307 .
47818)) (47821 54393 (MTOUSTRING 47831 . 48414) (UTOMSTRING 48416 . 48999) (MTOUTF8STRING 49001 .
53280) (UTF8TOMSTRING 53282 . 54391)) (54451 60159 (XTOUCODE 54461 . 54979) (UTOXCODE 54981 . 55489) (
XTOUCODE? 55491 . 56552) (UTOXCODE? 56554 . 57637) (XTOUSTRING 57639 . 58334) (UTOXSTRING 58336 .
59079) (XTOUTF8STRING 59081 . 60157)) (60160 65339 (MERGE-UNICODE-TRANSLATION-TABLES 60170 . 62932) (
UNICODE.UNMAPPED 62934 . 65337)) (69078 69331 (UNICODE-INIT 69088 . 69329)) (69352 71137 (
SYSTEM-EXTERNALFORMAT 69362 . 70653) (MTOSYSSTRING 70655 . 70848) (SYSTOMSTRING 70850 . 71135)))))
STOP

Binary file not shown.

View File

@@ -1,323 +0,0 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "13-Jul-2025 23:08:39" {DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>XCCS.;10 15413
:EDIT-BY rmk
:CHANGES-TO (VARS XCCSCOMS)
:PREVIOUS-DATE "25-Mar-2025 23:40:52"
{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>XCCS.;9)
(PRETTYCOMPRINT XCCSCOMS)
(RPAQQ XCCSCOMS
[(FNS \XCCSINCCODE \XCCSPEEKCCODE \XCCSOUTCHAR \XCCSBACKCCODE \XCCSFORMATBYTESTREAM
\XCCSCHARSETFN)
(FNS \CREATE.XCCS.EXTERNALFORMAT)
(FNS \NSIN.24BITENCODING.ERROR)
(FNS KANJICHARSETP CHINESECHARSETP)
(INITVARS (*SIGNAL-24BIT-NSENCODING-ERROR*))
(DECLARE%: EVAL@COMPILE DONTCOPY (EXPORT (CONSTANTS (\NORUNCODE 255)
(NSCHARSETSHIFT 255))
(MACROS \RUNCODED)))
(DECLARE%: DONTEVAL@LOAD DOCOPY (P (\CREATE.XCCS.EXTERNALFORMAT])
(DEFINEQ
(\XCCSINCCODE
[LAMBDA (STREAM COUNTP) (* ; "Edited 8-Dec-2023 15:28 by rmk")
(* ; "Edited 6-Aug-2021 15:57 by rmk:")
(* ;;; "Returns a 16 bit character code. SHIFTEDCSET is STREAM's char set left shifted 8.")
(* ;;; "If COUNTP is non-NIL, the variable *BYTECOUNTER* is set freely to the number of bytes read.")
(* ;;; "This doesn't do EOL conversion, \INCHAR does that")
(DECLARE (USEDFREE *BYTECOUNTER*))
(\DTEST STREAM 'STREAM)
(LET (NUMBYTES (CSET (ffetch (STREAM CHARSET) of STREAM))
(CHAR (\BIN STREAM))) (* ;
 "Error on EOF unless ENDOFSTREAMOP does something else.")
(* ;; " NUMBYTES tracks the number of \BINs. ")
(IF (EQ CHAR NSCHARSETSHIFT)
THEN (* ;
 "Shifting character sets, toss CHAR")
(SETQ CSET (\BIN STREAM))
(IF (NEQ NSCHARSETSHIFT CSET)
THEN (* ;
 "Shift to new runcode CSET: SH CS CH")
(SETQ CHAR (\BIN STREAM))
(SETQ NUMBYTES 3)
(freplace (STREAM CHARSET) of STREAM with CSET)
ELSEIF (EQ 0 (\BIN STREAM))
THEN (* ; "SH SH CSH CS CH where CSH is 0")
(* ;;
 "The high-order character set byte must be 0, because we don't support obese characters (24 bit)")
(SETQ CSET (\BIN STREAM))
(SETQ CHAR (\BIN STREAM)) (* ; "To align with below")
(SETQ NUMBYTES 5)
(freplace (STREAM CHARSET) of STREAM with \NORUNCODE)
ELSE (\NSIN.24BITENCODING.ERROR STREAM))
(* ;; "The stream now knows the new character set, runcoded or not.")
ELSEIF (EQ CSET \NORUNCODE)
THEN (* ; "2-bytes")
(SETQ CSET CHAR)
(SETQ CHAR (\BIN STREAM))
(SETQ NUMBYTES 2)
ELSE
(* ;; "Runcoded CSET and CHAR")
(SETQ NUMBYTES 1))
(CL:WHEN COUNTP (SETQ *BYTECOUNTER* NUMBYTES))
(CL:WHEN CHAR (* ;
 "Typically NIL if ENDOFSTREAMOP returned NIL at EOF ")
(LOGOR (UNFOLD CSET 256)
CHAR))])
(\XCCSPEEKCCODE
[LAMBDA (STREAM NOERROR) (* ; "Edited 8-Dec-2023 15:32 by rmk")
(* ; "Edited 21-Jun-2021 23:44 by rmk:")
(* ;;
 "Modeled on \XCCSINCCODE, but peeks at the last byte in the sequence, leaves the stream unchanged")
(\DTEST STREAM 'STREAM)
(LET ((CSET (ffetch (STREAM CHARSET) of STREAM))
(CHAR (\PEEKBIN STREAM NOERROR)))
(* ;; "Returns a 16 bit character code. Doesn't do EOL conversion--\PEEKCCODE does that. ")
(* ;; "We don't change the charset in the stream, put the file ptr back the way it was.")
(CL:WHEN CHAR
(IF (EQ CHAR NSCHARSETSHIFT)
THEN (\BIN STREAM) (* ; "Read the peeked shifting byte")
(SETQ CSET (\BIN STREAM)) (* ; "Consume the char shift byte")
(IF (NEQ CSET NSCHARSETSHIFT)
THEN
(* ;;
 "Shift to new runcode CSET: SH CS CH. We have to BIN what we peeked, BIN, and peek again")
(SETQ CHAR (\PEEKBIN STREAM NOERROR))
(\BACKFILEPTR STREAM)
(\BACKFILEPTR STREAM)
ELSEIF (EQ 0 (\BIN STREAM))
THEN (* ; "SH SH CSH CS CH where CSH is 0")
(* ;;
 "Note: no eof error check on this \BIN -- an eof in the middle of a charset shift is an error")
(SETQ CSET (\BIN STREAM))
(SETQ CHAR (\PEEKBIN STREAM NOERROR))
(\BACKFILEPTR STREAM)
(\BACKFILEPTR STREAM)
(\BACKFILEPTR STREAM)
(\BACKFILEPTR STREAM)
ELSE (\NSIN.24BITENCODING.ERROR STREAM))
ELSEIF (EQ CSET \NORUNCODE)
THEN (* ; "2 byte runs, BIN/PEEK/BACK")
(SETQ CSET CHAR)
(\BIN STREAM)
(SETQ CHAR (\PEEKBIN STREAM NOERROR)) (* ; "One BACKFILEPTR seems OK")
(\BACKFILEPTR STREAM))
(* ;; "No need to back up for the runcoded case")
(CL:WHEN CHAR
(LOGOR (UNFOLD CSET 256)
CHAR)))])
(\XCCSOUTCHAR
[LAMBDA (STREAM CHARCODE) (* ; "Edited 13-Aug-2021 10:24 by rmk:")
(* ;; "Closed function for the :XCCS external format, also called when :XCCS is the default")
(COND
((EQ CHARCODE (CHARCODE EOL))
(FREPLACE (STREAM CHARPOSITION) OF STREAM WITH 0)
[COND
[(NOT (\RUNCODED STREAM)) (* ;
 "Charset is a constant 0, we put out the high-order byte.")
(\BOUT STREAM (\CHARSET (CHARCODE EOL]
((EQ (\CHARSET (CHARCODE EOL))
(ffetch (STREAM CHARSET) of STREAM)))
(T (* ;
 "We are runcoded, and not in character set 0, have to shift.")
(\BOUT STREAM NSCHARSETSHIFT)
(\BOUT STREAM (freplace (STREAM CHARSET) of STREAM with (\CHARSET
(CHARCODE EOL]
(* ;; "We are now in the right charset (0) for the first EOL byte. For CRLF, the CR is immediately followed by the LF byte, without the prefix 0 byte even if not runcoded, i.e. the 2 bytes are though of as a composite. The stream is left in CSET0 (the freplace above), read for another shift according to the next shift in a runcoded file.")
(\BOUTEOL STREAM))
(T (CHANGE (FFETCH (STREAM CHARPOSITION) OF STREAM)
(IPLUS16 1 DATUM))
(COND
((NOT (\RUNCODED STREAM))
(\BOUT STREAM (\CHARSET CHARCODE))
(\BOUT STREAM (\CHAR8CODE CHARCODE)))
((EQ (\CHARSET CHARCODE)
(ffetch (STREAM CHARSET) of STREAM))
(\BOUT STREAM (\CHAR8CODE CHARCODE)))
(T (\BOUT STREAM NSCHARSETSHIFT)
(\BOUT STREAM (freplace (STREAM CHARSET) of STREAM with (\CHARSET
CHARCODE))
)
(\BOUT STREAM (\CHAR8CODE CHARCODE])
(\XCCSBACKCCODE
[LAMBDA (STREAM COUNTP) (* ; "Edited 8-Dec-2023 15:34 by rmk")
(* ; "Edited 19-Jul-2022 17:12 by rmk")
(* ; "Edited 13-Aug-2021 14:08 by rmk:")
(DECLARE (USEDFREE *BYTECOUNTER*))
(LET ((BYTE (AND (\BACKFILEPTR STREAM)
(\PEEKBIN STREAM)))
(CSET (fetch (STREAM CHARSET) of STREAM)))
(CL:WHEN BYTE
(* ;; "The immediately preceding byte must be a character byte. If it is a byte in a runcode, then we are done, even if the byte before is part of a shift sequence.")
(* ;; "But if we are currently in a nonruncoded file, we have to go back one more to get the character set byte.")
(* ;; "If we can't back up, we are already at the beginning.")
(IF (EQ \NORUNCODE CSET)
THEN (IF (\BACKFILEPTR STREAM)
THEN (CL:WHEN COUNTP (SETQ *BYTECOUNTER* -2))
(LOGOR (UNFOLD (\PEEKBIN STREAM)
256)
BYTE)
ELSE (CL:WHEN COUNTP (SETQ *BYTECOUNTER* -1))
NIL)
ELSE (CL:WHEN COUNTP (SETQ *BYTECOUNTER* -1))
(LOGOR (UNFOLD CSET 256)
BYTE)))])
(\XCCSFORMATBYTESTREAM
[LAMBDA (STREAM BYTESTREAM) (* ; "Edited 26-Mar-2024 11:00 by rmk")
(* ; "Edited 19-Mar-2024 16:02 by rmk")
(\EXTERNALFORMAT BYTESTREAM (\EXTERNALFORMAT STREAM))
(* ;; "This stream may be read as a continuation of STREAM (TTYIN, LAFITE?), and we want to make sure that the bytes are encoded properly. So let's assert (and possibly mark) that that's its current situation.")
(\XCCSCHARSETFN BYTESTREAM (fetch (STREAM CHARSET) of STREAM))
BYTESTREAM])
(\XCCSCHARSETFN
[LAMBDA (STREAM CHARSET DONTMARKSTREAM) (* ; "Edited 9-Dec-2023 11:18 by rmk")
(* ;; "This differs from \GENERIC.CHARSET in that it actually writes the shifting bytes into an output stream, unless DONTMARKSTREAM. It will do write the shifts, even if it just replicates the situation that is already there (presumably CHARSET = the old CHARSET). The client should test and avoid calling if useless shifts are not desired.")
(LET [(CSET (ffetch (STREAM CHARSET) of (\DTEST STREAM 'STREAM]
(CL:WHEN CHARSET
(CL:WHEN (EQ CHARSET T)
(SETQ CHARSET \NORUNCODE))
(CL:UNLESS (EQ CHARSET CSET)
(freplace (STREAM CHARSET) of STREAM with CHARSET)
(CL:UNLESS DONTMARKSTREAM
(CL:WHEN (\IOMODEP STREAM 'OUTPUT T)
(\BOUT STREAM NSCHARSETSHIFT)
(if (EQ CHARSET \NORUNCODE)
then (\BOUT STREAM \NORUNCODE)
(\BOUT STREAM 0)
else (\BOUT STREAM CHARSET))))))
CSET])
)
(DEFINEQ
(\CREATE.XCCS.EXTERNALFORMAT
[LAMBDA (NAME EOL) (* ; "Edited 7-Dec-2023 23:03 by rmk")
(* ; "Edited 30-Jun-2022 18:08 by rmk")
(* ; "Edited 10-Sep-2021 19:49 by rmk:")
(* ;;; "Create the :XCCS external format. Stream's EOL overrides the (vacuous) default here")
(MAKE-EXTERNALFORMAT (OR NAME :XCCS)
(FUNCTION \XCCSINCCODE)
(FUNCTION \XCCSPEEKCCODE)
(FUNCTION \XCCSBACKCCODE)
(FUNCTION \XCCSOUTCHAR)
(FUNCTION \XCCSFORMATBYTESTREAM)
(OR EOL 'LF)
T NIL NIL (FUNCTION \XCCSCHARSETFN])
)
(DEFINEQ
(\NSIN.24BITENCODING.ERROR
[LAMBDA (STREAM) (* bvm%: "12-Mar-86 15:35")
(DECLARE (USEDFREE *SIGNAL-24BIT-NSENCODING-ERROR*))
(* ;;; "Called if we see the sequence shift,shift on STREAM -- means shift to 24-bit character set, which we don't support. Usually this just means we're erroneously reading a binary file as text. If this function returns, its value is taken as a character set to shift to")
(COND
(*SIGNAL-24BIT-NSENCODING-ERROR* (* ;
 "Only cause error if user/reader cares")
(ERROR "24-bit NS encoding not supported" STREAM)))
(* ; "Return charset zero")
0])
)
(DEFINEQ
(KANJICHARSETP
[LAMBDA (CHARSET) (* ; "Edited 13-Jun-2025 16:33 by rmk")
(* ;; "Returns CHARSET if it is a charset with MCCS Kanji characters")
(AND (<= 48 CHARSET 118)
CHARSET])
(CHINESECHARSETP
[LAMBDA (CHARSET) (* ; "Edited 18-Jun-2025 23:09 by rmk")
(* ; "Edited 13-Jun-2025 16:33 by rmk")
(* ;; "Returns CHARSET if it is a charset with MCCS Chinese characters")
(AND (<= 161 CHARSET 212)
CHARSET])
)
(RPAQ? *SIGNAL-24BIT-NSENCODING-ERROR* )
(DECLARE%: EVAL@COMPILE DONTCOPY
(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE
(RPAQQ \NORUNCODE 255)
(RPAQQ NSCHARSETSHIFT 255)
(CONSTANTS (\NORUNCODE 255)
(NSCHARSETSHIFT 255))
)
(DECLARE%: EVAL@COMPILE
(PUTPROPS \RUNCODED MACRO (OPENLAMBDA (STREAM)
(* ;; "returns NIL is the stream is not runcoded, that is, if the stream has 16 bit bytes explicitly represented")
(* ;
 "note that neq is ok since charsets are known to be SMALLP's")
(NEQ (fetch CHARSET of STREAM)
\NORUNCODE)))
)
(* "END EXPORTED DEFINITIONS")
)
(DECLARE%: DONTEVAL@LOAD DOCOPY
(\CREATE.XCCS.EXTERNALFORMAT)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (997 12253 (\XCCSINCCODE 1007 . 3986) (\XCCSPEEKCCODE 3988 . 6657) (\XCCSOUTCHAR 6659 .
8879) (\XCCSBACKCCODE 8881 . 10425) (\XCCSFORMATBYTESTREAM 10427 . 11048) (\XCCSCHARSETFN 11050 .
12251)) (12254 13027 (\CREATE.XCCS.EXTERNALFORMAT 12264 . 13025)) (13028 13859 (
\NSIN.24BITENCODING.ERROR 13038 . 13857)) (13860 14500 (KANJICHARSETP 13870 . 14126) (CHINESECHARSETP
14128 . 14498)))))
STOP

Binary file not shown.

File diff suppressed because it is too large Load Diff

BIN
unicode/xerox/README.TEDIT Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -42,195 +42,7 @@
# Any comments or problems, contact <ron.kaplan@post.harvard.edu>
# "165" JIS
0x7521 0x5B57 # 字
0x7522 0x600E # 怎
0x7523 0x5FEB # 快
0x7524 0x5E2B # 師
0x7525 0x8655 # 處
0x7526 0x76F8 # 相
0x7527 0x6D3B # 活
0x7528 0x89AA # 親
0x7529 0x6D77 # 海
0x752A 0x96FB # 電
0x752B 0x6BCD # 母
0x752C 0x679C # 果
0x752D 0x7ACB # 立
0x752E 0x539F # 原
0x752F 0x5408 # 合
0x7530 0x66F8 # 書
0x7531 0x5165 # 入
0x7532 0x4E26 # 並
0x7533 0x5E73 # 平
0x7534 0x696D # 業
0x7535 0x5831 # 報
0x7536 0x8EAB # 身
0x7537 0x5E02 # 市
0x7538 0x88AB # 被
0x7539 0x8A31 # 許
0x753A 0x8ACB # 請
0x753B 0x5C11 # 少
0x753C 0x9593 # 間
0x753D 0x9AD4 # 體
0x753E 0x4F4F # 住
0x753F 0x8ECA # 車
0x7540 0x8ECD # 軍
0x7541 0x908A # 邊
0x7542 0x91CD # 重
0x7543 0x52A0 # 加
0x7544 0x5716 # 圖
0x7545 0x6216 # 或
0x7546 0x6B21 # 次
0x7547 0x6BCF # 每
0x7548 0x7E3D # 總
0x7549 0x706B # 火
0x754A 0x6587 # 文
0x754B 0x5B69 # 孩
0x754C 0x4E16 # 世
0x754D 0x5B89 # 安
0x754E 0x653E # 放
0x754F 0x6A5F # 機
0x7550 0x5167 # 內
0x7551 0x95DC # 關
0x7552 0x5229 # 利
0x7553 0x50CF # 像
0x7554 0x7406 # 理
0x7555 0x6BD4 # 比
0x7556 0x611B # 愛
0x7557 0x738B # 王
0x7558 0x5225 # 別
0x7559 0x592B # 夫
0x755A 0x8207 # 與
0x755B 0x5149 # 光
0x755C 0x82B1 # 花
0x755D 0x83EF # 華
0x755E 0x8AB2 # 課
0x755F 0x80B2 # 育
0x7560 0x6545 # 故
0x7561 0x5FC5 # 必
0x7562 0x689D # 條
0x7563 0x5ABD # 媽
0x7564 0x5F1F # 弟
0x7565 0x7236 # 父
0x7566 0x901A # 通
0x7567 0x8868 # 表
0x7568 0x91D1 # 金
0x7569 0x5BEB # 寫
0x756A 0x5DF1 # 己
0x756B 0x624D # 才
0x756C 0x6CB3 # 河
0x756D 0x7701 # 省
0x756E 0x53F0 # 台
0x756F 0x6C42 # 求
0x7570 0x6536 # 收
0x7571 0x842C # 萬
0x7572 0x4E14 # 且
0x7573 0x4F55 # 何
0x7574 0x4EE3 # 代
0x7575 0x5171 # 共
0x7576 0x53D7 # 受
0x7577 0x98A8 # 風
0x7578 0x6C5F # 江
0x7579 0x62FF # 拿
0x757A 0x96E3 # 難
0x757B 0x754C # 界
0x757C 0x4FE1 # 信
0x757D 0x671B # 望
0x757E 0x7A7A # 空
0x75A1 0x6B7B # 死
0x75A2 0x73ED # 班
0x75A3 0x99AC # 馬
0x75A4 0x671F # 期
0x75A5 0x975E # 非
0x75A6 0x6A39 # 樹
0x75A7 0x53CA # 及
0x75A8 0x7D50 # 結
0x75A9 0x865F # 號
0x75AA 0x5E36 # 帶
0x75AB 0x5143 # 元
0x75AC 0x4EA4 # 交
0x75AD 0x8A72 # 該
0x75AE 0x672A # 未
0x75AF 0x7FA9 # 義
0x75B0 0x5E9C # 府
0x75B1 0x5B8C # 完
0x75B2 0x8AD6 # 論
0x75B3 0x9322 # 錢
0x75B4 0x98DB # 飛
0x75B5 0x547D # 命
0x75B6 0x5F35 # 張
0x75B7 0x54E1 # 員
0x75B8 0x6578 # 數
0x75B9 0x6797 # 林
0x75BA 0x63A5 # 接
0x75BB 0x5C40 # 局
0x75BC 0x53CB # 友
0x75BD 0x559C # 喜
0x75BE 0x6E05 # 清
0x75BF 0x6D0B # 洋
0x75C0 0x6A02 # 樂
0x75C1 0x5A5A # 婚
0x75C2 0x793E # 社
0x75C3 0x65E9 # 早
0x75C4 0x5E03 # 布
0x75C5 0x6975 # 極
0x75C6 0x773C # 眼
0x75C7 0x55CE # 嗎
0x75C8 0x7522 # 產
0x75C9 0x544A # 告
0x75CA 0x54E5 # 哥
0x75CB 0x8208 # 興
0x75CC 0x52DE # 勞
0x75CD 0x9435 # 鐵
0x75CE 0x53D6 # 取
0x75CF 0x7B97 # 算
0x75D0 0x66F4 # 更
0x75D1 0x5175 # 兵
0x75D2 0x9020 # 造
0x75D3 0x7B54 # 答
0x75D4 0x627E # 找
0x75D5 0x7F77 # 罷
0x75D6 0x5931 # 失
0x75D7 0x904B # 運
0x75D8 0x5F62 # 形
0x75D9 0x6613 # 易
0x75DA 0x7FA3 # 羣
0x75DB 0x5EA6 # 度
0x75DC 0x534A # 半
0x75DD 0x8863 # 衣
0x75DE 0x82E5 # 若
0x75DF 0x81F3 # 至
0x75E0 0x8B70 # 議
0x75E1 0x8FD1 # 近
0x75E2 0x7167 # 照
0x75E3 0x8B8A # 變
0x75E4 0x59D0 # 姐
0x75E5 0x670D # 服
0x75E6 0x5247 # 則
0x75E7 0x985E # 類
0x75E8 0x82F1 # 英
0x75E9 0x7403 # 球
0x75EA 0x5343 # 千
0x75EB 0x5F80 # 往
0x75EC 0x8B1B # 講
0x75ED 0x8A08 # 計
0x75EE 0x6230 # 戰
0x75EF 0x6728 # 木
0x75F0 0x7B11 # 笑
0x75F1 0x529F # 功
0x75F2 0x8209 # 舉
0x75F3 0x8DDF # 跟
0x75F4 0x795E # 神
0x75F5 0x6C7A # 決
0x75F6 0x6D41 # 流
0x75F7 0x71B1 # 熱
0x75F8 0x541B # 君
0x75F9 0x7A76 # 究
0x75FA 0x7D04 # 約
0x75FB 0x96BB # 隻
0x75FC 0x76F4 # 直
0x75FD 0x53E4 # 古
0x75FE 0x9EC3 # 黃
# "164" JIS
0x742C 0x32E3 # ㋣ CIRCLED KATAKANA TO
0x742D 0x32E0 # ㋠ CIRCLED KATAKANA TI
0x742E 0x32F7 # ㋷ CIRCLED KATAKANA RI

Some files were not shown because too many files have changed in this diff Show More