mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-03-02 13:05:42 +08:00
* path.cc (path_conv::check): Ignore has_ea setting, it's always unset
at this point anyway. (get_symlink_ea): Remove. (set_symlink_ea): Remove. (symlink_worker): Drop writing symlink into NTFS extended attributes. (symlink_info::check): Drop reading symlinks from NTFS extended attributes.
This commit is contained in:
parent
49bd27c47c
commit
7bfe2409a0
@ -1,3 +1,13 @@
|
|||||||
|
2006-07-05 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* path.cc (path_conv::check): Ignore has_ea setting, it's always unset
|
||||||
|
at this point anyway.
|
||||||
|
(get_symlink_ea): Remove.
|
||||||
|
(set_symlink_ea): Remove.
|
||||||
|
(symlink_worker): Drop writing symlink into NTFS extended attributes.
|
||||||
|
(symlink_info::check): Drop reading symlinks from NTFS extended
|
||||||
|
attributes.
|
||||||
|
|
||||||
2006-07-04 Christopher Faylor <cgf@timesys.com>
|
2006-07-04 Christopher Faylor <cgf@timesys.com>
|
||||||
|
|
||||||
* libc/rexec.cc (cygwin_rexec): Obvious (?) fix to correct a gcc
|
* libc/rexec.cc (cygwin_rexec): Obvious (?) fix to correct a gcc
|
||||||
|
@ -757,7 +757,7 @@ path_conv::check (const char *src, unsigned opt,
|
|||||||
full_path[3] = '\0';
|
full_path[3] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
symlen = sym.check (full_path, suff, opt | fs.has_ea ());
|
symlen = sym.check (full_path, suff, opt);
|
||||||
|
|
||||||
is_virtual_symlink:
|
is_virtual_symlink:
|
||||||
|
|
||||||
@ -2693,28 +2693,6 @@ endmntent (FILE *)
|
|||||||
|
|
||||||
/********************** Symbolic Link Support **************************/
|
/********************** Symbolic Link Support **************************/
|
||||||
|
|
||||||
/* Read symlink from Extended Attribute */
|
|
||||||
static int
|
|
||||||
get_symlink_ea (HANDLE hdl, const char* frompath, char* buf, int buf_size)
|
|
||||||
{
|
|
||||||
int res = read_ea (hdl, frompath, SYMLINK_EA_NAME, buf, buf_size);
|
|
||||||
if (res == 0)
|
|
||||||
debug_printf ("Cannot read symlink from EA");
|
|
||||||
return (res - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Save symlink to Extended Attribute */
|
|
||||||
static bool
|
|
||||||
set_symlink_ea (HANDLE hdl, const char* frompath, const char* topath)
|
|
||||||
{
|
|
||||||
if (!write_ea (hdl, frompath, SYMLINK_EA_NAME, topath, strlen (topath) + 1))
|
|
||||||
{
|
|
||||||
debug_printf ("Cannot save symlink in EA");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Create a symlink from FROMPATH to TOPATH. */
|
/* Create a symlink from FROMPATH to TOPATH. */
|
||||||
|
|
||||||
/* If TRUE create symlinks as Windows shortcuts, if false create symlinks
|
/* If TRUE create symlinks as Windows shortcuts, if false create symlinks
|
||||||
@ -2926,8 +2904,6 @@ symlink_worker (const char *oldpath, const char *newpath, bool use_winsym,
|
|||||||
}
|
}
|
||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
if (!isdevice && win32_path.fs_has_ea ())
|
|
||||||
set_symlink_ea (h, win32_path, oldpath);
|
|
||||||
CloseHandle (h);
|
CloseHandle (h);
|
||||||
if (!allow_ntsec && allow_ntea)
|
if (!allow_ntsec && allow_ntea)
|
||||||
set_file_attribute (false, NULL, win32_path.get_win32 (),
|
set_file_attribute (false, NULL, win32_path.get_win32 (),
|
||||||
@ -3277,10 +3253,7 @@ symlink_info::check (char *path, const suffix_info *suffixes, unsigned opt)
|
|||||||
major = 0;
|
major = 0;
|
||||||
minor = 0;
|
minor = 0;
|
||||||
mode = 0;
|
mode = 0;
|
||||||
|
|
||||||
pflags &= ~(PATH_SYMLINK | PATH_LNK);
|
pflags &= ~(PATH_SYMLINK | PATH_LNK);
|
||||||
unsigned pflags_or = pflags & PATH_NO_ACCESS_CHECK;
|
|
||||||
|
|
||||||
case_clash = false;
|
case_clash = false;
|
||||||
|
|
||||||
while (suffix.next ())
|
while (suffix.next ())
|
||||||
@ -3348,17 +3321,6 @@ symlink_info::check (char *path, const suffix_info *suffixes, unsigned opt)
|
|||||||
if (h == INVALID_HANDLE_VALUE)
|
if (h == INVALID_HANDLE_VALUE)
|
||||||
goto file_not_symlink;
|
goto file_not_symlink;
|
||||||
|
|
||||||
if (sym_check > 0 && opt & PC_CHECK_EA
|
|
||||||
&& (res = get_symlink_ea (h, suffix.path, contents,
|
|
||||||
sizeof (contents))) > 0)
|
|
||||||
{
|
|
||||||
pflags = PATH_SYMLINK | pflags_or;
|
|
||||||
if (sym_check == 1)
|
|
||||||
pflags |= PATH_LNK;
|
|
||||||
debug_printf ("Got symlink from EA: %s", contents);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (sym_check)
|
switch (sym_check)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user