From 7b4b41ab3e89bc6bde673b68107e378fa91b230d Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Thu, 14 Feb 2008 16:47:11 +0000 Subject: * cygheap.cc (cwcsdup): New function. (cwcsdup1): New function. * cygheap.h (cygheap_user::get_windows_id): New method returning PWCHAR. (cwcsdup): Declare. (cwcsdup1): Declare. * registry.cc (get_registry_hive_path): Use WCHAR instead of char throughout. (load_registry_hive): Ditto. * registry.h (get_registry_hive_path): Change declaration accordingly. (load_registry_hive): Ditto. * sec_helper.cc (cygpsid::string): New method returning PWCHAR. * security.h (cygpsid::string): Declare. * syscalls.cc (seteuid32): Convert local name var to WCHAR. * uinfo.cc (cygheap_user::env_userprofile): Convert local name buffers to WCHAR. Call sys_wcstombs_alloc to generate puserprof buffer. * winsup.h: Fix comment. (NT_MAX_PATH): New definition for maximum internal path length. Use throughout where appropriate. * include/limits.h (PATH_MAX): Set to 4096 as on Linux. --- winsup/cygwin/cygheap.cc | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'winsup/cygwin/cygheap.cc') 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 +#include 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) { -- cgit v1.2.3