ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/main.C
(Generate patch)

Comparing rxvt-unicode/src/main.C (file contents):
Revision 1.134 by root, Fri Feb 4 11:41:23 2005 UTC vs.
Revision 1.135 by root, Sun Feb 13 11:07:57 2005 UTC

362{ 362{
363 for (rxvt_term **t = rxvt_term::termlist.begin (); t < rxvt_term::termlist.end (); t++) 363 for (rxvt_term **t = rxvt_term::termlist.begin (); t < rxvt_term::termlist.end (); t++)
364 (*t)->emergency_cleanup (); 364 (*t)->emergency_cleanup ();
365} 365}
366 366
367#if ENABLE_FRILLS
368static void
369print_x_error (Display *dpy, XErrorEvent *event)
370{
371 char buffer[BUFSIZ];
372 char mesg[BUFSIZ];
373 char number[32];
374 char *mtype = "XlibMessage";
375 XGetErrorText(dpy, event->error_code, buffer, BUFSIZ);
376 XGetErrorDatabaseText(dpy, mtype, "XError", "X Error", mesg, BUFSIZ);
377 rxvt_warn ("An X Error occured, trying to continue after report.\n");
378 rxvt_warn ("%s: %s\n", mesg, buffer);
379 XGetErrorDatabaseText(dpy, mtype, "MajorCode", "Request Major code %d", mesg, BUFSIZ);
380 rxvt_warn (strncat (mesg, "\n", BUFSIZ), event->request_code);
381 sprintf(number, "%d", event->request_code);
382 XGetErrorDatabaseText(dpy, "XRequest", number, "", buffer, BUFSIZ);
383 rxvt_warn ("(which is %s)\n", buffer);
384 if (event->request_code >= 128) {
385 XGetErrorDatabaseText(dpy, mtype, "MinorCode", "Request Minor code %d",
386 mesg, BUFSIZ);
387 rxvt_warn (strncat (mesg, "\n", BUFSIZ), event->minor_code);
388 }
389 if ((event->error_code == BadWindow) ||
390 (event->error_code == BadPixmap) ||
391 (event->error_code == BadCursor) ||
392 (event->error_code == BadFont) ||
393 (event->error_code == BadDrawable) ||
394 (event->error_code == BadColor) ||
395 (event->error_code == BadGC) ||
396 (event->error_code == BadIDChoice) ||
397 (event->error_code == BadValue) ||
398 (event->error_code == BadAtom)) {
399 if (event->error_code == BadValue)
400 XGetErrorDatabaseText(dpy, mtype, "Value", "Value 0x%x",
401 mesg, BUFSIZ);
402 else if (event->error_code == BadAtom)
403 XGetErrorDatabaseText(dpy, mtype, "AtomID", "AtomID 0x%x",
404 mesg, BUFSIZ);
405 else
406 XGetErrorDatabaseText(dpy, mtype, "ResourceID", "ResourceID 0x%x",
407 mesg, BUFSIZ);
408 rxvt_warn (strncat (mesg, "\n", BUFSIZ), event->resourceid);
409 }
410 XGetErrorDatabaseText(dpy, mtype, "ErrorSerial", "Error Serial #%d",
411 mesg, BUFSIZ);
412 rxvt_warn (strncat (mesg, "\n", BUFSIZ), event->serial);
413}
414#endif
415
367int 416int
368rxvt_xerror_handler (Display *display, XErrorEvent *event) 417rxvt_xerror_handler (Display *display, XErrorEvent *event)
369{ 418{
370 if (GET_R->allowedxerror == -1) 419 if (GET_R->allowedxerror == -1)
371 GET_R->allowedxerror = event->error_code; 420 GET_R->allowedxerror = event->error_code;
372 else 421 else
373 { 422 {
374 //TODO: GET_R is most likely not the terminal which caused the error 423 //TODO: GET_R is most likely not the terminal which caused the error
375 //TODO: maybe just output the error and continue? 424 //TODO: maybe just output the error and continue?
425#if ENABLE_FRILLS
426 print_x_error (display, event);
427#else
376 old_xerror_handler (display, event); 428 old_xerror_handler (display, event);
377 GET_R->destroy (); 429#endif
378 } 430 }
379 431
380 return 0; 432 return 0;
381} 433}
382 434
1501 int i, found, had_im; 1553 int i, found, had_im;
1502 const char *p; 1554 const char *p;
1503 char **s; 1555 char **s;
1504 char buf[IMBUFSIZ]; 1556 char buf[IMBUFSIZ];
1505 1557
1558 SET_R (this);
1559
1506 im_destroy (); 1560 im_destroy ();
1507 1561
1508 D_MAIN ((stderr, "rxvt_IMInstantiateCallback ()")); 1562 D_MAIN ((stderr, "rxvt_IMInstantiateCallback ()"));
1509 if (Input_Context) 1563 if (Input_Context)
1510 return; 1564 return;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines