* dtable.h (dtable::build_fhandler): Make path_conv parameter non-optional.
(dtable::init_std_file_from_handle): Eliminate name parameter. * dtable.cc (stdio_init): Don't pass bogus name to init_std_file_from_handle. The function will figure out the name itself. (dtable::init_std_file_from_handle): Eliminate name parameter. Assume that we're always called with an appropriate fd. Pass name as NULL if we can't simply figure it out from context. (cygwin_attach_handle_to_fd): Pass path_conv argument to build_fhandler. (dtable::build_fhandler): Make path_conv argument mandatory. Eliminate specific call to get_device_number. With unknown device names, set name from handle context for parsing by path_conv. (dtable::build_fhandler): Pass path_conv argument to build_fhandler. * path.h (path_conv::set_isdisk): Set disk device type. (path_conv::is_device): Don't consider FH_DISK a "device". * syscalls.cc (_open): Pass path_conv argument by reference. (stat_worker): Ditto. (_rename): Use path_conv operators. Add bounds to DeleteFile/MoveFile for loop.
This commit is contained in:
@@ -104,7 +104,7 @@ class path_conv
|
||||
void set_binary () {path_flags |= PATH_BINARY;}
|
||||
void set_symlink () {path_flags |= PATH_SYMLINK;}
|
||||
void set_has_symlinks () {path_flags |= PATH_HAS_SYMLINKS;}
|
||||
void set_isdisk () {path_flags |= PATH_ISDISK;}
|
||||
void set_isdisk () {path_flags |= PATH_ISDISK; devn = FH_DISK;}
|
||||
void set_exec (int x = 1) {path_flags |= x ? PATH_EXEC : PATH_NOTEXEC;}
|
||||
void set_has_acls (int x = 1) {path_flags |= x ? PATH_HASACLS : PATH_NOTHING;}
|
||||
void set_has_buggy_open (int x = 1) {path_flags |= x ? PATH_HASBUGGYOPEN : PATH_NOTHING;}
|
||||
@@ -130,7 +130,7 @@ class path_conv
|
||||
operator char *() {return path; }
|
||||
operator DWORD &() {return fileattr; }
|
||||
operator int &() {return (int) fileattr; }
|
||||
BOOL is_device () {return devn != FH_BAD;}
|
||||
BOOL is_device () {return devn != FH_BAD && devn != FH_DISK;}
|
||||
DWORD get_devn () {return devn == FH_BAD ? (DWORD) FH_DISK : devn;}
|
||||
short get_unitn () {return devn == FH_BAD ? 0 : unit;}
|
||||
DWORD file_attributes () {return fileattr;}
|
||||
|
Reference in New Issue
Block a user