diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2006-10-31 11:40:47 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2006-10-31 11:40:47 +0000 |
commit | 9740f34d11c458fd7a07a025810422a6db1ad374 (patch) | |
tree | f534b30bf61b4392013eabe56906a053207a3acc /winsup/cygwin/path.h | |
parent | 3ddf69712bc97460fe6b0e82379e0c1132dce866 (diff) | |
download | cygnal-9740f34d11c458fd7a07a025810422a6db1ad374.tar.gz cygnal-9740f34d11c458fd7a07a025810422a6db1ad374.tar.bz2 cygnal-9740f34d11c458fd7a07a025810422a6db1ad374.zip |
* fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Drop
directory attribute for reparse points to avoid mistreating.
(fhandler_base::fstat_by_name): Ditto.
* path.cc (symlink_info::check_reparse_point): New method testing
reparse points for symbolic links.
(symlink_info::check_shortcut): Move file attribute tesat to calling
function.
(symlink_info::check): Add handling for reparse points.
* path.h (enum path_types): Add PATH_REP to denote reparse point based
symlinks.
(path_conv::is_rep_symlink): New method.
* syscalls.cc (unlink): Handle reparse points.
Diffstat (limited to 'winsup/cygwin/path.h')
-rw-r--r-- | winsup/cygwin/path.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/winsup/cygwin/path.h b/winsup/cygwin/path.h index b00adc76d..0b2decc0d 100644 --- a/winsup/cygwin/path.h +++ b/winsup/cygwin/path.h @@ -76,6 +76,7 @@ enum path_types PATH_NO_ACCESS_CHECK = PC_NO_ACCESS_CHECK, PATH_LNK = 0x01000000, PATH_TEXT = 0x02000000, + PATH_REP = 0x04000000, PATH_HAS_SYMLINKS = 0x10000000, PATH_SOCKET = 0x40000000 }; @@ -163,6 +164,7 @@ class path_conv } int issymlink () const {return path_flags & PATH_SYMLINK;} int is_lnk_symlink () const {return path_flags & PATH_LNK;} + int is_rep_symlink () const {return path_flags & PATH_REP;} int isdevice () const {return dev.devn && dev.devn != FH_FS && dev.devn != FH_FIFO;} int isfifo () const {return dev == FH_FIFO;} int isspecial () const {return dev.devn && dev.devn != FH_FS;} |