diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2011-04-19 10:15:09 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2011-04-19 10:15:09 +0000 |
commit | ba6aad1d735126cd0e0e9c114ba3389a78779008 (patch) | |
tree | c239126e34020cf0bac1a0d1f76596ee8bca1dcf /winsup | |
parent | b18cb86be7509b4125732f2b25ff3a6e5f423fa2 (diff) | |
download | newlib-ba6aad1d735126cd0e0e9c114ba3389a78779008.zip newlib-ba6aad1d735126cd0e0e9c114ba3389a78779008.tar.gz newlib-ba6aad1d735126cd0e0e9c114ba3389a78779008.tar.bz2 |
* autoload.cc (GetConsoleWindow): Drop.
(GetSystemWindowsDirectoryW): Drop.
* fhandler_console.cc (beep): Call GetSystemWindowsDirectoryW instead of
GetWindowsDirectoryW.
* uinfo.cc (cygheap_user::env_systemroot): Call
GetSystemWindowsDirectoryW and convert to multibyte on the fly.
* winlean.h (GetWindowsDirectoryW): Redefine to something invalid.
Explain why.
Diffstat (limited to 'winsup')
-rw-r--r-- | winsup/cygwin/ChangeLog | 11 | ||||
-rw-r--r-- | winsup/cygwin/autoload.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/fhandler_console.cc | 4 | ||||
-rw-r--r-- | winsup/cygwin/uinfo.cc | 15 | ||||
-rw-r--r-- | winsup/cygwin/winlean.h | 9 |
5 files changed, 24 insertions, 17 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 95d7b52..a97051a 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,16 @@ 2011-04-19 Corinna Vinschen <corinna@vinschen.de> + * autoload.cc (GetConsoleWindow): Drop. + (GetSystemWindowsDirectoryW): Drop. + * fhandler_console.cc (beep): Call GetSystemWindowsDirectoryW instead of + GetWindowsDirectoryW. + * uinfo.cc (cygheap_user::env_systemroot): Call + GetSystemWindowsDirectoryW and convert to multibyte on the fly. + * winlean.h (GetWindowsDirectoryW): Redefine to something invalid. + Explain why. + +2011-04-19 Corinna Vinschen <corinna@vinschen.de> + * Makefile.in (DLL_IMPORTS): Drop advapi32.dll. * autoload.cc: Enable autoloading advapi32 functions. * environ.cc (regopt): Use wide char arguments in reg_key functions. diff --git a/winsup/cygwin/autoload.cc b/winsup/cygwin/autoload.cc index 55d1c46..a469663 100644 --- a/winsup/cygwin/autoload.cc +++ b/winsup/cygwin/autoload.cc @@ -391,9 +391,7 @@ LoadDLLfunc (GetNetworkParams, 8, iphlpapi) LoadDLLfunc (GetUdpTable, 12, iphlpapi) LoadDLLfuncEx (AttachConsole, 4, kernel32, 1) -LoadDLLfunc (GetConsoleWindow, 0, kernel32) LoadDLLfuncEx (GetNamedPipeClientProcessId, 8, kernel32, 1) -LoadDLLfuncEx (GetSystemWindowsDirectoryW, 8, kernel32, 1) LoadDLLfunc (LocaleNameToLCID, 8, kernel32) LoadDLLfunc (WNetCloseEnum, 4, mpr) diff --git a/winsup/cygwin/fhandler_console.cc b/winsup/cygwin/fhandler_console.cc index 8ce82e4..456336c 100644 --- a/winsup/cygwin/fhandler_console.cc +++ b/winsup/cygwin/fhandler_console.cc @@ -67,9 +67,9 @@ beep () if (r.created ()) { PWCHAR buf = NULL; - UINT len = GetWindowsDirectoryW (buf, 0) * sizeof (WCHAR); + UINT len = GetSystemWindowsDirectoryW (buf, 0) * sizeof (WCHAR); buf = (PWCHAR) alloca (len += sizeof (ding)); - UINT res = GetWindowsDirectoryW (buf, len); + UINT res = GetSystemWindowsDirectoryW (buf, len); if (res && res <= len) r.set_string (L"", wcscat (buf, ding)); } diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc index 25c868c..46d4b15 100644 --- a/winsup/cygwin/uinfo.cc +++ b/winsup/cygwin/uinfo.cc @@ -454,19 +454,16 @@ cygheap_user::env_systemroot (const char *name, size_t namelen) { if (!psystemroot) { - int size = GetWindowsDirectory (NULL, 0); + int size = GetSystemWindowsDirectoryW (NULL, 0); if (size > 0) { - psystemroot = (char *) cmalloc_abort (HEAP_STR, ++size); - size = GetWindowsDirectory (psystemroot, size); - if (size <= 0) - { - cfree (psystemroot); - psystemroot = NULL; - } + WCHAR wsystemroot[size]; + size = GetSystemWindowsDirectoryW (wsystemroot, size); + if (size > 0) + sys_wcstombs_alloc (&psystemroot, HEAP_STR, wsystemroot); } if (size <= 0) - debug_printf ("GetWindowsDirectory(), %E"); + debug_printf ("GetSystemWindowsDirectoryW(), %E"); } return psystemroot; } diff --git a/winsup/cygwin/winlean.h b/winsup/cygwin/winlean.h index c4955ae..d2d7f7a 100644 --- a/winsup/cygwin/winlean.h +++ b/winsup/cygwin/winlean.h @@ -30,8 +30,9 @@ details. */ /* When Terminal Services are installed, the GetWindowsDirectory function does not return the system installation dir, but a user specific directory instead. That's not what we have in mind when calling GetWindowsDirectory - from within Cygwin. So we redefine GetWindowsDirectory to call the - GetSystemWindowsDirectory function here. */ -#define GetWindowsDirectoryW GetSystemWindowsDirectoryW -#define GetWindowsDirectoryA GetSystemWindowsDirectoryA + from within Cygwin. So we redefine GetWindowsDirectory to something + invalid here to avoid that it's called accidentally in Cygwin. Don't + use this function. Use GetSystemWindowsDirectoryW. */ +#define GetWindowsDirectoryW dont_use_GetWindowsDirectory +#define GetWindowsDirectoryA dont_use_GetWindowsDirectory #endif /*_WINLEAN_H*/ |