int strcasecmp_w(const smb_ucs2_t *a, const smb_ucs2_t *b) { smb_ucs2_t cpa, cpb; while ((*COPY_UCS2_CHAR(&cpb,b)) && toupper_w(*(COPY_UCS2_CHAR(&cpa,a))) == toupper_w(cpb)) { a++; b++; } return (tolower_w(*(COPY_UCS2_CHAR(&cpa,a))) - tolower_w(*(COPY_UCS2_CHAR(&cpb,b)))); }
int strncasecmp_w(const smb_ucs2_t *a, const smb_ucs2_t *b, size_t len) { smb_ucs2_t cpa, cpb; size_t n = 0; while ((n < len) && *COPY_UCS2_CHAR(&cpb,b) && (toupper_w(*(COPY_UCS2_CHAR(&cpa,a))) == toupper_w(cpb))) { a++; b++; n++; } return (len - n)?(tolower_w(*(COPY_UCS2_CHAR(&cpa,a))) - tolower_w(*(COPY_UCS2_CHAR(&cpb,b)))):0; }
/******************************************************************* Convert a string to lower case. return True if any char is converted ********************************************************************/ BOOL strlower_w(smb_ucs2_t *s) { BOOL ret = False; while (*s) { smb_ucs2_t v = tolower_w(*s); if (v != *s) { *s = v; ret = True; } s++; } return ret; }
BOOL strlower_w(smb_ucs2_t *s) { smb_ucs2_t cp; BOOL ret = False; while (*(COPY_UCS2_CHAR(&cp,s))) { smb_ucs2_t v = tolower_w(cp); if (v != cp) { COPY_UCS2_CHAR(s,&v); ret = True; } s++; } return ret; }
int tolower_ascii(int c) { smb_ucs2_t uc = tolower_w(UCS2_CHAR(c)); return UCS2_TO_CHAR(uc); }
/******************************************************************* case insensitive string comparison, lenght limited ********************************************************************/ int strncasecmp_w(const smb_ucs2_t *a, const smb_ucs2_t *b, size_t len) { size_t n = 0; while ((n < len) && *b && (toupper_w(*a) == toupper_w(*b))) { a++; b++; n++; } return (len - n)?(tolower_w(*a) - tolower_w(*b)):0; }
/******************************************************************* case insensitive string comparison ********************************************************************/ int strcasecmp_w(const smb_ucs2_t *a, const smb_ucs2_t *b) { while (*b && toupper_w(*a) == toupper_w(*b)) { a++; b++; } return (tolower_w(*a) - tolower_w(*b)); }