#ifndef __WCHAR_H
#define __WCHAR_H __WCHAR_H
+// TODO: Documentation
+
// ----------------------------------------------------------------------------
// MACROS
-#define NULL 0
-#define WCHAR_MAX // TODO
-#define WCHAR_MIN // TODO
-#define WEOF // TODO
+#include "__NULL.h"
+#include "__WCHAR.h"
+
+#define WEOF // TODO - personality?
// ----------------------------------------------------------------------------
// TYPEDEFS
-typedef mbstate_t;
-typedef size_t;
-typedef wint_t;
-struct tm;
+#include "__tm.h"
+#include "__size_t.h"
+#include "__wchar_t.h"
+#include "__wint_t.h"
-#ifndef __cplusplus
-typedef wchar_t;
-#endif // __cplusplus
+typedef mbstate_t; // TODO - personality?
+typedef size_t; // TODO - personality?
+typedef wint_t; // TODO - personality?
// ----------------------------------------------------------------------------
// FUNCTIONS
wchar_t * wmemmove( wchar_t * s1, const wchar_t * s2, size_t n );
wchar_t * wmemset( wchar_t * s, wchar_t c, size_t n );
-#ifdef __cplusplus
-
-const wchar_t * wcschr( const wchar_t * s, wchar_t c );
-wchar_t * wcschr( wchar_t * s, wchar_t c );
-const wchar_t * wcspbrk( const wchar_t * s1, const wchar_t * s2 );
-wchar_t * wcspbrk( wchar_t * s1, const wchar_t * s2 );
-const wchar_t * wcsrchr( const wchar_t * s, wchar_t c );
-wchar_t * wcsrchr( wchar_t * s, wchar_t c );
-const wchar_t * wcsstr( const wchar_t * s1, const wchar_t * s2 );
-wchar_t * wcsstr( wchar_t * s1, const wchar_t * s2 );
-const wchar_t * wmemchr( const wchar_t * s, wchar_t c, size_t n );
-wchar_t * wmemchr( wchar_t * s, wchar_t c, size_t n );
-
-#else
-
wchar_t * wcschr( const wchar_t * s, wchar_t c );
wchar_t * wcspbrk( const wchar_t * s1, const wchar_t * s2 );
wchar_t * wcsrchr( const wchar_t * s, wchar_t c );
wchar_t * wcsstr( const wchar_t * s1, const wchar_t * s2 );
wchar_t * wmemchr( const wchar_t * s, wchar_t c, size_t n);
-#endif // __cplusplus
-
#endif // __WCHAR_H