Embedded Artistry libc
C Standard Library Support for Bare-metal Systems
iswprint.c
Go to the documentation of this file.
1
#include <
wctype.h
>
2
3
/* Consider all legal codepoints as printable except for:
4
* - C0 and C1 control characters
5
* - U+2028 and U+2029 (line/para break)
6
* - U+FFF9 through U+FFFB (interlinear annotation controls)
7
* The following code is optimized heavily to make hot paths for the
8
* expected printable characters. */
9
10
int
iswprint
(
wint_t
wc)
11
{
12
if
(wc < 0xffU)
13
{
14
return
(wc + 1 & 0x7f) >= 0x21;
15
}
16
if
(wc < 0x2028U || wc - 0x202aU < 0xd800 - 0x202a || wc - 0xe000U < 0xfff9 - 0xe000)
17
{
18
return
1;
19
}
20
if
(wc - 0xfffcU > 0x10ffff - 0xfffc || (wc & 0xfffe) == 0xfffe)
21
{
22
return
0;
23
}
24
25
return
1;
26
}
wint_t
unsigned wint_t
Definition:
wctype.h:11
wctype.h
iswprint
int iswprint(wint_t wc)
Definition:
iswprint.c:10
src
wchar
iswprint.c
Generated by
1.8.15