Subject: CVS commit: src/usr.bin/mail
To: None <source-changes@NetBSD.org>
From: Christos Zoulas <christos@netbsd.org>
List: source-changes
Date: 09/18/2006 19:46:21
Module Name:	src
Committed By:	christos
Date:		Mon Sep 18 19:46:21 UTC 2006

Modified Files:
	src/usr.bin/mail: Makefile cmd1.c cmd3.c cmdtab.c collect.c def.h
	    extern.h glob.h lex.c mail.1 main.c names.c send.c tty.c
	src/usr.bin/mail/misc: mail.help mail.tildehelp

Log Message:
Jumbo mail patch from our anonymous user:

1) Use editline [optional]:
   Most of this code was borrowed from src/usr.bin/ftp.  It does the
   appropriate editing, history, and completion for all mail commands
   (from cmdtab[]) and also does editing on header strings ('~h' inside
   the mail editor).

2) '-B' flag:
   This will suppress the "To:" line passed to sendmail.  In most
   configurations it will lead to sendmail adding "To: undisclosed
   recipients;".  Currently, AFAIK mail requires at least one exposed
   recipient address.

3) Comments in rcfile:
   Currently, comments in .mailrc are only supported if the first
   (non-white) character on a line is '#' followed by white space,
   i.e., '#' is a 'nop' command.  This (trivial) patch allows the more
   normal/expected use of '#' as a comment character.  It does not
   respect quoting, so that might be an objection which I should fix.

4) Sendmail option editing:
   This adds the sendmail option string to the strings editable by the
   '~h' command within the mail editor.  Currently, you can only set
   this string from the command-line, which is particularly annoying
   when replying to mail.

5) Reply from:
   When replying to a message, grab the "To:" address from the message
   and, if there is only one such address and it does not match a list of
   allowed addresses (set in the "ReplyFrom" variable), pass it to
   sendmail as the "From:" address for the reply (with the '-f' option).
   I often make aliases for myself so that my primary address is not
   given out; if the alias gets out, I know who to blame.  Unfortunately,
   a reply to such a message would normally use the primary address
   without this patch.  A warning is displayed when this is going to
   happen so that it can be modified with '~h'.

6) CC and BCC lists:
   Allow '-c' and '-b' to accept white-space or ',' delimited lists.
   Currently, a white-space delimited list of addresses work, but a
   list of aliases will not get expanded.  For example, currently:

	mail -c "foo bar" christos

   will fail to send mail to 'foo' and 'bar' if these are mail aliases
   (in ~/.mailrc); sendmail aliases (in /etc/aliases) do work.

7) pipe command:
   This pipes the current message into a shell command.  I use this for
   quick decoding of uuencoded mail, but I can imagine it might be
   useful for decrypting encrypted mail, too.

8) show command:
   This command takes a list of variables and shows their values.  It
   is probably stupid as the 'set' command without any argument
   displays all variable values.  Of course, if there are a lot of
   variables you have to sift through the list for the one(s) you want.


To generate a diff of this commit:
cvs rdiff -r1.22 -r1.23 src/usr.bin/mail/Makefile
cvs rdiff -r1.23 -r1.24 src/usr.bin/mail/cmd1.c src/usr.bin/mail/extern.h
cvs rdiff -r1.28 -r1.29 src/usr.bin/mail/cmd3.c
cvs rdiff -r1.11 -r1.12 src/usr.bin/mail/cmdtab.c
cvs rdiff -r1.32 -r1.33 src/usr.bin/mail/collect.c
cvs rdiff -r1.18 -r1.19 src/usr.bin/mail/def.h
cvs rdiff -r1.6 -r1.7 src/usr.bin/mail/glob.h
cvs rdiff -r1.25 -r1.26 src/usr.bin/mail/lex.c
cvs rdiff -r1.29 -r1.30 src/usr.bin/mail/mail.1
cvs rdiff -r1.21 -r1.22 src/usr.bin/mail/main.c
cvs rdiff -r1.20 -r1.21 src/usr.bin/mail/names.c src/usr.bin/mail/tty.c
cvs rdiff -r1.24 -r1.25 src/usr.bin/mail/send.c
cvs rdiff -r1.2 -r1.3 src/usr.bin/mail/misc/mail.help \
    src/usr.bin/mail/misc/mail.tildehelp

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.