Revision history for Capture-Tiny 0.24 2014-02-06 17:15:37-05:00 America/New_York Fixed: - Closed security hole in use of semaphore flag in /tmp; now opens semaphore the using O_CREAT|O_EXCL 0.23 2013-10-20 11:25:34 America/New_York Fixed: - minimum Perl prereq is back to 5.6 (but $diety help you if you're still stuck on 5.6) Documented: - Added warning about using @_ in a capture block 0.22 2013-03-27 15:50:29 America/New_York Documented: - Issue tracker is now github 0.21 2012-11-14 19:04:49 America/New_York Changed: - Skips tee and leak tests for closed STDIN on Perl prior to 5.12 when PERL_UNICODE=D. Documented lack of support as a known issue. - Isolated tee subprocesses from effects of PERL_UNICODE as a precaution (though this did not fix the above issue). - Improved layer detection for handles proxied due to being closed or tied. 0.20 2012-09-19 13:20:57 America/New_York Fixed: - Nested merged captures that include an external program call no longer leak STDERR to the outer scope [rt.cpan.org #79376] 0.19 2012-08-06 20:26:34 America/New_York Fixed: - Work around rt.perl.org #114404 by forcing PerlIO layers back on original handles [rt.cpan.org #78819] 0.18 2012-05-04 16:31:53 America/New_York Added: - When capture or tee are called in void context, Capture::Tiny skips reading back from the capture handles if it can do so safely 0.17_52 2012-03-09 11:45:19 EST5EDT Fixed: - Tied STDIN is always localized before redirections to avoid tees hanging on MSWin32 - Copying and reopening STDIN is necessary to avoid tees hanging on MSWin32. 0.17_51 2012-03-07 18:22:34 EST5EDT Fixed: - Avoids reopening STDIN while setting up a capture, which avoids some problems with pathological tied filehandle implementations such as in FCGI Tested: - Re-enabled tied STDIN testing for MSWin32 to see if changes above avoid crashes seen historically 0.17 2012-02-22 08:07:41 EST5EDT Fixed: - Added a workaround for failing t/08-stdin-closed.t under blead perl / 5.15.8 [rt.perl.org #111070] Documented: - Clarified some limitations; added a link to CPAN Testers Matrix; removed redundant BUGS section; standardized terminology Tested: - Added a test using Inline::C to print to stdout and stderr in response to rt.cpan.org #71701 0.16 2012-02-12 21:04:24 EST5EDT Documented: - Noted problems and workaround for FCGI's pathological tied STDIN [rt.cpan.org #74681; thank you Karl Gaissmaier for testing the workaround] 0.15 2011-12-23 11:10:47 EST5EDT Fixed: - Repeated captures from a custom filehandle would return undef instead of the empty string (and would warn). This has been fixed. [rt.cpan.org #73374 part two. Thank you to Philipp Herz for help in reproducing this bug.] Other: - Commented out debugging code for slightly less runtime overhead 0.14 2011-12-22 10:14:09 EST5EDT Added: - Capturing with custom filehandles will return only newly appended output instead of everything already in the file. [rt.cpan.org #73374] 0.13 2011-12-02 13:39:00 EST5EDT Fixed: - Fixed t/18-custom-capture.t failures on Windows due to tempfile removal problems in the testfile 0.12 2011-12-01 16:58:05 EST5EDT Added: - New functions capture_stdout, capture_stderr, tee_stdout, tee_stderr [rt.cpan.org #60515] - Capture functions also returns the return values from the executed coderef [rt.cpan.org #61794, adapted from patch by Christian Walde] - Capture functions take optional custom filehandles for capturing via named files instead of anonymous ones [inspired by Christian Walde] Fixed: - Tied filehandles based on Tie::StdHandle can now use the ":utf8" layer; removed remaining TODO tests; adds Scalar::Util as a dependency Changed: - When Time::HiRes::usleep is available, tee operations will sleep during the busy-loop waiting for tee processes to be ready [rt.cpan.org #67858] 0.11 2011-05-19 23:34:23 America/New_York Fixed: - Tests will not use Test::Differences version 0.60 or greater 0.10 2011-02-07 07:01:44 EST5EDT Fixed: - Setting PERL_CAPTURE_TINY_TIMEOUT to 0 will disable timeouts 0.09 2011-01-27 23:52:16 EST5EDT Added: - Added support for $ENV{PERL_CAPTURE_TINY_TIMEOUT} to control the timeout period under 'tee'; tests set not to timeout to avoid false FAIL reports on overloaded virtual machine smokers Fixed: - $@ set within a captured block is no longer lost when the capture is completed; likewise, the initial value of $@ is not lost during capture (when no subsequent error occurs) (RT #65139) 0.08 Sun Jun 20 19:13:19 EDT 2010 Fixed: - Exceptions in captured coderef are caught, then handles are restored before the exception is rethrown (RT #58208) 0.07 Sun Jan 24 00:18:45 EST 2010 Fixed: - Changed test for $? preservation to be more portable - Dropped support for Perl 5.8.0 specifically due to excessive bugs. Tests will bail out. (5.6.X is still supported) 0.06 Thu May 7 06:54:53 EDT 2009 Fixed: - On Win32, subprocesses now close themselves on EOF instead of being killed with a signal 0.05_51 Tue Apr 21 07:00:38 EDT 2009 Added: - Support for wide characters on handles opened to utf8 - Support for STDOUT, STDERR or STDIN opened to in-memory files (open to scalar reference) or tied, albeit with some limitations Testing: - Verify that $? is preserved during capture { system(@cmd) }; 0.05 Tue Mar 3 06:56:05 EST 2009 Fixed: - On Win32, increased a delay waiting for buffers to flush to avoid losing final output during tee() 0.04 Wed Feb 25 09:25:27 EST 2009 Added: - Can capture/tee even if STDIN, STDOUT or STDERR are closed prior to capture/tee block - Generally, added more error handling Fixed: - Will timeout instead of hang if subprocesses fail to start 0.03 Fri Feb 20 13:03:08 EST 2009 Added: - capture_merged() and tee_merged() Fixed: - Tests skip if not Win32 and no fork() (rather than Build.PL and Makefile.PL failing); this allows capture() on odd platforms, even if fork doesn't work 0.02 Tue Feb 17 17:24:35 EST 2009 Fixed: - Bug recovering output when STDOUT is empty (reported by Vincent Pit) - Removed Fatal.pm to avoid global action-at-a-distance 0.01 Fri Feb 13 23:15:19 EST 2009 Added: - 'capture' and 'tee' functions