XlDebuggableErrors.mesa
Copyright Ó 1993 by Xerox Corporation. All rights reserved.
Created by Christian Jacobi, May 3, 1993 10:47 am PDT
Christian Jacobi, May 4, 1993 9:36 am PDT
Raising errors (e.g. the error returned through X window error events)
This functionality is presented in a separate module because it is compiled in debuggable mode even if the rest of Xl would be optimized and not debuggable.
Presence or absence of this module is optional; it registers itself.
Note the presence of a switches file sun4>XlDebuggableErrors.c2c.o.switches which makes this debuggable.
DIRECTORY
Rope, Xl, XlPrivateErrorHandling;
XlDebuggableErrors: CEDAR PROGRAM
IMPORTS Xl, XlPrivateErrorHandling ~
BEGIN
RaiseErrorEvent: PROC [errorEvent: Xl.ErrorNotifyEvent] ~ {
originalCodeByte: BYTE ¬ ORD[errorEvent.type];
dispatchDrawable: Xl.Drawable ¬ errorEvent.dispatchDrawable;
connection: Xl.Connection ¬ errorEvent.connection; --note that the connection may be NIL for errors raised inline (synchronous)
explanation: Rope.ROPE ¬ errorEvent.explanation;
errorKind: Xl.ErrorKind ¬ errorEvent.errorKind;
serverGenerated: BOOL ¬ errorEvent.serverGenerated;
originalError: BYTE ¬ errorEvent.originalError;
majorOpCode: BYTE ¬ errorEvent.majorOpCode;
minorOpCode: CARD16 ¬ errorEvent.minorOpCode;
badValue: CARD32 ¬ errorEvent.badValue;
replyText: REF ¬ errorEvent.replyText;
internal: REF ¬ errorEvent.internal;
--This error is raised most often when the X server returned an error-event instead of a reply as answer to a request.
ERROR Xl.XError[errorEvent];
};
XlPrivateErrorHandling.RegisterRaiseErrorEvent[RaiseErrorEvent];
END.