stdio doc patch

Jeff Johnston jjohnstn@redhat.com
Fri Jul 13 17:34:00 GMT 2007


Thanks Eric.  Please go ahead.

-- Jeff J.

Eric Blake wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> OK to apply?  I noticed that I failed to properly document fopencookie,
> and in the process of fixing that, discovered ungetc was undocumented.
> 
> 2007-07-13  Eric Blake  <ebb9@byu.net>
> 
> 	Documentation updates.
> 	* libc/stdio/ungetc.c: Document ungetc.
> 	* libc/stdio/Makefile.am (CHEWOUT_FILES): Sort, match current list
> 	of files with documentation.
> 	* libc/stdio/Makefile.in: Regenerate.
> 	* libc/stdio/stdio.tex: Sort and update stdio documentation index.
> 
> - --
> Don't work too hard, make some time for fun as well!
> 
> Eric Blake             ebb9@byu.net
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.5 (Cygwin)
> Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> 
> iD8DBQFGl4d384KuGfSFAYARAiIlAJ9EQGTKDePB9xp4SjYyit2cbo+8tQCeKto+
> QRTjO3TNHbUw1YXdM3C8KKY=
> =0aW8
> -----END PGP SIGNATURE-----
> 
> 
> ------------------------------------------------------------------------
> 
> Index: libc/stdio/Makefile.am
> ===================================================================
> RCS file: /cvs/src/src/newlib/libc/stdio/Makefile.am,v
> retrieving revision 1.25
> diff -u -p -r1.25 Makefile.am
> --- libc/stdio/Makefile.am	4 Jun 2007 18:10:16 -0000	1.25
> +++ libc/stdio/Makefile.am	13 Jul 2007 14:02:42 -0000
> @@ -179,7 +179,6 @@ CHEWOUT_FILES = \
>  	fgetpos.def		\
>  	fgets.def		\
>  	fileno.def		\
> -	fiprintf.def		\
>  	fopen.def		\
>  	fopencookie.def		\
>  	fputc.def		\
> @@ -192,8 +191,8 @@ CHEWOUT_FILES = \
>  	funopen.def		\
>  	fwrite.def		\
>  	getc.def		\
> -	getchar.def		\
>  	getc_u.def		\
> +	getchar.def		\
>  	getchar_u.def		\
>  	getdelim.def		\
>  	getline.def		\
> @@ -202,8 +201,8 @@ CHEWOUT_FILES = \
>  	mktemp.def		\
>  	perror.def		\
>  	putc.def		\
> -	putchar.def		\
>  	putc_u.def		\
> +	putchar.def		\
>  	putchar_u.def		\
>  	puts.def		\
>  	putw.def		\
> @@ -220,6 +219,7 @@ CHEWOUT_FILES = \
>  	sscanf.def		\
>  	tmpfile.def		\
>  	tmpnam.def		\
> +	ungetc.def		\
>  	vfprintf.def		\
>  	vfscanf.def		\
>  	viprintf.def		\
> Index: libc/stdio/stdio.tex
> ===================================================================
> RCS file: /cvs/src/src/newlib/libc/stdio/stdio.tex,v
> retrieving revision 1.7
> diff -u -p -r1.7 stdio.tex
> --- libc/stdio/stdio.tex	11 Oct 2005 23:59:32 -0000	1.7
> +++ libc/stdio/stdio.tex	13 Jul 2007 14:02:42 -0000
> @@ -1,9 +1,9 @@
>  @node Stdio
> -@chapter Input and Output (@file{stdio.h}) 
> +@chapter Input and Output (@file{stdio.h})
>  
>  This chapter comprises functions to manage files
>  or other input/output streams. Among these functions are subroutines
> -to generate or scan strings according to specifications from a format string. 
> +to generate or scan strings according to specifications from a format string.
>  
>  The underlying facilities for input and output depend on the host
>  system, but these functions provide a uniform interface.
> @@ -22,12 +22,14 @@ _stderr_r(@var{reent})
>  instead of the globals @code{stdin}, @code{stdout}, and
>  @code{stderr}.  The argument <[reent]> is a pointer to a reentrancy
>  structure.
> - 
> -@menu  
> +
> +@menu
>  * clearerr::    Clear file or stream error indicator
> +* diprintf::    Print to a file descriptor (integer only)
>  * dprintf::     Print to a file descriptor
>  * fclose::      Close a file
>  * fcloseall::   Close all files
> +* fdopen::      Turn an open file into a stream
>  * feof::        Test for end of file
>  * ferror::      Test whether read/write error has occurred
>  * fflush::      Flush buffered file output
> @@ -36,7 +38,7 @@ structure.
>  * fgets::       Get character string from a file or stream
>  * fileno::      Get file descriptor associated with stream
>  * fopen::       Open a file
> -* fdopen::	Turn an open file into a stream
> +* fopencookie:: Open a stream with custom callbacks
>  * fputc::       Write a character on a stream or file
>  * fputs::       Write a character string in a file or stream
>  * fread::       Read array elements from a file
> @@ -44,6 +46,7 @@ structure.
>  * fseek::       Set file position
>  * fsetpos::     Restore position of a stream or file
>  * ftell::       Return position in a stream or file
> +* funopen::     Open a stream with custom callbacks
>  * fwrite::      Write array elements from memory to a file or stream
>  * getc::        Get a character from a file or stream (macro)
>  * getc_unlocked::	Get a character from a file or stream (macro)
> @@ -68,22 +71,26 @@ structure.
>  * setbuffer::   Specify full buffering for a file or stream with size
>  * setlinebuf::  Specify line buffering for a file or stream
>  * setvbuf::     Specify buffering for a file or stream
> -* printf::      Write formatted output
> -* scanf::       Scan and format input
> -* iprintf::     Write formatted output (integer only)
> -* iscanf::      Scan and format input (integer only)
> +* siprintf::    Write formatted output (integer only)
> +* siscanf::     Scan and format input (integer only)
> +* sprintf::     Write formatted output
> +* sscanf::      Scan and format input
>  * tmpfile::     Create a temporary file
>  * tmpnam::      Generate name for a temporary file
> -* viprintf::    Format variable argument list for non-floating-point output
> -* viscanf::     Scan variable format list for non-floating-point input
> -* vprintf::     Format variable argument list
> -* vscanf::      Format variable argument list
> -@end menu 
> +* ungetc::      Push data back into a stream
> +* vfprintf::    Format variable argument list
> +* vfscanf::     Scan variable argument list
> +* viprintf::    Format variable argument list (integer only)
> +* viscanf::     Scan variable format list (integer only)
> +@end menu
>  
>  @page
>  @include stdio/clearerr.def
>  
>  @page
> +@include stdio/diprintf.def
> +
> +@page
>  @include stdio/dprintf.def
>  
>  @page
> @@ -93,6 +100,9 @@ structure.
>  @include stdio/fcloseall.def
>  
>  @page
> +@include stdio/fdopen.def
> +
> +@page
>  @include stdio/feof.def
>  
>  @page
> @@ -101,14 +111,14 @@ structure.
>  @page
>  @include stdio/fflush.def
>  
> -@page 
> -@include stdio/fgetc.def 
> +@page
> +@include stdio/fgetc.def
>  
>  @page
>  @include stdio/fgetpos.def
>  
> -@page 
> -@include stdio/fgets.def 
> +@page
> +@include stdio/fgets.def
>  
>  @page
>  @include stdio/fileno.def
> @@ -117,7 +127,7 @@ structure.
>  @include stdio/fopen.def
>  
>  @page
> -@include stdio/fdopen.def
> +@include stdio/fopencookie.def
>  
>  @page
>  @include stdio/fputc.def
> @@ -143,14 +153,14 @@ structure.
>  @page
>  @include stdio/fwrite.def
>  
> -@page 
> -@include stdio/getc.def 
> +@page
> +@include stdio/getc.def
>  
>  @page
>  @include stdio/getc_u.def
>  
>  @page
> -@include stdio/getchar.def 
> +@include stdio/getchar.def
>  
>  @page
>  @include stdio/getchar_u.def
> @@ -161,11 +171,11 @@ structure.
>  @page
>  @include stdio/getline.def
>  
> -@page 
> +@page
>  @include stdio/gets.def
>  
> -@page 
> -@include stdio/getw.def 
> +@page
> +@include stdio/getw.def
>  
>  @page
>  @include stdio/mktemp.def
> @@ -188,8 +198,8 @@ structure.
>  @page
>  @include stdio/puts.def
>  
> -@page 
> -@include stdio/putw.def 
> +@page
> +@include stdio/putw.def
>  
>  @page
>  @include stdio/remove.def
> @@ -212,17 +222,17 @@ structure.
>  @page
>  @include stdio/setvbuf.def
>  
> -@page 
> -@include stdio/sprintf.def 
> +@page
> +@include stdio/siprintf.def
>  
>  @page
> -@include stdio/sscanf.def 
> +@include stdio/siscanf.def
>  
> -@page 
> -@include stdio/siprintf.def 
> +@page
> +@include stdio/sprintf.def
>  
> -@page 
> -@include stdio/siscanf.def 
> +@page
> +@include stdio/sscanf.def
>  
>  @page
>  @include stdio/tmpfile.def
> @@ -230,15 +240,17 @@ structure.
>  @page
>  @include stdio/tmpnam.def
>  
> -@page 
> -@include stdio/vfprintf.def 
> +@page
> +@include stdio/ungetc.def
>  
>  @page
> -@include stdio/vfscanf.def
> +@include stdio/vfprintf.def
>  
> -@page 
> -@include stdio/viprintf.def 
> +@page
> +@include stdio/vfscanf.def
>  
> -@page 
> -@include stdio/viscanf.def 
> +@page
> +@include stdio/viprintf.def
>  
> +@page
> +@include stdio/viscanf.def
> Index: libc/stdio/ungetc.c
> ===================================================================
> RCS file: /cvs/src/src/newlib/libc/stdio/ungetc.c,v
> retrieving revision 1.7
> diff -u -p -r1.7 ungetc.c
> --- libc/stdio/ungetc.c	26 Sep 2006 21:22:19 -0000	1.7
> +++ libc/stdio/ungetc.c	13 Jul 2007 14:02:42 -0000
> @@ -14,6 +14,48 @@
>   * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
>   * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
>   */
> +/*
> +FUNCTION
> +<<ungetc>>---push data back into a stream
> +
> +INDEX
> +	ungetc
> +INDEX
> +	_ungetc_r
> +
> +ANSI_SYNOPSIS
> +	#include <stdio.h>
> +	int ungetc(int <[c]>, FILE *<[stream]>);
> +
> +	int _ungetc_r(struct _reent *<[reent]>, int <[c]>, FILE *<[stream]>);
> +
> +DESCRIPTION
> +<<ungetc>> is used to return bytes back to <[stream]> to be read again.
> +If <[c]> is EOF, the stream is unchanged.  Otherwise, the unsigned
> +char <[c]> is put back on the stream, and subsequent reads will see
> +the bytes pushed back in reverse order.  Pushed byes are lost if the
> +stream is repositioned, such as by <<fseek>>, <<fsetpos>>, or
> +<<rewind>>.
> +
> +The underlying file is not changed, but it is possible to push back
> +something different than what was originally read.  Ungetting a
> +character will clear the end-of-stream marker, and decrement the file
> +position indicator.  Pushing back beyond the beginning of a file gives
> +unspecified behavior.
> +
> +The alternate function <<_ungetc_r>> is a reentrant version.  The
> +extra argument <[reent]> is a pointer to a reentrancy structure.
> +
> +RETURNS
> +The character pushed back, or <<EOF>> on error.
> +
> +PORTABILITY
> +ANSI C requires <<ungetc>>, but only requires a pushback buffer of one
> +byte; although this implementation can handle multiple bytes, not all
> +can.  Pushing back a signed char is a common application bug.
> +
> +Supporting OS subroutines required: <<sbrk>>.
> +*/
>  
>  #if defined(LIBC_SCCS) && !defined(lint)
>  static char sccsid[] = "%W% (Berkeley) %G%";
> @@ -84,7 +126,7 @@ _DEFUN(_ungetc_r, (rptr, c, fp),
>    CHECK_INIT (rptr, fp);
>  
>    _flockfile (fp);
> -  
> +
>    /* After ungetc, we won't be at eof anymore */
>    fp->_flags &= ~__SEOF;
>  
> @@ -171,4 +213,3 @@ _DEFUN(ungetc, (c, fp),
>    return _ungetc_r (_REENT, c, fp);
>  }
>  #endif /* !_REENT_ONLY */
> -



More information about the Newlib mailing list