install-reloc: Support multi-binary installation.
[gnulib.git] / lib / freadptr.h
index 7697970..785ec99 100644 (file)
@@ -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
 #include <stddef.h>
 #include <stdio.h>
 
-#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 a pointer to freadahead (STREAM)
-   bytes.
-   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 <stdio_ext.h>
+# 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