<> <> <> <> DIRECTORY Commander USING [CommandProc, CommandProcHandle, Handle], IO USING [STREAM], List USING [AList], ReadEvalPrint USING [ClientProc], Rope USING [ROPE]; CommandTool: CEDAR DEFINITIONS = BEGIN <> <> ArgumentVector: TYPE = REF ArgHandleObject; <> ArgHandleObject: TYPE = RECORD [s: SEQUENCE argc: NAT OF Rope.ROPE]; Failed: ERROR [errorMsg: Rope.ROPE]; <> <> <> StarExpansion: PROCEDURE [cmd: Commander.Handle]; <> <> ParseToList: PROCEDURE [cmd: Commander.Handle, switchChar: CHAR _ '-] RETURNS [list: LIST OF Rope.ROPE, length: NAT]; <> <> Parse: PROCEDURE [cmd: Commander.Handle, switchChar: CHAR _ '-] RETURNS [argv: ArgumentVector]; <> <> DoCommand: PROCEDURE [commandLine: Rope.ROPE, parent: Commander.Handle] RETURNS [result: REF ANY]; <> DoCommandRope: PROCEDURE [commandLine, in: Rope.ROPE _ NIL, parent: Commander.Handle] RETURNS [out: Rope.ROPE, result: REF ANY]; <> Run: PROCEDURE [bcdName: Rope.ROPE, runEvenIfAlreadyRun: BOOL _ FALSE, runEvenIfUnbound: BOOL _ FALSE] RETURNS [errMsg: Rope.ROPE _ NIL, error: BOOL _ FALSE]; <> <> <> FileWithSearchRules: PROCEDURE [root: Rope.ROPE, defaultExtension: Rope.ROPE, cmd: Commander.Handle] RETURNS [fullPath: Rope.ROPE]; <> <> <> <> <> <> <<}>> <> <> <> <> <<}>> <> <> <> <> <<}>> <<}>> ResolveRelativePath: PROCEDURE [path: Rope.ROPE] RETURNS [Rope.ROPE]; <> ConvertToSlashFormat: PROCEDURE [path: Rope.ROPE] RETURNS [Rope.ROPE]; <> AddSearchRule: PROCEDURE [cmd: Commander.Handle, dir: Rope.ROPE, append: BOOL _ TRUE]; <> CurrentWorkingDirectory: PROCEDURE RETURNS [Rope.ROPE]; <> <> <> AmpersandSubstitution: PROCEDURE [cmd: Commander.Handle]; <> <> DollarSubstitution: PROCEDURE [cmd: Commander.Handle]; <> <> IORedirection: PROCEDURE [cmd: Commander.Handle] RETURNS [inRedirected: BOOL _ FALSE, outRedirected: BOOL _ FALSE]; <> <> Insulate: PROCEDURE [stream: IO.STREAM] RETURNS [safeStream: IO.STREAM]; <> PutLocalProperty: PROCEDURE [key, val: REF ANY, aList: List.AList, origList: List.AList _ NIL] RETURNS [List.AList]; <> CopyAList: PROCEDURE [old: List.AList] RETURNS [new: List.AList]; <> CopyListOfRefAny: PROCEDURE [key: REF ANY, aList: List.AList] RETURNS [List.AList]; <> <> CallList: PROCEDURE [property: REF ANY, cmd: Commander.Handle, proc: PROC [result: REF, msg: Rope.ROPE] RETURNS [stop: BOOL]]; <> <> AddProcToList: PROCEDURE [aList: List.AList, listKey: REF ANY, proc: Commander.CommandProcHandle, append: BOOL _ TRUE] RETURNS [List.AList]; <> RemoveProcFromList: PROCEDURE [aList: List.AList, listKey: REF ANY, proc: Commander.CommandProcHandle] RETURNS [List.AList]; <> <> LookupWithSearchRules: Commander.CommandProc; <> <> <> <> <> <> <> <> <> <> <> <<>> LoadAndRunWithSearchRules: Commander.CommandProc; <> CommandFileWithSearchRules: Commander.CommandProc; <> <> CommandFile: Commander.CommandProc; <> ExecuteCommand: PROCEDURE [cmd: Commander.Handle, background: BOOL]; <> EachCommand: ReadEvalPrint.ClientProc; <> LookupCommand: PROCEDURE [cmd: Commander.Handle]; <> Pass1: PROCEDURE [initial: Rope.ROPE, nameOnly: BOOL] RETURNS [first: Rope.ROPE _ NIL, rest: Rope.ROPE _ NIL, terminator: CHAR _ '\n, someExpansion: BOOL _ FALSE]; <> END.