Loading...
stdio/FreeBSD/makebuf.c.patch Libc-583 /dev/null
--- Libc/Libc-583/stdio/FreeBSD/makebuf.c.patch
+++ /dev/null
@@ -1,44 +0,0 @@
---- makebuf.c.orig	2008-08-28 17:18:09.000000000 -0700
-+++ makebuf.c	2008-09-04 14:20:48.000000000 -0700
-@@ -49,6 +49,9 @@ __FBSDID("$FreeBSD: src/lib/libc/stdio/m
- #include "local.h"
- #include "un-namespace.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.
-@@ -71,6 +74,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;
-@@ -81,8 +90,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;
- }
- 
-@@ -115,8 +122,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);
- }