Rename xcb-xfree86dri.pc.in to xcb-xf86dri.pc.in to match libXCBxf86dri, change its...
[free-sw/xcb/libxcb] / src / xcb_out.c
index b0130e7..2667973 100644 (file)
@@ -29,7 +29,6 @@
 #include <stdlib.h>
 #include <unistd.h>
 #include <string.h>
-#include <errno.h>
 
 #include "xcb.h"
 #include "xcbext.h"
@@ -121,7 +120,7 @@ unsigned int XCBSendRequest(XCBConnection *c, int flags, struct iovec *vector, c
             longlen += vector[i].iov_len;
             if(!vector[i].iov_base)
             {
-                vector[i].iov_base = (caddr_t) pad;
+                vector[i].iov_base = (char *) pad;
                 assert(vector[i].iov_len <= sizeof(pad));
             }
         }
@@ -166,7 +165,8 @@ unsigned int XCBSendRequest(XCBConnection *c, int flags, struct iovec *vector, c
 
     request = ++c->out.request;
     assert(request != 0);
-    _xcb_in_expect_reply(c, request, workaround, flags);
+    if(workaround != WORKAROUND_NONE || flags != 0)
+        _xcb_in_expect_reply(c, request, workaround, flags);
     if(!req->isvoid)
         c->in.request_expected = c->out.request;
 
@@ -224,34 +224,6 @@ void _xcb_out_destroy(_xcb_out *out)
     pthread_mutex_destroy(&out->reqlenlock);
 }
 
-/* precondition: there must be something for us to write. */
-int _xcb_out_write(XCBConnection *c, struct iovec **vector, int *count)
-{
-    int n;
-    assert(!c->out.queue_len);
-    n = writev(c->fd, *vector, *count);
-    if(n < 0 && errno == EAGAIN)
-        return 1;
-    if(n <= 0)
-        return 0;
-
-    for(; *count; --*count, ++*vector)
-    {
-        int cur = (*vector)->iov_len;
-        if(cur > n)
-            cur = n;
-        (*vector)->iov_len -= cur;
-        (*vector)->iov_base = (char *) (*vector)->iov_base + cur;
-        n -= cur;
-        if((*vector)->iov_len)
-            break;
-    }
-    if(!*count)
-        *vector = 0;
-    assert(n == 0);
-    return 1;
-}
-
 int _xcb_out_send(XCBConnection *c, struct iovec **vector, int *count)
 {
     int ret = 1;