X-Git-Url: https://git.distorted.org.uk/~mdw/termux-packages/blobdiff_plain/e35a44d7c1cdff24121e1307b9931de7b092f1da..d3e5452e3ee76b8c454bc018f03d53ec567c49de:/ndk_patches/stdio.h.patch diff --git a/ndk_patches/stdio.h.patch b/ndk_patches/stdio.h.patch deleted file mode 100644 index c64fda15..00000000 --- a/ndk_patches/stdio.h.patch +++ /dev/null @@ -1,78 +0,0 @@ -diff -u -r /home/fornwall/lib/android-ndk/platforms/android-21/arch-arm/usr/include/stdio.h ./usr/include/stdio.h ---- /home/fornwall/lib/android-ndk/platforms/android-21/arch-arm/usr/include/stdio.h 2016-03-03 16:54:24.000000000 -0500 -+++ ./usr/include/stdio.h 2016-04-11 06:54:22.893930847 -0400 -@@ -52,6 +52,10 @@ - #include - #include - -+#include /* For strcpy(3) used by ctermid() */ -+#include /* For O_RDWR and other O_* constants */ -+#include /* For arc4random() */ -+ - #define __need_NULL - #include - -@@ -193,7 +196,7 @@ - - /* System V/ANSI C; this is the wrong way to do this, do *not* use these. */ - #if __BSD_VISIBLE || __XPG_VISIBLE --#define P_tmpdir "/tmp/" -+#define P_tmpdir "@TERMUX_PREFIX@/tmp/" - #endif - #define L_tmpnam 1024 /* XXX must be == PATH_MAX */ - #define TMP_MAX 308915776 -@@ -257,7 +260,6 @@ - int setvbuf(FILE * __restrict, char * __restrict, int, size_t); - int sscanf(const char * __restrict, const char * __restrict, ...) - __scanflike(2, 3); --FILE *tmpfile(void); - int ungetc(int, FILE *); - int vfprintf(FILE * __restrict, const char * __restrict, __va_list) - __printflike(2, 0); -@@ -371,6 +373,16 @@ - #define fwopen(cookie, fn) funopen(cookie, 0, fn, 0, 0) - #endif /* __BSD_VISIBLE */ - -+/* Needed by gnulibs freading() */ -+#define __sferror(p) (((p)->_flags & __SERR) != 0) -+ -+/* Used by perl, fish, and others */ -+static char* ctermid(char* s) { -+ if (s == 0) return "/dev/tty"; -+ strcpy(s, "/dev/tty"); -+ return s; -+} -+ - #if defined(__BIONIC_FORTIFY) - - __BEGIN_DECLS -@@ -462,4 +474,29 @@ - - #endif /* defined(__BIONIC_FORTIFY) */ - -+__BEGIN_DECLS -+ -+extern int open(const char*, int, ...); -+extern pid_t getpid(); -+extern int unlink(const char*); -+static FILE* tmpfile() { -+ int p = getpid(); -+ char* path; -+ int i; -+ for (i = 0; i < 100; i++) { -+ unsigned int r = arc4random(); -+ if (asprintf(&path, "@TERMUX_PREFIX@/tmp/tmpfile.%d-%u", p, r) == -1) return NULL; -+ int fd = open(path, O_RDWR | O_CREAT | O_EXCL | O_LARGEFILE); -+ free(path); -+ if (fd >= 0) { -+ FILE* result = fdopen(fd, "w+"); -+ unlink(path); -+ return result; -+ } -+ } -+ return NULL; -+} -+ -+__END_DECLS -+ - #endif /* _STDIO_H_ */