From db11dbd62cb31a663401f4e4af8ab88f84e34c32 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Sun, 29 Dec 2002 06:14:21 +0000 Subject: * cygwin-gperf: New file. * Makefile.in: Use cygwin-gperf script to build devices.cc. * configure.in: Remove some comments. * configure: Regenerate. * devices.gperf: Remove max unit determination from FH_TTY. Add /dev/kmem. Add /dev/fifo. Add /dev/rawdrive. Remove specific "const device *" declarations since they are now autogenerated. (device::parse): Treat FH_TTY specially. Move logic for determining real tty device to separate function. (device::init): Reduce to nothing. (device::parse): New function taking different arguments. (device::parse): Ditto. (device::tty_to_real_device): New function. * devices.h (struct device): Define above new functions. (device::dev_on_fs): New element. (device::setfs): New function. (device::isfs): Ditto. * dtable.cc (dtable::build_fhandler): Treat FH_TTY specially. * fhandler.cc (fhandler_base::set_name): Make special determination for non-disk-resident devices. * fhandler.h (fhandler_base::isdevice): Renamed from 'is_device'. (fhandler_disk_file::isdevice): Ditto. (fhandler_base::is_auto_device): New function. (fhandler_base::is_fs_device): New function. (fhandler_tty_slave::get_unit): Declare. (fhandler_disk_file::readdir): Take special .lnk consideration for devices as well as symlinks. * fhandler_tty.cc: Use get_unit () rather than dev.minor throughout. (fhandler_tty_slave::get_unit): Define new function. * path.cc (symlink_info::major): New element. (symlink_info::major): Ditto. (symlink_info::devtype): Ditto. (path_conv::check): Handle devices detected by symlink_info::check. (win32_device_name): Eliminate special FH_TTY handling. (symlink): Move bulk of procesing to symlink_worker. (symlink_worker): New function. Handles devices. (symlink_info::parse_device): Parse info from potential device file into symlink_info elements. (symlink_info::check): If contents of .lnk file begin with a ':' then treat the file as a device file. * path.h (isdevice): Renamed from is_device. (is_auto_device): New function. (is_fs_device): Ditto. * syscalls.cc (chown_worker): Allow setting of ownership for on-disk devices. (chmod): Ditto. (mknod): Implement. * winsup.h (symlink_worker): Declare. --- winsup/cygwin/fhandler_disk_file.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc index d8f826a41..7f83e4f7a 100644 --- a/winsup/cygwin/fhandler_disk_file.cc +++ b/winsup/cygwin/fhandler_disk_file.cc @@ -660,7 +660,7 @@ fhandler_disk_file::readdir (DIR *dir) strcpy (fbuf, dir->__d_dirname); strcpy (fbuf + strlen (fbuf) - 1, dir->__d_dirent->d_name); path_conv fpath (fbuf, PC_SYM_NOFOLLOW); - if (fpath.issymlink ()) + if (fpath.issymlink () || fpath.isdevice ()) c[len - 4] = '\0'; } } -- cgit v1.2.3