GVAnswer.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
edited by Karlton, December 2, 1980 1:28 PM
based on Answer.mesa of Brotz, March 4, 1983 11:58 AM
edited by Willie-Sue, April 19, 1983 10:50 am
Doug Wyatt, March 7, 1985 11:04:10 am PST
DIRECTORY
Rope USING [ROPE];
GVAnswer: CEDAR DEFINITIONS
= BEGIN
ROPE: TYPE = Rope.ROPE;
MakeHeader: PROC [getChar: PROC [INT] RETURNS [CHAR], getLength: INT,
userName, userRegistry: ROPE, cForCopies: BOOLFALSE
] RETURNS [answerError: BOOL, answer: ROPE, errorIndex: INT];
Causes an answering header for a message that the client currently has.
'getChar' procedure is used to get characters from the old message header.
The argument to 'getChar' is which character from the old header is needed.
The same character may be asked for more than once. 'getLength' is the length
of the old message being parsed; 'getChar' will always be called with the
argument in the range [0 .. getLength). 'userName' and 'userRegistry' may not
be NIL, and are used to eliminate some "redundant" information from the constructed
header. 'cForCopies causes the constructed header to have "c: <recipient list>" instead
of "cc: <recipient list>".
If the parse of the old message failed, then MakeHeader returns TRUE.
IF answerError is TRUE, then errorIndex is the current value of getCharIndex
(gives some idea of where the parse error occurred
END.