<> <> <> <> DIRECTORY Rope USING [ROPE]; UserProfile: CEDAR DEFINITIONS = BEGIN OPEN Rope; <<>> <> <<>> <.profile, or if none exists, User.profile. The purpose of the profile is to allow personalized tailoring of the system. The current catalogue of ways the Cedar can be parameterized may be found in the file UserProfile.doc.>> <<>> <: RETURN, where value is either (1) a BOOL, (2) an INT, (3) a TOKEN, or (4) a ListOfTokens (for more details, see UserProfile.doc). When Cedar is booted, rolledBack, or any file whose extension is "profile" is edited, the profile is parsed and a data structure which describes the information that was found in the profile is constructed. Comments (indicated using the standard "--" convention) can appear anywhere in the profile and will be ignored. The parsing will also ignore extra spaces or blank lines. Any errors or anomalies discovered when parsing or accessing the profile will cause diagnostics to be printed to the file UserProfile.log. The user will be informed that problems have been encountered via the Message Window. In no case however will the system break.>> <<>> <> <<>> <> <<>> <> <<>> <> Boolean: PROC [key: ROPE, default: BOOL _ FALSE] RETURNS [value: BOOL]; Number: PROC [key: ROPE, default: INT _ 0] RETURNS [value: INT]; Token: PROC [key: ROPE, default: ROPE _ NIL] RETURNS [value: ROPE]; <:, i.e. effectively does an IO.GetRope[IDBreak]. If the first character encountered is ", then reads everything to the next matching ", and returns this as a single rope. >> ListOfTokens: PROC [key: ROPE, default: LIST OF ROPE _ NIL] RETURNS [value: LIST OF ROPE]; <> <> <> <<>> <> Line: PROC [key: ROPE, default: ROPE _ NIL] RETURNS [value: ROPE]; <> GetProfileName: PROC RETURNS [ROPE]; <.profile, or UserName.Profile. Returns NIL if no profile.>> << >> <> <<>> <> <<>> <> <> <<>> <> <> <> <> <<};>> <> CallWhenProfileChanges: PROC [proc: ProfileChangedProc]; <> ProfileChangedProc: TYPE = PROC [reason: ProfileChangeReason]; ProfileChangeReason: TYPE = {firstTime, rollBack, edit}; ProfileChanged: PROC [reason: ProfileChangeReason]; <> <<>> GetErrorLog: PROC RETURNS [fileName: ROPE]; <> END. <> <> <> <> <> <<>>