diff options
author | Alan Coopersmith <alan.coopersmith@oracle.com> | 2012-08-25 14:05:18 -0700 |
---|---|---|
committer | Alan Coopersmith <alan.coopersmith@oracle.com> | 2012-08-29 22:03:53 -0700 |
commit | aedc2ecc4de61211f5f6b8f27bd8681d0ab744dc (patch) | |
tree | 64c81630ff1b8b810a2d1262f6f2495ceec6d83e | |
parent | 4176bffd0261d7734617dc73ae6013e86dbb841d (diff) |
Print more detailed error messages when xcb_connect fails
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
-rw-r--r-- | dsimple.c | 21 |
1 files changed, 17 insertions, 4 deletions
@@ -108,13 +108,26 @@ void Setup_Display_And_Screen ( xcb_connection_t **dpy, /* MODIFIED */ xcb_screen_t **screen) /* MODIFIED */ { - int screen_number, i; + int screen_number, i, err; /* Open Display */ *dpy = xcb_connect (display_name, &screen_number); - if (xcb_connection_has_error (*dpy)) { - Fatal_Error ("unable to open display \"%s\"", - Get_Display_Name(display_name) ); + if ((err = xcb_connection_has_error (*dpy)) != 0) { + switch (err) { + case XCB_CONN_CLOSED_MEM_INSUFFICIENT: + Fatal_Error ("Failed to allocate memory in xcb_connect"); + case XCB_CONN_CLOSED_PARSE_ERR: + Fatal_Error ("unable to parse display name \"%s\"", + Get_Display_Name(display_name) ); +#ifdef XCB_CONN_CLOSED_INVALID_SCREEN + case XCB_CONN_CLOSED_INVALID_SCREEN: + Fatal_Error ("invalid screen %d in display \"%s\"", + screen_number, Get_Display_Name(display_name)); +#endif + default: + Fatal_Error ("unable to open display \"%s\"", + Get_Display_Name(display_name) ); + } } if (screen) { |