DIRECTORY BasicTime USING [GMT], Commander USING [Handle], Rope USING [ROPE]; CommanderBackdoor: CEDAR DEFINITIONS = BEGIN ROPE: PRIVATE TYPE = Rope.ROPE; CommandToolData: TYPE ~ REF CommandToolDataRep; CommandToolDataRep: TYPE ~ PACKED RECORD [ Prompt: PROC [cmd: Commander.Handle] ¬ NIL, Lookup: PROC [cmd: Commander.Handle] ¬ NIL, Before: PROC [cmd: Commander.Handle] ¬ NIL, After: PROC [cmd: Commander.Handle] ¬ NIL, InitChild: PROC [cmd: Commander.Handle] ¬ NIL, process: REF PROCESS ¬ NIL, verbose: BOOL ¬ FALSE, statistics: BOOL ¬ FALSE, keepHistory: BOOL ¬ FALSE, stopOnFailure: BOOL ¬ FALSE, parentCommander: Commander.Handle ¬ NIL, recent: REF CommandHistoryElement, history: CommandHistoryList, childHistory: CommandHistoryList, private: REF PrivateDataRep ]; CommandHistoryList: TYPE ~ LIST OF CommandHistoryElement; CommandHistoryElement: TYPE ~ RECORD [ commandNumber: CARD, wholeCommandLine: ROPE, result: REF, msg: ROPE, startTime: BasicTime.GMT, seconds: REAL, allocations: CARD, pageFaults: CARD, subHistory: CommandHistoryList ]; PrivateDataRep: TYPE; GetCommandToolData: PROC [cmd: Commander.Handle] RETURNS [CommandToolData]; AdamOrEve: PROC [cmd: Commander.Handle] RETURNS [Commander.Handle]; AbortCommander: PROC [cmd: Commander.Handle]; SetProcess: PROC [cmd: Commander.Handle, process: PROCESS]; END. ζ CommanderBackdoor.mesa Copyright Σ 1989, 1991 by Xerox Corporation. All rights reserved. Michael Plass, November 21, 1989 9:18:24 am PST This interface has things that are used by few clients, and that are most likely to evolve. Types Creation Called to prompt for the next command, maintain window heralds, and so forth. Called to look up commands, prior to standard lookup; succeeds by supplying cmd.procData Called before each command is executed Called after each command is executed Called to initialize a new child Commander.Handle Chases parent links to get to the handle with no parent. Raises ABORTED in the process that currently owns the handle. Sets the ownership of the handle; normally only done by ReadEvalPrintLoop. Κϋ–(cedarcode) style•NewlineDelimiter ™codešœ™Kšœ Οeœ7™BK™/K™Kšœ[™[—K˜šΟk ˜ Kšœ žœžœ˜Kšœ žœ ˜Kšœžœžœ˜—K˜KšΟnœžœž œžœ˜-head™Kšžœžœžœžœ˜—™Kšœžœžœ˜/šœžœžœžœ˜*šŸœžœžœ˜+J™M—šŸœžœžœ˜+JšœX™X—šŸœžœžœ˜+J™&—šŸœžœžœ˜*J™%—šŸ œžœžœ˜.Jšœ1™1—Kšœ žœžœžœ˜Kšœ žœžœ˜Kšœ žœžœ˜Kšœ žœžœ˜Kšœžœžœ˜Kšœ$žœ˜(Kšœžœ˜"Kšœ˜Kšœ!˜!Kšœ žœ˜Kšœ˜K˜—Kšœžœžœžœ˜9šœžœžœ˜&Kšœžœ˜Kšœžœ˜Kšœžœ˜ Kšœžœ˜ Kšœžœ˜Kšœ žœ˜Kšœ žœ˜Kšœ žœ˜Kšœ˜Kšœ˜K˜—šœžœ˜K˜—šŸœžœžœ˜KK˜—šŸ œžœžœ˜CK™8K˜—šŸœžœ˜-K™=K˜—šŸ œžœ"žœ˜;Kšœ8Ÿœ™JK˜——K˜Kšžœ˜—…—: