(FILECREATED "30-Aug-85 16:14:08" {DSK}<LISPFILES>MATT>INSPECTCODE-TEDIT.;15 14984 changes to: (FNS \INSPECTCODE.WITH.TEDIT.TITLEMENUFN \INSPECTCODE.WITH.TEDIT.BUILD.TITLEMENU INSPECTCODE.WITH.TEDIT) (VARS INSPECTCODE-TEDITCOMS) (LISPXMACROS IC) previous date: "30-Aug-85 09:47:28" {DSK}<LISPFILES>MATT>INSPECTCODE-TEDIT.;14) (* Copyright (c) 1985 by Beckman Instruments, Inc.. All rights reserved.) (PRETTYCOMPRINT INSPECTCODE-TEDITCOMS) (RPAQQ INSPECTCODE-TEDITCOMS ((FNS INSPECTCODE.WITH.TEDIT \INSPECTCODE.WITH.TEDIT.BUILD.TITLEMENU \INSPECTCODE.WITH.TEDIT.CHARFN \INSPECTCODE.WITH.TEDIT.ICONFN \INSPECTCODE.WITH.TEDIT.INSP.ERROR \INSPECTCODE.WITH.TEDIT.NOSELFN \INSPECTCODE.WITH.TEDIT.TITLEMENUFN) (UGLYVARS \INSPECTCODE.WITH.TEDIT.ICON.TEMPLATE) (LISPXMACROS IC) [P (if (MOVD? (QUOTE INSPECTCODE) (QUOTE \ORIGINAL.INSPECTCODE)) then (MOVD (QUOTE INSPECTCODE.WITH.TEDIT) (QUOTE INSPECTCODE] (PROP FILETYPE INSPECTCODE-TEDIT))) (DEFINEQ (INSPECTCODE.WITH.TEDIT [LAMBDA (FN WHERE) (* mth: "30-Aug-85 09:23") (if (CCODEP FN) then (if (FGETD (QUOTE TEDIT)) then (LET [(WINDOW (DECODE.WINDOW.ARG WHERE 50*(CHARWIDTH (CHARCODE A) (DSPFONT NIL NIL)) 25*(ABS (DSPLINEFEED NIL NIL)) (CONCAT FN " Code Window"))) (OFILE (OPENSTREAM (QUOTE {NODIRCORE}) (QUOTE BOTH) (QUOTE NEW] (WINDOWPROP WINDOW (QUOTE FNNAME) FN) (PRINTCODE FN NIL 8 OFILE) (TEDIT OFILE WINDOW NIL (QUOTE (QUITFN T TITLEMENUFN \INSPECTCODE.WITH.TEDIT.TITLEMENUFN CHARFN \INSPECTCODE.WITH.TEDIT.CHARFN NOTITLE T PROMPTWINDOW DON'T))) [WINDOWADDPROP WINDOW (QUOTE CLOSEFN) (FUNCTION (LAMBDA (W) (DEL.PROCESS (WINDOWPROP W (QUOTE PROCESS] (WINDOWPROP WINDOW (QUOTE ICONFN) (FUNCTION \INSPECTCODE.WITH.TEDIT.ICONFN))) else (\ORIGINAL.INSPECTCODE FN WHERE)) FN else (CLRPROMPT) (PROMPTPRINT FN " not compiled code") (RINGBELLS) NIL]) (\INSPECTCODE.WITH.TEDIT.BUILD.TITLEMENU [LAMBDA NIL (* mth: "30-Aug-85 15:49") (DECLARE (GLOBALVARS \INSPECTCODE.WITH.TEDIT.TITLEMENU)) \INSPECTCODE.WITH.TEDIT.TITLEMENU←(create MENU ITEMS ←(QUOTE ((GraphCalls (QUOTE GC) "Invoke GRAPHCALLS on the current selection") (InspectCode (QUOTE IC) "INSPECTCODE the current selection") (Inspect (QUOTE INSP) "INSPECT the current selection" (SUBITEMS (Freely (QUOTE INSP) "INSPECT the free-reference value of the selection") (Globally (QUOTE INSP.GLOB) "INSPECT the Global (Top Level) value of the selection") ("In Process Context" (QUOTE INSP.PROC) "INSPECT the value of the selection in a process' context"))) ("Pretty Print Value" (QUOTE PPV) "Pretty Print the value of the current selection" (SUBITEMS (Freely (QUOTE PPV) "Pretty Print the free-reference value of the selection") (Globally (QUOTE PPV.GLOB) "Pretty Print the Global (Top Level) value of the selection") ("In Process Context" (QUOTE PPV.PROC) "Pretty Print the value of the selection in a process' context"))) (Quit (QUOTE QUIT) "Terminates this INSPECTCODE"]) (\INSPECTCODE.WITH.TEDIT.CHARFN [LAMBDA (W CC) (* mth: "28-Aug-85 14:58") (BOUT T (CHARCODE ↑G)) NIL]) (\INSPECTCODE.WITH.TEDIT.ICONFN [LAMBDA (W) (* mth: "28-Aug-85 10:53") (DECLARE (GLOBALVARS \INSPECTCODE.WITH.TEDIT.ICON.TEMPLATE)) (LET ((ICON (TITLEDICONW \INSPECTCODE.WITH.TEDIT.ICON.TEMPLATE (WINDOWPROP W (QUOTE FNNAME)) (FONTCREATE (QUOTE HELVETICA) 8 (QUOTE MRR) NIL NIL T) NIL T))) (WINDOWPROP W (QUOTE ICON) ICON) ICON]) (\INSPECTCODE.WITH.TEDIT.INSP.ERROR [LAMBDA (MESS1 MESS2 MESS3) (* mth: "29-Aug-85 11:26") (CLRPROMPT) (if ~MESS2 then (PROMPTPRINT MESS1) elseif ~MESS3 then (PROMPTPRINT MESS1 MESS2) else (PROMPTPRINT MESS1 MESS2 MESS3)) (RINGBELLS]) (\INSPECTCODE.WITH.TEDIT.NOSELFN [LAMBDA NIL (* mth: "29-Aug-85 09:36") (CLRPROMPT) (PROMPTPRINT "No current selection") (RINGBELLS]) (\INSPECTCODE.WITH.TEDIT.TITLEMENUFN [LAMBDA (W) (* mth: "30-Aug-85 16:11") (DECLARE (GLOBALVARS \INSPECTCODE.WITH.TEDIT.TITLEMENU)) (if ~(BOUNDP (QUOTE \INSPECTCODE.WITH.TEDIT.TITLEMENU)) or ~(type? MENU \INSPECTCODE.WITH.TEDIT.TITLEMENU) then (\INSPECTCODE.WITH.TEDIT.BUILD.TITLEMENU)) [LET* ((STREAM (TEXTSTREAM W)) (SELLEN (TEDIT.GETSEL STREAM):SELECTION.DCH) (MENUCHOICE (MENU \INSPECTCODE.WITH.TEDIT.TITLEMENU)) SELSTR INSPVAL) (if ~MENUCHOICE then (* Nothing to do, clicked out of menu) elseif MENUCHOICE=(QUOTE QUIT) then (TEDIT.QUIT STREAM) else (if SELLEN=0 then (\INSPECTCODE.WITH.TEDIT.NOSELFN) elseif SELLEN gt 255 then (\INSPECTCODE.WITH.TEDIT.INSP.ERROR "Selection is too long (> 255 characters)") (TEDIT.SHOWSEL STREAM NIL NIL) (TEDIT.SETSEL STREAM 0 0 (QUOTE LEFT)) else SELSTR←(PACK* (TEDIT.SEL.AS.STRING STREAM NIL))) (SELECTQ MENUCHOICE (IC (INSPECTCODE.WITH.TEDIT SELSTR)) (GC (if (FGETD (QUOTE GRAPHCALLSW)) then (GRAPHCALLS SELSTR) else (\INSPECTCODE.WITH.TEDIT.INSP.ERROR "The GRAPHCALLS package is not loaded. Cannot graph " SELSTR))) ((INSP PPV) (if (BOUNDP SELSTR) then (if MENUCHOICE=(QUOTE PPV) then (printout (CREATEW (PROG2 (PROMPTPRINT "Specify a region for the value pretty print window") (GETREGION (WIDTHIFWINDOW 72) (HEIGHTIFWINDOW 72 T)) (CLRPROMPT)) SELSTR) .PPV (EVAL SELSTR)) else (INSPECT (EVAL SELSTR))) else (\INSPECTCODE.WITH.TEDIT.INSP.ERROR SELSTR " has no value to inspect")) ) [(INSP.GLOB PPV.GLOB) (if INSPVAL←(GETTOPVAL SELSTR) ~=(QUOTE NOBIND) then (if MENUCHOICE=(QUOTE PPV.GLOB) then (printout (CREATEW (PROG2 (PROMPTPRINT "Specify a region for the value pretty print window") (GETREGION (WIDTHIFWINDOW 72) (HEIGHTIFWINDOW 72 T)) (CLRPROMPT)) SELSTR) .PPV INSPVAL) else (INSPECT INSPVAL)) else (\INSPECTCODE.WITH.TEDIT.INSP.ERROR SELSTR (if MENUCHOICE=(QUOTE PPV.GLOB) then " has no Global value to print" else " has no Global value to inspect"] [(INSP.PROC PPV.PROC) (LET (PROCESSLIST PROC) (DECLARE (SPECVARS PROCESSLIST)) [MAP.PROCESSES (FUNCTION (LAMBDA (PHANDLE PNAME PFORM) (DECLARE (SPECVARS PROCESSLIST)) (push PROCESSLIST (<PNAME PHANDLE>] PROC←(MENU (create MENU ITEMS ← PROCESSLIST CENTERFLG ← T)) (if PROC then [if INSPVAL←(PROCESS.EVALV PROC SELSTR) ~=(QUOTE NOBIND) then (if MENUCHOICE=(QUOTE PPV.PROC) then (printout (CREATEW (PROG2 (PROMPTPRINT "Specify a region for the value pretty print window") (GETREGION (WIDTHIFWINDOW 72) (HEIGHTIFWINDOW 72 T)) (CLRPROMPT)) SELSTR) .PPV INSPVAL) else (INSPECT INSPVAL)) else (\INSPECTCODE.WITH.TEDIT.INSP.ERROR SELSTR (if MENUCHOICE=(QUOTE PPV.PROC) then " has no value to print in process " else " has no value to inspect in process ") (PROCESSPROP PROC (QUOTE NAME] else (\INSPECTCODE.WITH.TEDIT.INSP.ERROR (if MENUCHOICE=(QUOTE PPV.PROC) then "No process selected. Will not print " else "No process selected. Will not inspect ") SELSTR] (PROGN (* Shouldn't happen, but ignore it.)] NIL]) ) (READVARS \INSPECTCODE.WITH.TEDIT.ICON.TEMPLATE) (({(READBITMAP)(87 91 "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@COO@@@@@F@@" "L@@@@@@@@@@@AOOON@@@@F@@" "L@@@@@@@@@@@GN@AOH@@@F@@" "L@@@@@@@@@@AO@@@CN@@@F@@" "L@@@@@@@@@@CL@@@@O@@@F@@" "L@@@@@@@@@@O@@@@@CL@@F@@" "L@@@@@@@@@AN@@@@@AN@@F@@" "L@@@@@@@@@CH@@@@@@G@@F@@" "L@@@@@@@@@C@@@@@@@C@@F@@" "L@@@@@@@@@G@@@@@@@CH@F@@" "L@@@@@@@@@N@@@@@@@AL@F@@" "L@@@@@@@@@L@@@@@@@@L@F@@" "L@@@@@@@@AL@@@@@@@@N@F@@" "L@@@@@@@@AH@@@@@@@@F@F@@" "L@@@@@@@@CH@@@@@@@@G@F@@" "L@@@@@@@@C@@@@@@@@@C@F@@" "L@@@@@@@@C@@@@@@@@@C@F@@" "L@@@@@@@@GGL@OHGO@OOHF@@" "L@@@@@@@@GLFCHNFALLAHF@@" "L@@@@@@@@GHCC@FF@LLAHF@@" "L@@@@@@@@G@@F@CF@FLAHF@@" "LBIGKMLNOO@@F@CF@FOOHF@@" "LBMDBEA@BG@@F@CF@FLAHF@@" "LBOGKMM@BG@@F@CF@FLAHF@@" "LBK@JAA@BGHCC@FF@LLAHF@@" "LBIGJALNBGLFCHNFALLAHF@@" "L@@@@@@@@GGL@OHGO@OOHF@@" "L@@@@@@@@C@@@@@@@@@C@F@@" "L@@@@@@@@C@@@@@@@@@C@F@@" "L@@@@@@@@CH@@@@@@@@G@F@@" "L@@@@@@@@AH@@@@@@@@F@F@@" "L@@@@@@@@AL@@@@@@@@N@F@@" "L@@@@@@@@@L@@@@@@@@L@F@@" "L@@@@@@@@@N@@@@@@@AL@F@@" "L@@@@@@@@@G@@@@@@@CH@F@@" "L@@@@@@@@@G@@@@@@@C@@F@@" "L@@@@@@@@@OL@@@@@@G@@F@@" "L@@@@@@@@@ON@@@@@AN@@F@@" "L@@@@@@@@AGO@@@@@CL@@F@@" "L@@@@@@@@CKCL@@@@O@@@F@@" "L@@@@@@@@GLAO@@@CN@@@F@@" "L@@@@@@@@OH@GN@AOH@@@F@@" "L@@@@@@@AO@@AOOON@@@@F@@" "L@@@@@@@FN@@@COO@@@@@F@@" "L@@@@@@@OD@@@@@@@@@@@F@@" "L@@@@@@AOH@@@@@@@@@@@F@@" "L@@@@@@COH@@@@@@@@@@@F@@" "L@@@@@@GO@@@@@@@@@@@@F@@" "L@@@@@@ON@@@@@@@@@@@@F@@" "L@@@@@AOL@@@@@@@@@@@@F@@" "L@@@@@COH@@@@@@@@@@@@F@@" "L@@@@@GO@@@@@@@@@@@@@F@@" "L@@@@@ON@@@@@@@@@@@@@F@@" "L@@@@AOL@@@@@@@@@@@@@F@@" "L@@@@COH@@@@@@@@@@@@@F@@" "L@@@@GO@@@@@@@@@@@@@@F@@" "L@@@@ON@@@@@@@@@@@@@@F@@" "L@@@AOL@@@@@@@@@@@@@@F@@" "L@@@COH@@@@@@@@@@@@@@F@@" "L@@@GO@@@@@@@@@@@@@@@F@@" "L@@@GN@@@@@@@@@@@@@@@F@@" "L@@@CL@@@@@@@@@@@@@@@F@@" "L@@@AH@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "L@@@@@@@@@@@@@@@@@@@@F@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@")} {(READBITMAP)(87 91 "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@" "OOOOOOOOOOOOOOOOOOOOON@@")} (4 5 79 18))) (ADDTOVAR LISPXMACROS (IC (APPLY (QUOTE INSPECTCODE) LISPXLINE))) (if (MOVD? (QUOTE INSPECTCODE) (QUOTE \ORIGINAL.INSPECTCODE)) then (MOVD (QUOTE INSPECTCODE.WITH.TEDIT) (QUOTE INSPECTCODE))) (PUTPROPS INSPECTCODE-TEDIT FILETYPE CLISP) (PUTPROPS INSPECTCODE-TEDIT COPYRIGHT ("Beckman Instruments, Inc." 1985)) (DECLARE: DONTCOPY (FILEMAP (NIL (1072 9597 (INSPECTCODE.WITH.TEDIT 1082 . 2314) (\INSPECTCODE.WITH.TEDIT.BUILD.TITLEMENU 2316 . 3937) (\INSPECTCODE.WITH.TEDIT.CHARFN 3939 . 4111) (\INSPECTCODE.WITH.TEDIT.ICONFN 4113 . 4596 ) (\INSPECTCODE.WITH.TEDIT.INSP.ERROR 4598 . 4939) (\INSPECTCODE.WITH.TEDIT.NOSELFN 4941 . 5155) ( \INSPECTCODE.WITH.TEDIT.TITLEMENUFN 5157 . 9595))))) STOP