diff options
author | Eric Wong <e@80x24.org> | 2021-05-28 09:45:20 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-05-28 18:28:05 +0000 |
commit | 74b5dc0569db5adb4cc931ce3c3b1b50507eb31d (patch) | |
tree | 517e3e6e920e73dcdd942e3df34bf958bc104d83 /lib/PublicInbox/LeiQuery.pm | |
parent | 6778614fc11224b6b472a3830543c0f6635193f8 (diff) | |
download | public-inbox-74b5dc0569db5adb4cc931ce3c3b1b50507eb31d.tar.gz |
Every tick of the event loop can change the working directory, so we need to restore it for every client if they operate in different directories. This would be easier if we had openat(2) and friends in Perl; but Inline::C is practically required for lei, now.
Diffstat (limited to 'lib/PublicInbox/LeiQuery.pm')
-rw-r--r-- | lib/PublicInbox/LeiQuery.pm | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/lib/PublicInbox/LeiQuery.pm b/lib/PublicInbox/LeiQuery.pm index 1999a534..0435a516 100644 --- a/lib/PublicInbox/LeiQuery.pm +++ b/lib/PublicInbox/LeiQuery.pm @@ -51,9 +51,7 @@ sub qstr_add { # PublicInbox::InputPipe::consume callback for --stdin my ($self) = @_; # $_[1] = $rbuf if (defined($_[1])) { $_[1] eq '' and return eval { - if (my $dfd = $self->{3}) { - chdir($dfd) or return $self->fail("fchdir: $!"); - } + $self->fchdir or return; $self->{mset_opt}->{q_raw} = $self->{mset_opt}->{qstr}; $self->{lse}->query_approxidate($self->{lse}->git, $self->{mset_opt}->{qstr}); |