Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/***
*wcsicmp.c - compares two wide character strings with case insensitivity * * Copyright (c) 1985-1988, Microsoft Corporation. All rights reserved. * *Purpose: * defines wcsicmp() - compares two wide character strings for lexical * order with case insensitivity. * *Revision History: * 11-Mar-92 CarlH Created. * *******************************************************************************/
#include <stdlib.h>
/***
*wchar_t wcUp(wc) - upper case wide character * *Notes: * This was copied from AlexT's version of wcsnicmp.c from the Win4 * common project. */
static wchar_t wcUp(wchar_t wc) { if ('a' <= wc && wc <= 'z') wc += (wchar_t)('A' - 'a');
return(wc); }
/***
*wcsicmp - compare two wide character strings with case insensitivity, * returning less than, equal to, or greater than * *Purpose: * WCSICMP compares two wide character strings with case insensitivity * and returns an integer to indicate whether the first is less than * the second, the two are equal, or whether the first is greater than * the second. * * Comparison is done byte by byte on an UNSIGNED basis with lower to * upper case mapping by wcUp. Null (0) is less than any other * character (1-0xffff). * *Entry: * const wchar_t * src - string for left-hand side of comparison * const wchar_t * dst - string for right-hand side of comparison * *Exit: * returns -1 if src < dst * returns 0 if src == dst * returns +1 if src > dst * *Exceptions: * *******************************************************************************/
int __cdecl wcsicmp(const wchar_t * src, const wchar_t * dst) { int ret = 0 ;
while( ! (ret = wcUp(*src) - wcUp(*dst)) && *dst) ++src, ++dst;
if ( ret < 0 ) ret = -1 ; else if ( ret > 0 ) ret = 1 ;
return ret; }
|