[comp.mail.misc] UCB Mail with reply include

xev@hstbme.mit.edu (Xev Gittler) (09/04/87)

Does anybody have, or know of, a version of variant of Berkeley Mail that 
allows inclusion of letters into replies, complete with those cute 
little '>' or whatever?

				Xev Gittler
	DON'T JUST REPLY!
	Reply to:		xev@hstbme.mit.edu or
				xev@athena.mit.edu

kathy@bakerst.UUCP (Kathy Vincent) (09/05/87)

In article <1392@bloom-beacon.MIT.EDU> xev@hstbme.mit.edu.UUCP (Xev Gittler) writes:
>Does anybody have, or know of, a version of variant of Berkeley Mail that 
>allows inclusion of letters into replies, complete with those cute 
>little '>' or whatever?
>


You don't say what kind of machine are you on.  Do you have mailx?
If so, it's very easy to include "those cute little '>' or whatever."

With mailx, you ask to reply to mail with the

	R

Then you ask to include the mail with a

	~f

which should return a message like "interpolating" and the number
and byte count of the message you're replying to, that's just been
put into your mail reply buffer.

Then you edit the mail reply buffer with your preferred editor,
set up in your .mailrc file.  I use vi  (VISUAL=vi), so I enter

	~v

Once in the editor, I enter the following command:

	:v/^$/s/^/ > /

That is, look for every nonblank line, and, at the beginning of
those lines, put " > ".



Kathy Vincent ------> Home: {ihnp4|mtune|codas|ptsfa}!bakerst!kathy
              ------> AT&T: {ihnp4|mtune|burl}!wrcola!kathy

wjc@ho5cad.ATT.COM (09/07/87)

Posting-Front-End: GNU Emacs 18.47.1 of Fri Jun 26 1987 on ho5cad (usg-unix-v)


In article <890@bakerst.UUCP> kathy@bakerst.UUCP (Kathy Vincent) writes:
>In article <1392@bloom-beacon.MIT.EDU> xev@hstbme.mit.edu.UUCP (Xev Gittler) writes:
>>Does anybody have, or know of, a version of variant of Berkeley Mail that 
>>allows inclusion of letters into replies, complete with those cute 
>>little '>' or whatever?
>>
>You don't say what kind of machine are you on.  Do you have mailx?
>If so, it's very easy to include "those cute little '>' or whatever."
>...
>Once in the editor, I enter the following command:
>  :v/^$/s/^/ > /

Well, yes, but doesn't  it make you kind  of wish that they'd be stuck
in there automatically?  I know I always wished that and never found a
way  with  "Mail"  or  "mailx"  except by  the  method  you suggested.
Shortcomings like that are (minor) reasons I don't use them anymore.

Unless you're absolutely stuck on the  Berkeley Mail user interface, I
suggest looking  into "elm".  It  lets you specify the  prefix string.
It also has a snazzier user interface and  is a superset of the things
available in "Mail"/"mailx".   (Well, more  accurately, I never  found
anything missing, so it was a superset  at least for  the things I was
interested in doing.)  Version 1.7 of "elm"  is soon to appear in some
usenet group.  Watch "comp.mail.elm" to find out for sure which one.

Another possibility, if you happen to be an emacs user (or are willing
to convert) is to use the built-in mail and news handlers that most of
them have.  The major advantages of this are:  (1) fairly easy to make
minor  changes in details  you don't like,  and (2) you  never have to
escape to the editor, since you're already in it  [no startup time, no
"oops, one more change...get back in there"].

Like    I said, neither of  these   duplicates  the Berkeley Mail user
interface,  but  I  imagine   most  people  are  more   interested  in
functionality anyhow.

	Bill Carpenter
	(AT&T gateways)!ho5cad!wjc
	HO 1L-410, (201)949-8392

