Author: schwern
Date: Sun Sep 28 15:03:26 2008
New Revision: 11900
Modified:
Module-Build/trunk/ (props changed)
Module-Build/trunk/Changes
Module-Build/trunk/lib/Module/Build/Platform/Unix.pm
Module-Build/trunk/t/tilde.t
Log:
[EMAIL PROTECTED]: schwern | 2008-09-28 18:02:37 -0400
- Fix ~ expansion when $HOME is different from /etc/passwd as
when running sudo. [rt.cpan.org 39662]
Modified: Module-Build/trunk/Changes
==============================================================================
--- Module-Build/trunk/Changes (original)
+++ Module-Build/trunk/Changes Sun Sep 28 15:03:26 2008
@@ -7,6 +7,8 @@
Bug Fixes
- Workaround HARNESS_TIMER env issue in t/compat.t (RT#39635)
+ - Fix ~ expansion when $HOME is different from /etc/passwd as
+ when running sudo. [rt.cpan.org 39662]
Other
- Updated our embedded version.pm to 0.76, enhanced documentation on
Modified: Module-Build/trunk/lib/Module/Build/Platform/Unix.pm
==============================================================================
--- Module-Build/trunk/lib/Module/Build/Platform/Unix.pm (original)
+++ Module-Build/trunk/lib/Module/Build/Platform/Unix.pm Sun Sep 28
15:03:26 2008
@@ -47,7 +47,7 @@
$value =~ s[^~(\w[-\w]*)?(?=/|$)] # tilde with optional username
[$1 ?
((getpwnam $1)[7] || "~$1") :
- (getpwuid $>)[7]
+ ($ENV{HOME} || (getpwuid $>)[7])
]ex;
return $value;
}
Modified: Module-Build/trunk/t/tilde.t
==============================================================================
--- Module-Build/trunk/t/tilde.t (original)
+++ Module-Build/trunk/t/tilde.t Sun Sep 28 15:03:26 2008
@@ -4,7 +4,7 @@
use strict;
use lib $ENV{PERL_CORE} ? '../lib/Module/Build/t/lib' : 't/lib';
-use MBTest tests => 17;
+use MBTest tests => 18;
use_ok 'Module::Build';
ensure_blib('Module::Build');
@@ -68,6 +68,13 @@
is( run_sample( prefix => '~' )->prefix,
$home );
+ # Test when HOME is different from getpwuid(), as in sudo.
+ {
+ local $ENV{HOME} = '/wibble/whomp';
+
+ is( run_sample( $p => '~' )->$p(), "/wibble/whomp" );
+ }
+
my $mb = run_sample( install_path => { html => '~/html',
lib => '~/lib' }
);