[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SCM] GNU Mailutils branch, master, updated. release-2.2-227-g2ad19f5
From: |
Sergey Poznyakoff |
Subject: |
[SCM] GNU Mailutils branch, master, updated. release-2.2-227-g2ad19f5 |
Date: |
Thu, 25 Nov 2010 23:15:31 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Mailutils".
http://git.savannah.gnu.org/cgit/mailutils.git/commit/?id=2ad19f568fede86dec081cf363b5fad0340b43c0
The branch, master has been updated
via 2ad19f568fede86dec081cf363b5fad0340b43c0 (commit)
from 37e95daa73d9f2b757ae77f132fb81c08f9e29c6 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 2ad19f568fede86dec081cf363b5fad0340b43c0
Author: Sergey Poznyakoff <address@hidden>
Date: Fri Nov 26 01:11:21 2010 +0200
mhn: minor improvements
* mh/mhn.c: Use _sget_ calls where appropriate. Eliminate
unnecessary memory allocations.
-----------------------------------------------------------------------
Summary of changes:
mh/mhn.c | 148 ++++++++++++++++++++++++++++++--------------------------------
1 files changed, 72 insertions(+), 76 deletions(-)
diff --git a/mh/mhn.c b/mh/mhn.c
index cf80736..5b7c2c0 100644
--- a/mh/mhn.c
+++ b/mh/mhn.c
@@ -203,7 +203,7 @@ _get_content_type (mu_header_t hdr, char **value, char
**rest)
{
if (type)
free (type);
- type = strdup ("text/plain"); /* Default. */
+ type = xstrdup ("text/plain"); /* Default. */
if (rest)
*rest = NULL;
}
@@ -229,7 +229,7 @@ _get_content_encoding (mu_header_t hdr, char **value)
{
if (encoding)
free (encoding);
- encoding = strdup ("7bit"); /* Default. */
+ encoding = xstrdup ("7bit"); /* Default. */
}
*value = encoding;
return 0;
@@ -665,7 +665,7 @@ mhn_compose_command (char *typestr, int *flags, char *file)
if (!*p)
str = NULL;
else
- str = strdup (p);
+ str = xstrdup (p);
obstack_free (&stk, NULL);
return (char*) str;
@@ -695,8 +695,7 @@ char *
mhn_show_command (mu_message_t msg, msg_part_t part, int *flags,
char **tempfile)
{
- const char *p, *str;
- char *tmp;
+ const char *p, *str, *tmp;
char *typestr, *type, *subtype, *typeargs;
struct obstack stk;
mu_header_t hdr;
@@ -772,12 +771,9 @@ mhn_show_command (mu_message_t msg, msg_part_t part, int
*flags,
case 'd':
/* content description */
- if (mu_header_aget_value (hdr, MU_HEADER_CONTENT_DESCRIPTION,
- &tmp) == 0)
- {
- obstack_grow (&stk, tmp, strlen (tmp));
- free (tmp);
- }
+ if (mu_header_sget_value (hdr, MU_HEADER_CONTENT_DESCRIPTION,
+ &tmp) == 0)
+ obstack_grow (&stk, tmp, strlen (tmp));
break;
default:
@@ -799,7 +795,7 @@ mhn_show_command (mu_message_t msg, msg_part_t part, int
*flags,
if (!*p)
str = NULL;
else
- str = strdup (p);
+ str = xstrdup (p);
obstack_free (&stk, NULL);
return (char*) str;
@@ -808,8 +804,7 @@ mhn_show_command (mu_message_t msg, msg_part_t part, int
*flags,
char *
mhn_store_command (mu_message_t msg, msg_part_t part, char *name)
{
- const char *p, *str;
- char *tmp;
+ const char *p, *str, *tmp;
char *typestr, *type, *subtype, *typeargs;
struct obstack stk;
mu_header_t hdr;
@@ -863,12 +858,9 @@ mhn_store_command (mu_message_t msg, msg_part_t part, char
*name)
case 'd':
/* content description */
- if (mu_header_aget_value (hdr, MU_HEADER_CONTENT_DESCRIPTION,
+ if (mu_header_sget_value (hdr, MU_HEADER_CONTENT_DESCRIPTION,
&tmp) == 0)
- {
- obstack_grow (&stk, tmp, strlen (tmp));
- free (tmp);
- }
+ obstack_grow (&stk, tmp, strlen (tmp));
break;
default:
@@ -890,7 +882,7 @@ mhn_store_command (mu_message_t msg, msg_part_t part, char
*name)
if (!*p)
str = NULL;
else
- str = strdup (p);
+ str = xstrdup (p);
obstack_free (&stk, NULL);
return (char*) str;
@@ -900,13 +892,13 @@ mhn_store_command (mu_message_t msg, msg_part_t part,
char *name)
/* ************************* Auxiliary functions ************************** */
static void
-split_args (char *argstr, int *pargc, char ***pargv)
+split_args (const char *argstr, size_t len, int *pargc, char ***pargv)
{
struct mu_wordsplit ws;
ws.ws_delim = ";";
- if (mu_wordsplit (argstr, &ws,
- MU_WRDSF_DEFFLAGS | MU_WRDSF_DELIM | MU_WRDSF_WS))
+ if (mu_wordsplit_len (argstr, len, &ws,
+ MU_WRDSF_DEFFLAGS | MU_WRDSF_DELIM | MU_WRDSF_WS))
{
mu_error (_("cannot split line `%s': %s"), argstr,
mu_wordsplit_strerror (&ws));
@@ -938,7 +930,7 @@ _message_is_external_body (mu_message_t msg, char ***env)
if (rc && env)
{
int c;
- split_args (argstr, &c, env);
+ split_args (argstr, strlen (argstr), &c, env);
}
free (typestr);
@@ -1001,7 +993,7 @@ get_extbody_params (mu_message_t msg, char **content, char
**descr)
{
p = mu_str_skip_class (buf + sizeof (MU_HEADER_CONTENT_DESCRIPTION),
MU_CTYPE_SPACE);
- *descr = strdup (p);
+ *descr = xstrdup (p);
}
else if (content
&& mu_c_strncasecmp (buf, MU_HEADER_CONTENT_TYPE ":",
@@ -1013,7 +1005,7 @@ get_extbody_params (mu_message_t msg, char **content,
char **descr)
q = strchr (p, ';');
if (q)
*q = 0;
- *content = strdup (p);
+ *content = xstrdup (p);
}
}
mu_stream_destroy (&stream);
@@ -1194,12 +1186,9 @@ list_handler (mu_message_t msg, msg_part_t part, char
*type, char *encoding,
if (mu_message_get_header (msg, &hdr) == 0)
{
- char *descr;
- if (mu_header_aget_value (hdr, "Content-Description", &descr) == 0)
- {
- printf (" %s", descr);
- free (descr);
- }
+ const char *descr;
+ if (mu_header_sget_value (hdr, "Content-Description", &descr) == 0)
+ printf (" %s", descr);
}
printf ("\n");
@@ -2060,7 +2049,8 @@ edit_forw (char *cmd, struct compose_env *env,
mu_message_t *pmsg, int level)
mu_header_t hdr;
mu_mime_t mime;
mu_message_t msg;
- char *val, *newval;
+ const char *val;
+ char *newval;
skipws (cmd);
while (stop == 0 && status == 0 && *cmd)
@@ -2151,13 +2141,12 @@ edit_forw (char *cmd, struct compose_env *env,
mu_message_t *pmsg, int level)
mu_mime_get_message (mime, &msg);
mu_message_get_header (msg, &hdr);
- mu_header_aget_value (hdr, MU_HEADER_CONTENT_TYPE, &val);
+ mu_header_sget_value (hdr, MU_HEADER_CONTENT_TYPE, &val);
sp = strchr (val, ';');
if (!sp)
abort ();
mu_asprintf (&newval, "multipart/digest%s", sp);
mu_header_set_value (hdr, MU_HEADER_CONTENT_TYPE, newval, 1);
- free (val);
free (newval);
if (!id)
@@ -2246,11 +2235,11 @@ edit_mime (char *cmd, struct compose_env *env,
mu_message_t *msg, int level)
_get_content_type (hdr, &typestr, NULL);
split_content (typestr, &type, &subtype);
if (mu_c_strcasecmp (type, "message") == 0)
- encoding = strdup ("7bit");
+ encoding = xstrdup ("7bit");
else if (mu_c_strcasecmp (type, "text") == 0)
- encoding = strdup ("quoted-printable");
+ encoding = xstrdup ("quoted-printable");
else
- encoding = strdup ("base64");
+ encoding = xstrdup ("base64");
mu_header_set_value (hdr, MU_HEADER_CONTENT_TRANSFER_ENCODING, encoding,
1);
free (typestr);
free (type);
@@ -2278,7 +2267,7 @@ edit_mime (char *cmd, struct compose_env *env,
mu_message_t *msg, int level)
}
static int
-has_nonascii (char *buf, size_t n)
+has_nonascii (const char *buf, size_t n)
{
size_t i;
for (i = 0; i < n; i++)
@@ -2441,55 +2430,61 @@ mhn_edit (struct compose_env *env, int level)
}
int
-parse_header_directive (char *val, char **encoding, char **charset, char
**subject)
+parse_header_directive (const char *val, char **encoding, char **charset,
+ char **subject)
{
- char *p;
+ const char *p;
/* Provide default values */
*encoding = NULL;
*charset = NULL;
- *subject = val;
+ *subject = NULL;
if (*val != '#')
- return 1;
+ {
+ *subject = xstrdup (val);
+ return 1;
+ }
val++;
switch (*val)
{
case '#':
- *subject = val;
- return 1;
+ break;
case '<':
- for (p = val; *p; p++)
- if (*p == '>')
- {
- int i, argc;
- char **argv;
+ p = strchr (val, '>');
+ if (p)
+ {
+ int i, argc;
+ char **argv;
- *subject = p + 1;
- *p = 0;
- split_args (val + 1, &argc, &argv);
- for (i = 0; i < argc; i++)
- {
- if (strlen (argv[i]) > 8
- && memcmp (argv[i], "charset=", 8) == 0)
- {
- free (*charset);
- *charset = strdup (argv[i] + 8);
- }
- else if (strlen (argv[i]) > 9
- && memcmp (argv[i], "encoding=", 9) == 0)
- {
- free (*encoding);
- *encoding = strdup (argv[i] + 9);
- }
- }
- mu_argcv_free (argc, argv);
- return 0;
- }
+ *subject = xstrdup (p + 1);
+ split_args (val + 1, p - val - 1, &argc, &argv);
+ for (i = 0; i < argc; i++)
+ {
+ if (strlen (argv[i]) > 8
+ && memcmp (argv[i], "charset=", 8) == 0)
+ {
+ free (*charset);
+ *charset = xstrdup (argv[i] + 8);
+ }
+ else if (strlen (argv[i]) > 9
+ && memcmp (argv[i], "encoding=", 9) == 0)
+ {
+ free (*encoding);
+ *encoding = xstrdup (argv[i] + 9);
+ }
+ }
+ mu_argcv_free (argc, argv);
+ return 0;
+ }
break;
+
+ default:
+ val--;
}
+ *subject = xstrdup (val);
return 1;
}
@@ -2498,10 +2493,10 @@ void
mhn_header (mu_message_t msg, mu_message_t omsg)
{
mu_header_t hdr = NULL;
- char *val;
+ const char *val;
mu_message_get_header (msg, &hdr);
- if (mu_header_aget_value (hdr, MU_HEADER_SUBJECT, &val) == 0)
+ if (mu_header_sget_value (hdr, MU_HEADER_SUBJECT, &val) == 0)
{
char *subject, *encoding, *charset;
@@ -2530,12 +2525,12 @@ mhn_header (mu_message_t msg, mu_message_t omsg)
int i, argc;
char **argv;
- split_args (typeargs, &argc, &argv);
+ split_args (typeargs, strlen (typeargs), &argc, &argv);
for (i = 0; i < argc; i++)
if (strlen (argv[i]) > 8
&& memcmp (argv[i], "charset=", 8) == 0)
{
- charset = strdup (argv[i]+8);
+ charset = xstrdup (argv[i]+8);
break;
}
mu_argcv_free (argc, argv);
@@ -2553,7 +2548,7 @@ mhn_header (mu_message_t msg, mu_message_t omsg)
if (!encoding || strcmp (encoding, "7bit") == 0)
{
free (encoding);
- encoding = strdup ("base64");
+ encoding = xstrdup ("base64");
}
rc = mu_rfc2047_encode (charset, encoding, subject, &p);
if (rc)
@@ -2567,6 +2562,7 @@ mhn_header (mu_message_t msg, mu_message_t omsg)
}
free (charset);
free (encoding);
+ free (subject);
}
}
hooks/post-receive
--
GNU Mailutils
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] GNU Mailutils branch, master, updated. release-2.2-227-g2ad19f5,
Sergey Poznyakoff <=