]> git.saurik.com Git - apple/libc.git/blobdiff - stdio/FreeBSD/makebuf.c.patch
Libc-825.24.tar.gz
[apple/libc.git] / stdio / FreeBSD / makebuf.c.patch
diff --git a/stdio/FreeBSD/makebuf.c.patch b/stdio/FreeBSD/makebuf.c.patch
deleted file mode 100644 (file)
index 970a38d..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
---- makebuf.c.bsdnew   2009-11-11 13:33:12.000000000 -0800
-+++ makebuf.c  2009-11-11 13:33:13.000000000 -0800
-@@ -47,6 +47,9 @@ __FBSDID("$FreeBSD: src/lib/libc/stdio/m
- #include "libc_private.h"
- #include "local.h"
-+#define MAXBUFSIZE    (1 << 16)
-+#define TTYBUFSIZE    4096
-+
- /*
-  * Allocate a file buffer, or switch to unbuffered I/O.
-  * Per the ANSI C standard, ALL tty devices default to line buffered.
-@@ -69,6 +72,12 @@ __smakebuf(fp)
-               return;
-       }
-       flags = __swhatbuf(fp, &size, &couldbetty);
-+      if (couldbetty && isatty(fp->_file)) {
-+              flags |= __SLBF;
-+              /* st_blksize for ttys is 128K, so make it more reasonable */
-+              if (size > TTYBUFSIZE)
-+                      fp->_blksize = size = TTYBUFSIZE;
-+      }
-       if ((p = malloc(size)) == NULL) {
-               fp->_flags |= __SNBF;
-               fp->_bf._base = fp->_p = fp->_nbuf;
-@@ -79,8 +88,6 @@ __smakebuf(fp)
-       flags |= __SMBF;
-       fp->_bf._base = fp->_p = p;
-       fp->_bf._size = size;
--      if (couldbetty && isatty(fp->_file))
--              flags |= __SLBF;
-       fp->_flags |= flags;
- }
-@@ -113,8 +120,7 @@ __swhatbuf(fp, bufsize, couldbetty)
-        * __sseek is mainly paranoia.)  It is safe to set _blksize
-        * unconditionally; it will only be used if __SOPT is also set.
-        */
--      *bufsize = st.st_blksize;
--      fp->_blksize = st.st_blksize;
-+      fp->_blksize = *bufsize = st.st_blksize > MAXBUFSIZE ? MAXBUFSIZE : st.st_blksize;
-       return ((st.st_mode & S_IFMT) == S_IFREG && fp->_seek == __sseek ?
-           __SOPT : __SNPT);
- }