From 43616e5526861e4e6afeafb2f9cf4d4626a237b6 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Thu, 29 Jan 2009 20:32:08 +0000 Subject: * fhandler_disk_file.cc (fhandler_disk_file::readdir): Fix inode number evaluation for faked "." entry. * mount.cc (fs_info::update): Move setting of is_cdrom after checking for caseinsensitivity. Recognize UDF in is_cdrom case and set caseinsensitive flag according to UDF brokenness determined by OS. Add comment to explain why. * mount.h (class fs_info): Add is_udf status flag. * path.cc (symlink_info::check): Add workaround for UDF bug in terms of casesensitivity on certain OSes. * wincap.h (wincaps::has_broken_udf): New element. (wincaps::has_broken_udf): New element --- winsup/cygwin/fhandler_disk_file.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'winsup/cygwin/fhandler_disk_file.cc') diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc index 2aad2ff79..7fd66b843 100644 --- a/winsup/cygwin/fhandler_disk_file.cc +++ b/winsup/cygwin/fhandler_disk_file.cc @@ -1928,7 +1928,8 @@ go_ahead: else if (!(dir->__flags & dirent_saw_dot)) { strcpy (de->d_name , "."); - de->d_ino = get_ino_by_handle (get_handle ()); + if (pc.isgood_inode (de->d_ino)) + de->d_ino = get_ino_by_handle (get_handle ()); dir->__d_position++; dir->__flags |= dirent_saw_dot; res = 0; -- cgit v1.2.3