Rmk12: Lispusers packages of general utility, but especially for git compare (#634)
* TEXTOFD: Property OBJECTBYTE returned instead of image objects This allows COMPARETEXT to work on TEDIT files * ATBL: Default reader environment uses *DEFAULT-EXTERNALFORMAT* instead of :XCCS constant * CMLEXEC: Fix FILETYPE property It had CL:COMPILE-FILE, but the directory had LCOMs. Changed to :FAKE-COMPILE-FILE. * FILEIO: single place for EOL specification Now only in SETFILEINFO, not separately in \DO.PARAMS.AT.OPEN * WINDOWOBJ: COPYINSERT now uniformly allows lists of objects It was incomplete. * COMPARETEXT: Now works for TEDIT files * EXAMINEDEFS: side-by-side attached SEDIT windows for comparing alternative definitions * OBJECTWINDOW: container for arbitrary image objects
This commit is contained in:
688
library/TEXTOFD
688
library/TEXTOFD
@@ -1,12 +1,11 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED "12-Oct-2021 15:38:41"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEXTOFD.;4 176302
|
||||
(FILECREATED "22-Dec-2021 10:29:27" {DSK}<Users>kaplan>Local>medley3.5>my-medley>library>TEXTOFD.;12 182752
|
||||
|
||||
changes to%: (FNS \TEDITOUTCCODEFN)
|
||||
:CHANGES-TO (FNS \TEXTBIN \TEXTPEEKBIN)
|
||||
|
||||
previous date%: " 7-Oct-2021 08:41:13"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEXTOFD.;3)
|
||||
:PREVIOUS-DATE "22-Dec-2021 10:01:53"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>my-medley>library>TEXTOFD.;11)
|
||||
|
||||
|
||||
(* ; "
|
||||
@@ -31,7 +30,7 @@ Copyright (c) 1983-1991, 1993-1995, 1999-2001, 2021 by John Sybalsky & Xerox Cor
|
||||
(FNS \CHTOPC \CHTOPCNO \CLEARPCTB \CREATEPIECEORSTREAM \DELETEPIECE \FINDPIECE
|
||||
\INSERTPIECE \MAKEPCTB \SPLITPIECE \INSERT.FIRST.PIECE))
|
||||
(COMS (* ;
|
||||
"Generic-IO type operations support")
|
||||
"Generic-IO type operations support")
|
||||
(FNS \TEXTCLOSEF \TEXTCLOSEF-SUBTREE \TEXTDSPFONT \TEXTEOFP \TEXTGETEOFPTR
|
||||
\TEXTGETFILEPTR \TEXTOPENF \TEXTOPENF-SUBTREE \TEXTOUTCHARFN \TEXTBACKFILEPTR
|
||||
\TEXTBOUT \TEDITOUTCCODEFN \TEXTSETEOF \TEXTSETFILEPTR \TEXTDSPXPOSITION
|
||||
@@ -1913,214 +1912,248 @@ Copyright (c) 1983-1991, 1993-1995, 1999-2001, 2021 by John Sybalsky & Xerox Cor
|
||||
(DEFINEQ
|
||||
|
||||
(\TEXTBIN
|
||||
[LAMBDA (STREAM) (* ; "Edited 28-Mar-94 15:33 by jds")
|
||||
[LAMBDA (STREAM)
|
||||
|
||||
(* ;; "Edited 22-Dec-2021 10:29 by rmk: Return value of OBJECTCHAR property for image objecdts")
|
||||
|
||||
(* ;; "Edited 28-Mar-94 15:33 by jds")
|
||||
|
||||
(* ;;; "Do BIN slow case for a text stream")
|
||||
(* ;
|
||||
"NB that PEEKBIN and BACKFILEPTR need to track changes in this code")
|
||||
"NB that PEEKBIN and BACKFILEPTR need to track changes in this code")
|
||||
(DECLARE (LOCALVARS . T))
|
||||
(PROG (CH FILE STR PF PS PC PO NPC OPC SUBSTREAM)
|
||||
(COND
|
||||
[(ILESSP (fetch (STREAM COFFSET) of STREAM)
|
||||
(fetch (STREAM CBUFSIZE) of STREAM))
|
||||
(LET (BYTE) (* ;
|
||||
"RMK: Capture all return values for any special imageobject coercion")
|
||||
[SETQ BYTE (PROG (CH FILE STR PF PS PC PO NPC OPC SUBSTREAM)
|
||||
(COND
|
||||
[(ILESSP (fetch (STREAM COFFSET) of STREAM)
|
||||
(fetch (STREAM CBUFSIZE) of STREAM))
|
||||
(* ;
|
||||
"Simple case -- just do the usual BIN")
|
||||
(COND
|
||||
[(SETQ PO (fetch (PIECE POBJ) of (fetch (TEXTSTREAM PIECE) of STREAM
|
||||
)))
|
||||
"Simple case -- just do the usual BIN")
|
||||
(COND
|
||||
[(SETQ PO (fetch (PIECE POBJ) of (fetch (TEXTSTREAM PIECE)
|
||||
of STREAM)))
|
||||
(* ; "Handle objects specially")
|
||||
(COND
|
||||
((SETQ SUBSTREAM (IMAGEOBJPROP PO 'SUBSTREAM))
|
||||
(COND
|
||||
((SETQ SUBSTREAM (IMAGEOBJPROP PO 'SUBSTREAM))
|
||||
(* ;
|
||||
"If this object has a substream in it, go to that substream")
|
||||
(add (fetch (STREAM COFFSET) of STREAM)
|
||||
1)
|
||||
(RETURN (\BIN SUBSTREAM)))
|
||||
(T
|
||||
(* ;; "Otherwise, just return the object as BIN's result, and make sure we'll go to the next page next time.")
|
||||
"If this object has a substream in it, go to that substream")
|
||||
(add (fetch (STREAM COFFSET) of STREAM)
|
||||
1)
|
||||
(RETURN (\BIN SUBSTREAM)))
|
||||
(T
|
||||
(* ;; "Otherwise, just return the object as BIN's result, and make sure we'll go to the next page next time.")
|
||||
|
||||
(replace (STREAM COFFSET) of STREAM with (fetch (STREAM
|
||||
CBUFSIZE)
|
||||
of STREAM))
|
||||
(replace (TEXTSTREAM CHARSLEFT) of STREAM with 0)
|
||||
(RETURN PO]
|
||||
[(fetch (TEXTSTREAM FATSTREAMP) of STREAM)
|
||||
(replace (STREAM COFFSET) of STREAM
|
||||
with (fetch (STREAM CBUFSIZE) of STREAM))
|
||||
(replace (TEXTSTREAM CHARSLEFT) of STREAM with 0)
|
||||
(RETURN PO]
|
||||
[(fetch (TEXTSTREAM FATSTREAMP) of STREAM)
|
||||
(* ;
|
||||
"This is a 16 bit BIN. grab 2 bytes.")
|
||||
"This is a 16 bit BIN. grab 2 bytes.")
|
||||
(* ;
|
||||
"WHAT HAPPENS IF THE SECOND BYTE IS ON ANOTHER PAGE??")
|
||||
(RETURN (LOGOR (UNFOLD (\PAGEDBIN STREAM)
|
||||
256)
|
||||
(COND
|
||||
((ILESSP (fetch (STREAM COFFSET) of STREAM)
|
||||
(fetch (STREAM CBUFSIZE) of STREAM))
|
||||
"WHAT HAPPENS IF THE SECOND BYTE IS ON ANOTHER PAGE??")
|
||||
(RETURN (LOGOR (UNFOLD (\PAGEDBIN STREAM)
|
||||
256)
|
||||
(COND
|
||||
((ILESSP (fetch (STREAM COFFSET) of STREAM)
|
||||
(fetch (STREAM CBUFSIZE) of STREAM))
|
||||
(* ;
|
||||
"This pair of characters doesn't straddle a file page bound. Just grab the next char.")
|
||||
(\PAGEDBIN STREAM))
|
||||
(T (* ;
|
||||
"Need to move to the next page on the backing file. Doing so also grabs the next character.")
|
||||
(\TEDIT.TEXTBIN.NEW.PAGE STREAM T]
|
||||
(T (RETURN (\PAGEDBIN STREAM]
|
||||
(T (* ;
|
||||
"We've either hit a page bound in a file, or a piece bound.")
|
||||
(RETURN (COND
|
||||
[(ZEROP (fetch (TEXTSTREAM CHARSLEFT) of STREAM))
|
||||
"This pair of characters doesn't straddle a file page bound. Just grab the next char.")
|
||||
(\PAGEDBIN STREAM))
|
||||
(T (* ;
|
||||
"Need to move to the next page on the backing file. Doing so also grabs the next character.")
|
||||
(\TEDIT.TEXTBIN.NEW.PAGE STREAM T]
|
||||
(T (RETURN (\PAGEDBIN STREAM]
|
||||
(T (* ;
|
||||
"We've either hit a page bound in a file, or a piece bound.")
|
||||
(RETURN (COND
|
||||
[(ZEROP (fetch (TEXTSTREAM CHARSLEFT) of STREAM))
|
||||
(* ; "Time for a new piece.")
|
||||
[repeatwhile (AND PC (ZEROP (fetch (PIECE PLEN) of PC)))
|
||||
do (* ;
|
||||
"Skip over any zero-length pieces at the end of the file.")
|
||||
(SETQ OPC (fetch (TEXTSTREAM PIECE) of STREAM))
|
||||
(SETQ PC (replace (TEXTSTREAM PIECE) of STREAM
|
||||
with (AND OPC (fetch (PIECE NEXTPIECE)
|
||||
of OPC]
|
||||
(replace (STREAM BINABLE) of STREAM with T)
|
||||
(replace (TEXTSTREAM FATSTREAMP) of STREAM with NIL)
|
||||
[repeatwhile (AND PC (ZEROP (fetch (PIECE PLEN)
|
||||
of PC)))
|
||||
do (* ;
|
||||
"Skip over any zero-length pieces at the end of the file.")
|
||||
(SETQ OPC (fetch (TEXTSTREAM PIECE) of STREAM))
|
||||
(SETQ PC (replace (TEXTSTREAM PIECE) of STREAM
|
||||
with (AND OPC (fetch (PIECE NEXTPIECE)
|
||||
of OPC]
|
||||
(replace (STREAM BINABLE) of STREAM with T)
|
||||
(replace (TEXTSTREAM FATSTREAMP) of STREAM with NIL)
|
||||
(* ;
|
||||
"Move to the next piece in the chain")
|
||||
(COND
|
||||
[PC (* ;
|
||||
"There IS a next piece to move to.")
|
||||
(AND (fetch (TEXTSTREAM LOOKSUPDATEFN) of STREAM)
|
||||
(SETQ NPC (APPLY* (fetch (TEXTSTREAM LOOKSUPDATEFN)
|
||||
of STREAM)
|
||||
STREAM PC))
|
||||
(replace (TEXTSTREAM PIECE) of STREAM
|
||||
with (SETQ PC NPC)))
|
||||
"Move to the next piece in the chain")
|
||||
(COND
|
||||
[PC (* ; "There IS a next piece to move to.")
|
||||
(AND (fetch (TEXTSTREAM LOOKSUPDATEFN)
|
||||
of STREAM)
|
||||
(SETQ NPC (APPLY* (fetch (TEXTSTREAM
|
||||
LOOKSUPDATEFN
|
||||
)
|
||||
of STREAM)
|
||||
STREAM PC))
|
||||
(replace (TEXTSTREAM PIECE) of STREAM
|
||||
with (SETQ PC NPC)))
|
||||
(* ;
|
||||
"Take care of any piece-change uproar. uproar -- which may include picking a new piece to go to.")
|
||||
[COND
|
||||
(NPC (* ;
|
||||
"If we got an NPC, this was taken care of by the LOOKSUPDATEFN")
|
||||
)
|
||||
([AND (SETQ PO (fetch (PIECE POBJ) of PC))
|
||||
(SETQ SUBSTREAM (IMAGEOBJPROP PO 'SUBSTREAM]
|
||||
(\SETUPGETCH 1 (fetch (TEXTSTREAM TEXTOBJ)
|
||||
of SUBSTREAM))
|
||||
(replace (TEXTSTREAM CURRENTPARALOOKS) of STREAM
|
||||
with (fetch (TEXTSTREAM CURRENTPARALOOKS)
|
||||
of SUBSTREAM))
|
||||
(replace (TEXTSTREAM CURRENTLOOKS) of STREAM
|
||||
with (fetch (TEXTSTREAM CURRENTLOOKS) of
|
||||
SUBSTREAM
|
||||
)))
|
||||
[(NEQ (fetch (PIECE PPARALOOKS) of OPC)
|
||||
(fetch (PIECE PPARALOOKS) of PC))
|
||||
(replace (TEXTSTREAM CURRENTPARALOOKS) of STREAM
|
||||
with (\TEDIT.APPLY.PARASTYLES (fetch (PIECE
|
||||
PPARALOOKS
|
||||
)
|
||||
of PC)
|
||||
PC
|
||||
(fetch (TEXTSTREAM TEXTOBJ)
|
||||
of STREAM)))
|
||||
(replace (TEXTSTREAM CURRENTLOOKS) of STREAM
|
||||
with (\TEDIT.APPLY.STYLES (fetch (PIECE PLOOKS)
|
||||
of PC)
|
||||
PC
|
||||
(fetch (TEXTSTREAM TEXTOBJ)
|
||||
of STREAM]
|
||||
((NOT (EQCLOOKS (fetch (PIECE PLOOKS) of PC)
|
||||
(fetch (PIECE PLOOKS) of OPC)))
|
||||
(replace (TEXTSTREAM CURRENTLOOKS) of STREAM
|
||||
with (\TEDIT.APPLY.STYLES (fetch (PIECE PLOOKS)
|
||||
of PC)
|
||||
PC
|
||||
(fetch (TEXTSTREAM TEXTOBJ)
|
||||
of STREAM]
|
||||
(COND
|
||||
((SETQ PS (fetch (PIECE PSTR) of PC))
|
||||
"Take care of any piece-change uproar. uproar -- which may include picking a new piece to go to.")
|
||||
[COND
|
||||
(NPC (* ;
|
||||
"If we got an NPC, this was taken care of by the LOOKSUPDATEFN")
|
||||
)
|
||||
([AND (SETQ PO (fetch (PIECE POBJ) of PC))
|
||||
(SETQ SUBSTREAM (IMAGEOBJPROP
|
||||
PO
|
||||
'SUBSTREAM]
|
||||
(\SETUPGETCH 1 (fetch (TEXTSTREAM TEXTOBJ)
|
||||
of SUBSTREAM))
|
||||
(replace (TEXTSTREAM CURRENTPARALOOKS)
|
||||
of STREAM with (fetch (TEXTSTREAM
|
||||
CURRENTPARALOOKS
|
||||
) of SUBSTREAM
|
||||
))
|
||||
(replace (TEXTSTREAM CURRENTLOOKS)
|
||||
of STREAM with (fetch (TEXTSTREAM
|
||||
CURRENTLOOKS)
|
||||
of SUBSTREAM)))
|
||||
[(NEQ (fetch (PIECE PPARALOOKS) of OPC)
|
||||
(fetch (PIECE PPARALOOKS) of PC))
|
||||
(replace (TEXTSTREAM CURRENTPARALOOKS)
|
||||
of STREAM with (\TEDIT.APPLY.PARASTYLES
|
||||
(fetch (PIECE PPARALOOKS)
|
||||
of PC)
|
||||
PC
|
||||
(fetch (TEXTSTREAM TEXTOBJ)
|
||||
of STREAM)))
|
||||
(replace (TEXTSTREAM CURRENTLOOKS)
|
||||
of STREAM with (\TEDIT.APPLY.STYLES
|
||||
(fetch (PIECE PLOOKS)
|
||||
of PC)
|
||||
PC
|
||||
(fetch (TEXTSTREAM TEXTOBJ)
|
||||
of STREAM]
|
||||
((NOT (EQCLOOKS (fetch (PIECE PLOOKS)
|
||||
of PC)
|
||||
(fetch (PIECE PLOOKS) of OPC)))
|
||||
(replace (TEXTSTREAM CURRENTLOOKS)
|
||||
of STREAM with (\TEDIT.APPLY.STYLES
|
||||
(fetch (PIECE PLOOKS)
|
||||
of PC)
|
||||
PC
|
||||
(fetch (TEXTSTREAM TEXTOBJ)
|
||||
of STREAM]
|
||||
(COND
|
||||
((SETQ PS (fetch (PIECE PSTR) of PC))
|
||||
(* ; "This piece lives in a string.")
|
||||
(\TEDIT.TEXTBIN.STRINGSETUP 0 (fetch (PIECE PLEN)
|
||||
of PC)
|
||||
STREAM PS)
|
||||
(\TEDIT.TEXTBIN.STRINGSETUP
|
||||
0
|
||||
(fetch (PIECE PLEN) of PC)
|
||||
STREAM PS)
|
||||
|
||||
(* ;; "Set the stream up so that it will use PS for BINs, starting at offset 0 (the front of the piece), and will run for as many chars as there are in the piece.")
|
||||
(* ;
|
||||
"Then actually grab the next character to hand back to the caller.")
|
||||
(\BIN STREAM))
|
||||
((SETQ PF (fetch (PIECE PFILE) of PC))
|
||||
"Then actually grab the next character to hand back to the caller.")
|
||||
(\BIN STREAM))
|
||||
((SETQ PF (fetch (PIECE PFILE) of PC))
|
||||
(* ; "This piece lives on a file.")
|
||||
(\TEDIT.TEXTBIN.FILESETUP PC 0 (fetch (PIECE PLEN)
|
||||
of PC)
|
||||
STREAM PF (fetch (PIECE PFATP) of PC)
|
||||
'PEEKBIN)
|
||||
(\BIN STREAM))
|
||||
[(SETQ PO (fetch (PIECE POBJ) of PC))
|
||||
(replace (STREAM BINABLE) of STREAM with NIL)
|
||||
(COND
|
||||
(SUBSTREAM (* ;
|
||||
"There is a stream below this one, to feed chars upward.")
|
||||
(\SETUPGETCH 1 (fetch (TEXTSTREAM TEXTOBJ)
|
||||
of SUBSTREAM))
|
||||
(freplace (STREAM COFFSET) of STREAM
|
||||
with 0)
|
||||
(freplace (TEXTSTREAM CHARSLEFT) of STREAM
|
||||
with (fetch (PIECE PLEN) of PC))
|
||||
(freplace (STREAM CBUFSIZE) of STREAM
|
||||
with (fetch (PIECE PLEN) of PC))
|
||||
(freplace (STREAM CPAGE) of STREAM
|
||||
with 0)
|
||||
(freplace (TEXTSTREAM PCSTARTCH) of STREAM
|
||||
with 0)
|
||||
(freplace (TEXTSTREAM PCSTARTPG) of STREAM
|
||||
with 0)
|
||||
(replace (TEXTSTREAM CURRENTPARALOOKS)
|
||||
of STREAM with (fetch (TEXTSTREAM
|
||||
|
||||
CURRENTPARALOOKS
|
||||
) of
|
||||
SUBSTREAM))
|
||||
(replace (TEXTSTREAM CURRENTLOOKS) of STREAM
|
||||
with (fetch (TEXTSTREAM CURRENTLOOKS)
|
||||
of SUBSTREAM))
|
||||
(RETURN (\BIN SUBSTREAM)))
|
||||
(T (replace (TEXTSTREAM CHARSLEFT) of STREAM
|
||||
with 0)
|
||||
(RETURN PO]
|
||||
(T (ERROR "CAN'T GET TO NEXT PIECE"]
|
||||
(T (* ;
|
||||
"There are no more pieces. Punt gracefully")
|
||||
(COND
|
||||
((fetch (STREAM ENDOFSTREAMOP) of STREAM)
|
||||
(\TEDIT.TEXTBIN.FILESETUP PC 0
|
||||
(fetch (PIECE PLEN) of PC)
|
||||
STREAM PF (fetch (PIECE PFATP)
|
||||
of PC)
|
||||
'PEEKBIN)
|
||||
(\BIN STREAM))
|
||||
[(SETQ PO (fetch (PIECE POBJ) of PC))
|
||||
(replace (STREAM BINABLE) of STREAM
|
||||
with NIL)
|
||||
(COND
|
||||
(SUBSTREAM
|
||||
(* ;
|
||||
"If there's an EOF handler, call it & return the result")
|
||||
(RETURN (APPLY* (fetch (STREAM ENDOFSTREAMOP) of STREAM
|
||||
)
|
||||
STREAM)))
|
||||
(T (* ; "Otherwise, return NIL")
|
||||
(RETURN NIL]
|
||||
[(SETQ PO (fetch (PIECE POBJ) of (fetch (TEXTSTREAM PIECE)
|
||||
of STREAM)))
|
||||
"There is a stream below this one, to feed chars upward.")
|
||||
(\SETUPGETCH 1 (fetch (TEXTSTREAM
|
||||
TEXTOBJ)
|
||||
of SUBSTREAM))
|
||||
(freplace (STREAM COFFSET)
|
||||
of STREAM with 0)
|
||||
(freplace (TEXTSTREAM CHARSLEFT)
|
||||
of STREAM
|
||||
with (fetch (PIECE PLEN)
|
||||
of PC))
|
||||
(freplace (STREAM CBUFSIZE)
|
||||
of STREAM
|
||||
with (fetch (PIECE PLEN)
|
||||
of PC))
|
||||
(freplace (STREAM CPAGE)
|
||||
of STREAM with 0)
|
||||
(freplace (TEXTSTREAM PCSTARTCH)
|
||||
of STREAM with 0)
|
||||
(freplace (TEXTSTREAM PCSTARTPG)
|
||||
of STREAM with 0)
|
||||
(replace (TEXTSTREAM
|
||||
CURRENTPARALOOKS)
|
||||
of STREAM
|
||||
with (fetch (TEXTSTREAM
|
||||
CURRENTPARALOOKS
|
||||
) of SUBSTREAM
|
||||
))
|
||||
(replace (TEXTSTREAM CURRENTLOOKS)
|
||||
of STREAM
|
||||
with (fetch (TEXTSTREAM
|
||||
CURRENTLOOKS)
|
||||
of SUBSTREAM))
|
||||
(RETURN (\BIN SUBSTREAM)))
|
||||
(T (replace (TEXTSTREAM CHARSLEFT)
|
||||
of STREAM with 0)
|
||||
(RETURN PO]
|
||||
(T (ERROR "CAN'T GET TO NEXT PIECE"]
|
||||
(T (* ;
|
||||
"There are no more pieces. Punt gracefully")
|
||||
(COND
|
||||
((fetch (STREAM ENDOFSTREAMOP) of STREAM)
|
||||
(* ;
|
||||
"If there's an EOF handler, call it & return the result")
|
||||
(RETURN (APPLY* (fetch (STREAM ENDOFSTREAMOP)
|
||||
of STREAM)
|
||||
STREAM)))
|
||||
(T (* ; "Otherwise, return NIL")
|
||||
(RETURN NIL]
|
||||
[(SETQ PO (fetch (PIECE POBJ) of (fetch (TEXTSTREAM PIECE)
|
||||
of STREAM)))
|
||||
(* ; "This is an object")
|
||||
(replace (STREAM BINABLE) of STREAM with NIL)
|
||||
(COND
|
||||
(SUBSTREAM (* ;
|
||||
"There is a stream below this one, to feed chars upward.")
|
||||
(\SETUPGETCH 1 (fetch (TEXTSTREAM TEXTOBJ) of
|
||||
SUBSTREAM))
|
||||
(freplace (STREAM COFFSET) of STREAM with 1)
|
||||
(freplace (TEXTSTREAM CHARSLEFT) of STREAM with
|
||||
0)
|
||||
(freplace (STREAM CBUFSIZE) of STREAM
|
||||
with (fetch (PIECE PLEN) of PC))
|
||||
(freplace (STREAM CPAGE) of STREAM with 0)
|
||||
(freplace (TEXTSTREAM PCSTARTCH) of STREAM with
|
||||
1)
|
||||
(freplace (TEXTSTREAM PCSTARTPG) of STREAM with
|
||||
0)
|
||||
(replace (TEXTSTREAM CURRENTPARALOOKS) of STREAM
|
||||
with (fetch (TEXTSTREAM CURRENTPARALOOKS)
|
||||
of SUBSTREAM))
|
||||
(replace (TEXTSTREAM CURRENTLOOKS) of STREAM
|
||||
with (fetch (TEXTSTREAM CURRENTLOOKS) of
|
||||
SUBSTREAM
|
||||
))
|
||||
(RETURN (\BIN SUBSTREAM)))
|
||||
(T (replace (TEXTSTREAM CHARSLEFT) of STREAM with 0)
|
||||
(RETURN PO]
|
||||
(T (* ;
|
||||
"Need to move to the next page in a file.")
|
||||
(RETURN (\TEDIT.TEXTBIN.NEW.PAGE STREAM])
|
||||
(replace (STREAM BINABLE) of STREAM with NIL)
|
||||
(COND
|
||||
(SUBSTREAM (* ;
|
||||
"There is a stream below this one, to feed chars upward.")
|
||||
(\SETUPGETCH 1 (fetch (TEXTSTREAM TEXTOBJ)
|
||||
of SUBSTREAM))
|
||||
(freplace (STREAM COFFSET) of STREAM
|
||||
with 1)
|
||||
(freplace (TEXTSTREAM CHARSLEFT) of STREAM
|
||||
with 0)
|
||||
(freplace (STREAM CBUFSIZE) of STREAM
|
||||
with (fetch (PIECE PLEN) of PC))
|
||||
(freplace (STREAM CPAGE) of STREAM with 0)
|
||||
(freplace (TEXTSTREAM PCSTARTCH) of STREAM
|
||||
with 1)
|
||||
(freplace (TEXTSTREAM PCSTARTPG) of STREAM
|
||||
with 0)
|
||||
(replace (TEXTSTREAM CURRENTPARALOOKS)
|
||||
of STREAM with (fetch (TEXTSTREAM
|
||||
CURRENTPARALOOKS
|
||||
) of SUBSTREAM)
|
||||
)
|
||||
(replace (TEXTSTREAM CURRENTLOOKS) of STREAM
|
||||
with (fetch (TEXTSTREAM CURRENTLOOKS)
|
||||
of SUBSTREAM))
|
||||
(RETURN (\BIN SUBSTREAM)))
|
||||
(T (replace (TEXTSTREAM CHARSLEFT) of STREAM
|
||||
with 0)
|
||||
(RETURN PO]
|
||||
(T (* ;
|
||||
"Need to move to the next page in a file.")
|
||||
(RETURN (\TEDIT.TEXTBIN.NEW.PAGE STREAM]
|
||||
(IF (IMAGEOBJP BYTE)
|
||||
THEN (OR (GETTEXTPROP (FETCH (TEXTSTREAM TEXTOBJ) OF STREAM)
|
||||
'OBJECTBYTE)
|
||||
BYTE)
|
||||
ELSE BYTE])
|
||||
|
||||
(\TEDIT.TEXTBIN.STRINGSETUP
|
||||
[LAMBDA (CHOFFSET CHARSLEFT STREAM PS) (* ; "Edited 31-May-91 14:21 by jds")
|
||||
@@ -2353,123 +2386,144 @@ Copyright (c) 1983-1991, 1993-1995, 1999-2001, 2021 by John Sybalsky & Xerox Cor
|
||||
(DEFINEQ
|
||||
|
||||
(\TEXTPEEKBIN
|
||||
[LAMBDA (STREAM NOERRORFLG) (* ; "Edited 28-Mar-94 15:34 by jds")
|
||||
[LAMBDA (STREAM NOERRORFLG)
|
||||
|
||||
(* ;; "Edited 22-Dec-2021 10:29 by rmk: Return OBJECTCHAR for image objects, if present")
|
||||
|
||||
(* ;; "Edited 28-Mar-94 15:34 by jds")
|
||||
(* ; "DO PEEKBIN for a text stream")
|
||||
(PROG (CH FILE STR PF PS PC PO SUBSTREAM)
|
||||
(SETQ PC (fetch (TEXTSTREAM PIECE) of STREAM))
|
||||
(COND
|
||||
[(ILESSP (fetch (STREAM COFFSET) of STREAM)
|
||||
(fetch (STREAM CBUFSIZE) of STREAM))
|
||||
(LET (BYTE) (* ;
|
||||
"BYTE to capture all returns for imageobject coercion")
|
||||
[SETQ BYTE (PROG (CH FILE STR PF PS PC PO SUBSTREAM)
|
||||
(SETQ PC (fetch (TEXTSTREAM PIECE) of STREAM))
|
||||
(COND
|
||||
[(ILESSP (fetch (STREAM COFFSET) of STREAM)
|
||||
(fetch (STREAM CBUFSIZE) of STREAM))
|
||||
(* ;
|
||||
"Simple case -- just do the usual PEEKBIN")
|
||||
(COND
|
||||
((AND PC (fetch (PIECE POBJ) of PC))
|
||||
(RETURN (fetch (PIECE POBJ) of PC)))
|
||||
[(fetch (TEXTSTREAM FATSTREAMP) of STREAM)
|
||||
(* ;
|
||||
"This is a 16 bit PEEKBIN. Grab two chars...")
|
||||
(RETURN (COND
|
||||
[(\EOFP STREAM)
|
||||
"Simple case -- just do the usual PEEKBIN")
|
||||
(COND
|
||||
(NOERRORFLG NIL)
|
||||
(T (\PEEKBIN STREAM]
|
||||
((ILESSP (fetch (STREAM COFFSET) of STREAM)
|
||||
(SUB1 (fetch (STREAM CBUFSIZE) of STREAM)))
|
||||
((AND PC (SETQ PO (fetch (PIECE POBJ) of PC)))
|
||||
(RETURN PO))
|
||||
[(fetch (TEXTSTREAM FATSTREAMP) of STREAM)
|
||||
(* ;
|
||||
"We're sure of staying on the same page. Just grab the characters")
|
||||
(PROG1 (LOGOR (UNFOLD (\PAGEDBIN STREAM)
|
||||
256)
|
||||
(\PAGEDPEEKBIN STREAM NOERRORFLG))
|
||||
(\PAGEDBACKFILEPTR STREAM)))
|
||||
(T (SETQ PS (fetch (STREAM F1) of STREAM))
|
||||
(replace (STREAM COFFSET) of PS with (fetch
|
||||
(STREAM COFFSET)
|
||||
of STREAM))
|
||||
(PROG1 (LOGOR (UNFOLD (\PAGEDBIN PS)
|
||||
256)
|
||||
(\PAGEDPEEKBIN PS NOERRORFLG))
|
||||
(\PAGEDBACKFILEPTR PS]
|
||||
(T (RETURN (\PAGEDPEEKBIN STREAM NOERRORFLG]
|
||||
[PC (* ;
|
||||
"We've either hit a page bound in a file, or a piece bound.")
|
||||
(RETURN (COND
|
||||
[(ZEROP (fetch (TEXTSTREAM CHARSLEFT) of STREAM))
|
||||
"This is a 16 bit PEEKBIN. Grab two chars...")
|
||||
(RETURN (COND
|
||||
[(\EOFP STREAM)
|
||||
(COND
|
||||
(NOERRORFLG NIL)
|
||||
(T (\PEEKBIN STREAM]
|
||||
((ILESSP (fetch (STREAM COFFSET) of STREAM)
|
||||
(SUB1 (fetch (STREAM CBUFSIZE) of STREAM)))
|
||||
(* ;
|
||||
"We're sure of staying on the same page. Just grab the characters")
|
||||
(PROG1 (LOGOR (UNFOLD (\PAGEDBIN STREAM)
|
||||
256)
|
||||
(\PAGEDPEEKBIN STREAM NOERRORFLG))
|
||||
(\PAGEDBACKFILEPTR STREAM)))
|
||||
(T (SETQ PS (fetch (STREAM F1) of STREAM))
|
||||
(replace (STREAM COFFSET) of PS
|
||||
with (fetch (STREAM COFFSET) of STREAM))
|
||||
(PROG1 (LOGOR (UNFOLD (\PAGEDBIN PS)
|
||||
256)
|
||||
(\PAGEDPEEKBIN PS NOERRORFLG))
|
||||
(\PAGEDBACKFILEPTR PS]
|
||||
(T (RETURN (\PAGEDPEEKBIN STREAM NOERRORFLG]
|
||||
[PC (* ;
|
||||
"We've either hit a page bound in a file, or a piece bound.")
|
||||
(RETURN (COND
|
||||
[(ZEROP (fetch (TEXTSTREAM CHARSLEFT) of STREAM))
|
||||
(* ; "Time for a new piece.")
|
||||
(SETQ PC (replace (TEXTSTREAM PIECE) of STREAM
|
||||
with (fetch (PIECE NEXTPIECE) of PC)))
|
||||
(SETQ PC (replace (TEXTSTREAM PIECE) of STREAM
|
||||
with (fetch (PIECE NEXTPIECE) of PC)))
|
||||
(* ;
|
||||
"Move to the next piece in the chain")
|
||||
(COND
|
||||
[PC (replace (TEXTSTREAM CURRENTLOOKS) of STREAM
|
||||
with (\TEDIT.APPLY.STYLES (fetch (PIECE PLOOKS)
|
||||
of PC)
|
||||
PC
|
||||
(fetch (TEXTSTREAM TEXTOBJ) of STREAM)
|
||||
))
|
||||
(COND
|
||||
[(SETQ PO (fetch (PIECE POBJ) of PC))
|
||||
(replace (STREAM BINABLE) of STREAM with NIL)
|
||||
(freplace (STREAM CBUFSIZE) of STREAM
|
||||
with (fetch (PIECE PLEN) of PC))
|
||||
(freplace (STREAM COFFSET) of STREAM with 0)
|
||||
(COND
|
||||
(SUBSTREAM (* ;
|
||||
"There is a stream below this one, to feed chars upward.")
|
||||
(\SETUPGETCH 1 (fetch (TEXTSTREAM TEXTOBJ)
|
||||
of SUBSTREAM))
|
||||
(freplace (TEXTSTREAM CHARSLEFT) of STREAM
|
||||
with (fetch (PIECE PLEN) of PC))
|
||||
(freplace (STREAM CPAGE) of STREAM
|
||||
with 0)
|
||||
(freplace (TEXTSTREAM PCSTARTCH) of STREAM
|
||||
with 0)
|
||||
(freplace (TEXTSTREAM PCSTARTPG) of STREAM
|
||||
with 0)
|
||||
(replace (TEXTSTREAM CURRENTPARALOOKS)
|
||||
of STREAM with (fetch (TEXTSTREAM
|
||||
|
||||
"Move to the next piece in the chain")
|
||||
(COND
|
||||
[PC (replace (TEXTSTREAM CURRENTLOOKS) of STREAM
|
||||
with (\TEDIT.APPLY.STYLES (fetch (PIECE PLOOKS
|
||||
)
|
||||
of PC)
|
||||
PC
|
||||
(fetch (TEXTSTREAM TEXTOBJ)
|
||||
of STREAM)))
|
||||
(COND
|
||||
[(SETQ PO (fetch (PIECE POBJ) of PC))
|
||||
(replace (STREAM BINABLE) of STREAM
|
||||
with NIL)
|
||||
(freplace (STREAM CBUFSIZE) of STREAM
|
||||
with (fetch (PIECE PLEN) of PC))
|
||||
(freplace (STREAM COFFSET) of STREAM
|
||||
with 0)
|
||||
(COND
|
||||
(SUBSTREAM
|
||||
(* ;
|
||||
"There is a stream below this one, to feed chars upward.")
|
||||
(\SETUPGETCH 1 (fetch (TEXTSTREAM
|
||||
TEXTOBJ)
|
||||
of SUBSTREAM))
|
||||
(freplace (TEXTSTREAM CHARSLEFT)
|
||||
of STREAM
|
||||
with (fetch (PIECE PLEN)
|
||||
of PC))
|
||||
(freplace (STREAM CPAGE)
|
||||
of STREAM with 0)
|
||||
(freplace (TEXTSTREAM PCSTARTCH)
|
||||
of STREAM with 0)
|
||||
(freplace (TEXTSTREAM PCSTARTPG)
|
||||
of STREAM with 0)
|
||||
(replace (TEXTSTREAM
|
||||
CURRENTPARALOOKS)
|
||||
of STREAM
|
||||
with (fetch (TEXTSTREAM
|
||||
CURRENTPARALOOKS
|
||||
)
|
||||
of SUBSTREAM))
|
||||
(replace (TEXTSTREAM CURRENTLOOKS) of
|
||||
STREAM
|
||||
with (fetch (TEXTSTREAM CURRENTLOOKS)
|
||||
of SUBSTREAM))
|
||||
(RETURN (\BIN SUBSTREAM)))
|
||||
(T (replace (TEXTSTREAM CHARSLEFT) of STREAM
|
||||
with 0)
|
||||
(RETURN PO]
|
||||
((SETQ PS (fetch (PIECE PSTR) of PC))
|
||||
of SUBSTREAM))
|
||||
(replace (TEXTSTREAM CURRENTLOOKS)
|
||||
of STREAM
|
||||
with (fetch (TEXTSTREAM
|
||||
CURRENTLOOKS)
|
||||
of SUBSTREAM))
|
||||
(RETURN (\BIN SUBSTREAM)))
|
||||
(T (replace (TEXTSTREAM CHARSLEFT)
|
||||
of STREAM with 0)
|
||||
(RETURN PO]
|
||||
((SETQ PS (fetch (PIECE PSTR) of PC))
|
||||
(* ; "This piece lives in a string.")
|
||||
(\TEDIT.TEXTBIN.STRINGSETUP 0 (fetch (PIECE PLEN)
|
||||
of PC)
|
||||
STREAM PS)
|
||||
(\TEDIT.TEXTBIN.STRINGSETUP
|
||||
0
|
||||
(fetch (PIECE PLEN) of PC)
|
||||
STREAM PS)
|
||||
|
||||
(* ;; "Set the stream up so that it will use PS for BINs, starting at offset 0 (the front of the piece), and will run for as many chars as there are in the piece.")
|
||||
|
||||
(\PEEKBIN STREAM NOERRORFLG))
|
||||
((SETQ PF (fetch (PIECE PFILE) of PC))
|
||||
(\PEEKBIN STREAM NOERRORFLG))
|
||||
((SETQ PF (fetch (PIECE PFILE) of PC))
|
||||
(* ; "This piece lives on a file.")
|
||||
(\TEDIT.TEXTBIN.FILESETUP PC 0 (fetch (PIECE PLEN)
|
||||
of PC)
|
||||
STREAM PF (fetch (PIECE PFATP) of PC)
|
||||
'PEEKBIN NOERRORFLG))
|
||||
(T (ERROR "CAN'T GET TO NEXT PIECE"]
|
||||
(NOERRORFLG (* ;
|
||||
"There are no more pieces. Punt gracefully")
|
||||
(RETURN NIL))
|
||||
(T (* ; "He wants it the hard way.")
|
||||
(APPLY* (fetch (STREAM ENDOFSTREAMOP) of STREAM)
|
||||
STREAM]
|
||||
(T (* ;
|
||||
"Need to move to the next page in a file.")
|
||||
(RETURN (\TEDIT.PEEKBIN.NEW.PAGE STREAM NOERRORFLG]
|
||||
(NOERRORFLG (* ;
|
||||
"There are no more pieces. Punt gracefully")
|
||||
(RETURN NIL))
|
||||
(T (* ; "He wants it the hard way.")
|
||||
(APPLY* (fetch (STREAM ENDOFSTREAMOP) of STREAM)
|
||||
STREAM])
|
||||
(\TEDIT.TEXTBIN.FILESETUP PC 0
|
||||
(fetch (PIECE PLEN) of PC)
|
||||
STREAM PF (fetch (PIECE PFATP)
|
||||
of PC)
|
||||
'PEEKBIN NOERRORFLG))
|
||||
(T (ERROR "CAN'T GET TO NEXT PIECE"]
|
||||
(NOERRORFLG (* ;
|
||||
"There are no more pieces. Punt gracefully")
|
||||
(RETURN NIL))
|
||||
(T (* ; "He wants it the hard way.")
|
||||
(APPLY* (fetch (STREAM ENDOFSTREAMOP) of STREAM)
|
||||
STREAM]
|
||||
(T (* ;
|
||||
"Need to move to the next page in a file.")
|
||||
(RETURN (\TEDIT.PEEKBIN.NEW.PAGE STREAM NOERRORFLG]
|
||||
(NOERRORFLG (* ;
|
||||
"There are no more pieces. Punt gracefully")
|
||||
(RETURN NIL))
|
||||
(T (* ; "He wants it the hard way.")
|
||||
(APPLY* (fetch (STREAM ENDOFSTREAMOP) of STREAM)
|
||||
STREAM]
|
||||
(IF (IMAGEOBJP BYTE)
|
||||
THEN (OR (GETTEXTPROP (FETCH (TEXTSTREAM TEXTOBJ) OF STREAM)
|
||||
'OBJECTBYTE)
|
||||
BYTE)
|
||||
ELSE BYTE])
|
||||
|
||||
(\TEDIT.PEEKBIN.NEW.PAGE
|
||||
[LAMBDA (STREAM NOERRORFLG) (* ; "Edited 11-Jun-99 15:11 by rmk:")
|
||||
@@ -2667,25 +2721,25 @@ Copyright (c) 1983-1991, 1993-1995, 1999-2001, 2021 by John Sybalsky & Xerox Cor
|
||||
(PUTPROPS TEXTOFD COPYRIGHT ("John Sybalsky & Xerox Corporation" 1983 1984 1985 1986 1987 1988 1989
|
||||
1990 1991 1993 1994 1995 1999 2000 2001 2021))
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (2989 53114 (COPYTEXTSTREAM 2999 . 6121) (OPENTEXTSTREAM 6123 . 21000) (REOPENTEXTSTREAM
|
||||
21002 . 21424) (TEDIT.STREAMCHANGEDP 21426 . 21724) (TEXTSTREAMP 21726 . 22040) (TXTFILE 22042 .
|
||||
22487) (\DELETECH 22489 . 33745) (\SETUPGETCH 33747 . 41026) (\TEDIT.REOPEN.STREAM 41028 . 42878) (
|
||||
\TEDIT.COPYTEXTSTREAM.PIECEMAPFN 42880 . 45318) (\TEXTINIT 45320 . 51007) (\TEXTMARK 51009 . 51757) (
|
||||
\TEXTTTYBOUT 51759 . 53112)) (53115 78547 (\INSERTCH 53125 . 76851) (\INSERTCR 76853 . 78545)) (78613
|
||||
98929 (\CHTOPC 78623 . 79812) (\CHTOPCNO 79814 . 81076) (\CLEARPCTB 81078 . 81874) (
|
||||
\CREATEPIECEORSTREAM 81876 . 84850) (\DELETEPIECE 84852 . 85765) (\FINDPIECE 85767 . 86133) (
|
||||
\INSERTPIECE 86135 . 89145) (\MAKEPCTB 89147 . 91062) (\SPLITPIECE 91064 . 98023) (\INSERT.FIRST.PIECE
|
||||
98025 . 98927)) (98981 123219 (\TEXTCLOSEF 98991 . 100218) (\TEXTCLOSEF-SUBTREE 100220 . 100926) (
|
||||
\TEXTDSPFONT 100928 . 101920) (\TEXTEOFP 101922 . 103281) (\TEXTGETEOFPTR 103283 . 103493) (
|
||||
\TEXTGETFILEPTR 103495 . 105558) (\TEXTOPENF 105560 . 106390) (\TEXTOPENF-SUBTREE 106392 . 107193) (
|
||||
\TEXTOUTCHARFN 107195 . 107543) (\TEXTBACKFILEPTR 107545 . 113446) (\TEXTBOUT 113448 . 116796) (
|
||||
\TEDITOUTCCODEFN 116798 . 118064) (\TEXTSETEOF 118066 . 118575) (\TEXTSETFILEPTR 118577 . 119802) (
|
||||
\TEXTDSPXPOSITION 119804 . 120661) (\TEXTDSPYPOSITION 120663 . 121208) (\TEXTLEFTMARGIN 121210 .
|
||||
121693) (\TEXTRIGHTMARGIN 121695 . 122631) (\TEXTDSPCHARWIDTH 122633 . 122871) (\TEXTDSPSTRINGWIDTH
|
||||
122873 . 123113) (\TEXTDSPLINEFEED 123115 . 123217)) (123220 156964 (\TEXTBIN 123230 . 140016) (
|
||||
\TEDIT.TEXTBIN.STRINGSETUP 140018 . 145731) (\TEDIT.TEXTBIN.FILESETUP 145733 . 152119) (
|
||||
\TEDIT.TEXTBIN.NEW.PAGE 152121 . 156962)) (156965 170373 (\TEXTPEEKBIN 156975 . 166114) (
|
||||
\TEDIT.PEEKBIN.NEW.PAGE 166116 . 170371)) (170411 175629 (CGETTEXTPROP 170421 . 170897) (CTEXTPROP
|
||||
170899 . 173243) (GETTEXTPROP 173245 . 173840) (PUTTEXTPROP 173842 . 175167) (TEXTPROP 175169 . 175627
|
||||
(FILEMAP (NIL (2992 53117 (COPYTEXTSTREAM 3002 . 6124) (OPENTEXTSTREAM 6126 . 21003) (REOPENTEXTSTREAM
|
||||
21005 . 21427) (TEDIT.STREAMCHANGEDP 21429 . 21727) (TEXTSTREAMP 21729 . 22043) (TXTFILE 22045 .
|
||||
22490) (\DELETECH 22492 . 33748) (\SETUPGETCH 33750 . 41029) (\TEDIT.REOPEN.STREAM 41031 . 42881) (
|
||||
\TEDIT.COPYTEXTSTREAM.PIECEMAPFN 42883 . 45321) (\TEXTINIT 45323 . 51010) (\TEXTMARK 51012 . 51760) (
|
||||
\TEXTTTYBOUT 51762 . 53115)) (53118 78550 (\INSERTCH 53128 . 76854) (\INSERTCR 76856 . 78548)) (78616
|
||||
98932 (\CHTOPC 78626 . 79815) (\CHTOPCNO 79817 . 81079) (\CLEARPCTB 81081 . 81877) (
|
||||
\CREATEPIECEORSTREAM 81879 . 84853) (\DELETEPIECE 84855 . 85768) (\FINDPIECE 85770 . 86136) (
|
||||
\INSERTPIECE 86138 . 89148) (\MAKEPCTB 89150 . 91065) (\SPLITPIECE 91067 . 98026) (\INSERT.FIRST.PIECE
|
||||
98028 . 98930)) (98984 123222 (\TEXTCLOSEF 98994 . 100221) (\TEXTCLOSEF-SUBTREE 100223 . 100929) (
|
||||
\TEXTDSPFONT 100931 . 101923) (\TEXTEOFP 101925 . 103284) (\TEXTGETEOFPTR 103286 . 103496) (
|
||||
\TEXTGETFILEPTR 103498 . 105561) (\TEXTOPENF 105563 . 106393) (\TEXTOPENF-SUBTREE 106395 . 107196) (
|
||||
\TEXTOUTCHARFN 107198 . 107546) (\TEXTBACKFILEPTR 107548 . 113449) (\TEXTBOUT 113451 . 116799) (
|
||||
\TEDITOUTCCODEFN 116801 . 118067) (\TEXTSETEOF 118069 . 118578) (\TEXTSETFILEPTR 118580 . 119805) (
|
||||
\TEXTDSPXPOSITION 119807 . 120664) (\TEXTDSPYPOSITION 120666 . 121211) (\TEXTLEFTMARGIN 121213 .
|
||||
121696) (\TEXTRIGHTMARGIN 121698 . 122634) (\TEXTDSPCHARWIDTH 122636 . 122874) (\TEXTDSPSTRINGWIDTH
|
||||
122876 . 123116) (\TEXTDSPLINEFEED 123118 . 123220)) (123223 161060 (\TEXTBIN 123233 . 144112) (
|
||||
\TEDIT.TEXTBIN.STRINGSETUP 144114 . 149827) (\TEDIT.TEXTBIN.FILESETUP 149829 . 156215) (
|
||||
\TEDIT.TEXTBIN.NEW.PAGE 156217 . 161058)) (161061 176823 (\TEXTPEEKBIN 161071 . 172564) (
|
||||
\TEDIT.PEEKBIN.NEW.PAGE 172566 . 176821)) (176861 182079 (CGETTEXTPROP 176871 . 177347) (CTEXTPROP
|
||||
177349 . 179693) (GETTEXTPROP 179695 . 180290) (PUTTEXTPROP 180292 . 181617) (TEXTPROP 181619 . 182077
|
||||
)))))
|
||||
STOP
|
||||
|
||||
Binary file not shown.
Binary file not shown.
120
lispusers/EXAMINEDEFS
Normal file
120
lispusers/EXAMINEDEFS
Normal file
@@ -0,0 +1,120 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED "20-Dec-2021 11:06:33"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>my-medley>lispusers>EXAMINEDEFS.;7 6367
|
||||
|
||||
:CHANGES-TO (FNS EXAMINEDEFS)
|
||||
|
||||
:PREVIOUS-DATE "19-Dec-2021 22:45:48"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>my-medley>lispusers>EXAMINEDEFS.;5)
|
||||
|
||||
|
||||
(PRETTYCOMPRINT EXAMINEDEFSCOMS)
|
||||
|
||||
(RPAQQ EXAMINEDEFSCOMS ((FNS EXAMINEDEFS EXAMINEDEFS-REGION)
|
||||
(INITVARS (EXAMINEDEFS-PROCESS-LIST))))
|
||||
(DEFINEQ
|
||||
|
||||
(EXAMINEDEFS
|
||||
[LAMBDA (NAME TYPE SOURCE1 SOURCE2 TITLE1 TITLE2 REGION) (* ; "Edited 20-Dec-2021 11:06 by rmk")
|
||||
|
||||
(* ;; "This provides for side-by-side examination of separate but presumably related expressions. The (LISTP) expressions can be provided directly as SOURCE1 and SOURCE2 or, if NAME is given the copies of the definitions of NAME as TYPE on the two sources are examined.")
|
||||
|
||||
(* ;; "")
|
||||
|
||||
(* ;; "Examination is in side-by-side attached SEDIT windows if SEDIT is the EDITMODE. You can use SEDIT operations to zoom in on the location of any changes, deleting common stuff for example. But you are always working on a copy, so that changes are safe and ephemeral. This is an examination, not an edit.")
|
||||
|
||||
(CL:UNLESS NAME
|
||||
(CL:UNLESS (LISTP SOURCE1)
|
||||
(ERROR SOURCE1 " cannot be examined"))
|
||||
(CL:UNLESS (LISTP SOURCE2)
|
||||
(ERROR SOURCE2 " cannot be examined")))
|
||||
|
||||
(* ;; "TITLE1 and TITLE2 are optional strings that will be used to construct the titles of the SEDIT windows. We would like to know where GETDEF got the definition so we can use that, but there isn't an interface that provides that information (extended WHEREIS?)")
|
||||
|
||||
(LET (DEF1 DEF2)
|
||||
(SETQ DEF1 (IF (LISTP SOURCE1)
|
||||
THEN
|
||||
(* ;; "Copy to simulate READONLY")
|
||||
|
||||
(SETQ DEF1 (COPY SOURCE1))
|
||||
ELSEIF (GETDEF NAME TYPE SOURCE1)
|
||||
ELSE (ERROR NAME " not found on " SOURCE1)))
|
||||
(SETQ DEF2 (IF (LISTP SOURCE2)
|
||||
THEN (COPY SOURCE2)
|
||||
ELSEIF (GETDEF NAME TYPE SOURCE2)
|
||||
ELSE (ERROR NAME " not found on " SOURCE2)))
|
||||
(CL:UNLESS TITLE1
|
||||
(SETQ TITLE1 (OR SOURCE1 "File 1")))
|
||||
(CL:UNLESS TITLE2
|
||||
(SETQ TITLE2 (OR SOURCE2 "File 2")))
|
||||
(SELECTQ (EDITMODE)
|
||||
(SEDIT:SEDIT
|
||||
(* ;;
|
||||
"A kludge to eliminate dangling SEDIT processes from previous examinations")
|
||||
|
||||
[SETQ EXAMINEDEFS-PROCESS-LIST
|
||||
(FOR PAIR IN EXAMINEDEFS-PROCESS-LIST
|
||||
COLLECT (IF (OPENWP (CAR PAIR))
|
||||
THEN PAIR
|
||||
ELSE (DEL.PROCESS (CDR PAIR))
|
||||
(GO $$ITERATE]
|
||||
|
||||
(* ;; "Set it up for new side-by-side regions that are forgotten when the window is closed. Their shape is usually not that useful for regular edits.")
|
||||
|
||||
(* ;;
|
||||
"Crude suggestions for height, width, position. Suggest shorter window for smaller structures")
|
||||
|
||||
(CL:UNLESS (REGIONP REGION)
|
||||
(SETQ REGION (GETREGION)))
|
||||
(LET (W1 W2 HALFWIDTH)
|
||||
(SETQ HALFWIDTH (IQUOTIENT (FETCH (REGION WIDTH) OF REGION)
|
||||
2))
|
||||
[SETQ W1
|
||||
(SEDIT:GET-WINDOW (SEDIT:SEDIT DEF1
|
||||
`(:NAME ,(CONCAT NAME " from " TITLE1)
|
||||
:REGION
|
||||
,(CREATE REGION
|
||||
USING REGION WIDTH _ HALFWIDTH)
|
||||
:DONT-KEEP-WINDOW-REGION T]
|
||||
[SETQ W2
|
||||
(SEDIT:GET-WINDOW
|
||||
(SEDIT:SEDIT DEF2
|
||||
`(:NAME ,(CONCAT NAME " from " TITLE2)
|
||||
:REGION
|
||||
,(CREATE REGION USING REGION LEFT _
|
||||
(IPLUS (FETCH (REGION LEFT)
|
||||
OF REGION)
|
||||
HALFWIDTH)
|
||||
WIDTH _ HALFWIDTH)
|
||||
:DONT-KEEP-WINDOW-REGION T]
|
||||
|
||||
(* ;;
|
||||
"So we can kill the processes on the next call, if they still exist after the windows are closed.")
|
||||
|
||||
[PUSH EXAMINEDEFS-PROCESS-LIST (CONS W1 (WINDOWPROP W1 'PROCESS))
|
||||
(CONS W2 (WINDOWPROP W2 'PROCESS]
|
||||
(ATTACHWINDOW W2 W1 'RIGHT 'JUSTIFY)
|
||||
(MODERNWINDOW W2)))
|
||||
(PROGN (EDITE DEF1)
|
||||
(EDITE DEF2])
|
||||
|
||||
(EXAMINEDEFS-REGION
|
||||
[LAMBDA (WIDTH HEIGHT) (* ; "Edited 10-Dec-2021 10:15 by rmk")
|
||||
|
||||
(* ;; "Prompts for a WIDTH-HEIGHT region with the top-left corner positioned at the initial cursor but the cursor then moved to the bottom-right for size adjustments. Thus the default behavior is that the upper left corner is fixed.")
|
||||
|
||||
(GETMOUSESTATE)
|
||||
(LET* ((LEFT LASTMOUSEX)
|
||||
(RIGHT (IPLUS LEFT WIDTH))
|
||||
(TOP LASTMOUSEY)
|
||||
(BOTTOM (IDIFFERENCE TOP HEIGHT)))
|
||||
(\CURSORPOSITION RIGHT BOTTOM)
|
||||
(GETREGION NIL NIL (CREATEREGION LEFT BOTTOM WIDTH HEIGHT)
|
||||
NIL NIL (LIST LEFT TOP RIGHT BOTTOM])
|
||||
)
|
||||
|
||||
(RPAQ? EXAMINEDEFS-PROCESS-LIST )
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (513 6305 (EXAMINEDEFS 523 . 5601) (EXAMINEDEFS-REGION 5603 . 6303)))))
|
||||
STOP
|
||||
BIN
lispusers/EXAMINEDEFS.LCOM
Normal file
BIN
lispusers/EXAMINEDEFS.LCOM
Normal file
Binary file not shown.
BIN
lispusers/EXAMINEDEFS.TEDIT
Normal file
BIN
lispusers/EXAMINEDEFS.TEDIT
Normal file
Binary file not shown.
1496
lispusers/OBJECTWINDOW
Normal file
1496
lispusers/OBJECTWINDOW
Normal file
File diff suppressed because it is too large
Load Diff
BIN
lispusers/OBJECTWINDOW.LCOM
Normal file
BIN
lispusers/OBJECTWINDOW.LCOM
Normal file
Binary file not shown.
BIN
lispusers/OBJECTWINDOW.TEDIT
Normal file
BIN
lispusers/OBJECTWINDOW.TEDIT
Normal file
Binary file not shown.
@@ -1,14 +1,13 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED "16-Dec-2021 10:57:35"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>my-medley>lispusers>comparetext.;13 37426
|
||||
(FILECREATED "22-Dec-2021 10:37:46"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>my-medley>lispusers>comparetext.;20 39405
|
||||
|
||||
:CHANGES-TO (VARS COMPARETEXTCOMS)
|
||||
(FNS IMCOMPARE.MIDDLEBUTTONFN IMCOMPARE.DISPLAY.FILE.DIFFERENCE.GRAPH
|
||||
IMCOMPARE.FIND.TEDIT.TEXT.OBJECT)
|
||||
:CHANGES-TO (FNS IMCOMPARE.COLLECT.HASH.CHUNKS COMPARETEXT)
|
||||
(RECORDS IMCOMPARE.CHUNK)
|
||||
|
||||
:PREVIOUS-DATE "15-Dec-2021 17:00:06"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>my-medley>lispusers>comparetext.;9)
|
||||
:PREVIOUS-DATE "19-Dec-2021 12:45:35"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>my-medley>lispusers>comparetext.;19)
|
||||
|
||||
|
||||
(* ; "
|
||||
@@ -18,9 +17,7 @@ Copyright (c) 1984-1985, 1993, 1998 by Xerox Corporation.
|
||||
(PRETTYCOMPRINT COMPARETEXTCOMS)
|
||||
|
||||
(RPAQQ COMPARETEXTCOMS
|
||||
((DECLARE%: EVAL@COMPILE (FILES (LOADCOMP)
|
||||
GRAPHER))
|
||||
(FNS COMPARETEXT IMCOMPARE.BOXNODE IMCOMPARE.CHUNKS IMCOMPARE.COLLECT.HASH.CHUNKS
|
||||
((FNS COMPARETEXT IMCOMPARE.BOXNODE IMCOMPARE.CHUNKS IMCOMPARE.COLLECT.HASH.CHUNKS
|
||||
IMCOMPARE.DISPLAY.FILE.DIFFERENCE.GRAPH IMCOMPARE.FIND.TEDIT.TEXT.OBJECT IMCOMPARE.HASH
|
||||
IMCOMPARE.LEFTBUTTONFN IMCOMPARE.LENGTHEN.ATOM IMCOMPARE.MERGE.CONNECTED.CHUNKS
|
||||
IMCOMPARE.MERGE.UNCONNECTED.CHUNKS IMCOMPARE.MIDDLEBUTTONFN IMCOMPARE.SHOW.DIST
|
||||
@@ -29,16 +26,15 @@ Copyright (c) 1984-1985, 1993, 1998 by Xerox Corporation.
|
||||
(INITVARS (IMCOMPARE.LAST.NODE NIL)
|
||||
(IMCOMPARE.LAST.GRAPH.WINDOW NIL))
|
||||
(RECORDS IMCOMPARE.CHUNK IMCOMPARE.SYMB)
|
||||
(FILES GRAPHER)))
|
||||
(DECLARE%: EVAL@COMPILE
|
||||
|
||||
(FILESLOAD (LOADCOMP)
|
||||
GRAPHER)
|
||||
)
|
||||
(FILES (SYSLOAD)
|
||||
GRAPHER)
|
||||
(DECLARE%: EVAL@COMPILE DONTCOPY (FILES (LOADCOMP)
|
||||
GRAPHER))))
|
||||
(DEFINEQ
|
||||
|
||||
(COMPARETEXT
|
||||
[LAMBDA (NEWFILENAME OLDFILENAME HASH.TYPE GRAPH.REGION FILELABELS)
|
||||
(* ; "Edited 22-Dec-2021 10:35 by rmk")
|
||||
(* ; "Edited 15-Dec-2021 16:23 by rmk")
|
||||
(* ; "Edited 13-Dec-2021 12:21 by rmk")
|
||||
(* ; "Edited 8-Nov-2021 08:44 by rmk:")
|
||||
@@ -56,12 +52,10 @@ Copyright (c) 1984-1985, 1993, 1998 by Xerox Corporation.
|
||||
(ERROR "Can't find both files" (LIST NEWFILENAME OLDFILENAME)))
|
||||
(IMCOMPARE.CHUNKS (create IMCOMPARE.CHUNK
|
||||
FILENAME _ NEWFILE
|
||||
FILEPTR _ 0
|
||||
CHUNKLENGTH _ (GETFILEINFO NEWFILE 'LENGTH))
|
||||
FILEPTR _ 0)
|
||||
(create IMCOMPARE.CHUNK
|
||||
FILENAME _ OLDFILE
|
||||
FILEPTR _ 0
|
||||
CHUNKLENGTH _ (GETFILEINFO OLDFILE 'LENGTH))
|
||||
FILEPTR _ 0)
|
||||
HASH.TYPE
|
||||
(if (EQ GRAPH.REGION T)
|
||||
then (create REGION
|
||||
@@ -89,6 +83,7 @@ Copyright (c) 1984-1985, 1993, 1998 by Xerox Corporation.
|
||||
|
||||
(IMCOMPARE.CHUNKS
|
||||
[LAMBDA (NEWFILE.SPEC.CHUNK OLDFILE.SPEC.CHUNK HASH.TYPE GRAPH.REGION FILELABELS)
|
||||
(* ; "Edited 18-Dec-2021 13:21 by rmk")
|
||||
(* ; "Edited 15-Dec-2021 16:28 by rmk")
|
||||
(* ; "Edited 13-Dec-2021 12:32 by rmk")
|
||||
(* rmk%: " 8-Sep-84 00:06")
|
||||
@@ -143,32 +138,45 @@ Copyright (c) 1984-1985, 1993, 1998 by Xerox Corporation.
|
||||
|
||||
(* ;; "The file comparison is complete. Format and display the file difference graph")
|
||||
|
||||
(IMCOMPARE.DISPLAY.FILE.DIFFERENCE.GRAPH NEWFILE.SPEC.CHUNK OLDFILE.CHUNK.LIST HASH.TYPE
|
||||
(IMCOMPARE.DISPLAY.FILE.DIFFERENCE.GRAPH NEWFILE.SPEC.CHUNK OLDFILE.SPEC.CHUNK HASH.TYPE
|
||||
GRAPH.REGION NEWFILE.CHUNK.LIST OLDFILE.CHUNK.LIST FILELABELS])
|
||||
|
||||
(IMCOMPARE.COLLECT.HASH.CHUNKS
|
||||
[LAMBDA (CHUNK HASH.TYPE) (* ; "Edited 15-Dec-2021 15:40 by rmk")
|
||||
[LAMBDA (CHUNK HASH.TYPE) (* ; "Edited 22-Dec-2021 10:37 by rmk")
|
||||
(* ; "Edited 13-Dec-2021 16:32 by rmk")
|
||||
(* ; "Edited 23-Dec-98 16:54 by rmk:")
|
||||
(* mjs " 8-Jan-84 20:57")
|
||||
|
||||
(* ;;; "returns a list of the chunks inside CHUNK as hashed of type HASH.TYPE. Presumably CHUNK is is higher on the ranking PARA > LINE >. WORD. The initial CHUNK covers the whole file, middle-mouse refinement-chunks cover only subsections.")
|
||||
(* ;;; "Returns a list of the chunks inside CHUNK as hashed of type HASH.TYPE. Presumably CHUNK is is higher on the ranking PARA > LINE >. WORD. The initial CHUNK covers the whole file, middle-mouse refinement-chunks cover only subsections.")
|
||||
|
||||
(BIND [STREAM _ (OPENSTREAM (fetch (IMCOMPARE.CHUNK FILENAME) of CHUNK)
|
||||
'INPUT
|
||||
'OLD
|
||||
'((TYPE TEXT)
|
||||
(EOLCONVENTION ANY]
|
||||
(ENDPOS _ (IPLUS (fetch (IMCOMPARE.CHUNK FILEPTR) of CHUNK)
|
||||
(fetch (IMCOMPARE.CHUNK CHUNKLENGTH) of CHUNK)))
|
||||
(FILENAME _ (fetch (IMCOMPARE.CHUNK FILENAME) of CHUNK))
|
||||
FIRST (SETFILEPTR STREAM (fetch (IMCOMPARE.CHUNK FILEPTR) of CHUNK))
|
||||
WHILE (SETQ CHUNK (IMCOMPARE.HASH STREAM HASH.TYPE ENDPOS FILENAME)) COLLECT CHUNK
|
||||
FINALLY (CLOSEF STREAM])
|
||||
(* ;; "It is overkill to open raw text streams as TEDIT stream. So we open, test for TEDIT and if so, close and reoopen. TEDIT may not yet honor external formats other than XCCS for rawtext files.")
|
||||
|
||||
(BIND (FILENAME _ (fetch (IMCOMPARE.CHUNK FILENAME) of CHUNK))
|
||||
STREAM ENDPOS FIRST (SETQ STREAM (OPENSTREAM FILENAME 'INPUT 'OLD))
|
||||
(CL:WHEN (\TEDIT.FORMATTEDP1 STREAM)
|
||||
(CLOSEF STREAM) (* ;
|
||||
"The OBJECTCHAR is produced in place of image objects")
|
||||
[SETQ STREAM (OPENTEXTSTREAM FILENAME NIL NIL NIL
|
||||
`(OBJECTBYTE ,(CHARCODE NULL])
|
||||
(SETFILEINFO STREAM 'EOL 'ANY)
|
||||
(CL:UNLESS (fetch (IMCOMPARE.CHUNK CHUNKLENGTH) of CHUNK)
|
||||
|
||||
(* ;;
|
||||
"For TEDIT files, the character length isn't known until after text-opening")
|
||||
|
||||
(REPLACE (IMCOMPARE.CHUNK CHUNKLENGTH) of CHUNK
|
||||
WITH (GETFILEINFO STREAM 'LENGTH)))
|
||||
(SETFILEPTR STREAM (fetch (IMCOMPARE.CHUNK FILEPTR) of CHUNK))
|
||||
(SETQ ENDPOS (IPLUS (fetch (IMCOMPARE.CHUNK FILEPTR) of CHUNK)
|
||||
(fetch (IMCOMPARE.CHUNK CHUNKLENGTH) of CHUNK)))
|
||||
WHILE (SETQ CHUNK (IMCOMPARE.HASH STREAM HASH.TYPE ENDPOS))
|
||||
COLLECT (REPLACE FILENAME OF CHUNK WITH FILENAME)
|
||||
CHUNK FINALLY (CLOSEF STREAM])
|
||||
|
||||
(IMCOMPARE.DISPLAY.FILE.DIFFERENCE.GRAPH
|
||||
[LAMBDA (NEWFILE.SPEC.CHUNK OLDFILE.SPEC.CHUNK HASH.TYPE GRAPH.REGION NEWFILE.CHUNK.LIST
|
||||
OLDFILE.CHUNK.LIST FILELABELS) (* ; "Edited 16-Dec-2021 10:48 by rmk")
|
||||
OLDFILE.CHUNK.LIST FILELABELS) (* ; "Edited 18-Dec-2021 13:16 by rmk")
|
||||
(* ; "Edited 16-Dec-2021 10:48 by rmk")
|
||||
(* ; "Edited 13-Dec-2021 12:19 by rmk")
|
||||
(* mjs "11-Jul-85 09:10")
|
||||
|
||||
@@ -297,7 +305,8 @@ Copyright (c) 1984-1985, 1993, 1998 by Xerox Corporation.
|
||||
unless (TEDIT.STREAMCHANGEDP POSS.TOBJ) do (RETURN POSS.TOBJ])
|
||||
|
||||
(IMCOMPARE.HASH
|
||||
[LAMBDA (STREAM HASH.TYPE ENDPOS FULLNAME) (* ; "Edited 15-Dec-2021 15:58 by rmk")
|
||||
[LAMBDA (STREAM HASH.TYPE ENDPOS) (* ; "Edited 19-Dec-2021 09:07 by rmk")
|
||||
(* ; "Edited 15-Dec-2021 15:58 by rmk")
|
||||
(* ; "Edited 13-Dec-2021 16:35 by rmk")
|
||||
(* ; "Edited 23-Dec-98 16:58 by rmk:")
|
||||
|
||||
@@ -359,35 +368,44 @@ Copyright (c) 1984-1985, 1993, 1998 by Xerox Corporation.
|
||||
HASHVALUE _ HASHNUM
|
||||
FILEPTR _ STARTPOS
|
||||
CHUNKLENGTH _ (IDIFFERENCE (GETFILEPTR STREAM)
|
||||
STARTPOS)
|
||||
FILENAME _ FULLNAME))])
|
||||
STARTPOS)))])
|
||||
|
||||
(IMCOMPARE.LEFTBUTTONFN
|
||||
[LAMBDA (GNODE WINDOW) (* mjs " 2-Apr-85 14:21")
|
||||
[LAMBDA (GNODE WINDOW) (* ; "Edited 18-Dec-2021 13:02 by rmk")
|
||||
(* mjs " 2-Apr-85 14:21")
|
||||
(if GNODE
|
||||
then (IMCOMPARE.BOXNODE GNODE WINDOW)
|
||||
(PROG ((NODEID (fetch (GRAPHNODE NODEID) of GNODE))
|
||||
(FILEPTR 1)
|
||||
(CHUNKLENGTH 0)
|
||||
(TEDIT.TEXT.OBJECT NIL)
|
||||
FILE)
|
||||
(SETQ FILE (fetch (IMCOMPARE.CHUNK FILENAME) of NODEID))
|
||||
(SETQ FILEPTR (fetch (IMCOMPARE.CHUNK FILEPTR) of NODEID))
|
||||
(SETQ CHUNKLENGTH (fetch (IMCOMPARE.CHUNK CHUNKLENGTH) of NODEID))
|
||||
(SETQ TEDIT.TEXT.OBJECT (IMCOMPARE.FIND.TEDIT.TEXT.OBJECT FILE))
|
||||
(if TEDIT.TEXT.OBJECT
|
||||
then (TEDIT.SETSEL TEDIT.TEXT.OBJECT (IMAX 1 (IDIFFERENCE FILEPTR 25))
|
||||
0
|
||||
'LEFT)
|
||||
(TEDIT.NORMALIZECARET TEDIT.TEXT.OBJECT)
|
||||
(TEDIT.SETSEL TEDIT.TEXT.OBJECT FILEPTR CHUNKLENGTH 'LEFT)
|
||||
(TEDIT.NORMALIZECARET TEDIT.TEXT.OBJECT)
|
||||
(TTY.PROCESS (WINDOWPROP (CAR (fetch (TEXTOBJ \WINDOW) of
|
||||
|
||||
TEDIT.TEXT.OBJECT
|
||||
))
|
||||
'PROCESS))
|
||||
else (TEDIT FILE NIL NIL (LIST 'SEL (LIST FILEPTR CHUNKLENGTH])
|
||||
then (LET ((NODEID (fetch (GRAPHNODE NODEID) of GNODE)))
|
||||
(IF (FIXP (CAR NODEID))
|
||||
THEN (IMCOMPARE.BOXNODE GNODE WINDOW)
|
||||
[LET ((FILEPTR 1)
|
||||
(CHUNKLENGTH 0)
|
||||
(TEDIT.TEXT.OBJECT NIL)
|
||||
FILE)
|
||||
(SETQ FILE (fetch (IMCOMPARE.CHUNK FILENAME) of NODEID))
|
||||
(SETQ FILEPTR (fetch (IMCOMPARE.CHUNK FILEPTR) of NODEID))
|
||||
(SETQ CHUNKLENGTH (fetch (IMCOMPARE.CHUNK CHUNKLENGTH) of NODEID))
|
||||
(SETQ TEDIT.TEXT.OBJECT (IMCOMPARE.FIND.TEDIT.TEXT.OBJECT FILE))
|
||||
(if TEDIT.TEXT.OBJECT
|
||||
then (TEDIT.SETSEL TEDIT.TEXT.OBJECT (IMAX 1 (IDIFFERENCE FILEPTR
|
||||
25))
|
||||
0
|
||||
'LEFT)
|
||||
(TEDIT.NORMALIZECARET TEDIT.TEXT.OBJECT)
|
||||
(TEDIT.SETSEL TEDIT.TEXT.OBJECT FILEPTR CHUNKLENGTH
|
||||
'LEFT)
|
||||
(TEDIT.NORMALIZECARET TEDIT.TEXT.OBJECT)
|
||||
(TTY.PROCESS (WINDOWPROP (CAR (fetch (TEXTOBJ \WINDOW)
|
||||
of TEDIT.TEXT.OBJECT))
|
||||
'PROCESS))
|
||||
else (TEDIT FILE NIL NIL (LIST 'SEL (LIST FILEPTR CHUNKLENGTH]
|
||||
ELSEIF (AND (LITATOM NODEID)
|
||||
(INFILEP NODEID))
|
||||
THEN
|
||||
(* ;;
|
||||
"A file name as a column header, do TEDIT on the whole file, no selection")
|
||||
|
||||
(TEDIT-SEE NODEID)
|
||||
ELSE (SHOULDNT])
|
||||
|
||||
(IMCOMPARE.LENGTHEN.ATOM
|
||||
[LAMBDA (X MIN.LENGTH EXTENDER) (* ; "Edited 13-Dec-2021 21:18 by rmk")
|
||||
@@ -561,19 +579,25 @@ Copyright (c) 1984-1985, 1993, 1998 by Xerox Corporation.
|
||||
(DECLARE%: EVAL@COMPILE
|
||||
|
||||
(RECORD IMCOMPARE.CHUNK (HASHVALUE FILEPTR CHUNKLENGTH FILENAME . OTHERCHUNK)
|
||||
FILEPTR _ 1 CHUNKLENGTH _ 0)
|
||||
FILEPTR _ 1)
|
||||
|
||||
(RECORD IMCOMPARE.SYMB (NEWCOUNT OLDCOUNT . OLDPTR))
|
||||
)
|
||||
|
||||
(FILESLOAD GRAPHER)
|
||||
(FILESLOAD (SYSLOAD)
|
||||
GRAPHER)
|
||||
(DECLARE%: EVAL@COMPILE DONTCOPY
|
||||
|
||||
(FILESLOAD (LOADCOMP)
|
||||
GRAPHER)
|
||||
)
|
||||
(PUTPROPS COMPARETEXT COPYRIGHT ("Xerox Corporation" 1984 1985 1993 1998))
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (1433 36973 (COMPARETEXT 1443 . 3693) (IMCOMPARE.BOXNODE 3695 . 4211) (IMCOMPARE.CHUNKS
|
||||
4213 . 8626) (IMCOMPARE.COLLECT.HASH.CHUNKS 8628 . 10026) (IMCOMPARE.DISPLAY.FILE.DIFFERENCE.GRAPH
|
||||
10028 . 19004) (IMCOMPARE.FIND.TEDIT.TEXT.OBJECT 19006 . 19780) (IMCOMPARE.HASH 19782 . 23904) (
|
||||
IMCOMPARE.LEFTBUTTONFN 23906 . 25642) (IMCOMPARE.LENGTHEN.ATOM 25644 . 26346) (
|
||||
IMCOMPARE.MERGE.CONNECTED.CHUNKS 26348 . 29844) (IMCOMPARE.MERGE.UNCONNECTED.CHUNKS 29846 . 31801) (
|
||||
IMCOMPARE.MIDDLEBUTTONFN 31803 . 34638) (IMCOMPARE.SHOW.DIST 34640 . 35086) (
|
||||
IMCOMPARE.UPDATE.SYMBOL.TABLE 35088 . 36971)))))
|
||||
(FILEMAP (NIL (1334 38876 (COMPARETEXT 1344 . 3554) (IMCOMPARE.BOXNODE 3556 . 4072) (IMCOMPARE.CHUNKS
|
||||
4074 . 8592) (IMCOMPARE.COLLECT.HASH.CHUNKS 8594 . 11053) (IMCOMPARE.DISPLAY.FILE.DIFFERENCE.GRAPH
|
||||
11055 . 20136) (IMCOMPARE.FIND.TEDIT.TEXT.OBJECT 20138 . 20912) (IMCOMPARE.HASH 20914 . 25101) (
|
||||
IMCOMPARE.LEFTBUTTONFN 25103 . 27545) (IMCOMPARE.LENGTHEN.ATOM 27547 . 28249) (
|
||||
IMCOMPARE.MERGE.CONNECTED.CHUNKS 28251 . 31747) (IMCOMPARE.MERGE.UNCONNECTED.CHUNKS 31749 . 33704) (
|
||||
IMCOMPARE.MIDDLEBUTTONFN 33706 . 36541) (IMCOMPARE.SHOW.DIST 36543 . 36989) (
|
||||
IMCOMPARE.UPDATE.SYMBOL.TABLE 36991 . 38874)))))
|
||||
STOP
|
||||
|
||||
299
sources/ATBL
299
sources/ATBL
@@ -1,11 +1,11 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED "24-Oct-2021 21:53:59" {DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>ATBL.;28 92451
|
||||
(FILECREATED "19-Dec-2021 14:09:43" {DSK}<Users>kaplan>Local>medley3.5>my-medley>sources>ATBL.;31 91882
|
||||
|
||||
changes to%: (FNS MAKE-READER-ENVIRONMENT)
|
||||
:CHANGES-TO (FNS EQUAL-READER-ENVIRONMENT)
|
||||
|
||||
previous date%: "24-Oct-2021 20:14:01"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>ATBL.;27)
|
||||
:PREVIOUS-DATE "24-Oct-2021 21:53:59"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>my-medley>sources>ATBL.;29)
|
||||
|
||||
|
||||
(* ; "
|
||||
@@ -16,7 +16,7 @@ Copyright (c) 1982-1987, 1990, 1993, 2018, 2021 by Venue & Xerox Corporation.
|
||||
|
||||
(RPAQQ ATBLCOMS
|
||||
[(COMS (* ;
|
||||
"Common features of read and terminal tables")
|
||||
"Common features of read and terminal tables")
|
||||
(DECLARE%: DONTCOPY (EXPORT (MACROS \SYNCODE \SETSYNCODE)
|
||||
(RECORDS CHARTABLE))
|
||||
(CONSTANTS \NSCHARHASHKEYS \NSCHARHASHOVERFLOW)
|
||||
@@ -39,9 +39,9 @@ Copyright (c) 1982-1987, 1990, 1993, 2018, 2021 by Venue & Xerox Corporation.
|
||||
\SETMACROSYNTAX \SETREADSYNTAX \READTABLEP.DEFPRINT)
|
||||
(PROP ARGNAMES READTABLEPROP)
|
||||
(DECLARE%: EVAL@COMPILE DONTCOPY (* ;
|
||||
"READCLASSTOKENS Generates READCLASSES and some interesting SELECTQ's")
|
||||
"READCLASSTOKENS Generates READCLASSES and some interesting SELECTQ's")
|
||||
(* ;
|
||||
"OTHER must be zero because of initialization.")
|
||||
"OTHER must be zero because of initialization.")
|
||||
[VARS READCLASSTOKENS (READCLASSES (MAPCAR READCLASSTOKENS
|
||||
(FUNCTION (LAMBDA
|
||||
(PAIR)
|
||||
@@ -50,7 +50,7 @@ Copyright (c) 1982-1987, 1990, 1993, 2018, 2021 by Venue & Xerox Corporation.
|
||||
(CADR PAIR]
|
||||
(MACROS \COMPUTED.FORM)
|
||||
(* ;
|
||||
"This macro ought to be official somehow")
|
||||
"This macro ought to be official somehow")
|
||||
(RECORDS CONTEXTS ESCAPES WAKEUPS)
|
||||
(EXPORT (MACROS \GETREADMACRODEF \GTREADTABLE \GTREADTABLE1)
|
||||
(CONSTANTS MACROBIT BREAKBIT STOPATOMBIT ESCAPEBIT INNERESCAPEBIT)
|
||||
@@ -66,7 +66,7 @@ Copyright (c) 1982-1987, 1990, 1993, 2018, 2021 by Venue & Xerox Corporation.
|
||||
(FNS \ATBLSET)
|
||||
(INITRECORDS READER-ENVIRONMENT)
|
||||
(* ;
|
||||
"Definition is on CMLREAD, need it here to initialize *OLD-INTERLISP-READ-ENVIRONMENT*")
|
||||
"Definition is on CMLREAD, need it here to initialize *OLD-INTERLISP-READ-ENVIRONMENT*")
|
||||
(FNS MAKE-READER-ENVIRONMENT EQUAL-READER-ENVIRONMENT SET-READER-ENVIRONMENT)
|
||||
(INITVARS (*LISP-PACKAGE*)
|
||||
(*INTERLISP-PACKAGE*)
|
||||
@@ -85,30 +85,27 @@ Copyright (c) 1982-1987, 1990, 1993, 2018, 2021 by Venue & Xerox Corporation.
|
||||
(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE
|
||||
|
||||
(PUTPROPS \SYNCODE DMACRO [OPENLAMBDA (TABLE CHAR)
|
||||
(CHECK (type? CHARTABLE TABLE))
|
||||
(* ;
|
||||
"0 is either NONE.TC, REAL.CCE, or OTHER.RC")
|
||||
(COND
|
||||
((IGREATERP CHAR \MAXTHINCHAR)
|
||||
(OR (AND (fetch (CHARTABLE NSCHARHASH) of TABLE)
|
||||
(GETHASH CHAR (fetch (CHARTABLE NSCHARHASH)
|
||||
of TABLE)))
|
||||
0))
|
||||
(T (\GETBASEBYTE TABLE CHAR])
|
||||
(CHECK (type? CHARTABLE TABLE)) (* ;
|
||||
"0 is either NONE.TC, REAL.CCE, or OTHER.RC")
|
||||
(COND
|
||||
((IGREATERP CHAR \MAXTHINCHAR)
|
||||
(OR (AND (fetch (CHARTABLE NSCHARHASH) of TABLE)
|
||||
(GETHASH CHAR (fetch (CHARTABLE NSCHARHASH) of TABLE)))
|
||||
0))
|
||||
(T (\GETBASEBYTE TABLE CHAR])
|
||||
|
||||
(PUTPROPS \SETSYNCODE DMACRO [LAMBDA (TABLE CHAR CODE)
|
||||
(CHECK (type? CHARTABLE TABLE))
|
||||
(* ;
|
||||
"0 is REAL.CCE, NONE.TC, OTHER.RC")
|
||||
(COND
|
||||
((ILEQ CHAR \MAXTHINCHAR)
|
||||
(\PUTBASEBYTE TABLE CHAR CODE))
|
||||
(T (\SETFATSYNCODE TABLE CHAR CODE])
|
||||
(CHECK (type? CHARTABLE TABLE))
|
||||
(* ; "0 is REAL.CCE, NONE.TC, OTHER.RC")
|
||||
(COND
|
||||
((ILEQ CHAR \MAXTHINCHAR)
|
||||
(\PUTBASEBYTE TABLE CHAR CODE))
|
||||
(T (\SETFATSYNCODE TABLE CHAR CODE])
|
||||
)
|
||||
(DECLARE%: EVAL@COMPILE
|
||||
|
||||
(DATATYPE CHARTABLE ((CHARSET0 256 BYTE)
|
||||
(NSCHARHASH FULLPOINTER)))
|
||||
(NSCHARHASH FULLPOINTER)))
|
||||
)
|
||||
|
||||
(/DECLAREDATATYPE 'CHARTABLE
|
||||
@@ -402,11 +399,11 @@ Copyright (c) 1982-1987, 1990, 1993, 2018, 2021 by Venue & Xerox Corporation.
|
||||
|
||||
(DECLARE%: EVAL@COMPILE
|
||||
|
||||
(PUTPROPS \CREATENSCHARHASH MACRO (ARGS (* ;
|
||||
"added size argument for creation of \ORIGTERMTABLE during initialization.")
|
||||
(LIST 'HASHARRAY (OR (CAR ARGS)
|
||||
'\NSCHARHASHKEYS)
|
||||
'\NSCHARHASHOVERFLOW)))
|
||||
(PUTPROPS \CREATENSCHARHASH MACRO (ARGS (* ;
|
||||
"added size argument for creation of \ORIGTERMTABLE during initialization.")
|
||||
(LIST 'HASHARRAY (OR (CAR ARGS)
|
||||
'\NSCHARHASHKEYS)
|
||||
'\NSCHARHASHOVERFLOW)))
|
||||
)
|
||||
)
|
||||
(DEFINEQ
|
||||
@@ -924,8 +921,8 @@ Copyright (c) 1982-1987, 1990, 1993, 2018, 2021 by Venue & Xerox Corporation.
|
||||
(CONSTANTS REAL.CCE IGNORE.CCE SIMULATE.CCE INDICATE.CCE)
|
||||
)
|
||||
|
||||
(RPAQQ TERMCLASSES (NONE.TC EOL.TC CHARDELETE.TC WORDDELETE.TC WORDSEPR.TC LINEDELETE.TC
|
||||
RETYPE.TC CTRLV.TC))
|
||||
(RPAQQ TERMCLASSES (NONE.TC EOL.TC CHARDELETE.TC WORDDELETE.TC WORDSEPR.TC LINEDELETE.TC RETYPE.TC
|
||||
CTRLV.TC))
|
||||
(DECLARE%: EVAL@COMPILE
|
||||
|
||||
(RPAQQ NONE.TC 0)
|
||||
@@ -950,14 +947,14 @@ Copyright (c) 1982-1987, 1990, 1993, 2018, 2021 by Venue & Xerox Corporation.
|
||||
(DECLARE%: EVAL@COMPILE
|
||||
|
||||
(ACCESSFNS TERMCODE ((CCECHO (LOGAND DATUM 24))
|
||||
(TERMCLASS (LOGAND DATUM 7))) (* ;
|
||||
"We assume that values are appropriately shifted")
|
||||
(CREATE (LOGOR CCECHO TERMCLASS)))
|
||||
(TERMCLASS (LOGAND DATUM 7))) (* ;
|
||||
"We assume that values are appropriately shifted")
|
||||
(CREATE (LOGOR CCECHO TERMCLASS)))
|
||||
|
||||
(DATATYPE TERMTABLEP (TERMSA RAISEFLG DELCHARECHO LINEDELETE 1STCHDEL NTHCHDEL POSTCHDEL
|
||||
EMPTYCHDEL (CONTROLFLG FLAG)
|
||||
(ECHOFLG FLAG))
|
||||
TERMSA _ (create CHARTABLE))
|
||||
(DATATYPE TERMTABLEP (TERMSA RAISEFLG DELCHARECHO LINEDELETE 1STCHDEL NTHCHDEL POSTCHDEL EMPTYCHDEL
|
||||
(CONTROLFLG FLAG)
|
||||
(ECHOFLG FLAG))
|
||||
TERMSA _ (create CHARTABLE))
|
||||
)
|
||||
|
||||
(/DECLAREDATATYPE 'TERMTABLEP '(POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER FLAG
|
||||
@@ -1440,9 +1437,9 @@ Copyright (c) 1982-1987, 1990, 1993, 2018, 2021 by Venue & Xerox Corporation.
|
||||
(PACKAGEDELIM (LOGOR ESCAPEBIT INNERESCAPEBIT 1))))
|
||||
|
||||
(RPAQ READCLASSES [MAPCAR READCLASSTOKENS (FUNCTION (LAMBDA (PAIR)
|
||||
(LIST (PACK* (CAR PAIR)
|
||||
".RC")
|
||||
(CADR PAIR])
|
||||
(LIST (PACK* (CAR PAIR)
|
||||
".RC")
|
||||
(CADR PAIR])
|
||||
|
||||
(DECLARE%: EVAL@COMPILE
|
||||
|
||||
@@ -1452,60 +1449,60 @@ Copyright (c) 1982-1987, 1990, 1993, 2018, 2021 by Venue & Xerox Corporation.
|
||||
(DECLARE%: EVAL@COMPILE
|
||||
|
||||
(ACCESSFNS CONTEXTS ((KEY (SELECTC DATUM
|
||||
(ALWAYS.RMC 'ALWAYS)
|
||||
(FIRST.RMC 'FIRST)
|
||||
(ALONE.RMC 'ALONE)
|
||||
NIL))
|
||||
(VAL (SELECTQ DATUM
|
||||
(ALWAYS ALWAYS.RMC)
|
||||
(FIRST FIRST.RMC)
|
||||
(ALONE ALONE.RMC)
|
||||
NIL))))
|
||||
(ALWAYS.RMC 'ALWAYS)
|
||||
(FIRST.RMC 'FIRST)
|
||||
(ALONE.RMC 'ALONE)
|
||||
NIL))
|
||||
(VAL (SELECTQ DATUM
|
||||
(ALWAYS ALWAYS.RMC)
|
||||
(FIRST FIRST.RMC)
|
||||
(ALONE ALONE.RMC)
|
||||
NIL))))
|
||||
|
||||
(ACCESSFNS ESCAPES ((KEY (SELECTC DATUM
|
||||
(ESC.RME 'ESCQUOTE)
|
||||
(NOESC.RME 'NOESCQUOTE)
|
||||
NIL))
|
||||
(VAL (SELECTQ DATUM
|
||||
((ESCQUOTE ESC)
|
||||
ESC.RME)
|
||||
((NOESCQUOTE NOESC)
|
||||
NOESC.RME)
|
||||
NIL))))
|
||||
(ESC.RME 'ESCQUOTE)
|
||||
(NOESC.RME 'NOESCQUOTE)
|
||||
NIL))
|
||||
(VAL (SELECTQ DATUM
|
||||
((ESCQUOTE ESC)
|
||||
ESC.RME)
|
||||
((NOESCQUOTE NOESC)
|
||||
NOESC.RME)
|
||||
NIL))))
|
||||
|
||||
(ACCESSFNS WAKEUPS ((KEY (SELECTC DATUM
|
||||
(IMMEDIATE.RMW 'IMMEDIATE)
|
||||
(NONIMMEDIATE.RMW
|
||||
'NONIMMEDIATE)
|
||||
NIL))
|
||||
(VAL (SELECTQ DATUM
|
||||
((IMMEDIATE IMMED WAKEUP)
|
||||
IMMEDIATE.RMW)
|
||||
((NONIMMEDIATE NONIMMED NOWAKEUP)
|
||||
NONIMMEDIATE.RMW)
|
||||
NIL))))
|
||||
(IMMEDIATE.RMW 'IMMEDIATE)
|
||||
(NONIMMEDIATE.RMW
|
||||
'NONIMMEDIATE)
|
||||
NIL))
|
||||
(VAL (SELECTQ DATUM
|
||||
((IMMEDIATE IMMED WAKEUP)
|
||||
IMMEDIATE.RMW)
|
||||
((NONIMMEDIATE NONIMMED NOWAKEUP)
|
||||
NONIMMEDIATE.RMW)
|
||||
NIL))))
|
||||
)
|
||||
|
||||
(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE
|
||||
|
||||
(PUTPROPS \GETREADMACRODEF MACRO ((C TBL)
|
||||
(GETHASH C (fetch READMACRODEFS of TBL))))
|
||||
(GETHASH C (fetch READMACRODEFS of TBL))))
|
||||
|
||||
(PUTPROPS \GTREADTABLE MACRO [ARGS (COND
|
||||
[(LITATOM (CAR ARGS))
|
||||
(SUBPAIR '(X . FLG)
|
||||
ARGS
|
||||
'(SELECTQ X
|
||||
((NIL T)
|
||||
(\DTEST *READTABLE* 'READTABLEP))
|
||||
(\GTREADTABLE1 X . FLG]
|
||||
(T 'IGNOREMACRO])
|
||||
[(LITATOM (CAR ARGS))
|
||||
(SUBPAIR '(X . FLG)
|
||||
ARGS
|
||||
'(SELECTQ X
|
||||
((NIL T)
|
||||
(\DTEST *READTABLE* 'READTABLEP))
|
||||
(\GTREADTABLE1 X . FLG]
|
||||
(T 'IGNOREMACRO])
|
||||
|
||||
(PUTPROPS \GTREADTABLE1 DMACRO [ARGS (COND
|
||||
[(NULL (CDR ARGS))
|
||||
(LIST '\DTEST (CAR ARGS)
|
||||
''READTABLEP]
|
||||
(T 'IGNOREMACRO])
|
||||
[(NULL (CDR ARGS))
|
||||
(LIST '\DTEST (CAR ARGS)
|
||||
''READTABLEP]
|
||||
(T 'IGNOREMACRO])
|
||||
)
|
||||
(DECLARE%: EVAL@COMPILE
|
||||
|
||||
@@ -1524,7 +1521,7 @@ Copyright (c) 1982-1987, 1990, 1993, 2018, 2021 by Venue & Xerox Corporation.
|
||||
)
|
||||
|
||||
(RPAQQ READCODEMASKS ((CONTEXTMASK (LOGOR MACROBIT STOPATOMBIT BREAKBIT 1))
|
||||
(WAKEUPMASK (LOGOR MACROBIT 2))))
|
||||
(WAKEUPMASK (LOGOR MACROBIT 2))))
|
||||
(DECLARE%: EVAL@COMPILE
|
||||
|
||||
(RPAQ CONTEXTMASK (LOGOR MACROBIT STOPATOMBIT BREAKBIT 1))
|
||||
@@ -1537,8 +1534,8 @@ Copyright (c) 1982-1987, 1990, 1993, 2018, 2021 by Venue & Xerox Corporation.
|
||||
)
|
||||
|
||||
(RPAQQ READMACROCONTEXTS ((ALWAYS.RMC (LOGOR MACROBIT STOPATOMBIT BREAKBIT 0))
|
||||
(FIRST.RMC (LOGOR MACROBIT 0))
|
||||
(ALONE.RMC (LOGOR MACROBIT 1))))
|
||||
(FIRST.RMC (LOGOR MACROBIT 0))
|
||||
(ALONE.RMC (LOGOR MACROBIT 1))))
|
||||
(DECLARE%: EVAL@COMPILE
|
||||
|
||||
(RPAQ ALWAYS.RMC (LOGOR MACROBIT STOPATOMBIT BREAKBIT 0))
|
||||
@@ -1604,7 +1601,7 @@ Copyright (c) 1982-1987, 1990, 1993, 2018, 2021 by Venue & Xerox Corporation.
|
||||
)
|
||||
|
||||
(RPAQQ READMACROWAKEUPS ((IMMEDIATE.RMW (LOGOR MACROBIT 2))
|
||||
(NONIMMEDIATE.RMW (LOGOR MACROBIT 0))))
|
||||
(NONIMMEDIATE.RMW (LOGOR MACROBIT 0))))
|
||||
(DECLARE%: EVAL@COMPILE
|
||||
|
||||
(RPAQ IMMEDIATE.RMW (LOGOR MACROBIT 2))
|
||||
@@ -1617,7 +1614,7 @@ Copyright (c) 1982-1987, 1990, 1993, 2018, 2021 by Venue & Xerox Corporation.
|
||||
)
|
||||
|
||||
(RPAQQ READMACROESCAPES ((ESC.RME ESCAPEBIT)
|
||||
(NOESC.RME 0)))
|
||||
(NOESC.RME 0)))
|
||||
(DECLARE%: EVAL@COMPILE
|
||||
|
||||
(RPAQ ESC.RME ESCAPEBIT)
|
||||
@@ -1631,46 +1628,46 @@ Copyright (c) 1982-1987, 1990, 1993, 2018, 2021 by Venue & Xerox Corporation.
|
||||
(DECLARE%: EVAL@COMPILE
|
||||
|
||||
(ACCESSFNS READCODE ((ESCAPE (LOGAND DATUM ESCAPEBIT))
|
||||
(ESCQUOTE (BITTEST DATUM ESCAPEBIT))
|
||||
(STOPATOM (BITTEST DATUM STOPATOMBIT))
|
||||
(INNERESCQUOTE (BITTEST DATUM (LOGOR STOPATOMBIT INNERESCAPEBIT)))
|
||||
(MACROCONTEXT (LOGAND DATUM CONTEXTMASK))
|
||||
(MACROP (BITTEST DATUM MACROBIT))
|
||||
(WAKEUP (LOGAND DATUM WAKEUPMASK))
|
||||
(BREAK (BITTEST DATUM BREAKBIT))))
|
||||
(ESCQUOTE (BITTEST DATUM ESCAPEBIT))
|
||||
(STOPATOM (BITTEST DATUM STOPATOMBIT))
|
||||
(INNERESCQUOTE (BITTEST DATUM (LOGOR STOPATOMBIT INNERESCAPEBIT)))
|
||||
(MACROCONTEXT (LOGAND DATUM CONTEXTMASK))
|
||||
(MACROP (BITTEST DATUM MACROBIT))
|
||||
(WAKEUP (LOGAND DATUM WAKEUPMASK))
|
||||
(BREAK (BITTEST DATUM BREAKBIT))))
|
||||
|
||||
(RECORD READMACRODEF (MACROTYPE . MACROFN))
|
||||
|
||||
(DATATYPE READTABLEP ((READSA POINTER) (* ;
|
||||
"A CHARTABLE defining syntax of each char")
|
||||
(READMACRODEFS POINTER) (* ;
|
||||
"A hash table associating macro chars with macro definitions")
|
||||
(READMACROFLG FLAG) (* ;
|
||||
"True if read macros are enabled (turned off by Interlisp's crufty READMACROS function)")
|
||||
(ESCAPEFLG FLAG) (* ; "True if the char(s) with escape syntax are enabled (turned off by Interlisp's crufty ESCAPE function)")
|
||||
(COMMONLISP FLAG) (* ;
|
||||
"True if table is a Common Lisp read table and hence must obey Common Lisp syntax rules")
|
||||
(NUMBERBASE BITS 5) (* ; "Not used")
|
||||
(CASEINSENSITIVE FLAG) (* ;
|
||||
"If true, unescaped lowercase chars are converted to uppercase in symbols")
|
||||
(COMMONNUMSYNTAX FLAG) (* ; "True if number notation includes Common Lisp numbers: rationals as a/b, and the dfls exponent markers")
|
||||
(USESILPACKAGE FLAG) (* ;
|
||||
"If true, IL:READ ignores *PACKAGE* and reads in the IL package")
|
||||
(NIL 5 FLAG)
|
||||
(DISPATCHMACRODEFS POINTER) (* ;
|
||||
"An a-list of dispatching macro char and its dispatch definitions")
|
||||
(HASHMACROCHAR BYTE) (* ;
|
||||
"The character code used in this read table for the # dispatch macro")
|
||||
(ESCAPECHAR BYTE) (* ;
|
||||
"The character code used in this read table for single escape")
|
||||
(MULTESCAPECHAR BYTE) (* ;
|
||||
"The character code used in this read table for multiple escape")
|
||||
(PACKAGECHAR BYTE) (* ;
|
||||
"The character code used in this read table for package delimiter")
|
||||
(READTBLNAME POINTER) (* ;
|
||||
"The canonical 'name' of this read table")
|
||||
)
|
||||
READSA _ (create CHARTABLE))
|
||||
(DATATYPE READTABLEP ((READSA POINTER) (* ;
|
||||
"A CHARTABLE defining syntax of each char")
|
||||
(READMACRODEFS POINTER) (* ;
|
||||
"A hash table associating macro chars with macro definitions")
|
||||
(READMACROFLG FLAG) (* ;
|
||||
"True if read macros are enabled (turned off by Interlisp's crufty READMACROS function)")
|
||||
(ESCAPEFLG FLAG) (* ; "True if the char(s) with escape syntax are enabled (turned off by Interlisp's crufty ESCAPE function)")
|
||||
(COMMONLISP FLAG) (* ;
|
||||
"True if table is a Common Lisp read table and hence must obey Common Lisp syntax rules")
|
||||
(NUMBERBASE BITS 5) (* ; "Not used")
|
||||
(CASEINSENSITIVE FLAG) (* ;
|
||||
"If true, unescaped lowercase chars are converted to uppercase in symbols")
|
||||
(COMMONNUMSYNTAX FLAG) (* ; "True if number notation includes Common Lisp numbers: rationals as a/b, and the dfls exponent markers")
|
||||
(USESILPACKAGE FLAG) (* ;
|
||||
"If true, IL:READ ignores *PACKAGE* and reads in the IL package")
|
||||
(NIL 5 FLAG)
|
||||
(DISPATCHMACRODEFS POINTER) (* ;
|
||||
"An a-list of dispatching macro char and its dispatch definitions")
|
||||
(HASHMACROCHAR BYTE) (* ;
|
||||
"The character code used in this read table for the # dispatch macro")
|
||||
(ESCAPECHAR BYTE) (* ;
|
||||
"The character code used in this read table for single escape")
|
||||
(MULTESCAPECHAR BYTE) (* ;
|
||||
"The character code used in this read table for multiple escape")
|
||||
(PACKAGECHAR BYTE) (* ;
|
||||
"The character code used in this read table for package delimiter")
|
||||
(READTBLNAME POINTER) (* ;
|
||||
"The canonical 'name' of this read table")
|
||||
)
|
||||
READSA _ (create CHARTABLE))
|
||||
)
|
||||
|
||||
(/DECLAREDATATYPE 'READTABLEP
|
||||
@@ -1870,8 +1867,12 @@ Copyright (c) 1982-1987, 1990, 1993, 2018, 2021 by Venue & Xerox Corporation.
|
||||
REREADTABLEFORM _ READTABLEFORM])
|
||||
|
||||
(EQUAL-READER-ENVIRONMENT
|
||||
[LAMBDA (ENV1 ENV2) (* ; "Edited 16-Aug-2021 23:43 by rmk:")
|
||||
(* ; ":XCCS is the prehistoric value")
|
||||
[LAMBDA (ENV1 ENV2)
|
||||
|
||||
(* ;; "Edited 19-Dec-2021 14:09 by rmk: Replace constant :XCCS with *DEFAULT-EXTERNALFORMAT*")
|
||||
|
||||
(* ;; "Edited 19-Dec-2021 14:01 by rmk")
|
||||
|
||||
(AND (EQ (fetch (READER-ENVIRONMENT REREADTABLE) of ENV1)
|
||||
(fetch (READER-ENVIRONMENT REREADTABLE) of ENV2))
|
||||
(EQ (fetch (READER-ENVIRONMENT REPACKAGE) of ENV1)
|
||||
@@ -1879,9 +1880,9 @@ Copyright (c) 1982-1987, 1990, 1993, 2018, 2021 by Venue & Xerox Corporation.
|
||||
(EQ (fetch (READER-ENVIRONMENT REBASE) of ENV1)
|
||||
(fetch (READER-ENVIRONMENT REBASE) of ENV2))
|
||||
(EQ (OR (fetch (READER-ENVIRONMENT REFORMAT) of ENV1)
|
||||
:XCCS)
|
||||
*DEFAULT-EXTERNALFORMAT*)
|
||||
(OR (fetch (READER-ENVIRONMENT REFORMAT) of ENV2)
|
||||
:XCCS))
|
||||
*DEFAULT-EXTERNALFORMAT*))
|
||||
(EQUAL (fetch (READER-ENVIRONMENT REPACKAGEFORM) of ENV1)
|
||||
(fetch (READER-ENVIRONMENT REPACKAGEFORM) of ENV2))
|
||||
(EQUAL (fetch (READER-ENVIRONMENT REREADTABLEFORM) of ENV1)
|
||||
@@ -1924,22 +1925,22 @@ Copyright (c) 1982-1987, 1990, 1993, 2018, 2021 by Venue & Xerox Corporation.
|
||||
(PUTPROPS ATBL COPYRIGHT ("Venue & Xerox Corporation" 1982 1983 1984 1985 1986 1987 1990 1993 2018
|
||||
2021))
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (18046 29198 (GETSYNTAX 18056 . 22887) (SETSYNTAX 22889 . 23962) (SYNTAXP 23964 . 26461)
|
||||
(\COPYSYNTAX 26463 . 27180) (\GETCHARCODE 27182 . 27470) (\SETFATSYNCODE 27472 . 28763) (
|
||||
\MAPCHARTABLE 28765 . 29196)) (29231 44197 (CONTROL 29241 . 29493) (COPYTERMTABLE 29495 . 29862) (
|
||||
DELETECONTROL 29864 . 32505) (GETDELETECONTROL 32507 . 33469) (ECHOCHAR 33471 . 34912) (ECHOCONTROL
|
||||
34914 . 35371) (ECHOMODE 35373 . 35619) (GETECHOMODE 35621 . 35785) (GETCONTROL 35787 . 35953) (
|
||||
GETTERMTABLE 35955 . 36022) (RAISE 36024 . 36450) (GETRAISE 36452 . 36614) (RESETTERMTABLE 36616 .
|
||||
37700) (SETTERMTABLE 37702 . 37936) (TERMTABLEP 37938 . 38099) (\GETTERMSYNTAX 38101 . 38372) (
|
||||
\GTTERMTABLE 38374 . 38710) (\ORIGTERMTABLE 38712 . 42322) (\SETTERMSYNTAX 42324 . 42959) (
|
||||
\TERMCLASSTOCODE 42961 . 43390) (\TERMCODETOCLASS 43392 . 43779) (\LITCHECK 43781 . 44195)) (46727
|
||||
70551 (COPYREADTABLE 46737 . 46935) (FIND-READTABLE 46937 . 47084) (IN-READTABLE 47086 . 47246) (
|
||||
ESCAPE 47248 . 47501) (GETBRK 47503 . 47641) (GETREADTABLE 47643 . 47779) (GETSEPR 47781 . 47919) (
|
||||
READMACROS 47921 . 48184) (READTABLEP 48186 . 48349) (READTABLEPROP 48351 . 53509) (RESETREADTABLE
|
||||
53511 . 57758) (SETBRK 57760 . 59370) (SETREADTABLE 59372 . 59560) (SETSEPR 59562 . 61104) (
|
||||
\GETREADSYNTAX 61106 . 63796) (\GTREADTABLE 63798 . 64023) (\GTREADTABLE1 64025 . 64281) (
|
||||
\ORIGREADTABLE 64283 . 66191) (\READCLASSTOCODE 66193 . 66644) (\SETMACROSYNTAX 66646 . 68441) (
|
||||
\SETREADSYNTAX 68443 . 69504) (\READTABLEP.DEFPRINT 69506 . 70549)) (83643 88096 (\ATBLSET 83653 .
|
||||
88094)) (88543 91975 (MAKE-READER-ENVIRONMENT 88553 . 90231) (EQUAL-READER-ENVIRONMENT 90233 . 91377)
|
||||
(SET-READER-ENVIRONMENT 91379 . 91973)))))
|
||||
(FILEMAP (NIL (17750 28902 (GETSYNTAX 17760 . 22591) (SETSYNTAX 22593 . 23666) (SYNTAXP 23668 . 26165)
|
||||
(\COPYSYNTAX 26167 . 26884) (\GETCHARCODE 26886 . 27174) (\SETFATSYNCODE 27176 . 28467) (
|
||||
\MAPCHARTABLE 28469 . 28900)) (28935 43901 (CONTROL 28945 . 29197) (COPYTERMTABLE 29199 . 29566) (
|
||||
DELETECONTROL 29568 . 32209) (GETDELETECONTROL 32211 . 33173) (ECHOCHAR 33175 . 34616) (ECHOCONTROL
|
||||
34618 . 35075) (ECHOMODE 35077 . 35323) (GETECHOMODE 35325 . 35489) (GETCONTROL 35491 . 35657) (
|
||||
GETTERMTABLE 35659 . 35726) (RAISE 35728 . 36154) (GETRAISE 36156 . 36318) (RESETTERMTABLE 36320 .
|
||||
37404) (SETTERMTABLE 37406 . 37640) (TERMTABLEP 37642 . 37803) (\GETTERMSYNTAX 37805 . 38076) (
|
||||
\GTTERMTABLE 38078 . 38414) (\ORIGTERMTABLE 38416 . 42026) (\SETTERMSYNTAX 42028 . 42663) (
|
||||
\TERMCLASSTOCODE 42665 . 43094) (\TERMCODETOCLASS 43096 . 43483) (\LITCHECK 43485 . 43899)) (46412
|
||||
70236 (COPYREADTABLE 46422 . 46620) (FIND-READTABLE 46622 . 46769) (IN-READTABLE 46771 . 46931) (
|
||||
ESCAPE 46933 . 47186) (GETBRK 47188 . 47326) (GETREADTABLE 47328 . 47464) (GETSEPR 47466 . 47604) (
|
||||
READMACROS 47606 . 47869) (READTABLEP 47871 . 48034) (READTABLEPROP 48036 . 53194) (RESETREADTABLE
|
||||
53196 . 57443) (SETBRK 57445 . 59055) (SETREADTABLE 59057 . 59245) (SETSEPR 59247 . 60789) (
|
||||
\GETREADSYNTAX 60791 . 63481) (\GTREADTABLE 63483 . 63708) (\GTREADTABLE1 63710 . 63966) (
|
||||
\ORIGREADTABLE 63968 . 65876) (\READCLASSTOCODE 65878 . 66329) (\SETMACROSYNTAX 66331 . 68126) (
|
||||
\SETREADSYNTAX 68128 . 69189) (\READTABLEP.DEFPRINT 69191 . 70234)) (83068 87521 (\ATBLSET 83078 .
|
||||
87519)) (87968 91406 (MAKE-READER-ENVIRONMENT 87978 . 89656) (EQUAL-READER-ENVIRONMENT 89658 . 90808)
|
||||
(SET-READER-ENVIRONMENT 90810 . 91404)))))
|
||||
STOP
|
||||
|
||||
Binary file not shown.
556
sources/CMLEXEC
556
sources/CMLEXEC
@@ -1,10 +1,11 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED " 8-Oct-2021 10:51:35"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>CMLEXEC.;2 92464
|
||||
(FILECREATED "19-Dec-2021 09:48:29" {DSK}<Users>kaplan>Local>medley3.5>my-medley>sources>CMLEXEC.;5 91886
|
||||
|
||||
previous date%: "21-Jan-93 11:16:01"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>CMLEXEC.;1)
|
||||
:CHANGES-TO (VARS CMLEXECCOMS)
|
||||
|
||||
:PREVIOUS-DATE " 8-Oct-2021 10:51:35"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>my-medley>sources>CMLEXEC.;3)
|
||||
|
||||
|
||||
(* ; "
|
||||
@@ -18,7 +19,7 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(XCL:PROFILES "EXEC")
|
||||
(STRUCTURES COMMAND-ENTRY EXEC-EVENT-ID EXEC-EVENT HISTORY)
|
||||
(* ;
|
||||
"These are public except for command-entry.")
|
||||
"These are public except for command-entry.")
|
||||
(FUNCTIONS XCL::EXEC-CLOSEFN XCL::EXEC-SHRINKFN XCL::SETUP-EXEC-WINDOW
|
||||
XCL::EXEC-TITLE-FUNCTION FIX-FORM XCL::GET-PROCESS-PROFILE
|
||||
XCL::SAVE-CURRENT-EXEC-PROFILE XCL::SETF-GET-PROCESS-PROFILE XCL:SET-EXEC-TYPE
|
||||
@@ -29,7 +30,7 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(FUNCTIONS CIRCLAR-COPYER)
|
||||
(FNS COPY-CIRCLE)
|
||||
(* ;
|
||||
"CIRCLAR-COPYER and COPY-CIRCLE are the solution for AR#11172")
|
||||
"CIRCLAR-COPYER and COPY-CIRCLE are the solution for AR#11172")
|
||||
(FNS EXEC-READ DIR)
|
||||
(VARIABLES *PER-EXEC-VARIABLES* CL:* CL:** CL:*** + CL:++ CL:+++ - / CL:// CL:///
|
||||
*CURRENT-EVENT* *EXEC-ID* XCL:*EXEC-PROMPT* XCL:*EVAL-FUNCTION* *NOT-YET-EVALUATED*
|
||||
@@ -64,10 +65,10 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(FILESLOAD CMLUNDO PROFILE)
|
||||
|
||||
(XCL:DEFPROFILE "EXEC" (XCL:*DEBUGGER-PROMPT* "")
|
||||
(XCL:*EXEC-PROMPT* "")
|
||||
(*READTABLE* "XCL")
|
||||
(*PACKAGE* "XCL")
|
||||
(XCL:*EVAL-FUNCTION* 'CL:EVAL))
|
||||
(XCL:*EXEC-PROMPT* "")
|
||||
(*READTABLE* "XCL")
|
||||
(*PACKAGE* "XCL")
|
||||
(XCL:*EVAL-FUNCTION* 'CL:EVAL))
|
||||
|
||||
(CL:DEFSTRUCT (COMMAND-ENTRY (:TYPE LIST))
|
||||
ARGUMENTS
|
||||
@@ -148,39 +149,37 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(T (PRINT-EVENT-PROMPT *CURRENT-EVENT*)
|
||||
(DSPFONT INPUTFONT T)
|
||||
(CURSOR T) (* ;
|
||||
"make sure can edit (in case cursor smashed somehow?)")
|
||||
"make sure can edit (in case cursor smashed somehow?)")
|
||||
(CL:WHEN NIL (* ; "Old expression")
|
||||
(TTYIN "" NIL NIL 'LISPXREAD NIL NIL BUFFER-EXPR-FROM-BELOW *READTABLE*))
|
||||
(EXEC-READ-LINE (LET ((%#RPARS NIL)
|
||||
(FONTCHANGEFLG NIL)
|
||||
(*PRINT-ESCAPE* T)
|
||||
(*PRINT-RADIX* (NOT (= *READ-BASE* 10)))
|
||||
(*PRINT-BASE* *READ-BASE*)
|
||||
(*PRINT-LEVEL* NIL)
|
||||
(*PRINT-LENGTH* NIL)
|
||||
(*PRINT-GENSYM* ':REREAD)
|
||||
(*PRINT-ARRAY* T)
|
||||
(*PRINT-STRUCTURE* T))
|
||||
(DECLARE (CL:SPECIAL %#RPARS FONTCHANGEFLG)
|
||||
(FONTCHANGEFLG NIL)
|
||||
(*PRINT-ESCAPE* T)
|
||||
(*PRINT-RADIX* (NOT (= *READ-BASE* 10)))
|
||||
(*PRINT-BASE* *READ-BASE*)
|
||||
(*PRINT-LEVEL* NIL)
|
||||
(*PRINT-LENGTH* NIL)
|
||||
(*PRINT-GENSYM* ':REREAD)
|
||||
(*PRINT-ARRAY* T)
|
||||
(*PRINT-STRUCTURE* T))
|
||||
(DECLARE (CL:SPECIAL %#RPARS FONTCHANGEFLG)
|
||||
(* ;
|
||||
"others are already globally special ")
|
||||
)
|
||||
(CL:WITH-OUTPUT-TO-STRING
|
||||
(STR)
|
||||
(FOR X ON INPUT
|
||||
DO (IF CIRCLE-FLAG
|
||||
THEN (* ;
|
||||
"Edited by TT (31-May-1990) CL:PRIN1 can print circlar")
|
||||
(CL:PRIN1 (CAR X)
|
||||
STR)
|
||||
ELSEIF (LISTP (CAR X))
|
||||
THEN (PRINTDEF (CAR X)
|
||||
(POSITION STR)
|
||||
NIL NIL NIL STR)
|
||||
ELSE (PRIN2 (CAR X)
|
||||
STR))
|
||||
(AND (CDR X)
|
||||
(PRIN1 " " STR])
|
||||
"others are already globally special "))
|
||||
(CL:WITH-OUTPUT-TO-STRING (STR)
|
||||
(FOR X ON INPUT
|
||||
DO (IF CIRCLE-FLAG
|
||||
THEN (* ;
|
||||
"Edited by TT (31-May-1990) CL:PRIN1 can print circlar")
|
||||
(CL:PRIN1 (CAR X)
|
||||
STR)
|
||||
ELSEIF (LISTP (CAR X))
|
||||
THEN (PRINTDEF (CAR X)
|
||||
(POSITION STR)
|
||||
NIL NIL NIL STR)
|
||||
ELSE (PRIN2 (CAR X)
|
||||
STR))
|
||||
(AND (CDR X)
|
||||
(PRIN1 " " STR])
|
||||
|
||||
(CL:DEFUN XCL::GET-PROCESS-PROFILE (&OPTIONAL (XCL::PROCESS (THIS.PROCESS)))
|
||||
(PROCESSPROP XCL::PROCESS 'PROFILE))
|
||||
@@ -192,7 +191,7 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(XCL:SAVE-PROFILE XCL::PROFILE))))
|
||||
|
||||
(CL:DEFUN XCL::SETF-GET-PROCESS-PROFILE (&OPTIONAL (XCL::PROCESS (THIS.PROCESS))
|
||||
(XCL::PROFILE XCL:*PROFILE*))
|
||||
(XCL::PROFILE XCL:*PROFILE*))
|
||||
(CL:SETQ XCL::PROFILE (XCL::PROFILIZE XCL::PROFILE))
|
||||
(PROCESSPROP XCL::PROCESS 'PROFILE XCL::PROFILE)
|
||||
XCL::PROFILE)
|
||||
@@ -215,7 +214,7 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
"Start up an exec function in the proper profile, setting the default window title properly."
|
||||
(XCL:WITH-PROFILE (XCL:COPY-PROFILE XCL::PROFILE)
|
||||
(XCL::EXEC-TITLE-FUNCTION T (PROCESS-EXEC-ID (THIS.PROCESS)
|
||||
XCL::ID))
|
||||
XCL::ID))
|
||||
(CL:FUNCALL XCL::EXEC-FUNCTION)))
|
||||
|
||||
(CL:DEFSETF XCL::GET-PROCESS-PROFILE XCL::SETF-GET-PROCESS-PROFILE)
|
||||
@@ -226,13 +225,13 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
STR
|
||||
(RETRYFLAG NIL) (* ; "A really gross hack for RETRY to always break. It exists because: users can setq HELPFLAG anywhere (can't bind it in DO-EVENTand set it in RETRY), RETRY operates on commands (can't wrap the form with a binding of HELPFLAG).")
|
||||
)
|
||||
(DECLARE (CL:SPECIAL RETRYFLAG)) (* ;
|
||||
"RETRY command sets this variable if it wants to be sure to break.")
|
||||
(DECLARE (CL:SPECIAL RETRYFLAG)) (* ;
|
||||
"RETRY command sets this variable if it wants to be sure to break.")
|
||||
(DSPFONT PRINTOUTFONT T)
|
||||
(SETQ INPUT ORIGINAL-INPUT)
|
||||
RETRY
|
||||
(SETQ TODO (COPY-CIRCLE INPUT)) (* ;
|
||||
"Break EQ link between input and evaluated form (todo), so that in-place mods don't affect history.")
|
||||
(SETQ TODO (COPY-CIRCLE INPUT)) (* ;
|
||||
"Break EQ link between input and evaluated form (todo), so that in-place mods don't affect history.")
|
||||
[COND
|
||||
[[AND (OR (STRINGP (CAR INPUT))
|
||||
(CL:SYMBOLP (CAR INPUT)))
|
||||
@@ -260,14 +259,13 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(CL:WHEN *CURRENT-EVENT*
|
||||
(CL:SETF (EXEC-EVENT-INPUT *CURRENT-EVENT*)
|
||||
INPUT) (* ;
|
||||
" Overwrite the original input with the newly generated one.")
|
||||
" Overwrite the original input with the newly generated one.")
|
||||
(CL:SETF (EXEC-EVENT-PROPS *CURRENT-EVENT*)
|
||||
(LIST* '*HISTORY* ORIGINAL-INPUT (EXEC-EVENT-PROPS *CURRENT-EVENT*
|
||||
))))
|
||||
(LIST* '*HISTORY* ORIGINAL-INPUT (EXEC-EVENT-PROPS *CURRENT-EVENT*))))
|
||||
(GO RETRY) (* ; " could have generated a command")
|
||||
)
|
||||
((NIL :EVAL) (* ;
|
||||
" normal kind of command, just apply")
|
||||
" normal kind of command, just apply")
|
||||
[SETQ TODO `((CL:FUNCALL ',(COMMAND-ENTRY-FUNCTION COM)
|
||||
',INPUT
|
||||
',ENVIRONMENT]
|
||||
@@ -284,11 +282,11 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(CL:WHEN *EXEC-MAKE-UNDOABLE-P*
|
||||
[if (CDR TODO)
|
||||
then (SETQ TODO (CONS (OR (CDR (ASSOC (CAR TODO)
|
||||
LISPXFNS))
|
||||
(CAR TODO))
|
||||
(CDR TODO)))
|
||||
LISPXFNS))
|
||||
(CAR TODO))
|
||||
(CDR TODO)))
|
||||
else (SETQ TODO (LIST (XCL::MAKE-UNDOABLE (CAR TODO)
|
||||
NIL])]
|
||||
NIL])]
|
||||
(AND ADD-TO-SPELLING-LIST (HISTORY-ADD-TO-SPELLING-LISTS TODO))
|
||||
(SETQ LISPXHIST *CURRENT-EVENT*)
|
||||
(DSPFONT PRINTOUTFONT T)
|
||||
@@ -301,8 +299,7 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
|
||||
[SETQ VALUES (CL:MULTIPLE-VALUE-LIST (CL:IF RETRYFLAG
|
||||
(LET ((HELPFLAG 'BREAK!))
|
||||
(DECLARE (CL:SPECIAL HELPFLAG
|
||||
))
|
||||
(DECLARE (CL:SPECIAL HELPFLAG))
|
||||
(CL:FUNCALL FUNCTION TODO
|
||||
ENVIRONMENT))
|
||||
(CL:FUNCALL FUNCTION TODO ENVIRONMENT))
|
||||
@@ -319,69 +316,66 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(for X in VALUES do (EXEC-PRINT X))
|
||||
VALUES))))
|
||||
|
||||
(CL:DEFUN EXEC (&KEY XCL::TOP-LEVEL-P (* ;
|
||||
"True of top level execs. Used for event number restarting and profile caching.")
|
||||
(XCL::WINDOW (WFROMDS (TTYDISPLAYSTREAM)))
|
||||
(CL:DEFUN EXEC (&KEY XCL::TOP-LEVEL-P (* ;
|
||||
"True of top level execs. Used for event number restarting and profile caching.")
|
||||
(XCL::WINDOW (WFROMDS (TTYDISPLAYSTREAM)))
|
||||
(* ; "Window for this exec, if any.")
|
||||
(XCL::TITLE NIL XCL::TITLE-SUPPLIED)(* ;
|
||||
"If given, specific title for this window.")
|
||||
((:COMMAND-TABLES *THIS-EXEC-COMMANDS*)
|
||||
(LIST *EXEC-COMMAND-TABLE*)) (* ;
|
||||
"List of hash tables to look up commands in.")
|
||||
XCL::ENVIRONMENT (* ;
|
||||
"Lexical environment to evaluate things in, default NIL.")
|
||||
XCL::PROMPT (* ;
|
||||
"Special prompt to use (optional).")
|
||||
((:FUNCTION XCL::FN)
|
||||
'EVAL-INPUT) (* ; "Function for processing input.")
|
||||
XCL::PROFILE (* ;
|
||||
"Optional profile, sets the exec's bindings.")
|
||||
XCL::ID (* ; "A handle on the exec.")
|
||||
&ALLOW-OTHER-KEYS (* ; "To catch obsolete calls")
|
||||
&AUX
|
||||
(*EXEC-ID* (PROCESS-EXEC-ID (THIS.PROCESS)
|
||||
XCL::ID))
|
||||
(XCL::PROFILE-CACHE (XCL::GET-PROCESS-PROFILE (THIS.PROCESS)))
|
||||
(XCL::TITLE NIL XCL::TITLE-SUPPLIED) (* ;
|
||||
"If given, specific title for this window.")
|
||||
((:COMMAND-TABLES *THIS-EXEC-COMMANDS*)
|
||||
(LIST *EXEC-COMMAND-TABLE*)) (* ;
|
||||
"List of hash tables to look up commands in.")
|
||||
XCL::ENVIRONMENT (* ;
|
||||
"Lexical environment to evaluate things in, default NIL.")
|
||||
XCL::PROMPT (* ; "Special prompt to use (optional).")
|
||||
((:FUNCTION XCL::FN)
|
||||
'EVAL-INPUT) (* ; "Function for processing input.")
|
||||
XCL::PROFILE (* ;
|
||||
"Optional profile, sets the exec's bindings.")
|
||||
XCL::ID (* ; "A handle on the exec.")
|
||||
&ALLOW-OTHER-KEYS (* ; "To catch obsolete calls")
|
||||
&AUX
|
||||
(*EXEC-ID* (PROCESS-EXEC-ID (THIS.PROCESS)
|
||||
XCL::ID))
|
||||
(XCL::PROFILE-CACHE (XCL::GET-PROCESS-PROFILE (THIS.PROCESS)))
|
||||
(* ;
|
||||
"The exec's cached profile (if entering from a hardreset).")
|
||||
)
|
||||
"The exec's cached profile (if entering from a hardreset).")
|
||||
)
|
||||
[CL:PROGV (MAPCAR *PER-EXEC-VARIABLES* (FUNCTION CAR))
|
||||
[MAPCAR *PER-EXEC-VARIABLES* (FUNCTION (LAMBDA (XCL::X)
|
||||
(EVAL (CADR XCL::X]
|
||||
(CL:WHEN (OR (NULL XCL::TOP-LEVEL-P)
|
||||
(NULL XCL::PROFILE-CACHE)) (* ; "If not hardresetting...")
|
||||
(CL:WHEN XCL::PROFILE (* ;
|
||||
"then initialize the profile vars.")
|
||||
(CL:WHEN XCL::PROFILE (* ; "then initialize the profile vars.")
|
||||
(XCL:RESTORE-PROFILE XCL::PROFILE))
|
||||
(CL:WHEN XCL::PROMPT (* ;
|
||||
"If a special prompt was provided (as from the debugger)...")
|
||||
"If a special prompt was provided (as from the debugger)...")
|
||||
(CL:SETQ XCL:*EXEC-PROMPT* XCL::PROMPT) (* ; "...use it.")
|
||||
))
|
||||
(CL:WHEN XCL::TOP-LEVEL-P
|
||||
(CL:IF (NULL XCL::PROFILE-CACHE) (* ;
|
||||
"This was a new entry into top level exec.")
|
||||
"This was a new entry into top level exec.")
|
||||
(CL:SETF (XCL::GET-PROCESS-PROFILE (THIS.PROCESS))
|
||||
(XCL:SAVE-PROFILE (XCL:COPY-PROFILE "EXEC")))
|
||||
(* ;
|
||||
"...make a fresh cache and save bindings into it.")
|
||||
(XCL:RESTORE-PROFILE XCL::PROFILE-CACHE) (* ;
|
||||
"...otherwise it was a HARDRESET.")
|
||||
"...make a fresh cache and save bindings into it.")
|
||||
(XCL:RESTORE-PROFILE XCL::PROFILE-CACHE) (* ; "...otherwise it was a HARDRESET.")
|
||||
))
|
||||
(CL:WHEN XCL::WINDOW
|
||||
(COND
|
||||
((NOT XCL::TITLE-SUPPLIED) (* ;
|
||||
"If no title was supplied, set it to the default.")
|
||||
"If no title was supplied, set it to the default.")
|
||||
(XCL::EXEC-TITLE-FUNCTION XCL::WINDOW *EXEC-ID*))
|
||||
(XCL::TITLE (* ;
|
||||
"If a non-nil title was supplied, set the title to it.")
|
||||
"If a non-nil title was supplied, set the title to it.")
|
||||
(WINDOWPROP XCL::WINDOW 'TITLE XCL::TITLE)))
|
||||
(TTYDISPLAYSTREAM (DECODE/WINDOW/OR/DISPLAYSTREAM XCL::WINDOW)))
|
||||
(LET [(*CURRENT-EVENT* NIL) (* ;
|
||||
"the event being processed. Used by some commands")
|
||||
"the event being processed. Used by some commands")
|
||||
(XCL::OLD-DS (CL:IF XCL::WINDOW
|
||||
(TTYDISPLAYSTREAM (DECODE/WINDOW/OR/DISPLAYSTREAM XCL::WINDOW)))]
|
||||
(CL:LOOP (CL:FORMAT T "~&~%%") (* ;
|
||||
"newlines to notice that this is a new instance of the exec")
|
||||
"newlines to notice that this is a new instance of the exec")
|
||||
(PROG1 [ERSETQ (CL:LOOP (* ; "loop until errors out")
|
||||
(CL:SETQ *CURRENT-EVENT* (GET-NEXT-HISTORY-EVENT
|
||||
LISPXHISTORY *EXEC-ID*
|
||||
@@ -397,25 +391,24 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(DECLARE (CL:SPECIAL LISPXHIST HELPCLOCK))
|
||||
(CL:UNLESS (CL:EQUAL XCL::ORIGINAL-INPUT
|
||||
'(NIL))
|
||||
(DO-EVENT XCL::ORIGINAL-INPUT
|
||||
XCL::ENVIRONMENT XCL::FN)
|
||||
(DO-EVENT XCL::ORIGINAL-INPUT XCL::ENVIRONMENT
|
||||
XCL::FN)
|
||||
(CL:WHEN XCL::TOP-LEVEL-P
|
||||
(* ; "Used to determine whether to cache the settings of the profile back into the process (for retrieval in case of hardreset).")
|
||||
(XCL::SAVE-CURRENT-EXEC-PROFILE)))]
|
||||
(CL:WHEN XCL::WINDOW (TTYDISPLAYSTREAM XCL::OLD-DS)))])
|
||||
|
||||
(CL:DEFUN EXEC-EVAL (FORM &OPTIONAL ENVIRONMENT &KEY (PROMPT ">")
|
||||
(ID "eval/")
|
||||
((:TYPE *CURRENT-EXEC-TYPE*)
|
||||
'COMMON-LISP)) (* ; "Edited by JDS 16-Aug-90 12:55.")
|
||||
(ID "eval/")
|
||||
((:TYPE *CURRENT-EXEC-TYPE*)
|
||||
'COMMON-LISP)) (* ; "Edited by JDS 16-Aug-90 12:55.")
|
||||
(LET ((*CURRENT-EVENT* (GET-NEXT-HISTORY-EVENT LISPXHISTORY ID PROMPT T))
|
||||
(LISPXHIST LISPXHIST)
|
||||
(HELPCLOCK 0)
|
||||
VALUES)
|
||||
(DECLARE (CL:SPECIAL *CURRENT-EVENT* LISPXHIST HELPCLOCK))
|
||||
(SETQ VALUES (CL:MULTIPLE-VALUE-LIST (EVAL-INPUT (CL:SETF (EXEC-EVENT-INPUT
|
||||
*CURRENT-EVENT*)
|
||||
(LIST FORM))
|
||||
(SETQ VALUES (CL:MULTIPLE-VALUE-LIST (EVAL-INPUT (CL:SETF (EXEC-EVENT-INPUT *CURRENT-EVENT*)
|
||||
(LIST FORM))
|
||||
ENVIRONMENT)))
|
||||
(SETQ IT (CAR VALUES))
|
||||
(COND
|
||||
@@ -455,8 +448,8 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
`(EXEC-VALUE-OF ',EVENT-SPEC))
|
||||
|
||||
(CL:DEFUN ADD-EXEC (&KEY (XCL::PROFILE XCL:*PROFILE*)
|
||||
XCL::REGION XCL::TTY (EXEC 'EXEC)
|
||||
XCL::ID &ALLOW-OTHER-KEYS)
|
||||
XCL::REGION XCL::TTY (EXEC 'EXEC)
|
||||
XCL::ID &ALLOW-OTHER-KEYS)
|
||||
(LET* [(XCL::WINDOW (XCL::SETUP-EXEC-WINDOW (CREATEW XCL::REGION "Exec")))
|
||||
(XCL::HANDLE (ADD.PROCESS
|
||||
`[PROGN (TTYDISPLAYSTREAM ',XCL::WINDOW)
|
||||
@@ -465,7 +458,7 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
',XCL::WINDOW)
|
||||
,(CASE EXEC
|
||||
(EXEC `(EXEC :TOP-LEVEL-P T :PROFILE ',XCL::PROFILE :ID
|
||||
',XCL::ID))
|
||||
',XCL::ID))
|
||||
(T `(XCL::ENTER-EXEC-FUNCTION ',EXEC ',XCL::PROFILE
|
||||
',XCL::ID)))]
|
||||
'NAME
|
||||
@@ -483,21 +476,21 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
((AND (READP T)
|
||||
(SYNTAXP (PEEKCCODE T T)
|
||||
'EOL)) (* ;
|
||||
"Avoid picking up end of line as a NIL.")
|
||||
"Avoid picking up end of line as a NIL.")
|
||||
(READC T)))
|
||||
(SETQ LINE (LIST (EXEC-READ BUFFER-STRING)))
|
||||
TOP (COND
|
||||
((LISTP (CAR LINE)) (* ;
|
||||
"If we got a list, return right away--it's a standard EVAL form of input")
|
||||
"If we got a list, return right away--it's a standard EVAL form of input")
|
||||
(GO OUT)))
|
||||
LP (SETQ SPACEFLG NIL) (* ; "to distinguish between")
|
||||
(* ; "FOO (A B)")
|
||||
(* ; "FOO(A B)")
|
||||
(* ;
|
||||
"the latter has no space and returns right away")
|
||||
"the latter has no space and returns right away")
|
||||
LP1 (COND
|
||||
((NOT (READP T)) (* ;
|
||||
"nothing more in line buffer, so must have consumed last thing on the line")
|
||||
"nothing more in line buffer, so must have consumed last thing on the line")
|
||||
(GO OUT))
|
||||
((NULL (SETQ CHRCODE (PEEKCCODE T T))) (* ; "PEEKCCODE can return NIL when stream is at EOF. However, we already checked for READP before getting here.")
|
||||
(GO OUT))
|
||||
@@ -510,7 +503,7 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(SHOULDNT))
|
||||
(AND (NULL (CDR LINE))
|
||||
(SETQ LINE (NCONC1 LINE NIL))) (* ;
|
||||
" A %")%" is treated as NIL if it is the second thing on the line when EXEC-READ-LINE is called")
|
||||
" A %")%" is treated as NIL if it is the second thing on the line when EXEC-READ-LINE is called")
|
||||
(GO OUT))
|
||||
((EQ CHRCODE (CHARCODE SPACE))
|
||||
(SETQ SPACEFLG T)
|
||||
@@ -523,7 +516,7 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(SYNTAXP CHRCODE 'RIGHTBRACKET *READTABLE*)))
|
||||
(GO LP))
|
||||
((NOT SPACEFLG) (* ;
|
||||
"A list terminates the line if it is the second element on the line, not preceded by a space.")
|
||||
"A list terminates the line if it is the second element on the line, not preceded by a space.")
|
||||
|
||||
(* ;; "[JDS 1/12/88: This used to test (AND (NOT SPACEFLG) (READP T)), and loop if there were more input pending. This seems wrong, because when you type it should throw the carriage at once, and not depend on how fast you're typing. Further, when there's type-ahead, it's often followed by a SPACE, to prevent output pausing. With the old test here, that would hang up a final eval-quote form without executing it.]")
|
||||
|
||||
@@ -533,7 +526,7 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
OUT (RETURN (COND
|
||||
((AND (LISTP LINE)
|
||||
CTRLUFLG) (* ;
|
||||
"Edit interrupt during reading--forces structure editor use.")
|
||||
"Edit interrupt during reading--forces structure editor use.")
|
||||
(SETQ CTRLUFLG NIL)
|
||||
(LET ((*EDIT-INPUT-WITH-TTYIN* NIL))
|
||||
(FIX-FORM LINE)))
|
||||
@@ -553,7 +546,7 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(SETQ COM (GETHASH STR TABLE)))
|
||||
TABLE))))
|
||||
|
||||
(CL:DEFUN CIRCLAR-COPYER (INPUT) (* ; "Edited by TT 31-May-1990")
|
||||
(CL:DEFUN CIRCLAR-COPYER (INPUT) (* ; "Edited by TT 31-May-1990")
|
||||
(PROG (SCANBUF REST VAL NEW BODY ID AUX (CIRCLAR-FLAG NIL))
|
||||
(COND
|
||||
((NLISTP INPUT)
|
||||
@@ -580,9 +573,9 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(SETQ CIRCLAR-FLAG T)
|
||||
(RPLACD NEW (CDR ID)))
|
||||
(T [push REST (SETQ AUX (CONS (CADR NEW)
|
||||
(CDDR NEW]
|
||||
(CDDR NEW]
|
||||
(push SCANBUF (CONS (CDR NEW)
|
||||
AUX))
|
||||
AUX))
|
||||
(RPLACD NEW AUX)))
|
||||
(COND
|
||||
((NLISTP (CAR NEW)))
|
||||
@@ -591,9 +584,9 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(SETQ CIRCLAR-FLAG T)
|
||||
(RPLACA NEW (CDR ID)))
|
||||
(T [push REST (SETQ AUX (CONS (CAAR NEW)
|
||||
(CDAR NEW]
|
||||
(CDAR NEW]
|
||||
(push SCANBUF (CONS (CAR NEW)
|
||||
AUX))
|
||||
AUX))
|
||||
(RPLACA NEW AUX]
|
||||
(GO LP)))
|
||||
(DEFINEQ
|
||||
@@ -727,10 +720,10 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
"List of command hash-tables for the current executive")
|
||||
|
||||
(DEFGLOBALVAR *EXEC-COMMAND-TABLE* (HASHARRAY 30 NIL 'STRING-EQUAL-HASHBITS 'STRING-EQUAL)
|
||||
"hash-table for top level exec commands")
|
||||
"hash-table for top level exec commands")
|
||||
|
||||
(DEFGLOBALVAR *DEBUGGER-COMMAND-TABLE* (HASHARRAY 20 NIL 'STRING-EQUAL-HASHBITS 'STRING-EQUAL)
|
||||
"string-equal hash-table for debugger commands")
|
||||
"string-equal hash-table for debugger commands")
|
||||
|
||||
(CL:DEFVAR *CURRENT-EXEC-TYPE* NIL
|
||||
"Rebound under Exec; if NIL, means use default")
|
||||
@@ -1337,7 +1330,7 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
"Start an old-style LISPX window"])
|
||||
|
||||
(ADDTOVAR SYSTEMINITVARS (LISPXHISTORY NIL 0 100 100)
|
||||
(GREETHIST))
|
||||
(GREETHIST))
|
||||
|
||||
|
||||
|
||||
@@ -1347,24 +1340,23 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(DEF-DEFINE-TYPE COMMANDS "Exec Commands")
|
||||
|
||||
(DEFDEFINER (DEFCOMMAND [:NAME (CL:LAMBDA (WHOLE)
|
||||
(LET ((NAME (CL:SECOND WHOLE)))
|
||||
(CL:IF (CL:CONSP NAME)
|
||||
(CAR NAME)
|
||||
NAME)]) COMMANDS (NAME ARGUMENTS &ENVIRONMENT ENV
|
||||
&BODY BODY)
|
||||
(LET ((NAME (CL:SECOND WHOLE)))
|
||||
(CL:IF (CL:CONSP NAME)
|
||||
(CAR NAME)
|
||||
NAME)]) COMMANDS (NAME ARGUMENTS &ENVIRONMENT ENV
|
||||
&BODY BODY)
|
||||
[LET ((COMMAND-LEVEL '*EXEC-COMMAND-TABLE*)
|
||||
(COMMAND-TYPE :EVAL)
|
||||
(PREFIX "exec-"))
|
||||
[if (LISTP NAME)
|
||||
then (SETQ NAME (PROG1 (CAR NAME)
|
||||
[for X in (CDR NAME)
|
||||
do (CL:ECASE X
|
||||
((:QUIET :HISTORY :INPUT :EVAL :MACRO) (SETQ
|
||||
COMMAND-TYPE
|
||||
X))
|
||||
((:DEBUGGER :BREAK)
|
||||
(SETQ COMMAND-LEVEL '*DEBUGGER-COMMAND-TABLE*)
|
||||
(SETQ PREFIX "break-")))])]
|
||||
[for X in (CDR NAME) do (CL:ECASE X
|
||||
((:QUIET :HISTORY :INPUT :EVAL :MACRO)
|
||||
(SETQ COMMAND-TYPE X))
|
||||
((:DEBUGGER :BREAK)
|
||||
(SETQ COMMAND-LEVEL
|
||||
'*DEBUGGER-COMMAND-TABLE*)
|
||||
(SETQ PREFIX "break-")))])]
|
||||
(LET* ((CMACRONAME (PACK* PREFIX NAME))
|
||||
(STRINGNAME (STRING NAME)))
|
||||
(CL:MULTIPLE-VALUE-BIND (PARSED-BODY PARSED-DECLARATIONS PARSED-DOCSTRING)
|
||||
@@ -1397,32 +1389,32 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(CL:FORMAT T " ~20Tto apply function to the arguments given~&~%%or one of:")
|
||||
(FOR X ON (REVERSE *THIS-EXEC-COMMANDS*)
|
||||
DO (LET (COMS)
|
||||
[MAPHASH (CAR X)
|
||||
#'(CL:LAMBDA (VAL KEY)
|
||||
(AND [NOT (SOME (CDR X)
|
||||
#'(CL:LAMBDA (TAB)
|
||||
(GETHASH KEY TAB]
|
||||
(PUSH COMS (LIST KEY VAL]
|
||||
(CL:MAPC #'[CL:LAMBDA (COM)
|
||||
(CL:FORMAT T "~&")
|
||||
(DSPFONT INPUTFONT T)
|
||||
(CL:FORMAT T "~A " (CAR COM))
|
||||
(DSPFONT COMMENTFONT T)
|
||||
(PRINT-ARGLIST (COMMAND-ENTRY-ARGUMENTS (CADR COM)))
|
||||
(DSPFONT DEFAULTFONT T)
|
||||
(LET [(DOC (CL:DOCUMENTATION (CAR COM)
|
||||
'COMMANDS]
|
||||
(CL:WHEN DOC
|
||||
(TAB 20 1 T)
|
||||
(CL:FORMAT T "~A" DOC))]
|
||||
(CL:SORT COMS #'CL:STRING< :KEY #'CAR])
|
||||
[MAPHASH (CAR X)
|
||||
#'(CL:LAMBDA (VAL KEY)
|
||||
(AND [NOT (SOME (CDR X)
|
||||
#'(CL:LAMBDA (TAB)
|
||||
(GETHASH KEY TAB]
|
||||
(PUSH COMS (LIST KEY VAL]
|
||||
(CL:MAPC #'[CL:LAMBDA (COM)
|
||||
(CL:FORMAT T "~&")
|
||||
(DSPFONT INPUTFONT T)
|
||||
(CL:FORMAT T "~A " (CAR COM))
|
||||
(DSPFONT COMMENTFONT T)
|
||||
(PRINT-ARGLIST (COMMAND-ENTRY-ARGUMENTS (CADR COM)))
|
||||
(DSPFONT DEFAULTFONT T)
|
||||
(LET [(DOC (CL:DOCUMENTATION (CAR COM)
|
||||
'COMMANDS]
|
||||
(CL:WHEN DOC
|
||||
(TAB 20 1 T)
|
||||
(CL:FORMAT T "~A" DOC))]
|
||||
(CL:SORT COMS #'CL:STRING< :KEY #'CAR])
|
||||
(CL:VALUES))
|
||||
|
||||
(DEFCOMMAND ("??" :QUIET) (&REST EVENT-SPECS) "Show events specified EVENT-SPECS (or all events)"
|
||||
(IF (AND EVENT-SPECS (EQ (CAR EVENT-SPECS)
|
||||
':INPUT))
|
||||
':INPUT))
|
||||
THEN (PRINT-HISTORY LISPXHISTORY (CDR EVENT-SPECS)
|
||||
T)
|
||||
T)
|
||||
ELSE (PRINT-HISTORY LISPXHISTORY EVENT-SPECS))
|
||||
(CL:VALUES))
|
||||
|
||||
@@ -1435,21 +1427,19 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(DEFCOMMAND ("DIR" :EVAL) (&OPTIONAL PATHNAME &REST KEYWORDS) "Show directory listing for PATHNAME"
|
||||
[DODIR (CONS PATHNAME (MAPCAR KEYWORDS (FUNCTION (LAMBDA (CL:KEYWORD)
|
||||
(IF (CL:SYMBOLP CL:KEYWORD)
|
||||
THEN (CL:INTERN (CL:SYMBOL-NAME
|
||||
CL:KEYWORD)
|
||||
"INTERLISP")
|
||||
THEN (CL:INTERN (CL:SYMBOL-NAME CL:KEYWORD)
|
||||
"INTERLISP")
|
||||
ELSE CL:KEYWORD])
|
||||
|
||||
(DEFCOMMAND "DO-EVENTS" (&REST INPUTS &ENVIRONMENT ENV)
|
||||
"Execute the multiple events in INPUTS, using the environment ENV for all evaluations."
|
||||
[LET ((OUTER-EVENT (AND *CURRENT-EVENT* (COPY-EXEC-EVENT *CURRENT-EVENT*)))
|
||||
(* ;
|
||||
"DO-EVENT smashes *CURRENT-EVENT*, so we copy and save it.")
|
||||
"DO-EVENT smashes *CURRENT-EVENT*, so we copy and save it.")
|
||||
)
|
||||
(CL:WHEN OUTER-EVENT
|
||||
(CL:SETF (EXEC-EVENT-INPUT OUTER-EVENT)
|
||||
(CONS 'DO-EVENTS INPUTS)) (* ;
|
||||
"Each of these is fixed up below.")
|
||||
(CONS 'DO-EVENTS INPUTS)) (* ; "Each of these is fixed up below.")
|
||||
)
|
||||
(ERSETQ (CL:MAPL #'[CL:LAMBDA (INPUT)
|
||||
(LET ([TODO (CL:IF (EQ (CAR (LISTP (CAR INPUT)))
|
||||
@@ -1460,32 +1450,32 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(CL:WHEN ADDSPELLFLG (HISTORY-ADD-TO-SPELLING-LISTS TODO))
|
||||
(SETQ VALUES (DO-EVENT TODO ENV))
|
||||
(* ;
|
||||
"If it exists, *CURRENT-EVENT* gets smashed here.")
|
||||
"If it exists, *CURRENT-EVENT* gets smashed here.")
|
||||
(CL:WHEN OUTER-EVENT (* ; "If there is an outer event...")
|
||||
|
||||
(* ;;
|
||||
"Fix the outer event's list of inputs with the expanded input.")
|
||||
"Fix the outer event's list of inputs with the expanded input.")
|
||||
|
||||
(RPLACA INPUT (CAR (EXEC-EVENT-INPUT *CURRENT-EVENT*)))
|
||||
(CL:WHEN VALUES (* ;
|
||||
"If the last sub-event generated some values...")
|
||||
"If the last sub-event generated some values...")
|
||||
|
||||
(* ;;
|
||||
"Add the new values to the outer event's values.")
|
||||
"Add the new values to the outer event's values.")
|
||||
|
||||
[LET [(OLD-VALUES (CL:GETF (EXEC-EVENT-PROPS
|
||||
OUTER-EVENT)
|
||||
[LET [(OLD-VALUES (CL:GETF (EXEC-EVENT-PROPS
|
||||
OUTER-EVENT)
|
||||
'LISPXVALUES]
|
||||
(CL:IF OLD-VALUES
|
||||
(NCONC OLD-VALUES VALUES)
|
||||
(CL:SETF (EXEC-EVENT-PROPS OUTER-EVENT)
|
||||
(LIST* 'LISPXVALUES VALUES
|
||||
(EXEC-EVENT-PROPS
|
||||
OUTER-EVENT))))]))]
|
||||
(EXEC-EVENT-PROPS OUTER-EVENT))
|
||||
))]))]
|
||||
INPUTS))
|
||||
(CL:WHEN *CURRENT-EVENT* (* ; "If there was a current event...")
|
||||
(* ;
|
||||
"Smash saved values back from OUTER-EVENT.")
|
||||
"Smash saved values back from OUTER-EVENT.")
|
||||
(CL:SETF (EXEC-EVENT-INPUT *CURRENT-EVENT*)
|
||||
(EXEC-EVENT-INPUT OUTER-EVENT))
|
||||
(CL:SETF (EXEC-EVENT-ID *CURRENT-EVENT*)
|
||||
@@ -1496,19 +1486,18 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(EXEC-EVENT-PROPS OUTER-EVENT)))]
|
||||
(SETQ *CURRENT-EVENT* NIL) (* ; "Keeps the DO-EVENT which is evaluating us from setting the event's results to (the result of evaluating) the NIL we return. This is alright since *CURRENT-EVENT* is already pointed to by the history list.")
|
||||
(CL:VALUES) (* ;
|
||||
"We've evaluated all the subforms directly with DO-EVENT so we don't return a form to EVAL.")
|
||||
"We've evaluated all the subforms directly with DO-EVENT so we don't return a form to EVAL.")
|
||||
)
|
||||
|
||||
(DEFCOMMAND ("FIX" :HISTORY) (&REST EVENT-SPEC) "Edit input for specified events"
|
||||
[APPLY 'FIX-FORM (CL:MULTIPLE-VALUE-LIST (CIRCLAR-COPYER (EVENTS-INPUT
|
||||
(FIND-HISTORY-EVENTS
|
||||
(OR EVENT-SPEC '(-1))
|
||||
LISPXHISTORY])
|
||||
[APPLY 'FIX-FORM (CL:MULTIPLE-VALUE-LIST (CIRCLAR-COPYER (EVENTS-INPUT (FIND-HISTORY-EVENTS
|
||||
(OR EVENT-SPEC
|
||||
'(-1))
|
||||
LISPXHISTORY])
|
||||
|
||||
(DEFCOMMAND "FORGET" (&REST EVENT-SPEC) "Erase UNDO information (for specified events)."
|
||||
(FOR EVENT IN (FIND-HISTORY-EVENTS (OR EVENT-SPEC '(-1))
|
||||
LISPXHISTORY) DO (UNDOLISPX2 EVENT T)
|
||||
FINALLY (CL:FORMAT T "Forgotten.~&"))
|
||||
LISPXHISTORY) DO (UNDOLISPX2 EVENT T) FINALLY (CL:FORMAT T "Forgotten.~&"))
|
||||
(CL:VALUES))
|
||||
|
||||
(DEFCOMMAND "NAME" (COMMAND-NAME &OPTIONAL ARGUMENT-LIST &REST EVENT-SPEC)
|
||||
@@ -1517,8 +1506,7 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(CL:PUSH ARGUMENT-LIST EVENT-SPEC)
|
||||
(SETQ ARGUMENT-LIST NIL))
|
||||
[LET [(EVENTS (FIND-HISTORY-EVENTS EVENT-SPEC LISPXHISTORY))
|
||||
(ARGNAMES (FOR I FROM 1 AS X IN ARGUMENT-LIST
|
||||
COLLECT (PACK* 'ARG I]
|
||||
(ARGNAMES (FOR I FROM 1 AS X IN ARGUMENT-LIST COLLECT (PACK* 'ARG I]
|
||||
(CL:EVAL `(DEFCOMMAND (,COMMAND-NAME :HISTORY) ,ARGNAMES
|
||||
[SUBPAIR ',ARGNAMES (LIST ,@ARGNAMES)
|
||||
',(SUBPAIR ARGUMENT-LIST ARGNAMES (EVENTS-INPUT EVENTS)
|
||||
@@ -1536,7 +1524,7 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
|
||||
(DEFCOMMAND ("REDO" :HISTORY) (&REST EVENT-SPEC) "Re-execute specified event(s)"
|
||||
(EVENTS-INPUT (FIND-HISTORY-EVENTS (OR EVENT-SPEC '(-1))
|
||||
LISPXHISTORY)))
|
||||
LISPXHISTORY)))
|
||||
|
||||
(DEFCOMMAND ("REMEMBER" :EVAL) (&REST EVENT-SPEC)
|
||||
"Tell Manager to remember type-in from specified event(s)"
|
||||
@@ -1549,40 +1537,37 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(DEFCOMMAND "UNDO" (&REST EVENT-SPEC)
|
||||
"Undo side effects associated with the specified event (or last undoable one)"
|
||||
[FOR EVENT IN (FIND-HISTORY-EVENTS (OR EVENT-SPEC '(-1))
|
||||
LISPXHISTORY) DO (LET ((INPUT (CAR (EXEC-EVENT-INPUT EVENT)))
|
||||
(RESULT (UNDOLISPX2 EVENT)))
|
||||
(CL:IF (LISTP INPUT)
|
||||
(SETQ INPUT (CAR INPUT)))
|
||||
(COND
|
||||
((NULL RESULT)
|
||||
(CL:FORMAT T
|
||||
"No undo info saved for ~A.~&"
|
||||
INPUT))
|
||||
((EQ RESULT 'already)
|
||||
(CL:FORMAT T "~A already undone.~&"
|
||||
INPUT))
|
||||
(T (CL:FORMAT T "~A undone.~&" INPUT]
|
||||
LISPXHISTORY) DO (LET ((INPUT (CAR (EXEC-EVENT-INPUT EVENT)))
|
||||
(RESULT (UNDOLISPX2 EVENT)))
|
||||
(CL:IF (LISTP INPUT)
|
||||
(SETQ INPUT (CAR INPUT)))
|
||||
(COND
|
||||
((NULL RESULT)
|
||||
(CL:FORMAT T "No undo info saved for ~A.~&" INPUT))
|
||||
((EQ RESULT 'already)
|
||||
(CL:FORMAT T "~A already undone.~&" INPUT))
|
||||
(T (CL:FORMAT T "~A undone.~&" INPUT]
|
||||
(CL:VALUES))
|
||||
|
||||
(DEFCOMMAND ("USE" :HISTORY) (&REST LINE) "USE <new> [FOR <old>] [IN <event-spec>]"
|
||||
|
||||
(* ;;
|
||||
"this code stolen from LISPXUSE in HIST and edited. The structure is still pretty incomprehensible")
|
||||
"this code stolen from LISPXUSE in HIST and edited. The structure is still pretty incomprehensible")
|
||||
|
||||
[PROG (EVENT-SPECS EXPR ARGS VARS (STATE 'VARS)
|
||||
LST TEM USE-ARGS GENLST)
|
||||
LP [COND
|
||||
([OR (NULL LST)
|
||||
(NULL (CDR LINE))
|
||||
(NULL (CASE-EQUALP (CAR LINE) (* ;
|
||||
"look for one of the special keywords")
|
||||
(NULL (CASE-EQUALP (CAR LINE) (* ;
|
||||
"look for one of the special keywords")
|
||||
(FOR (COND
|
||||
((EQ STATE 'VARS)
|
||||
(SETQ VARS (NCONC1 VARS LST))
|
||||
(SETQ TEM (APPEND LST TEM))
|
||||
(SETQ STATE 'ARGS)
|
||||
(SETQ LST NIL)
|
||||
T)))
|
||||
((EQ STATE 'VARS)
|
||||
(SETQ VARS (NCONC1 VARS LST))
|
||||
(SETQ TEM (APPEND LST TEM))
|
||||
(SETQ STATE 'ARGS)
|
||||
(SETQ LST NIL)
|
||||
T)))
|
||||
(AND (COND
|
||||
((EQ STATE 'EXPR)
|
||||
NIL)
|
||||
@@ -1590,30 +1575,30 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
((EQ STATE 'ARGS)
|
||||
(SETQ ARGS (NCONC1 ARGS LST)))
|
||||
((EQ STATE 'VARS)(* ;
|
||||
"E.g. user types USE A AND B following previous USE command.")
|
||||
"E.g. user types USE A AND B following previous USE command.")
|
||||
(SETQ VARS (NCONC1 VARS LST]
|
||||
(SETQ STATE 'VARS)
|
||||
(SETQ LST NIL)
|
||||
T)))
|
||||
(IN (COND
|
||||
((AND (EQ STATE 'VARS)
|
||||
(NULL ARGS))
|
||||
(SETQ VARS (NCONC1 VARS LST))
|
||||
(SETQ TEM (APPEND LST TEM))
|
||||
(SETQ STATE 'EXPR)
|
||||
(SETQ LST NIL)
|
||||
T)
|
||||
((EQ STATE 'ARGS)
|
||||
(SETQ ARGS (NCONC1 ARGS LST))
|
||||
(SETQ STATE 'EXPR)
|
||||
(SETQ LST NIL)
|
||||
T]
|
||||
((AND (EQ STATE 'VARS)
|
||||
(NULL ARGS))
|
||||
(SETQ VARS (NCONC1 VARS LST))
|
||||
(SETQ TEM (APPEND LST TEM))
|
||||
(SETQ STATE 'EXPR)
|
||||
(SETQ LST NIL)
|
||||
T)
|
||||
((EQ STATE 'ARGS)
|
||||
(SETQ ARGS (NCONC1 ARGS LST))
|
||||
(SETQ STATE 'EXPR)
|
||||
(SETQ LST NIL)
|
||||
T]
|
||||
(SETQ LST (NCONC1 LST (COND
|
||||
(NIL (MEMBER (CAR LINE)
|
||||
TEM)
|
||||
|
||||
(* ;;
|
||||
"This enables USE A B FOR B A, USE A FOR B AND B FOR A, or USE A FOR B AND B C FOR A")
|
||||
"This enables USE A B FOR B A, USE A FOR B AND B FOR A, or USE A FOR B AND B C FOR A")
|
||||
|
||||
(LET ((TEMP (CONCAT "temp string")))
|
||||
(CL:PUSH (CONS (CAR LINE)
|
||||
@@ -1639,7 +1624,7 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
|
||||
(SETQ EXPR (MAPCAR (FIND-HISTORY-EVENTS EXPR LISPXHISTORY)
|
||||
(FUNCTION EXEC-EVENT-INPUT))) (* ;
|
||||
"EXPR is now a list of event inputs")
|
||||
"EXPR is now a list of event inputs")
|
||||
|
||||
(* ;; "at this point, VARS is a list of list of old things, the extra list corresponding to the clauses of an AND, e.g. ")
|
||||
|
||||
@@ -1651,60 +1636,68 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
|
||||
(IF (NULL ARGS)
|
||||
THEN [SETQ EXPR (FOR X IN EXPR
|
||||
JOIN (FOR VAR IN VARS
|
||||
COLLECT (IF (CL:CONSP (CAR X))
|
||||
THEN (CONS (CONS (CAR VAR)
|
||||
(CDAR X))
|
||||
(CDR X))
|
||||
ELSE (CONS (CAR VAR)
|
||||
(CDR X]
|
||||
JOIN (FOR VAR IN VARS
|
||||
COLLECT (IF (CL:CONSP (CAR X))
|
||||
THEN (CONS (CONS (CAR VAR)
|
||||
(CDAR X))
|
||||
(CDR X))
|
||||
ELSE (CONS (CAR VAR)
|
||||
(CDR X]
|
||||
ELSE (WHILE ARGS DO (SETQ EXPR (LISPXUSE1 (POP VARS)
|
||||
(POP ARGS)
|
||||
EXPR))
|
||||
FINALLY (COND
|
||||
(VARS (ERROR '"use what??" "" T)))
|
||||
[MAPC GENLST (FUNCTION (LAMBDA (X)
|
||||
(LISPXSUBST (CAR X)
|
||||
(CDR X)
|
||||
EXPR T]
|
||||
(POP ARGS)
|
||||
EXPR)) FINALLY (COND
|
||||
(VARS (ERROR '"use what??" "" T)))
|
||||
[MAPC GENLST (FUNCTION (LAMBDA (X)
|
||||
(LISPXSUBST
|
||||
(CAR X)
|
||||
(CDR X)
|
||||
EXPR T]
|
||||
|
||||
(* ;; "samples:")
|
||||
(* ;; "samples:")
|
||||
|
||||
(* ;; " USE A B C D FOR X Y means substitute A for X and B for Y and then do it again with C for X and D for Y")
|
||||
(* ;; " USE A B C D FOR X Y means substitute A for X and B for Y and then do it again with C for X and D for Y")
|
||||
|
||||
(* ;; " Equivalent to USE A C FOR X AND B D FOR Y")
|
||||
(* ;;
|
||||
" Equivalent to USE A C FOR X AND B D FOR Y")
|
||||
|
||||
(* ;; " USE A B C FOR D AND X Y Z FOR W means 3 operations:")
|
||||
(* ;;
|
||||
" USE A B C FOR D AND X Y Z FOR W means 3 operations:")
|
||||
|
||||
(* ;; " A for D and X for W in the first")
|
||||
(* ;;
|
||||
" A for D and X for W in the first")
|
||||
|
||||
(* ;; " B for D and Y for W in the second")
|
||||
(* ;;
|
||||
" B for D and Y for W in the second")
|
||||
|
||||
(* ;; " C for D and Z for W in the third")
|
||||
(* ;;
|
||||
" C for D and Z for W in the third")
|
||||
|
||||
(* ;; "USE A B C FOR D AND X FOR Y means 3 operations:")
|
||||
(* ;;
|
||||
"USE A B C FOR D AND X FOR Y means 3 operations:")
|
||||
|
||||
(* ;; " A for D and X for Y in first")
|
||||
(* ;; " A for D and X for Y in first")
|
||||
|
||||
(* ;; " B for D and X for Y in second, etc.")
|
||||
(* ;;
|
||||
" B for D and X for Y in second, etc.")
|
||||
|
||||
(* ;; "USE A B C FOR D AND X Y FOR Z causes error")
|
||||
(* ;;
|
||||
"USE A B C FOR D AND X Y FOR Z causes error")
|
||||
|
||||
(* ;; "")
|
||||
(* ;; "")
|
||||
|
||||
(* ;; " USE A B FOR B A will work correctly, but USE A FOR B AND B FOR A will result in all B's being changed to A's.")
|
||||
(* ;; " USE A B FOR B A will work correctly, but USE A FOR B AND B FOR A will result in all B's being changed to A's.")
|
||||
|
||||
(* ;; "")
|
||||
(* ;; "")
|
||||
|
||||
(* ;; "The general rule is substitution proceeds from left to right with each %%'AND' handled separately. Whenever the number of variables exceeds the number of expressions available, the expressions multiply.")
|
||||
(* ;; "The general rule is substitution proceeds from left to right with each %%'AND' handled separately. Whenever the number of variables exceeds the number of expressions available, the expressions multiply.")
|
||||
|
||||
))
|
||||
))
|
||||
(RETURN (COND
|
||||
[(CDR EXPR)
|
||||
(CONS 'DO-EVENTS (for X in EXPR collect (COND
|
||||
((CDR X)
|
||||
(CONS 'EVENT X))
|
||||
(T (CAR X]
|
||||
((CDR X)
|
||||
(CONS 'EVENT X))
|
||||
(T (CAR X]
|
||||
(T (CAR EXPR])
|
||||
|
||||
(DEFCOMMAND "PP" (&OPTIONAL (NAME LASTWORD)
|
||||
@@ -1714,25 +1707,22 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(* ;; "returned from if no definitions found")
|
||||
|
||||
(for TYPE in [OR TYPES [TYPESOF NAME NIL NIL '? (FUNCTION (LAMBDA (TYPE)
|
||||
(NEQ (GET TYPE
|
||||
'EDITDEF)
|
||||
'NILL]
|
||||
(TYPESOF [SETQ NAME (OR (FIXSPELL NAME NIL USERWORDS NIL NIL
|
||||
[FUNCTION (LAMBDA (WORD)
|
||||
(TYPESOF
|
||||
WORD NIL
|
||||
'(FIELDS FILES)
|
||||
'CURRENT]
|
||||
NIL NIL NIL 'MUSTAPPROVE)
|
||||
(PROGN (CL:FORMAT *TERMINAL-IO*
|
||||
"No definitions found for ~S."
|
||||
NAME)
|
||||
(RETURN NIL]
|
||||
NIL NIL '? (FUNCTION (LAMBDA (TYPE)
|
||||
(NEQ (GET TYPE 'EDITDEF)
|
||||
'NILL]
|
||||
(NEQ (GET TYPE 'EDITDEF)
|
||||
'NILL]
|
||||
(TYPESOF [SETQ NAME (OR (FIXSPELL NAME NIL USERWORDS NIL NIL
|
||||
[FUNCTION (LAMBDA (WORD)
|
||||
(TYPESOF WORD NIL
|
||||
'(FIELDS FILES)
|
||||
'CURRENT]
|
||||
NIL NIL NIL 'MUSTAPPROVE)
|
||||
(PROGN (CL:FORMAT *TERMINAL-IO*
|
||||
"No definitions found for ~S." NAME)
|
||||
(RETURN NIL]
|
||||
NIL NIL '? (FUNCTION (LAMBDA (TYPE)
|
||||
(NEQ (GET TYPE 'EDITDEF)
|
||||
'NILL]
|
||||
do (CL:FORMAT *TERMINAL-IO* "~A definition for ~S:~%%" TYPE NAME)
|
||||
(SHOWDEF NAME TYPE)))
|
||||
(SHOWDEF NAME TYPE)))
|
||||
(CL:VALUES))
|
||||
|
||||
|
||||
@@ -1740,7 +1730,7 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
(* ;; "Arrange to use the correct compiler")
|
||||
|
||||
|
||||
(PUTPROPS CMLEXEC FILETYPE CL:COMPILE-FILE)
|
||||
(PUTPROPS CMLEXEC FILETYPE :FAKE-COMPILE-FILE)
|
||||
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS
|
||||
|
||||
(ADDTOVAR NLAMA DIR)
|
||||
@@ -1751,22 +1741,22 @@ Copyright (c) 1985-1988, 1990-1991, 1993, 2021 by Venue & Xerox Corporation.
|
||||
)
|
||||
(PUTPROPS CMLEXEC COPYRIGHT ("Venue & Xerox Corporation" 1985 1986 1987 1988 1990 1991 1993 2021))
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (3978 4383 (XCL::EXEC-CLOSEFN 3978 . 4383)) (4385 4721 (XCL::EXEC-SHRINKFN 4385 . 4721))
|
||||
(4723 4963 (XCL::SETUP-EXEC-WINDOW 4723 . 4963)) (4965 5211 (XCL::EXEC-TITLE-FUNCTION 4965 . 5211)) (
|
||||
5213 8519 (FIX-FORM 5213 . 8519)) (8521 8641 (XCL::GET-PROCESS-PROFILE 8521 . 8641)) (8643 8924 (
|
||||
XCL::SAVE-CURRENT-EXEC-PROFILE 8643 . 8924)) (8926 9216 (XCL::SETF-GET-PROCESS-PROFILE 8926 . 9216)) (
|
||||
9218 9785 (XCL:SET-EXEC-TYPE 9218 . 9785)) (9787 9869 (XCL:SET-DEFAULT-EXEC-TYPE 9787 . 9869)) (9871
|
||||
10282 (XCL::ENTER-EXEC-FUNCTION 9871 . 10282)) (10357 16750 (DO-EVENT 10357 . 16750)) (16752 23543 (
|
||||
EXEC 16752 . 23543)) (23545 24886 (EXEC-EVAL 23545 . 24886)) (24888 25619 (PRINT-ALL-DOCUMENTATION
|
||||
24888 . 25619)) (25621 26063 (PRINT-DOCUMENTATION 25621 . 26063)) (26146 27230 (ADD-EXEC 26146 . 27230
|
||||
)) (27232 30828 (EXEC-READ-LINE 27232 . 30828)) (30899 31385 (FIND-EXEC-COMMAND 30899 . 31385)) (31387
|
||||
33285 (CIRCLAR-COPYER 31387 . 33285)) (33286 34240 (COPY-CIRCLE 33296 . 34238)) (34318 37623 (
|
||||
EXEC-READ 34328 . 37489) (DIR 37491 . 37621)) (39885 67019 (DO-APPLY-EVENT 39895 . 40457) (
|
||||
DO-HISTORY-SEARCH 40459 . 41916) (EVAL-INPUT 41918 . 47347) (EVENTS-INPUT 47349 . 48727) (EXEC-PRIN1
|
||||
48729 . 48905) (EXEC-VALUE-OF 48907 . 49246) (GET-NEXT-HISTORY-EVENT 49248 . 50743) (
|
||||
HISTORY-ADD-TO-SPELLING-LISTS 50745 . 51733) (HISTORY-NTH 51735 . 52485) (PRINT-HISTORY 52487 . 53108)
|
||||
(FIND-HISTORY-EVENTS 53110 . 58171) (PRINT-EVENT 58173 . 62394) (PRINT-EVENT-PROMPT 62396 . 63600) (
|
||||
PROCESS-EXEC-ID 63602 . 64547) (SEARCH-FOR-EVENT-NUMBER 64549 . 65177) (\PICK.EVALQT 65179 . 65690) (
|
||||
LISPXREPRINT 65692 . 67017)) (68199 68298 (EXEC-PRINT 68199 . 68298)) (68300 68565 (EXEC-FORMAT 68300
|
||||
. 68565)))))
|
||||
(FILEMAP (NIL (4002 4407 (XCL::EXEC-CLOSEFN 4002 . 4407)) (4409 4745 (XCL::EXEC-SHRINKFN 4409 . 4745))
|
||||
(4747 4987 (XCL::SETUP-EXEC-WINDOW 4747 . 4987)) (4989 5235 (XCL::EXEC-TITLE-FUNCTION 4989 . 5235)) (
|
||||
5237 8404 (FIX-FORM 5237 . 8404)) (8406 8526 (XCL::GET-PROCESS-PROFILE 8406 . 8526)) (8528 8809 (
|
||||
XCL::SAVE-CURRENT-EXEC-PROFILE 8528 . 8809)) (8811 9097 (XCL::SETF-GET-PROCESS-PROFILE 8811 . 9097)) (
|
||||
9099 9666 (XCL:SET-EXEC-TYPE 9099 . 9666)) (9668 9750 (XCL:SET-DEFAULT-EXEC-TYPE 9668 . 9750)) (9752
|
||||
10159 (XCL::ENTER-EXEC-FUNCTION 9752 . 10159)) (10234 16465 (DO-EVENT 10234 . 16465)) (16467 23064 (
|
||||
EXEC 16467 . 23064)) (23066 24317 (EXEC-EVAL 23066 . 24317)) (24319 25050 (PRINT-ALL-DOCUMENTATION
|
||||
24319 . 25050)) (25052 25494 (PRINT-DOCUMENTATION 25052 . 25494)) (25577 26652 (ADD-EXEC 25577 . 26652
|
||||
)) (26654 30264 (EXEC-READ-LINE 26654 . 30264)) (30335 30821 (FIND-EXEC-COMMAND 30335 . 30821)) (30823
|
||||
32709 (CIRCLAR-COPYER 30823 . 32709)) (32710 33664 (COPY-CIRCLE 32720 . 33662)) (33742 37047 (
|
||||
EXEC-READ 33752 . 36913) (DIR 36915 . 37045)) (39301 66435 (DO-APPLY-EVENT 39311 . 39873) (
|
||||
DO-HISTORY-SEARCH 39875 . 41332) (EVAL-INPUT 41334 . 46763) (EVENTS-INPUT 46765 . 48143) (EXEC-PRIN1
|
||||
48145 . 48321) (EXEC-VALUE-OF 48323 . 48662) (GET-NEXT-HISTORY-EVENT 48664 . 50159) (
|
||||
HISTORY-ADD-TO-SPELLING-LISTS 50161 . 51149) (HISTORY-NTH 51151 . 51901) (PRINT-HISTORY 51903 . 52524)
|
||||
(FIND-HISTORY-EVENTS 52526 . 57587) (PRINT-EVENT 57589 . 61810) (PRINT-EVENT-PROMPT 61812 . 63016) (
|
||||
PROCESS-EXEC-ID 63018 . 63963) (SEARCH-FOR-EVENT-NUMBER 63965 . 64593) (\PICK.EVALQT 64595 . 65106) (
|
||||
LISPXREPRINT 65108 . 66433)) (67615 67714 (EXEC-PRINT 67615 . 67714)) (67716 67981 (EXEC-FORMAT 67716
|
||||
. 67981)))))
|
||||
STOP
|
||||
|
||||
Binary file not shown.
178
sources/FILEIO
178
sources/FILEIO
@@ -1,11 +1,11 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED "14-Dec-2021 16:10:18" {DSK}<Users>kaplan>Local>medley3.5>my-medley>sources>FILEIO.;102 160392
|
||||
(FILECREATED "19-Dec-2021 09:31:06" {DSK}<Users>kaplan>Local>medley3.5>my-medley>sources>FILEIO.;103 160528
|
||||
|
||||
:CHANGES-TO (FNS \DO.PARAMS.AT.OPEN)
|
||||
:CHANGES-TO (FNS \DO.PARAMS.AT.OPEN SETFILEINFO)
|
||||
|
||||
:PREVIOUS-DATE "13-Dec-2021 15:20:15"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>my-medley>sources>FILEIO.;101)
|
||||
:PREVIOUS-DATE "14-Dec-2021 16:10:18"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>my-medley>sources>FILEIO.;102)
|
||||
|
||||
|
||||
(* ; "
|
||||
@@ -1412,7 +1412,8 @@ Copyright (c) 1981-1993, 1999, 2020-2021 by Venue & Xerox Corporation.
|
||||
(GO RETRY])
|
||||
|
||||
(\DO.PARAMS.AT.OPEN
|
||||
[LAMBDA (STREAM ACCESS PARAMETERS) (* ; "Edited 14-Dec-2021 16:10 by rmk")
|
||||
[LAMBDA (STREAM ACCESS PARAMETERS) (* ; "Edited 19-Dec-2021 09:30 by rmk")
|
||||
(* ; "Edited 14-Dec-2021 16:10 by rmk")
|
||||
(* ; "Edited 13-Dec-2021 15:20 by rmk")
|
||||
(* ; "Edited 29-Jun-2021 17:07 by rmk:")
|
||||
(* ; "Edited 5-Oct-92 13:45 by jds")
|
||||
@@ -1426,33 +1427,22 @@ Copyright (c) 1981-1993, 1999, 2020-2021 by Venue & Xerox Corporation.
|
||||
|
||||
(DECLARE (USEDFREE STREAM-AFTER-OPEN-FNS))
|
||||
(\EXTERNALFORMAT STREAM :DEFAULT)
|
||||
(for X ATTR VAL 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)
|
||||
(\EXTERNALFORMAT STREAM VAL))
|
||||
(CONVHANKAKU (CONVHANKAKU STREAM VAL))
|
||||
((EOL EOLCONVENTION EOLC)
|
||||
(replace EOLCONVENTION of STREAM with (SELECTQ VAL
|
||||
(CR CR.EOLC)
|
||||
(LF LF.EOLC)
|
||||
(CRLF CRLF.EOLC)
|
||||
(ANY (CL:WHEN (\GETSTREAM STREAM
|
||||
'OUTPUT T)
|
||||
(ERROR
|
||||
"EOL convention ANY not allowed for output streams"
|
||||
STREAM))
|
||||
ANY.EOLC)
|
||||
(\ILLEGAL.ARG VAL))))
|
||||
NIL))
|
||||
(for X ATTR VAL 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)
|
||||
(\EXTERNALFORMAT STREAM VAL))
|
||||
(CONVHANKAKU (CONVHANKAKU STREAM VAL))
|
||||
((EOL EOLCONVENTION EOLC)
|
||||
(SETFILEINFO STREAM 'EOL VAL))
|
||||
NIL))
|
||||
(FOR FN IN STREAM-AFTER-OPEN-FNS DO (APPLY* FN STREAM ACCESS PARAMETERS])
|
||||
|
||||
(\RENAMEFILE
|
||||
@@ -2433,26 +2423,32 @@ update the map")
|
||||
STREAM])
|
||||
|
||||
(SETFILEINFO
|
||||
[LAMBDA (FILE ATTRIB VALUE) (* ; "Edited 29-Jun-2021 17:05 by rmk:")
|
||||
(* ; "Edited 11-Dec-95 11:08 by ")
|
||||
(* ; "Edited 27-Mar-89 15:33 by bvm")
|
||||
[LAMBDA (FILE ATTRIB VALUE) (* ; "Edited 19-Dec-2021 09:30 by rmk")
|
||||
(* ; "Edited 29-Jun-2021 17:05 by rmk:")
|
||||
(* ; "Edited 11-Dec-95 11:08 by ")
|
||||
(* ; "Edited 27-Mar-89 15:33 by bvm")
|
||||
(LET (FULLNAME DEV)
|
||||
(COND
|
||||
[(type? STREAM FILE) (* ;
|
||||
"FILE is open, so strip off attributes that can be set from the stream.")
|
||||
[(type? STREAM FILE) (* ;
|
||||
"FILE is open, so strip off attributes that can be set from the stream.")
|
||||
(SELECTQ ATTRIB
|
||||
((ACCESS BYTESIZE OPENBYTESIZE) (* ;
|
||||
"These can't be changed for an open file")
|
||||
((ACCESS BYTESIZE OPENBYTESIZE) (* ;
|
||||
"These can't be changed for an open file")
|
||||
NIL)
|
||||
(EOL (replace EOLCONVENTION of FILE with (SELECTQ VALUE
|
||||
(CR CR.EOLC)
|
||||
(CRLF CRLF.EOLC)
|
||||
(LF LF.EOLC)
|
||||
(ANY ANY.EOLC)
|
||||
(\ILLEGAL.ARG VALUE)))
|
||||
(CR CR.EOLC)
|
||||
(CRLF CRLF.EOLC)
|
||||
(LF LF.EOLC)
|
||||
(ANY (CL:WHEN (\GETSTREAM FILE
|
||||
'OUTPUT T)
|
||||
(ERROR
|
||||
"EOL convention ANY is not allowed for output streams"
|
||||
FILE))
|
||||
ANY.EOLC)
|
||||
(\ILLEGAL.ARG VALUE)))
|
||||
VALUE)
|
||||
((FORMAT EXTERNALFORMAT)
|
||||
(\EXTERNALFORMAT FILE VALUE)
|
||||
(\EXTERNALFORMAT FILE VALUE)
|
||||
VALUE)
|
||||
(ENDOFSTREAMOP (replace ENDOFSTREAMOP of FILE with VALUE))
|
||||
(BUFFERS (replace MAXBUFFERS of FILE with (IMAX 1 (FIX VALUE))))
|
||||
@@ -2461,18 +2457,18 @@ update the map")
|
||||
FILE ATTRIB VALUE DEV)
|
||||
(SELECTQ ATTRIB
|
||||
(LENGTH
|
||||
(* ;; "Let device at this attribute first. Probably should not have this generic op, since we don't know how to do this for all devices")
|
||||
(* ;; "Let device at this attribute first. Probably should not have this generic op, since we don't know how to do this for all devices")
|
||||
|
||||
[\SETEOFPTR FILE (COND
|
||||
((type? BYTEPTR VALUE)
|
||||
VALUE)
|
||||
(T (\ILLEGAL.ARG VALUE])
|
||||
((type? BYTEPTR VALUE)
|
||||
VALUE)
|
||||
(T (\ILLEGAL.ARG VALUE])
|
||||
(SIZE (\SETEOFPTR FILE (UNFOLD VALUE BYTESPERPAGE)))
|
||||
NIL]
|
||||
[(AND [SETQ DEV (\GETDEVICEFROMNAME (SETQ FULLNAME (\ADD.CONNECTED.DIR
|
||||
(\CONVERT-PATHNAME FILE]
|
||||
[(AND [SETQ DEV (\GETDEVICEFROMNAME (SETQ FULLNAME (\ADD.CONNECTED.DIR (\CONVERT-PATHNAME
|
||||
FILE]
|
||||
(SETQ FULLNAME (FDEVOP 'GETFILENAME DEV FULLNAME 'OLD DEV)))
|
||||
(* ; "Name of existing file. It's possible we should have the device do recognition instead, but then we have the confusion of file not found recovery in the wrong place.")
|
||||
(* ; "Name of existing file. It's possible we should have the device do recognition instead, but then we have the confusion of file not found recovery in the wrong place.")
|
||||
(SELECTQ ATTRIB
|
||||
((ACCESS OPENBYTESIZE EOLCONVENTION)
|
||||
NIL)
|
||||
@@ -2480,9 +2476,9 @@ update the map")
|
||||
(COND
|
||||
((EQ ATTRIB 'LENGTH)
|
||||
(\SETCLOSEDFILELENGTH FULLNAME (COND
|
||||
((type? BYTEPTR VALUE)
|
||||
VALUE)
|
||||
(T (\ILLEGAL.ARG VALUE]
|
||||
((type? BYTEPTR VALUE)
|
||||
VALUE)
|
||||
(T (\ILLEGAL.ARG VALUE]
|
||||
(T (LISPERROR "FILE NOT FOUND" FILE])
|
||||
|
||||
(SETFILEPTR
|
||||
@@ -3093,40 +3089,40 @@ update the map")
|
||||
(PUTPROPS FILEIO COPYRIGHT ("Venue & Xerox Corporation" 1981 1982 1983 1984 1985 1986 1987 1988 1989
|
||||
1990 1991 1992 1993 1999 2020 2021))
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (26864 30342 (STREAMPROP 26874 . 27308) (GETSTREAMPROP 27310 . 27779) (PUTSTREAMPROP
|
||||
27781 . 30190) (STREAMP 30192 . 30340)) (30385 32904 (\DEFPRINT.BY.NAME 30395 . 31547) (
|
||||
\STREAM.DEFPRINT 31549 . 32597) (\FDEV.DEFPRINT 32599 . 32902)) (33162 38203 (\GETACCESS 33172 . 33626
|
||||
) (\SETACCESS 33628 . 38201)) (58356 64325 (\DEFINEDEVICE 58366 . 60682) (\GETDEVICEFROMNAME 60684 .
|
||||
61157) (\GETDEVICEFROMHOSTNAME 61159 . 62203) (\REMOVEDEVICE 62205 . 63328) (\REMOVEDEVICE.NAMES 63330
|
||||
. 64323)) (64365 89011 (\CLOSEFILE 64375 . 65200) (\DELETEFILE 65202 . 65496) (\DEVICEEVENT 65498 .
|
||||
67268) (\GENERATEFILES 67270 . 67748) (\GENERATENEXTFILE 67750 . 68401) (\GENERATEFILEINFO 68403 .
|
||||
68864) (\GETFILENAME 68866 . 69255) (\GENERIC.OUTFILEP 69257 . 69727) (\OPENFILE 69729 . 72307) (
|
||||
\DO.PARAMS.AT.OPEN 72309 . 74848) (\RENAMEFILE 74850 . 75274) (\REVALIDATEFILE 75276 . 77878) (
|
||||
\PAGED.REVALIDATEFILELST 77880 . 79438) (\PAGED.REVALIDATEFILES 79440 . 81159) (\PAGED.REVALIDATEFILE
|
||||
81161 . 83444) (\BUFFERED.REVALIDATEFILE 83446 . 85732) (\BUFFERED.REVALIDATEFILELST 85734 . 86918) (
|
||||
\PRINT-REVALIDATION-RESULT 86920 . 87335) (\TRUNCATEFILE 87337 . 87728) (\FILE-CONFLICT 87730 . 89009)
|
||||
) (89047 93710 (\GENERATENOFILES 89057 . 91153) (\NULLFILEGENERATOR 91155 . 91399) (\NOFILESNEXTFILEFN
|
||||
91401 . 93392) (\NOFILESINFOFN 93394 . 93708)) (93829 95737 (\FILE.NOT.OPEN 93839 . 94352) (
|
||||
\FILE.WONT.OPEN 94354 . 94682) (\ILLEGAL.DEVICEOP 94684 . 94966) (\IS.NOT.RANDACCESSP 94968 . 95414) (
|
||||
\STREAM.NOT.OPEN 95416 . 95735)) (95872 98170 (\FDEVINSTANCE 95882 . 98168)) (99372 106746 (CNDIR
|
||||
99382 . 100687) (DIRECTORYNAME 100689 . 104872) (DIRECTORYNAMEP 104874 . 105490) (HOSTNAMEP 105492 .
|
||||
106299) (\ADD.CONNECTED.DIR 106301 . 106744)) (106791 134178 (\BACKFILEPTR 106801 . 106989) (
|
||||
\BACKPEEKBIN 106991 . 107352) (\BACKBIN 107354 . 107705) (BIN 107707 . 107924) (\BIN 107926 . 108203)
|
||||
(\BINS 108205 . 108491) (BOUT 108493 . 108855) (\BOUT 108857 . 109172) (\BOUTS 109174 . 109485) (
|
||||
COPYBYTES 109487 . 112819) (COPYCHARS 112821 . 116487) (COPYFILE 116489 . 117286) (\COPYOPENFILE
|
||||
117288 . 120361) (\INFER.FILE.TYPE 120363 . 121317) (EOFP 121319 . 121616) (FORCEOUTPUT 121618 .
|
||||
121865) (\FLUSH.OPEN.STREAMS 121867 . 122223) (CHARSET 122225 . 123889) (ACCESS-CHARSET 123891 .
|
||||
124108) (GETEOFPTR 124110 . 124360) (GETFILEINFO 124362 . 127555) (\TYPE.FROM.FILETYPE 127557 . 128027
|
||||
) (\FILETYPE.FROM.TYPE 128029 . 128208) (GETFILEPTR 128210 . 128462) (SETFILEINFO 128464 . 132077) (
|
||||
SETFILEPTR 132079 . 133798) (BOUT16 133800 . 133985) (BIN16 133987 . 134176)) (134281 139486 (
|
||||
\GENERIC.BINS 134291 . 134571) (\GENERIC.BOUTS 134573 . 134838) (\GENERIC.RENAMEFILE 134840 . 136671)
|
||||
(\GENERIC.OPENP 136673 . 137988) (\GENERIC.READP 137990 . 139031) (\GENERIC.CHARSET 139033 . 139484))
|
||||
(139487 139826 (\MAP-OPEN-STREAMS 139497 . 139824)) (141610 143690 (\EOF.ACTION 141620 . 141871) (
|
||||
\EOSERROR 141873 . 142066) (\GETEOFPTR 142068 . 142250) (\INCFILEPTR 142252 . 142602) (\PEEKBIN 142604
|
||||
. 142795) (\SETCLOSEDFILELENGTH 142797 . 143131) (\SETEOFPTR 143133 . 143321) (\SETFILEPTR 143323 .
|
||||
143688)) (143691 144233 (\FIXPOUT 143701 . 144001) (\FIXPIN 144003 . 144231)) (144234 144800 (\BOUTEOL
|
||||
144244 . 144798)) (147696 157560 (\BUFFERED.BIN 147706 . 148558) (\BUFFERED.PEEKBIN 148560 . 149342)
|
||||
(\BUFFERED.BOUT 149344 . 150204) (\BUFFERED.BINS 150206 . 153891) (\BUFFERED.BOUTS 153893 . 155694) (
|
||||
\BUFFERED.COPYBYTES 155696 . 157558)) (157589 159941 (\NULLDEVICE 157599 . 159617) (\NULL.OPENFILE
|
||||
159619 . 159939)))))
|
||||
(FILEMAP (NIL (26876 30354 (STREAMPROP 26886 . 27320) (GETSTREAMPROP 27322 . 27791) (PUTSTREAMPROP
|
||||
27793 . 30202) (STREAMP 30204 . 30352)) (30397 32916 (\DEFPRINT.BY.NAME 30407 . 31559) (
|
||||
\STREAM.DEFPRINT 31561 . 32609) (\FDEV.DEFPRINT 32611 . 32914)) (33174 38215 (\GETACCESS 33184 . 33638
|
||||
) (\SETACCESS 33640 . 38213)) (58368 64337 (\DEFINEDEVICE 58378 . 60694) (\GETDEVICEFROMNAME 60696 .
|
||||
61169) (\GETDEVICEFROMHOSTNAME 61171 . 62215) (\REMOVEDEVICE 62217 . 63340) (\REMOVEDEVICE.NAMES 63342
|
||||
. 64335)) (64377 88654 (\CLOSEFILE 64387 . 65212) (\DELETEFILE 65214 . 65508) (\DEVICEEVENT 65510 .
|
||||
67280) (\GENERATEFILES 67282 . 67760) (\GENERATENEXTFILE 67762 . 68413) (\GENERATEFILEINFO 68415 .
|
||||
68876) (\GETFILENAME 68878 . 69267) (\GENERIC.OUTFILEP 69269 . 69739) (\OPENFILE 69741 . 72319) (
|
||||
\DO.PARAMS.AT.OPEN 72321 . 74491) (\RENAMEFILE 74493 . 74917) (\REVALIDATEFILE 74919 . 77521) (
|
||||
\PAGED.REVALIDATEFILELST 77523 . 79081) (\PAGED.REVALIDATEFILES 79083 . 80802) (\PAGED.REVALIDATEFILE
|
||||
80804 . 83087) (\BUFFERED.REVALIDATEFILE 83089 . 85375) (\BUFFERED.REVALIDATEFILELST 85377 . 86561) (
|
||||
\PRINT-REVALIDATION-RESULT 86563 . 86978) (\TRUNCATEFILE 86980 . 87371) (\FILE-CONFLICT 87373 . 88652)
|
||||
) (88690 93353 (\GENERATENOFILES 88700 . 90796) (\NULLFILEGENERATOR 90798 . 91042) (\NOFILESNEXTFILEFN
|
||||
91044 . 93035) (\NOFILESINFOFN 93037 . 93351)) (93472 95380 (\FILE.NOT.OPEN 93482 . 93995) (
|
||||
\FILE.WONT.OPEN 93997 . 94325) (\ILLEGAL.DEVICEOP 94327 . 94609) (\IS.NOT.RANDACCESSP 94611 . 95057) (
|
||||
\STREAM.NOT.OPEN 95059 . 95378)) (95515 97813 (\FDEVINSTANCE 95525 . 97811)) (99015 106389 (CNDIR
|
||||
99025 . 100330) (DIRECTORYNAME 100332 . 104515) (DIRECTORYNAMEP 104517 . 105133) (HOSTNAMEP 105135 .
|
||||
105942) (\ADD.CONNECTED.DIR 105944 . 106387)) (106434 134314 (\BACKFILEPTR 106444 . 106632) (
|
||||
\BACKPEEKBIN 106634 . 106995) (\BACKBIN 106997 . 107348) (BIN 107350 . 107567) (\BIN 107569 . 107846)
|
||||
(\BINS 107848 . 108134) (BOUT 108136 . 108498) (\BOUT 108500 . 108815) (\BOUTS 108817 . 109128) (
|
||||
COPYBYTES 109130 . 112462) (COPYCHARS 112464 . 116130) (COPYFILE 116132 . 116929) (\COPYOPENFILE
|
||||
116931 . 120004) (\INFER.FILE.TYPE 120006 . 120960) (EOFP 120962 . 121259) (FORCEOUTPUT 121261 .
|
||||
121508) (\FLUSH.OPEN.STREAMS 121510 . 121866) (CHARSET 121868 . 123532) (ACCESS-CHARSET 123534 .
|
||||
123751) (GETEOFPTR 123753 . 124003) (GETFILEINFO 124005 . 127198) (\TYPE.FROM.FILETYPE 127200 . 127670
|
||||
) (\FILETYPE.FROM.TYPE 127672 . 127851) (GETFILEPTR 127853 . 128105) (SETFILEINFO 128107 . 132213) (
|
||||
SETFILEPTR 132215 . 133934) (BOUT16 133936 . 134121) (BIN16 134123 . 134312)) (134417 139622 (
|
||||
\GENERIC.BINS 134427 . 134707) (\GENERIC.BOUTS 134709 . 134974) (\GENERIC.RENAMEFILE 134976 . 136807)
|
||||
(\GENERIC.OPENP 136809 . 138124) (\GENERIC.READP 138126 . 139167) (\GENERIC.CHARSET 139169 . 139620))
|
||||
(139623 139962 (\MAP-OPEN-STREAMS 139633 . 139960)) (141746 143826 (\EOF.ACTION 141756 . 142007) (
|
||||
\EOSERROR 142009 . 142202) (\GETEOFPTR 142204 . 142386) (\INCFILEPTR 142388 . 142738) (\PEEKBIN 142740
|
||||
. 142931) (\SETCLOSEDFILELENGTH 142933 . 143267) (\SETEOFPTR 143269 . 143457) (\SETFILEPTR 143459 .
|
||||
143824)) (143827 144369 (\FIXPOUT 143837 . 144137) (\FIXPIN 144139 . 144367)) (144370 144936 (\BOUTEOL
|
||||
144380 . 144934)) (147832 157696 (\BUFFERED.BIN 147842 . 148694) (\BUFFERED.PEEKBIN 148696 . 149478)
|
||||
(\BUFFERED.BOUT 149480 . 150340) (\BUFFERED.BINS 150342 . 154027) (\BUFFERED.BOUTS 154029 . 155830) (
|
||||
\BUFFERED.COPYBYTES 155832 . 157694)) (157725 160077 (\NULLDEVICE 157735 . 159753) (\NULL.OPENFILE
|
||||
159755 . 160075)))))
|
||||
STOP
|
||||
|
||||
Binary file not shown.
@@ -1,37 +1,37 @@
|
||||
(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP")
|
||||
(FILECREATED "19-Jan-93 11:26:14" {DSK}<python>lde>lispcore>sources>WINDOWOBJ.;3 27891
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
changes to%: (RECORDS IMAGEOBJ IMAGEFNS IMAGEBOX)
|
||||
(FILECREATED "20-Dec-2021 23:47:45" {DSK}<Users>kaplan>Local>medley3.5>my-medley>sources>WINDOWOBJ.;5 27781
|
||||
|
||||
previous date%: " 5-Jan-93 09:53:15" {DSK}<python>lde>lispcore>sources>WINDOWOBJ.;2)
|
||||
:CHANGES-TO (FNS COPYINSERT)
|
||||
|
||||
:PREVIOUS-DATE "18-Dec-2021 20:09:33"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>my-medley>sources>WINDOWOBJ.;3)
|
||||
|
||||
|
||||
(* ; "
|
||||
Copyright (c) 1986, 1987, 1990, 1991, 1993 by Venue & Xerox Corporation. All rights reserved.
|
||||
Copyright (c) 1986-1987, 1990-1991, 1993 by Venue & Xerox Corporation.
|
||||
")
|
||||
|
||||
(PRETTYCOMPRINT WINDOWOBJCOMS)
|
||||
|
||||
(RPAQQ WINDOWOBJCOMS [(COMS (* ;
|
||||
"Image object support - here so that DEDIT can use it without needing TEDIT to be loaded.")
|
||||
(RECORDS IMAGEOBJ IMAGEFNS IMAGEBOX)
|
||||
(FNS COPYINSERT IMAGEBOX IMAGEFNSCREATE IMAGEFNSP IMAGEOBJCREATE
|
||||
IMAGEOBJP IMAGEOBJPROP \IMAGEUSERPROP HPRINT.IMAGEOBJ
|
||||
COPYIMAGEOBJ READIMAGEOBJ WRITEIMAGEOBJ)
|
||||
(ADDVARS (HPRINTMACROS (IMAGEOBJ . WRITEIMAGEOBJ)))
|
||||
(GLOBALVARS (IMAGEOBJTYPES NIL)
|
||||
(IMAGEOBJGETFNS NIL)))
|
||||
(COMS (* ;
|
||||
"For encapsulating unknown-type IMAGEOBJs.")
|
||||
(FNS ENCAPSULATEDOBJ.BUTTONEVENTINFN ENCAPSULATEDOBJ.PUTFN
|
||||
ENCAPSULATEDOBJ.DISPLAYFN ENCAPSULATEDOBJ.IMAGEBOXFN
|
||||
ENCAPSULATEDIMAGEFNS)
|
||||
(INITVARS ENCAPSULATEDIMAGEFNS)
|
||||
(GLOBALVARS ENCAPSULATEDIMAGEFNS))
|
||||
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS
|
||||
(ADDVARS (NLAMA)
|
||||
(NLAML)
|
||||
(LAMA IMAGEOBJPROP])
|
||||
(RPAQQ WINDOWOBJCOMS
|
||||
[(COMS (* ;
|
||||
"Image object support - here so that DEDIT can use it without needing TEDIT to be loaded.")
|
||||
(RECORDS IMAGEOBJ IMAGEFNS IMAGEBOX)
|
||||
(FNS COPYINSERT IMAGEBOX IMAGEFNSCREATE IMAGEFNSP IMAGEOBJCREATE IMAGEOBJP IMAGEOBJPROP
|
||||
\IMAGEUSERPROP HPRINT.IMAGEOBJ COPYIMAGEOBJ READIMAGEOBJ WRITEIMAGEOBJ)
|
||||
(ADDVARS (HPRINTMACROS (IMAGEOBJ . WRITEIMAGEOBJ)))
|
||||
(GLOBALVARS (IMAGEOBJTYPES NIL)
|
||||
(IMAGEOBJGETFNS NIL)))
|
||||
(COMS (* ;
|
||||
"For encapsulating unknown-type IMAGEOBJs.")
|
||||
(FNS ENCAPSULATEDOBJ.BUTTONEVENTINFN ENCAPSULATEDOBJ.PUTFN ENCAPSULATEDOBJ.DISPLAYFN
|
||||
ENCAPSULATEDOBJ.IMAGEBOXFN ENCAPSULATEDIMAGEFNS)
|
||||
(INITVARS ENCAPSULATEDIMAGEFNS)
|
||||
(GLOBALVARS ENCAPSULATEDIMAGEFNS))
|
||||
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA)
|
||||
(NLAML)
|
||||
(LAMA IMAGEOBJPROP])
|
||||
|
||||
|
||||
|
||||
@@ -40,35 +40,35 @@ Copyright (c) 1986, 1987, 1990, 1991, 1993 by Venue & Xerox Corporation. All ri
|
||||
(DECLARE%: EVAL@COMPILE
|
||||
|
||||
(DATATYPE IMAGEOBJ (OBJECTDATUM IMAGEOBJPLIST IMAGEOBJFNS)
|
||||
(SYSTEM))
|
||||
(SYSTEM))
|
||||
|
||||
(DATATYPE IMAGEFNS (DISPLAYFN (* ;
|
||||
"FN called to display the object's image")
|
||||
IMAGEBOXFN (* ; "To tell how big it is")
|
||||
PUTFN (* ; "To write it onto a file")
|
||||
GETFN (* ; "To read it back from the file")
|
||||
COPYFN (* ; "To make a copy of the object")
|
||||
BUTTONEVENTINFN (* ;
|
||||
"Called when the mouse goes down over the object")
|
||||
COPYBUTTONEVENTINFN (* ;
|
||||
"Called when the MIDDLE mouse button goes down over the object")
|
||||
WHENMOVEDFN (* ;
|
||||
"Called when the object is moved within a document or other environment")
|
||||
WHENINSERTEDFN (* ;
|
||||
"Called when the object is inserted into a context")
|
||||
WHENDELETEDFN (* ;
|
||||
"Called when the object is removed from a context")
|
||||
WHENCOPIEDFN (* ;
|
||||
"Called when the object is copied within a context")
|
||||
WHENOPERATEDONFN (* ;
|
||||
"Called when something interesting happens to the object")
|
||||
PREPRINTFN IMAGECLASSNAME (* ;
|
||||
"LITATOM unique name by which this kind of IMAGEOBJ is to be known to the world.")
|
||||
)
|
||||
(SYSTEM))
|
||||
(DATATYPE IMAGEFNS (DISPLAYFN (* ;
|
||||
"FN called to display the object's image")
|
||||
IMAGEBOXFN (* ; "To tell how big it is")
|
||||
PUTFN (* ; "To write it onto a file")
|
||||
GETFN (* ; "To read it back from the file")
|
||||
COPYFN (* ; "To make a copy of the object")
|
||||
BUTTONEVENTINFN (* ;
|
||||
"Called when the mouse goes down over the object")
|
||||
COPYBUTTONEVENTINFN (* ;
|
||||
"Called when the MIDDLE mouse button goes down over the object")
|
||||
WHENMOVEDFN (* ;
|
||||
"Called when the object is moved within a document or other environment")
|
||||
WHENINSERTEDFN (* ;
|
||||
"Called when the object is inserted into a context")
|
||||
WHENDELETEDFN (* ;
|
||||
"Called when the object is removed from a context")
|
||||
WHENCOPIEDFN (* ;
|
||||
"Called when the object is copied within a context")
|
||||
WHENOPERATEDONFN (* ;
|
||||
"Called when something interesting happens to the object")
|
||||
PREPRINTFN IMAGECLASSNAME (* ;
|
||||
"LITATOM unique name by which this kind of IMAGEOBJ is to be known to the world.")
|
||||
)
|
||||
(SYSTEM))
|
||||
|
||||
(RECORD IMAGEBOX (XSIZE YSIZE YDESC XKERN)
|
||||
(SYSTEM))
|
||||
(SYSTEM))
|
||||
)
|
||||
|
||||
(/DECLAREDATATYPE 'IMAGEOBJ '(POINTER POINTER POINTER)
|
||||
@@ -98,7 +98,11 @@ Copyright (c) 1986, 1987, 1990, 1991, 1993 by Venue & Xerox Corporation. All ri
|
||||
(DEFINEQ
|
||||
|
||||
(COPYINSERT
|
||||
[LAMBDA (IMAGEOBJ) (* ; "Edited 17-Sep-90 13:19 by jds")
|
||||
[LAMBDA (IMAGEOBJ)
|
||||
|
||||
(* ;; "Edited 20-Dec-2021 23:47 by rmk: IMAGEOBJ can now also be a list of objects in the COPYINSERTFN case")
|
||||
|
||||
(* ;; "Edited 17-Sep-90 13:19 by jds")
|
||||
|
||||
(* ;;; "inserts IMAGEOBJ into the window that currently has the tty. If this window has a COPYINSERTFN property, that is called, otherwise BKSYSBUF is called.")
|
||||
|
||||
@@ -106,22 +110,22 @@ Copyright (c) 1986, 1987, 1990, 1991, 1993 by Venue & Xerox Corporation. All ri
|
||||
INSERTFN)
|
||||
(COND
|
||||
((SETQ INSERTFN (WINDOWPROP TTYW 'COPYINSERTFN))
|
||||
(APPLY* INSERTFN IMAGEOBJ TTYW))
|
||||
(for IMOBJ inside IMAGEOBJ do (APPLY* INSERTFN IMOBJ TTYW)))
|
||||
(T (* ;
|
||||
"IMAGEOBJ can be a list of things too.")
|
||||
"IMAGEOBJ can be a list of things too.")
|
||||
(for IMOBJ inside IMAGEOBJ
|
||||
do (BKSYSBUF (OR (COND
|
||||
[(IMAGEOBJP IMOBJ)
|
||||
(COND
|
||||
((SETQ INSERTFN (IMAGEOBJPROP IMOBJ 'PREPRINTFN))
|
||||
(APPLY* INSERTFN IMOBJ))
|
||||
(T (IMAGEOBJPROP IMOBJ 'OBJECTDATUM]
|
||||
(T IMOBJ))
|
||||
"")
|
||||
T
|
||||
(PROCESS.EVAL (TTY.PROCESS)
|
||||
'(GETREADTABLE)
|
||||
T])
|
||||
[(IMAGEOBJP IMOBJ)
|
||||
(COND
|
||||
((SETQ INSERTFN (IMAGEOBJPROP IMOBJ 'PREPRINTFN))
|
||||
(APPLY* INSERTFN IMOBJ))
|
||||
(T (IMAGEOBJPROP IMOBJ 'OBJECTDATUM]
|
||||
(T IMOBJ))
|
||||
"")
|
||||
T
|
||||
(PROCESS.EVAL (TTY.PROCESS)
|
||||
'(GETREADTABLE)
|
||||
T])
|
||||
|
||||
(IMAGEBOX
|
||||
[LAMBDA (OBJ STREAM MODE) (* jds " 8-Feb-84 10:48")
|
||||
@@ -527,11 +531,11 @@ Either delete this image object or load its support files." IMAGEOBJ)
|
||||
)
|
||||
(PUTPROPS WINDOWOBJ COPYRIGHT ("Venue & Xerox Corporation" 1986 1987 1990 1991 1993))
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (5088 21106 (COPYINSERT 5098 . 6542) (IMAGEBOX 6544 . 6724) (IMAGEFNSCREATE 6726 . 7921)
|
||||
(IMAGEFNSP 7923 . 8164) (IMAGEOBJCREATE 8166 . 8711) (IMAGEOBJP 8713 . 8954) (IMAGEOBJPROP 8956 .
|
||||
14848) (\IMAGEUSERPROP 14850 . 15444) (HPRINT.IMAGEOBJ 15446 . 16035) (COPYIMAGEOBJ 16037 . 16780) (
|
||||
READIMAGEOBJ 16782 . 19752) (WRITEIMAGEOBJ 19754 . 21104)) (21320 27527 (
|
||||
ENCAPSULATEDOBJ.BUTTONEVENTINFN 21330 . 22466) (ENCAPSULATEDOBJ.PUTFN 22468 . 23583) (
|
||||
ENCAPSULATEDOBJ.DISPLAYFN 23585 . 25198) (ENCAPSULATEDOBJ.IMAGEBOXFN 25200 . 26088) (
|
||||
ENCAPSULATEDIMAGEFNS 26090 . 27525)))))
|
||||
(FILEMAP (NIL (4895 20996 (COPYINSERT 4905 . 6432) (IMAGEBOX 6434 . 6614) (IMAGEFNSCREATE 6616 . 7811)
|
||||
(IMAGEFNSP 7813 . 8054) (IMAGEOBJCREATE 8056 . 8601) (IMAGEOBJP 8603 . 8844) (IMAGEOBJPROP 8846 .
|
||||
14738) (\IMAGEUSERPROP 14740 . 15334) (HPRINT.IMAGEOBJ 15336 . 15925) (COPYIMAGEOBJ 15927 . 16670) (
|
||||
READIMAGEOBJ 16672 . 19642) (WRITEIMAGEOBJ 19644 . 20994)) (21210 27417 (
|
||||
ENCAPSULATEDOBJ.BUTTONEVENTINFN 21220 . 22356) (ENCAPSULATEDOBJ.PUTFN 22358 . 23473) (
|
||||
ENCAPSULATEDOBJ.DISPLAYFN 23475 . 25088) (ENCAPSULATEDOBJ.IMAGEBOXFN 25090 . 25978) (
|
||||
ENCAPSULATEDIMAGEFNS 25980 . 27415)))))
|
||||
STOP
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user