* dtable.cc (dtable::init_std_file_from_handle): Try to mimic standard open
behavior with files redirected from stdin/stdout/stderr, i.e., fmode settings take precedence over mount settings.
This commit is contained in:
		| @@ -1,3 +1,9 @@ | |||||||
|  | 2002-10-07  Christopher Faylor  <cgf@redhat.com> | ||||||
|  |  | ||||||
|  | 	* dtable.cc (dtable::init_std_file_from_handle): Try to mimic standard | ||||||
|  | 	open behavior with files redirected from stdin/stdout/stderr, i.e., | ||||||
|  | 	fmode settings take precedence over mount settings. | ||||||
|  |  | ||||||
| 2002-10-07  Christopher Faylor  <cgf@redhat.com> | 2002-10-07  Christopher Faylor  <cgf@redhat.com> | ||||||
|  |  | ||||||
| 	* dtable.cc (unknown_file): New variable. | 	* dtable.cc (unknown_file): New variable. | ||||||
|   | |||||||
| @@ -267,8 +267,13 @@ dtable::init_std_file_from_handle (int fd, HANDLE handle, DWORD myaccess) | |||||||
|   else |   else | ||||||
|     { |     { | ||||||
|       path_conv pc; |       path_conv pc; | ||||||
|       build_fhandler_from_name (fd, name, handle, pc) |       unsigned bin; | ||||||
| 	->init (handle, myaccess, (name == unknown_file) ? 0 : pc.binmode ()); |       fhandler_base *fh = build_fhandler_from_name (fd, name, handle, pc); | ||||||
|  |       bin = fh->get_default_fmode (myaccess == GENERIC_READ ? O_RDONLY : O_WRONLY); | ||||||
|  |       if (!bin && name != unknown_file) | ||||||
|  | 	bin = pc.binmode (); | ||||||
|  |  | ||||||
|  |       fh->init (handle, myaccess, bin); | ||||||
|       set_std_handle (fd); |       set_std_handle (fd); | ||||||
|       paranoid_printf ("fd %d, handle %p", fd, handle); |       paranoid_printf ("fd %d, handle %p", fd, handle); | ||||||
|     } |     } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user