Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

xhpseterrorhandler(3x) [hpux man page]

XHPSetErrorHandler(3X)													    XHPSetErrorHandler(3X)

NAME
XHPSetErrorHandler - Register an X error handling routine. SYNOPSIS
#include <X11/XHPlib.h> typedef int (*PFI) (); PFI XHPSetErrorHandler (display, routine) Display *display; int (*routine) (); int routine (display, error) Display *display; XErrorEvent *error; DESCRIPTION
This request registers with Xlib the address of a routine to handle X errors. It is intended to be used by libraries and drivers that wish to establish an error handling routine without interfering with any error handling routine that may have been established by the client program. XHPSetErrorHandler records one error handling routine per connection to the server. Therefore, in order for a library or driver to set up its own error handling routine without affecting that of the client, the library or driver must first have established its own connection to the server via XOpenDisplay. When an XErrorEvent is received by the client, which error handling routine is invoked is determined by the display associated with the error. If the display matches that associated with a driver error handling routine, that error handling routine will be invoked. If it does not match any driver routine, the error handling routine established by the client, if any exists, will be invoked. Otherwise, the default Xlib error handler will be invoked. XHPSetErrorHandler returns the address of the previously established error handler. If that error handler was the default error handler, NULL is returned. A driver or library may remove its error handler by invoking XHPSetErrorHandler with a NULL error handling routine. FILES
/usr/include/X11/XHPlib.h ORIGIN
Hewlett-Packard Company SEE ALSO
XSetErrorHandler(3x) X Version 11 Release 5 XHPSetErrorHandler(3X)

Check Out this Related Man Page

XSetErrorHandler()														XSetErrorHandler()

Name
  XSetErrorHandler - set a fatal error event handler.

Synopsis
  int (*XSetErrorHandler(handler))()
	int (* handler)(Display *)

Arguments
  handler   The  user-defined  function to be called to handle error events.  If a NULL pointer, reinvoke the default handler, which prints a
	    message and exits.

Returns
  The previous nonfatal error handler.

Description
  The error handler function specified in handler will be called by Xlib whenever an XError event is received.	 These	are  nonfatal  condi-
  tions,  such	as unexpected values for arguments, or a failure in server memory allocation.  It is acceptable for this procedure to return,
  though the default handler simply prints a message and exits.  However, the error handler should NOT perform any  operations	(directly  or
  indirectly) that generate protocol requests or that look for input events.

  In Release 4 and Release 5, XSetErrorHandler() returns a pointer to the previous error handler.

  The  function is called with two arguments:  the display variable and a pointer to the XErrorEvent structure.  Here is a trivial example of
  a user-defined error handler:
      int myhandler (display, myerr)
      Display *display;
      XErrorEvent *myerr;
      {
	 char msg[80];
	 XGetErrorText(display, myerr->error_code, msg, 80);
	 fprintf(stderr, "Error code %s
", msg);
      }

  This is how the example routine would be used in XSetErrorHandler():

      XSetErrorHandler(myhandler);

  Note that XSetErrorHandler() is one of the few routines that does not require a display argument.  The routine that calls the error handler
  gets the display variable from the XErrorEvent structure.

  The  error  handler is not called on BadName errors from OpenFont, LookupColor, and AllocNamedColor protocol requests, or on BadFont errors
  from a QueryFont protocol request.  These errors are all indicated by Status return value of zero in the corresponding Xlib routines, which
  must be caught and handled by the application.

  Use XIOErrorHandler to provide a handler for I/O errors such as network failures or server host crashes.

  In  the  XErrorEvent	structure shown below, the serial member is the number of requests (starting from 1) sent over the network connection
  since it was opened.	It is the number that was the value of the request sequence number immediately after the failing call was made.   The
  request_code member is a protocol representation of the name of the procedure that failed and is defined in <X11/Xproto.h>.

  For more information, see Volume One, Chapter 3, Basic Window Program.

Structures
     typedef struct {
	 int type
	 Display *display;	     /* display the event was read from */
	 XID resourceid;	     /* resource ID */
	 unsigned long serial;	     /* serial number of failed request */
	 unsigned char error_code;   /* error code of failed request */
	 unsigned char request_code; /* major opcode of failed request */
	 unsigned char minor_code;   /* minor opcode of failed request */
     } XErrorEvent;

See Also
  XDisplayName(), XGetErrorDatabaseText(), XGetErrorText(), XSetAfterFunction(), XSetIOErrorHandler(), XSynchronize().

Xlib - Error Handling														XSetErrorHandler()
Man Page