[bug-mailutils] GNU Mailutils 1.2 released (GPLv3)

From:

Sergey Poznyakoff

Subject:

[bug-mailutils] GNU Mailutils 1.2 released (GPLv3)

Date:

Fri, 29 Jun 2007 20:15:29 +0300

Greetings,
The GNU Mailutils team is pleased to announce the release of
GNU Mailutils 1.2. This release is a part of the releasing of
version 3 of the GNU General Public License. It is available for download
via anonymous FTP from
ftp://ftp.gnu.org/gnu/mailutils/
and from mirrors worldwide -- see <http://www.gnu.org/order/ftp.html>.
The available files and their MD5 checksums are:
0a5bf84e908f15343414c6a95118a373 mailutils-1.2.tar.bz2
4ae27d9a0fe79633e33a1c41e4897a41 mailutils-1.2.tar.gz
More information about the package is available from the following
locations:
http://www.gnu.org/directory/mailutils.htmlhttp://www.gnu.org/software/mailutils
Please email bugs or suggestions to <address@hidden>.
The list of noteworthy changes follows:
* GPLv3
The programs in this release are licensed under GNU General Public License
version 3. The libraries are covered by GNU Lesser General Public License
version 3.
* `libmailbox' library
** mu_stream_wait and mu_fd_wait allow to wait for exceptional conditions.
** maildir and mh repositories are created if MU_STREAM_CREAT flag is supplied.
** Fix coredump in argcv, which was triggered by input line consisting of
a single double-quote character.
** Fix inconsistency in decoding MIME messages: the CRLF preceding the
encapsulation line is conceptually attached to the boundary, as
requested by RFC 1521.
** Three kinds of accessors.
Each MU object has now three kind of accessors. The `sget' accessor
returns a pointer to the immutable memory allocated inside the object
and holding its string representation. The `aget' accessor allocates
new memory chunk, copies there the string representation of the object
and returns the pointer to the allocated memory. Finally, the `get'
accessor copies the string representation to the character buffer
supplied by the caller. For example:
const char *s;
mu_header_sget_value (hdr, "From", &s);
char *s
mu_header_aget_value (hdr, "From", &s);
[...]
free (s);
char buf[SIZE];
size_t size;
mu_header_get_value (hdr, "From", buf, sizeof buf, &size);
** RFC2822 Headers.
The RFC 2822 headers support has been rewritten from scratch. The
accessor functions are able to return a given header instance in case
of multiple headers, something which was impossible in the earlier
Mailutils releases. These new functions are given identifiers, ending
with `_n', for example:
int mu_header_sget_value_n (mu_header_t header,
const char *name, int n, const char **retval);
The `n' argument gives the ordinal number (1-based) of the header to return.
For example, to get the topmost 'Recieved' header:
mu_header_sget_value_n (header, "Received", 1, &str);
To count headers from the bottom up, pass negative value of `n',
e.g. to get the last 'Recieved' header:
mu_header_sget_value_n (header, "Received", -1, &str);
For backward compatibility, traditional header accessors are still
provided, being implemented as macros that expand to the
corresponding `_n' style accessors.
Important note: `mu_header_aget_value' does not allocate any memory
if the requested header was not found. This differs from its behavior
in previous releases, where it used to return a pointer to an empty
string ("") in that case.
New functions are provided for adding and replacing headers:
- int mu_header_prepend (mu_header_t header, const char *name, const char *val)
Prepends header `name: val' to the existing headers;
- int mu_header_append (mu_header_t header, const char *name, const char *val)
Appends header `name: val' to the existing headers
- int mu_header_insert (mu_header_t header, const char *name, const char *val,
const char *ref, int num, int flags)
Inserts header `name: val'. The insertion position is determined by
the last three arguments:
-- If flags is MU_HEADER_REPLACE and the header with the same name
exists, it is replaced by the new header. Otherwise:
-- If ref == NULL, the header is added before the existing ones;
-- If ref is not NULL, the new header is inserted after `num'th
occurrence of the header named `ref'. If flags is
MU_HEADER_BEFORE, it is inserted before that occurrence.
** New functions `mu_address_set_local_part', `mu_address_set_domain',
`mu_address_set_route', `mu_address_set_email'
* The `mail.local' utility
The program can be run by a non-privileged user. Thus, it can be used with
`fetchmail' and similar utilities.
Any changes to message headers done by Sieve filters are reflected in
the delivered message.
* The `mail' utility:
Fix bugs in `pipe' command: the cmd variable setting
and single-argument invocation were handled incorrectly
Fix coredump in `send' command.
** Empty messages
The handling of empty messages by the `mail' utility is controlled by the
bollean variable `nullbody'. If it is set (the default), the message
is sent and the warning ``Null message body; hope that's ok'' is
issued. This is compatible with other mail implementations. The exact
message displayed in this case is set by `nullbodymsg' variable.
If `nullbody' is unset, the message is silently ignored. This is
useful, in particular, in crontab files.
* The `readmsg' utility.
Improve compatibility with elm's implementation. In particular -w
'From_' will now output `From ' markers. If the underlying mailbox
format does not contain those, `readmsg' will try to construct them
from the available data.
* The `pop3d' utility.
New options `--bulletin-db' and `--bulletin-source' implement bulletin
facility.
* MH changes
** sortm uses stable sort algorithm.
** send supports `--split'. The new option `--chunksize' allows to
set size of chunks to split the message into. The default size is
48032 (632 lines, each of 76 bytes).
* Support for old DBM has been withdrawn.
Regards,
Sergey