X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Flocal%2Flib.pm;h=9ac0a7571c8f41a89b96544a8f54de8129f11c27;hb=93b577b582750b1e84d1bfaf916e2d0f5ef9d0ba;hp=b79cd67a9cdcb580e36d172f5fa035a529dda23c;hpb=4957ffde85720ce3d5d3fdee493b33e397ede6af;p=p5sagit%2Flocal-lib.git diff --git a/lib/local/lib.pm b/lib/local/lib.pm index b79cd67..9ac0a75 100644 --- a/lib/local/lib.pm +++ b/lib/local/lib.pm @@ -10,7 +10,8 @@ use File::Spec (); use File::Path (); use Config; -our $VERSION = '1.008016'; # 1.8.16 +our $VERSION = '1.008023'; # 1.8.23 +$VERSION = eval $VERSION; our @KNOWN_FLAGS = qw(--self-contained --deactivate --deactivate-all); @@ -423,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 => '' }, @@ -439,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) = @_; @@ -497,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; @@ -1105,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