diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2009-03-14 14:58:05 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2009-03-14 14:58:05 +0000 |
commit | 5c8c49cc43837470e6d9096b99bbed2b0481b806 (patch) | |
tree | d09a8a9d0588ca894912f89ca176bb3eb4302d1b | |
parent | 26fb7ef5e4bb99f5766189c5edd722f093776aef (diff) | |
download | newlib-5c8c49cc43837470e6d9096b99bbed2b0481b806.zip newlib-5c8c49cc43837470e6d9096b99bbed2b0481b806.tar.gz newlib-5c8c49cc43837470e6d9096b99bbed2b0481b806.tar.bz2 |
* path.cc (from_fstab): Use wcstombs/mbstowcs instead of
WideCharToMultiByte/MultiByteToWideChar to accommodate current locale.
-rw-r--r-- | winsup/utils/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/utils/path.cc | 8 |
2 files changed, 8 insertions, 5 deletions
diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog index e4c433c..09f5700 100644 --- a/winsup/utils/ChangeLog +++ b/winsup/utils/ChangeLog @@ -1,5 +1,10 @@ 2009-03-14 Corinna Vinschen <corinna@vinschen.de> + * path.cc (from_fstab): Use wcstombs/mbstowcs instead of + WideCharToMultiByte/MultiByteToWideChar to accommodate current locale. + +2009-03-14 Corinna Vinschen <corinna@vinschen.de> + * wide_path.h (class wide_path): New class to convert Windows path to WCHAR win32 path, including long path conversion if necessary. * cygcheck.cc: Use class wide_path throughout to call Win32 functions diff --git a/winsup/utils/path.cc b/winsup/utils/path.cc index 787467f..817c4c8 100644 --- a/winsup/utils/path.cc +++ b/winsup/utils/path.cc @@ -1,6 +1,6 @@ /* path.cc - Copyright 2001, 2002, 2003, 2005, 2006, 2007, 2008 Red Hat, Inc. + Copyright 2001, 2002, 2003, 2005, 2006, 2007, 2008, 2009 Red Hat, Inc. This file is part of Cygwin. @@ -435,8 +435,7 @@ from_fstab (bool user, PWCHAR path, PWCHAR path_end) if (!user) { /* Create a default root dir from path. */ - WideCharToMultiByte (GetACP (), 0, path, -1, buf, BUFSIZE, - NULL, NULL); + wcstombs (buf, path, BUFSIZE); unconvert_slashes (buf); char *native_path = buf; if (!strncmp (native_path, "\\\\?\\", 4)) @@ -459,8 +458,7 @@ from_fstab (bool user, PWCHAR path, PWCHAR path_end) PWCHAR u = wcscpy (path_end, L"\\etc\\fstab") + 10; if (user) - MultiByteToWideChar (GetACP (), 0, get_user (), -1, - wcscpy (u, L".d\\") + 3, BUFSIZE - (u - path)); + mbstowcs (wcscpy (u, L".d\\") + 3, get_user (), BUFSIZE - (u - path)); HANDLE h = CreateFileW (path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (h == INVALID_HANDLE_VALUE) |