diff options
Diffstat (limited to 'winsup/utils')
-rw-r--r-- | winsup/utils/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/utils/path.cc | 16 |
2 files changed, 15 insertions, 6 deletions
diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog index 398670d8f..e019dfb41 100644 --- a/winsup/utils/ChangeLog +++ b/winsup/utils/ChangeLog @@ -1,5 +1,10 @@ 2009-11-04 Corinna Vinschen <corinna@vinschen.de> + * path.cc (read_mounts): Skip unnecessary test if path has been + fetched from loaded cygwin1.dll. + +2009-11-04 Corinna Vinschen <corinna@vinschen.de> + * cygcheck.cc (cygwin_dll_path): New global variable. (load_cygwin): Fetch cygwin DLL path and store in cygwin_dll_path. * strace.cc: Full ditto. diff --git a/winsup/utils/path.cc b/winsup/utils/path.cc index 34001f057..0360119dd 100644 --- a/winsup/utils/path.cc +++ b/winsup/utils/path.cc @@ -594,12 +594,16 @@ read_mounts () path_end = wcsrchr (path, L'\\'); if (path_end) { - wcscpy (path_end, L"\\cygwin1.dll"); - DWORD attr = GetFileAttributesW (path); - if (attr == (DWORD) -1 - || (attr & (FILE_ATTRIBUTE_DIRECTORY | FILE_ATTRIBUTE_REPARSE_POINT))) - path_end = NULL; - else + if (!cygwin_dll_path[0]) + { + wcscpy (path_end, L"\\cygwin1.dll"); + DWORD attr = GetFileAttributesW (path); + if (attr == (DWORD) -1 + || (attr & (FILE_ATTRIBUTE_DIRECTORY + | FILE_ATTRIBUTE_REPARSE_POINT))) + path_end = NULL; + } + if (path_end) { *path_end = L'\0'; path_end = wcsrchr (path, L'\\'); |