2012-11-06 13:17:21 +01:00
|
|
|
--- src/gplt_x11.c.orig 2012-05-07 18:53:08.000000000 +0200
|
|
|
|
+++ src/gplt_x11.c 2012-11-06 10:24:58.000000000 +0100
|
|
|
|
@@ -900,6 +900,8 @@
|
2009-06-15 16:35:00 +02:00
|
|
|
nfds = cn + 1;
|
|
|
|
|
|
|
|
while (1) {
|
|
|
|
+ int ipc;
|
|
|
|
+
|
|
|
|
XFlush(dpy); /* see above */
|
|
|
|
|
|
|
|
FD_ZERO(&tset);
|
2012-11-06 13:17:21 +01:00
|
|
|
@@ -937,7 +939,11 @@
|
2009-06-15 16:35:00 +02:00
|
|
|
process_event(&xe);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
- if ((X11_ipc = fopen(X11_ipcpath, "r"))) {
|
|
|
|
+
|
|
|
|
+ if ((ipc = open(X11_ipcpath, O_RDONLY|O_CREAT|O_CLOEXEC|O_EXCL)) < 0)
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
+ if ((X11_ipc = dfopen(ipc, "r"))) {
|
|
|
|
unlink(X11_ipcpath);
|
|
|
|
record();
|
|
|
|
fclose(X11_ipc);
|
2012-11-06 13:17:21 +01:00
|
|
|
@@ -1160,8 +1166,8 @@
|
2009-06-15 16:35:00 +02:00
|
|
|
static int
|
|
|
|
read_input()
|
|
|
|
{
|
2010-04-07 21:19:15 +02:00
|
|
|
- static int rdbuf_size = 10 * X11_COMMAND_BUFFER_LENGTH;
|
|
|
|
- static char rdbuf[10 * X11_COMMAND_BUFFER_LENGTH];
|
|
|
|
+ const int rdbuf_size = 10 * X11_COMMAND_BUFFER_LENGTH;
|
|
|
|
+ static char rdbuf[(10 * X11_COMMAND_BUFFER_LENGTH)+1];
|
2009-06-15 16:35:00 +02:00
|
|
|
static int total_chars;
|
|
|
|
static int rdbuf_offset;
|
|
|
|
static int buf_offset;
|