Commit Graph

196 Commits

Author SHA1 Message Date
christos 3bf60b1367 From Anon Ymous:
The problem is that mime_decode_close() closes all files registered
after mip->mi_pipe_end and this is getting set in mime_sendmessage()
after a fflush().

When you print a large number of messages fflush() blocks and prevents
mip->mi_pipe_end from getting set before the SIGPIPE comes in and
jumps to the close block that calls mime_decode_close().  As a result,
mime_decode_close() was closing all the registered files including
obuf (mi_pipe_end was NULL).
2006-11-01 16:42:27 +00:00
christos eb238f14b4 new file from Anon Ymous 2006-10-31 22:37:19 +00:00
christos f1830357a3 new files from Anon Ymous. 2006-10-31 22:36:37 +00:00
wiz c00bfebf76 Various fixes. Bump date for previous. 2006-10-31 22:10:41 +00:00
christos 798fbc606d More fixes from Anon Ymous:
1) Removed the -B flag (it was stupid on my part) and added a short
   description indicating how to accomplish the same thing under the
   "Sending Mail" section of man mail(1).

2) Added a -H flag to dump the headers and exit.  It takes optional
   flags to restrict to old, new, read, unread, and deleted messages
   (the later being kind of useless - it shares code with something
   that already had it).

3) Restored the 'Save' command which somehow got mistakenly removed in
   the last commit and add documentation for it!  (My apologies to
   its author.)

4) Added a 'mkread' command to mark messages as read (the inverse of
   'unread').  Should we also have a 'mknew' command?

5) Added a 'smopts' command to keep a database of addresses and
   sendmail options to be used when sending messages to those
   addresses.  See man mail(1) for a fuller description.

6) Added 'indentpreamble' and 'indentpostscript' variables whose
   values are inserted before and after a quoted message (~m or ~M
   escapes).
=20
7) Added string formatting abilities for the 'prompt', 'insertpreamble',
   'insertpostscript', and header display strings.  These strings
   support all the strftime() format parameters as well as many more
   specific to mail (see man mail(1)).

8) Fix the -a flag so that it only takes a single filename, unless
   "mime-attach-list" is defined.  This is more conventional and avoids
   unexpected whitespace issues.
