From: epg <> Date: Fri, 30 Aug 2002 00:27:37 +0000 (+0000) Subject: (getfiles): New function, returns a list of all entries in a X-Git-Url: https://diplodocus.org/git/minc/commitdiff_plain/677920b043a10799e59ad7d93a23a97c226daec1?hp=21079a62716567f61e54630b3e3e74d661a4f394 (getfiles): New function, returns a list of all entries in a directory. (MAIN): Call getfiles instead of using glob. --- diff --git a/minc b/minc index d1fe222..da96908 100755 --- a/minc +++ b/minc @@ -349,6 +349,34 @@ sub get_headers { return %headers; } +sub getfiles { + my $dir = shift; + my @result; + + if (not opendir(DIR, $dir)) { + err(&EX_TEMPFAIL, "Failed opendir($dir)"); + } + + # Initialize $! to 0 (success) because stupid stupid Perl provides + # no way to distinguish an error from an empty directory; that + # means setting $! to 0 and testing it afterwards is the only way + # to detect an error. Real Programmers don't handle errors, + # right? >sigh< + $! = 0; + @result = grep { + ($_ ne '.' and $_ ne '..') + and $_ = "$MAILDIR/new/$_" + } readdir(DIR); + + if ($! != 0) { + err(&EX_TEMPFAIL, "Failed readdir($dir)"); + } + + closedir(DIR); + + return @result; +} + ############################################################################### # Spam handling @@ -492,7 +520,7 @@ MAIN: { exit(&EX_OK); } - @msglist = kill_spam(glob("$MAILDIR/new/*")); + @msglist = kill_spam(getfiles("$MAILDIR/new")); if (not $spamonly) { filter_mail(@msglist);