* fhandler.cc (fhandler_base::set_inheritance): If available,
use SetHandleInformation() to set inheritance. * wincap.cc: Set flag has_set_handle_information_on_console_handles appropriately. * wincap.h: Add flag has_set_handle_information_on_console_handles.
This commit is contained in:
parent
7141383a86
commit
f4e6b76a05
|
@ -1,3 +1,11 @@
|
||||||
|
Thu Sep 20 9:55:00 2001 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* fhandler.cc (fhandler_base::set_inheritance): If available,
|
||||||
|
use SetHandleInformation() to set inheritance.
|
||||||
|
* wincap.cc: Set flag has_set_handle_information_on_console_handles
|
||||||
|
appropriately.
|
||||||
|
* wincap.h: Add flag has_set_handle_information_on_console_handles.
|
||||||
|
|
||||||
Wed Sep 19 12:24:09 2001 Christopher Faylor <cgf@cygnus.com>
|
Wed Sep 19 12:24:09 2001 Christopher Faylor <cgf@cygnus.com>
|
||||||
|
|
||||||
* lib/getopt.c (__progname): Don't declare if not compiling for cygwin.
|
* lib/getopt.c (__progname): Don't declare if not compiling for cygwin.
|
||||||
|
|
|
@ -1522,8 +1522,12 @@ fhandler_base::set_inheritance (HANDLE &h, int not_inheriting, const char *namep
|
||||||
{
|
{
|
||||||
HANDLE newh;
|
HANDLE newh;
|
||||||
|
|
||||||
if (!DuplicateHandle (hMainProc, h, hMainProc, &newh, 0, !not_inheriting,
|
if (wincap.has_set_handle_information () && (!is_console () ||
|
||||||
DUPLICATE_SAME_ACCESS))
|
wincap.has_set_handle_information_on_console_handles ()))
|
||||||
|
(void) SetHandleInformation (h, HANDLE_FLAG_INHERIT,
|
||||||
|
not_inheriting ? 0 : HANDLE_FLAG_INHERIT);
|
||||||
|
else if (!DuplicateHandle (hMainProc, h, hMainProc, &newh, 0, !not_inheriting,
|
||||||
|
DUPLICATE_SAME_ACCESS))
|
||||||
debug_printf ("DuplicateHandle %E");
|
debug_printf ("DuplicateHandle %E");
|
||||||
#ifndef DEBUGGING
|
#ifndef DEBUGGING
|
||||||
else
|
else
|
||||||
|
|
|
@ -29,6 +29,7 @@ static NO_COPY wincaps wincap_unknown = {
|
||||||
has_eventlog:false,
|
has_eventlog:false,
|
||||||
has_ip_helper_lib:false,
|
has_ip_helper_lib:false,
|
||||||
has_set_handle_information:false,
|
has_set_handle_information:false,
|
||||||
|
has_set_handle_information_on_console_handles:false,
|
||||||
supports_smp:false,
|
supports_smp:false,
|
||||||
map_view_of_file_ex_sucks:false,
|
map_view_of_file_ex_sucks:false,
|
||||||
altgr_is_ctrl_alt:false,
|
altgr_is_ctrl_alt:false,
|
||||||
|
@ -62,6 +63,7 @@ static NO_COPY wincaps wincap_95 = {
|
||||||
has_eventlog:false,
|
has_eventlog:false,
|
||||||
has_ip_helper_lib:false,
|
has_ip_helper_lib:false,
|
||||||
has_set_handle_information:false,
|
has_set_handle_information:false,
|
||||||
|
has_set_handle_information_on_console_handles:false,
|
||||||
supports_smp:false,
|
supports_smp:false,
|
||||||
map_view_of_file_ex_sucks:true,
|
map_view_of_file_ex_sucks:true,
|
||||||
altgr_is_ctrl_alt:false,
|
altgr_is_ctrl_alt:false,
|
||||||
|
@ -95,6 +97,7 @@ static NO_COPY wincaps wincap_95osr2 = {
|
||||||
has_eventlog:false,
|
has_eventlog:false,
|
||||||
has_ip_helper_lib:false,
|
has_ip_helper_lib:false,
|
||||||
has_set_handle_information:false,
|
has_set_handle_information:false,
|
||||||
|
has_set_handle_information_on_console_handles:false,
|
||||||
supports_smp:false,
|
supports_smp:false,
|
||||||
map_view_of_file_ex_sucks:true,
|
map_view_of_file_ex_sucks:true,
|
||||||
altgr_is_ctrl_alt:false,
|
altgr_is_ctrl_alt:false,
|
||||||
|
@ -128,6 +131,7 @@ static NO_COPY wincaps wincap_98 = {
|
||||||
has_eventlog:false,
|
has_eventlog:false,
|
||||||
has_ip_helper_lib:true,
|
has_ip_helper_lib:true,
|
||||||
has_set_handle_information:false,
|
has_set_handle_information:false,
|
||||||
|
has_set_handle_information_on_console_handles:false,
|
||||||
supports_smp:false,
|
supports_smp:false,
|
||||||
map_view_of_file_ex_sucks:true,
|
map_view_of_file_ex_sucks:true,
|
||||||
altgr_is_ctrl_alt:false,
|
altgr_is_ctrl_alt:false,
|
||||||
|
@ -161,6 +165,7 @@ static NO_COPY wincaps wincap_98se = {
|
||||||
has_eventlog:false,
|
has_eventlog:false,
|
||||||
has_ip_helper_lib:true,
|
has_ip_helper_lib:true,
|
||||||
has_set_handle_information:false,
|
has_set_handle_information:false,
|
||||||
|
has_set_handle_information_on_console_handles:false,
|
||||||
supports_smp:false,
|
supports_smp:false,
|
||||||
map_view_of_file_ex_sucks:true,
|
map_view_of_file_ex_sucks:true,
|
||||||
altgr_is_ctrl_alt:false,
|
altgr_is_ctrl_alt:false,
|
||||||
|
@ -194,6 +199,7 @@ static NO_COPY wincaps wincap_me = {
|
||||||
has_eventlog:false,
|
has_eventlog:false,
|
||||||
has_ip_helper_lib:true,
|
has_ip_helper_lib:true,
|
||||||
has_set_handle_information:false,
|
has_set_handle_information:false,
|
||||||
|
has_set_handle_information_on_console_handles:false,
|
||||||
supports_smp:false,
|
supports_smp:false,
|
||||||
map_view_of_file_ex_sucks:true,
|
map_view_of_file_ex_sucks:true,
|
||||||
altgr_is_ctrl_alt:false,
|
altgr_is_ctrl_alt:false,
|
||||||
|
@ -227,6 +233,7 @@ static NO_COPY wincaps wincap_nt3 = {
|
||||||
has_eventlog:true,
|
has_eventlog:true,
|
||||||
has_ip_helper_lib:false,
|
has_ip_helper_lib:false,
|
||||||
has_set_handle_information:true,
|
has_set_handle_information:true,
|
||||||
|
has_set_handle_information_on_console_handles:false,
|
||||||
supports_smp:false,
|
supports_smp:false,
|
||||||
map_view_of_file_ex_sucks:false,
|
map_view_of_file_ex_sucks:false,
|
||||||
altgr_is_ctrl_alt:true,
|
altgr_is_ctrl_alt:true,
|
||||||
|
@ -260,6 +267,7 @@ static NO_COPY wincaps wincap_nt4 = {
|
||||||
has_eventlog:true,
|
has_eventlog:true,
|
||||||
has_ip_helper_lib:false,
|
has_ip_helper_lib:false,
|
||||||
has_set_handle_information:true,
|
has_set_handle_information:true,
|
||||||
|
has_set_handle_information_on_console_handles:false,
|
||||||
supports_smp:true,
|
supports_smp:true,
|
||||||
map_view_of_file_ex_sucks:false,
|
map_view_of_file_ex_sucks:false,
|
||||||
altgr_is_ctrl_alt:true,
|
altgr_is_ctrl_alt:true,
|
||||||
|
@ -293,6 +301,7 @@ static NO_COPY wincaps wincap_nt4sp4 = {
|
||||||
has_eventlog:true,
|
has_eventlog:true,
|
||||||
has_ip_helper_lib:true,
|
has_ip_helper_lib:true,
|
||||||
has_set_handle_information:true,
|
has_set_handle_information:true,
|
||||||
|
has_set_handle_information_on_console_handles:false,
|
||||||
supports_smp:true,
|
supports_smp:true,
|
||||||
map_view_of_file_ex_sucks:false,
|
map_view_of_file_ex_sucks:false,
|
||||||
altgr_is_ctrl_alt:true,
|
altgr_is_ctrl_alt:true,
|
||||||
|
@ -326,6 +335,7 @@ static NO_COPY wincaps wincap_2000 = {
|
||||||
has_eventlog:true,
|
has_eventlog:true,
|
||||||
has_ip_helper_lib:true,
|
has_ip_helper_lib:true,
|
||||||
has_set_handle_information:true,
|
has_set_handle_information:true,
|
||||||
|
has_set_handle_information_on_console_handles:true,
|
||||||
supports_smp:true,
|
supports_smp:true,
|
||||||
map_view_of_file_ex_sucks:false,
|
map_view_of_file_ex_sucks:false,
|
||||||
altgr_is_ctrl_alt:true,
|
altgr_is_ctrl_alt:true,
|
||||||
|
@ -359,6 +369,7 @@ static NO_COPY wincaps wincap_xp = {
|
||||||
has_eventlog:true,
|
has_eventlog:true,
|
||||||
has_ip_helper_lib:true,
|
has_ip_helper_lib:true,
|
||||||
has_set_handle_information:true,
|
has_set_handle_information:true,
|
||||||
|
has_set_handle_information_on_console_handles:true,
|
||||||
supports_smp:true,
|
supports_smp:true,
|
||||||
map_view_of_file_ex_sucks:false,
|
map_view_of_file_ex_sucks:false,
|
||||||
altgr_is_ctrl_alt:true,
|
altgr_is_ctrl_alt:true,
|
||||||
|
|
|
@ -30,6 +30,7 @@ struct wincaps
|
||||||
unsigned has_eventlog : 1;
|
unsigned has_eventlog : 1;
|
||||||
unsigned has_ip_helper_lib : 1;
|
unsigned has_ip_helper_lib : 1;
|
||||||
unsigned has_set_handle_information : 1;
|
unsigned has_set_handle_information : 1;
|
||||||
|
unsigned has_set_handle_information_on_console_handles: 1;
|
||||||
unsigned supports_smp : 1;
|
unsigned supports_smp : 1;
|
||||||
unsigned map_view_of_file_ex_sucks : 1;
|
unsigned map_view_of_file_ex_sucks : 1;
|
||||||
unsigned altgr_is_ctrl_alt : 1;
|
unsigned altgr_is_ctrl_alt : 1;
|
||||||
|
@ -77,6 +78,7 @@ public:
|
||||||
bool IMPLEMENT (has_eventlog)
|
bool IMPLEMENT (has_eventlog)
|
||||||
bool IMPLEMENT (has_ip_helper_lib)
|
bool IMPLEMENT (has_ip_helper_lib)
|
||||||
bool IMPLEMENT (has_set_handle_information)
|
bool IMPLEMENT (has_set_handle_information)
|
||||||
|
bool IMPLEMENT (has_set_handle_information_on_console_handles)
|
||||||
bool IMPLEMENT (supports_smp)
|
bool IMPLEMENT (supports_smp)
|
||||||
bool IMPLEMENT (map_view_of_file_ex_sucks)
|
bool IMPLEMENT (map_view_of_file_ex_sucks)
|
||||||
bool IMPLEMENT (altgr_is_ctrl_alt)
|
bool IMPLEMENT (altgr_is_ctrl_alt)
|
||||||
|
|
Loading…
Reference in New Issue