aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2008-04-13 18:09:24 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2008-04-13 18:09:24 +0000
commitc4711d10e376605b3dcce187a5d7de718fe93ecf (patch)
treef62ae63ce52f592fb404fb4bb37c15fb76b56427
parent303f1ecfa93feed59f59b7e03e779d947568522a (diff)
downloadmailfromd-c4711d10e376605b3dcce187a5d7de718fe93ecf.tar.gz
mailfromd-c4711d10e376605b3dcce187a5d7de718fe93ecf.tar.bz2
New builtins: message_size, message_body_size and message_header_size
git-svn-id: file:///svnroot/mailfromd/trunk@1654 7a8a7f39-df28-0410-adc6-e0d955640f24
-rw-r--r--ChangeLog8
-rw-r--r--NEWS7
-rw-r--r--configure.ac2
-rw-r--r--doc/mailfromd.texi10
-rw-r--r--mfd/bi_msg.m454
5 files changed, 73 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 86e412d1..9267c9fd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-04-13 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * configure.ac: Require Mailutils 1.9.90
+ * doc/mailfromd.texi: Update.
+ * mfd/bi_msg.m4 (message_size, message_body_size)
+ (message_header_size): New functions.
+ * NEWS: Update.
+
2008-04-05 Sergey Poznyakoff <gray@gnu.org.ua>
* mtasim/mtasim.c: New command line options --user and --group.
diff --git a/NEWS b/NEWS
index b36010a7..00d4c805 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-Mailfromd NEWS -- history of user-visible changes. 2008-04-05
+Mailfromd NEWS -- history of user-visible changes. 2008-04-13
Copyright (C) 2005, 2006, 2007, 2008 Sergey Poznyakoff
See the end of file for copying conditions.
@@ -7,7 +7,7 @@ Please send Mailfromd bug reports to <bug-gmach@gnu.org.ua>
Version 4.9.92 (SVN)
-* Requires Mailutils 1.2.90 or better.
+* Requires Mailutils 1.9.90 or better.
* Incompatible changes
@@ -49,6 +49,7 @@ done
- number mailbox_open(string url[, string mode])
- number message_body_lines(number nmsg)
- void message_body_rewind(number nmsg)
+- number message_body_size(number nmsg)
- void message_close(number nmsg)
- number message_count_parts(number nmsg)
- string message_find_header(number nmsg, string header[, number idx])
@@ -56,11 +57,13 @@ done
- bool message_has_header(number msg, string header[, number idx])
- number message_header_count(number nmsg)
- number message_header_lines(number nmsg)
+- number message_header_size(number nmsg)
- bool message_is_multipart(number nmsg)
- number message_lines(number nmsg)
- string message_read_body_line(number nmsg)
- string message_read_line(number nmsg)
- void message_rewind(number nmsg)
+- number message_size(number nmsg)
* Changes to MFL functions
diff --git a/configure.ac b/configure.ac
index 1714319b..25b845a8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -95,7 +95,7 @@ extern char *strtok_r (char *s, const char *delim, char **save_ptr);
])
# Check for GNU Mailutils
-AM_GNU_MAILUTILS(1.2.90, [all auth sieve cfg argp], [:])
+AM_GNU_MAILUTILS(1.9.90, [all auth sieve cfg argp], [:])
save_LIBS=$LIBS
LIBS="$LIBS $MAILUTILS_LIBS"
diff --git a/doc/mailfromd.texi b/doc/mailfromd.texi
index 7e854159..3c3f37ee 100644
--- a/doc/mailfromd.texi
+++ b/doc/mailfromd.texi
@@ -740,10 +740,10 @@ undertake in order to configure and build the package.
packages on your machine:
@enumerate A
-@item GNU mailutils version 1.2.91 or newer.
+@item GNU mailutils version 1.9.90 or newer.
It is available from @uref{http://www.gnu.org/software/mailutils}.
-@FIXME{The version 1.2.91 is an alpha version. Its snapshots are
+@FIXME{The version 1.9.90 is an alpha version. Its snapshots are
available from @uref{ftp://download.gnu.org.ua/pub/alpha/mailutils}.}
@item A @acronym{DBM} library.
@@ -6162,9 +6162,9 @@ message contains several headers with the same name, optional
parameter @var{idx} may be used to select one of them. Headers are
numbered from @samp{1}.
-If no matching header is not found, raise @code{failure} exception.
-@FIXME{It should be @code{not_found}, but this requires fixing
-Mailutils.}
+If no matching header is not found, the @code{not_found} exception is
+raised. If another error occures, the @code{failure} exception is
+raised.
The returned string is a verbatim copy of the message contents. You
might need to apply the @code{unfold} function to it (@pxref{Mail
diff --git a/mfd/bi_msg.m4 b/mfd/bi_msg.m4
index 13313fa9..05c6962b 100644
--- a/mfd/bi_msg.m4
+++ b/mfd/bi_msg.m4
@@ -140,6 +140,24 @@ MF_DEFUN(message_close, VOID, NUMBER nmsg)
}
END
+/* number message_size(number nmsg) */
+MF_DEFUN(message_size, NUMBER, NUMBER nmsg)
+{
+ int rc;
+ size_t size;
+ DCL_MSG(mp, nmsg);
+
+ rc = mu_message_size(mp->msg, &size);
+ MF_ASSERT(rc == 0,
+ mfe_failure,
+ "%s", mu_strerror(rc));
+ MF_ASSERT(size < LONG_MAX,
+ mfe_range,
+ _("Message size out of representable range"));
+ MF_RETURN((long)size);
+}
+END
+
/* number message_lines(number nmsg) */
MF_DEFUN(message_lines, NUMBER, NUMBER nmsg)
{
@@ -156,6 +174,24 @@ MF_DEFUN(message_lines, NUMBER, NUMBER nmsg)
}
END
+/* number message_body_size(number nmsg) */
+MF_DEFUN(message_body_size, NUMBER, NUMBER nmsg)
+{
+ int rc;
+ size_t size;
+ DCL_BODY(mp, nmsg);
+
+ rc = mu_body_size(mp->body, &size);
+ MF_ASSERT(rc == 0,
+ mfe_failure,
+ "%s", mu_strerror(rc));
+ MF_ASSERT(size < LONG_MAX,
+ mfe_range,
+ _("Body size out of representable range"));
+ MF_RETURN((long)size);
+}
+END
+
/* number message_body_lines(number nmsg) */
MF_DEFUN(message_body_lines, NUMBER, NUMBER nmsg)
{
@@ -175,6 +211,24 @@ END
/* Headers */
+/* number message_header_size(number nmsg) */
+MF_DEFUN(message_header_size, NUMBER, NUMBER nmsg)
+{
+ int rc;
+ size_t size;
+ DCL_HDR(mp, nmsg);
+
+ rc = mu_header_size(mp->hdr, &size);
+ MF_ASSERT(rc == 0,
+ mfe_failure,
+ "%s", mu_strerror(rc));
+ MF_ASSERT(size < LONG_MAX,
+ mfe_range,
+ _("Header size out of representable range"));
+ MF_RETURN((long)size);
+}
+END
+
/* number message_header_lines(number nmsg) */
MF_DEFUN(message_header_lines, NUMBER, NUMBER nmsg)
{

Return to:

Send suggestions and report system problems to the System administrator.