bump version to 1.008024
[p5sagit/local-lib.git] / lib / local / lib.pm
index 86ce359..51438a0 100644 (file)
@@ -10,7 +10,7 @@ use File::Spec ();
 use File::Path ();
 use Config;
 
-our $VERSION = '1.008_019'; # 1.8.19 development release
+our $VERSION = '1.008_024'; # 1.8.24
 $VERSION = eval $VERSION;
 
 our @KNOWN_FLAGS = qw(--self-contained --deactivate --deactivate-all);
@@ -424,8 +424,8 @@ sub build_activate_environment_vars_for {
               \'PERL_LOCAL_LIB_ROOT',
               $path,
             ),
-    PERL_MB_OPT => "--install_base ${path}",
-    PERL_MM_OPT => "INSTALL_BASE=${path}",
+    PERL_MB_OPT => "--install_base " . _mb_escape_path($path),
+    PERL_MM_OPT => "INSTALL_BASE=" . _mm_escape_path($path),
     PERL5LIB =>
             _env_list_value(
               { interpolate => $interpolate, exists => 0, empty => '' },
@@ -440,6 +440,21 @@ sub build_activate_environment_vars_for {
   )
 }
 
+sub _mm_escape_path {
+  my $path = shift;
+  $path =~ s/\\/\\\\\\\\/g;
+  if ($path =~ s/ /\\ /g) {
+    $path = qq{"\\"$path\\""};
+  }
+  return $path;
+}
+
+sub _mb_escape_path {
+  my $path = shift;
+  $path =~ s/\\/\\\\/g;
+  return qq{"$path"};
+}
+
 sub active_paths {
   my ($class) = @_;
 
@@ -498,8 +513,8 @@ sub build_deactivate_environment_vars_for {
   # correspond with the new top of stack.
   if ($active_lls[-1] eq $path) {
     my $new_top = $active_lls[-2];
-    $env{PERL_MB_OPT} = defined($new_top) ? "--install_base ${new_top}" : undef;
-    $env{PERL_MM_OPT} = defined($new_top) ? "INSTALL_BASE=${new_top}" : undef;
+    $env{PERL_MB_OPT} = defined($new_top) ? "--install_base "._mb_escape_path($new_top) : undef;
+    $env{PERL_MM_OPT} = defined($new_top) ? "INSTALL_BASE="._mm_escape_path($new_top) : undef;
   }
 
   return %env;
@@ -1106,8 +1121,8 @@ listed above.
 
 =head1 LICENSE
 
-This library is free software and may be distributed under the same terms
-as perl itself.
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
 
 =cut