mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-03-02 13:05:42 +08:00
* (symlink_info::set_error): Change to return bool if input error should be
ignored. (symlink_info::check): Treat path as a normal file if set_error returns false.
This commit is contained in:
parent
458e656498
commit
143bf87846
@ -1,3 +1,10 @@
|
|||||||
|
2005-10-11 Christopher Faylor <cgf@timesys.com>
|
||||||
|
|
||||||
|
* (symlink_info::set_error): Change to return bool if input error
|
||||||
|
should be ignored.
|
||||||
|
(symlink_info::check): Treat path as a normal file if set_error returns
|
||||||
|
false.
|
||||||
|
|
||||||
2005-10-03 Christopher Faylor <cgf@timesys.com>
|
2005-10-03 Christopher Faylor <cgf@timesys.com>
|
||||||
|
|
||||||
* cygheap.h (class process_lock): New class.
|
* cygheap.h (class process_lock): New class.
|
||||||
|
@ -101,7 +101,7 @@ struct symlink_info
|
|||||||
bool case_check (char *path);
|
bool case_check (char *path);
|
||||||
int check_sysfile (const char *path, HANDLE h);
|
int check_sysfile (const char *path, HANDLE h);
|
||||||
int check_shortcut (const char *path, HANDLE h);
|
int check_shortcut (const char *path, HANDLE h);
|
||||||
void set_error (int);
|
bool set_error (int);
|
||||||
};
|
};
|
||||||
|
|
||||||
muto NO_COPY cwdstuff::cwd_lock;
|
muto NO_COPY cwdstuff::cwd_lock;
|
||||||
@ -3130,12 +3130,23 @@ suffix_scan::next ()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
bool
|
||||||
symlink_info::set_error (int in_errno)
|
symlink_info::set_error (int in_errno)
|
||||||
{
|
{
|
||||||
if ((pflags & PATH_NO_ACCESS_CHECK) && in_errno != ENAMETOOLONG)
|
bool res;
|
||||||
return;
|
if (!(pflags & PATH_NO_ACCESS_CHECK) || in_errno == ENAMETOOLONG || in_errno == EIO)
|
||||||
error = in_errno;
|
{
|
||||||
|
error = in_errno;
|
||||||
|
res = true;
|
||||||
|
}
|
||||||
|
else if (in_errno == ENOENT)
|
||||||
|
res = true;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fileattr = FILE_ATTRIBUTE_NORMAL;
|
||||||
|
res = false;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
@ -3243,8 +3254,8 @@ symlink_info::check (char *path, const suffix_info *suffixes, unsigned opt)
|
|||||||
fileattr = 0;
|
fileattr = 0;
|
||||||
goto file_not_symlink;
|
goto file_not_symlink;
|
||||||
}
|
}
|
||||||
set_error (geterrno_from_win_error (win_error, EACCES));
|
if (set_error (geterrno_from_win_error (win_error, EACCES)))
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
ext_tacked_on = !!*ext_here;
|
ext_tacked_on = !!*ext_here;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user