/[avr-libc]/avr-libc/ChangeLog
ViewVC logotype

Diff of /avr-libc/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.544 by joerg_wunsch, Tue Sep 6 18:17:42 2005 UTC revision 1.545 by joerg_wunsch, Tue Sep 6 18:49:14 2005 UTC
# Line 1  Line 1 
1  2005-09-06 Joerg Wunsch <j.gnu@uriah.heep.sax.de>  2005-09-06 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
2    
3            Major API changes of the standard IO facilities.
4    
5            Part of these changes (passing user data to get and put)
6            have been contributed by Ted Roth as patch #3750.
7    
8            * include/stdio.h: implement the new prototype for fdevopen()
9            that allows passing user data to the backend put and get
10            functions; retain a backwards-compatible prototype iff
11            __STDIO_FDEVOPEN_COMPAT_12 is defined before including stdio.h;
12            move definition of struct __file from stdio_internal.h here, so
13            user code will be able to directly declare objects of type FILE;
14            include the udata field in struct __file; add macros
15            fdev_set_udata() and fdev_get_udata() to access the user data
16            field; implement a macro-based, malloc()-free alternative API
17            to fdevopen() consisting of the macros fdev_setup_stream() and
18            FDEV_SETUP_STREAM() together with _FDEV_SETUP_READ,
19            _FDEV_SETUP_WRITE, and _FDEV_SETUP_RW that can be passed to
20            declare the open intent; add _FDEV_ERR and _FDEV_EOF to be
21            returned by the internal get function; add inline macros
22            shadowing the functions clearerr(), feof(), and ferror() (now
23            that struct __file is user-visible); add documentation for all
24            the API changes in the introduction; sub-structure the
25            introductional doxygen comment; remove the "this is likely to
26            be changed in future" warning.
27            * libc/stdio/fdevopen.c (fdevopen): Update dox for new get and put
28            argument types.
29            Change the get() and put() function pointers so that they take the
30            stream as an argument.
31            Remove the definition of __iob[] to avoid the need for dragging
32            in fdevopen() to access the standard streams.
33            * libc/stdio/fgetc.c (fgetc): Pass stream to get() method;
34            set __SERR or __SEOF dependent of the backend's return code.
35            * libc/stdio/fputc.c (fputc): Pass stream to put() method.
36            * libc/stdio/fputs.c (fputs): Ditto.
37            * libc/stdio/fputs_p.c (fputs_P): Ditto.
38            * libc/stdio/fwrite.c (fwrite): Ditto.
39            * libc/stdio/puts.c (puts): Ditto.
40            * libc/stdio/puts_p.c (puts_P): Ditto.
41            * libc/stdio/stdio_private.h: remove struct __file from here.
42            * libc/stdio/iob.c: New file (split off of fdevopen.c).
43            * libc/stdio/Files.am: add iob.c.
44            * doc/examples/twitest/twitest.c: convert to the new stdio API.
45            * libc/stdio/clearerr.c: undef the shadow macro first.
46            * libc/stdio/ferror.c: (Ditto.)
47            * libc/stdio/feof.c: (Ditto.)
48            * libc/stdio/fclose.c: change inttypes.h into stdint.h.
49            * libc/stdio/fgets.c: don't forcibly set __SERR, getc() already
50            handled that.
51            * libc/stdio/gets.c: (Ditto.)
52            * libc/stdio/vfprintf.c: Allocate the fp conversion buffer on
53            the stack as opposed to using malloc().
54            * libc/stdio/vfscanf.c: (Ditto.)
55    
56    2005-09-06 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
57    
58          * doc/api/faq.dox: Minor clarifications: make the volatile          * doc/api/faq.dox: Minor clarifications: make the volatile
59          description a bit more detailed, explain that r2 through r15 are          description a bit more detailed, explain that r2 through r15 are
60          available for global register assignment, explain .initN sections          available for global register assignment, explain .initN sections

Legend:
Removed from v.1.544  
changed lines
  Added in v.1.545

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26