Skip to content

Commit c3c8e43

Browse files
committed
added wint_t and <wctype.h>. Along with <cwchar> and <cwctype>
1 parent 34262d6 commit c3c8e43

File tree

8 files changed

+149
-24
lines changed

8 files changed

+149
-24
lines changed

src/libc/header_test.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,6 @@
2626
#include <tgmath.h>
2727
#include <time.h>
2828
#include <wchar.h>
29+
#include <wctype.h>
2930

3031
/* Tests for conflicts */

src/libc/include/__wchar_def.h

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#ifndef _WCHAR_DEF_H
2+
#define _WCHAR_DEF_H
3+
4+
#include <cdefs.h>
5+
6+
#ifndef _WCHAR_T_DEFINED
7+
#define _WCHAR_T_DEFINED
8+
#ifndef __cplusplus
9+
typedef __WCHAR_TYPE__ wchar_t;
10+
#endif /* __cplusplus */
11+
#endif /* _WCHAR_T_DEFINED */
12+
13+
#ifndef _WINT_T_DEFINED
14+
#define _WINT_T_DEFINED
15+
typedef __WINT_TYPE__ wint_t;
16+
#endif /* _WINT_T_DEFINED */
17+
18+
#ifndef _WCHAR_LIMITS_DEFINED
19+
#define _WCHAR_LIMITS_DEFINED
20+
#define WCHAR_MIN (~__WCHAR_MAX__)
21+
#define WCHAR_MAX __WCHAR_MAX__
22+
#define WCHAR_WIDTH __WCHAR_WIDTH__
23+
#endif /* _WCHAR_LIMITS_DEFINED */
24+
25+
#ifndef _WINT_LIMITS_DEFINED
26+
#define _WINT_LIMITS_DEFINED
27+
#define WINT_MIN (~__WINT_MAX__)
28+
#define WINT_MAX __WINT_MAX__
29+
#define WINT_WIDTH __WINT_WIDTH__
30+
#endif /* _WINT_LIMITS_DEFINED */
31+
32+
#ifndef WEOF
33+
#define WEOF -1
34+
#endif
35+
36+
#endif /* _WCHAR_DEF_H */

src/libc/include/stdint.h

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -166,15 +166,18 @@ typedef __UINTPTR_TYPE__ uintptr_t;
166166
#define SIZE_MAX __SIZE_MAX__
167167
#define SIZE_WIDTH __SIZE_WIDTH__
168168

169-
#define WINT_MIN (~__WINT_MAX__)
170-
#define WINT_MAX __WINT_MAX__
171-
#define WINT_WIDTH __WINT_WIDTH__
172-
173169
#ifndef _WCHAR_LIMITS_DEFINED
174170
#define _WCHAR_LIMITS_DEFINED
175171
#define WCHAR_MIN (~__WCHAR_MAX__)
176172
#define WCHAR_MAX __WCHAR_MAX__
177173
#define WCHAR_WIDTH __WCHAR_WIDTH__
178-
#endif
174+
#endif /* _WCHAR_LIMITS_DEFINED */
175+
176+
#ifndef _WINT_LIMITS_DEFINED
177+
#define _WINT_LIMITS_DEFINED
178+
#define WINT_MIN (~__WINT_MAX__)
179+
#define WINT_MAX __WINT_MAX__
180+
#define WINT_WIDTH __WINT_WIDTH__
181+
#endif /* _WINT_LIMITS_DEFINED */
179182

180183
#endif/*_STDINT_H*/

src/libc/include/wchar.h

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,7 @@
11
#ifndef _WCHAR_H
22
#define _WCHAR_H
33

