Eric Blake
17c61d6a2c
Implement funopen, fopencookie.
* libc/include/sys/reent.h (struct __sFILE, struct __sFILE64):
Switch to reentrant callbacks.
* libc/include/stdio.h (funopen): Fix declaration.
(fopencookie): Declare.
* libc/stdio/local.h (__sread, __swrite, __sseek, __sclose)
(__sseek64, __swrite64): Fix prototypes.
[__SCLE]: Pull in setmode declaration.
* libc/stdio/stdio.c (__sread, __swrite, __sseek, __sclose): Fix
reentrancy.
* libc/stdio64/stdio64.c (__sseek64_r, __swrite64_r): Delete.
(__sseek64, __swrite64): Fix reentrancy.
* libc/stdio/fseek.c (_fseek_r): Account for overflow, and fix
reentrancy.
* libc/stdio/ftell.c (_ftell_r): Likewise.
* libc/stdio/flags.c (__sflags): Don't lose __SAPP on "a+".
* libc/stdio/fclose.c (_fclose_r): Fix reentrancy.
* libc/stdio/freopen.c (_freopen_r): Likewise.
* libc/stdio/fvwrite.c (__sfvwrite_r): Likewise.
* libc/stdio/refill.c (__srefill_r): Likewise.
* libc/stdio/siscanf.c (eofread): Likewise.
* libc/stdio/sscanf.c (eofread): Likewise.
* libc/stdio/vsiscanf.c (eofread1): Likewise.
* libc/stdio/vsscanf.c (eofread1): Likewise.
* libc/stdio64/freopen64.c (_freopen64_r): Likewise.
* libc/stdio64/fseeko64.c (_fseeko64_r): Likewise.
* libc/stdio64/ftello64.c (_ftello64_r): Likewise.
* libc/stdio/fflush.c (fflush): Improve reentrancy, although more
could be fixed.
* libc/stdio/fopencookie.c (_fopencookie_r, fopencookie): New file.
* libc/stdio/funopen.c (_funopen_r, funopen): New file.
* libc/stdio/Makefile.am (ELIX_4_SOURCES, CHEWOUT_FILES): Build
new files.
* libc/stdio/Makefile.in: Regenerate.
2007-06-04 18:10:17 +00:00
..
2004-06-11 20:37:10 +00:00
2002-06-20 19:51:40 +00:00
2007-03-15 21:32:13 +00:00
2007-02-01 16:33:05 +00:00
2005-10-04 20:47:39 +00:00
2007-02-02 16:22:28 +00:00
2005-12-14 09:06:00 +00:00
2007-02-14 10:07:02 +00:00
2000-02-17 19:39:52 +00:00
2004-09-13 17:10:20 +00:00
2004-09-16 21:30:51 +00:00
2004-05-07 20:29:24 +00:00
2002-06-20 19:51:40 +00:00
2007-06-04 18:10:17 +00:00
2000-02-17 19:39:52 +00:00
2000-12-12 01:24:09 +00:00
2006-04-18 20:06:09 +00:00
2003-12-05 21:09:13 +00:00
2004-09-16 21:30:51 +00:00
2005-01-24 18:46:09 +00:00
2002-08-23 01:56:05 +00:00
2006-02-15 10:26:30 +00:00
2000-02-17 19:39:52 +00:00
2000-12-04 18:47:07 +00:00
2007-02-07 17:19:35 +00:00
2007-02-07 17:19:35 +00:00
2000-02-17 19:39:52 +00:00
2000-02-17 19:39:52 +00:00