Path: utzoo!attcan!uunet!lll-winken!lll-lcc!ames!pasteur!ucbvax!decwrl!hplabs!hpda!hpcupt1!hpcuhb!hpscdc!schmitz
From: schmitz@hpscdc.HP.COM (John Schmitz)
Newsgroups: comp.mail.mh
Subject: Re: MH drawbacks for computer-unexperienced users
Message-ID: <5740002@hpscdc.HP.COM>
Date: 10 May 88 21:26:50 GMT
References: <336@draken.nada.kth.se>
Organization: HP, Santa Clara, CA
Lines: 21

> The only problem is that it sometimes starts a "component" in a very strange
> place in the middle of a line, usually splitting a word squarely in half.
> I've no idea why it happens.

I have some idea.  I believe that uip/mhlsbr calls sbr/m_getfld when
it is working on the body of the message.  m_getfld does not always
return a buffer that ends on a newline.  Before each call to m_getfld,
mhlsbr puts out the "component" before getting a new buffer from
m_getfld.  That's where the extraneous component comes in.  The
following diff to sbr/mhlsbr.c may fix your problem.  No guarantees,
of course.

204a205
> static int  body_entered;
726a728
>     body_entered = 0;
1102c1104,1106
< 	putstr (c1 -> c_text ? c1 -> c_text : c1 -> c_name);
---
> 	if (flag != BODYCOMP || body_entered == 0)
> 	    putstr (c1 -> c_text ? c1 -> c_text : c1 -> c_name);
> 	if (flag == BODYCOMP) body_entered = 1;