X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Flocal%2Flib.pm;h=38ad56f7ee4597ea9a297b01aae8f7a20e4b077b;hb=6611a9dcfa568b663477a6411d9d9536906c8d87;hp=9fd7017ba51cb235be120a3818b0226aac992902;hpb=ea713040a15ab3150bb8f4a4f1239dd85132fde9;p=p5sagit%2Flocal-lib.git diff --git a/lib/local/lib.pm b/lib/local/lib.pm index 9fd7017..38ad56f 100644 --- a/lib/local/lib.pm +++ b/lib/local/lib.pm @@ -102,7 +102,6 @@ sub libs { $_[0]->{libs} ||= [ \'PERL5LIB' ] } sub bins { $_[0]->{bins} ||= [ \'PATH' ] } sub roots { $_[0]->{roots} ||= [ \'PERL_LOCAL_LIB_ROOT' ] } sub extra { $_[0]->{extra} ||= {} } -sub shelltype { $_[0]->{shelltype} ||= $_[0]->guess_shelltype } sub no_create { $_[0]->{no_create} } my $_archname = $Config{archname}; @@ -364,7 +363,7 @@ sub environment_vars_string { } $out .= $self->$build_method($name, $value); } - my $wrap_method = 'wrap_' . $self->shelltype . '_output'; + my $wrap_method = "wrap_${shelltype}_output"; if ($self->can($wrap_method)) { return $self->$wrap_method($out); } @@ -444,11 +443,11 @@ sub wrap_powershell_output { sub build_fish_env_declaration { my ($class, $name, $args) = @_; - my $value = $class->_interpolate($args, '"%s"', '"', '\\%s'); + my $value = $class->_interpolate($args, '$%s', '"', '\\%s'); if (!defined $value) { return qq{set -e $name;\n}; } - $value =~ s/$_path_sep/ /; + $value =~ s/$_path_sep/ /g; qq{set -x $name $value;\n}; } @@ -567,6 +566,7 @@ sub guess_shelltype { for ($shellbin) { return /csh$/ ? 'csh' + : /fish/ ? 'fish' : /command(?:\.com)?$/i ? 'cmd' : /cmd(?:\.exe)?$/i ? 'cmd' : /4nt(?:\.exe)?$/i ? 'cmd'