aboutsummaryrefslogtreecommitdiff
path: root/x11/kde4-workspace/files/patch-kdm__backend__client.c
diff options
context:
space:
mode:
Diffstat (limited to 'x11/kde4-workspace/files/patch-kdm__backend__client.c')
-rw-r--r--x11/kde4-workspace/files/patch-kdm__backend__client.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/x11/kde4-workspace/files/patch-kdm__backend__client.c b/x11/kde4-workspace/files/patch-kdm__backend__client.c
new file mode 100644
index 000000000000..fe71ad1286a9
--- /dev/null
+++ b/x11/kde4-workspace/files/patch-kdm__backend__client.c
@@ -0,0 +1,26 @@
+--- kdm/backend/client.c.orig 2010-03-26 18:26:49.000000000 +0100
++++ kdm/backend/client.c 2010-06-16 00:28:31.056683006 +0200
+@@ -1271,6 +1271,9 @@
+ char ckDeviceBuf[20] = "";
+ const char *ckDevice = ckDeviceBuf;
+ dbus_bool_t isLocal;
++# ifdef BSD
++ FILE *proc;
++# endif
+ #endif
+ char *failsafeArgv[2];
+ char *buf, *buf2;
+@@ -1302,6 +1305,13 @@
+ # ifdef HAVE_VTS
+ if (td->serverVT > 0)
+ sprintf( ckDeviceBuf, "/dev/tty%d", td->serverVT );
++# elif defined(BSD)
++ if ((proc = popen( "/usr/local/libexec/ck-get-x11-display-device", "r" ))) {
++ fscanf( proc, "%s", ckDeviceBuf );
++ pclose( proc );
++ if (strcmp( ckDeviceBuf, "usage" ) == 0 || strcmp( ckDeviceBuf, "ERROR:" ) == 0)
++ ckDeviceBuf[0] = '\0';
++ }
+ # endif
+ isLocal = ((td->displayType & d_location) == dLocal);
+ # ifdef XDMCP