diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 6bb03dbec..27d0e4a4f 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +2012-04-06 Christopher Faylor + + * fhandler.h (fhandler_base::nohandle): Implement "by hand" rather than + through macro. Set io_handle to INVALID_HANDLE_VALUE when setting flag + to true. + 2012-04-06 Christopher Faylor * path.c (path_conv::check): Avoid directly referencing fields of the diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h index 06fa7c4c4..84d531420 100644 --- a/winsup/cygwin/fhandler.h +++ b/winsup/cygwin/fhandler.h @@ -241,13 +241,20 @@ class fhandler_base IMPLEMENT_STATUS_FLAG (bool, wbinset) IMPLEMENT_STATUS_FLAG (bool, rbinset) - IMPLEMENT_STATUS_FLAG (bool, nohandle) IMPLEMENT_STATUS_FLAG (bool, did_lseek) IMPLEMENT_STATUS_FLAG (query_state, query_open) IMPLEMENT_STATUS_FLAG (bool, close_on_exec) IMPLEMENT_STATUS_FLAG (bool, need_fork_fixup) IMPLEMENT_STATUS_FLAG (bool, isclosed) + bool nohandle () const {return !!status.nohandle;} + bool nohandle (bool val) + { + if ((status.nohandle = val)) + io_handle = INVALID_HANDLE_VALUE; + return val; + } + int get_default_fmode (int flags); virtual void set_close_on_exec (bool val);