]> Sergey Matveev's repositories - public-inbox.git/commitdiff
lei: fix rel2abs
authorEric Wong <e@80x24.org>
Fri, 16 Apr 2021 23:10:32 +0000 (16:10 -0700)
committerEric Wong <e@80x24.org>
Sat, 17 Apr 2021 10:00:45 +0000 (10:00 +0000)
We don't want pathnames with "GLOB(0xADD12355)" in them.

lib/PublicInbox/LEI.pm

index 52b588a22a99bf8c94e5b3aa14093f7e84465bba..ebd0f1545cc606321e3173ef41a8bfb130b4db95 100644 (file)
@@ -68,18 +68,19 @@ sub rel2abs ($$) {
        my ($self, $p) = @_;
        return $p if index($p, '/') == 0; # already absolute
        my $pwd = $self->{env}->{PWD};
+       my $cwd;
        if (defined $pwd) {
-               my $cwd = $self->{3} // getcwd() // die "getcwd(PWD=$pwd): $!";
+               my $xcwd = $self->{3} //
+                       ($cwd = getcwd() // die "getcwd(PWD=$pwd): $!");
                if (my @st_pwd = stat($pwd)) {
-                       my @st_cwd = stat($cwd) or die "stat($cwd): $!";
+                       my @st_cwd = stat($xcwd) or die "stat($xcwd): $!";
                        "@st_pwd[1,0]" eq "@st_cwd[1,0]" or
-                               $self->{env}->{PWD} = $pwd = $cwd;
+                               $self->{env}->{PWD} = $pwd = undef;
                } else { # PWD was invalid
-                       delete $self->{env}->{PWD};
-                       undef $pwd;
+                       $self->{env}->{PWD} = $pwd = undef;
                }
        }
-       $pwd //= $self->{env}->{PWD} = getcwd() // die "getcwd(PWD=$pwd): $!";
+       $pwd //= $self->{env}->{PWD} = $cwd // getcwd() // die "getcwd: $!";
        File::Spec->rel2abs($p, $pwd);
 }