[comp.sources.bugs] Official patch #3 to mp v1.4, please apply it.

richb@sunaus.UUCP (06/03/88)

Note that when mp v1.4 was distributed in comp.sources.unix a couple
of weeks ago, the first two patches had already been applied. This is
the first official patch since then.

With this patch applied, it is now possible to pretty print complete
mail folders. Simply give mp the mail folder on standard input, and
pipe the result to the PostScript printer.

Use Larry Walls patch program to apply this patch. For those of you
who do not have access to patch (no, I can't send it to you), then
apply these diffs by hand (urrgh!!).

    Rich.

Rich Burridge,           JANET richb%sunaus.oz@uk.ac.ucl.cs
ACSnet  richb@sunaus.oz  UUCP {uunet,mcvax,ukc}!munnari!sunaus.oz!richb
PHONE: +61 2 436 4699    ARPAnet rburridge@Sun.COM
Sun Microsystems, Unit 2, 49-53 Hotham Pde, Artarmon, N.S.W. 2164, AUSTRALIA.

------CUT HERE------patch.3------CUT HERE------

*** original/README	Fri Jun  3 10:36:42 1988
--- README	Fri Jun  3 13:27:55 1988
***************
*** 26,31 ****
--- 26,35 ----
  with a LaserWriter with an A4 paper tray, running Transcript v2.0. Please
  let us know if this requires any modification to run in the US.
  
+ With patch #3, it is now possible to print out complete mail folders.
+ Simply give mp the mail folder on standard input, and pipe the result to
+ the PostScript printer.
+ 
  Any problems, suggestions, bugs or flames to me or Steve please.
  
  Rich Burridge                             Steve Holden
*** original/mp.1	Fri Jun  3 10:36:42 1988
--- mp.1	Fri Jun  3 13:28:47 1988
***************
*** 30,34 ****
  .TP
  .SH "SEE ALSO"
  mail(1)
- .SH BUGS
- Does not process more than one file.
--- 30,32 ----
*** original/mp.c	Fri Jun  3 10:36:42 1988
--- mp.c	Fri Jun  3 13:23:32 1988
***************
*** 13,19 ****
  #include <string.h>
  #include <time.h>
  
! #define  PATCHLEVEL   2
  
  #define  FPRINTF      (void) fprintf    /* To make lint happy. */
  #define  PRINTF       (void) printf
--- 13,19 ----
  #include <string.h>
  #include <time.h>
  
! #define  PATCHLEVEL   3
  
  #define  FPRINTF      (void) fprintf    /* To make lint happy. */
  #define  PRINTF       (void) printf
***************
*** 44,49 ****
--- 44,50 ----
  int non_space ;          /* Indicates if nextline has a non-space char. */
  int pn = 1 ;             /* Page number within message. */
  int removednl ;          /* Set if a newline was removed from this line. */
+ int tpn = 0 ;            /* Total number of pages printed. */
  
  
  /*ARGSUSED*/
***************
*** 116,128 ****
            }
        switch (state)
          {
!           case FROMLINE  : if (EQUAL("From"))
                               {
                                 boldshow(nextline) ;
                                 state = DOHEADER ;
                               }
                             break ;
!           case DOHEADER  : if (EQUAL("From") || EQUAL("Date") || EQUAL("Subject"))
                               {
                                 mixedshow(nextline) ;
                                 maybe_more = 0 ;
--- 117,129 ----
            }
        switch (state)
          {
!           case FROMLINE  : if (EQUAL("From "))
                               {
                                 boldshow(nextline) ;
                                 state = DOHEADER ;
                               }
                             break ;
!           case DOHEADER  : if (EQUAL("From:") || EQUAL("Date") || EQUAL("Subject"))
                               {
                                 mixedshow(nextline) ;
                                 maybe_more = 0 ;
***************
*** 142,153 ****
                               }
                             else maybe_more = 0 ;
                             break ;
!           case DOMESSAGE : textshow(nextline) ;
          }
      }
    endpage() ;
    PRINTF("%%%%Trailer\n") ;
!   PRINTF("%%%%Pages: %1d\n",pn) ;
  }
  
  
--- 143,162 ----
                               }
                             else maybe_more = 0 ;
                             break ;
!           case DOMESSAGE : if (EQUAL("From "))
!                              {
!                                linect = PAGELENGTH ;
!                                useline() ;
!                                pn = 1 ;
!                                boldshow(nextline) ;
!                                state = DOHEADER ;
!                              }
!                            else textshow(nextline) ;
          }
      }
    endpage() ;
    PRINTF("%%%%Trailer\n") ;
!   PRINTF("%%%%Pages: %1d\n",tpn) ;
  }
  
  
***************
*** 257,263 ****
  
  startpage()
  {
!   PRINTF("%%%%Page: ? %1d\n",pn) ;
  }
  
  
--- 266,272 ----
  
  startpage()
  {
!   PRINTF("%%%%Page: ? %1d\n",++tpn) ;
  }