From 7ceb1cac3a8f2a6822825347d1536f4507680704 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Sun, 3 Jun 2001 02:31:16 +0000 Subject: * cygheap.cc (cygheap_root::cygheap_rot): Remove constructor. (cygheap_root::~cygheap_root): Remove destructor. (cygheap_root::operator =): Remove. (cygheap_root::set): New method. * cygheap.h (cygheap_root): Reflect above changes. Store root info in mount-like structure. (cygheap_root:posix_ok): New method. (cygheap_root::ischroot_native): Ditto. (cygheap_root::unchroot): Ditto. (cygheap_root::exists): Ditto. (cygheap_root::posix_length): Ditto. (cygheap_root::posix_path): Ditto. (cygheap_root::native_length): Ditto. (cygheap_root::native_path): Ditto. * dir.cc (opendir): Remove special chroot test. * path.cc (path_prefix_p): Remove front end. (normalize_posix_path): Reorganize chroot tests to accomodate new convention of allowing paths using posix chroot prefix. (path_conv::check): Pass a "already ran normalize" option to conv_to_win32_path. Return if there is an error from this function. (mount_info::conv_to_win32_path): Add extra argument. Don't call normalize_posix_path if caller has already done so. Substitute chroot setting, if any, for root translation. Add chroot checking to final output step. * shared_info (mount_info): Accomodate additional argument to conv_to_win32_path. * syscalls.cc (chroot): Store both normalized posix path and native path in chroot. --- winsup/cygwin/dir.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'winsup/cygwin/dir.cc') diff --git a/winsup/cygwin/dir.cc b/winsup/cygwin/dir.cc index 9e154b0..f55cbe3 100644 --- a/winsup/cygwin/dir.cc +++ b/winsup/cygwin/dir.cc @@ -78,8 +78,7 @@ opendir (const char *dirname) goto failed; } - if (stat (cygheap->root.length () ? dirname : real_dirname.get_win32 (), - &statbuf) == -1) + if (stat (real_dirname, &statbuf) == -1) goto failed; if (!(statbuf.st_mode & S_IFDIR)) @@ -88,7 +87,7 @@ opendir (const char *dirname) goto failed; } - len = strlen (real_dirname.get_win32 ()); + len = strlen (real_dirname); if (len > MAX_PATH - 3) { set_errno (ENAMETOOLONG); -- cgit v1.1