Hello community,

here is the log from the commit of package perl-Capture-Tiny for 
openSUSE:Factory checked in at 2016-03-11 12:29:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Capture-Tiny (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Capture-Tiny.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Capture-Tiny"

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Capture-Tiny/perl-Capture-Tiny.changes      
2015-05-18 23:02:52.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Capture-Tiny.new/perl-Capture-Tiny.changes 
2016-03-11 12:29:25.000000000 +0100
@@ -1,0 +2,43 @@
+Mon Mar  7 09:44:38 UTC 2016 - co...@suse.com
+
+- updated to 0.36
+   see /usr/share/doc/packages/perl-Capture-Tiny/Changes
+
+  0.36      2016-02-28 21:36:57-05:00 America/New_York
+  
+    [Docs]
+  
+    - Fixed typos.
+  
+  0.34      2016-02-18 23:26:13-05:00 America/New_York
+  
+    [Fixed]
+  
+    - Removed spurious JSON::PP dependency added by a broken
+      Dist::Zilla plugin.
+  
+  0.32      2016-02-18 10:12:02-05:00 America/New_York
+  
+    [Docs]
+  
+    - Changed internal formatting of documentation
+  
+    [Changes]
+  
+    - No functional changes from 0.31
+  
+  0.31      2016-02-14 07:33:50-07:00 America/Mazatlan (TRIAL RELEASE)
+  
+    [Fixed]
+  
+    - Application of layers to handles during and after capture now attempts
+      to more accurately duplicate the original layers, including potential
+      duplicate layers.  Because of the unusual ways that layers are ordered
+      and applied, exact duplication is not guaranteeed, but this should be
+      better that what Capture::Tiny did before.
+  
+    - Avoids a hard crash on Windows with Perl < 5.20 if a fork occurs in a
+      capture block.  Also documented the risks and lack of support for
+      forks in capture blocks.
+
+-------------------------------------------------------------------

Old:
----
  Capture-Tiny-0.30.tar.gz

New:
----
  Capture-Tiny-0.36.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Capture-Tiny.spec ++++++
--- /var/tmp/diff_new_pack.ts0pA0/_old  2016-03-11 12:29:26.000000000 +0100
+++ /var/tmp/diff_new_pack.ts0pA0/_new  2016-03-11 12:29:26.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package perl-Capture-Tiny
 #
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           perl-Capture-Tiny
-Version:        0.30
+Version:        0.36
 Release:        0
 %define cpan_name Capture-Tiny
 Summary:        Capture STDOUT and STDERR from Perl, XS or external programs

++++++ Capture-Tiny-0.30.tar.gz -> Capture-Tiny-0.36.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/Changes 
new/Capture-Tiny-0.36/Changes
--- old/Capture-Tiny-0.30/Changes       2015-05-16 02:44:00.000000000 +0200
+++ new/Capture-Tiny-0.36/Changes       2016-02-29 03:37:03.000000000 +0100
@@ -1,5 +1,42 @@
 Revision history for Capture-Tiny
 
+0.36      2016-02-28 21:36:57-05:00 America/New_York
+
+  [Docs]
+
+  - Fixed typos.
+
+0.34      2016-02-18 23:26:13-05:00 America/New_York
+
+  [Fixed]
+
+  - Removed spurious JSON::PP dependency added by a broken
+    Dist::Zilla plugin.
+
+0.32      2016-02-18 10:12:02-05:00 America/New_York
+
+  [Docs]
+
+  - Changed internal formatting of documentation
+
+  [Changes]
+
+  - No functional changes from 0.31
+
+0.31      2016-02-14 07:33:50-07:00 America/Mazatlan (TRIAL RELEASE)
+
+  [Fixed]
+
+  - Application of layers to handles during and after capture now attempts
+    to more accurately duplicate the original layers, including potential
+    duplicate layers.  Because of the unusual ways that layers are ordered
+    and applied, exact duplication is not guaranteeed, but this should be
+    better that what Capture::Tiny did before.
+
+  - Avoids a hard crash on Windows with Perl < 5.20 if a fork occurs in a
+    capture block.  Also documented the risks and lack of support for
+    forks in capture blocks.
+
 0.30      2015-05-15 20:43:54-04:00 America/New_York
 
   No changes from 0.29
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/MANIFEST 
new/Capture-Tiny-0.36/MANIFEST
--- old/Capture-Tiny-0.30/MANIFEST      2015-05-16 02:44:00.000000000 +0200
+++ new/Capture-Tiny-0.36/MANIFEST      2016-02-29 03:37:03.000000000 +0100
@@ -1,4 +1,4 @@
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest 
v5.036.
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest 
v5.043.
 CONTRIBUTING.mkdn
 Changes
 LICENSE
@@ -32,21 +32,23 @@
 t/16-catch-errors.t
 t/17-pass-results.t
 t/18-custom-capture.t
+t/19-relayering.t
 t/20-stdout-badtie.t
 t/21-stderr-badtie.t
 t/22-stdin-badtie.t
 t/23-all-tied.t
 t/24-all-badtied.t
+t/25-cap-fork.t
 t/lib/Cases.pm
 t/lib/TieEvil.pm
 t/lib/TieLC.pm
 t/lib/Utils.pm
 xt/author/00-compile.t
 xt/author/critic.t
+xt/author/pod-coverage.t
 xt/author/pod-spell.t
+xt/author/pod-syntax.t
+xt/author/test-version.t
 xt/release/distmeta.t
 xt/release/minimum-version.t
-xt/release/pod-coverage.t
-xt/release/pod-syntax.t
 xt/release/portability.t
-xt/release/test-version.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/META.json 
new/Capture-Tiny-0.36/META.json
--- old/Capture-Tiny-0.30/META.json     2015-05-16 02:44:00.000000000 +0200
+++ new/Capture-Tiny-0.36/META.json     2016-02-29 03:37:03.000000000 +0100
@@ -4,7 +4,7 @@
       "David Golden <dagol...@cpan.org>"
    ],
    "dynamic_config" : 1,
-   "generated_by" : "Dist::Zilla version 5.036, CPAN::Meta::Converter version 
2.150002",
+   "generated_by" : "Dist::Zilla version 5.043, CPAN::Meta::Converter version 
2.150001",
    "license" : [
       "apache_2_0"
    ],
@@ -15,10 +15,10 @@
    "name" : "Capture-Tiny",
    "no_index" : {
       "directory" : [
-         "t",
-         "xt",
+         "corpus",
          "examples",
-         "corpus"
+         "t",
+         "xt"
       ],
       "package" : [
          "DB"
@@ -37,17 +37,21 @@
             "Dist::Zilla::Plugin::Prereqs" : "0",
             "Dist::Zilla::Plugin::RemovePrereqs" : "0",
             "Dist::Zilla::PluginBundle::DAGOLDEN" : "0.072",
+            "English" : "0",
             "File::Spec" : "0",
             "File::Temp" : "0",
             "IO::Handle" : "0",
             "IPC::Open3" : "0",
             "Pod::Coverage::TrustPod" : "0",
+            "Pod::Wordlist" : "0",
+            "Software::License::Apache_2_0" : "0",
             "Test::CPAN::Meta" : "0",
             "Test::More" : "0",
             "Test::Pod" : "1.41",
             "Test::Pod::Coverage" : "1.08",
             "Test::Spelling" : "0.12",
-            "Test::Version" : "1"
+            "Test::Version" : "1",
+            "blib" : "1.01"
          }
       },
       "runtime" : {
@@ -79,7 +83,7 @@
    "provides" : {
       "Capture::Tiny" : {
          "file" : "lib/Capture/Tiny.pm",
-         "version" : "0.30"
+         "version" : "0.36"
       }
    },
    "release_status" : "stable",
@@ -94,11 +98,12 @@
          "web" : "https://github.com/dagolden/Capture-Tiny";
       }
    },
