[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE_3_1_BRANCH: kdelibs/kinit [POSSIBLY UNSAFE]
From:       Waldo Bastian <bastian () kde ! org>
Date:       2003-07-16 20:47:06
[Download RAW message or body]

CVS commit by waba: 

Handle X errors instead of dying on them. (StartupInfo!!)


  M +22 -1     kinit.cpp   1.105.2.4 [POSSIBLY UNSAFE: printf]


--- kdelibs/kinit/kinit.cpp  #1.105.2.3:1.105.2.4
@@ -136,4 +136,5 @@ struct {
 extern "C" {
 int kdeinit_xio_errhandler( Display * );
+int kdeinit_x_errhandler( Display *, XErrorEvent *err );
 }
 
@@ -1342,4 +1343,22 @@ int kdeinit_xio_errhandler( Display *dis
 }
 
+int kdeinit_x_errhandler( Display *dpy, XErrorEvent *err )
+{
+#ifndef NDEBUG
+    char errstr[256];
+    XGetErrorText( dpy, err->error_code, errstr, 256 );
+    if ( err->error_code != BadWindow )
+    {
+        fprintf(stderr, "kdeinit: KDE detected X Error: %s %d\n", errstr, err->error_code );
+        fprintf(stderr, "  Major opcode:  %d\n", err->request_code);
+    }
+#else
+    Q_UNUSED(dpy);
+    Q_UNUSED(err);
+#endif
+    return 0;
+}
+
+
 #ifdef Q_WS_X11
 // Borrowed from kdebase/kaudio/kaudioserver.cpp
@@ -1349,4 +1368,6 @@ static int initXconnection()
   if ( X11display != 0 ) {
     XSetIOErrorHandler(kdeinit_xio_errhandler);
+    XSetErrorHandler(kdeinit_x_errhandler);
+     
     XCreateSimpleWindow(X11display, DefaultRootWindow(X11display), 0,0,1,1, \
         0,


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic