/* $Id$ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel * FILE: ntoskrnl/rtl/wstring.c * PURPOSE: Wide string functions * PROGRAMMER: David Welch (welch@cwcom.net) * UPDATE HISTORY: * Created 22/05/98 * 1998/12/04 RJJ Cleaned up and added i386 def checks. * 1999/07/29 ekohl Added missing functions. */ /* INCLUDES *****************************************************************/ #include #define NDEBUG #include /* FUNCTIONS *****************************************************************/ int _wcsicmp (const wchar_t* cs, const wchar_t* ct) { while (*cs != '\0' && *ct != '\0' && towupper(*cs) == towupper(*ct)) { cs++; ct++; } return *cs - *ct; } /* * @implemented */ wchar_t *_wcslwr (wchar_t *x) { wchar_t *y=x; while (*y) { *y=towlower(*y); y++; } return x; } /* * @implemented */ int _wcsnicmp (const wchar_t * cs,const wchar_t * ct,size_t count) { if (count == 0) return 0; do { if (towupper(*cs) != towupper(*ct++)) return towupper(*cs) - towupper(*--ct); if (*cs++ == 0) break; } while (--count != 0); return 0; } /* * @implemented */ wchar_t *_wcsnset (wchar_t* wsToFill, wchar_t wcFill, size_t sizeMaxFill) { wchar_t *t = wsToFill; int i = 0; while( *wsToFill != 0 && i < (int) sizeMaxFill) { *wsToFill = wcFill; wsToFill++; i++; } return t; } /* * @implemented */ wchar_t *_wcsrev(wchar_t *s) { wchar_t *e; wchar_t a; e=s; while (*e) e++; while (s