-   "version" : "0.30",
+   "version" : "0.36",
    "x_authority" : "cpan:DAGOLDEN",
    "x_contributors" : [
       "Dagfinn Ilmari Mannsåker <ilm...@ilmari.org>",
-      "David E. Wheeler <da...@justatheory.com>"
+      "David E. Wheeler <da...@justatheory.com>",
+      "fecundf <not.com+git...@gmail.com>"
    ]
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/META.yml 
new/Capture-Tiny-0.36/META.yml
--- old/Capture-Tiny-0.30/META.yml      2015-05-16 02:44:00.000000000 +0200
+++ new/Capture-Tiny-0.36/META.yml      2016-02-29 03:37:03.000000000 +0100
@@ -11,7 +11,7 @@
 configure_requires:
   ExtUtils::MakeMaker: '6.17'
 dynamic_config: 1
-generated_by: 'Dist::Zilla version 5.036, CPAN::Meta::Converter version 
2.150002'
+generated_by: 'Dist::Zilla version 5.043, CPAN::Meta::Converter version 
2.150001'
 license: apache
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -19,16 +19,16 @@
 name: Capture-Tiny
 no_index:
   directory:
+    - corpus
+    - examples
     - t
     - xt
-    - examples
-    - corpus
   package:
     - DB
 provides:
   Capture::Tiny:
     file: lib/Capture/Tiny.pm
-    version: '0.30'
+    version: '0.36'
 requires:
   Carp: '0'
   Exporter: '0'
@@ -43,8 +43,9 @@
   bugtracker: https://github.com/dagolden/Capture-Tiny/issues
   homepage: https://github.com/dagolden/Capture-Tiny
   repository: https://github.com/dagolden/Capture-Tiny.git
-version: '0.30'
+version: '0.36'
 x_authority: cpan:DAGOLDEN
 x_contributors:
   - 'Dagfinn Ilmari Mannsåker <ilm...@ilmari.org>'
   - 'David E. Wheeler <da...@justatheory.com>'
+  - 'fecundf <not.com+git...@gmail.com>'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/Makefile.PL 
new/Capture-Tiny-0.36/Makefile.PL
--- old/Capture-Tiny-0.30/Makefile.PL   2015-05-16 02:44:00.000000000 +0200
+++ new/Capture-Tiny-0.36/Makefile.PL   2016-02-29 03:37:03.000000000 +0100
@@ -1,4 +1,4 @@
-# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker 
v5.036.
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker 
v5.043.
 use strict;
 use warnings;
 
@@ -13,7 +13,6 @@
     "ExtUtils::MakeMaker" => "6.17"
   },
   "DISTNAME" => "Capture-Tiny",
-  "EXE_FILES" => [],
   "LICENSE" => "apache",
   "MIN_PERL_VERSION" => "5.006",
   "NAME" => "Capture::Tiny",
@@ -34,7 +33,7 @@
     "Test::More" => "0.62",
     "lib" => 0
   },
-  "VERSION" => "0.30",
+  "VERSION" => "0.36",
   "test" => {
     "TESTS" => "t/*.t"
   }
