* dtable.cc (unknown_file): New variable.
(dtable::init_std_file_from_handle): Don't set binmode if we couldn't determine the actual file name on stdin/stdout/stderr. (handle_to_fn): Return unknown_file when can't determine filename.
This commit is contained in:
parent
0709b9ba16
commit
dd76747b8e
|
@ -1,3 +1,10 @@
|
||||||
|
2002-10-07 Christopher Faylor <cgf@redhat.com>
|
||||||
|
|
||||||
|
* dtable.cc (unknown_file): New variable.
|
||||||
|
(dtable::init_std_file_from_handle): Don't set binmode if we couldn't
|
||||||
|
determine the actual file name on stdin/stdout/stderr.
|
||||||
|
(handle_to_fn): Return unknown_file when can't determine filename.
|
||||||
|
|
||||||
2002-10-07 Christopher Faylor <cgf@redhat.com>
|
2002-10-07 Christopher Faylor <cgf@redhat.com>
|
||||||
|
|
||||||
* dcrt0.cc (do_exit): Call DisableThreadLibraryCalls since we don't
|
* dcrt0.cc (do_exit): Call DisableThreadLibraryCalls since we don't
|
||||||
|
|
|
@ -36,7 +36,9 @@ details. */
|
||||||
static const NO_COPY DWORD std_consts[] = {STD_INPUT_HANDLE, STD_OUTPUT_HANDLE,
|
static const NO_COPY DWORD std_consts[] = {STD_INPUT_HANDLE, STD_OUTPUT_HANDLE,
|
||||||
STD_ERROR_HANDLE};
|
STD_ERROR_HANDLE};
|
||||||
|
|
||||||
static char *handle_to_fn (HANDLE, char *);
|
static const char *handle_to_fn (HANDLE, char *);
|
||||||
|
|
||||||
|
static const char NO_COPY unknown_file[] = "some disk file";
|
||||||
|
|
||||||
/* Set aside space for the table of fds */
|
/* Set aside space for the table of fds */
|
||||||
void
|
void
|
||||||
|
@ -265,8 +267,8 @@ 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)->init (handle, myaccess,
|
build_fhandler_from_name (fd, name, handle, pc)
|
||||||
pc.binmode ());
|
->init (handle, myaccess, (name == unknown_file) ? 0 : pc.binmode ());
|
||||||
set_std_handle (fd);
|
set_std_handle (fd);
|
||||||
paranoid_printf ("fd %d, handle %p", fd, handle);
|
paranoid_printf ("fd %d, handle %p", fd, handle);
|
||||||
}
|
}
|
||||||
|
@ -695,7 +697,7 @@ dtable::vfork_child_fixup ()
|
||||||
#define REMOTE "\\Device\\LanmanRedirector\\"
|
#define REMOTE "\\Device\\LanmanRedirector\\"
|
||||||
#define REMOTE_LEN sizeof (REMOTE) - 1
|
#define REMOTE_LEN sizeof (REMOTE) - 1
|
||||||
|
|
||||||
static char *
|
static const char *
|
||||||
handle_to_fn (HANDLE h, char *posix_fn)
|
handle_to_fn (HANDLE h, char *posix_fn)
|
||||||
{
|
{
|
||||||
OBJECT_NAME_INFORMATION *ntfn;
|
OBJECT_NAME_INFORMATION *ntfn;
|
||||||
|
@ -710,9 +712,9 @@ handle_to_fn (HANDLE h, char *posix_fn)
|
||||||
|
|
||||||
if (res)
|
if (res)
|
||||||
{
|
{
|
||||||
strcpy (posix_fn, "some disk file");
|
strcpy (posix_fn, unknown_file);
|
||||||
debug_printf ("NtQueryObject failed");
|
debug_printf ("NtQueryObject failed");
|
||||||
return posix_fn;
|
return unknown_file;
|
||||||
}
|
}
|
||||||
|
|
||||||
// NT seems to do this on an unopened file
|
// NT seems to do this on an unopened file
|
||||||
|
|
|
@ -83,8 +83,7 @@ fill_rusage (struct rusage *r, HANDLE h)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C"
|
extern "C" int
|
||||||
int
|
|
||||||
getrusage (int intwho, struct rusage *rusage_in)
|
getrusage (int intwho, struct rusage *rusage_in)
|
||||||
{
|
{
|
||||||
int res = 0;
|
int res = 0;
|
||||||
|
|
Loading…
Reference in New Issue