+++ /dev/null
-/** @file\r
- Copying Functions for <wchar.h>.\r
-\r
- Unless explicitly stated otherwise, if the execution of a function declared\r
- in this file causes copying to take place between objects that overlap, the\r
- behavior is undefined.\r
-\r
- Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>\r
- This program and the accompanying materials are licensed and made available under\r
- the terms and conditions of the BSD License that accompanies this distribution.\r
- The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php.\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-**/\r
-#include <Uefi.h>\r
-#include <Library/BaseLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-\r
-#include <LibConfig.h>\r
-\r
-#include <wchar.h>\r
-\r
-/** The wcscpy function copies the wide string pointed to by s2 (including the\r
- terminating null wide character) into the array pointed to by s1.\r
-\r
- @return The wcscpy function returns the value of s1.\r
-**/\r
-wchar_t *wcscpy(wchar_t * __restrict s1, const wchar_t * __restrict s2)\r
-{\r
- return (wchar_t *)StrCpy( (CHAR16 *)s1, (CONST CHAR16 *)s2);\r
-}\r
-\r
-/** The wcsncpy function copies not more than n wide characters (those that\r
- follow a null wide character are not copied) from the array pointed to by\r
- s2 to the array pointed to by s1.\r
-\r
- If the array pointed to by s2 is a wide string that is shorter than n wide\r
- characters, null wide characters are appended to the copy in the array\r
- pointed to by s1, until n wide characters in all have been written.\r
-\r
- @return The wcsncpy function returns the value of s1.\r
-**/\r
-wchar_t *wcsncpy(wchar_t * __restrict s1, const wchar_t * __restrict s2, size_t n)\r
-{\r
- return (wchar_t *)StrnCpy( (CHAR16 *)s1, (CONST CHAR16 *)s2, (UINTN)n);\r
-}\r
-\r
-/** The wmemcpy function copies n wide characters from the object pointed to by\r
- s2 to the object pointed to by s1.\r
-\r
- Use this function if you know that s1 and s2 DO NOT Overlap. Otherwise,\r
- use wmemmove.\r
-\r
- @return The wmemcpy function returns the value of s1.\r
-**/\r
-wchar_t *wmemcpy(wchar_t * __restrict s1, const wchar_t * __restrict s2, size_t n)\r
-{\r
- return (wchar_t *)CopyMem( s1, s2, (UINTN)(n * sizeof(wchar_t)));\r
-}\r
-\r
-/** The wmemmove function copies n wide characters from the object pointed to by\r
- s2 to the object pointed to by s1. The objects pointed to by s1 and s2 are\r
- allowed to overlap.\r
-\r
- Because the UEFI BaseMemoryLib function CopyMem explicitly handles\r
- overlapping source and destination objects, this function and wmemcpy are\r
- implemented identically.\r
-\r
- For programming clarity, it is recommended that you use wmemcpy if you know\r
- that s1 and s2 DO NOT Overlap. If s1 and s2 might possibly overlap, then\r
- use wmemmove.\r
-\r
- @return The wmemmove function returns the value of s1.\r
-**/\r
-wchar_t *wmemmove(wchar_t *s1, const wchar_t *s2, size_t n)\r
-{\r
- return (wchar_t *)CopyMem( s1, s2, (UINTN)(n * sizeof(wchar_t)));\r
-}\r