From: Vincent Pit Date: Thu, 26 Feb 2009 13:59:51 +0000 (+0100) Subject: Fix passing $^O to ->type X-Git-Tag: v1.03~9 X-Git-Url: http://git.vpit.fr/?a=commitdiff_plain;h=39b3bffa90cd07a8edd6ff9e22481bc61c33dd6a;p=perl%2Fmodules%2FRegexp-Wildcards.git Fix passing $^O to ->type --- diff --git a/lib/Regexp/Wildcards.pm b/lib/Regexp/Wildcards.pm index 8e37c6d..cfd5b2d 100644 --- a/lib/Regexp/Wildcards.pm +++ b/lib/Regexp/Wildcards.pm @@ -69,6 +69,12 @@ my %types = ( win32 => [ qw/jokers commas/ ], ); $types{$_} = $types{win32} for qw/dos os2 MSWin32 cygwin/; +$types{$_} = $types{unix} for qw/linux + darwin machten next + aix irix hpux dgux dynixptx + bsdos freebsd openbsd + svr4 solaris sunos dec_osf + sco_sv unicos unicosmk/; my %escapes = ( jokers => '?*', @@ -280,11 +286,57 @@ No argument means C<< set => [ ] >>. =head2 C -Notifies to convert the metacharacters that corresponds to the predefined type C<$type>. C<$type> can be any of C<'jokers'>, C<'sql'>, C<'commas'>, C<'brackets'>, C<'win32'> or C<'unix'>. An unknown or undefined value defaults to C<'unix'>, except for C<'dos'>, C<'os2'>, C<'MSWin32'> and C<'cygwin'> that default to C<'win32'>. This means that you can pass C<$^O> as the C<$type> and get the corresponding shell behaviour. Returns the object. +Notifies to convert the metacharacters that corresponds to the predefined type C<$type>. +C<$type> can be any of : + +=over 4 + +=item * + +C<'jokers'>, C<'sql'>, C<'commas'>, C<'brackets'> + +Singleton types that enable the corresponding C classes. + +=item * + +C<'unix'> + +Covers typical Unix shell globbing features (effectively C<'jokers'> and C<'brackets'>). + +=item * + +C<$^O> values for common Unix systems + +Wrap to C<'unix'> (see L for the list). + +=item * + +C + +Defaults to C<'unix'>. + +=item * + +C<'win32'> + +Covers typical Windows shell globbing features (effectively C<'jokers'> and C<'commas'>). + +=item * + +C<'dos'>, C<'os2'>, C<'MSWin32'>, C<'cygwin'> + +Wrap to C<'win32'>. + +=back + +In particular, you can usually pass C<$^O> as the C<$type> and get the corresponding shell behaviour. $rw->type('win32'); # Set type to win32. + $rw->type($^O); # Set type to unix on Unices and win32 on Windows $rw->type(); # Set type to unix. +The C method returns the L object. + =head2 C<< capture [ $captures E set => $c1, add => $c2, rem => $c3 ] >> Specifies the list of atoms to capture. diff --git a/t/11-opts.t b/t/11-opts.t index e97ecc8..1874b77 100644 --- a/t/11-opts.t +++ b/t/11-opts.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 8; +use Test::More tests => 10; use Regexp::Wildcards; @@ -20,6 +20,10 @@ my $jok_gr = 'a\\,b\\{c\\,d\\}e.*f.(g)'; is($rw->convert($wc), $unix, 'nothing defaults to unix'); $rw->type('win32'); is($rw->convert($wc), $win32, 'set to win32'); +$rw->type('darwin'); +is($rw->convert($wc), $unix, 'set to darwin'); +$rw->type('MSWin32'); +is($rw->convert($wc), $win32, 'reset to win32'); $rw->type(); is($rw->convert($wc), $unix, 'reset to unix');