paul@umix.cc.umich.edu ('da Kingfish) (09/07/87)

In article <212@ho7cad.ATT.COM> wjc@ho5cad.ATT.COM writes:
>
>Well, yes, but doesn't  it make you kind  of wish that they'd be stuck
>in there automatically?

In a word, no.  Unless of course the is yao (yet another option) that
strips out said lines automatically when I read the message.  There
should be a better way of providing what is essentially a history of a
given mail exchange without doing that (including previous messages in
a current one).  If a message writer wants to archive outgoing
messages, I believe they can.  Of course, if there is an additional
line prepended to the included message ("here, peabrain, I know you
won't remember what you typed a couple days ago, so I'll include it
here.")  then it might be OK.

--paul
-- 
Trying everything that whiskey cures in Ann Arbor, Michigan.

allbery@ncoast.UUCP (Brandon Allbery) (09/09/87)

As quoted from <212@ho7cad.ATT.COM> by wjc@ho5cad.ATT.COM:
+---------------
| Unless you're absolutely stuck on the  Berkeley Mail user interface, I
| suggest looking  into "elm".  It  lets you specify the  prefix string.
| 
| Another possibility, if you happen to be an emacs user (or are willing
| to convert) is to use the built-in mail and news handlers that most of
| them have.  The major advantages of this are:  (1) fairly easy to make
+---------------

And then there's MH and a whole slew of others (and at least one more in
development...).  Look around, the world's _full_ of replacement mailers.
-- 
	    Brandon S. Allbery, moderator of comp.sources.misc
  {{harvard,mit-eddie}!necntc,well!hoptoad,sun!mandrill!hal}!ncoast!allbery
ARPA: necntc!ncoast!allbery@harvard.harvard.edu  Fido: 157/502  MCI: BALLBERY
   <<ncoast Public Access UNIX: +1 216 781 6201 24hrs. 300/1200/2400 baud>>
All opinions in this message are random characters produced when my cat jumped
(-:		      up onto the keyboard of my PC.			   :-)

jgp@moscom.UUCP (Jim Prescott) (09/11/87)

In article <890@bakerst.UUCP> kathy@bakerst.UUCP (Kathy Vincent) writes:
>In article <1392@bloom-beacon.MIT.EDU> xev@hstbme.mit.edu.UUCP (Xev Gittler) writes:
>>Does anybody have, or know of, a version of variant of Berkeley Mail that 
>>allows inclusion of letters into replies, complete with those cute 
>>little '>' or whatever?

Use the reply or mail commands to start a message and enter ~f to read in
the current message or ~f# to read in message number #.  Then using ~v will
allow you to edit the message in your visual editor (environment variable
$VISUAL, probably vi or an emacs).  ~? will list all the ~ commands.  The
above work for both Berkeley Mail and SysV mailx.

>Once in [vi], I enter the following command:
>	:v/^$/s/^/ > /
>That is, look for every nonblank line, and, at the beginning of
>those lines, put " > ".

How about using:
	:%s/^/>/
instead.  Insert a ">" at the beginning of every line.  If you leave blank
lines alone then there is no easy way to tell where the included text ends.
If every included line starts with the same character it is simple to skip
it if you wish.  If your mailer uses more or pg to paginate the command is:
	/^[^>]
which searches for a line that starts with something other than a '>'.  The
tab command in rn does the same thing.
-- 
Jim Prescott	moscom!jgp@cs.rochester.edu
		{rutgers,ames,cmcl2}!rochester!moscom!jgp

taylor@hplabsz.HPL.HP.COM (Dave Taylor) (09/12/87)

To join the clamour that Jim Prescott, Kathy Vincent, and Xev Gittler have
been raising about including messages into replies:

There are a number of ways to do this in a number of different mailers:

In /bin/mail, the ugly old puppy from AT&T, you can't really do much of
anything, 'cause the original version doesn't have ANY '~' escape chars.
You would have to save the message you're replying to in a file, compose 
the message within an editor started up explicitly, then mail it off
with an invocation like "/bin/mail user@host < FILENAME".  Blech.

In Berkeley Mail there are two different ways to include the text of a
message while composing another.  You can use either ~f to include either
a single message or set of messages *untouched*, or you can use ~m (but
only if you're sending mail as part of being in the mailer already) which
will do the same thing, but prepend each line with a TAB.  From that point,
as has been pointed out, you can simply ~v or ~o EDITOR to invoke your
favorite editor to continue...

In MH you can diddle with the options to "repl" and get the functionality 
you want - I don't know the internals that well, I'm afraid, and the man 
pages have crumbled and faded due to lack of use.

In Elm (you knew this was coming, right?) there are actually lots of
choices - if you're in the builtin editor it'll emulate the behaviour
of the Berkeley Mailer, so ~f and ~r will work, the enhancements being
that 1. It actually calls a program called "readmsg", so you could,
for example, include a message except for the headers with "~r -n 4"
2. It uses a variable in your ".elmrc" called "prefix" which can be
set to any arbitrary string.  The default is "> ".  If you're in any
other editor, you can always invoke "readmsg" to read in the message
(and without an argument it'll default to the message you're currently
answering, if any).  So, for example, if you're in vi, you could read
in the message containing the string "this is a test" by issuing:

!!readmsg this is a test

And then adding the prefix on the fly with:

	:g/^/s//> /

(each line will be prefixed by "> " this way).  You could also have
the message prefixed as it is read in by:

!!readmsg this is a test | sed 's/^/> /'

Other mailers...uhhh...I guess those are the major ones there.  I'd
be suprised if you couldn't do this sort of thing in rmail, the mailer
that lives in Emacs.  The AT&T Mail program (PMX/Term) probably does
NOT have this functionality.  MUSH (the Mail Users SHell from Dan
Heller of Island Graphics) certainly has this functionality, doesn't 
it, Dan???  *grin*

				'nuf about this already!!

					-- Dave Taylor

ps: as far as it not needing the information, and having software that
    does matching of messages and replies, we've still got to wait a
    few years for this - at least at the resolution of lines or sentences
    (having the messages themselves is pretty simple, but it doesn't have
    sufficient resolution to be useful).  We can talk about this for
    days, actually...

usenet@mit-amt.UUCP (09/13/87)

taylor@hplabsz.UUCP (Dave Taylor) wrote: 
->Other mailers...uhhh...I guess those are the major ones there.  .  .
->  .  .  .  .  .  .  .  .  .  .  MUSH (the Mail Users SHell from Dan
->Heller of Island Graphics) certainly has this functionality, doesn't 
->it, Dan???  *grin*

Yes, mush *does* have this capability.    You can bother Dan directly
with questions about mush by sending mail to him at sun!island!argv,
or island!argv@sun.com.  (island graphics doesn't get netnews, so he
probably won't see Dave Taylor's, um, question above.)

# Henry Mensch / <henry@garp.mit.edu> / E40-379 MIT, Cambridge, MA
#      {ames,cca,rochester,harvard,mit-eddie}!garp!henry

ken@rochester.UUCP (09/13/87)

Here are a couple of short shell scripts for MH. The first I call
"current".  Inside the editor, vi for me, I say :r !current and the
body of the message is read in with >'s prefixing each line. I forget
who wrote this and posted to the MH users group.

I wrote the second one. I call it appvi and appex (links to same
file).  From whatnow, I can say "e appvi file" or "e appvi !command",
and it reads in the file or the output of command and then drops me
into vi or ex.  Of course, command is often "current".

	Have fun, Ken

#!/bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #!/bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#	current
#	appvi
# This archive created: Sat Sep 12 21:10:27 1987
# By:	Ken Yap ()
export PATH; PATH=/bin:$PATH
echo shar: extracting "'current'" '(214 characters)'
if test -f 'current'
then
	echo shar: over-writing existing file "'current'"
fi
cat << \SHAR_EOF > 'current'
#! /bin/sh
: read in the current message, rn-style
LINK="@"

# Skip headers, then print out the body lines prepended with "> "
sed -n '
:header
/^$/b eohdr
n
b header
:eohdr
n
b body
:body
s/^/> /p
n
b body' $LINK
SHAR_EOF
if test 214 -ne "`wc -c 'current'`"
then
	echo shar: error transmitting "'current'" '(should have been 214 characters)'
fi
chmod +x 'current'
echo shar: extracting "'appvi'" '(436 characters)'
if test -f 'appvi'
then
	echo shar: over-writing existing file "'appvi'"
fi
cat << \SHAR_EOF > 'appvi'
#! /bin/sh
case $0 in
*vi)
	editor=${VISUAL-/usr/ucb/vi}
	;;
*ed)
	editor=${EDITOR-/usr/ucb/ex}
	;;
