6 years agoreplaced calloc with mh_xcalloc
Philipp Takacs [Sat, 5 Sep 2015 23:09:15 +0000 (01:09 +0200)]
replaced calloc with mh_xcalloc

This finished the work of David Levine,
which was portet in the last commit.

6 years agoAdded mh_xcalloc().
David Levine [Sat, 11 Oct 2014 14:22:52 +0000 (09:22 -0500)]
Added mh_xcalloc().

6 years agofix open up to 4 times on mbox_open()
Philipp Takacs [Sat, 29 Aug 2015 09:56:34 +0000 (11:56 +0200)]
fix open up to 4 times on mbox_open()

Befor this lkopen was only called ones.

6 years agoreimplement Dcc-field
Philipp Takacs [Thu, 27 Aug 2015 19:59:11 +0000 (21:59 +0200)]
reimplement Dcc-field

Dcc is like Bcc but don't send an extra message
with the orginal message attched. See FAQ for
more details.

6 years agofind recipients for sendmail
Philipp Takacs [Sun, 28 Jun 2015 22:42:31 +0000 (00:42 +0200)]
find recipients for sendmail

Recipients are given as comandline arguments to sendmail.
Also do aliasing on every header which contain an address.

6 years agoRevert "Remove stdio internals manipulation in sbr/m_getfld.c"
Philipp Takacs [Sat, 5 Sep 2015 11:10:33 +0000 (13:10 +0200)]
Revert "Remove stdio internals manipulation in sbr/m_getfld.c"

This only temporaly, to ensure mmh is working correct.

This reverts commit 976303d04d3bc2cad0afd5e3d364264783da56c2.

6 years agoRemove stdio internals manipulation in sbr/m_getfld.c
David Levine [Tue, 25 Dec 2012 17:57:31 +0000 (11:57 -0600)]
Remove stdio internals manipulation in sbr/m_getfld.c

Replaced all the stdio buffer access in sbr/m_getfld.c with a single call
to fread() and then some almost straightforward buffer manipulations.

This commit is ported to mmh.

6 years agoMake msg_delim file static to sbr/m_getfld.c
markus schnalke [Sat, 29 Aug 2015 14:39:59 +0000 (16:39 +0200)]
Make msg_delim file static to sbr/m_getfld.c

Thanks to David Levine <> for nmh commit

6 years agoMerge branch 'master' of ssh://
markus schnalke [Sat, 29 Aug 2015 08:48:22 +0000 (10:48 +0200)]
Merge branch 'master' of ssh://

6 years agoMerge remote-tracking branch 'origin/master'
markus schnalke [Sat, 29 Aug 2015 08:47:56 +0000 (10:47 +0200)]
Merge remote-tracking branch 'origin/master'

6 years agoBring back the LINUX-IO check from the last commit
Philipp Takacs [Fri, 28 Aug 2015 09:53:03 +0000 (11:53 +0200)]
Bring back the LINUX-IO check from the last commit

We need them for m_getfld(), too.

This reverts parts of the commit 33516e5b74bb4bb5c626d4ee42bd3a7a9faaabef.

6 years agoDrop register storage class
markus schnalke [Wed, 29 Apr 2015 05:09:43 +0000 (07:09 +0200)]
Drop register storage class

6 years agoRemove discard() total
David Levine [Wed, 26 Dec 2012 01:25:43 +0000 (19:25 -0600)]
Remove discard() total

discard() isn't needed in mmh anymore.

6 years agoFix autoconf check for mailspool world write permission
markus schnalke [Wed, 26 Aug 2015 19:36:54 +0000 (21:36 +0200)]
Fix autoconf check for mailspool world write permission

This is a bugfix and improvement for commit b15b7cc (``Use
realpath to find the mailspool'').

We can even do this check much simpler, if we focus on the
problem that

        $lspath -dlL $mailspool

does not check the target of a symlink, although -L is given.
The contradicting -d seems to overrule it.

We can fix this more easily by appending a slash to the path:

        $ ls -ld /var/mail/
        drwxrwxr-t 2 root root 4096 Apr 29 06:36 /var/mail//

