* shortcut.c (check_shortcut): Treat only Cygwin shortcuts as symlinks.

This commit is contained in:
Corinna Vinschen 2001-05-29 08:04:55 +00:00
parent 5a77fe8ae5
commit 792ca1c2fe
2 changed files with 9 additions and 2 deletions

View File

@ -1,3 +1,7 @@
Tue May 28 21:34:00 2001 Corinna Vinschen <corinna@vinschen.de>
* shortcut.c (check_shortcut): Treat only Cygwin shortcuts as symlinks.
Fri May 25 11:07:07 2001 Christopher Faylor <cgf@cygnus.com> Fri May 25 11:07:07 2001 Christopher Faylor <cgf@cygnus.com>
* path.cc (symlink_info::check): Correctly set 'ext_tacked_on'. Use * path.cc (symlink_info::check): Correctly set 'ext_tacked_on'. Use

View File

@ -73,9 +73,7 @@ check_shortcut (const char *path, DWORD fileattr, HANDLE h,
IShellLink *psl = NULL; IShellLink *psl = NULL;
IPersistFile *ppf = NULL; IPersistFile *ppf = NULL;
WCHAR wc_path[MAX_PATH]; WCHAR wc_path[MAX_PATH];
char full_path[MAX_PATH];
char file_header[SHORTCUT_HDR_SIZE]; char file_header[SHORTCUT_HDR_SIZE];
WIN32_FIND_DATA wfd;
DWORD len = 0; DWORD len = 0;
int res = 0; int res = 0;
DWORD got = 0; DWORD got = 0;
@ -116,9 +114,13 @@ check_shortcut (const char *path, DWORD fileattr, HANDLE h,
len = strlen (contents); len = strlen (contents);
} }
} }
#if TREAT_NATIVE_SHORTCUTS_AS_SYMLINKS
/* No description or not R/O: Check the "official" path. */ /* No description or not R/O: Check the "official" path. */
if (len == 0) if (len == 0)
{ {
char full_path[MAX_PATH];
WIN32_FIND_DATA wfd;
/* Convert to full path (easy way) */ /* Convert to full path (easy way) */
if ((path[0] == '\\' && path[1] == '\\') if ((path[0] == '\\' && path[1] == '\\')
|| (_toupper (path[0]) >= 'A' && _toupper (path[0]) <= 'Z' || (_toupper (path[0]) >= 'A' && _toupper (path[0]) <= 'Z'
@ -142,6 +144,7 @@ check_shortcut (const char *path, DWORD fileattr, HANDLE h,
if (FAILED(hres)) if (FAILED(hres))
goto file_not_symlink; goto file_not_symlink;
} }
#endif
res = strlen (contents); res = strlen (contents);
if (res) /* It's a symlink. */ if (res) /* It's a symlink. */
*pflags = PATH_SYMLINK; *pflags = PATH_SYMLINK;