summaryrefslogtreecommitdiff
path: root/libmailutils/base
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2010-12-11 21:05:57 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2010-12-11 21:05:57 +0200
commitbd8b9b7977e8d1bc2cd09877b5050a758f1cc56f (patch)
tree1c71928db6cea2a3514c337a5ff41e99f7a06cde /libmailutils/base
parentdf07ce7dc7115193dac0b1f15a1dfa1d338e540d (diff)
downloadmailutils-bd8b9b7977e8d1bc2cd09877b5050a758f1cc56f.tar.gz
mailutils-bd8b9b7977e8d1bc2cd09877b5050a758f1cc56f.tar.bz2
mh,maildir: Minor fix.
* libmailutils/base/amd.c (amd_envelope_date): Remove the trailing newline from the ctime output.
Diffstat (limited to 'libmailutils/base')
-rw-r--r--libmailutils/base/amd.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/libmailutils/base/amd.c b/libmailutils/base/amd.c
index 9f9501662..b41ff21cb 100644
--- a/libmailutils/base/amd.c
+++ b/libmailutils/base/amd.c
@@ -1885,7 +1885,9 @@ amd_envelope_date (mu_envelope_t envelope, char *buf, size_t len,
mu_message_t msg = mu_envelope_get_owner (envelope);
struct _amd_message *mhm = mu_message_get_owner (msg);
mu_header_t hdr = NULL;
- char *date;
+ const char *date;
+ char datebuf[25]; /* Buffer for the output of ctime (terminating nl being
+ replaced by 0) */
int status;
if (mhm == NULL)
@@ -1893,8 +1895,8 @@ amd_envelope_date (mu_envelope_t envelope, char *buf, size_t len,
if ((status = mu_message_get_header (msg, &hdr)) != 0)
return status;
- if (mu_header_aget_value (hdr, MU_HEADER_ENV_DATE, &date)
- && mu_header_aget_value (hdr, MU_HEADER_DELIVERY_DATE, &date))
+ if (mu_header_sget_value (hdr, MU_HEADER_ENV_DATE, &date)
+ && mu_header_sget_value (hdr, MU_HEADER_DELIVERY_DATE, &date))
return MU_ERR_NOENT;
else
{
@@ -1903,10 +1905,11 @@ amd_envelope_date (mu_envelope_t envelope, char *buf, size_t len,
/* Convert to ctime format */
rc = mu_parse_date (date, &t, NULL); /* FIXME: TZ info is lost */
- free (date);
if (rc)
return MU_ERR_NOENT;
- date = strdup (ctime (&t));
+ memcpy (datebuf, ctime (&t), sizeof (datebuf) - 1);
+ datebuf[sizeof (datebuf) - 1] = 0; /* Kill the terminating newline */
+ date = datebuf;
}
/* Format: "sender date" */
@@ -1925,8 +1928,6 @@ amd_envelope_date (mu_envelope_t envelope, char *buf, size_t len,
else
len = strlen (date);
- free (date);
-
if (psize)
*psize = len;
return 0;

Return to:

Send suggestions and report system problems to the System administrator.