-- file CommandUtil.Mesa
-- last modified by Satterthwaite, December 10, 1982 10:32 am
-- last edit by Russ Atkinson, 19-Dec-80 13:22:44
DIRECTORY
ExecOps: TYPE USING [Command],
Stream: TYPE USING [Handle],
Strings: TYPE USING [String, SubString];
CommandUtil: DEFINITIONS = {
Command: TYPE = ExecOps.Command;
CommandObject: TYPE = RECORD [pos, len: CARDINAL, data: Command];
CommandPtr: TYPE = POINTER TO CommandObject;
PairList: TYPE [SIZE[LONG POINTER]];
CopyString: PROC [s: Strings.String, extra: CARDINAL←0] RETURNS [Strings.String];
Echo: PROC [
d: Stream.Handle,
operator: Strings.String,
argList, resultList: PairList,
switches: Strings.String];
FreePairList: PROC [PairList] RETURNS [PairList];
FreeString: PROC [Strings.String] RETURNS [Strings.String];
GetNthPair: PROC [list: PairList, n: CARDINAL, delete: BOOL←FALSE]
RETURNS [key,value: Strings.String];
GetNth: PROC [list: PairList, n: CARDINAL, delete: BOOL←FALSE]
RETURNS [Strings.String] = INLINE {
RETURN [GetNthPair[list, n, delete].value]};
KeyValue: PROC [key: Strings.SubString, list: PairList, delete: BOOL←FALSE]
RETURNS [Strings.String];
ListLength: PROC [list: PairList] RETURNS [CARDINAL];
Parse: PROC [s: CommandPtr, opX, argX, resultX: CARDINAL←0]
RETURNS [
operator: Strings.String,
argList, resultList: PairList,
switches: Strings.String];
SetExtension: PROC [root, defaultExt: Strings.String] RETURNS [name: Strings.String];
SkipNonBlank: PROC [s: Stream.Handle, n: CARDINAL←1];
Failed: ERROR;
}.