markus schnalke [Tue, 20 Mar 2012 17:02:32 +0000 (18:02 +0100)]
scan(): Replaced explicit noisy parameter with implicit nfs check.
nfs is the ``new format string'' if it is NULL, we don't (and actually
can't) print a scan line.
markus schnalke [Mon, 13 Feb 2012 12:51:53 +0000 (13:51 +0100)]
Now, spost should be quite usable.
Make use of m_mktemp2(), like elsewhere in the mmh code base.
Various rework of the Bcc handling code.
Still to do:
- Fcc handling needs improvements.
- Draft files for Bcc recipients are left existing in /tmp.
markus schnalke [Sun, 12 Feb 2012 16:49:57 +0000 (17:49 +0100)]
Various rework in spost.
- Removed some unused flags.
- Don't care for multiple Subject: headers. They aren't allowed.
- Correctly handle headers that are folded before the first word of the value.
- Outsourced code from putfmt() into new process_fcc().
markus schnalke [Sun, 12 Feb 2012 15:45:26 +0000 (16:45 +0100)]
Changed the Fcc handling code in spost.
Both, the new as well as the old approach have their limitations. I'm far
from confident with the new approach. At least it's simpler. It should be
good enough for now.
markus schnalke [Sun, 12 Feb 2012 11:31:01 +0000 (12:31 +0100)]
Temporary state of spost rework: Things should work if you don't use Bcc: hdrs.
The simple changes: Removed -[no]filter and did some minor refactoring.
The complex changes: First steps in reworking the Bcc-related code.
Don't use Bcc: headers with this state of code. They simply are ignored.
markus schnalke [Sat, 11 Feb 2012 19:18:43 +0000 (20:18 +0100)]
Made show(1) the default lproc. `list' and `display' changed a bit.
Already in 1984, MTR stated, that lproc should be show. I agree with him
on this point, but I strongly disagree there: ``if lproc is "mhl", use
mhlproc for consistency''. I thus removed this part and even more around it.
The code became simpler but additional arguments to `list' and `display'
are not recognized anymore. That won't be much inconvenience.
markus schnalke [Fri, 10 Feb 2012 14:33:50 +0000 (15:33 +0100)]
Removed the -nomoreproc switch from mhl, show, mhshow.
We'll go for always having a moreproc after mhl. If you just want to cat out,
then use `-moreproc cat'. mhl's very basic paging facility will be removed.
markus schnalke [Fri, 10 Feb 2012 13:25:28 +0000 (14:25 +0100)]
show: Never call internal mhl(); always construct absolute argument paths.
We don't want those fat binaries that call internal versions of unrelated
tools. I.e. we do want modularization! No, fork() and exec() aren't too
expensive ... but heavily interweaved code is!
markus schnalke [Fri, 10 Feb 2012 10:55:48 +0000 (11:55 +0100)]
Removed the -clear switch from scan(1).
If you want to have a clear or form-feed, call `clear' or `printf "\f"' at
the shell level. Anyway, what's the sense of a clear *after* the scan output?
markus schnalke [Fri, 10 Feb 2012 09:56:19 +0000 (10:56 +0100)]
Removed rcvtty.
Its use cases disappeared over time. And as asyncron notifications rip you out
of your working flow, you usually don't want to have them. If you need this
function though, then you can make use of write(1).
markus schnalke [Fri, 10 Feb 2012 09:20:47 +0000 (10:20 +0100)]
Removed `-format string' switches but made -form accept `=formatstring'.
For all tools that take `-from file' or `-format string' switches, those
were merged: `-format string' went away, but one may supply any such string
to the -form switch by prepending it with an equal sign `='. Thus
scan -format '%(msg) %{from}'
is now written as
scan -form '=%(msg) %{from}'
Note: mhl isn't adjusted this way, yet. It's too complex to be understood
by me, now. Thus, it still remains as it was: Any parameter to -form will be
interepreted as a filter *file*. As show and mhshow use mhl, they are
affected, too.
In the same go: Compactified the new_fs() function: folded the arguments.
markus schnalke [Thu, 9 Feb 2012 18:31:44 +0000 (19:31 +0100)]
Augmented new_fs() with an additional argument for a default form.
This balances the arguments: user-form, user-string, def-form, def-string.
In comp.c I've already replaced open_form() with new_fs(). forw.c and
dist.c are to follow.
markus schnalke [Thu, 9 Feb 2012 18:08:37 +0000 (19:08 +0100)]
Removed the interactive prompt from comp when disposing an existing message.
It became useless in the restructuring of the draft facility but remained
until now. Also refactored this part of the code.
markus schnalke [Thu, 9 Feb 2012 16:38:27 +0000 (17:38 +0100)]
Removed -format and -filter from send(1); they were just passed to (s)post(8).
-(no)format switches normalization of addresses on/off. If spost would
support address normalization, then it should be always enabled or disabled.
But as spost doesn't support it it's a no-op in mmh anyway.
-filter is for generating non-MIME messages for Bcc recipients. We'll use
MIME in this case ... as soon as this code is written.
Note: spost is still lagging behind the current development.
markus schnalke [Thu, 9 Feb 2012 14:47:14 +0000 (15:47 +0100)]
Removed the -fcc switch from repl(1).
None of comp, dist, forw has it, why should repl then have it?
It likely had been added as the replcomps are not just copied but processed.
It had been quite easy to add this feature but nobody went far enough to
process components, distcomps, forwcomps as well to be able to have such
an -fcc switch for those tools as well.
markus schnalke [Thu, 9 Feb 2012 14:06:49 +0000 (15:06 +0100)]
forw(1) does always MIMEify now.
Removed the -(no)mime, -(no)format, -filter switches. If you like to forward
messages in non-MIME format, then manually read in the output of:
mhl -forwall -form mhl.forward `mhpath MSGS...`
Digest do get MIMEified too. To send non-MIME digests use:
mhl -forwall -from mhl.digest -digest X -volume Y -issue Z `mhpath ...`
markus schnalke [Wed, 8 Feb 2012 20:17:43 +0000 (21:17 +0100)]
Removed left-overs from the -idanno removal.
post (not spost) had written into a temp file those addresses to which it
had delivered mail. annoaux() in send had read from this temp file and
annotated the original message with each of those addresses. Now, no
addresses at all get annotated, but only the date of the action.
markus schnalke [Wed, 8 Feb 2012 16:46:27 +0000 (17:46 +0100)]
Replaced sendfiles with a simpler version that uses send instead of viamail.
Also moved it from etc/ to uip/. Updated man pages.
Note: The splitting of large messages by sendfile/viamail/or elsewhere
seems not to be available anymore, although it had been documented in the
man page. Either the man pages don't match the code or I've not found this
function yet.
markus schnalke [Wed, 8 Feb 2012 13:33:30 +0000 (14:33 +0100)]
Removed the `-delete' option from the `quit' command at the whatnow prompt.
There already is a command `delete' that's equal to the removed `quit -delete'.
markus schnalke [Wed, 8 Feb 2012 13:24:08 +0000 (14:24 +0100)]
Separated send from whatnow, similar to the previous commit.
Again, I traded execution speed for less (doubled) code, clearer interfaces,
and modularization. Oh what an improvement!
markus schnalke [Wed, 8 Feb 2012 12:42:11 +0000 (13:42 +0100)]
Always exec whatnow; don't link the code into comp, repl, forw, dist.
Although this might slow it a bit down, it makes the boundaries clearer.
The main problem for me is the interweaving of the parts in nmh. Let's
trade a bit of speed for better modularization.
markus schnalke [Wed, 8 Feb 2012 10:19:50 +0000 (11:19 +0100)]
Better mime types for attachments. Use some command; e.g. `file --mime'.
Up to now attachments had either been text/plain or application/octet-stream,
if one hadn't added mhshow-suffix- profile entries for any possible type.
Now we call mimetypequeryproc (default: `file -b --mime' for GNU file),
this can be changed with the profile entry `Mime-Type-Query'. This command
will be executed with the attachment filename as last argument. If your
file(1) command does not print MIME types, you can still grep your profile
for matching mhshow-suffix- entries. However, I suggest to store this data
somewhere else. IMO the profile is not the right location for it.
markus schnalke [Sat, 4 Feb 2012 15:19:06 +0000 (16:19 +0100)]
Removed the -backup flag from spost.
Post hadn't had it as renaming the draft is done by send. It appears as
if it were only there for debugging purposes.
markus schnalke [Sat, 4 Feb 2012 12:39:32 +0000 (13:39 +0100)]
Removed the suppress dups feature from slocal for simplicity reasons.
Now we don't need dbm anymore. This removed a heavy dependency and
complicated configure code.
markus schnalke [Sat, 4 Feb 2012 12:08:51 +0000 (13:08 +0100)]
Removed mts.conf; the maildelivery option went into slocal directly.
The MTS is a non-MUA part of MH, which is/gets removed in MMH.
Now, you cannot change the global maildelivery file without changing the
code. You stil can specify -maildelivery to slocal.
I've also remove support for the env vars MHMTSCONF and MHMTSUSERCONF,
which were added by Earl Hood in 2010. We might want to add support
for them again. I need to think about the future of slocal anyway.
markus schnalke [Sat, 4 Feb 2012 10:57:16 +0000 (11:57 +0100)]
Removed the built-in FTP client.
That's another of these things that are not the MUA's tasks.
There are good FTP clients around, just use one of them.
We could provide an external FTP wrapper script around wget or so,
to use with nmh-access-ftp. However, I'm not sure how to deal with
message/external-body in general. Although this concept is great,
I've never seen any such message in all my email life.
markus schnalke [Fri, 3 Feb 2012 17:42:55 +0000 (18:42 +0100)]
Removed the last masquerading type: username_extension.
If you want some username extension, then change the From: line in the
message draft. If you want real masquerading, then consult your MTA.
mmh is an MUA, no MTA.
(spost hadn't supported username_extension maquerading, anyway.)
markus schnalke [Fri, 3 Feb 2012 11:25:42 +0000 (12:25 +0100)]
Major bugfix: inc does not lose data anymore.
What have I done in 70b2643e0da8485174480c644ad9785c84f5bff4 ?
Producing scan listings and inc'ing mail are too closely related.
By removing the body component from scan listings, I also had removed
the ability to copy bodies during inc. Hence this commit undos the
changes. (And reintroduces the body component in scan listings. :-( )
The code is too much interweaved!
markus schnalke [Fri, 3 Feb 2012 10:16:05 +0000 (11:16 +0100)]
Removed the -(no)remove switches from spost.
I wonder why it existed, as the draft can get printed to stdout with -debug.
That should be enough for debugging without modifying source code.
markus schnalke [Fri, 3 Feb 2012 09:42:49 +0000 (10:42 +0100)]
Fixed abort of e.g. comp when draft folder is empty.
In this case mp->lowoff is 1 but mp->lowmsg equal mp->hghmsg equal 0.
Hence we have an access at mp->msgstats[-1], which corrupted our mem.
Gdb hadn't helped me for this, but valgrind showed me the problem.
markus schnalke [Mon, 30 Jan 2012 15:16:26 +0000 (16:16 +0100)]
Scan listings shall not contain body content. Hence, removed this feature.
Scan listings shall operator on message headers and non-message information
only. Displaying the beginning of the body complicates everything too much.
That's no surprise, because it's something completely different. If you
want to examine the body, then use show(1)/mhshow(1).
Changed the default scan formats accordingly.
markus schnalke [Mon, 30 Jan 2012 11:42:06 +0000 (12:42 +0100)]
Removed -pause from mhshow(1).
My goal is to have show/mhshow generate a single stream of bytes to be
piped through a pager. Content not convertable to text shall not be displayed
directly. This is my idea currently.
markus schnalke [Mon, 30 Jan 2012 11:00:49 +0000 (12:00 +0100)]
Bugfix: Removed -reverse switch from scan(1).
No more to say but to quote MTR:
-[no]reverse under #ifdef BERK (I really HATE this)
And JLR:
Lists messages in reverse order with the `-reverse' switch.
This should be considered a bug.