summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjmallett <jmallett@FreeBSD.org>2010-03-31 02:12:24 +0000
committerjmallett <jmallett@FreeBSD.org>2010-03-31 02:12:24 +0000
commitdb9a50e066d33a98681d3b1befa87a212f51d971 (patch)
tree963969564d6b66506bab1bc951483497cc43657b
parentf9c2f1d54122971fb1dd0577ef02be005c990ce8 (diff)
downloadFreeBSD-src-db9a50e066d33a98681d3b1befa87a212f51d971.zip
FreeBSD-src-db9a50e066d33a98681d3b1befa87a212f51d971.tar.gz
Be like stdlib.h and bring in a wchar_t definition and use it to prototype
wcstoimax and wcstoumax, rather than spelling it __wchar_t. This is necessary to use these functions in C++ where wchar_t is different to __wchar_t and is a built-in type. It may be better to use __wchar_t here and to simply define __wchar_t as being wchar_t in C++ mode rather than to bring in wchar_t, but this is less invasive and follows our existing practice, and restores wchar_t usage in this file to what it was before r1.8.
-rw-r--r--include/inttypes.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/include/inttypes.h b/include/inttypes.h
index 05171a6..9aad660 100644
--- a/include/inttypes.h
+++ b/include/inttypes.h
@@ -32,6 +32,13 @@
#include <machine/_inttypes.h>
#include <sys/stdint.h>
+#ifndef __cplusplus
+#ifndef _WCHAR_T_DECLARED
+typedef __wchar_t wchar_t;
+#define _WCHAR_T_DECLARED
+#endif
+#endif
+
typedef struct {
intmax_t quot; /* Quotient. */
intmax_t rem; /* Remainder. */
@@ -43,10 +50,10 @@ imaxdiv_t imaxdiv(intmax_t, intmax_t) __pure2;
intmax_t strtoimax(const char * __restrict, char ** __restrict, int);
uintmax_t strtoumax(const char * __restrict, char ** __restrict, int);
-intmax_t wcstoimax(const __wchar_t * __restrict,
- __wchar_t ** __restrict, int);
-uintmax_t wcstoumax(const __wchar_t * __restrict,
- __wchar_t ** __restrict, int);
+intmax_t wcstoimax(const wchar_t * __restrict,
+ wchar_t ** __restrict, int);
+uintmax_t wcstoumax(const wchar_t * __restrict,
+ wchar_t ** __restrict, int);
__END_DECLS
#endif /* !_INTTYPES_H_ */
OpenPOWER on IntegriCloud