aboutsummaryrefslogtreecommitdiff
path: root/x11/kde4-workspace/files/patch-kdm__backend__client.c
blob: fe71ad1286a93aab37a01617cbf13d8750116a08 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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