2006-10-31 20:07:32 +00:00
wiz 7b2e399484 Some cleanups from the person without a name. 2006-10-26 15:26:37 +00:00
wiz 04f37109b9 New sentence, new line.
Use .Pp instead of .sp. Whitespace cleanup. Bump date for previous.
2006-10-26 11:05:29 +00:00
christos 933195ac45 more meaningful variable name. 2006-10-24 19:57:05 +00:00
christos f1aa39b33c deal with machines where char is unsigned and with chars > 127 2006-10-23 18:22:00 +00:00
mrg 478347642c avoid assigning a void * to an int just to see if it is non-zero or not.
use %zu to print a size_t.
2006-10-22 08:29:36 +00:00
mrg 1aa136c1a1 mail/head.c: make the previous delta only apply if FMT_PROG is not defined
fmt/Makefile: define FMT_PROG.
2006-10-22 08:22:34 +00:00
christos 1df0b9ba30 add ~@ 2006-10-22 00:35:29 +00:00
christos 5221554c1a Fix yes/no handling. 2006-10-21 21:51:47 +00:00
christos 8207b28a5c From our anonymous user:
- mime and character set handling
- command line editor and completion
- many code improvements
2006-10-21 21:37:20 +00:00
christos 5c86a088e8 Completion on a line like "." at the command prompt gives you a rather
rude response! (from our anonymous user)
2006-10-02 16:43:31 +00:00
christos f0f6b1cde9 Using (void)&foo; shuts up gcc-4 but does not stop the compiler from clobbering
the variables in the setjmp/longjmp cases. Use volatile instead as we are
supposed to (from our anonymous user).
2006-09-29 14:59:31 +00:00
christos 8d396aad54 Coverity CID 4194: Wow, isn't char *foo = bar() ? : "0"; a syntax error?!?! 2006-09-27 15:23:34 +00:00
christos 364b94acf5 Coverity CID 4195: Off by one buffer overflow. 2006-09-27 15:21:26 +00:00
christos 1a5929d3f3 Coverity CID 4196: Off by one buffer overflow. 2006-09-27 15:20:06 +00:00
christos 10c7dc6280 Avoid longjmp clobberring (from our anonymous user) 2006-09-27 12:58:33 +00:00
christos b10771897b handle signals for the second editline struct. (from our anonymous user) 2006-09-26 23:33:56 +00:00
christos 0dea4d56e9 add a continue message. 2006-09-26 23:33:23 +00:00
christos fbdddce8c7 1) Disable completion and history when grabbing header strings (e.g.,
with '~h' in the mail editor).
2) Eliminate a core dump when hitting '^D' with a zero length line.
From our anonymous user
2006-09-24 14:01:48 +00:00
wiz 1fe50328b8 Drop trailing whitespace. New sentence, new line.
Use .Dq.
2006-09-23 11:16:21 +00:00
he c364d22b20 The recently added -ledit needs -ltermcap added as well. 2006-09-20 09:29:42 +00:00
christos fccf00319f document the new options; from out anonymous user. 2006-09-20 01:25:16 +00:00
christos e7d816a1da s/ReplyFrom/ReplyAsRecipient/ from our anonymous user. 2006-09-19 20:31:49 +00:00
christos 630fdba88e add an el_ prefix to the libedit variables. From our anonymous user. 2006-09-19 18:52:04 +00:00
wiz 4357668fad Sort options. Remove duplicate word. Use more markup macros. 2006-09-19 18:52:02 +00:00
christos 3cd99db90e restore "sh" to mean "shell" not "show". From our anonymous user. 2006-09-19 18:01:00 +00:00
christos 43c9741202 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).
2006-09-18 19:48:44 +00:00
christos 85c81c58a5 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.
2006-09-18 19:46:21 +00:00
wiz 3c488ef896 It is sendmail(1), not sendmail(8). Prepare for HTML output.
Remove trailing space.
2006-08-23 21:02:29 +00:00
christos 0bdbda4753 mention that following the recipient(s) one can supply sendmail flags.
from our anonymous admirer.
2006-08-22 17:13:12 +00:00
ghen 3da129c2c7 Make mail(1) invoke "sendmail" instead of "send-mail", this is more standard.
Ok with christos.
2006-06-15 13:03:29 +00:00
christos 4871d79cb7 Coverity CID 3318: Remove stray semicolon that caused close to be called
unintentionally.
2006-05-24 15:53:21 +00:00
mrg c92f14aaa2 include "rcv.h" so that extern array types are well-known. 2006-05-11 10:45:48 +00:00
mrg 084c052803 quell GCC 4.1 uninitialised variable warnings.
XXX: we should audit the tree for which old ones are no longer needed
after getting the older compilers out of the tree..
2006-05-10 21:53:14 +00:00
christos ed5c178a35 Use errx instead of fprintf/fputs. 2006-05-01 23:12:24 +00:00
christos 9136a179f7 Coverity CID 1198: Avoid closing a negative fd. 2006-05-01 23:06:55 +00:00
christos 85576ae019 Coverity CID 1224: Avoid closing a negative fd. 2006-05-01 23:05:24 +00:00
christos 57e9a1d730 PR/32978: Johan Veenhuizen: mail(1) creates record file with insecure umask 2006-03-03 15:07:00 +00:00
christos 463f84da0a PR/32964: Johan Veenhuizen: implement the unalias command 2006-03-03 13:36:27 +00:00
christos ed70dac6b1 add more const 2006-01-05 02:13:41 +00:00
christos ca28631014 Pass lint completely. 2005-07-19 23:07:10 +00:00
christos ece0fd5c87 WARNS=3 2005-07-19 01:38:38 +00:00
wiz 077ec48387 Fix temp file paths. From Jeff Ito in PR 30316. 2005-05-24 11:21:40 +00:00
dsl 108eb2ab42 Add (unsigned char) cast to ctype functions 2004-10-30 20:39:35 +00:00
lukem ee04d88971 Consistently use CONFIGFILES & CONFIGLINKS (which enable the 'configinstall'
target) instead of using home-grown 'distribution' targets or using
FILES with the 'install' target.
Add some etc/ subdir Makefiles where appropriate.

XXX: some of etc/Makefile install-etc-files could be converted to CONFIGFILES.
2004-05-16 09:53:09 +00:00
ross 3d7196f4d4 Simplify set(). No functional change. 2003-11-10 21:40:22 +00:00