summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog6
-rw-r--r--winsup/cygwin/fhandler.h9
2 files changed, 14 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 6bb03dbec..27d0e4a4f 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,11 @@
2012-04-06 Christopher Faylor <me.cygwin2012@cgf.cx>
+ * 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 <me.cygwin2012@cgf.cx>
+
* path.c (path_conv::check): Avoid directly referencing fields of the
dev structure when it can be easily avoided.
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);