]> git.vpit.fr Git - perl/modules/Regexp-Wildcards.git/commitdiff
Fix passing $^O to ->type
authorVincent Pit <vince@profvince.com>
Thu, 26 Feb 2009 13:59:51 +0000 (14:59 +0100)
committerVincent Pit <vince@profvince.com>
Thu, 26 Feb 2009 13:59:51 +0000 (14:59 +0100)
lib/Regexp/Wildcards.pm
t/11-opts.t

index 8e37c6d1e1fb5c507bf4018e43ecee059c408cb0..cfd5b2d5fd11418c8a88a6bd99789c2b1aced457 100644 (file)
@@ -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<type $type>
 
-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<do> 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<perlport> for the list).
+
+=item *
+
+C<undef>
+
+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<type> method returns the L<Regexp::Wildcards> object.
+
 =head2 C<< capture [ $captures E<verbar> set => $c1, add => $c2, rem => $c3 ] >>
 
 Specifies the list of atoms to capture.
index e97ecc8b019a7027d2d381ecd007e92f7e089923..1874b77a707a84617509501395350cd74655db57 100644 (file)
@@ -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');