WISH: OnTheSpot editing, or maybe switch to miiiiiiif
WISH: just for fun, do shade and tint with XRender.
+ - workaround for possible linux-kernel bug, details pending.
+
6.0 Sat Dec 24 13:58:56 CET 2005
- make it compile without SMART_RESIZE again.
- enable slow link support by default.
#include <inttypes.h>
#include <unistd.h>
+#include <errno.h>
+#include <sys/types.h>
#include <sys/utsname.h>
#include <limits.h>
#include "rxvtdaemon.h"
+// works around linux kernel bug, returns EAGAIN on a blocking socket
+static ssize_t
+read_ (int fd, void *buf, size_t count)
+{
+ int ret;
+
+ do
+ ret = read (fd, buf, count);
+ while (ret < 0 && errno == EAGAIN);
+
+ return ret;
+}
+
char *rxvt_connection::unix_sockname ()
{
char name[PATH_MAX];
uint8_t s[2];
int l;
- if (read (fd, s, 2) != 2)
+ if (read_ (fd, s, 2) != 2)
return false;
l = (s[0] << 8) + s[1];
if (!data)
return false;
- if (read (fd, data, l) != l)
+ if (read_ (fd, data, l) != l)
return false;
data[l] = 0;
{
uint8_t s[4];
- if (read (fd, s, 4) != 4)
+ if (read_ (fd, s, 4) != 4)
return false;
data = (((((s[0] << 8) | s[1]) << 8) | s[2]) << 8) | s[3];