diff options
author | Karl Berry <karl@freefriends.org> | 2014-04-23 21:46:20 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2014-04-23 21:46:20 +0000 |
commit | 300c1eb6d37d46078d448d6d58938d5a80cd68ff (patch) | |
tree | 23a0a8b9f8f5460b405119c4d3c163d2d488ca5e /Master/tlpkg/tlperl/lib/TAP/Parser | |
parent | ed55d86b7c5e18f6eccce80a1fb1423ca40a23b5 (diff) |
(tl)perl 5.18.2 for windows from siep
git-svn-id: svn://tug.org/texlive/trunk@33648 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlperl/lib/TAP/Parser')
31 files changed, 76 insertions, 77 deletions
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm index 822b0d7109e..d2836e552cb 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm @@ -14,11 +14,11 @@ TAP::Parser::Aggregator - Aggregate TAP::Parser results =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 SYNOPSIS diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Grammar.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Grammar.pm index 0646d15d292..aba4c66086b 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Grammar.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Grammar.pm @@ -15,11 +15,11 @@ TAP::Parser::Grammar - A grammar for the Test Anything Protocol. =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 SYNOPSIS diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm index dd831995dcc..aebcb94a5f4 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm @@ -13,11 +13,11 @@ TAP::Parser::Iterator - Base class for TAP source iterators =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 SYNOPSIS diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm index 4a195849bc9..a3bb6621e7a 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm @@ -13,11 +13,11 @@ TAP::Parser::Iterator::Array - Iterator for array-based TAP sources =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 SYNOPSIS diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Process.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Process.pm index f4332c94503..8f43f0a45bc 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Process.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Process.pm @@ -17,11 +17,11 @@ TAP::Parser::Iterator::Process - Iterator for process-based TAP sources =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 SYNOPSIS diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Stream.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Stream.pm index 27d87fb9961..1d045744103 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Stream.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Stream.pm @@ -13,11 +13,11 @@ TAP::Parser::Iterator::Stream - Iterator for filehandle-based TAP sources =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 SYNOPSIS diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/IteratorFactory.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/IteratorFactory.pm index a45f08550cb..cda251e8d72 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/IteratorFactory.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/IteratorFactory.pm @@ -18,11 +18,11 @@ TAP::Parser::IteratorFactory - Figures out which SourceHandler objects to use fo =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 SYNOPSIS diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm index 934933cae39..a3a23dae757 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm @@ -18,11 +18,11 @@ TAP::Parser::Multiplexer - Multiplex multiple TAP::Parsers =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 SYNOPSIS diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result.pm index c8120302f34..a0caebe24ca 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result.pm @@ -26,11 +26,11 @@ TAP::Parser::Result - Base class for TAP::Parser output objects =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 SYNOPSIS diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm index e85d2a9a951..14bef6c9ade 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm @@ -12,11 +12,11 @@ TAP::Parser::Result::Bailout - Bailout result token. =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 DESCRIPTION diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm index 239a3eb22be..8a2cb934de5 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm @@ -12,11 +12,11 @@ TAP::Parser::Result::Comment - Comment result token. =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 DESCRIPTION diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm index 56ac06ac4ec..b515e61c99a 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm @@ -12,11 +12,11 @@ TAP::Parser::Result::Plan - Plan result token. =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 DESCRIPTION diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm index b2a9709c337..0416e3a81f1 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm @@ -12,11 +12,11 @@ TAP::Parser::Result::Pragma - TAP pragma token. =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 DESCRIPTION diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm index dd1ecd2edfa..b977f71d9ba 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm @@ -14,11 +14,11 @@ TAP::Parser::Result::Test - Test result token. =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 DESCRIPTION diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm index 861de5e29fa..0d0e58304b6 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm @@ -14,11 +14,11 @@ TAP::Parser::Result::Unknown - Unknown result token. =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 DESCRIPTION diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm index f20c7a1d0a8..2380c43349e 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm @@ -12,11 +12,11 @@ TAP::Parser::Result::Version - TAP syntax version token. =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 DESCRIPTION diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm index 28aae77a10e..f92b43a78c7 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm @@ -12,11 +12,11 @@ TAP::Parser::Result::YAML - YAML result token. =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 DESCRIPTION diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/ResultFactory.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/ResultFactory.pm index 37ec96b201b..729bf4fa6f4 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/ResultFactory.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/ResultFactory.pm @@ -30,11 +30,11 @@ TAP::Parser::ResultFactory - Factory for creating TAP::Parser output objects =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head2 DESCRIPTION diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm index 522194182b8..f7a3e46c67b 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm @@ -12,11 +12,11 @@ TAP::Parser::Scheduler - Schedule tests during parallel testing =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 SYNOPSIS diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm index 18c1026a9dd..bac5883f48f 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm @@ -10,11 +10,11 @@ TAP::Parser::Scheduler::Job - A single testing job. =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 SYNOPSIS diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Spinner.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Spinner.pm index eb88b444011..21d4d67647a 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Spinner.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Spinner.pm @@ -10,11 +10,11 @@ TAP::Parser::Scheduler::Spinner - A no-op job. =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 SYNOPSIS diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Source.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Source.pm index a33fe6fdb62..6eda5db839d 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Source.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Source.pm @@ -6,6 +6,8 @@ use vars qw($VERSION @ISA); use TAP::Object (); use File::Basename qw( fileparse ); +use constant BLK_SIZE => 512; + @ISA = qw(TAP::Object); =head1 NAME @@ -14,11 +16,11 @@ TAP::Parser::Source - a TAP source & meta data about it =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 SYNOPSIS @@ -288,8 +290,8 @@ sub assemble_meta { $file->{lc_ext} = lc( $file->{ext} ); $file->{basename} .= $file->{ext} if $file->{ext}; - if ( $file->{text} and $file->{read} ) { - eval { $file->{shebang} = $self->_read_shebang($$raw); }; + if ( !$file->{is_dir} && $file->{read} ) { + eval { $file->{shebang} = $self->shebang($$raw); }; if ( my $e = $@ ) { warn $e; } @@ -323,18 +325,14 @@ May be called as a class method my %shebang_for; sub _read_shebang { - my ( $self, $file ) = @_; - my $shebang; - local *TEST; - if ( open( TEST, $file ) ) { - $shebang = <TEST>; - chomp $shebang; - close(TEST) or die "Can't close $file. $!\n"; - } - else { - die "Can't open $file. $!\n"; - } - return $shebang; + my ( $class, $file ) = @_; + open my $fh, '<', $file or die "Can't read $file: $!\n"; + + # Might be a binary file - so read a fixed number of bytes. + my $got = read $fh, my $buf, BLK_SIZE; + defined $got or die "I/O error: $!\n"; + return $1 if $buf =~ /(.*)/; + return; } sub shebang { diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler.pm index acacb0b417e..e8412ab309b 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler.pm @@ -14,11 +14,11 @@ TAP::Parser::SourceHandler - Base class for different TAP source handlers =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 SYNOPSIS diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Executable.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Executable.pm index 8537ba18bf5..f20e6514ab0 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Executable.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Executable.pm @@ -17,11 +17,11 @@ TAP::Parser::SourceHandler::Executable - Stream output from an executable TAP so =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 SYNOPSIS diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/File.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/File.pm index ab08eb2922f..1faacebe513 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/File.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/File.pm @@ -17,11 +17,11 @@ TAP::Parser::SourceHandler::File - Stream TAP from a text file. =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 SYNOPSIS diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Handle.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Handle.pm index fc2e65461ca..f0043471250 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Handle.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Handle.pm @@ -17,11 +17,11 @@ TAP::Parser::SourceHandler::Handle - Stream TAP from an IO::Handle or a GLOB. =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 SYNOPSIS diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Perl.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Perl.pm index 9721acf9f11..97eba8ebc17 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Perl.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Perl.pm @@ -22,11 +22,11 @@ TAP::Parser::SourceHandler::Perl - Stream TAP from a Perl executable =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 SYNOPSIS @@ -80,6 +80,7 @@ sub can_handle { if ( my $shebang = $file->{shebang} ) { return 0.9 if $shebang =~ /^#!.*\bperl/; + # We favour Perl as the interpreter for any shebang to preserve # previous semantics: we used to execute everything via Perl and # relied on it to pass the shebang off to the appropriate @@ -315,7 +316,7 @@ Gets the version of Perl currently running the test suite. sub get_perl { my $class = shift; return $ENV{HARNESS_PERL} if defined $ENV{HARNESS_PERL}; - return Win32::GetShortPathName($^X) if IS_WIN32; + return qq["$^X"] if IS_WIN32 && ( $^X =~ /[^\w\.\/\\]/ ); return $^X; } diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/RawTAP.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/RawTAP.pm index 0d7a4851ee8..04b4b9c2da1 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/RawTAP.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/RawTAP.pm @@ -17,11 +17,11 @@ TAP::Parser::SourceHandler::RawTAP - Stream output from raw TAP in a scalar/arra =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 SYNOPSIS diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Utils.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Utils.pm index 49a457a3783..2096b0ec4f1 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/Utils.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Utils.pm @@ -13,11 +13,11 @@ TAP::Parser::Utils - Internal TAP::Parser utilities =head1 VERSION -Version 3.23 +Version 3.26 =cut -$VERSION = '3.23'; +$VERSION = '3.26'; =head1 SYNOPSIS diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm index 82968b42b1d..ac2c455ef3e 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm @@ -6,7 +6,7 @@ use vars qw($VERSION @ISA); use TAP::Object (); @ISA = 'TAP::Object'; -$VERSION = '3.23'; +$VERSION = '3.26'; # TODO: # Handle blessed object syntax @@ -270,7 +270,7 @@ TAP::Parser::YAMLish::Reader - Read YAMLish data from iterator =head1 VERSION -Version 3.23 +Version 3.26 =head1 SYNOPSIS diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm index dda5f1873eb..9f20fb2c31b 100644 --- a/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm +++ b/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm @@ -6,7 +6,7 @@ use vars qw($VERSION @ISA); use TAP::Object (); @ISA = 'TAP::Object'; -$VERSION = '3.23'; +$VERSION = '3.26'; my $ESCAPE_CHAR = qr{ [ \x00-\x1f \" ] }x; my $ESCAPE_KEY = qr{ (?: ^\W ) | $ESCAPE_CHAR }x; @@ -147,7 +147,7 @@ TAP::Parser::YAMLish::Writer - Write YAMLish data =head1 VERSION -Version 3.23 +Version 3.26 =head1 SYNOPSIS |