/** @file | |
Comparison Functions for <wchar.h>. | |
Unless explicitly stated otherwise, the functions defined in this file order | |
two wide characters the same way as two integers of the underlying integer | |
type designated by wchar_t. | |
Copyright (c) 2010, Intel Corporation. All rights reserved.<BR> | |
This program and the accompanying materials are licensed and made available under | |
the terms and conditions of the BSD License that accompanies this distribution. | |
The full text of the license may be found at | |
http://opensource.org/licenses/bsd-license.php. | |
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
**/ | |
#include <Uefi.h> | |
#include <Library/BaseLib.h> | |
#include <Library/BaseMemoryLib.h> | |
#include <LibConfig.h> | |
#include <wchar.h> | |
/** The wcscmp function compares the wide string pointed to by s1 to the wide | |
string pointed to by s2. | |
@return The wcscmp function returns an integer greater than, equal to, or | |
less than zero, accordingly as the wide string pointed to by s1 | |
is greater than, equal to, or less than the wide string | |
pointed to by s2. | |
**/ | |
int wcscmp(const wchar_t *s1, const wchar_t *s2) | |
{ | |
return (int)StrCmp( (CONST CHAR16 *)s1, (CONST CHAR16 *)s2); | |
} | |
/** The wcscoll function compares the wide string pointed to by s1 to the wide | |
string pointed to by s2, both interpreted as appropriate to the LC_COLLATE | |
category of the current locale. | |
@return The wcscoll function returns an integer greater than, equal to, | |
or less than zero, accordingly as the wide string pointed to by | |
s1 is greater than, equal to, or less than the wide string | |
pointed to by s2 when both are interpreted as appropriate to | |
the current locale. | |
**/ | |
//int wcscoll(const wchar_t *s1, const wchar_t *s2) | |
//{ | |
// return -1; // STUBB | |
//} | |
/** The wcsncmp function compares not more than n wide characters (those that | |
follow a null wide character are not compared) from the array pointed to by | |
s1 to the array pointed to by s2. | |
@return The wcsncmp function returns an integer greater than, equal to, | |
or less than zero, accordingly as the possibly null-terminated | |
array pointed to by s1 is greater than, equal to, or less than | |
the possibly null-terminated array pointed to by s2. | |
**/ | |
int wcsncmp(const wchar_t *s1, const wchar_t *s2, size_t n) | |
{ | |
return (int)StrnCmp( (CONST CHAR16 *)s1, (CONST CHAR16 *)s2, (UINTN)n); | |
} | |
/** The wcsxfrm function transforms the wide string pointed to by s2 and places | |
the resulting wide string into the array pointed to by s1. The | |
transformation is such that if the wcscmp function is applied to two | |
transformed wide strings, it returns a value greater than, equal to, or | |
less than zero, corresponding to the result of the wcscoll function applied | |
to the same two original wide strings. No more than n wide characters are | |
placed into the resulting array pointed to by s1, including the terminating | |
null wide character. If n is zero, s1 is permitted to be a null pointer. | |
@return The wcsxfrm function returns the length of the transformed wide | |
string (not including the terminating null wide character). If | |
the value returned is n or greater, the contents of the array | |
pointed to by s1 are indeterminate. | |
**/ | |
//size_t wcsxfrm(wchar_t * __restrict s1, const wchar_t * __restrict s2, size_t n) | |
//{ | |
// return n; // STUBB | |
//} | |
/** The wmemcmp function compares the first n wide characters of the object | |
pointed to by s1 to the first n wide characters of the object pointed to | |
by s2. | |
@return The wmemcmp function returns an integer greater than, equal to, | |
or less than zero, accordingly as the object pointed to by s1 is | |
greater than, equal to, or less than the object pointed to by s2. | |
**/ | |
int wmemcmp(const wchar_t *s1, const wchar_t *s2, size_t n) | |
{ | |
return (int)CompareMem( s1, s2, (UINTN)(n * sizeof(wchar_t))); | |
} |