mmh
6 years agoAdd example to pick.1 for handling empty result set in the shell
markus schnalke [Sat, 8 Jul 2017 12:34:04 +0000 (14:34 +0200)]
Add example to pick.1 for handling empty result set in the shell

This commit bases on a patch provided by Vasily Kolobkov
<polezaivsani@openmailbox.org>. Actually, he also brought the
topic up on the mailing list. Thanks!

Also adjust the man page from nmh's special sequence name `all'
to mmh's name `a' for it.

6 years agofix undefined behavior in fmt_trim()
Philipp Takacs [Fri, 16 Jun 2017 12:12:24 +0000 (14:12 +0200)]
fix undefined behavior in fmt_trim()

It now writes the output in the input char *. This is only a temporaly
fix.

6 years agocpstripped: Add braces to make code more legible.
c_14 [Tue, 16 May 2017 16:13:52 +0000 (18:13 +0200)]
cpstripped: Add braces to make code more legible.

6 years agoadd a test to test-scan-multibyte
c_14 [Mon, 22 May 2017 21:56:12 +0000 (23:56 +0200)]
add a test to test-scan-multibyte

Tests for splitting within a multibyte character.

6 years agofmt_scan: support multibyte characters in putstr decoding
c_14 [Tue, 16 May 2017 16:13:27 +0000 (18:13 +0200)]
fmt_scan: support multibyte characters in putstr decoding

Fixes an issue where the string output by scan with a putstr format is
truncated within a multibyte character causing terminal corruption

6 years agodecode rfc2047 header in mhparse
Philipp Takacs [Mon, 19 Sep 2016 16:23:39 +0000 (18:23 +0200)]
decode rfc2047 header in mhparse

attachment filenames are mostly rfc2047 encoded. Now all
mime header are decoded to avoid problems.

7 years agomhpgp: use trusted header field copies to replace original header fields
markus schnalke [Mon, 17 Apr 2017 21:52:26 +0000 (23:52 +0200)]
mhpgp: use trusted header field copies to replace original header fields

Enigmail provides so called ``protected-headers'', which are copies
of some main mail header fields to protect them from forgery.

Mhpgp(1) works in a rough way and simply adds this MIME part
to the main header, and this resulted in a doubling of those header
fields.

Now those original headers are removed if trusted copies are
provided within the encrpyted MIME part.

7 years agoFix `anno -delete': preserve newline in folded header fields
markus schnalke [Mon, 17 Apr 2017 21:41:55 +0000 (23:41 +0200)]
Fix `anno -delete': preserve newline in folded header fields

7 years agoFix mhsign for gpg2: Expiry date format
markus schnalke [Mon, 17 Apr 2017 17:35:21 +0000 (19:35 +0200)]
Fix mhsign for gpg2: Expiry date format

Gnupg2 uses --fixed-list-mode by default for --with-colons.
Gnupg1 needs this option explicitly to generate the same output
format (timestamps) for expiry dates.

Thanks to Jan Unterbrink for reporting the bug.

7 years agofix oldstyle whom
Philipp Takacs [Wed, 8 Mar 2017 14:31:37 +0000 (15:31 +0100)]
fix oldstyle whom

Check if msg struct have selected messages before
accessing a message.

7 years agoFix uip/whom.c for C89 compatibility
markus schnalke [Wed, 8 Mar 2017 12:44:12 +0000 (13:44 +0100)]
Fix uip/whom.c for C89 compatibility

7 years agoFix sbr/parse_msgs.c for C89 compatibility
markus schnalke [Wed, 8 Mar 2017 12:31:31 +0000 (13:31 +0100)]
Fix sbr/parse_msgs.c for C89 compatibility

7 years agoadd() first parameter (s2) is now const
Philipp Takacs [Sun, 5 Mar 2017 16:55:31 +0000 (17:55 +0100)]
add() first parameter (s2) is now const

