summaryrefslogtreecommitdiffstats
path: root/include/stdio.h
diff options
context:
space:
mode:
authortheraven <theraven@FreeBSD.org>2011-11-13 16:18:48 +0000
committertheraven <theraven@FreeBSD.org>2011-11-13 16:18:48 +0000
commitdd1ce6fd6c2c0f0c70f3c78a4959185bb93eb1c3 (patch)
treeede420007b0ecbd457ac852e9d2f0b7e6c8c5649 /include/stdio.h
parentec6184ed07931e8bfc991db91ce884df5d2bddad (diff)
downloadFreeBSD-src-dd1ce6fd6c2c0f0c70f3c78a4959185bb93eb1c3.zip
FreeBSD-src-dd1ce6fd6c2c0f0c70f3c78a4959185bb93eb1c3.tar.gz
The spec says that FILE must be defined in wchar.h, but it wasn't. It
is now. Also hide some macros in C++ mode that will break C++ namespaced calls. Approved by: dim (mentor)
Diffstat (limited to 'include/stdio.h')
-rw-r--r--include/stdio.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/include/stdio.h b/include/stdio.h
index ea3dea8e..bbeb0de 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -107,7 +107,7 @@ struct __sbuf {
* inline functions. To preserve ABI compat, these members must not
* be disturbed. These members are marked below with (*).
*/
-typedef struct __sFILE {
+struct __sFILE {
unsigned char *_p; /* (*) current position in (some) buffer */
int _r; /* (*) read space left for getc() */
int _w; /* (*) write space left for putc() */
@@ -144,8 +144,11 @@ typedef struct __sFILE {
int _fl_count; /* recursive lock count */
int _orientation; /* orientation for fwide() */
__mbstate_t _mbstate; /* multibyte conversion state */
-} FILE;
-
+};
+#ifndef _STDFILE_DECLARED
+#define _STDFILE_DECLARED
+typedef struct __sFILE FILE;
+#endif
#ifndef _STDSTREAM_DECLARED
__BEGIN_DECLS
extern FILE *__stdinp;
@@ -467,6 +470,7 @@ static __inline int __sputc(int _c, FILE *_p) {
__swbuf((int)(c), p) : \
(*(p)->_p = (c), (int)*(p)->_p++))
#endif
+#ifndef __cplusplus
#define __sfeof(p) (((p)->_flags & __SEOF) != 0)
#define __sferror(p) (((p)->_flags & __SERR) != 0)
@@ -506,6 +510,7 @@ extern int __isthreaded;
#define getchar_unlocked() getc_unlocked(stdin)
#define putchar_unlocked(x) putc_unlocked(x, stdout)
#endif
+#endif /* __cplusplus */
__END_DECLS
#endif /* !_STDIO_H_ */
OpenPOWER on IntegriCloud