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