X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2Ffreadptr.h;h=785ec99ba2ccc0be9b78aed9ff9de50caac2d944;hb=96a263f7953ec80851c81f3a1f40127600b7ea7b;hp=3620a143721dadffdb5bf1d8bbe209a91ef9c7b4;hpb=e8014c6b48c5e156b61c09cf7e5681b64c644344;p=gnulib.git diff --git a/lib/freadptr.h b/lib/freadptr.h index 3620a1437..785ec99ba 100644 --- a/lib/freadptr.h +++ b/lib/freadptr.h @@ -1,5 +1,5 @@ /* Retrieve information about a FILE stream. - Copyright (C) 2007-2008 Free Software Foundation, Inc. + Copyright (C) 2007-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,25 +17,32 @@ #include #include -#ifdef __cplusplus -extern "C" { -#endif - /* Assuming the stream STREAM is open for reading: - Return a pointer to the input buffer of STREAM. - If freadahead (STREAM) > 0, the result is either a pointer to - freadahead (STREAM) bytes, or NULL. The latter case can happen after - use of 'ungetc (..., STREAM)'. - If freadahead (STREAM) == 0, the result is not usable; it may be NULL. - In this case, you should use getc (STREAM), fgetc (STREAM), or - fread (..., STREAM) to access the input from STREAM. + Return a pointer to the input buffer of STREAM, or NULL. + If the returned pointer is non-NULL, *SIZEP is set to the (positive) size + of the input buffer. + If the returned pointer is NULL, you should use getc (STREAM), + fgetc (STREAM), or fread (..., STREAM) to access the input from STREAM. The resulting pointer becomes invalid upon any operation on STREAM. STREAM must not be wide-character oriented. */ -extern const char * freadptr (FILE *stream); +#if HAVE___FREADPTR /* musl libc */ + +# include +# define freadptr(stream,sizep) __freadptr (stream, sizep) + +#else -#ifdef __cplusplus +# ifdef __cplusplus +extern "C" { +# endif + +extern const char * freadptr (FILE *stream, size_t *sizep); + +# ifdef __cplusplus } +# endif + #endif