From 792ca1c2fea1120e04bed3531339a03b24d747bd Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Tue, 29 May 2001 08:04:55 +0000 Subject: [PATCH] * shortcut.c (check_shortcut): Treat only Cygwin shortcuts as symlinks. --- winsup/cygwin/ChangeLog | 4 ++++ winsup/cygwin/shortcut.c | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 7aefe1d4f..55f61a7c5 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,7 @@ +Tue May 28 21:34:00 2001 Corinna Vinschen + + * shortcut.c (check_shortcut): Treat only Cygwin shortcuts as symlinks. + Fri May 25 11:07:07 2001 Christopher Faylor * path.cc (symlink_info::check): Correctly set 'ext_tacked_on'. Use diff --git a/winsup/cygwin/shortcut.c b/winsup/cygwin/shortcut.c index 2f7c1e18a..1aaa5de9e 100644 --- a/winsup/cygwin/shortcut.c +++ b/winsup/cygwin/shortcut.c @@ -73,9 +73,7 @@ check_shortcut (const char *path, DWORD fileattr, HANDLE h, IShellLink *psl = NULL; IPersistFile *ppf = NULL; WCHAR wc_path[MAX_PATH]; - char full_path[MAX_PATH]; char file_header[SHORTCUT_HDR_SIZE]; - WIN32_FIND_DATA wfd; DWORD len = 0; int res = 0; DWORD got = 0; @@ -116,9 +114,13 @@ check_shortcut (const char *path, DWORD fileattr, HANDLE h, len = strlen (contents); } } +#if TREAT_NATIVE_SHORTCUTS_AS_SYMLINKS /* No description or not R/O: Check the "official" path. */ if (len == 0) { + char full_path[MAX_PATH]; + WIN32_FIND_DATA wfd; + /* Convert to full path (easy way) */ if ((path[0] == '\\' && path[1] == '\\') || (_toupper (path[0]) >= 'A' && _toupper (path[0]) <= 'Z' @@ -142,6 +144,7 @@ check_shortcut (const char *path, DWORD fileattr, HANDLE h, if (FAILED(hres)) goto file_not_symlink; } +#endif res = strlen (contents); if (res) /* It's a symlink. */ *pflags = PATH_SYMLINK;