cvs commit: src/lib/libc/stdio Makefile.inc __fpending.c _flock_stub.c asprintf.c fclose.c fcookie.c fdopen.c fflush.c fgetc.c fgetln.c fgets.c fileno.c findfp.c fopen.c fpurge.c fputs.c fread.c freopen.c fseek.c ftell.c funopen.c fvwrite.c ...
Joerg Sonnenberger
joerg at crater.dragonflybsd.org
Sat Jul 23 13:23:19 PDT 2005
joerg 2005/07/23 13:23:06 PDT
DragonFly src repository
Modified files:
lib/libc/stdio Makefile.inc _flock_stub.c asprintf.c
fclose.c fdopen.c fflush.c fgetc.c
fgetln.c fgets.c fileno.c findfp.c
fopen.c fpurge.c fputs.c fread.c
freopen.c fseek.c ftell.c funopen.c
fvwrite.c fwalk.c fwrite.c local.h
makebuf.c perror.c puts.c putw.c refill.c
rget.c setvbuf.c snprintf.c sprintf.c
sscanf.c stdio.c ungetc.c vasprintf.c
vfprintf.c vfscanf.c vsnprintf.c
vsprintf.c vsscanf.c wbuf.c wsetup.c
lib/libftpio ftpio.c
include stdio.h
gnu/usr.bin/cvs/lib Makefile config.h.proto
Added files:
lib/libc/stdio __fpending.c fcookie.c priv_stdio.h
Removed files:
lib/libc/stdio fvwrite.h glue.h
Log:
First step to cleaning up stdio. This breaks the libc ABI, all programs
have to be recompiled.
Make FILE an opaque type for normal operation (anything outside libc).
This means programs have to use the exported interface, they can neither
make static instances on the heap or access fields of their own.
Introduce a new type __FILE_public, which contains the fields accessed
by the various macros. It is placed first in the real FILE and the
macros cast the given FILE * to __FILE_public for access. To allow
better argument checks, all macros have been converted to inline
functions instead.
Merge the various stdio helper headers into a single priv_stdio.h. The
license from the original files has been kept, the third clause is gone
as part of the UCB copyright addendum. They haven't been changed in
FreeBSD at all.
Add two new helper functions, fcookie and __fpending to read parts of
the hidden state. The former is handy for funopen users, the latter
exists on other systems as well.
Cleanup some minor warnings on the way and hide some local functions
with static.
Adept libftpio and CVS to the chanced API.
Revision Changes Path
1.3 +3 -3 src/lib/libc/stdio/Makefile.inc
1.9 +1 -0 src/lib/libc/stdio/_flock_stub.c
1.6 +6 -5 src/lib/libc/stdio/asprintf.c
1.9 +8 -6 src/lib/libc/stdio/fclose.c
1.6 +5 -3 src/lib/libc/stdio/fdopen.c
1.6 +9 -7 src/lib/libc/stdio/fflush.c
1.5 +1 -0 src/lib/libc/stdio/fgetc.c
1.5 +17 -15 src/lib/libc/stdio/fgetln.c
1.6 +9 -7 src/lib/libc/stdio/fgets.c
1.5 +3 -0 src/lib/libc/stdio/fileno.c
1.8 +13 -11 src/lib/libc/stdio/findfp.c
1.5 +4 -3 src/lib/libc/stdio/fopen.c
1.6 +6 -4 src/lib/libc/stdio/fpurge.c
1.5 +4 -2 src/lib/libc/stdio/fputs.c
1.6 +10 -8 src/lib/libc/stdio/fread.c
1.6 +19 -17 src/lib/libc/stdio/freopen.c
1.8 +32 -30 src/lib/libc/stdio/fseek.c
1.6 +7 -5 src/lib/libc/stdio/ftell.c
1.5 +7 -7 src/lib/libc/stdio/funopen.c
1.7 +23 -23 src/lib/libc/stdio/fvwrite.c
1.5 +2 -2 src/lib/libc/stdio/fwalk.c
1.5 +3 -2 src/lib/libc/stdio/fwrite.c
1.7 +1 -1 src/lib/libc/stdio/local.h
1.6 +11 -9 src/lib/libc/stdio/makebuf.c
1.6 +3 -3 src/lib/libc/stdio/perror.c
1.5 +4 -3 src/lib/libc/stdio/puts.c
1.5 +1 -1 src/lib/libc/stdio/putw.c
1.8 +23 -22 src/lib/libc/stdio/refill.c
1.3 +5 -3 src/lib/libc/stdio/rget.c
1.6 +13 -11 src/lib/libc/stdio/setvbuf.c
1.5 +6 -5 src/lib/libc/stdio/snprintf.c
1.5 +7 -5 src/lib/libc/stdio/sprintf.c
1.6 +6 -4 src/lib/libc/stdio/sscanf.c
1.6 +12 -10 src/lib/libc/stdio/stdio.c
1.6 +23 -21 src/lib/libc/stdio/ungetc.c
1.6 +7 -5 src/lib/libc/stdio/vasprintf.c
1.10 +10 -11 src/lib/libc/stdio/vfprintf.c
1.8 +34 -33 src/lib/libc/stdio/vfscanf.c
1.6 +7 -5 src/lib/libc/stdio/vsnprintf.c
1.6 +7 -5 src/lib/libc/stdio/vsprintf.c
1.7 +6 -4 src/lib/libc/stdio/vsscanf.c
1.6 +7 -5 src/lib/libc/stdio/wbuf.c
1.5 +13 -11 src/lib/libc/stdio/wsetup.c
1.8 +0 -11 src/lib/libftpio/ftpio.c
1.8 +65 -80 src/include/stdio.h
1.12 +1 -1 src/gnu/usr.bin/cvs/lib/Makefile
1.8 +2 -2 src/gnu/usr.bin/cvs/lib/config.h.proto
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/Makefile.inc.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/_flock_stub.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/asprintf.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/fclose.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/fdopen.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/fflush.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/fgetc.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/fgetln.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/fgets.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/fileno.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/findfp.c.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/fopen.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/fpurge.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/fputs.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/fread.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/freopen.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/fseek.c.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/ftell.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/funopen.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/fvwrite.c.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/fwalk.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/fwrite.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/local.h.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/makebuf.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/perror.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/puts.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/putw.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/refill.c.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/rget.c.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/setvbuf.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/snprintf.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/sprintf.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/sscanf.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/stdio.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/ungetc.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/vasprintf.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/vfprintf.c.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/vfscanf.c.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/vsnprintf.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/vsprintf.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/vsscanf.c.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/wbuf.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/wsetup.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libftpio/ftpio.c.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/include/stdio.h.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/gnu/usr.bin/cvs/lib/Makefile.diff?r1=1.11&r2=1.12&f=u
http://www.dragonflybsd.org/cvsweb/src/gnu/usr.bin/cvs/lib/config.h.proto.diff?r1=1.7&r2=1.8&f=u
More information about the Commits
mailing list