diff options
author | Drew DeVault <sir@cmpwn.com> | 2017-10-11 08:54:28 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-11 08:54:28 -0400 |
commit | bf5299a3a55040d8593c87d02bec364784c2c911 (patch) | |
tree | 690fe47fe25765394a13b2eb60f6870cc483a707 /xwayland | |
parent | f7bcb2750b4756ed2b5231a8a2831f26ab6d93ef (diff) | |
parent | a5fe9aa73633594b443e2a1a990cdf23addbb28b (diff) |
Merge pull request #252 from myfreeweb/freebsd-compat
Add FreeBSD compatibility
Diffstat (limited to 'xwayland')
-rw-r--r-- | xwayland/sockets.c | 9 | ||||
-rw-r--r-- | xwayland/xwayland.c | 12 |
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); |