Without the slash it was:

        $ ls -ld /var/mail
        lrwxrwxrwx 1 root root 10 Nov 22  2011 /var/mail -> spool/mail/

This small change does it for one level of indirection.
This should be sufficient.

6 years agoIgnore empty MIME parameter
Philipp Takacs [Fri, 7 Aug 2015 13:22:23 +0000 (15:22 +0200)]
Ignore empty MIME parameter

If a message contains an empty parameter, we only produce a warning.

6 years agoIgnore wrong encoding in multipart/*
Philipp Takacs [Tue, 4 Aug 2015 19:26:14 +0000 (21:26 +0200)]
Ignore wrong encoding in multipart/*

If a multipart message has an encoding other then
7bit or 8bit, 7bit encoding is assumed.

6 years agoremove dublicated code in uip/spost
Philipp Takacs [Sun, 31 May 2015 00:10:32 +0000 (02:10 +0200)]
remove dublicated code in uip/spost

To avoid bugs like in commit dc81afc84b4d53177a1c4

6 years agofix bug if multible mbox in From-field
Philipp Takacs [Sat, 30 May 2015 22:53:11 +0000 (00:53 +0200)]
fix bug if multible mbox in From-field

Now the first address of the user is used, if multible addresses
are in the From-field. If non of the addresses is an address
of the user, the the behaviour has not changed.

6 years agobugfix for a memory-reuse bug spost and whom
Philipp Takacs [Sat, 2 May 2015 12:36:50 +0000 (14:36 +0200)]
bugfix for a memory-reuse bug spost and whom

spost and whom use add to initialize a temporary char*.
This pointer maybe points to internal data or already freed
memory. Now getcpy is used.

6 years agospost: Refactor braces, comments, etc.
markus schnalke [Wed, 29 Apr 2015 05:03:09 +0000 (07:03 +0200)]
spost: Refactor braces, comments, etc.

6 years agogitignore: More specific ignore patterns
markus schnalke [Wed, 29 Apr 2015 04:47:13 +0000 (06:47 +0200)]
gitignore: More specific ignore patterns

I frequently make temporary backups this way:
cp uip/foo.c uip/foo.c.1
These files were ignored, although this ignore filter was meant
for the created man pages in section 1 only.

6 years agoAdd "Default-From" config option
Philipp Takacs [Sat, 18 Apr 2015 22:53:14 +0000 (00:53 +0200)]
Add "Default-From" config option

The "Default-From" config option is used, if the Draft
don't contain a From header. If the draft contains a From
header and it's not from the user it's used as the Sender

Bug: If the From-header contains more then one addresse
and one is from the user, no Sender-header is attached.

6 years agoUse realpath to find the mailspool
Philipp Takacs [Sat, 6 Dec 2014 14:20:12 +0000 (15:20 +0100)]
Use realpath to find the mailspool

inc is istalled with setgid-flag if the mailspool
isn't world writeable and dot-locking is used. This
work now if the mailspool is a sysmlink.

6 years agoUse sysexits.h for better exit-codes
Philipp Takacs [Tue, 14 Apr 2015 13:29:56 +0000 (15:29 +0200)]
Use sysexits.h for better exit-codes

The sysexits header describe some standard exit-codes, which should
be used. adios has now a status argument so sysexits.h can be used.

6 years agoreinclude some headers
Philipp Takacs [Tue, 14 Apr 2015 12:33:36 +0000 (14:33 +0200)]
reinclude some headers

These includes are necessary to compile on FreeBSD.

6 years agoMove #include from h/mh.h to source files
markus schnalke [Fri, 10 Apr 2015 10:30:56 +0000 (12:30 +0200)]
Move #include from h/mh.h to source files

Included files should not include further files. Now, only the
necessary files are included and not all of them in every file.

A large bunch of this work is done, but there are some more
nested include files.

6 years agoRemove h/nmh.h
markus schnalke [Fri, 10 Apr 2015 09:21:12 +0000 (11:21 +0200)]
Remove h/nmh.h

Move its contents to h/mh.h.

Remove the NLENGTH macro on the way, be cause it is not used.

6 years agoMinimize the include
markus schnalke [Fri, 10 Apr 2015 08:59:30 +0000 (10:59 +0200)]
Minimize the include

It's not necessary to include <h/signals.h>, <signal.h> is enough.

6 years agoFix FTBFS bug introduced by 600379c
markus schnalke [Thu, 9 Apr 2015 10:44:58 +0000 (12:44 +0200)]
Fix FTBFS bug introduced by 600379c

One #include of h/signals.h is still necessary.

6 years agoRemoved unnecessary #include of h/signals.h.
David Levine [Sat, 14 Feb 2015 03:31:48 +0000 (21:31 -0600)]
Removed unnecessary #include of h/signals.h.

6 years agoFixed the error message in lockit() when it fails to create tmp file.
Marcin Cieslak [Tue, 10 Feb 2015 14:18:05 +0000 (14:18 +0000)]
Fixed the error message in lockit() when it fails to create tmp file.

6 years agoRemoved m_chkids(), per suggestion of Marcin Cieslak.
David Levine [Sat, 14 Feb 2015 04:22:21 +0000 (22:22 -0600)]
Removed m_chkids(), per suggestion of Marcin Cieslak.

6 years agoRemoved #include of signal.h because it's in h/signals.h.
David Levine [Sat, 14 Feb 2015 03:30:41 +0000 (21:30 -0600)]
Removed #include of signal.h because it's in h/signals.h.

6 years agoReplaced setgid() calls with setegid() so that it works with dot
Marcin Cieslak [Fri, 13 Feb 2015 03:09:26 +0000 (21:09 -0600)]
Replaced setgid() calls with setegid() so that it works with dot
locking on FreeBSD.  setegid() should be supported on modern POSIX

6 years agoremove declaration of child_id in slocal:usr_pipe
Philipp Takacs [Sat, 7 Mar 2015 00:41:12 +0000 (01:41 +0100)]
remove declaration of child_id in slocal:usr_pipe

Now the global version is used, so the signal handler
works correct.

6 years agoreturn -1 if fork(2) fails in execprog
Philipp Takacs [Sun, 22 Feb 2015 22:26:38 +0000 (23:26 +0100)]
return -1 if fork(2) fails in execprog

If fork in execprog fails and return 1 there is now
way to different between a proces witch return 1.
Thanks Marcin Cieslak <> for reporting.

6 years agoremove longjmp from signal handler in mhl
Philipp Takacs [Sat, 21 Feb 2015 11:09:33 +0000 (12:09 +0100)]
remove longjmp from signal handler in mhl

To avoid undefined behavior set an interrupt flag
in the signal handler.

6 years agoremove longjmp in signalhandler of slocal
Philipp Takacs [Sat, 21 Feb 2015 10:38:18 +0000 (11:38 +0100)]
remove longjmp in signalhandler of slocal

To avoid undefined behavior kill the child process
in the signal handler and set an interrupt flag.

6 years agoremove longjmp in signalhandler of prompter
Philipp Takacs [Sat, 21 Feb 2015 10:05:43 +0000 (11:05 +0100)]
remove longjmp in signalhandler of prompter

to avoid undefined behavior use close(2) in the signal handler

6 years agoremove longjmp from signalhandler in getans
Philipp Takacs [Sat, 21 Feb 2015 10:03:26 +0000 (11:03 +0100)]
remove longjmp from signalhandler in getans

To avoid undefined behavior use close in the signal handler.

6 years agononstatic function for atexit, check if atexit fails
Philipp Takacs [Sun, 22 Feb 2015 13:26:27 +0000 (14:26 +0100)]
nonstatic function for atexit, check if atexit fails

atexit needs nonstatic functions to work correct. The
error check is importent, because atexit can fail for
some reasons and the cleanup woulden't work.

6 years agoMerge branch 'master' of ssh://
markus schnalke [Sat, 14 Feb 2015 16:44:14 +0000 (17:44 +0100)]
Merge branch 'master' of ssh://


6 years agoRefactor: Use if for two-way branching; Compare against 0 explicitly
markus schnalke [Sat, 14 Feb 2015 16:29:22 +0000 (17:29 +0100)]
Refactor: Use if for two-way branching; Compare against 0 explicitly

I think that the use of switch for the two-way branches could have
been a performance optimization. I think it's clearer to use if,
especially in the fall-through case.

As setjmp() is known to return with either 0 or something else, we
should compare against 0 and not against some define (for which I
again and again wonder if it stands for 0 or for 1).

6 years agoFix minor coding style issues (whitespace)
markus schnalke [Sat, 14 Feb 2015 16:28:05 +0000 (17:28 +0100)]
Fix minor coding style issues (whitespace)

6 years agoRemove unnecessary headers
markus schnalke [Sat, 14 Feb 2015 16:27:11 +0000 (17:27 +0100)]
Remove unnecessary headers

6 years agodistout and ready_msg return NOTOK on error
Philipp Takacs [Fri, 30 Jan 2015 01:25:17 +0000 (02:25 +0100)]
distout and ready_msg return NOTOK on error

If distout or ready_msg fails, the cleanup of send is done.

6 years agomhmail: use execprog()
markus schnalke [Thu, 12 Feb 2015 06:49:33 +0000 (07:49 +0100)]
mhmail: use execprog()

6 years agosbr/execprog.c: Fix the return value
markus schnalke [Thu, 12 Feb 2015 06:40:50 +0000 (07:40 +0100)]
sbr/execprog.c: Fix the return value

Use pidXwait(), which invokes pidstatus(), here for error reporting.
This eases the use of execprog() because we don't have to call it
there everytime. However, it might be unwanted to put the error
printing stuff into execprog() because we might have an invokation
of execprog() that want's to deal with errors itself in a different
way. If this would be the case, then we likely should change
pidXwait() to pidwait() and call pidstatus(execprog()).

6 years agoMinor clarifications in mhmail(1)
markus schnalke [Wed, 11 Feb 2015 07:11:53 +0000 (08:11 +0100)]
Minor clarifications in mhmail(1)

6 years agoUpdate the man pages to the shortened reserved sequence names
markus schnalke [Wed, 11 Feb 2015 07:04:35 +0000 (08:04 +0100)]
Update the man pages to the shortened reserved sequence names

These reserved sequence names were shortened to one character
long ago in the code. Now the docs are adjusted to that change.

Thanks to Marcin for spotting it.

6 years agoInitialize status in uip/send.c
Philipp Takacs [Thu, 29 Jan 2015 22:02:58 +0000 (23:02 +0100)]
Initialize status in uip/send.c

Thanks Marcin Cieslak <> for reporting.

6 years agoMerge ../mmh
markus schnalke [Mon, 26 Jan 2015 17:44:50 +0000 (18:44 +0100)]
Merge ../mmh


6 years agoremove done finaly
Philipp Takacs [Sat, 17 Jan 2015 22:46:30 +0000 (23:46 +0100)]
remove done finaly

removed the used of done in sbr and the dafinition
in the header. Also the source file is removed.

6 years agoremove last rests of done in uip
Philipp Takacs [Sat, 17 Jan 2015 22:43:28 +0000 (23:43 +0100)]
remove last rests of done in uip

At some points done was used as callback funktion.

6 years agoRemove done from mhl pick and send
Philipp Takacs [Fri, 16 Jan 2015 21:31:04 +0000 (22:31 +0100)]
Remove done from mhl pick and send

Second part of removing done, to make the code
better to read. This tools needed some refactoring
before done could removed. Next step is removing
done from sbr.

6 years agoInitialize vecp in send anno()
Philipp Takacs [Sat, 17 Jan 2015 01:00:22 +0000 (02:00 +0100)]
Initialize vecp in send anno()

Access to an uninialized variable can cause
a a buffer overflow or underrun.
(Thanks to the compiler for reporting.)

6 years agoAdd tests for pick
Philipp Takacs [Sat, 17 Jan 2015 00:01:57 +0000 (01:01 +0100)]
Add tests for pick

Add two patches for pick. One to test the normale behavior,
and one to test if a ``0'' is print to stdout when no message is

6 years agoBugfix in pick.c
Philipp Takacs [Fri, 16 Jan 2015 19:48:09 +0000 (20:48 +0100)]
Bugfix in pick.c

Undo last last commit in uip/pick.c. pick shoud only print "0" if
it exit with a non-zero exit.

6 years agoReplace done with exit at uip
Philipp Takacs [Sun, 14 Dec 2014 13:45:35 +0000 (14:45 +0100)]
Replace done with exit at uip

Replace done with exit in most sourcefiles of uip. This makes the
code better to read. If the done was overwritten by an externel function
atexit() is used instand.

send.c and mhl.c are excluded, because need a bit rewrite first.

6 years agonew: Fix a pointer problem
markus schnalke [Thu, 15 Jan 2015 20:40:53 +0000 (21:40 +0100)]
new: Fix a pointer problem

I should learn to get such stuff right without the need to draw
the memory layout with boxes and lines on paper ...

Thanks to the test suite for catching this one!

6 years agosend: Fix uninitialied variable
markus schnalke [Thu, 15 Jan 2015 20:27:09 +0000 (21:27 +0100)]
send: Fix uninitialied variable

6 years agowhatnow: Use execprog() ... one more time
markus schnalke [Thu, 15 Jan 2015 20:18:03 +0000 (21:18 +0100)]
whatnow: Use execprog() ... one more time

6 years agowhatnow: No need to fork
markus schnalke [Thu, 15 Jan 2015 20:13:08 +0000 (21:13 +0100)]
whatnow: No need to fork

Plus refactoring.

6 years agosbr/ext_hook.c: Use execprog(); Refactoring
markus schnalke [Thu, 15 Jan 2015 19:50:50 +0000 (20:50 +0100)]
sbr/ext_hook.c: Use execprog(); Refactoring

6 years agormm: Use execprog() instead of own fork-exec
markus schnalke [Thu, 15 Jan 2015 19:30:15 +0000 (20:30 +0100)]
rmm: Use execprog() instead of own fork-exec

6 years agoRemove unused variable
markus schnalke [Thu, 15 Jan 2015 17:04:06 +0000 (18:04 +0100)]
Remove unused variable

6 years agoConvert pidXwait() from macro to function
markus schnalke [Thu, 15 Jan 2015 16:53:20 +0000 (17:53 +0100)]
Convert pidXwait() from macro to function

Plus some refactoring and syntactic sugar in pidstatus().

6 years agoDon't save the context within execprog()
markus schnalke [Thu, 15 Jan 2015 16:08:55 +0000 (17:08 +0100)]
Don't save the context within execprog()

This context_save() call was copied there accidently.

6 years agosend: Convert system() to execprog() ... second half
markus schnalke [Wed, 14 Jan 2015 21:24:34 +0000 (22:24 +0100)]
send: Convert system() to execprog() ... second half

Now only uip/spost.c has one left.

6 years agosend: Convert system() to execprog() ... partly
markus schnalke [Wed, 14 Jan 2015 20:56:54 +0000 (21:56 +0100)]
send: Convert system() to execprog() ... partly

6 years agoforw: convert system() to execprog(); fix buffer check
markus schnalke [Wed, 14 Jan 2015 20:22:02 +0000 (21:22 +0100)]
forw: convert system() to execprog(); fix buffer check

6 years agoCleanup of code layout only
markus schnalke [Wed, 14 Jan 2015 07:23:39 +0000 (08:23 +0100)]
Cleanup of code layout only

6 years agoRefactoring in the small
markus schnalke [Wed, 14 Jan 2015 07:08:07 +0000 (08:08 +0100)]
Refactoring in the small

Out-sorting failure cases instead of deep-nesting the success case.

6 years agoRemove verbosity for -noverbose; cleanup in code layout and message texts
markus schnalke [Wed, 14 Jan 2015 06:53:31 +0000 (07:53 +0100)]
Remove verbosity for -noverbose; cleanup in code layout and message texts

We shouldn't print information messages if we run non-verbosely.
In this case, the message appeared not to be helpful because it
suggests to re-run the command with `-verbose' ... but sending the
message again is usually not possible, not wanted or would produce
different results.

This is a cleanup of Philipp's patch.

6 years agoUse execprog() instead of system() ... partly transition
markus schnalke [Wed, 14 Jan 2015 06:31:49 +0000 (07:31 +0100)]
Use execprog() instead of system() ... partly transition

There are several more places where system() should be replaced.

As execprog() does not split strings into multiple arguments,
`listproc' could no longer contain ``show -file''. We need to
rework the concept of these `...proc' entries.

This commit fixes tests/whatnow/test-attach-detach.

6 years agoAdded execprog() and execprogl(), which are safer alternatives to system(3)
markus schnalke [Wed, 14 Jan 2015 06:28:33 +0000 (07:28 +0100)]
Added execprog() and execprogl(), which are safer alternatives to system(3)

This is motivated by the currently failing test case

6 years agomhsign: use the strongest, newest not-expired secret key
markus schnalke [Tue, 13 Jan 2015 22:13:59 +0000 (23:13 +0100)]
mhsign: use the strongest, newest not-expired secret key

Is there no GnuPG option to exclude expired keys from the listing?

6 years agoFix manpages (nroff code), as reported by tests/manpages/test-manpages
markus schnalke [Mon, 22 Dec 2014 14:00:38 +0000 (15:00 +0100)]
Fix manpages (nroff code), as reported by tests/manpages/test-manpages

6 years agoPartly fix tests/whatnow/test-attach-detach: changes in detach and alist
markus schnalke [Mon, 22 Dec 2014 12:07:02 +0000 (13:07 +0100)]
Partly fix tests/whatnow/test-attach-detach: changes in detach and alist

Whatnow's detach and alist commands are different today:
- detach does only take number arguments
- alist prints full path names

6 years agoFix tests/mhbuild/test-forw: rfc934 mode is no longer supported
markus schnalke [Mon, 22 Dec 2014 12:03:50 +0000 (13:03 +0100)]
Fix tests/mhbuild/test-forw: rfc934 mode is no longer supported

6 years agoCheck with witch exit-code sendmail/spost exit and give an better error
Philipp Takacs [Fri, 2 May 2014 21:21:35 +0000 (23:21 +0200)]
Check with witch exit-code sendmail/spost exit and give an better error
message. So the User sees better wat's wrong. At the moment only
exit-code 75 is handlel extra.

6 years agoAdjusted tests/new/test-basic to mmh.
markus schnalke [Sun, 7 Dec 2014 19:32:36 +0000 (20:32 +0100)]
Adjusted tests/new/test-basic to mmh.

6 years agomhparam: Renamed some sequences
markus schnalke [Sun, 7 Dec 2014 19:27:53 +0000 (20:27 +0100)]
mhparam: Renamed some sequences
We should fix these names once and for all!

6 years agotests: Adjusted most of the tests to mmh.
markus schnalke [Fri, 28 Nov 2014 11:21:39 +0000 (12:21 +0100)]
tests: Adjusted most of the tests to mmh.

6 years agotests: Supress progress meter if non-interactive.
markus schnalke [Fri, 28 Nov 2014 10:46:33 +0000 (11:46 +0100)]
tests: Supress progress meter if non-interactive.

6 years agoAdded more include directories to fix building in another directory.
markus schnalke [Fri, 28 Nov 2014 10:05:17 +0000 (11:05 +0100)]
Added more include directories to fix building in another directory.
I discovered these problems when I tried to build from a git clone
(which has no config.h in the source directory).

6 years agoFixed the test framework by adjusting it to mmh.
markus schnalke [Thu, 27 Nov 2014 23:07:13 +0000 (00:07 +0100)]
Fixed the test framework by adjusting it to mmh.
In the same go: Cleaned up its code a bit and added a summary to

Adjusting the individual tests to mmh still needs to be done. ... and
afterwards we can ;dd a lot more of them. :-) (But before we write our
own tests, we first incorporate all the ones they've added to nmh in
the meanwhile. ;-) )

6 years agogitignore: ignore test dir name file
markus schnalke [Thu, 27 Nov 2014 22:35:18 +0000 (23:35 +0100)]
gitignore: ignore test dir name file

6 years agouip/ minor cleanup
markus schnalke [Thu, 27 Nov 2014 22:34:24 +0000 (23:34 +0100)]
uip/ minor cleanup

6 years agoFixed building in different build directory, as described in INSTALL.
markus schnalke [Thu, 27 Nov 2014 21:48:46 +0000 (22:48 +0100)]
Fixed building in different build directory, as described in INSTALL.

6 years agoMerge
markus schnalke [Thu, 27 Nov 2014 19:30:11 +0000 (20:30 +0100)]

6 years agomhsign: Ignore expired, revoked, invalid, and similar public keys.
markus schnalke [Thu, 27 Nov 2014 19:26:36 +0000 (20:26 +0100)]
mhsign: Ignore expired, revoked, invalid, and similar public keys.

6 years agomhparam: Added more items for direct query and -debug listing.
markus schnalke [Thu, 27 Nov 2014 17:30:31 +0000 (18:30 +0100)]
mhparam: Added more items for direct query and -debug listing.
Most new values are not included in the -all listing because they
are not part of the profile or context but are mainly internal
configuration values.

The -debug listing has now section headings (pipe through
`grep -v ^#' to remove them).

The motivation for this change was querying the default inbox
name. If `Inbox' wasn't set in the profile, `mhparam inbox' had
failed. Now it prints `+inbox' (if the defaultfolder has not been
changed on your installation).

6 years agomhpgp: Bugfix for 2932d136debcf53a45c44891ee80e6d34e61f109
markus schnalke [Tue, 25 Nov 2014 07:47:31 +0000 (08:47 +0100)]
mhpgp: Bugfix for 2932d136debcf53a45c44891ee80e6d34e61f109
(I should do better testing ...)

6 years agomhpgp: remove unused sed label
markus schnalke [Tue, 25 Nov 2014 07:21:12 +0000 (08:21 +0100)]
mhpgp: remove unused sed label
OpenBSD complained about it.
Reported by Dominik Lang <>. Thanks.

6 years agopick: Clarified the man page with respect to -ddd.
markus schnalke [Tue, 25 Nov 2014 06:43:56 +0000 (07:43 +0100)]
pick: Clarified the man page with respect to -ddd.
-ddd is an argument to e.g. -after, not a separate switch.

6 years agomhsign: Bugfix: Don't ignore MMHPGPKEY and the Pgpkey profile entry.
markus schnalke [Tue, 25 Nov 2014 06:01:31 +0000 (07:01 +0100)]
mhsign: Bugfix: Don't ignore MMHPGPKEY and the Pgpkey profile entry.
Bugreport and patch by Philipp Takacs <>. Thanks.
Additionally: use `test -z'.

6 years agoMerge branch 'master' of ssh://
markus schnalke [Fri, 21 Nov 2014 11:06:40 +0000 (12:06 +0100)]
Merge branch 'master' of ssh://

6 years agospost: If we add a From header, we add a qualified email address.
markus schnalke [Fri, 21 Nov 2014 10:55:22 +0000 (11:55 +0100)]
spost: If we add a From header, we add a qualified email address.
Also clarified a comment and changed the description for blind
distribution lists to the one that is most common today.

6 years agoTODO: removed the double-dash TODO item, because it will not be done
markus schnalke [Thu, 20 Nov 2014 10:38:28 +0000 (11:38 +0100)]
TODO: removed the double-dash TODO item, because it will not be done
The GNU style double-dashes collide with MH's command line concepts.
It makes no sense to simply allow a second dash, because all the
rest is different. (Think of `pick --component'.) It's more important
to keep the concepts clean than trying to imitate different concepts.