esac
case $# in
1)
	break
	;;
*)
	i=1
	for arg
	do
		case $i in
		$#)	;;
		*)	arguments="$arguments $arg" ;;
		esac
		i=`expr $i + 1`
	done
	case $arguments in
	" !"*)
		arguments=`expr "$arguments" : ' !\(.*\)'`
		${SHELL-/bin/sh} -c "$arguments" >> $mhdraft
		;;
	*)
		cat $arguments >> $mhdraft
		;;
	esac
esac
exec $editor $mhdraft
SHAR_EOF
if test 436 -ne "`wc -c 'appvi'`"
then
	echo shar: error transmitting "'appvi'" '(should have been 436 characters)'
fi
chmod +x 'appvi'
#	End of shell archive
exit 0

mlandau@diamond.bbn.com.UUCP (09/15/87)

Well, after watching this discussion go round and round for a couple of weeks, 
I finally sez to myself, I sez, "Well, how tough can it be?"  The answer is 
not very.  

Herewith, the diffs to the version of mailx supplied with SunOS 3.2 -- your 
line numbers may vary.  These trivial changes add a string variable called
indent_str (name chosen for compatibility with the recently-posted mush
program) -- if set, it will be prepended to every line inserted with the ~f
command.

The source for mail is a little different for the vanilla UCB mail in the 
BSD release, but the modifications ahould be equally straightforward.

