summaryrefslogtreecommitdiffstats
path: root/debian/patches/platform-quirks.diff
blob: e46fe5661698baab04e10baf7b0c512d3c29ecf4 (plain)
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Description: Platform-specific fixes
 * Define PATH_MAX, MAX_IOV for Hurd.
 * Add workaround for broken GNU/kFreeBSD system headers.
Author: Karl Ferdinand Ebert <kfebert@gmail.com>
Author: Romain Francoise <rfrancoise@debian.org>
Author: James Clarke <jrtc27@debian.org>
Bug-Debian: http://bugs.debian.org/609333
Forwarded: not-needed

--- a/compat.h
+++ b/compat.h
@@ -21,6 +21,20 @@
 #include <sys/ioctl.h>
 #include <sys/uio.h>
 
+/*
+ * Shouldn't be needed, but GNU/kFreeBSD headers are currently slightly broken.
+ * The glibc limits.h eventually includes the FreeBSD limits-related headers,
+ * which don't define a TTY_NAME_MAX. However, anything (in)directly including
+ * the glibc sys/param.h will include the glibc bits/param.h, which defines
+ * TTY_NAME_MAX as SPECNAMELEN, i.e. 63, which differs from our fallback of 32.
+ * Thus, without this hack, different source files can (and do) end up with
+ * different values for TTY_NAME_MAX, which among other things affects the
+ * layout of struct window_pane due to the tty buffer.
+ */
+#ifdef __FreeBSD_kernel__
+#include <sys/param.h>
+#endif
+
 #include <fnmatch.h>
 #include <limits.h>
 #include <stdio.h>
@@ -289,6 +303,14 @@ void		 explicit_bzero(void *, size_t);
 int		 getdtablecount(void);
 #endif
 
+#ifndef PATH_MAX
+#define PATH_MAX 4096
+#endif
+
+#ifndef IOV_MAX
+#define IOV_MAX	1024
+#endif
+
 #ifndef HAVE_CLOSEFROM
 /* closefrom.c */
 void		 closefrom(int);