7 years agoallow msgs as parameters for whom
Philipp Takacs [Sun, 5 Mar 2017 16:55:00 +0000 (17:55 +0100)]
allow msgs as parameters for whom

now you can write ``whom c'' instand of ``whom `mhpath c`''

7 years agoquote path variables in whatnow2.sh
Philipp Takacs [Fri, 17 Feb 2017 15:05:57 +0000 (16:05 +0100)]
quote path variables in whatnow2.sh

without qoutes this causes error with spaces or other
special charecter in the path or filename.

7 years agomake dateparsing case insensitive
Philipp Takacs [Sun, 1 Jan 2017 20:57:07 +0000 (21:57 +0100)]
make dateparsing case insensitive

Acourding to RFC 5322 and 5234 the date field
is case insenitive

7 years agomhparse add support for CRLF
Philipp Takacs [Fri, 25 Nov 2016 12:38:04 +0000 (13:38 +0100)]
mhparse add support for CRLF

multipart mime content wasn't able to parse, if the
mail use CRLF line endings.

7 years agoAccept binary encoding for messages/*
Philipp Takacs [Tue, 22 Nov 2016 16:15:58 +0000 (17:15 +0100)]
Accept binary encoding for messages/*

Acording to RFC 2046 binary encoding is allowed for messages/*.
Also ignore other encodings.

7 years agomhsign manpage: mention hostname bug
mor0ious@gmail.com [Thu, 5 Jan 2017 15:35:22 +0000 (08:35 -0700)]
mhsign manpage: mention hostname bug

7 years agowhatnow2: remove get_attachmentheader()
Dmitry Bogatov [Fri, 16 Sep 2016 12:22:28 +0000 (15:22 +0300)]
whatnow2: remove get_attachmentheader()

7 years agoRemove unused code
Dmitry Bogatov [Thu, 8 Sep 2016 10:03:52 +0000 (13:03 +0300)]
Remove unused code

The unsude code is: struct zone, macro strbase64, macro isatom,
function unset_unseen(), function pref_encoding(), function cpydgst(),
macro base64len

7 years agoGrammer and layout fixes anno.man1
Larry Hynes [Tue, 13 Dec 2016 20:14:12 +0000 (20:14 +0000)]
Grammer and layout fixes anno.man1

7 years agoGrammer and layout fixes in ali.man1
Larry Hynes [Tue, 13 Dec 2016 20:14:12 +0000 (20:14 +0000)]
Grammer and layout fixes in ali.man1

7 years agofix bug in whatnow2 attach
Philipp Takacs [Sun, 25 Sep 2016 20:40:46 +0000 (22:40 +0200)]
fix bug in whatnow2 attach

7 years agoredesign version string
Philipp Takacs [Sun, 4 Sep 2016 12:12:00 +0000 (14:12 +0200)]
redesign version string

Now we have two version nummbers one for the tool
and one for the lib. Also the version number is changed
everytime the object is rebuild.

7 years agoFix segfault in mhstore
markus schnalke [Mon, 12 Sep 2016 12:54:17 +0000 (14:54 +0200)]
Fix segfault in mhstore

The bug was introduced by 6306992cd580d47c217edb1ae98d58b24d5be8c9
It didn't handle MIME parts without Content-Disposition headers.

7 years agoFix repllistcomps: use the correct header
markus schnalke [Thu, 8 Sep 2016 06:54:52 +0000 (08:54 +0200)]
Fix repllistcomps: use the correct header

7 years agoNo need to define the month and day names a second time
markus schnalke [Wed, 7 Sep 2016 20:59:21 +0000 (22:59 +0200)]
No need to define the month and day names a second time

... just use the definition that already is available.

7 years agoAdd support for simplified ISO 8601/RFC 3339 dates
markus schnalke [Wed, 7 Sep 2016 20:41:06 +0000 (22:41 +0200)]
Add support for simplified ISO 8601/RFC 3339 dates

It is now possible to use:
pick -after 2016-02-15 -and -before 2016-08-31T16:30:00+02:00

At the same time drop support for the highly ambiguous date format
XX-XX-YY.

7 years agoReplace lookup tables for obscure hashes with more readable code
markus schnalke [Wed, 7 Sep 2016 14:31:58 +0000 (16:31 +0200)]
Replace lookup tables for obscure hashes with more readable code

Time-performance doesn't matter here. If you think differently,
demonstrate it convincingly!

7 years agoRemove not used code (JLR define)
markus schnalke [Wed, 7 Sep 2016 05:52:38 +0000 (07:52 +0200)]
Remove not used code (JLR define)

I don't yet understand what the code does but we've never used
it and didn't miss it, thus it appears to be a good decision to
just remove it.

7 years agofix build in a diffrent folder
Philipp Takacs [Tue, 6 Sep 2016 23:14:42 +0000 (01:14 +0200)]
fix build in a diffrent folder

Build in diffrent folder is a feature required by
the test suite.

This is a fixup for commit 94ac6bb

7 years agoFactor trim format function out
markus schnalke [Tue, 6 Sep 2016 18:10:28 +0000 (20:10 +0200)]
Factor trim format function out

Also clarify that it trims both, leading and trailing whitespace.

(Note that it is a special trim function. We cannot simply replace
it with sbr/trim.c. Nonetheless, its readability is somehow bad.)

7 years agoAdd %(unmailto) format function for List-Post headers
markus schnalke [Tue, 6 Sep 2016 17:53:20 +0000 (19:53 +0200)]
Add %(unmailto) format function for List-Post headers

With the unmailto format function it is possible to extract
the address from a List-Post header, which e.g. is:
List-Post: <mailto:mmh@marmaro.de>
Applying  %(unmailto{list-post})  extracts: ``mmh@marmaro.de'',
which then can be used as recipient address for list replies.
A format file (to be used with ``repl -form repllistcomps'')
is included.

7 years agoGenerate the command list in mmh-intro(7)
markus schnalke [Tue, 6 Sep 2016 05:58:17 +0000 (07:58 +0200)]
Generate the command list in mmh-intro(7)

This implementation does handle the aliases of folder(1) and
flist(1), but not the ones of show(1) and new(1). Hence the
commands next(1), prev(1), fnext(1), fprev(1) and unseen(1)
don't appear on the list.

Adjusted some of the short descriptions based on the version
in the manual command list.

7 years agoMake mhstore(1) use "filename" attr of Content-Disposition
markus schnalke [Mon, 5 Sep 2016 09:51:00 +0000 (11:51 +0200)]
Make mhstore(1) use "filename" attr of Content-Disposition

Before, only the "name" attr of Content-Type was used as the filename
to store attachments. The "filename" attr of Content-Disposition
(which is the much more appropriate value) was ignored, thus often
resulting in the attachment being stored with a default name like
20.2.pdf, for instance.

7 years agoremove msg-hook config option
Philipp Takacs [Wed, 31 Aug 2016 15:21:15 +0000 (17:21 +0200)]
remove msg-hook config option

This is removed, because I don't see this is necesarry and it's
not a good idea to pass a user provided string direct in a
format string.

7 years agoFix unreproducible build
Dmitry Bogatov [Mon, 29 Aug 2016 23:35:43 +0000 (02:35 +0300)]
Fix unreproducible build

Hostname and date of compilation are no longer embeded in version
string. See https://reproducible-builds.org

7 years agoFix spelling errors, including binaries ones
Dmitry Bogatov [Sat, 27 Aug 2016 08:06:00 +0000 (11:06 +0300)]
Fix spelling errors, including binaries ones

Signed-off-by: Dmitry Bogatov <KAction@gnu.org>

7 years agoFix missing va_end call in uip/mhmisc.c
Dmitry Bogatov [Sat, 27 Aug 2016 08:40:15 +0000 (11:40 +0300)]
Fix missing va_end call in uip/mhmisc.c

7 years agoFix misspelled variable in uip/whatnow2.sh
Philipp Takacs [Sat, 27 Aug 2016 21:17:35 +0000 (23:17 +0200)]
Fix misspelled variable in uip/whatnow2.sh

This make the error message better

7 years agoFix out-of-bounds error when incorporating email from stdin
Dmitry Bogatov [Fri, 26 Aug 2016 23:03:28 +0000 (02:03 +0300)]
Fix out-of-bounds error when incorporating email from stdin

Before this patch, if +inbox is empty, following error happened:

$ inc -file - < /dev/null

Incorporating new mail into inbox...

inc: no messages incorporated, continuing...
inc: Bug: message out of bounds

This happened due improper call to `seq_setunseen', which implicitly
assumed that there is at least one message (it does not handle case
where both mp->hghmsg and mh->lowmsg are 0).

Bug does not happens with command `inc -file empty', since file
is checked for being empty before any read attempts.

Signed-off-by: Dmitry Bogatov <KAction@gnu.org>

7 years agoFix FILE resource leaks in uip/distsbr.c
Dmitry Bogatov [Sat, 27 Aug 2016 08:37:28 +0000 (11:37 +0300)]
Fix FILE resource leaks in uip/distsbr.c

7 years agoadd Sendmail option to spost manpage
Philipp Takacs [Wed, 24 Aug 2016 12:46:26 +0000 (14:46 +0200)]
add Sendmail option to spost manpage

Thanks Dmitry Bogatov

7 years agoadd uip/whatnow2 to .gitignore
Philipp Takacs [Tue, 23 Aug 2016 15:04:12 +0000 (17:04 +0200)]
add uip/whatnow2 to .gitignore

7 years agoBump version number
Philipp Takacs [Sun, 14 Aug 2016 22:35:23 +0000 (00:35 +0200)]
Bump version number

7 years agoThis is mmh-0.3 mmh-0.3
Philipp Takacs [Sun, 14 Aug 2016 22:21:12 +0000 (00:21 +0200)]
This is mmh-0.3

7 years agofix whatnow2 send
Philipp Takacs [Sun, 14 Aug 2016 22:11:39 +0000 (00:11 +0200)]
fix whatnow2 send

in the last commit whatnow2 send was changed
to keep the metafile. This don't work with the
``exec send''. Now the send() is renamed to
sendfunktion and the ``exec'' is removed.

7 years agodel metafile in whatnow2 only if send don't fail
Philipp Takacs [Sun, 14 Aug 2016 20:36:55 +0000 (22:36 +0200)]
del metafile in whatnow2 only if send don't fail

If send fails, you want to keep the metafile. Without this dist wold
only work, if send works on the first time. Also some metainfo don't
get lost.

7 years agotouch the DISTINCLUDE in mmhdist target
Philipp Takacs [Sun, 14 Aug 2016 15:31:50 +0000 (17:31 +0200)]
touch the DISTINCLUDE in mmhdist target

This avoids rebuilding this files. So autoconf and flex
is not need for a normal user.

7 years agoAdd "delete" to "delete" pattern in whatnow2's case construct
m@mmmmarascio.xyz [Fri, 12 Aug 2016 16:00:05 +0000 (09:00 -0700)]
Add "delete" to "delete" pattern in whatnow2's case construct

The attached patch modifies whatnow2 so that calling `whatnow2 delete`
works as may be expected.  Without this change, the "delete" function
in whatnow2 was called only when whatnow2 was executed as one of the
following.

* whatnow2 del
* whatnow2 dele
* whatnow2 delet

7 years agobetter error handling in whatnow2
Philipp Takacs [Fri, 12 Aug 2016 16:11:11 +0000 (18:11 +0200)]
better error handling in whatnow2

if the command is unknown then usage is printed and if usage is
called with an argument other then 0 exit 1 is forced.

7 years agofix bug in decode_rfc2047()
Philipp Takacs [Fri, 12 Aug 2016 15:43:05 +0000 (17:43 +0200)]
fix bug in decode_rfc2047()

If iconv() returns an error and the source encoding
is utf-8, the character jump has an of by one: the
source string is incresed by one possition more the
the length is decreased.

7 years agoUpdate comment in script concerning the VCS
markus schnalke [Fri, 12 Aug 2016 08:07:07 +0000 (10:07 +0200)]
Update comment in script concerning the VCS

We're not using CVS anymore, but a VCS -- doesn't matter which one.

7 years agofix dist
Philipp Takacs [Thu, 11 Aug 2016 15:22:49 +0000 (17:22 +0200)]
fix dist

Because of always mimeify the dist hasn't work anymore.
This is fixed by skipping attach() and signandenc(), if
it's handled as a redistribution message.

7 years agoAdd more tests to tests/test-send-mimeify
markus schnalke [Wed, 10 Aug 2016 17:25:53 +0000 (19:25 +0200)]
Add more tests to tests/test-send-mimeify

7 years agoFix typo in whatnow2 function "display"
m@mmmmarascio.xyz [Mon, 8 Aug 2016 23:14:50 +0000 (16:14 -0700)]
Fix typo in whatnow2 function "display"

The attached patch fixes a typo in the whatnow2's "display" function.
[ -z instand of [ -n for a check if a variable is empty.

7 years agoadd a test for repl on a ASCII only system
Philipp Takacs [Sun, 7 Aug 2016 19:57:30 +0000 (21:57 +0200)]
add a test for repl on a ASCII only system

This should create the same output as with utf-8.
But the Umlaut should be displayed as '?'. This isn't
the case at the moment.

7 years agoFix typo in whatnow2.sh
m@mmmmarascio.xyz [Sat, 6 Aug 2016 21:13:18 +0000 (14:13 -0700)]
Fix typo in whatnow2.sh

command call is done with `command` not "command"

7 years agoTest if MIME creation works
Philipp Takacs [Sat, 6 Aug 2016 16:08:58 +0000 (18:08 +0200)]
Test if MIME creation works

Test if send uses mhbuild only, if it is usefull. A message
already in MIME-Formate should not cause a fail.

7 years agounset MM_CHARSET in tests/scan/test-scan-multibyte
Philipp Takacs [Sat, 6 Aug 2016 15:07:11 +0000 (17:07 +0200)]
unset MM_CHARSET in tests/scan/test-scan-multibyte

If MM_CHARSET is set to anything other then ascii this
test probaly fail, but the test is mean to run on a ascii
only envirement.

7 years agoAdjust tests/bad-input/test-header for m_gefld2()
Philipp Takacs [Sat, 6 Aug 2016 15:05:57 +0000 (17:05 +0200)]
Adjust tests/bad-input/test-header for m_gefld2()

With the m_gefld2 change mmh ignores more errors. This causes
a diffrent behaviour in some cases.

7 years agoFix tests/mhparam/test-mhparam
m@mmmmarascio.xyz [Fri, 5 Aug 2016 02:15:42 +0000 (19:15 -0700)]
Fix tests/mhparam/test-mhparam

The behaviour of readconfig() has changed. This causes
another behaviour for mhparam.

7 years agosend: Always MIMEify and pass already MIMIfied drafts through
markus schnalke [Fri, 5 Aug 2016 19:46:55 +0000 (21:46 +0200)]
send: Always MIMEify and pass already MIMIfied drafts through

Even if technically not necessary, MIMEify the draft. This simplifies
the code at hardly any cost.

To still be able to create arbitrary complex MIME structures, make
send(1) pass already MIMEified drafts through, without automatically
invoking mhbuild(1) on them a second time (which would fail). This
way, you can manually invoke mhbuild(1) and afterward call send(1)
... and everything will work just as expected.

Also documented this in the man page, and additionally added a
paragraph about the signing and encrypting feature of send(1), which
wasn't documented yet.

7 years agomhsign should work now
Philipp Takacs [Mon, 1 Aug 2016 11:14:47 +0000 (13:14 +0200)]
mhsign should work now

7 years agoAllow send(1) to send from folder other than +drafts
markus schnalke [Fri, 29 Jul 2016 09:18:36 +0000 (11:18 +0200)]
Allow send(1) to send from folder other than +drafts

This allows having multiple draft folders or queueing drafts
for automatic sending.

7 years agosome small fixes for whatnow2.sh
Philipp Takacs [Sat, 30 Jul 2016 22:05:05 +0000 (00:05 +0200)]
some small fixes for whatnow2.sh

some bugs fixes most found by markus

7 years agoEnable inc(1) to read from stdin
m@mmmmarascio.xyz [Mon, 1 Aug 2016 09:25:57 +0000 (11:25 +0200)]
Enable inc(1) to read from stdin

The -file switch handles the argument "-" special and reads
from stdin in this case.

7 years agoadd my whatnow replacement whatnow2
Philipp Takacs [Sat, 27 Feb 2016 18:58:42 +0000 (19:58 +0100)]
add my whatnow replacement whatnow2

whatnow2 is tool which acts like whatnow, but
don't trap the user in it.

7 years agomhsign/mhpgp: Clarify the manpages and usage lines
markus schnalke [Fri, 29 Jul 2016 09:42:59 +0000 (11:42 +0200)]
mhsign/mhpgp: Clarify the manpages and usage lines

These tools are shell scripts and thus have a different option
processing mechanism than the other mmh tools. Unfortunately, it
is limited: Options must come first.

Also note that mhpgp accepts a +folder argument, and what the
defaults are.

7 years agoUpdate manpages send(1) and mh-draft(7)
markus schnalke [Thu, 28 Jul 2016 22:28:58 +0000 (00:28 +0200)]
Update manpages send(1) and mh-draft(7)

Documented the actual behavior and homogenized the style.

7 years agoRemove extra space from 'From' line when writing to mbox
Vasily Kolobkov [Thu, 9 Jun 2016 12:30:30 +0000 (14:30 +0200)]
Remove extra space from 'From' line when writing to mbox

7 years agoFix header lookup table setup in slocal(1)
Vasily Kolobkov [Sun, 5 Jun 2016 22:08:14 +0000 (00:08 +0200)]
Fix header lookup table setup in slocal(1)

7 years agosimplify whatnow.c/main() function
Dmitry Bogatov [Thu, 14 Jul 2016 22:39:37 +0000 (01:39 +0300)]
simplify whatnow.c/main() function

GNU Complexity: 60 -> 59.

7 years agouse old error message
Philipp Takacs [Sun, 8 May 2016 16:40:51 +0000 (18:40 +0200)]
use old error message

7 years agodon't warn if lenerr is ignored
Philipp Takacs [Sun, 8 May 2016 16:21:34 +0000 (18:21 +0200)]
don't warn if lenerr is ignored

7 years agobetter error handling
Philipp Takacs [Mon, 25 Apr 2016 14:19:54 +0000 (16:19 +0200)]
better error handling

only warn for LENERR2, or ignore it in some cases

7 years agofork in repl as a tree
Philipp Takacs [Wed, 16 Mar 2016 02:06:03 +0000 (03:06 +0100)]
fork in repl as a tree

This fix the bug in the last improvement (pipe mail through show).
In the first patch repl only waits for one child, now the tree causes
that both childs finished befor repl continues.

7 years agofix 2fb1dd2271e5be9d0b0c9cbd4e7d6d5d51aaecb9
Philipp Takacs [Sun, 24 Apr 2016 12:19:05 +0000 (14:19 +0200)]
fix 2fb1dd2271e5be9d0b0c9cbd4e7d6d5d51aaecb9

Do a length check in the header, but not in the body.

7 years agofixup for 2a903a43ad7d26f5581d4ad1bbc077f8ecc5f5a9
Philipp Takacs [Sun, 24 Apr 2016 10:39:30 +0000 (12:39 +0200)]
fixup for 2a903a43ad7d26f5581d4ad1bbc077f8ecc5f5a9

a spell error hapend in uip/spost.c: state not status

7 years agocheck for to long lines and ioerror in spost
Philipp Takacs [Sun, 24 Apr 2016 10:29:32 +0000 (12:29 +0200)]
check for to long lines and ioerror in spost

Now spost stop and exit if some error happend. Befor this
spost stoped on an error in the body and submitted a half
mail.

7 years agocheck for linecap and trailing space in mhbuild for text/plain
Philipp Takacs [Sat, 23 Apr 2016 18:50:43 +0000 (20:50 +0200)]
check for linecap and trailing space in mhbuild for text/plain

without this a mail with too long lines can be created, or
trailing space is removed by mhsign.

7 years agoignore LENERR2 in seq_read()
Philipp Takacs [Sat, 23 Apr 2016 18:48:45 +0000 (20:48 +0200)]
ignore LENERR2 in seq_read()

this is unnecessary and brings problems because
sequences aren't created with a linecap.

7 years agoadjust handling of too long lines in m_getfld2
Philipp Takacs [Sat, 23 Apr 2016 18:46:20 +0000 (20:46 +0200)]
adjust handling of too long lines in m_getfld2

Now a field is complete read, if a line is to long.
Also no length check is done in the body, because
the caller can check f.valuelength.

7 years agoFix for commit bd02210b2be64956a952f925a2dcd35fb42f6136
markus schnalke [Sun, 24 Apr 2016 08:59:10 +0000 (10:59 +0200)]
Fix for commit bd02210b2be64956a952f925a2dcd35fb42f6136

7 years agoMerge branch 'm_getfld2-meillo' into master
Philipp Takacs [Fri, 22 Apr 2016 22:56:56 +0000 (00:56 +0200)]
Merge branch 'm_getfld2-meillo' into master

7 years agomhsign: Fix key lookup of aliases when encrypting
markus schnalke [Fri, 22 Apr 2016 10:46:33 +0000 (12:46 +0200)]
mhsign: Fix key lookup of aliases when encrypting

Now mhsign can handle addresses that contain whitespace (e.g.
``markus schnalke <meillo@marmaro.de>'') in aliases. The helper
tool ap(1) is used to extract the actual addresses.

7 years agorefile: Never change the current folder
markus schnalke [Thu, 21 Apr 2016 14:43:25 +0000 (16:43 +0200)]
refile: Never change the current folder

Refile is different to all other tools, as its +folder arguments
are destination folders, not source folders (it even supports
multiple of them). A source folder can be specified with -src.
Refile used to change the current folder to the source folder.
It does not do so anymore.

Most often the current folder is used as the source folder; this is
the default. Hence changing the current folder is a no-op. But if
one refiles from some other source folder, changing to that folder
is seldom useful. Consider the scenario where one wants to collect
the last messages of a set of folders in some other folder. The
old behavior required to know where you are to collect the messages,
because after the first refile you'd be somewhere else:

for i in one two three ; do
refile -src +$i l +lastmsgs
done
# now we are in +three, hence go back where we were
folder +lastmsgs

The new behavior allows to move the messages just here (@), no
matter where that is:

for i in one two three ; do
refile -src +one l @
done
# now we still are where we were

Refiling actions do no more affect the current folder, hence one
may securely refile with different -src +folder many times in one
row, without having to care for changing locations.

7 years agorefile: Fix an error message; always use braces; add/remove comments
markus schnalke [Thu, 21 Apr 2016 14:03:23 +0000 (16:03 +0200)]
refile: Fix an error message; always use braces; add/remove comments

7 years agoFix order of (trim) and (decode) in repl*comps
markus schnalke [Wed, 20 Apr 2016 07:02:06 +0000 (09:02 +0200)]
Fix order of (trim) and (decode) in repl*comps

Before MH had (decode), the format escapes used to be:
%(void{comp})%(trim)%(putstr)
i.e. set the internal str register to the component text, trim
trailing whitespace from it, then print the value. Later (putstr)
was simply replaced by (decode), which first RFC-2047 decodes the
string and then prints it (if it is the outermost function). That
almost always produced the correct result. But this way the
whitespace trimming is done at the wrong point. Correct is to first
decode the string and then trim it. tests/scan/test-mh-format
checks for that.

7 years agoTrim trailing whitespace in scan and show
markus schnalke [Wed, 20 Apr 2016 06:54:20 +0000 (08:54 +0200)]
Trim trailing whitespace in scan and show

This commit fixes the most common scan listings. Still trailing
whitespace will be generated by legacy scan listings.

The formatfield workaround in etc/mhl.headers is a bit clumsy.
Maybe, an mhl variable should be defined for this case ... or
better not, to keep the mh-format and the mhl functions orthogonal.

7 years agoMake default scan/inc listing file-based
markus schnalke [Wed, 20 Apr 2016 06:19:24 +0000 (08:19 +0200)]
Make default scan/inc listing file-based

There's now a new format file etc/scan.default, which contains
the default scan listing. Previously it was hard-coded as a define
in h/scansbr.h. The default scan listing format can be set in
config/config.h and can be queried with `mhparam scanformat'.

7 years agoCleanup manpage mh-format(5)
markus schnalke [Tue, 19 Apr 2016 14:15:10 +0000 (16:15 +0200)]
Cleanup manpage mh-format(5)

- More suitable scan listing examples
- Adjust paths
- There are no ``local mh experts'' anymore in the mmh world
- Add overview on the escape types
- %(decode) does print str as well
- Decode Subject header in the example
- Further minor stuff

8 years agoEnable addr decoding in replcomps and replgroupcomps
markus schnalke [Mon, 18 Apr 2016 07:13:15 +0000 (09:13 +0200)]
Enable addr decoding in replcomps and replgroupcomps

8 years agoTests: mmh currently generates a part line, so expect it
markus schnalke [Mon, 18 Apr 2016 06:47:17 +0000 (08:47 +0200)]
Tests: mmh currently generates a part line, so expect it

8 years agoFix spelling and encoding errors in manpages and an error message
Dmitry Bogatov [Wed, 13 Apr 2016 18:36:29 +0000 (21:36 +0300)]
Fix spelling and encoding errors in manpages and an error message

8 years agotest also libtinfo for modf
Jan Düpmeier [Wed, 13 Apr 2016 16:22:37 +0000 (18:22 +0200)]
test also libtinfo for modf

Some Gentoo instalations has this instand of ncurses

8 years agoReplace getcpy() and strdup() with mh_xstrdup()
m@mmmmarascio.xyz [Mon, 4 Apr 2016 04:33:34 +0000 (21:33 -0700)]
Replace getcpy() and strdup() with mh_xstrdup()

this harmonise the code.

Also fix some bugs, if return value of strdup is not checked.

8 years agosimple mbox support for rcvstore
Philipp Takacs [Sun, 31 Jan 2016 18:47:23 +0000 (19:47 +0100)]
simple mbox support for rcvstore

Some MTA(opensmtpd) add a ``From '' line ad the head of
mails befor handling the mail to a .forwoad MDA. m_getfld2
don't support such mails, so rcvstore should handle this
mbox-like mails.

8 years agoReplace free() with mh_free0()
m@mmmmarascio.xyz [Tue, 22 Mar 2016 03:28:44 +0000 (20:28 -0700)]
Replace free() with mh_free0()

mh_free0() free's the memmory and set's the pointer to NULL after
the free. This avoids doublefree and dereferenc of a non valid poiter.