]> diplodocus.org Git - minc/commitdiff
Pull in COLUMNS environment variable and default it to 80.
authorepg <>
Fri, 2 Sep 2005 22:36:10 +0000 (22:36 +0000)
committerepg <>
Fri, 2 Sep 2005 22:36:10 +0000 (22:36 +0000)
(filter_mail): Instead of printing which folders have been added to,
print one line per saved non-spam message: its folder, message number,
and from and subject headers.  Use COLUMNS and hard-coded proportions
to determine how much of the line to allocate to each field printed.

minc

diff --git a/minc b/minc
index c98c633..58277bd 100755 (executable)
--- a/minc
+++ b/minc
@@ -116,7 +116,9 @@ Where mail is delivered.
 
 =cut
 
 
 =cut
 
-use Env qw(HOME MAILDIR);
+use Env qw(COLUMNS HOME MAILDIR);
+
+$COLUMNS ||= 80;
 
 if (not $HOME) {
     die("HOME environment variable must be set.\n");
 
 if (not $HOME) {
     die("HOME environment variable must be set.\n");
@@ -537,6 +539,12 @@ sub filter_mail {
     my $msgnum;
     my %FOLDERS = ('SPAM'=>1);
 
     my $msgnum;
     my %FOLDERS = ('SPAM'=>1);
 
+    # XXX lame names and hard-coded proportions.
+    my $nf = $COLUMNS * 0.1;
+    my $nm = $COLUMNS * 0.0625;
+    my $nF = $COLUMNS * 0.175;
+    my $ns = $COLUMNS - $nf - $nm - $nF - 3;
+
     if (-f "$HOME/.minc") {
         require "$HOME/.minc";
     }
     if (-f "$HOME/.minc") {
         require "$HOME/.minc";
     }
@@ -568,25 +576,24 @@ sub filter_mail {
 
         defined($mhfolder) or ($mhfolder = find_mh_folder($msg, %headers));
 
 
         defined($mhfolder) or ($mhfolder = find_mh_folder($msg, %headers));
 
+        $msgnum = store_message($msg, $mhfolder);
+
         if ($mhfolder eq 'SPAM') {
             $spam++;
         } else {
             $saved++;
         if ($mhfolder eq 'SPAM') {
             $spam++;
         } else {
             $saved++;
+            print("\r");
+            print(' ' x $COLUMNS);
+            printf("\r\%-${nf}s \%${nm}d \%-${nF}s \%s\n",
+                   substr($mhfolder, 0, $nf), substr($msgnum, 0, $nm),
+                   substr(pop(@{$headers{'from'}}), 0, $nF),
+                   substr(pop(@{$headers{'subject'}}), 0, $ns))
         }
 
         }
 
-        $msgnum = store_message($msg, $mhfolder);
-
         for my $hook (@post_store_hooks) {
             $hook->(\%batons, \%headers, $mhfolder, $msgnum);
         }
 
         for my $hook (@post_store_hooks) {
             $hook->(\%batons, \%headers, $mhfolder, $msgnum);
         }
 
-        print("\r");
-        if (not $FOLDERS{$mhfolder}) {
-            print(' ' x $len);
-            print("                                 \r$mhfolder\n");
-            $FOLDERS{$mhfolder} = 1;
-        }
-
         printf(" \%${len}d SPAM \%${len}d saved \%${len}d/%1d",
                $spam, $saved, $spam + $saved, $msgcount);
 
         printf(" \%${len}d SPAM \%${len}d saved \%${len}d/%1d",
                $spam, $saved, $spam + $saved, $msgcount);