From 7c51c5ddf31cc990610d07edb1cbe7265288e2c3 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Thu, 23 Dec 1999 01:57:43 +0000 Subject: Samba now includes a full ucs2 upper to lower case (and vica versa) map table. Jeremy. (This used to be commit d7b72d4cbfb6bd1925abc7f95c1180d3d65856a5) --- source3/lib/util_unistr.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) (limited to 'source3/lib/util_unistr.c') diff --git a/source3/lib/util_unistr.c b/source3/lib/util_unistr.c index cdeaefce7a..486091a8b5 100644 --- a/source3/lib/util_unistr.c +++ b/source3/lib/util_unistr.c @@ -905,3 +905,59 @@ smb_ucs2_t *wstrdup(const smb_ucs2_t *s) safe_wstrcpy(newstr, s, newlen); return newstr; } + +/******************************************************************* + Mapping tables for UNICODE character. Allows toupper/tolower and + isXXX functions to work. +********************************************************************/ + +typedef struct { + smb_ucs2_t lower; + smb_ucs2_t upper; + unsigned char flags; +} smb_unicode_table_t; + +static smb_unicode_table_t map_table[] = { +#include "unicode_map_table.h" +}; + +/******************************************************************* + Is an upper case wchar. +********************************************************************/ + +int wisupper( smb_ucs2_t val) +{ + return (map_table[val].flags & UNI_UPPER); +} +/******************************************************************* + Is a lower case wchar. +********************************************************************/ + +int wislower( smb_ucs2_t val) +{ + return (map_table[val].flags & UNI_LOWER); +} +/******************************************************************* + Is a digit wchar. +********************************************************************/ + +int wisdigit( smb_ucs2_t val) +{ + return (map_table[val].flags & UNI_DIGIT); +} +/******************************************************************* + Is a hex digit wchar. +********************************************************************/ + +int wisxdigit( smb_ucs2_t val) +{ + return (map_table[val].flags & UNI_XDIGIT); +} +/******************************************************************* + Is a space wchar. +********************************************************************/ + +int wisspace( smb_ucs2_t val) +{ + return (map_table[val].flags & UNI_SPACE); +} -- cgit