(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP")
(FILECREATED " 9-Sep-88 12:35:44" {DSK}<LISPFILES2>SYSTEM>MSPATCH.;5 5029   

      changes to%:  (VARS MSPATCHCOMS) (RECORDS MSANALYZABLE MSSETPHRASE) (FNS MSEDITF MSSHOWUSE PatchCCode)

      previous date%: " 9-Sep-88 11:57:36" {DSK}<LISPFILES2>SYSTEM>MSPATCH.;4)


(* "
Copyright (c) 1988 by Savoir, Inc..  All rights reserved.
")

(PRETTYCOMPRINT MSPATCHCOMS)

(RPAQQ MSPATCHCOMS ((RECORDS MSANALYZABLE MSSETPHRASE) (FNS MSEDITF MSSHOWUSE PatchCCode) (P (PatchCCode (QUOTE \MASTERSCOPEBLOCK/MSINTERPRET) 530 (QUOTE (104)) (QUOTE (105 104)))) (PROP FILETYPE MSPATCH) (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) (NLAML) (LAMA PatchCCode)))))
(DECLARE%: EVAL@COMPILE

(RECORD MSANALYZABLE (FILEPKGNAME SETNAME GETDEF-FN MARKCHANGED-FN))

(RECORD MSSETPHRASE (DET (TYPE KNOWN . DEFAULTTYPE) . REP) (TYPE? (EQLENGTH (CADR DATUM) 2)))
)
(DEFINEQ

(MSEDITF
(LAMBDA ARGCOUNT (* ; "Edited  9-Sep-88 12:24 by TAL") (LET ((FNAME (ARG ARGCOUNT 1)) (FEDITCOMS (for X from 2 to ARGCOUNT collect (ARG ARGCOUNT X)))) (DECLARE (SPECVARS MSFNTYPES)) (for FPTYPE in MSFNTYPES bind FPNAME when (HASDEF FNAME (SETQ FPNAME (ffetch (MSANALYZABLE FILEPKGNAME) of FPTYPE))) do (if (EQ FPTYPE (QUOTE FNS)) then (APPLY (QUOTE EDITF) (CONS FNAME FEDITCOMS)) else (EDITE (GETDEF FNAME FPNAME NIL (QUOTE (NOERROR NOCOPY EDIT))) FEDITCOMS FNAME FPNAME (FUNCTION (LAMBDA (NAME DEF TYPE EXITFLG) (* ; "this function is called when there were changes made") (MARKASCHANGED NAME TYPE (QUOTE CHANGED)) (PUTDEF NAME TYPE DEF))))) (RETURN FNAME))))
)

(MSSHOWUSE
(LAMBDA (SHOWFN SHOWTYPE SHOWSET SHOWEDIT IFCANT EDITCOMS) (* ; "Edited  9-Sep-88 11:51 by TAL") (PROG (DEF ANYFOUND) (DECLARE (LOCALVARS . T) (SPECVARS DEF ANYFOUND SHOWFN)) (COND ((SETQ DEF (OR (MSGETDEF SHOWFN (AND (fetch (MSSETPHRASE KNOWN) of SHOWSET) (fetch (MSSETPHRASE TYPE) of SHOWSET)) (COND ((EQ SHOWEDIT (QUOTE SHOW)) (QUOTE ?)) (T (QUOTE CURRENT))) (QUOTE (NOERROR NODWIM NOCOPY))) (AND (EQ SHOWEDIT (QUOTE EDIT)) (LET ((FILE (EDITLOADFNS? SHOWFN))) (COND (FILE (LOADFNS SHOWFN FILE (QUOTE PROP)) (GETPROP SHOWFN (QUOTE EXPR)))))))) (* ; "was (MSGETDEF SHOWFN IFCANT (EQ SHOWEDIT (QUOTE SHOW)))") (* ; "The SHOW command does not need to save") (\MASTERSCOPEBLOCK/MSUPDATEFN1 SHOWFN DEF (LIST SHOWTYPE (FUNCTION (LAMBDA (ITEM SS SE PRNT INCLISP) (COND ((MSMEMBSET ITEM SS) (COND ((NOT ANYFOUND) (TAB 0 0 T) (PRIN2 SHOWFN) (PRIN1 " :
"))) (SETQ ANYFOUND (CONS (CONS PRNT (AND INCLISP (NOT (MSFIND INCLISP PRNT)) INCLISP)) ANYFOUND)) (COND ((AND (EQ SE (QUOTE SHOW)) (NOT (FASSOC PRNT (CDR ANYFOUND)))) (* ;; "The EDIT command works by collecting a list of the expressions, and then doing a (*ORF* (=  . lst1) (=  . lst2)) --- if within a CLISP translation (determined by the binding of the INCLISP variable) then want to point at the CLISP if the expression is not actually embedded in the expression") (SPACES 3) (LVLPRINT PRNT (OUTPUT) 2) (COND ((CDAR ANYFOUND) (* ; "This is under a clisp") (PRIN1 "   {under ") (LVLPRIN2 INCLISP (OUTPUT) 2) (PRIN1 "}
"))))))))) SHOWSET SHOWEDIT))) (T (printout T "Can't find a definition for " SHOWFN "!" T) (RETURN))) (COND ((NOT ANYFOUND) (RETURN)) ((EQ SHOWEDIT (QUOTE EDIT)) (MAPC ANYFOUND (FUNCTION (LAMBDA (X) (* ;; "Definer definitions get copied, so == pattern loses.") (* ;; "(FRPLNODE X (QUOTE ==) (OR (CDR X) (CAR X)))") (FRPLNODE2 X (OR (CDR X) (CAR X)))))) (SETQ ANYFOUND (CONS (QUOTE *ANY*) ANYFOUND)) (PRINT (APPLY* (QUOTE MSEDITF) SHOWFN (LIST (QUOTE BIND) (QUOTE (E (SETQ %#1) T)) (LIST (QUOTE F) ANYFOUND T) (LIST (QUOTE LPQ) (LIST (QUOTE IF) (QUOTE (NEQ (%##) %#1)) (LIST (QUOTE (ORR (P) NIL)) (QUOTE (S %#1)) (COND (EDITCOMS (CONS (QUOTE BIND) EDITCOMS)) (T (QUOTE TTY%:)))) NIL) (LIST (QUOTE F) ANYFOUND (QUOTE N))))) T T))) (RETURN T)))
)

(PatchCCode
(CL:LAMBDA (Fn Offset NewBytes &OPTIONAL OldBytes) (* ; "Edited  7-Sep-88 15:24 by TAL") (LET ((tmp (GETD Fn))) (COND ((AND (CCODEP tmp) (SETQ tmp (\GETBASEPTR tmp 0)) (for off from Offset as x inside OldBytes always (EQ (\GETBASEBYTE tmp off) x))) (for off from Offset as x inside NewBytes do (\PUTBASEBYTE tmp off x)) T))))
)
)

(PatchCCode (QUOTE \MASTERSCOPEBLOCK/MSINTERPRET) 530 (QUOTE (104)) (QUOTE (105 104)))

(PUTPROPS MSPATCH FILETYPE :COMPILE-FILE)
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS 

(ADDTOVAR NLAMA)

(ADDTOVAR NLAML)

(ADDTOVAR LAMA PatchCCode)
)
(PRETTYCOMPRINT MSPATCHCOMS)

(RPAQQ MSPATCHCOMS ((RECORDS MSANALYZABLE MSSETPHRASE) (FNS MSEDITF MSSHOWUSE PatchCCode) (P (PatchCCode (QUOTE \MASTERSCOPEBLOCK/MSINTERPRET) 530 (QUOTE (104)) (QUOTE (105 104)))) (PROP FILETYPE MSPATCH) (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) (NLAML) (LAMA PatchCCode MSEDITF)))))
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS 

(ADDTOVAR NLAMA)

(ADDTOVAR NLAML)

(ADDTOVAR LAMA PatchCCode MSEDITF)
)
(PUTPROPS MSPATCH COPYRIGHT ("Savoir, Inc." 1988))
(DECLARE%: DONTCOPY
  (FILEMAP (NIL (948 4206 (MSEDITF 958 . 1633) (MSSHOWUSE 1635 . 3859) (PatchCCode 3861 . 4204)))))
STOP
