(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) (FILECREATED " 6-Jul-94 01:22:17" ("compiled on " {DSK}lispusers>tedit-process-killer.;1) " 2-Jun-94 10:43:09" bcompl'd in "Medley 2-Jun-94 ..." dated " 2-Jun-94 10:52:50") (FILECREATED " 9-Mar-89 15:01:15" {ERINYES}MEDLEY>TEDIT-PROCESS-KILLER.;2 16040 changes to%: (FNS MAKE-NEW-TEDIT-PROCESS) previous date%: " 2-Feb-88 14:21:07" {ERINYES}MEDLEY>TEDIT-PROCESS-KILLER.;1) START-TEDIT-KILLER :D8 NIL 0j ogg (45 ADD.PROCESS 20 ALL-TEDIT-PROCESSES 10 CLOCK 4 STOP-TEDIT-KILLER) (40 HARDRESET 35 RESTARTABLE 25 TEDIT-PROCESSES 15 TEDIT-CREATION-TIME) ( 30 (TEDIT-KILLER)) STOP-TEDIT-KILLER :D8 (P 1 P) >`HhYg gI I HX(53 BLOCK 47 PROCESSP 40 DEL.PROCESS 25 PROCESSPROP) (31 TEDIT-KILLER 20 FORM 4 \PROCESSES) () KILL-PROCESS-OF-TEDIT-WINDOW :D8 (I 0 WINDOW) @ (10 KILL-PROCESS-OF-TEDIT-WINDOW1 5 MAINWINDOW) NIL () RESTART-PROCESS-OF-TEDIT-WINDOW :D8 (I 0 WINDOW) @ @ . (28 TTY.PROCESS 21 \INSUREWINDOW 16 MAINWINDOW 10 RESTART-PROCESS-OF-TEDIT-WINDOW1 5 MAINWINDOW) NIL () WITHOUT-TEDIT-PROCESS :D8 (I 0 WINDOW) @ g(5 WITHOUT-PROCESS) (10 TEDIT) () TEDIT-KILLER :D8 (P 5 P P 0 TO-KILL) j` ``j ``AI)J `ٸ` L!] MK Lh[IYL&Hj`MM M HkٸL\(150 KILL-TEDIT-PROCESS 143 PROCESSP 100 TEDIT-PROCESS-P 83 REVERSE 66 LENGTH 32 CLOCK 13 DISMISS) (133 \TTY.PROCESS 78 TEDIT-PROCESSES 71 TEDIT-PROCESS-LIMIT 61 TEDIT-PROCESSES 47 TEDIT-PROCESSES 37 TEDIT-CREATION-TIME 26 TEDIT-KILLER-WAIT-TIME 19 TEDIT-PROCESSES 8 TEDIT-KILLER-WAIT-TIME) () \TEDIT.BUTTONEVENTFN-BEFORE-ADVICE :D8 (P 1 PROCESS P 0 TEXTOBJ I 0 W) @ @ .HI `lj|H :jjg ^g Rg Fl`ljjkj1l@`l jjkj@ Yd`I I I`Id` h(201 DREMOVE 177 PROCESSP 170 TTY.PROCESS 151 MAKE-NEW-TEDIT-PROCESS 101 SHIFTDOWNP 89 SHIFTDOWNP 77 SHIFTDOWNP 55 TEXTOBJ 36 GETMOUSESTATE 27 PROCESSP 11 \INSUREWINDOW 5 TEXTOBJ) (207 TEDIT-PROCESSES 196 TEDIT-PROCESSES 185 TEDIT-PROCESSES 164 TEDIT-PROCESSES 158 TEDIT-PROCESSES 131 \LASTKEYSTATE 110 \LASTKEYSTATE 96 META 84 CTRL 72 SHIFT 60 TEXTOBJ 42 LASTMOUSEBUTTONS) () MARK-AS-WITHOUT-PROCESS :D8 (I 1 PROCESS-TYPE I 0 WINDOW) @gA (11 PUTWINDOWPROP) (5 WITHOUT-PROCESS) () UNMARK-AS-WITHOUT-PROCESS :D8 (I 0 WINDOW) @gh (11 PUTWINDOWPROP) (5 WITHOUT-PROCESS) () WITHOUT-PROCESS :D8 (I 0 WINDOW) @g (10 GETWINDOWUSERPROP) (5 WITHOUT-PROCESS) () ALL-TEDIT-PROCESSES :D8 (P 4 P) +`AHI\ LJ KhZHXK&(20 TEDIT-PROCESS-P) (4 \PROCESSES) () TEDIT-PROCESS-P :D8 (I 0 PROCESS) 5@ -o@g k@g g(43 PROCESSPROP 28 STRPOS 23 PROCESSPROP 5 PROCESSP) (49 \TEDIT2 38 FORM 18 NAME) ( 12 "TEdit") KILL-PROCESS-OF-TEDIT-WINDOW1 :D8 (P 1 W P 0 PROCESS I 0 WINDOW) 3@ .H H @ dI h(42 KILL-PROCESS-OF-TEDIT-WINDOW1 30 ATTACHEDWINDOWS 23 KILL-TEDIT-PROCESS 16 TEDIT-PROCESS-P 5 \INSUREWINDOW) NIL () KILL-TEDIT-PROCESS :D8 (P 2 \INTERRUPTABLE P 1 TEXTOBJ P 0 WINDOW I 0 PROCESS) @g Hg H Id>HgIH HgI, HgIJ Hg@g Hg@g Hg@g Hg@g Hg @ h(221 DEL.PROCESS 215 MARK-AS-WITHOUT-PROCESS 201 PUTWINDOWPROP 196 PROCESSPROP 179 PUTWINDOWPROP 174 PROCESSPROP 157 PUTWINDOWPROP 152 PROCESSPROP 135 PUTWINDOWPROP 130 PROCESSPROP 113 PUTWINDOWPROP 94 PUTWINDOWPROP 75 PUTWINDOWPROP 33 WINDOWP 24 GETWINDOWUSERPROP 10 PROCESSPROP) (210 TEDIT 191 NAME 185 SAVEDPROCNAME 169 RESTARTABLE 163 SAVEDRESTARTABLE 147 RESTARTFORM 141 SAVEDRESTARTFORM 125 FORM 119 SAVEDPROCFORM 106 TEXTOBJ 100 SELWINDOW 87 TEXTOBJ 81 TXTFILE 68 TEXTOBJ 62 TXTHISTORY 50 TEXTOBJ 19 TEXTOBJ 5 WINDOW) () MAKE-NEW-TEDIT-PROCESS :D8 (P 6 POS P 5 PROCNAME P 4 \INTERRUPTABLE P 3 SAVEDPROCFORM P 2 PROCESS P 1 TXTFILE P 0 TEXTOBJ I 0 WINDOW) @ @g "H@g HH@g JI@g [Kg@g oM MkNdk Mg@g g@g @ Jg@ @gJ Jo fHI gg ,E(248 OPENSTREAM 233 FULLNAME 217 STREQUAL 205 PUTWINDOWPROP 192 PROCESSPROP 179 TEDIT-KILLER-CLEANUP 172 ADD.PROCESS 166 GETWINDOWUSERPROP 150 GETWINDOWUSERPROP 129 SUBSTRING 114 STRPOS 100 GETWINDOWUSERPROP 75 GETWINDOWUSERPROP 55 GETWINDOWUSERPROP 36 GETWINDOWUSERPROP 16 GETWINDOWUSERPROP 5 TEXTOBJ) (243 OLD 238 INPUT 227 TEXTOBJ 199 PROCESS 186 WINDOW 161 SAVEDRESTARTFORM 155 RESTARTFORM 145 SAVEDRESTARTABLE 139 RESTARTABLE 95 SAVEDPROCNAME 89 NAME 70 SAVEDPROCFORM 50 SELWINDOW 44 TEXTOBJ 31 TXTHISTORY 25 TEXTOBJ 11 TXTFILE) ( 212 "" 108 "#") RESTART-PROCESS-OF-TEDIT-WINDOW1 :D8 (P 0 W I 0 WINDOW) (@ @ @ dH h(31 RESTART-PROCESS-OF-TEDIT-WINDOW1 19 ATTACHEDWINDOWS 12 MAKE-NEW-TEDIT-PROCESS 5 WITHOUT-TEDIT-PROCESS) NIL () TEDIT-KILLER-CLEANUP :D8 (I 0 WINDOW) \@gh @gh @gh @gh @gh @gh @gh @ (89 UNMARK-AS-WITHOUT-PROCESS 83 PUTWINDOWPROP 71 PUTWINDOWPROP 59 PUTWINDOWPROP 47 PUTWINDOWPROP 35 PUTWINDOWPROP 23 PUTWINDOWPROP 11 PUTWINDOWPROP) (77 SAVEDRESTARTFORM 65 SAVEDRESTARTABLE 53 SAVEDPROCNAME 41 SAVEDPROCFORM 29 SELWINDOW 17 TXTFILE 5 TXTHISTORY) () (PRETTYCOMPRINT TEDIT-PROCESS-KILLERCOMS) (RPAQQ TEDIT-PROCESS-KILLERCOMS ((* ;; "This package provides various ways to kill tedit processes. Using START-TEDIT-KILLER, one can keep the total number of tedit processes under the threshold TEDIT-PROCESS-LIMIT. One can also call KILL-PROCESS-OF-TEDIT-WINDOW to kill the Tedit processes for a given window and its attached windows." ) (GLOBALVARS TEDIT-PROCESS-LIMIT TEDIT-KILLER-WAIT-TIME TEDIT-PROCESSES TEDIT-CREATION-TIME) (* ;;; "These two vars are advertised.") (INITVARS (TEDIT-PROCESS-LIMIT 5) (TEDIT-KILLER-WAIT-TIME 10000)) ( VARS (TEDIT-PROCESSES NIL) (TEDIT-CREATION-TIME NIL)) (* ;;; "Here are the advertised functions.") ( FNS START-TEDIT-KILLER STOP-TEDIT-KILLER KILL-PROCESS-OF-TEDIT-WINDOW RESTART-PROCESS-OF-TEDIT-WINDOW WITHOUT-TEDIT-PROCESS) (* ;;; "The rest of these are internal.") (FNS TEDIT-KILLER \TEDIT.BUTTONEVENTFN-BEFORE-ADVICE) (FNS MARK-AS-WITHOUT-PROCESS UNMARK-AS-WITHOUT-PROCESS WITHOUT-PROCESS) (FNS ALL-TEDIT-PROCESSES TEDIT-PROCESS-P KILL-PROCESS-OF-TEDIT-WINDOW1 KILL-TEDIT-PROCESS MAKE-NEW-TEDIT-PROCESS RESTART-PROCESS-OF-TEDIT-WINDOW1 TEDIT-KILLER-CLEANUP) (* ;;; "NOTE: this advising smashes whatever advice was previously on these functions!") (DECLARE%: DONTEVAL@LOAD DOCOPY (ADVISE \TEDIT.QUIT TEDIT \TEDIT.BUTTONEVENTFN (* ;; "PROCESS.APPLY advice is mainly for NoteCards - fixes a misuse of this function that makes it impossible to use monitors inside a TEdit menu fn." ) (PROCESS.APPLY :IN \TEDIT.BUTTONEVENTFN) (PROCESSP :IN TEDIT.DEACTIVATE.WINDOW) (PROCESSP :IN \TEDIT.ACTIVE.WINDOWP)) (P (START-TEDIT-KILLER))))) (RPAQ? TEDIT-PROCESS-LIMIT 5) (RPAQ? TEDIT-KILLER-WAIT-TIME 10000) (RPAQQ TEDIT-PROCESSES NIL) (RPAQQ TEDIT-CREATION-TIME NIL) (XCL:REINSTALL-ADVICE (QUOTE \TEDIT.QUIT) :AFTER (QUOTE ((:LAST (UNMARK-AS-WITHOUT-PROCESS W))))) (XCL:REINSTALL-ADVICE (QUOTE TEDIT) :BEFORE (QUOTE ((:LAST (SETQ TEDIT-CREATION-TIME (CLOCK 0))))) :AFTER (QUOTE ((:LAST (SETQ TEDIT-PROCESSES (CONS !VALUE TEDIT-PROCESSES)))))) (XCL:REINSTALL-ADVICE (QUOTE \TEDIT.BUTTONEVENTFN) :BEFORE (QUOTE ((:LAST ( \TEDIT.BUTTONEVENTFN-BEFORE-ADVICE W))))) (XCL:REINSTALL-ADVICE (QUOTE (PROCESS.APPLY :IN \TEDIT.BUTTONEVENTFN)) :AROUND (QUOTE ((:LAST ( ADD.PROCESS (LIST USERFN (KWOTE W))))))) (XCL:REINSTALL-ADVICE (QUOTE (PROCESSP :IN TEDIT.DEACTIVATE.WINDOW)) :AFTER (QUOTE ((:LAST (RETURN (OR !VALUE (WITHOUT-TEDIT-PROCESS (STKARG (QUOTE W) (QUOTE TEDIT.DEACTIVATE.WINDOW))))))))) (XCL:REINSTALL-ADVICE (QUOTE (PROCESSP :IN \TEDIT.ACTIVE.WINDOWP)) :AFTER (QUOTE ((:LAST (RETURN (OR !VALUE (WITHOUT-TEDIT-PROCESS (STKARG (QUOTE W) (QUOTE \TEDIT.ACTIVE.WINDOWP))))))))) (READVISE \TEDIT.QUIT TEDIT \TEDIT.BUTTONEVENTFN (PROCESS.APPLY :IN \TEDIT.BUTTONEVENTFN) (PROCESSP :IN TEDIT.DEACTIVATE.WINDOW) (PROCESSP :IN \TEDIT.ACTIVE.WINDOWP)) (START-TEDIT-KILLER) (PUTPROPS TEDIT-PROCESS-KILLER COPYRIGHT ("Xerox Corporation" 1987 1988 1989)) NIL