Alexandre Julliard : ntdll: Add a few more isw* functions.
Alexandre Julliard
julliard at winehq.org
Wed Jun 29 16:25:53 CDT 2022
Module: wine
Branch: master
Commit: c948a6cf9201152a664ab4976da51bdfac59deaa
URL: https://source.winehq.org/git/wine.git/?a=commit;h=c948a6cf9201152a664ab4976da51bdfac59deaa
Author: Alexandre Julliard <julliard at winehq.org>
Date: Wed Jun 29 11:48:20 2022 +0200
ntdll: Add a few more isw* functions.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ntdll/ntdll.spec | 4 +++
dlls/ntdll/wcstring.c | 83 ++++++++++++++++++++++++++++-----------------------
2 files changed, 49 insertions(+), 38 deletions(-)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index b1650ab4306..fa1941ec811 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -1560,10 +1560,14 @@
@ cdecl ispunct(long)
@ cdecl isspace(long)
@ cdecl isupper(long)
+@ cdecl iswalnum(long)
@ cdecl iswalpha(long)
+@ cdecl iswascii(long)
@ cdecl iswctype(long long)
@ cdecl iswdigit(long)
+@ cdecl iswgraph(long)
@ cdecl iswlower(long)
+@ cdecl iswprint(long)
@ cdecl iswspace(long)
@ cdecl iswxdigit(long)
@ cdecl isxdigit(long)
diff --git a/dlls/ntdll/wcstring.c b/dlls/ntdll/wcstring.c
index 9422e4f676c..eef3197c4fe 100644
--- a/dlls/ntdll/wcstring.c
+++ b/dlls/ntdll/wcstring.c
@@ -384,77 +384,84 @@ INT __cdecl iswctype( WCHAR wc, unsigned short type )
}
+/*********************************************************************
+ * iswalnum (NTDLL.@)
+ */
+INT __cdecl iswalnum( WCHAR wc )
+{
+ return iswctype( wc, C1_ALPHA | C1_UPPER | C1_LOWER | C1_DIGIT );
+}
+
+
/*********************************************************************
* iswalpha (NTDLL.@)
*/
INT __cdecl iswalpha( WCHAR wc )
{
- if (wc >= 256) return 0;
- return wctypes[wc] & (C1_ALPHA | C1_UPPER | C1_LOWER);
+ return iswctype( wc, C1_ALPHA | C1_UPPER | C1_LOWER );
}
/*********************************************************************
- * iswdigit (NTDLL.@)
- *
- * Checks if a unicode char wc is a digit
- *
- * RETURNS
- * TRUE: The unicode char wc is a digit.
- * FALSE: Otherwise
+ * iswascii (NTDLL.@)
+ */
+INT __cdecl iswascii( WCHAR wc )
+{
+ return wc < 0x80;
+}
+
+
+/*********************************************************************
+ * iswdigit (NTDLL.@)
*/
INT __cdecl iswdigit( WCHAR wc )
{
- if (wc >= 256) return 0;
- return wctypes[wc] & C1_DIGIT;
+ return iswctype( wc, C1_DIGIT );
}
/*********************************************************************
- * iswlower (NTDLL.@)
- *
- * Checks if a unicode char wc is a lower case letter
- *
- * RETURNS
- * TRUE: The unicode char wc is a lower case letter.
- * FALSE: Otherwise
+ * iswgraph (NTDLL.@)
+ */
+INT __cdecl iswgraph( WCHAR wc )
+{
+ return iswctype( wc, C1_ALPHA | C1_UPPER | C1_LOWER | C1_DIGIT | C1_PUNCT );
+}
+
+
+/*********************************************************************
+ * iswlower (NTDLL.@)
*/
INT __cdecl iswlower( WCHAR wc )
{
- if (wc >= 256) return 0;
- return wctypes[wc] & C1_LOWER;
+ return iswctype( wc, C1_LOWER );
}
/*********************************************************************
- * iswspace (NTDLL.@)
- *
- * Checks if a unicode char wc is a white space character
- *
- * RETURNS
- * TRUE: The unicode char wc is a white space character.
- * FALSE: Otherwise
+ * iswprint (NTDLL.@)
+ */
+INT __cdecl iswprint( WCHAR wc )
+{
+ return iswctype( wc, C1_ALPHA | C1_UPPER | C1_LOWER | C1_DIGIT | C1_PUNCT | C1_BLANK );
+}
+
+
+/*********************************************************************
+ * iswspace (NTDLL.@)
*/
INT __cdecl iswspace( WCHAR wc )
{
- if (wc >= 256) return 0;
- return wctypes[wc] & C1_SPACE;
+ return iswctype( wc, C1_SPACE );
}
/*********************************************************************
- * iswxdigit (NTDLL.@)
- *
- * Checks if a unicode char wc is an extended digit
- *
- * RETURNS
- * TRUE: The unicode char wc is an extended digit.
- * FALSE: Otherwise
+ * iswxdigit (NTDLL.@)
*/
INT __cdecl iswxdigit( WCHAR wc )
{
- if (wc >= 256) return 0;
- return wctypes[wc] & C1_XDIGIT;
+ return iswctype( wc, C1_XDIGIT );
}
More information about the wine-cvs
mailing list