home *** CD-ROM | disk | FTP | other *** search
/ ftp.freefriends.org / ftp.freefriends.org.tar / ftp.freefriends.org / arnold / Source / 9wm-1.1.shar.gz / 9wm-1.1.shar / error.c < prev    next >
C/C++ Source or Header  |  1995-01-15  |  3KB  |  121 lines

  1. /* Copyright (c) 1994 David Hogan, see README for licence details */
  2. #include <stdio.h>
  3. #include <X11/X.h>
  4. #include <X11/Xlib.h>
  5. #include <X11/Xutil.h>
  6. #include <X11/Xproto.h>
  7. #include "dat.h"
  8. #include "fns.h"
  9.  
  10. int     ignore_badwindow;
  11.  
  12. void
  13. fatal(s)
  14. char *s;
  15. {
  16.     fprintf(stderr, "9wm: ");
  17.     perror(s);
  18.     fprintf(stderr, "\n");
  19.     exit(1);
  20. }
  21.  
  22. int
  23. handler(d, e)
  24. Display *d;
  25. XErrorEvent *e;
  26. {
  27.     char msg[80], req[80], number[80];
  28.  
  29.     if (initting && (e->request_code == X_ChangeWindowAttributes) && (e->error_code == BadAccess)) {
  30.         fprintf(stderr, "9wm: it looks like there's already a window manager running;  9wm not started\n");
  31.         exit(1);
  32.     }
  33.  
  34.     if (ignore_badwindow && (e->error_code == BadWindow || e->error_code == BadColor))
  35.         return 0;
  36.  
  37.     XGetErrorText(d, e->error_code, msg, sizeof(msg));
  38.     sprintf(number, "%d", e->request_code);
  39.     XGetErrorDatabaseText(d, "XRequest", number, "<unknown>", req, sizeof(req));
  40.  
  41.     fprintf(stderr, "9wm: %s(0x%x): %s\n", req, e->resourceid, msg);
  42.  
  43.     if (initting) {
  44.         fprintf(stderr, "9wm: failure during initialisation; aborting\n");
  45.         exit(1);
  46.     }
  47.     return 0;
  48. }
  49.  
  50. void
  51. graberror(f, err)
  52. char *f;
  53. int err;
  54. {
  55.     char *s;
  56.  
  57.     switch (err) {
  58.     case GrabNotViewable:
  59.         s = "not viewable";
  60.         break;
  61.     case AlreadyGrabbed:
  62.         s = "already grabbed";
  63.         break;
  64.     case GrabFrozen:
  65.         s = "grab frozen";
  66.         break;
  67.     case GrabInvalidTime:
  68.         s = "invalid time";
  69.         break;
  70.     case GrabSuccess:
  71.         return;
  72.     default:
  73.         fprintf(stderr, "9wm: %s: grab error: %d\n", f, err);
  74.         return;
  75.     }
  76.     fprintf(stderr, "9wm: %s: grab error: %s\n", f, s);
  77. }
  78.  
  79. void
  80. showhints(c, size)
  81. Client *c;
  82. XSizeHints *size;
  83. {
  84. #ifdef  DEBUG
  85.     fprintf(stderr, "\nNew window: %s(%s) ", c->label ? c->label : "???", c->class ? c->class : "???");
  86.     fprintf(stderr, "posn (%d,%d) size (%d,%d)\n", c->x, c->y, c->dx, c->dy);
  87.  
  88.     if (size == 0) {
  89.         fprintf(stderr, "no size hints\n");
  90.         return;
  91.     }
  92.  
  93.     fprintf(stderr, "size hints: ");
  94.     if (size->flags&USPosition)
  95.         fprintf(stderr, "USPosition(%d,%d) ", size->x, size->y);
  96.     if (size->flags&USSize)
  97.         fprintf(stderr, "USSize(%d,%d) ", size->width, size->height);
  98.     if (size->flags&PPosition)
  99.         fprintf(stderr, "PPosition(%d,%d) ", size->x, size->y);
  100.     if (size->flags&PSize)
  101.         fprintf(stderr, "PSize(%d,%d) ", size->width, size->height);
  102.     if (size->flags&PMinSize)
  103.         fprintf(stderr, "PMinSize(%d,%d) ", size->min_width, size->min_height);
  104.     if (size->flags&PMaxSize)
  105.         fprintf(stderr, "PMaxSize(%d,%d) ", size->max_width, size->max_height);
  106.     if (size->flags&PResizeInc)
  107.         fprintf(stderr, "PResizeInc ");
  108.     if (size->flags&PAspect)
  109.         fprintf(stderr, "PAspect ");
  110.     if (size->flags&PBaseSize)
  111.         fprintf(stderr, "PBaseSize ");
  112.     if (size->flags&PWinGravity)
  113.         fprintf(stderr, "PWinGravity ");
  114.     fprintf(stderr, "\n");
  115. #endif
  116. }
  117.  
  118. #ifdef  DEBUG_EV
  119. #include "showevent/ShowEvent.c"
  120. #endif
  121.