libcairo: Update from 1.14.4 to 1.14.6
[termux-packages] / ndk_patches / unistd.patch
CommitLineData
59f0d218
FF
1diff -u -r /home/fornwall/lib/android-ndk/platforms/android-19/arch-arm/usr/include/unistd.h ./usr/include/unistd.h
2--- /home/fornwall/lib/android-ndk/platforms/android-19/arch-arm/usr/include/unistd.h 2012-08-21 07:23:12.000000000 +0200
3+++ ./usr/include/unistd.h 2014-07-09 09:55:58.443639544 +0200
4@@ -35,6 +35,7 @@
5 #include <sys/sysconf.h>
6 #include <linux/capability.h>
7 #include <pathconf.h>
8+#include <asm/unistd.h>
9
10 __BEGIN_DECLS
11
12@@ -166,6 +174,43 @@
13 extern char* ttyname(int);
14 extern int ttyname_r(int, char*, size_t);
15
16+/* start android polyfill of ttyname(3) and ttyname_r(3) */
17+#define ttyname(a) android_polyfill_ttyname(a)
18+#define ttyname_r(a, b, c) android_polyfill_ttyname_r(a, b, c)
19+
20+static int android_polyfill_ttyname_r(int fd, char* buf, size_t buflen)
21+{
22+ char symlink_path[32] = "/proc/self/fd/";
23+ ssize_t siz;
24+
25+ if (!isatty(fd)) return -1;
26+
27+ /* Would like to do sprintf(symlink_path, "/proc/self/fd/%d", fd), but stdio.h may not be included. */
28+ int shifter = fd;
29+ char* p = symlink_path + 14;
30+ do {
31+ p++;
32+ shifter = shifter / 10;
33+ } while(shifter);
34+ *p = '\0';
35+ do {
36+ *--p = (fd % 10) + '0';
37+ fd = fd / 10;
38+ } while (fd);
39+
40+ siz = readlink(symlink_path, buf, buflen);
41+ if (siz < 0 || siz == buflen) return -1;
42+ buf[siz] = '\0';
43+ return 0;
44+}
45+
46+static char* android_polyfill_ttyname(int fd)
47+{
48+ static char buf[32];
49+ return (ttyname_r(fd, buf, sizeof(buf)) == 0) ? buf : NULL;
50+}
51+/* end android polyfill of ttyname(3) and ttyname_r(3) */
52+
53 extern int acct(const char* filepath);
54
55 static __inline__ int getpagesize(void) {