X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=driver%2Ftest-vp.c;h=bf1a0b188c160acfa705cf97270a4a9e16e34a8e;hp=2f11bc0d2cdb29ce0f1337dff519b0c285bcce50;hb=ffd8c0873576a9e3065696a624dce6b766b77062;hpb=9c9d475ff889ed8be02e8ce8c17da28b93278fca diff --git a/driver/test-vp.c b/driver/test-vp.c index 2f11bc0d..bf1a0b18 100644 --- a/driver/test-vp.c +++ b/driver/test-vp.c @@ -51,6 +51,16 @@ blurb (void) } +static Bool error_handler_hit_p = False; + +static int +ignore_all_errors_ehandler (Display *dpy, XErrorEvent *error) +{ + error_handler_hit_p = True; + return 0; +} + + static int screen_count (Display *dpy) { @@ -150,11 +160,29 @@ main (int argc, char **argv) for (i = 0; i < nscreens; i++) { - int result; + int result = 0; int x = 0, y = 0, dot = 0; XF86VidModeModeLine ml = { 0, }; + XErrorHandler old_handler; + + XSync (dpy, False); + error_handler_hit_p = False; + old_handler = XSetErrorHandler (ignore_all_errors_ehandler); result = XF86VidModeGetViewPort (dpy, i, &x, &y); + + XSync (dpy, False); + XSetErrorHandler (old_handler); + XSync (dpy, False); + + if (error_handler_hit_p) + { + fprintf(stderr, + "%s: XF86VidModeGetViewPort(dpy, %d, ...) ==> X error\n", + blurb(), i); + continue; + } + if (! result) fprintf(stderr, "%s: XF86VidModeGetViewPort(dpy, %d, ...) ==> %d\n", blurb(), i, result);