[Win32utils-devel] Making redirecting output with win32-process a bit easier
Daniel Berger
djberg96 at gmail.com
Tue Feb 26 22:28:55 EST 2008
Hi all,
Inspired by Sander Pool's help request, I came up with this change to
win32-process which makes redirecting stdin/stdout/stderr less of a
hassle:
C:\Documents and
Settings\djberge\workspace\win32-process\lib\win32>diff -u
process.orig process.rb
--- process.orig Tue Feb 26 22:23:56 2008
+++ process.rb Tue Feb 26 22:23:20 2008
@@ -270,6 +270,10 @@
# library. Note that the 'stdin', 'stdout' and 'stderr' options can be
# either Ruby IO objects or file descriptors (i.e. a fileno). However,
# StringIO objects are not currently supported.
+ #
+ # If 'stdin', 'stdout' or 'stderr' are specified, then the +inherit+ value
+ # is automatically set to true and the Process::STARTF_USESTDHANDLES flag is
+ # automatically OR'd to the +startf_flags+ value.
#
# The ProcessInfo struct contains the following members:
#
@@ -381,8 +385,10 @@
if handle == INVALID_HANDLE_VALUE
raise Error, get_last_error
end
-
+
si_hash[io] = handle
+ si_hash['startf_flags'] |= STARTF_USESTDHANDLES
+ hash['inherit'] = true
end
}
This would eliminate the need to remember that the startf_flags and
inherit value must be set properly in order for redirection to work
with Process.create. Also, it means less typing for the user. :)
What do you think?
Regards,
Dan
More information about the win32utils-devel
mailing list