There is no technical reason why xcb_get_setup() and xcb_get_file_descriptor() shouldn't work on non-static error connections. They cannot be used for many useful things, but at least they work. This works around bugs in lots of programs out there which assume that xcb_get_setup() does not return NULL and which just happily dereference the results. Since xcb_connect() never returns NULL, it's a bit weird that xcb_get_setup() can do so. xcb_get_file_descriptor() is just modified since this can be done here equally easily and because the fd isn't closed until the final xcb_disconnect() on the error connection. Non-static error connections are connections which entered an error state after xcb_connect() succeeded. If something goes wrong in establishing a connection, xcb_connect() will return a static error connection which doesn't have the fields used here. Signed-off-by: Uli Schlachter <psychon@znc.in> |
||
---|---|---|
.. | ||
man | ||
.gitignore | ||
Makefile.am | ||
c_client.py | ||
xcb.h | ||
xcb_auth.c | ||
xcb_conn.c | ||
xcb_ext.c | ||
xcb_in.c | ||
xcb_list.c | ||
xcb_out.c | ||
xcb_util.c | ||
xcb_windefs.h | ||
xcb_xid.c | ||
xcbext.h | ||
xcbint.h |