aboutsummaryrefslogtreecommitdiff
path: root/xwayland
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2017-10-11 08:54:28 -0400
committerGitHub <noreply@github.com>2017-10-11 08:54:28 -0400
commitbf5299a3a55040d8593c87d02bec364784c2c911 (patch)
tree690fe47fe25765394a13b2eb60f6870cc483a707 /xwayland
parentf7bcb2750b4756ed2b5231a8a2831f26ab6d93ef (diff)
parenta5fe9aa73633594b443e2a1a990cdf23addbb28b (diff)
Merge pull request #252 from myfreeweb/freebsd-compat
Add FreeBSD compatibility
Diffstat (limited to 'xwayland')
-rw-r--r--xwayland/sockets.c9
-rw-r--r--xwayland/xwayland.c12
2 files changed, 20 insertions, 1 deletions
diff --git a/xwayland/sockets.c b/xwayland/sockets.c
index 48bcc822..dd732dd7 100644
--- a/xwayland/sockets.c
+++ b/xwayland/sockets.c
@@ -1,4 +1,8 @@
#define _XOPEN_SOURCE 700
+#ifdef __FreeBSD__
+// for SOCK_CLOEXEC
+#define __BSD_VISIBLE 1
+#endif
#include <stdlib.h>
#include <stddef.h>
#include <stdint.h>
@@ -65,9 +69,12 @@ static bool open_sockets(int socks[2], int display) {
mkdir(socket_dir, 0777);
- // TODO: non-linux apparently want another format
+#ifdef __linux__
addr.sun_path[0] = 0;
path_size = snprintf(addr.sun_path + 1, sizeof(addr.sun_path) - 1, socket_fmt, display);
+#else
+ path_size = snprintf(addr.sun_path, sizeof(addr.sun_path), socket_fmt, display);
+#endif
socks[0] = open_socket(&addr, path_size);
if (socks[0] < 0) {
return false;
diff --git a/xwayland/xwayland.c b/xwayland/xwayland.c
index 2bec1b63..f1599911 100644
--- a/xwayland/xwayland.c
+++ b/xwayland/xwayland.c
@@ -1,5 +1,9 @@
#define _XOPEN_SOURCE 700
#define _DEFAULT_SOURCE
+#ifdef __FreeBSD__
+// for SOCK_CLOEXEC
+#define __BSD_VISIBLE 1
+#endif
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
@@ -17,6 +21,14 @@
#include "sockets.h"
#include "xwm.h"
+#ifdef __FreeBSD__
+static inline int clearenv(void) {
+ extern char **environ;
+ environ[0] = NULL;
+ return 0;
+}
+#endif
+
static void safe_close(int fd) {
if (fd >= 0) {
close(fd);