markus schnalke [Tue, 27 Mar 2012 07:46:59 +0000 (09:46 +0200)]
Proper field initialization.
gcc -Wmissing-field-initializers noticed several struct initializations
that didn't explicitly list all fields. They were of no consequence because
they were for static data, so they were initialized properly.
Also, changed the initialization of global.c_ovtxt from "" to NULL because
free_queue () freed it if non-NULL, though I think the "" was always
overwritten.
Pulled in from nmh. Thanks to David Levine.
markus schnalke [Tue, 27 Mar 2012 07:36:56 +0000 (09:36 +0200)]
Documented support of OURDEFS to pass compile flags to configure.
Pulled in from nmh. Thanks to David Levine.
markus schnalke [Tue, 27 Mar 2012 07:31:47 +0000 (09:31 +0200)]
Add some comments to the format compiler and engine.
Pulled in from nmh. Thanks to Ken Hornstein.
markus schnalke [Tue, 27 Mar 2012 07:22:52 +0000 (09:22 +0200)]
Update README.developers with the correct version of autoconf we need.
Pulled in from nmh. Thanks to Ken Hornstein.
markus schnalke [Tue, 27 Mar 2012 07:19:56 +0000 (09:19 +0200)]
Remove some unused macros.
Pulled in from nmh. Thanks to David Levine.
markus schnalke [Tue, 27 Mar 2012 07:10:44 +0000 (09:10 +0200)]
Completely remove the use of TIME_WITH_SYS_TIME.
Removed the autoconf test but never removed the code, and this caused
some problems on systems that needed some prototypes in <time.h>.
Pulled in from nmh. Thanks to Ken Hornstein.
markus schnalke [Tue, 27 Mar 2012 06:58:17 +0000 (08:58 +0200)]
Remove OS-specific defines. Remove GECOS ampersand-magic, along with it.
Pulled in from nmh. Thanks to Ken Hornstein.
markus schnalke [Tue, 27 Mar 2012 06:48:32 +0000 (08:48 +0200)]
Clean up time handling; always assume we have tzset().
Also assume that the right prototype is in time.h (both are valid in POSIX).
Pulled in from nmh. Thanks to Ken Hornstein.
markus schnalke [Tue, 27 Mar 2012 06:23:52 +0000 (08:23 +0200)]
We are making POSIX signal support a requirement.
Remove all support for other signal interfaces.
Pulled in from nmh. Thanks to Ken Hornstein.
markus schnalke [Tue, 27 Mar 2012 05:44:43 +0000 (07:44 +0200)]
Switch from using RETSIGTYPE via autoconf to void.
POSIX says that's the type to use for a signal handler.
Pulled in from nmh. Thanks to Ken Hornstein.
(btw: `to pull in' describes my action better than `to merge'.)
markus schnalke [Mon, 26 Mar 2012 22:22:33 +0000 (00:22 +0200)]
The result from the call to parse_mime() was ignored.
Detected by `gcc -Wempty-body'. It has been that way since the beginning
of history and was probably of no consequence, but fixed anyway.
Merged from nmh. Thanks to David Levine.
markus schnalke [Mon, 26 Mar 2012 22:18:24 +0000 (00:18 +0200)]
Removed hard-coded -I.. and -I../.. from INCLUDES.
It was redundant given -I$(top_srcdir).
Merged from nmh. Thanks to David Levine.
markus schnalke [Mon, 26 Mar 2012 22:13:25 +0000 (00:13 +0200)]
Added Content-Description header with the filename of the attachment.
This seems to be common practice now and gives mhlist something useful
to display.
Merged from nmh. Thanks to David Levine.
markus schnalke [Mon, 26 Mar 2012 22:03:50 +0000 (00:03 +0200)]
Added removal of autom4te.cache directory to mostlyclean-local.
Merged from nmh. Thanks to David Levine.
markus schnalke [Mon, 26 Mar 2012 21:53:15 +0000 (23:53 +0200)]
Remove RPATH code though. Discussions on nmh-workers have convinced me.
[2012-01-05] Lyndon Nerenberg:
> [2012-01-05] Ken Hornstein:
>> RPATHS - Construct Return-Path headers from "From " lines.
>> I say keep it, since it's been around forever (a fair
>> amount of code, actually).
> I'm going to argue for the removal of this code, as well. The
> Return-Path header should be inserted by the delivering MTA, and I
> can't think of any modern MTA that doesn't.
markus schnalke [Mon, 26 Mar 2012 21:29:53 +0000 (23:29 +0200)]
Added datarootdir definitions to silence warnings from configure.
Merged from nmh. Thanks to David Levine.
markus schnalke [Mon, 26 Mar 2012 21:25:16 +0000 (23:25 +0200)]
Removed check for st_blksize; it's required by POSIX.
It's unclear why the it was there at all as the define wasn't even used!
Merged from nmh. Thanks to Ken Hornstein.
markus schnalke [Mon, 26 Mar 2012 21:17:13 +0000 (23:17 +0200)]
Switch to standard autoconf macro for checking d_type field in struct dirent.
Merged from nmh. Thanks to Ken Hornstein.
markus schnalke [Mon, 26 Mar 2012 21:07:24 +0000 (23:07 +0200)]
Remove #ifdef around use of sigsetjmp().
Merged from nmh. Thanks to Lyndon Nerenberg.
markus schnalke [Mon, 26 Mar 2012 21:03:39 +0000 (23:03 +0200)]
Remove overrides for 'broken' stat macros. Remove redundant SEEK_* macro defs.
Merged from nmh. Thanks to Lyndon Nerenberg.
markus schnalke [Mon, 26 Mar 2012 20:59:03 +0000 (22:59 +0200)]
Nuke directory processing conditionals; use dirent.h.
Merged from nmh. Thanks to Lyndon Nerenberg.
markus schnalke [Mon, 26 Mar 2012 20:57:27 +0000 (22:57 +0200)]
Clean up process wait to use POSIX waitpid() interface.
Merged from nmh. Thanks to Lyndon Nerenberg.
markus schnalke [Mon, 26 Mar 2012 20:44:13 +0000 (22:44 +0200)]
Make use of mkstemp() unconditional (vs. mktemp()).
Merged from nmh. Thanks to Lyndon Nerenberg.
markus schnalke [Mon, 26 Mar 2012 20:38:30 +0000 (22:38 +0200)]
No longer check for the mkstemp() function in the mkstemp library.
Merged from nmh. Thanks to Ken Hornstein.
markus schnalke [Mon, 26 Mar 2012 20:34:56 +0000 (22:34 +0200)]
Remove compatibility functions that are always provided by the POSIX host env.
Merged from nmh. Thanks to Lyndon Nerenberg.
Well, if the nmh folks now believe that snprintf() can be expected to be
available on recent hosts, we remove it again. ;-)
markus schnalke [Mon, 26 Mar 2012 20:28:34 +0000 (22:28 +0200)]
Ignore OSPEED/ospeed in termcap. Nothing current should need this.
Remove autoconf ospeed checks.
Merged from nmh. Thanks to Lyndon Nerenberg and Ken Hornstein.
markus schnalke [Mon, 26 Mar 2012 20:23:33 +0000 (22:23 +0200)]
Collapse termio/termios/sgtty terminal interface down to Posix termios.
No longer check for termio.h or termios.h
Merge from nmh. Thanks to Lyndon Nerenberg and Ken Hornstein.
markus schnalke [Mon, 26 Mar 2012 20:12:41 +0000 (22:12 +0200)]
Eliminate '#ifdef HAVE_FOO' for Posix-mandated FOOs.
Update configure file for removal of POSIX-mandated header files.
Merged from nmh. Thanks to Lyndon Nerenberg and Ken Hornstein.
markus schnalke [Mon, 26 Mar 2012 19:37:26 +0000 (21:37 +0200)]
Deprecate uname() in favour of (Posix) gethostname().
Merged from nmh. Thanks to Lyndon Nerenberg and Ken Hornstein.
markus schnalke [Mon, 26 Mar 2012 19:32:32 +0000 (21:32 +0200)]
Moved #endif so that lockit () is only declared with DOT_LOCKING,
to avoid compile warning without it.
Merged from nmh. Thanks to David Levine.
markus schnalke [Mon, 26 Mar 2012 19:29:45 +0000 (21:29 +0200)]
Changed second argument of calls to part_ok() and type_ok() from 0 to 1,
to match what store_multi() in mhstoresbr.c does.
A test case is below. Without this fix, the following command:
mhshow -part 1.1 -form mhl.null
produced no output. mhlist showed a part 1.1:
msg part type/subtype size description
1231 multipart/mixed 276
1 multipart/related 107
1.1 text/plain 29
and "mhstore -part 1.1" properly stored it. With this
fix, mhshow behaves properly and shows the part.
Analogous behavior happened with -type text/plain.
test case:
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="NextPart_001"
Content-class: urn:content-classes:message
Date: Thu, 19 May 2011 00:00:00 -0000
From: sender@example.com
To: recipient@example.com
This is a multi-part message in MIME format.
--NextPart_001
Content-Type: multipart/related;
type="multipart/alternative";
boundary="NextPart_002"
--NextPart_002
Content-Type: text/plain;
charset="utf-8"
This is the text/plain part.
--NextPart_002--
--NextPart_001--
Merged from nmh. Thanks to David Levine.
markus schnalke [Mon, 26 Mar 2012 19:27:37 +0000 (21:27 +0200)]
Replaced cvs with git references.
Merged from nmh. Thanks to David Levine.
markus schnalke [Mon, 26 Mar 2012 19:12:29 +0000 (21:12 +0200)]
Removed unused local variables to eliminate warnings from gcc 4.6.2.
Merged from nmh. Thanks to David Levine.
markus schnalke [Mon, 26 Mar 2012 12:17:06 +0000 (14:17 +0200)]
There's no need for killpg(). We can use kill() instead.
(Also removed a now unused define.)
markus schnalke [Mon, 26 Mar 2012 12:00:09 +0000 (14:00 +0200)]
Removed conflict(8), because checking passwd, /var/mail, etc. is not our job.
Conflict did check for:
- duplicate users
- duplicate groups
- existence of group members
- valid group ids
- orphaned maildrops
... and by the way for valid format of alias files.
The latter task can be covered by ali(1) without address arguments.
All the other tasks have nothing to do with the MUA. Actually, most of
them can be covered with shell one-liners.
markus schnalke [Sat, 24 Mar 2012 17:59:41 +0000 (18:59 +0100)]
Removed the now irrelevant parts of the ``history section'' in m_getfld.c.
markus schnalke [Sat, 24 Mar 2012 17:30:19 +0000 (18:30 +0100)]
CHANGE OF THE DECADE: I finally gave m_unknown() a name: thisisanmbox().
The ``magic invocation'' of this function informs m_getfld() that it is
reading a packed mbox file and not an MH-style (one-file-per-message) file.
m_getfld() needs to care for message delimiters then. The ``magic'' of
m_unknown() had vanished some time ago, already. Back then, it needed to
guess which kind of mailbox format the file is. With dropping the support
for MMDF (^A^A^A^A) maildrops, we converted m_unknown() into a plain dump
function ... and now, it also got a boring name. Well ...
markus schnalke [Sat, 24 Mar 2012 17:13:34 +0000 (18:13 +0100)]
s/unixbuf/fromline/ and minor refactoring.
markus schnalke [Sat, 24 Mar 2012 16:06:15 +0000 (17:06 +0100)]
Replaced msg_style with the boolean ismbox.
We only need to differ between mbox and MH-default (one msg per file).
markus schnalke [Sat, 24 Mar 2012 16:01:37 +0000 (17:01 +0100)]
We don't need m_msgdef.c separately and some minor rework in m_getfld.c.
markus schnalke [Sat, 24 Mar 2012 15:40:16 +0000 (16:40 +0100)]
Removed support to handle ARPAnet (RFC733) addresses containing ` at '.
markus schnalke [Sat, 24 Mar 2012 15:17:30 +0000 (16:17 +0100)]
Removed personal flavor for ISI.
Logically: Don't add myself more than once with `repl -cc me' and the like.
markus schnalke [Sat, 24 Mar 2012 14:58:50 +0000 (15:58 +0100)]
Merged folder_pack.c into folder.c.
markus schnalke [Sat, 24 Mar 2012 14:47:11 +0000 (15:47 +0100)]
Replaced folder_exists() by a call to create_folder().
Changed inc(1) to create non-existing folders with -silent, instead of
silently failing in this case. I consider the new behavior to follow the POLS.
markus schnalke [Sat, 24 Mar 2012 14:41:46 +0000 (15:41 +0100)]
Fixed `inc -silent' by not building a scan line if we don't want to print it.
scan() is still ugly and I'm still not pleased with the scan/inc merge,
but I don't see a better solution yet.
markus schnalke [Sat, 24 Mar 2012 13:02:18 +0000 (14:02 +0100)]
In-sourced copyip() and could make the code simpler.
The function had had a bad name and it's use in mhl.c was complex, anyway.
markus schnalke [Sat, 24 Mar 2012 11:28:35 +0000 (12:28 +0100)]
closefds() doesn't seem relevant or large enough to be a function.
I should beware in-sourcing too much ...
markus schnalke [Sat, 24 Mar 2012 11:14:00 +0000 (12:14 +0100)]
Replaced atooi() with strtoul(..., 8). That's part of C89 and thus okay for us.
markus schnalke [Sat, 24 Mar 2012 10:14:42 +0000 (11:14 +0100)]
whatnow: alist will now always list in long and numbered format.
markus schnalke [Sat, 24 Mar 2012 10:04:47 +0000 (11:04 +0100)]
etcpath(): The unchanged argument is the ultimate fall-back.
markus schnalke [Fri, 23 Mar 2012 15:17:43 +0000 (16:17 +0100)]
Merged annosbr.c into anno.c, as it is no longer used be the other tools.
markus schnalke [Fri, 23 Mar 2012 15:07:02 +0000 (16:07 +0100)]
We need to fix `anno -list -number'. Seems anno needs some more rework.
markus schnalke [Fri, 23 Mar 2012 15:06:23 +0000 (16:06 +0100)]
whatnow: call external anno(1) instead of internal annotate().
markus schnalke [Fri, 23 Mar 2012 14:05:49 +0000 (15:05 +0100)]
whatnow: Some minor refactoring.
markus schnalke [Fri, 23 Mar 2012 14:01:34 +0000 (15:01 +0100)]
forw,repl: Replaced internal annotate() call with invokation of anno(1).
markus schnalke [Fri, 23 Mar 2012 13:39:25 +0000 (14:39 +0100)]
anno: Can annotate files now too. This feature is yet hidden and will change.
markus schnalke [Fri, 23 Mar 2012 11:20:01 +0000 (12:20 +0100)]
Fixed building in a separate build directory.
Like this:
mkdir /tmp/foo
cd /tmp/foo
/path/to/sources/configure -q
make
If you want to know more, search for VPATH.
markus schnalke [Fri, 23 Mar 2012 11:07:44 +0000 (12:07 +0100)]
Make mhn.defaults a static file and removed the scripts that built it.
This concept its likely to change in future anyway.
markus schnalke [Fri, 23 Mar 2012 09:49:52 +0000 (10:49 +0100)]
Removed unused defines.
markus schnalke [Fri, 23 Mar 2012 09:27:18 +0000 (10:27 +0100)]
mhmail: If spost fails, preseverve draft by hand, not with mv(1).
markus schnalke [Fri, 23 Mar 2012 08:43:17 +0000 (09:43 +0100)]
makedir(): Removed the strange RUID!=EUID code and the access(2) call.
Dan couldn't find a reason for the code neither, hence I assume it's save
to simply remove it.
Ummm, why do we want to avoid creating directories
with the effective user ID? None of the nmh tools are
installed such that the effective should be different
from the real, and if some parent process made the two
be different, I don't see why it should be our job to
enforce the real UID. Also, why the heck do we call
the mkdir executable rather than the library function in
this case?? If we do want to call the mkdir executable,
we should at least be giving it -p (and change the single
chmod() call below) so it can successfully create nested
directories like the above code can.
-- Dan Harkless <dan-nmh@dilvish.speed.net>
Concerning access(2): We should better always just try the action instead
of first asking if we are allowed to do it.
markus schnalke [Fri, 23 Mar 2012 08:17:21 +0000 (09:17 +0100)]
scan(): Symbolic names instead of magic numbers.
markus schnalke [Thu, 22 Mar 2012 21:51:28 +0000 (22:51 +0100)]
Removed the trivial peekc() and put the code at the appropriate places.
markus schnalke [Thu, 22 Mar 2012 21:42:03 +0000 (22:42 +0100)]
Removed now unused OfficialName(). (Had been for UUCP, AFAIK.)
markus schnalke [Thu, 22 Mar 2012 21:38:41 +0000 (22:38 +0100)]
Remove accidentally added files.
markus schnalke [Thu, 22 Mar 2012 21:34:45 +0000 (22:34 +0100)]
Removed unused fdcompare().
markus schnalke [Thu, 22 Mar 2012 20:49:27 +0000 (21:49 +0100)]
Insourced push() into send.
markus schnalke [Thu, 22 Mar 2012 20:40:36 +0000 (21:40 +0100)]
scansbr: Minor refactoring.
markus schnalke [Thu, 22 Mar 2012 20:27:53 +0000 (21:27 +0100)]
scansbr: Removed the ``performance hack'' for inc as it wasn't faster.
I tested a 150MB/500msgs mbox but couldn't see any time differences. In both
cases it took 2-5s on my machine. Hence, I go for the much simpler and not
``we use strange internals'' version. If you really inc much larger mboxes,
then just take some time. ;-)
The explaining comment for the hack had been:
Performance hack: some people like to run "inc" on things like
net.sources or large digests. We do a copy directly into the output
buffer rather than going through an intermediate buffer.
We need the amount of data m_getfld found & don't want to do a
strlen on the long buffer so there's a hack in m_getfld to save the
amount of data it returned in the global "msg_count".
markus schnalke [Thu, 22 Mar 2012 20:07:50 +0000 (21:07 +0100)]
scansbr: Fixed scan and inc.
Writing to /dev/null had it's sense, as for scanning mboxes, the message size
had been determined this way and the file pointer had been pushed forward.
This is now done using the input file pointer instead of the output fp.
markus schnalke [Thu, 22 Mar 2012 19:30:56 +0000 (20:30 +0100)]
scansbr: Minor refactoring and some comments.
markus schnalke [Thu, 22 Mar 2012 18:54:12 +0000 (19:54 +0100)]
Remove remainings from scan format `body' pseudo-component.
Also, folded constant rlwidth var.
markus schnalke [Thu, 22 Mar 2012 18:05:02 +0000 (19:05 +0100)]
scansbr: Further refactoring.
markus schnalke [Thu, 22 Mar 2012 17:50:10 +0000 (18:50 +0100)]
scansbr: Only write to file if we're incing, but not when scanning.
If the original author would have used logical flags instead of magic
values in `outnum', the code wouldn't have been broken all the time.
Writing to /dev/null instead of not writing at all ... oh my! :-/
markus schnalke [Thu, 22 Mar 2012 17:46:33 +0000 (18:46 +0100)]
Refactoring in scansbr.c. Especially, took the logic out of `outnum'.
There's more to do here.
markus schnalke [Thu, 22 Mar 2012 16:46:06 +0000 (17:46 +0100)]
Removed the DBMPWD (aka. DBM) define. It was per default enabled, anyway.
The explanation of this option is:
For sites with a dbm-style password file (such as with Yellow Pages),
MH will not read the entire passwd file into a cache. At one site
that runs YP on a large passwd file, using this showed a 6:1 performance
improvement.
I don't like performance optimization, but if the non-cached version is
faster, then we surely take that one.
markus schnalke [Thu, 22 Mar 2012 16:17:58 +0000 (17:17 +0100)]
Merged mhstoresbr.c into mhstore.c, cause it's not used elsewhere.
markus schnalke [Thu, 22 Mar 2012 16:07:25 +0000 (17:07 +0100)]
Merged mhbuildsbr.c into mhbuild.c, cause it is not used elsewhere.
markus schnalke [Thu, 22 Mar 2012 14:26:19 +0000 (15:26 +0100)]
Rewrote late declations, which are part of C99, but not C89.
markus schnalke [Thu, 22 Mar 2012 14:25:41 +0000 (15:25 +0100)]
Added a note that I autoconf-2.59 should be enough.
markus schnalke [Thu, 22 Mar 2012 14:25:19 +0000 (15:25 +0100)]
Distribute autogen.sh in the tarballs.
markus schnalke [Thu, 22 Mar 2012 13:59:24 +0000 (14:59 +0100)]
Updated message, as `install-mh' had been replaced by `mmh'.
markus schnalke [Thu, 22 Mar 2012 13:44:00 +0000 (14:44 +0100)]
Moved and renamed some documentation files.
markus schnalke [Thu, 22 Mar 2012 12:57:24 +0000 (13:57 +0100)]
Removed remaining absolute mmh program path names from the binaries.
The mmh bindir must to be in PATH, but we are able to move the programs now.
The etcdir is still compiled into the binaries.
markus schnalke [Thu, 22 Mar 2012 12:33:49 +0000 (13:33 +0100)]
Call send directly, not via sendproc. Removed its profile entry, too.
markus schnalke [Thu, 22 Mar 2012 12:30:06 +0000 (13:30 +0100)]
Call spost directly, not via postproc. Remove the postproc profile entry.
markus schnalke [Thu, 22 Mar 2012 12:23:44 +0000 (13:23 +0100)]
Hardcoded mhmail instead of mailproc.
markus schnalke [Thu, 22 Mar 2012 12:18:23 +0000 (13:18 +0100)]
Removed the mhlproc profile entry. Call mhl directly.
markus schnalke [Thu, 22 Mar 2012 12:09:14 +0000 (13:09 +0100)]
Defined show(mime)proc locally and removed their profile entries.
Their paths are relative now, too.
markus schnalke [Thu, 22 Mar 2012 11:08:47 +0000 (12:08 +0100)]
Remove the rcvstoreproc/rcvpackproc vars.
markus schnalke [Thu, 22 Mar 2012 11:04:59 +0000 (12:04 +0100)]
Removed absolute path from mailproc.
The goal is to have as few path names compiled into the binaries.
markus schnalke [Thu, 22 Mar 2012 10:58:31 +0000 (11:58 +0100)]
s/lproc/listproc/
markus schnalke [Thu, 22 Mar 2012 10:51:14 +0000 (11:51 +0100)]
Removed the now unused incproc var.
markus schnalke [Thu, 22 Mar 2012 10:46:47 +0000 (11:46 +0100)]
mhmail: Don't invoke inc when called without arguments.
We can't provide a full mailx-replacement anyways. By magically invoking
inc(1), we likely confuse the user. Instead tell him that he can invoke
inc(1) himself. This doesn't mess with the important property: mhmail is
a mailx replacement for scripts to send mail.
markus schnalke [Thu, 22 Mar 2012 10:18:00 +0000 (11:18 +0100)]
Updated the INSTALL file.
markus schnalke [Thu, 22 Mar 2012 10:03:52 +0000 (11:03 +0100)]
Removed the `mhbuild' indirection via `buildmimeproc'.
We expect BINDIR to be in PATH if one executes mmh programs.
markus schnalke [Thu, 22 Mar 2012 09:56:46 +0000 (10:56 +0100)]
Querying the pager here is not necessary.
markus schnalke [Thu, 22 Mar 2012 09:52:49 +0000 (10:52 +0100)]
Rework of Editor/defaulteditor, similar to Pager/defaultpager; new env vars.
The priority order is: MMHEDITOR (env) > Editor (profile) > VISUAL (env)
EDITOR (env) > vi
markus schnalke [Thu, 22 Mar 2012 09:18:23 +0000 (10:18 +0100)]
moreproc is now Pager/defaultpager; removed -moreproc flags; added env vars.
The priority order is: MMHPAGER (env) > Pager (profile) > PAGER (env) > more
markus schnalke [Thu, 22 Mar 2012 08:00:22 +0000 (09:00 +0100)]
slocal: Updated man page to recent change.