From: Graham Knop Date: Fri, 4 Oct 2013 08:18:20 +0000 (-0400) Subject: reverse order of PERL_LOCAL_LIB_ROOT to match standard env order X-Git-Tag: 1.008025~2 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=a27f74569232aedbe0a104c26fb7d99c8049686b;p=p5sagit%2Flocal-lib.git reverse order of PERL_LOCAL_LIB_ROOT to match standard env order --- diff --git a/lib/local/lib.pm b/lib/local/lib.pm index 7947bc2..38ebcb5 100644 --- a/lib/local/lib.pm +++ b/lib/local/lib.pm @@ -218,7 +218,7 @@ sub setup_local_lib_for { $path = Win32::GetShortPathName($path) if $^O eq 'MSWin32'; if (! $deactivating) { - if (@active_lls && $active_lls[-1] eq $path) { + if (@active_lls && $active_lls[0] eq $path) { exit 0 if $0 eq '-'; return; # Asked to add what's already at the top of the stack } elsif (grep { $_ eq $path} @active_lls) { @@ -421,8 +421,8 @@ sub build_activate_environment_vars_for { PERL_LOCAL_LIB_ROOT => _env_list_value( { interpolate => $interpolate, exists => 0, empty => '' }, - \'PERL_LOCAL_LIB_ROOT', $path, + \'PERL_LOCAL_LIB_ROOT', ), PERL_MB_OPT => "--install_base " . _mb_escape_path($path), PERL_MM_OPT => "INSTALL_BASE=" . _mm_escape_path($path), @@ -511,8 +511,8 @@ sub build_deactivate_environment_vars_for { # If removing ourselves from the "top of the stack", set install paths to # correspond with the new top of stack. - if ($active_lls[-1] eq $path) { - my $new_top = $active_lls[-2]; + if ($active_lls[0] eq $path) { + my $new_top = $active_lls[1]; $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; } diff --git a/t/bad_variables.t b/t/bad_variables.t index 5321bb7..f18a6a7 100644 --- a/t/bad_variables.t +++ b/t/bad_variables.t @@ -20,13 +20,13 @@ local::lib->import($dir1); local::lib->import($dir2); # we have junk in here now -$ENV{PERL_LOCAL_LIB_ROOT} .= $Config{path_sep} . $dir3; +$ENV{PERL_LOCAL_LIB_ROOT} = $dir3 . $Config{path_sep} . $ENV{PERL_LOCAL_LIB_ROOT}; local::lib->import($dir1); is( $ENV{PERL_LOCAL_LIB_ROOT}, - join($Config{path_sep}, (grep { defined $_ and $_ ne '' } $dir2, $dir1)), + join($Config{path_sep}, (grep { defined $_ and $_ ne '' } $dir1, $dir2)), 'dir1 should have been removed and added back in at the top' ); diff --git a/t/stackable.t b/t/stackable.t index c73d7f3..e57d9ce 100644 --- a/t/stackable.t +++ b/t/stackable.t @@ -46,7 +46,7 @@ like $ENV{PERL_MM_OPT}, qr/\Q$dir2_escape/, 'second path is installation target' local::lib->import($dir1); my @active = local::lib->active_paths; is @active, $prev_active + 2, 'still two active dirs after re-adding first'; -is $active[-1], $dir1, 'first dir was re-added on top'; +is $active[0], $dir1, 'first dir was re-added on top'; like $ENV{PERL_MM_OPT}, qr/\Q$dir1_escape/, 'first path is installation target again'; local::lib->import('--deactivate', $dir2);