-- PATCH TO src/ucb/Mail/collect.c BEGINS HERE --

*** collect.c+	Mon Sep 14 23:12:18 1987
--- collect.c	Mon Sep 14 23:10:17 1987
***************
*** 785,790 ****
--- 785,793 ----
  	register int *msgvec, *ip;
  	extern char tempMail[];
  	int tabputs();
+ #ifdef INDENT_STR
+ 	extern int tabputs(), prefixputs();
+ #endif
  
  	msgvec = (int *) salloc((msgCount+1) * sizeof *msgvec);
  	if (msgvec == (int *) NOSTR)
***************
*** 804,810 ****
--- 807,817 ----
  		touch(*ip);
  		printf(" %d", *ip);
  		if (msend(&message[*ip-1], obuf, (int)value("alwaysignore"),
+ #ifdef INDENT_STR
+ 		    f == 'm' ? tabputs : prefixputs) < 0) {
+ #else
  		    f == 'm' ? tabputs : fputs) < 0) {
+ #endif
  			perror(tempMail);
  			return(-1);
  		}
***************
*** 820,825 ****
--- 827,853 ----
  	fputc('\t', obuf);
  	fputs(line, obuf);
  }
+ 
+ #ifdef	INDENT_STR
+ 
+ prefixputs(line, obuf)
+ 	char *line;
+ 	FILE *obuf;
+ {
+ 	static char *prefstr = NULL;
+ 	static int  usepref  = -1;
+ 
+ 	if (usepref < 0)
+ 	{
+ 		prefstr = value("indent_str");
+ 		usepref = prefstr != NOSTR;
+ 	}
+ 	if (prefstr)
+ 		fputs(prefstr, obuf);
+ 	fputs(line, obuf);
+ }
+ 
+ #endif
  
  # ifdef VMUNIX
  /*
-- 
 Matt Landau
 mlandau@bbn.com

 Standards are the industry's way of codifying obsolence.

kathy@wrcola.UUCP (K.M.Vincent) (09/16/87)

In article <773@hplabsz.HPL.HP.COM> taylor@hplabsz.UUCP (Dave Taylor) writes:
>To join the clamour that Jim Prescott, Kathy Vincent, and Xev Gittler have
>been raising about including messages into replies:

Clamour?   "A loud outcry. ...  A vehement expression of discontent or
protest. ... To make insistent demands or complaints. ... To exclaim
insistently and noisily. ... etc."  [ American Heritage Dictionary ]

All I remember doing is politely answering a question about how
to put little ">" marks in front of included text in mail replies.

The sed bit works neatly with mailx, too, by the way, as a friend
of mine pointed out.


Kathy Vincent -----> AT&T: {ihnp4|mtune|burl}!wrcola!kathy
              -----> Home: {ihnp4|mtune|ptsfa|codas}!bakerst!kathy

allbery@ncoast.UUCP (09/18/87)

As quoted from <2178@sol.ARPA> by ken@cs.rochester.edu (Ken Yap):
+---------------
| Here are a couple of short shell scripts for MH. The first I call
| "current".  Inside the editor, vi for me, I say :r !current and the
| body of the message is read in with >'s prefixing each line. I forget
| who wrote this and posted to the MH users group.
| 
| I wrote the second one. I call it appvi and appex (links to same
| file).  From whatnow, I can say "e appvi file" or "e appvi !command",
| and it reads in the file or the output of command and then drops me
| into vi or ex.  Of course, command is often "current".
+---------------

What the heck do you need *these* for?  Ever heard of ~/Mail/replcomps?
I got MH to do 99% of the work of putting my fancy boxes around messages
via my replcomps file (it never did blank lines right, but then I didn't
waste a lot of time trying to figure out how to do it).

Ah well, nothing like reinventing the wheel...
-- 
	    Brandon S. Allbery, moderator of comp.sources.misc
  {{harvard,mit-eddie}!necntc,well!hoptoad,sun!mandrill!hal}!ncoast!allbery
ARPA: necntc!ncoast!allbery@harvard.harvard.edu  Fido: 157/502  MCI: BALLBERY
   <<ncoast Public Access UNIX: +1 216 781 6201 24hrs. 300/1200/2400 baud>>
All opinions in this message are random characters produced when my cat jumped
(-:		      up onto the keyboard of my PC.			   :-)

ken@cs.rochester.edu (Ken Yap) (09/18/87)

|What the heck do you need *these* for?  Ever heard of ~/Mail/replcomps?
|I got MH to do 99% of the work of putting my fancy boxes around messages
|via my replcomps file (it never did blank lines right, but then I didn't
|waste a lot of time trying to figure out how to do it).

That's exactly the point. It was faster to write the shell scripts than
to figure out how to do it right in replcomps. It there is anything I
dislike in MH, it is the arcane formatting declarations. Makes APL look
easy.

Besides you didn't read the whole posting. The second one is a script
to append a file or command output before going into the editor. Show
me how to do that in replcomps.

If you can't find a use for it, just 'j' the article, ok? Enough
bandwidth wastage already.

	Ken

mouse@mcgill-vision.UUCP (09/22/87)

In article <782@umix.cc.umich.edu>, paul@umix.cc.umich.edu ('da Kingfish) writes:
> In article <212@ho7cad.ATT.COM> wjc@ho5cad.ATT.COM writes:
>> Well, yes, but doesn't it make you kind of wish that they [> markers
>> on included text] [woul]d be stuck in there automatically?
> In a word, no.

So far I agree.  We would get the mail equivalent of the postings
USEnet has seen too many of consisting of

	> ENTIRE
	> ORIGINAL
	> ARTICLE

	*** REPLACE THIS LINE WITH YOUR MESSAGE ***

> There should be a better way of providing what is essentially a
> history of a given mail exchange without [including previous messages
> in a current one].

It's known as "editing".

> If a message writer wants to archive outgoing messages, I believe
> they can.  Of course, if there is an additional line prepended to the
> included message ("here, peabrain, I know you won't remember what you
> typed a couple days ago, so I'll include it here.") then it might be
> OK.

I send enough mail that archiving it all would be (a) a huge waste of
disk space, since most of it will never be looked at and (b) useless
because it will take me half an hour to find the antecedent to a reply
I get.  On the other hand, I send enough mail that getting a reply from
someone like

	From: someone@somewhere
	To: me@here

	Sure, go ahead.  Sounds like a good idea.

is hopeless.  I appreciate a reminder.  (But I do not appreciate an
insult ("peabrain") at the same time - and it is likely to be more like
a couple of weeks instead of a couple of days.)

However, to prevent the excessive inclusion syndrome, I think making
the sender do it by hand is a good idea.  I always do, and it isn't
enough work to bug me.

					der Mouse

				(mouse@mcgill-vision.uucp)

allbery@ncoast.UUCP (Brandon Allbery) (10/06/87)

As quoted from <895@mcgill-vision.UUCP> by mouse@mcgill-vision.UUCP (der Mouse):
+---------------
| > There should be a better way of providing what is essentially a
| > history of a given mail exchange without [including previous messages
| > in a current one].
| 
| It's known as "editing".
+---------------

Something tells me we're about to go off at a tangent into the News/Notes
wars...  Seriously, it would be nice if mail had References: lines, and there
were a mail reader that could split the screen and show referenced messages
in another window.  Alas, that would require a consistent method of saving
mail.  (Hmmm... have to work on it after I get my copy of Gnu Emacs.  Gnu+MH
ought be a good starting point.)

Forget "editing" -- you can't even force it.  (See, for example, 2.11 inews.)
People will just keep on including everything and using "mailer hate lines" to
make their articles even bigger & more useless, and then complain that it's
the fault of the mailer.  (...you can lead a netter to knowledge, but you
can't make him think.)

It started out in news.  It has spread to the Fidonet; Elm spread it to the
mailers; and it's out of control.  We need REAL suggestions as to how to stop
it (and cc: FidoNews on it, they're desperate!).
-- 
	    Brandon S. Allbery, moderator of comp.sources.misc
  {{harvard,mit-eddie}!necntc,well!hoptoad,sun!mandrill!hal}!ncoast!allbery
ARPA: necntc!ncoast!allbery@harvard.harvard.edu  Fido: 157/502  MCI: BALLBERY
   <<ncoast Public Access UNIX: +1 216 781 6201 24hrs. 300/1200/2400 baud>>
	 "...he calls _that_ a `little adventure'?!"  - Cmdr. Ryker