@@ -44,7 +43,7 @@
 my %FallbackPrereqs = (
   "Carp" => 0,
   "Exporter" => 0,
-  "ExtUtils::MakeMaker" => "6.17",
+  "ExtUtils::MakeMaker" => 0,
   "File::Spec" => 0,
   "File::Temp" => 0,
   "IO::File" => 0,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/README new/Capture-Tiny-0.36/README
--- old/Capture-Tiny-0.30/README        2015-05-16 02:44:00.000000000 +0200
+++ new/Capture-Tiny-0.36/README        2016-02-29 03:37:03.000000000 +0100
@@ -3,38 +3,38 @@
     programs
 
 VERSION
-    version 0.30
+    version 0.36
 
 SYNOPSIS
-       use Capture::Tiny ':all';
- 
-       # capture from external command
- 
-       ($stdout, $stderr, $exit) = capture {
-         system( $cmd, @args );
-       };
- 
-       # capture from arbitrary code (Perl or external)
- 
-       ($stdout, $stderr, @result) = capture {
-         # your code here
-       };
- 
-       # capture partial or merged output
- 
-       $stdout = capture_stdout { ... };
-       $stderr = capture_stderr { ... };
-       $merged = capture_merged { ... };
- 
-       # tee output
- 
-       ($stdout, $stderr) = tee {
-         # your code here
-       };
- 
-       $stdout = tee_stdout { ... };
-       $stderr = tee_stderr { ... };
-       $merged = tee_merged { ... };
+      use Capture::Tiny ':all';
+
+      # capture from external command
+
+      ($stdout, $stderr, $exit) = capture {
+        system( $cmd, @args );
+      };
+
+      # capture from arbitrary code (Perl or external)
+
+      ($stdout, $stderr, @result) = capture {
+        # your code here
+      };
+
+      # capture partial or merged output
+
+      $stdout = capture_stdout { ... };
+      $stderr = capture_stderr { ... };
+      $merged = capture_merged { ... };
+
+      # tee output
+
+      ($stdout, $stderr) = tee {
+        # your code here
+      };
+
+      $stdout = tee_stdout { ... };
+      $stderr = tee_stderr { ... };
+      $merged = tee_merged { ... };
 
 DESCRIPTION
     Capture::Tiny provides a simple, portable way to capture almost anything
@@ -49,8 +49,8 @@
     The following functions are available. None are exported by default.
 
   capture
-       ($stdout, $stderr, @result) = capture \&code;
-       $stdout = capture \&code;
+      ($stdout, $stderr, @result) = capture \&code;
+      $stdout = capture \&code;
 
     The "capture" function takes a code reference and returns what is sent
     to STDOUT and STDERR as well as any return values from the code
@@ -62,40 +62,40 @@
     It is prototyped to take a subroutine reference as an argument. Thus, it
     can be called in block form:
 
-       ($stdout, $stderr) = capture {
-         # your code here ...
-       };
+      ($stdout, $stderr) = capture {
+        # your code here ...
+      };
 
     Note that the coderef is evaluated in list context. If you wish to force
     scalar context on the return value, you must use the "scalar" keyword.
 
-       ($stdout, $stderr, $count) = capture {
-         my @list = qw/one two three/;
-         return scalar @list; # $count will be 3
-       };
+      ($stdout, $stderr, $count) = capture {
+        my @list = qw/one two three/;
+        return scalar @list; # $count will be 3
+      };
 
     Also note that within the coderef, the @_ variable will be empty. So
     don't use arguments from a surrounding subroutine without copying them
     to an array first:
 
-       sub wont_work {
-         my ($stdout, $stderr) = capture { do_stuff( @_ ) };    # WRONG
-         ...
-       }
- 
-       sub will_work {
-         my @args = @_;
-         my ($stdout, $stderr) = capture { do_stuff( @args ) }; # RIGHT
-         ...
-       }
+      sub wont_work {
+        my ($stdout, $stderr) = capture { do_stuff( @_ ) };    # WRONG
+        ...
+      }
+
+      sub will_work {
+        my @args = @_;
+        my ($stdout, $stderr) = capture { do_stuff( @args ) }; # RIGHT
+        ...
+      }
 
     Captures are normally done to an anonymous temporary filehandle. To
     capture via a named file (e.g. to externally monitor a long-running
     capture), provide custom filehandles as a trailing list of option pairs:
 
-       my $out_fh = IO::File->new("out.txt", "w+");
-       my $err_fh = IO::File->new("out.txt", "w+");
-       capture { ... } stdout => $out_fh, stderr => $err_fh;
+      my $out_fh = IO::File->new("out.txt", "w+");
+      my $err_fh = IO::File->new("out.txt", "w+");
+      capture { ... } stdout => $out_fh, stderr => $err_fh;
 
     The filehandles must be read/write and seekable. Modifying the files or
     filehandles during a capture operation will give unpredictable results.
@@ -105,22 +105,22 @@
     reading back from the capture handles.
 
   capture_stdout
-       ($stdout, @result) = capture_stdout \&code;
-       $stdout = capture_stdout \&code;
+      ($stdout, @result) = capture_stdout \&code;
+      $stdout = capture_stdout \&code;
 
     The "capture_stdout" function works just like "capture" except only
     STDOUT is captured. STDERR is not captured.
 
   capture_stderr
-       ($stderr, @result) = capture_stderr \&code;
-       $stderr = capture_stderr \&code;
+      ($stderr, @result) = capture_stderr \&code;
+      $stderr = capture_stderr \&code;
 
     The "capture_stderr" function works just like "capture" except only
     STDERR is captured. STDOUT is not captured.
 
   capture_merged
-       ($merged, @result) = capture_merged \&code;
-       $merged = capture_merged \&code;
+      ($merged, @result) = capture_merged \&code;
+      $merged = capture_merged \&code;
 
     The "capture_merged" function works just like "capture" except STDOUT
     and STDERR are merged. (Technically, STDERR is redirected to the same
@@ -130,8 +130,8 @@
     guaranteed to be properly ordered due to buffering.
 
   tee
-       ($stdout, $stderr, @result) = tee \&code;
-       $stdout = tee \&code;
+      ($stdout, $stderr, @result) = tee \&code;
+      $stdout = tee \&code;
 
     The "tee" function works just like "capture", except that output is
     captured as well as passed on to the original STDOUT and STDERR.
@@ -141,22 +141,22 @@
     were tied or opened to a scalar handle.
 
   tee_stdout
-       ($stdout, @result) = tee_stdout \&code;
-       $stdout = tee_stdout \&code;
+      ($stdout, @result) = tee_stdout \&code;
+      $stdout = tee_stdout \&code;
 
     The "tee_stdout" function works just like "tee" except only STDOUT is
     teed. STDERR is not teed (output goes to STDERR as usual).
 
   tee_stderr
-       ($stderr, @result) = tee_stderr \&code;
-       $stderr = tee_stderr \&code;
+      ($stderr, @result) = tee_stderr \&code;
+      $stderr = tee_stderr \&code;
 
     The "tee_stderr" function works just like "tee" except only STDERR is
     teed. STDOUT is not teed (output goes to STDOUT as usual).
 
   tee_merged
-       ($merged, @result) = tee_merged \&code;
-       $merged = tee_merged \&code;
+      ($merged, @result) = tee_merged \&code;
+      $merged = tee_merged \&code;
 
     The "tee_merged" function works just like "capture_merged" except that
     output is captured as well as passed on to STDOUT.
@@ -173,10 +173,10 @@
     platform.
 
   PerlIO layers
-    Capture::Tiny does it's best to preserve PerlIO layers such as ':utf8'
-    or ':crlf' when capturing (only for Perl 5.8.1+) . Layers should be
-    applied to STDOUT or STDERR *before* the call to "capture" or "tee".
-    This may not work for tied filehandles (see below).
+    Capture::Tiny does its best to preserve PerlIO layers such as ':utf8' or
+    ':crlf' when capturing (only for Perl 5.8.1+) . Layers should be applied
+    to STDOUT or STDERR *before* the call to "capture" or "tee". This may
+    not work for tied filehandles (see below).
 
   Modifying filehandles before capturing
     Generally speaking, you should do little or no manipulation of the
@@ -186,8 +186,7 @@
     behaviors, as described below. Capture::Tiny does its best to compensate
     for these situations, but the results may not be what you desire.
 
-    Closed filehandles
-
+   Closed filehandles
     Capture::Tiny will work even if STDIN, STDOUT or STDERR have been
     previously closed. However, since they will be reopened to capture or
     tee output, any code within the captured block that depends on finding
@@ -204,16 +203,14 @@
     filehandles and also breaks tee() for undiagnosed reasons. So don't do
     that.
 
-    Localized filehandles
-
+   Localized filehandles
     If code localizes any of Perl's standard filehandles before capturing,
     the capture will affect the localized filehandles and not the original
     ones. External system calls are not affected by localizing a filehandle
     in Perl and will continue to send output to the original filehandles
     (which will thus not be captured).
 
-    Scalar filehandles
-
+   Scalar filehandles
     If STDOUT or STDERR are reopened to scalar filehandles prior to the call
     to "capture" or "tee", then Capture::Tiny will override the output
     filehandle for the duration of the "capture" or "tee" call and then, for
@@ -226,8 +223,7 @@
     processes will read from the null device instead, but this is not
     guaranteed.
 
-    Tied output filehandles
-
+   Tied output filehandles
     If STDOUT or STDERR are tied prior to the call to "capture" or "tee",
     then Capture::Tiny will attempt to override the tie for the duration of
     the "capture" or "tee" call and then send captured output to the tied
@@ -239,8 +235,7 @@
     to determine appropriate layers like ":utf8" from the underlying
     filehandle and do the right thing.
 
-    Tied input filehandle
-
+   Tied input filehandle
     Capture::Tiny attempts to preserve the semantics of tied STDIN, but this
     requires Perl 5.8 and is not entirely predictable. External processes
     will not be able to read from such a handle.
@@ -248,12 +243,19 @@
     Unless having STDIN tied is crucial, it may be safest to localize STDIN
     when capturing:
 
-       my ($out, $err) = do { local *STDIN; capture { ... } };
+      my ($out, $err) = do { local *STDIN; capture { ... } };
 
   Modifying filehandles during a capture
     Attempting to modify STDIN, STDOUT or STDERR *during* "capture" or "tee"
     is almost certainly going to cause problems. Don't do that.
 
+   Forking inside a capture
+    Forks aren't portable. The behavior of filehandles during a fork is even
+    less so. If Capture::Tiny detects that a fork has occurred within a
+    capture, it will shortcut in the child process and return empty strings
+    for captures. Other problems may occur in the child or parent, as well.
+    Forking in a capture block is not recommended.
+
   No support for Perl 5.8.0
     It's just too buggy when it comes to layers and UTF-8. Perl 5.8.1 or
     later is recommended.
@@ -268,13 +270,13 @@
     ready to receive data within 30 seconds (or whatever is the value of
     $Capture::Tiny::TIMEOUT). An alternate timeout may be specified by
     setting the "PERL_CAPTURE_TINY_TIMEOUT" environment variable. Setting it
-    to zero will disable timeouts. B<NOTE>, this does not timeout the code
+    to zero will disable timeouts. NOTE, this does not timeout the code
     reference being captured -- this only prevents Capture::Tiny itself from
     hanging your process waiting for its child processes to be ready to
     proceed.
 
 SEE ALSO
-    This module was, inspired by IO::CaptureOutput, which provides similar
+    This module was inspired by IO::CaptureOutput, which provides similar
     functionality without the ability to tee output and with more
     complicated code and API. IO::CaptureOutput does not handle layers or
     most of the unusual cases described in the "Limitations" section and I
@@ -349,6 +351,8 @@
 
     *   David E. Wheeler <da...@justatheory.com>
 
+    *   fecundf <not.com+git...@gmail.com>
+
 COPYRIGHT AND LICENSE
     This software is Copyright (c) 2009 by David Golden.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/Todo new/Capture-Tiny-0.36/Todo
--- old/Capture-Tiny-0.30/Todo  2015-05-16 02:44:00.000000000 +0200
+++ new/Capture-Tiny-0.36/Todo  2016-02-29 03:37:03.000000000 +0100
@@ -6,4 +6,3 @@
 
 - Test utf8 output
 - Test with curses
-- Add tee_stdout and tee_stderr functions (?)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/cpanfile 
new/Capture-Tiny-0.36/cpanfile
--- old/Capture-Tiny-0.30/cpanfile      2015-05-16 02:44:00.000000000 +0200
+++ new/Capture-Tiny-0.36/cpanfile      2016-02-29 03:37:03.000000000 +0100
@@ -30,15 +30,19 @@
   requires "Dist::Zilla::Plugin::Prereqs" => "0";
   requires "Dist::Zilla::Plugin::RemovePrereqs" => "0";
   requires "Dist::Zilla::PluginBundle::DAGOLDEN" => "0.072";
+  requires "English" => "0";
   requires "File::Spec" => "0";
   requires "File::Temp" => "0";
   requires "IO::Handle" => "0";
   requires "IPC::Open3" => "0";
   requires "Pod::Coverage::TrustPod" => "0";
+  requires "Pod::Wordlist" => "0";
+  requires "Software::License::Apache_2_0" => "0";
   requires "Test::CPAN::Meta" => "0";
   requires "Test::More" => "0";
   requires "Test::Pod" => "1.41";
   requires "Test::Pod::Coverage" => "1.08";
   requires "Test::Spelling" => "0.12";
   requires "Test::Version" => "1";
+  requires "blib" => "1.01";
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/lib/Capture/Tiny.pm 
new/Capture-Tiny-0.36/lib/Capture/Tiny.pm
--- old/Capture-Tiny-0.30/lib/Capture/Tiny.pm   2015-05-16 02:44:00.000000000 
+0200
+++ new/Capture-Tiny-0.36/lib/Capture/Tiny.pm   2016-02-29 03:37:03.000000000 
+0100
@@ -3,7 +3,7 @@
 use warnings;
 package Capture::Tiny;
 # ABSTRACT: Capture STDOUT and STDERR from Perl, XS or external programs
-our $VERSION = '0.30';
+our $VERSION = '0.36';
 use Carp ();
 use Exporter ();
 use IO::Handle ();
@@ -83,10 +83,18 @@
 sub _relayer {
   my ($fh, $layers) = @_;
   # _debug("# requested layers (@{$layers}) for @{[fileno $fh]}\n");
-  my %seen = ( unix => 1, perlio => 1 ); # filter these out
-  my @unique = grep { !$seen{$_}++ } @$layers;
-  # _debug("# applying unique layers (@unique) to @{[fileno $fh]}\n");
-  binmode($fh, join(":", ":raw", @unique));
+
+  # eliminate pseudo-layers
+  binmode( $fh, ":raw" );
+  # strip off real layers until only :unix is left
+  while ( 1 < ( my $layers =()= PerlIO::get_layers( $fh, output => 1 ) ) ) {
+      binmode( $fh, ":pop" );
+  }
+  # apply other layers
+  my @to_apply = @$layers;
+  shift @to_apply; # eliminate initial :unix
+  # _debug("# applying layers  (unix @to_apply) to @{[fileno $fh]}\n");
+  binmode($fh, ":" . join(":",@to_apply));
 }
 
 sub _name {
@@ -209,7 +217,9 @@
   $stash->{flag_files}{$which} = scalar tmpnam();
   # execute @cmd as a separate process
   if ( $IS_WIN32 ) {
-    local $@;
+    my $old_eval_err=$@;
+    undef $@;
+
     eval "use Win32API::File qw/GetOsFHandle SetHandleInformation 
fileLastError HANDLE_FLAG_INHERIT INVALID_HANDLE_VALUE/ ";
     # _debug( "# Win32API::File loaded\n") unless $@;
     my $os_fhandle = GetOsFHandle( $stash->{tee}{$which} );
@@ -219,6 +229,7 @@
     _open_std( $stash->{child}{$which} );
     $stash->{pid}{$which} = system(1, @cmd, $stash->{flag_files}{$which});
     # not restoring std here as it all gets redirected again shortly anyway
+    $@=$old_eval_err;
   }
   else { # use fork
     _fork_exec( $which, $stash );
@@ -358,19 +369,22 @@
   # _debug( "# redirecting in parent ...\n" );
   _open_std( $stash->{new} );
   # execute user provided code
-  my ($exit_code, $inner_error, $outer_error, @result);
+  my ($exit_code, $inner_error, $outer_error, $orig_pid, @result);
   {
+    $orig_pid = $$;
     local *STDIN = *CT_ORIG_STDIN if $localize{stdin}; # get original, not 
proxy STDIN
     # _debug( "# finalizing layers ...\n" );
     _relayer(\*STDOUT, $layers{stdout}) if $do_stdout;
     _relayer(\*STDERR, $layers{stderr}) if $do_stderr;
     # _debug( "# running code $code ...\n" );
-    local $@;
+    my $old_eval_err=$@;
+    undef $@;
     eval { @result = $code->(); $inner_error = $@ };
     $exit_code = $?; # save this for later
     $outer_error = $@; # save this for later
     STDOUT->flush if $do_stdout;
     STDERR->flush if $do_stderr;
+    $@ = $old_eval_err;
   }
   # restore prior filehandles and shut down tees
   # _debug( "# restoring filehandles ...\n" );
@@ -385,7 +399,7 @@
   # return captured output, but shortcut in void context
   # unless we have to echo output to tied/scalar handles;
   my %got;
-  if ( defined wantarray or ($do_tee && keys %localize) ) {
+  if ( $orig_pid == $$ and ( defined wantarray or ($do_tee && keys %localize) 
) ) {
     for ( keys %do ) {
       _relayer($stash->{capture}{$_}, $layers{$_});
       $got{$_} = _slurp($_, $stash);
@@ -422,39 +436,39 @@
 
 =head1 VERSION
 
-version 0.30
+version 0.36
 
 =head1 SYNOPSIS
 
-   use Capture::Tiny ':all';
- 
-   # capture from external command
- 
-   ($stdout, $stderr, $exit) = capture {
-     system( $cmd, @args );
-   };
- 
-   # capture from arbitrary code (Perl or external)
- 
-   ($stdout, $stderr, @result) = capture {
-     # your code here
-   };
- 
-   # capture partial or merged output
- 
-   $stdout = capture_stdout { ... };
-   $stderr = capture_stderr { ... };
-   $merged = capture_merged { ... };
- 
-   # tee output
- 
-   ($stdout, $stderr) = tee {
-     # your code here
-   };
- 
-   $stdout = tee_stdout { ... };
-   $stderr = tee_stderr { ... };
-   $merged = tee_merged { ... };
+  use Capture::Tiny ':all';
+
+  # capture from external command
+
+  ($stdout, $stderr, $exit) = capture {
+    system( $cmd, @args );
+  };
+
+  # capture from arbitrary code (Perl or external)
+
+  ($stdout, $stderr, @result) = capture {
+    # your code here
+  };
+
+  # capture partial or merged output
+
+  $stdout = capture_stdout { ... };
+  $stderr = capture_stderr { ... };
+  $merged = capture_merged { ... };
+
+  # tee output
+
+  ($stdout, $stderr) = tee {
+    # your code here
+  };
+
+  $stdout = tee_stdout { ... };
+  $stderr = tee_stderr { ... };
+  $merged = tee_merged { ... };
 
 =head1 DESCRIPTION
 
@@ -471,10 +485,10 @@
 
 =head2 capture
 
-   ($stdout, $stderr, @result) = capture \&code;
-   $stdout = capture \&code;
+  ($stdout, $stderr, @result) = capture \&code;
+  $stdout = capture \&code;
 
-The C<<< capture >>> function takes a code reference and returns what is sent 
to
+The C<capture> function takes a code reference and returns what is sent to
 STDOUT and STDERR as well as any return values from the code reference.  In
 scalar context, it returns only STDOUT.  If no output was received for a
 filehandle, it returns an empty string for that filehandle.  Regardless of 
calling
@@ -483,70 +497,70 @@
 It is prototyped to take a subroutine reference as an argument. Thus, it
 can be called in block form:
 
-   ($stdout, $stderr) = capture {
-     # your code here ...
-   };
+  ($stdout, $stderr) = capture {
+    # your code here ...
+  };
 
 Note that the coderef is evaluated in list context.  If you wish to force
-scalar context on the return value, you must use the C<<< scalar >>> keyword.
+scalar context on the return value, you must use the C<scalar> keyword.
 
-   ($stdout, $stderr, $count) = capture {
-     my @list = qw/one two three/;
-     return scalar @list; # $count will be 3
-   };
+  ($stdout, $stderr, $count) = capture {
+    my @list = qw/one two three/;
+    return scalar @list; # $count will be 3
+  };
 
-Also note that within the coderef, the C<<< @_ >>> variable will be empty.  So 
don't
+Also note that within the coderef, the C<@_> variable will be empty.  So don't
 use arguments from a surrounding subroutine without copying them to an array
 first:
 
-   sub wont_work {
-     my ($stdout, $stderr) = capture { do_stuff( @_ ) };    # WRONG
-     ...
-   }
- 
-   sub will_work {
-     my @args = @_;
-     my ($stdout, $stderr) = capture { do_stuff( @args ) }; # RIGHT
-     ...
-   }
+  sub wont_work {
+    my ($stdout, $stderr) = capture { do_stuff( @_ ) };    # WRONG
+    ...
+  }
+
+  sub will_work {
+    my @args = @_;
+    my ($stdout, $stderr) = capture { do_stuff( @args ) }; # RIGHT
+    ...
+  }
 
 Captures are normally done to an anonymous temporary filehandle.  To
 capture via a named file (e.g. to externally monitor a long-running capture),
 provide custom filehandles as a trailing list of option pairs:
 
-   my $out_fh = IO::File->new("out.txt", "w+");
-   my $err_fh = IO::File->new("out.txt", "w+");
-   capture { ... } stdout => $out_fh, stderr => $err_fh;
+  my $out_fh = IO::File->new("out.txt", "w+");
+  my $err_fh = IO::File->new("out.txt", "w+");
+  capture { ... } stdout => $out_fh, stderr => $err_fh;
 
-The filehandles must be readE<sol>write and seekable.  Modifying the files or
+The filehandles must be read/write and seekable.  Modifying the files or
 filehandles during a capture operation will give unpredictable results.
 Existing IO layers on them may be changed by the capture.
 
-When called in void context, C<<< capture >>> saves memory and time by
+When called in void context, C<capture> saves memory and time by
 not reading back from the capture handles.
 
 =head2 capture_stdout
 
-   ($stdout, @result) = capture_stdout \&code;
-   $stdout = capture_stdout \&code;
+  ($stdout, @result) = capture_stdout \&code;
+  $stdout = capture_stdout \&code;
 
-The C<<< capture_stdout >>> function works just like C<<< capture >>> except 
only
+The C<capture_stdout> function works just like C<capture> except only
 STDOUT is captured.  STDERR is not captured.
 
 =head2 capture_stderr
 
-   ($stderr, @result) = capture_stderr \&code;
-   $stderr = capture_stderr \&code;
+  ($stderr, @result) = capture_stderr \&code;
+  $stderr = capture_stderr \&code;
 
-The C<<< capture_stderr >>> function works just like C<<< capture >>> except 
only
+The C<capture_stderr> function works just like C<capture> except only
 STDERR is captured.  STDOUT is not captured.
 
 =head2 capture_merged
 
-   ($merged, @result) = capture_merged \&code;
-   $merged = capture_merged \&code;
+  ($merged, @result) = capture_merged \&code;
+  $merged = capture_merged \&code;
 
-The C<<< capture_merged >>> function works just like C<<< capture >>> except 
STDOUT and
+The C<capture_merged> function works just like C<capture> except STDOUT and
 STDERR are merged. (Technically, STDERR is redirected to the same capturing
 handle as STDOUT before executing the function.)
 
@@ -555,39 +569,39 @@
 
 =head2 tee
 
-   ($stdout, $stderr, @result) = tee \&code;
-   $stdout = tee \&code;
+  ($stdout, $stderr, @result) = tee \&code;
+  $stdout = tee \&code;
 
-The C<<< tee >>> function works just like C<<< capture >>>, except that output 
is captured
+The C<tee> function works just like C<capture>, except that output is captured
 as well as passed on to the original STDOUT and STDERR.
 
-When called in void context, C<<< tee >>> saves memory and time by
+When called in void context, C<tee> saves memory and time by
 not reading back from the capture handles, except when the
 original STDOUT OR STDERR were tied or opened to a scalar
 handle.
 
 =head2 tee_stdout
 
-   ($stdout, @result) = tee_stdout \&code;
-   $stdout = tee_stdout \&code;
+  ($stdout, @result) = tee_stdout \&code;
+  $stdout = tee_stdout \&code;
 
-The C<<< tee_stdout >>> function works just like C<<< tee >>> except only
+The C<tee_stdout> function works just like C<tee> except only
 STDOUT is teed.  STDERR is not teed (output goes to STDERR as usual).
 
 =head2 tee_stderr
 
-   ($stderr, @result) = tee_stderr \&code;
-   $stderr = tee_stderr \&code;
+  ($stderr, @result) = tee_stderr \&code;
+  $stderr = tee_stderr \&code;
 
-The C<<< tee_stderr >>> function works just like C<<< tee >>> except only
+The C<tee_stderr> function works just like C<tee> except only
 STDERR is teed.  STDOUT is not teed (output goes to STDOUT as usual).
 
 =head2 tee_merged
 
-   ($merged, @result) = tee_merged \&code;
-   $merged = tee_merged \&code;
+  ($merged, @result) = tee_merged \&code;
+  $merged = tee_merged \&code;
 
-The C<<< tee_merged >>> function works just like C<<< capture_merged >>> 
except that output
+The C<tee_merged> function works just like C<capture_merged> except that output
 is captured as well as passed on to STDOUT.
 
 Caution: STDOUT and STDERR output in the merged result are not guaranteed to be
@@ -597,17 +611,17 @@
 
 =head2 Portability
 
-Portability is a goal, not a guarantee.  C<<< tee >>> requires fork, except on
-Windows where C<<< system(1, @cmd) >>> is used instead.  Not tested on any
+Portability is a goal, not a guarantee.  C<tee> requires fork, except on
+Windows where C<system(1, @cmd)> is used instead.  Not tested on any
 particularly esoteric platforms yet.  See the
 L<CPAN Testers Matrix|http://matrix.cpantesters.org/?dist=Capture-Tiny>
 for test result by platform.
 
 =head2 PerlIO layers
 
-Capture::Tiny does it's best to preserve PerlIO layers such as ':utf8' or
+Capture::Tiny does its best to preserve PerlIO layers such as ':utf8' or
 ':crlf' when capturing (only for Perl 5.8.1+) .  Layers should be applied to
-STDOUT or STDERR I<before> the call to C<<< capture >>> or C<<< tee >>>.  This 
may not work
+STDOUT or STDERR I<before> the call to C<capture> or C<tee>.  This may not work
 for tied filehandles (see below).
 
 =head2 Modifying filehandles before capturing
@@ -615,11 +629,11 @@
 Generally speaking, you should do little or no manipulation of the standard IO
 filehandles prior to using Capture::Tiny.  In particular, closing, reopening,
 localizing or tying standard filehandles prior to capture may cause a variety 
of
-unexpected, undesirable andE<sol>or unreliable behaviors, as described below.
+unexpected, undesirable and/or unreliable behaviors, as described below.
 Capture::Tiny does its best to compensate for these situations, but the
 results may not be what you desire.
 
-B<Closed filehandles>
+=head3 Closed filehandles
 
 Capture::Tiny will work even if STDIN, STDOUT or STDERR have been previously
 closed.  However, since they will be reopened to capture or tee output, any
@@ -634,18 +648,18 @@
 Prior to Perl 5.12, closed STDIN combined with PERL_UNICODE=D leaks filehandles
 and also breaks tee() for undiagnosed reasons.  So don't do that.
 
-B<Localized filehandles>
+=head3 Localized filehandles
 
 If code localizes any of Perl's standard filehandles before capturing, the 
capture
 will affect the localized filehandles and not the original ones.  External 
system
 calls are not affected by localizing a filehandle in Perl and will continue
 to send output to the original filehandles (which will thus not be captured).
 
-B<Scalar filehandles>
+=head3 Scalar filehandles
 
 If STDOUT or STDERR are reopened to scalar filehandles prior to the call to
-C<<< capture >>> or C<<< tee >>>, then Capture::Tiny will override the output 
filehandle for
-the duration of the C<<< capture >>> or C<<< tee >>> call and then, for C<<< 
tee >>>, send captured
+C<capture> or C<tee>, then Capture::Tiny will override the output filehandle 
for
+the duration of the C<capture> or C<tee> call and then, for C<tee>, send 
captured
 output to the output filehandle after the capture is complete.  (Requires Perl
 5.8)
 
@@ -654,20 +668,20 @@
 a handle.  Capture::Tiny tries to ensure that external processes will read from
 the null device instead, but this is not guaranteed.
 
-B<Tied output filehandles>
+=head3 Tied output filehandles
 
-If STDOUT or STDERR are tied prior to the call to C<<< capture >>> or C<<< tee 
>>>, then
+If STDOUT or STDERR are tied prior to the call to C<capture> or C<tee>, then
 Capture::Tiny will attempt to override the tie for the duration of the
-C<<< capture >>> or C<<< tee >>> call and then send captured output to the 
tied filehandle after
+C<capture> or C<tee> call and then send captured output to the tied filehandle 
after
 the capture is complete.  (Requires Perl 5.8)
 
 Capture::Tiny may not succeed resending UTF-8 encoded data to a tied
 STDOUT or STDERR filehandle.  Characters may appear as bytes.  If the tied 
filehandle
 is based on L<Tie::StdHandle>, then Capture::Tiny will attempt to determine
-appropriate layers like C<<< :utf8 >>> from the underlying filehandle and do 
the right
+appropriate layers like C<:utf8> from the underlying filehandle and do the 
right
 thing.
 
-B<Tied input filehandle>
+=head3 Tied input filehandle
 
 Capture::Tiny attempts to preserve the semantics of tied STDIN, but this
 requires Perl 5.8 and is not entirely predictable.  External processes
@@ -676,13 +690,21 @@
 Unless having STDIN tied is crucial, it may be safest to localize STDIN when
 capturing:
 
-   my ($out, $err) = do { local *STDIN; capture { ... } };
+  my ($out, $err) = do { local *STDIN; capture { ... } };
 
 =head2 Modifying filehandles during a capture
 
-Attempting to modify STDIN, STDOUT or STDERR I<during> C<<< capture >>> or 
C<<< tee >>> is
+Attempting to modify STDIN, STDOUT or STDERR I<during> C<capture> or C<tee> is
 almost certainly going to cause problems.  Don't do that.
 
+=head3 Forking inside a capture
+
+Forks aren't portable.  The behavior of filehandles during a fork is even
+less so.  If Capture::Tiny detects that a fork has occurred within a
+capture, it will shortcut in the child process and return empty strings for
+captures.  Other problems may occur in the child or parent, as well.
+Forking in a capture block is not recommended.
+
 =head2 No support for Perl 5.8.0
 
 It's just too buggy when it comes to layers and UTF-8.  Perl 5.8.1 or later
@@ -696,18 +718,18 @@
 
 =head2 PERL_CAPTURE_TINY_TIMEOUT
 
-Capture::Tiny uses subprocesses internally for C<<< tee >>>.  By default,
+Capture::Tiny uses subprocesses internally for C<tee>.  By default,
 Capture::Tiny will timeout with an error if such subprocesses are not ready to
 receive data within 30 seconds (or whatever is the value of
-C<<< $Capture::Tiny::TIMEOUT >>>).  An alternate timeout may be specified by 
setting
-the C<<< PERL_CAPTURE_TINY_TIMEOUT >>> environment variable.  Setting it to 
zero will
-disable timeouts.  BE<lt>NOTEE<gt>, this does not timeout the code reference 
being
+C<$Capture::Tiny::TIMEOUT>).  An alternate timeout may be specified by setting
+the C<PERL_CAPTURE_TINY_TIMEOUT> environment variable.  Setting it to zero will
+disable timeouts.  B<NOTE>, this does not timeout the code reference being
 captured -- this only prevents Capture::Tiny itself from hanging your process
 waiting for its child processes to be ready to proceed.
 
 =head1 SEE ALSO
 
-This module was, inspired by L<IO::CaptureOutput>, which provides
+This module was inspired by L<IO::CaptureOutput>, which provides
 similar functionality without the ability to tee output and with more
 complicated code and API.  L<IO::CaptureOutput> does not handle layers
 or most of the unusual cases described in the L</Limitations> section and
@@ -718,7 +740,7 @@
 circumstances.  I'm probably missing some.  The long list is provided to show
 why I felt Capture::Tiny was necessary.
 
-=over
+=over 4
 
 =item *
 
@@ -831,7 +853,7 @@
 
 =head1 CONTRIBUTORS
 
-=for stopwords Dagfinn Ilmari Mannsåker David E. Wheeler
+=for stopwords Dagfinn Ilmari Mannsåker David E. Wheeler fecundf
 
 =over 4
 
@@ -843,6 +865,10 @@
 
 David E. Wheeler <da...@justatheory.com>
 
+=item *
+
+fecundf <not.com+git...@gmail.com>
+
 =back
 
 =head1 COPYRIGHT AND LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/t/00-report-prereqs.dd 
new/Capture-Tiny-0.36/t/00-report-prereqs.dd
--- old/Capture-Tiny-0.30/t/00-report-prereqs.dd        2015-05-16 
02:44:00.000000000 +0200
+++ new/Capture-Tiny-0.36/t/00-report-prereqs.dd        2016-02-29 
03:37:03.000000000 +0100
@@ -11,17 +11,21 @@
                                       'Dist::Zilla::Plugin::Prereqs' => '0',
                                       'Dist::Zilla::Plugin::RemovePrereqs' => 
'0',
                                       'Dist::Zilla::PluginBundle::DAGOLDEN' => 
'0.072',
+                                      'English' => '0',
                                       'File::Spec' => '0',
                                       'File::Temp' => '0',
                                       'IO::Handle' => '0',
                                       'IPC::Open3' => '0',
                                       'Pod::Coverage::TrustPod' => '0',
+                                      'Pod::Wordlist' => '0',
+                                      'Software::License::Apache_2_0' => '0',
                                       'Test::CPAN::Meta' => '0',
                                       'Test::More' => '0',
                                       'Test::Pod' => '1.41',
                                       'Test::Pod::Coverage' => '1.08',
                                       'Test::Spelling' => '0.12',
-                                      'Test::Version' => '1'
+                                      'Test::Version' => '1',
+                                      'blib' => '1.01'
                                     }
                     },
        'runtime' => {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/t/00-report-prereqs.t 
new/Capture-Tiny-0.36/t/00-report-prereqs.t
--- old/Capture-Tiny-0.30/t/00-report-prereqs.t 2015-05-16 02:44:00.000000000 
+0200
+++ new/Capture-Tiny-0.36/t/00-report-prereqs.t 2016-02-29 03:37:03.000000000 
+0100
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.021
+# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.024
 
 use Test::More tests => 1;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/t/19-relayering.t 
new/Capture-Tiny-0.36/t/19-relayering.t
--- old/Capture-Tiny-0.30/t/19-relayering.t     1970-01-01 01:00:00.000000000 
+0100
+++ new/Capture-Tiny-0.36/t/19-relayering.t     2016-02-29 03:37:03.000000000 
+0100
@@ -0,0 +1,83 @@
+# Copyright (c) 2009 by David Golden. All rights reserved.
+# Licensed under Apache License, Version 2.0 (the "License").
+# You may not use this file except in compliance with the License.
+# A copy of the License was distributed with this file or you may obtain a
+# copy of the License from http://www.apache.org/licenses/LICENSE-2.0
+
+use strict;
+use warnings;
+use Test::More;
+use lib 't/lib';
+use Utils qw/next_fd sig_num/;
+use Capture::Tiny ':all';
+
+unless ( PerlIO->can('get_layers') ) {
+    plan skip_all => "Requires PerlIO::getlayers";
+}
+
+plan 'no_plan';
+
+local $ENV{PERL_CAPTURE_TINY_TIMEOUT} = 0; # no timeouts
+
+my $builder = Test::More->builder;
+binmode( $builder->failure_output, ':utf8' ) if $] >= 5.008;
+
+my $fd = next_fd;
+my ( $out, $err, $res, @res, %before, %inner, %outer );
+
+sub _set_layers {
+    my ($fh, $new_layers) = @_;
+    # eliminate pseudo-layers
+    binmode( $fh, ":raw" ) or die "can't binmode $fh";
+    # strip off real layers until only :unix is left
+    while ( 1 < ( my $layers =()= PerlIO::get_layers( $fh, output => 1 ) ) ) {
+        binmode( $fh, ":pop" )  or die "can't binmode $fh";
+    }
+    binmode($fh, $new_layers);
+}
+
+sub _get_layers {
+    return (
+        stdout => [ PerlIO::get_layers( *STDOUT, output => 1 ) ],
+        stderr => [ PerlIO::get_layers( *STDERR, output => 1 ) ],
+    );
+}
+
+sub _cmp_layers {
+    local $Test::Builder::Level = $Test::Builder::Level + 1;
+    my ($got, $exp, $label) = @_;
+
+    ($got, $exp) = map { ":" . join(":", @$_) } $got, $exp;
+    is( $got, $exp, $label );
+}
+
+#--------------------------------------------------------------------------#
+# relayer should duplicate layers
+#--------------------------------------------------------------------------#
+
+_set_layers( \*STDOUT, ":unix:encoding(UTF-8):encoding(UTF-8):crlf" );
+_set_layers( \*STDERR, ":unix:encoding(UTF-8):encoding(UTF-8):crlf" );
+
+%before = _get_layers();
+
+( $out, $err, @res ) = capture {
+    %inner = _get_layers();
+    print STDOUT "foo\n";
+    print STDERR "bar\n";
+};
+
+%outer = _get_layers();
+
+_cmp_layers( $inner{$_}, $before{$_}, "$_: layers inside capture match 
previous" )
+  for qw/stdout stderr/;
+_cmp_layers( $outer{$_}, $before{$_}, "$_: layers after capture match 
previous" )
+  for qw/stdout stderr/;
+
+#--------------------------------------------------------------------------#
+# finish
+#--------------------------------------------------------------------------#
+
+is( next_fd, $fd, "no file descriptors leaked" );
+
+exit 0;
+# vim: set ts=4 sts=4 sw=4 et tw=75:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/t/25-cap-fork.t 
new/Capture-Tiny-0.36/t/25-cap-fork.t
--- old/Capture-Tiny-0.30/t/25-cap-fork.t       1970-01-01 01:00:00.000000000 
+0100
+++ new/Capture-Tiny-0.36/t/25-cap-fork.t       2016-02-29 03:37:03.000000000 
+0100
@@ -0,0 +1,50 @@
+# By Yary Hluchan with portions copied from David Golden
+# Copyright (c) 2015 assigned by Yary Hluchan to David Golden.
+# All rights reserved.
+# Licensed under Apache License, Version 2.0 (the "License").
+# You may not use this file except in compliance with the License.
+# A copy of the License was distributed with this file or you may obtain a
+# copy of the License from http://www.apache.org/licenses/LICENSE-2.0
+
+use strict;
+use warnings;
+use Test::More;
+use lib 't/lib';
+use Utils qw/next_fd/;
+use Capture::Tiny 'capture';
+
+use Config;
+my $no_fork = $^O ne 'MSWin32' && ! $Config{d_fork};
+if ( $no_fork ) {
+  plan skip_all => 'tee() requires fork';
+}
+else {
+  plan 'no_plan';
+}
+
+my $builder = Test::More->builder;
+binmode($builder->failure_output, ':utf8') if $] >= 5.008;
+
+my $fd = next_fd;
+
+
+my ($stdout, $stderr, @result) = capture {
+  if (!defined(my $child = fork)) { die "fork() failed" }
+  elsif ($child == 0) {
+    print "Happiness";
+    print STDERR "Certainty\n";
+    exit;
+  }
+  else {
+    wait;
+    print ", a parent-ly\n";
+  }
+  return qw(a b c);
+};
+
+is ( $stdout, "Happiness, a parent-ly\n", "got stdout");
+is ( $stderr, "Certainty\n", "got stderr");
+is ( "@result", "a b c" , "got result");
+is ( next_fd, $fd, "no file descriptors leaked" );
+
+exit 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/xt/author/00-compile.t 
new/Capture-Tiny-0.36/xt/author/00-compile.t
--- old/Capture-Tiny-0.30/xt/author/00-compile.t        2015-05-16 
02:44:00.000000000 +0200
+++ new/Capture-Tiny-0.36/xt/author/00-compile.t        2016-02-29 
03:37:03.000000000 +0100
@@ -2,7 +2,7 @@
 use strict;
 use warnings;
 
-# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.052
+# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.054
 
 use Test::More;
 
@@ -39,6 +39,9 @@
     waitpid($pid, 0);
     is($?, 0, "$lib loaded ok");
 
+    shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/
+        and not eval { require blib; blib->VERSION('1.01') };
+
     if (@_warnings)
     {
         warn @_warnings;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/xt/author/pod-coverage.t 
new/Capture-Tiny-0.36/xt/author/pod-coverage.t
--- old/Capture-Tiny-0.30/xt/author/pod-coverage.t      1970-01-01 
01:00:00.000000000 +0100
+++ new/Capture-Tiny-0.36/xt/author/pod-coverage.t      2016-02-29 
03:37:03.000000000 +0100
@@ -0,0 +1,7 @@
+#!perl
+# This file was automatically generated by 
Dist::Zilla::Plugin::PodCoverageTests.
+
+use Test::Pod::Coverage 1.08;
+use Pod::Coverage::TrustPod;
+
+all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/xt/author/pod-spell.t 
new/Capture-Tiny-0.36/xt/author/pod-spell.t
--- old/Capture-Tiny-0.30/xt/author/pod-spell.t 2015-05-16 02:44:00.000000000 
+0200
+++ new/Capture-Tiny-0.36/xt/author/pod-spell.t 2016-02-29 03:37:03.000000000 
+0100
@@ -2,7 +2,7 @@
 use warnings;
 use Test::More;
 
-# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006009
+# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.007000
 use Test::Spelling 0.12;
 use Pod::Wordlist;
 
@@ -24,6 +24,8 @@
 ilmari
 Wheeler
 david
+fecundf
+not
 lib
 Capture
 Tiny
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/xt/author/pod-syntax.t 
new/Capture-Tiny-0.36/xt/author/pod-syntax.t
--- old/Capture-Tiny-0.30/xt/author/pod-syntax.t        1970-01-01 
01:00:00.000000000 +0100
+++ new/Capture-Tiny-0.36/xt/author/pod-syntax.t        2016-02-29 
03:37:03.000000000 +0100
@@ -0,0 +1,7 @@
+#!perl
+# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
+use strict; use warnings;
+use Test::More;
+use Test::Pod 1.41;
+
+all_pod_files_ok();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/xt/author/test-version.t 
new/Capture-Tiny-0.36/xt/author/test-version.t
--- old/Capture-Tiny-0.30/xt/author/test-version.t      1970-01-01 
01:00:00.000000000 +0100
+++ new/Capture-Tiny-0.36/xt/author/test-version.t      2016-02-29 
03:37:03.000000000 +0100
@@ -0,0 +1,24 @@
+use strict;
+use warnings;
+use Test::More;
+
+# generated by Dist::Zilla::Plugin::Test::Version 1.05
+use Test::Version;
+
+my @imports = qw( version_all_ok );
+
+my $params = {
+    is_strict      => 0,
+    has_version    => 1,
+    multiple       => 0,
+
+};
+
+push @imports, $params
+    if version->parse( $Test::Version::VERSION ) >= version->parse('1.002');
+
+
+Test::Version->import(@imports);
+
+version_all_ok;
+done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/xt/release/pod-coverage.t 
new/Capture-Tiny-0.36/xt/release/pod-coverage.t
--- old/Capture-Tiny-0.30/xt/release/pod-coverage.t     2015-05-16 
02:44:00.000000000 +0200
+++ new/Capture-Tiny-0.36/xt/release/pod-coverage.t     1970-01-01 
01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-#!perl
-# This file was automatically generated by 
Dist::Zilla::Plugin::PodCoverageTests.
-
-use Test::Pod::Coverage 1.08;
-use Pod::Coverage::TrustPod;
-
-all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/xt/release/pod-syntax.t 
new/Capture-Tiny-0.36/xt/release/pod-syntax.t
--- old/Capture-Tiny-0.30/xt/release/pod-syntax.t       2015-05-16 
02:44:00.000000000 +0200
+++ new/Capture-Tiny-0.36/xt/release/pod-syntax.t       1970-01-01 
01:00:00.000000000 +0100
@@ -1,6 +0,0 @@
-#!perl
-# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
-use Test::More;
-use Test::Pod 1.41;
-
-all_pod_files_ok();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Capture-Tiny-0.30/xt/release/test-version.t 
new/Capture-Tiny-0.36/xt/release/test-version.t
--- old/Capture-Tiny-0.30/xt/release/test-version.t     2015-05-16 
02:44:00.000000000 +0200
+++ new/Capture-Tiny-0.36/xt/release/test-version.t     1970-01-01 
01:00:00.000000000 +0100
@@ -1,23 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-
-# generated by Dist::Zilla::Plugin::Test::Version 1.02
-use Test::Version;
-
-my @imports = qw( version_all_ok );
-
-my $params = {
-    is_strict      => 0,
-    has_version    => 1,
-
-};
-
-push @imports, $params
-    if version->parse( $Test::Version::VERSION ) >= version->parse('1.002');
-
-
-Test::Version->import(@imports);
-
-version_all_ok;
-done_testing;


Reply via email to