4-
#include <cdefs.h>
5-
6-
#ifndef _WCHAR_T_DEFINED
7-
#define _WCHAR_T_DEFINED
8-
#ifndef __cplusplus
9-
typedef __WCHAR_TYPE__ wchar_t;
10-
#endif /* __cplusplus */
11-
#endif /* _WCHAR_T_DEFINED */
12-
13-
#ifndef _WCHAR_LIMITS_DEFINED
14-
#define _WCHAR_LIMITS_DEFINED
15-
#define WCHAR_WIDTH __WCHAR_WIDTH__
16-
#define WCHAR_MIN (~__WCHAR_MAX__)
17-
#define WCHAR_MAX __WCHAR_MAX__
18-
#endif
19-
20-
#ifndef WEOF
21-
#define WEOF -1
22-
#endif
4+
#include <__wchar_def.h>
235

246
__BEGIN_DECLS
257

src/libc/include/wctype.h

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#ifndef _WCTYPE_H
2+
#define _WCTYPE_H
3+
4+
#include <__wchar_def.h>
5+
6+
__BEGIN_DECLS
7+
8+
int iswalnum(wint_t wc);
9+
10+
int iswalpha(wint_t wc);
11+
12+
int iswblank(wint_t wc);
13+
14+
int iswcntrl(wint_t wc);
15+
16+
int iswdigit(wint_t wc);
17+
18+
int iswgraph(wint_t wc);
19+
20+
int iswlower(wint_t wc);
21+
22+
int iswprint(wint_t wc);
23+
24+
int iswpunct(wint_t wc);
25+
26+
int iswspace(wint_t wc);
27+
28+
int iswupper(wint_t wc);
29+
30+
int iswxdigit(wint_t wc);
31+
32+
wint_t towlower(wint_t wc);
33+
34+
wint_t towupper(wint_t wc);
35+
36+
__END_DECLS
37+
38+
#endif /* _WCTYPE_H */

src/libcxx/header_test.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
#include <cstring>
2323
#include <ctime>
2424
#include <ctgmath>
25+
#include <cwchar>
26+
#include <cwctype>
2527
#include <cxxabi.h>
2628
#include <exception>
2729
#include <initializer_list>
@@ -64,5 +66,6 @@
6466
#include <tgmath.h>
6567
#include <time.h>
6668
#include <wchar.h>
69+
#include <wctype.h>
6770

6871
// tests for conflicts

src/libcxx/include/cwchar

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// -*- C++ -*-
2+
#ifndef _EZCXX_CWCHAR
3+
#define _EZCXX_CWCHAR
4+
5+
#include <wchar.h>
6+
7+
#pragma clang system_header
8+
9+
namespace std {
10+
using ::wint_t;
11+
12+
using ::wmemcpy;
13+
using ::wmemmove;
14+
using ::wmemset;
15+
using ::wmemcmp;
16+
using ::wmemchr;
17+
using ::wcscpy;
18+
using ::wcsncpy;
19+
using ::wcscat;
20+
using ::wcsncat;
21+
using ::wcschr;
22+
using ::wcsrchr;
23+
using ::wcspbrk;
24+
using ::wcsstr;
25+
using ::wcstok;
26+
using ::wcscspn;
27+
using ::wcsspn;
28+
using ::wcslen;
29+
using ::wcsnlen;
30+
using ::wcscmp;
31+
using ::wcsncmp;
32+
} // namespace std
33+
34+
#endif // _EZCXX_CWCHAR

src/libcxx/include/cwctype

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// -*- C++ -*-
2+
#ifndef _EZCXX_CWCTYPE
3+
#define _EZCXX_CWCTYPE
4+
5+
#include <wctype.h>
6+
7+
#pragma clang system_header
8+
9+
namespace std {
10+
using ::wint_t;
11+
12+
using ::iswalnum;
13+
using ::iswalpha;
14+
using ::iswblank;
15+
using ::iswcntrl;
16+
using ::iswdigit;
17+
using ::iswgraph;
18+
using ::iswlower;
19+
using ::iswprint;
20+
using ::iswpunct;
21+
using ::iswspace;
22+
using ::iswupper;
23+
using ::iswxdigit;
24+
using ::towlower;
25+
using ::towupper;
26+
} // namespace std
27+
28+
#endif // _EZCXX_CWCTYPE

0 commit comments

Comments
 (0)