ftell.c.patch   [plain text]


--- ftell.c.bsdnew	2009-11-11 13:33:10.000000000 -0800
+++ ftell.c	2009-11-11 13:33:10.000000000 -0800
@@ -101,6 +101,8 @@ _ftello(fp, offset)
 	 * Find offset of underlying I/O object, then
 	 * adjust for buffered bytes.
 	 */
+	if (__sflush(fp))		/* may adjust seek offset on append stream */
+		return (1);
 	if (fp->_flags & __SOFF)
 		pos = fp->_offset;
 	else {