newlib-2.4.0: wide character strings
git-svn-id: svn://kolibrios.org@6557 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
62
contrib/sdk/sources/newlib/libc/string/wcsdup.c
Normal file
62
contrib/sdk/sources/newlib/libc/string/wcsdup.c
Normal file
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
FUNCTION
|
||||
<<wcsdup>>---wide character string duplicate
|
||||
|
||||
INDEX
|
||||
wcsdup
|
||||
INDEX
|
||||
_wcsdup_r
|
||||
|
||||
ANSI_SYNOPSIS
|
||||
#include <wchar.h>
|
||||
wchar_t *wcsdup(const wchar_t *<[str]>);
|
||||
|
||||
#include <wchar.h>
|
||||
wchar_t *_wcsdup_r(struct _reent *<[ptr]>, const wchar_t *<[str]>);
|
||||
|
||||
TRAD_SYNOPSIS
|
||||
#include <wchar.h>
|
||||
wchar_t *wcsdup(<[ptr]>, <[str]>)
|
||||
struct _reent *<[ptr]>;
|
||||
wchar_t *<[str]>;
|
||||
|
||||
DESCRIPTION
|
||||
<<wcsdup>> allocates a new wide character string using <<malloc>>,
|
||||
and copies the content of the argument <[str]> into the newly
|
||||
allocated string, thus making a copy of <[str]>.
|
||||
|
||||
RETURNS
|
||||
<<wcsdup>> returns a pointer to the copy of <[str]> if enough
|
||||
memory for the copy was available. Otherwise it returns NULL
|
||||
and errno is set to ENOMEM.
|
||||
|
||||
PORTABILITY
|
||||
POSIX-1.2008
|
||||
|
||||
QUICKREF
|
||||
wcsdup
|
||||
*/
|
||||
|
||||
#include <reent.h>
|
||||
#include <stdlib.h>
|
||||
#include <wchar.h>
|
||||
|
||||
wchar_t *
|
||||
_wcsdup_r (struct _reent *p, const wchar_t *str)
|
||||
{
|
||||
size_t len = wcslen (str) + 1;
|
||||
wchar_t *copy = _malloc_r (p, len * sizeof (wchar_t));
|
||||
if (copy)
|
||||
wmemcpy (copy, str, len);
|
||||
return copy;
|
||||
}
|
||||
|
||||
#ifndef _REENT_ONLY
|
||||
|
||||
wchar_t *
|
||||
wcsdup (const wchar_t *str)
|
||||
{
|
||||
return _wcsdup_r (_REENT, str);
|
||||
}
|
||||
|
||||
#endif /* !_REENT_ONLY */
|
Reference in New Issue
Block a user