DIRECTORY Rope USING [ROPE], UserProfile USING [ProfileChangedProc, ProfileChangeReason] ; UserProfileBackdoor: CEDAR DEFINITIONS = BEGIN GuestProcsRec: TYPE = RECORD [ IsGuestProcess: PROC [] RETURNS [isGuest: BOOL], Boolean: PROC [key: Rope.ROPE, default: BOOLEAN _ FALSE] RETURNS [value: BOOLEAN], Number: PROC [key: Rope.ROPE, default: INT _ 0] RETURNS [value: INT], Token: PROC [key: Rope.ROPE, default: Rope.ROPE _ NIL] RETURNS [value: Rope.ROPE], ListOfTokens: PROC [key: Rope.ROPE, default: LIST OF Rope.ROPE _ NIL] RETURNS [value: LIST OF Rope.ROPE], Line: PROC [key: Rope.ROPE, default: Rope.ROPE _ NIL] RETURNS [value: Rope.ROPE], GetProfileName: PROC RETURNS [Rope.ROPE], CallWhenProfileChanges: PROC [proc: UserProfile.ProfileChangedProc], ProfileChanged: PROC [reason: UserProfile.ProfileChangeReason] ]; RegisterGuestProcs: PROC [newProcs: REF GuestProcsRec]; END. ΐUserProfileBackdoor.mesa; Edited by Bob Hagmann on November 27, 1984 8:32:43 am PST This interface allows clients to register procedures in UserProfile to implement guest processes. ΚΕ– "Cedar" style˜J˜Jšœ™Jšœ9™9J˜šΟk ˜ Jšœœœ˜Jšœ œ*˜;Jšœ˜J˜—šœœ œ˜.Iproc™KšΟc8œ ž™aK™šœœœ˜JšΟnœœœ œ˜0JšŸœœ œ œœœ œ˜RJš Ÿœœ œ œœ œ˜EJšŸœœ œœœœœ˜RJšŸ œœ œ œœœœœ œœœ˜iJšŸœœ œœœœœ˜QJšŸœœœœ˜)JšŸœœ(˜DJšŸœœ*˜>J˜J˜—JšŸœœ œ˜7J˜—J˜Jšœ˜J˜J™—…—xύ