[comp.mail.mh] mhl and repl

jch@batcomputer.tn.cornell.edu (Jeffrey C Honig) (06/08/89)

I would like my mhl.repl to add a line indicating who sent the mail I am
repling to before the included text.  For example:

On "date" Joe User <joe@host.domain> writes:
>  Blah blah blah
>  blah blah blah

Before I go delving into mhl, has someone already done this?


Also, in relation to the included text, mhl frequently sticks "> "
charaters in the middle of lines in addition to at the beginning of the
lines of the included text.  Has anybody seen this and/or fixed it?

I'm running MH 6.6 on a Sun 3 under SunOS 4.0.1.

Thanks.

Jeff

leres@ace.ee.lbl.gov (Craig Leres) (06/09/89)

Jeffrey C Honig writes:
> Also, in relation to the included text, mhl frequently sticks "> "
> charaters in the middle of lines in addition to at the beginning of the
> lines of the included text.  Has anybody seen this and/or fixed it?
> 
> I'm running MH 6.6 on a Sun 3 under SunOS 4.0.1.

Ah yes, I fixed that one last February. The problem was a boundry
condition that occured when a read() split a line in the middle. A
context diff for uip/mhlsbr.c (mh 6.5) is appended.

		Craig
------
RCS file: RCS/mhlsbr.c,v
retrieving revision 1.2
diff -c -r1.2 mhlsbr.c
*** /tmp/,RCSt1a03292	Thu Jun  8 12:53:35 1989
--- mhlsbr.c	Thu Feb  2 20:57:25 1989
***************
*** 1074,1079 ****
--- 1074,1080 ----
      int     count,
              cchdr;
      register char   *cp;
+     static int lastterm = '\n';		/* initial state */
  
      cchdr = 0;
      lm = 0;
***************
*** 1113,1119 ****
  	    for (cp = (c1 -> c_text ? c1 -> c_text : c1 -> c_name); *cp; cp++)
  	        if (islower (*cp))
  		    *cp = toupper (*cp);
! 	putstr (c1 -> c_text ? c1 -> c_text : c1 -> c_name);
  	if (flag != BODYCOMP) {
  	    putstr (": ");
  	    c1 -> c_flags |= HDROUTPUT;
--- 1114,1121 ----
  	    for (cp = (c1 -> c_text ? c1 -> c_text : c1 -> c_name); *cp; cp++)
  	        if (islower (*cp))
  		    *cp = toupper (*cp);
! 	if (flag != BODYCOMP || lastterm == '\n')
! 	    putstr (c1 -> c_text ? c1 -> c_text : c1 -> c_name);
  	if (flag != BODYCOMP) {
  	    putstr (": ");
  	    c1 -> c_flags |= HDROUTPUT;
***************
*** 1151,1170 ****
      putstr (oneline (c2 -> c_text, c1 -> c_flags));
      if (term == '\n')
  	putstr ("\n");
!     while (cp = oneline (c2 -> c_text, c1 -> c_flags))
  	if (*cp) {
  	    lm = count;
- 	    if (flag == BODYCOMP
- 		    && !(c1 -> c_flags & HDROUTPUT)
- 		    && !(c1 -> c_flags & NOCOMPONENT))
- 		putstr (c1 -> c_text ? c1 -> c_text : c1 -> c_name);
  	    putstr (cp);
- 	    if (term == '\n')
- 		putstr ("\n");
  	}
! 	else
! 	    if (term == '\n')
! 		putstr ("\n");
  }
  
  /*  */
--- 1153,1173 ----
      putstr (oneline (c2 -> c_text, c1 -> c_flags));
      if (term == '\n')
  	putstr ("\n");
!     lastterm = term;
!     while (cp = oneline (c2 -> c_text, c1 -> c_flags)) {
! 	if (flag == BODYCOMP
! 		&& lastterm == '\n'
! 		&& !(c1 -> c_flags & HDROUTPUT)
! 		&& !(c1 -> c_flags & NOCOMPONENT))
! 	    putstr (c1 -> c_text ? c1 -> c_text : c1 -> c_name);
  	if (*cp) {
  	    lm = count;
  	    putstr (cp);
  	}
! 	if (term == '\n')
! 	    putstr ("\n");
! 	lastterm = term;
!     }
  }
  
  /*  */