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) | |
| download | wlroots-bf5299a3a55040d8593c87d02bec364784c2c911.tar.xz | |
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);  | 
