diff options
| author | Vladimir Azarov <avm@intermediate-node.net> | 2024-10-01 15:47:05 +0200 |
|---|---|---|
| committer | Vladimir Azarov <avm@intermediate-node.net> | 2024-10-01 15:47:05 +0200 |
| commit | 4abab5ad6c8465a7528ccdd5f49367da05f78bbd (patch) | |
| tree | ebf009bf1376a5a223a915bc27cbbd791a1316bc /src/ctype/iswspace.c | |
Initial version
Diffstat (limited to 'src/ctype/iswspace.c')
| -rw-r--r-- | src/ctype/iswspace.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/ctype/iswspace.c b/src/ctype/iswspace.c new file mode 100644 index 0000000..263afa1 --- /dev/null +++ b/src/ctype/iswspace.c @@ -0,0 +1,24 @@ +#include <wchar.h> +#include <wctype.h> + +/* Our definition of whitespace is the Unicode White_Space property, + * minus non-breaking spaces (U+00A0, U+2007, and U+202F) and script- + * specific characters with non-blank glyphs (U+1680 and U+180E). */ + +int iswspace(wint_t wc) +{ + static const wchar_t spaces[] = { + ' ', '\t', '\n', '\r', 11, 12, 0x0085, + 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, + 0x2006, 0x2008, 0x2009, 0x200a, + 0x2028, 0x2029, 0x205f, 0x3000, 0 + }; + return wc && wcschr(spaces, wc); +} + +int __iswspace_l(wint_t c, locale_t l) +{ + return iswspace(c); +} + +weak_alias(__iswspace_l, iswspace_l); |
