diff options
Diffstat (limited to 'winsup/cygwin/cygheap.cc')
-rw-r--r-- | winsup/cygwin/cygheap.cc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/winsup/cygwin/cygheap.cc b/winsup/cygwin/cygheap.cc index 23e193bc3..e3a2918b7 100644 --- a/winsup/cygwin/cygheap.cc +++ b/winsup/cygwin/cygheap.cc @@ -24,6 +24,7 @@ #include "sigproc.h" #include "pinfo.h" #include <unistd.h> +#include <wchar.h> init_cygheap NO_COPY *cygheap; void NO_COPY *cygheap_max; @@ -354,6 +355,30 @@ ccalloc_abort (cygheap_types x, DWORD n, DWORD size) return ccalloc (x, n, size, "ccalloc"); } +extern "C" PWCHAR __stdcall +cwcsdup (const PWCHAR s) +{ + MALLOC_CHECK; + PWCHAR p = (PWCHAR) cmalloc (HEAP_STR, wcslen (s) + 1); + if (!p) + return NULL; + wcpcpy (p, s); + MALLOC_CHECK; + return p; +} + +extern "C" PWCHAR __stdcall +cwcsdup1 (const PWCHAR s) +{ + MALLOC_CHECK; + PWCHAR p = (PWCHAR) cmalloc (HEAP_1_STR, wcslen (s) + 1); + if (!p) + return NULL; + wcpcpy (p, s); + MALLOC_CHECK; + return p; +} + extern "C" char *__stdcall cstrdup (const char *s) { |