From 2d3699d2ce8cbee21485c8b31b1f681d2bb5def5 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 13 Nov 2023 13:15:41 +0000 Subject: treewide: update read_all to avoid eof|close checks read_all can be expanded to support FIFOs/pipes/sockets where read-until-EOF behavior is desired. We can also rely on wantarray to support splitting on EOL markers, but it's hard-coded to support only `$/ eq "\n"' since (AFAIK) it's the only way we use the wantarray form `readline'. --- script/public-inbox-learn | 2 +- script/public-inbox-mda | 2 +- script/public-inbox-purge | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'script') diff --git a/script/public-inbox-learn b/script/public-inbox-learn index 6a1bc890..a955cdf6 100755 --- a/script/public-inbox-learn +++ b/script/public-inbox-learn @@ -42,7 +42,7 @@ local $PublicInbox::Import::DROP_UNIQUE_UNSUB; PublicInbox::Import::load_config($pi_cfg); my $err; my $mime = PublicInbox::Eml->new(do{ - defined(my $data = do { local $/; }) or die "read STDIN: $!\n"; + my $data = PublicInbox::IO::read_all \*STDIN; PublicInbox::Eml::strip_from($data); if ($train ne 'rm') { diff --git a/script/public-inbox-mda b/script/public-inbox-mda index b2e0908d..b463b07b 100755 --- a/script/public-inbox-mda +++ b/script/public-inbox-mda @@ -44,7 +44,7 @@ use PublicInbox::Spamcheck; # in case there's bugs in our code or user error. my $emergency = $ENV{PI_EMERGENCY} || "$ENV{HOME}/.public-inbox/emergency/"; $ems = PublicInbox::Emergency->new($emergency); -my $str = do { local $/; }; +my $str = PublicInbox::IO::read_all \*STDIN; PublicInbox::Eml::strip_from($str); $ems->prepare(\$str); my $eml = PublicInbox::Eml->new(\$str); diff --git a/script/public-inbox-purge b/script/public-inbox-purge index 8f9b0b16..618cfec4 100755 --- a/script/public-inbox-purge +++ b/script/public-inbox-purge @@ -33,7 +33,7 @@ PublicInbox::Admin::do_chdir(delete $opt->{C}); my @ibxs = PublicInbox::Admin::resolve_inboxes(\@ARGV, $opt); PublicInbox::AdminEdit::check_editable(\@ibxs); -defined(my $data = do { local $/; }) or die "read STDIN: $!\n"; +my $data = PublicInbox::IO::read_all \*STDIN; PublicInbox::Eml::strip_from($data); my $n_purged = 0; -- cgit v1.2.3-24-ge0c7