aboutsummaryrefslogtreecommitdiffstats
path: root/composer
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@src.gnome.org>2008-12-11 02:30:29 +0800
committerMatthew Barnes <mbarnes@src.gnome.org>2008-12-11 02:30:29 +0800
commitd158af8cdfa6e4bf85c1e74769e8d61bc469494c (patch)
treeba55b970ae3a23e5ade4edbddc4eb8dcaf3033bd /composer
parentdc0d0ee010319425b19d8d8d493f0bc489d5fd07 (diff)
downloadgsoc2013-evolution-d158af8cdfa6e4bf85c1e74769e8d61bc469494c.tar
gsoc2013-evolution-d158af8cdfa6e4bf85c1e74769e8d61bc469494c.tar.gz
gsoc2013-evolution-d158af8cdfa6e4bf85c1e74769e8d61bc469494c.tar.bz2
gsoc2013-evolution-d158af8cdfa6e4bf85c1e74769e8d61bc469494c.tar.lz
gsoc2013-evolution-d158af8cdfa6e4bf85c1e74769e8d61bc469494c.tar.xz
gsoc2013-evolution-d158af8cdfa6e4bf85c1e74769e8d61bc469494c.tar.zst
gsoc2013-evolution-d158af8cdfa6e4bf85c1e74769e8d61bc469494c.zip
Merge revisions 36811:36865 from trunk.
svn path=/branches/kill-bonobo/; revision=36867
Diffstat (limited to 'composer')
-rw-r--r--composer/ChangeLog7
-rw-r--r--composer/e-msg-composer.c9
2 files changed, 14 insertions, 2 deletions
diff --git a/composer/ChangeLog b/composer/ChangeLog
index b258637da4..7a08fc49ae 100644
--- a/composer/ChangeLog
+++ b/composer/ChangeLog
@@ -1,3 +1,10 @@
+2008-12-04 Matthew Barnes <mbarnes@redhat.com>
+
+ ** Fixes bug #562886
+
+ * e-msg-composer (handle_mailto):
+ Don't double-decode attachment URIs. Also, parse &amp; correctly.
+
2008-11-07 Srinivasa Ragavan <sragavan@novell.com>
** Fix for bug #559701
diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c
index 5d2c8b8c73..f6929710ef 100644
--- a/composer/e-msg-composer.c
+++ b/composer/e-msg-composer.c
@@ -3888,16 +3888,19 @@ handle_mailto (EMsgComposer *composer, const gchar *mailto)
clen = strcspn (p, "&");
content = g_strndup (p, clen);
- camel_url_decode (content);
if (!g_ascii_strcasecmp (header, "to")) {
+ camel_url_decode (content);
to = add_recipients (to, content);
} else if (!g_ascii_strcasecmp (header, "cc")) {
+ camel_url_decode (content);
cc = add_recipients (cc, content);
} else if (!g_ascii_strcasecmp (header, "bcc")) {
+ camel_url_decode (content);
bcc = add_recipients (bcc, content);
} else if (!g_ascii_strcasecmp (header, "subject")) {
g_free (subject);
+ camel_url_decode (content);
if (g_utf8_validate (content, -1, NULL)) {
subject = content;
content = NULL;
@@ -3911,6 +3914,7 @@ handle_mailto (EMsgComposer *composer, const gchar *mailto)
}
} else if (!g_ascii_strcasecmp (header, "body")) {
g_free (body);
+ camel_url_decode (content);
if (g_utf8_validate (content, -1, NULL)) {
body = content;
content = NULL;
@@ -3944,6 +3948,7 @@ handle_mailto (EMsgComposer *composer, const gchar *mailto)
/* ignore */
} else {
/* add an arbitrary header? */
+ camel_url_decode (content);
e_msg_composer_add_header (composer, header, content);
}
@@ -3952,7 +3957,7 @@ handle_mailto (EMsgComposer *composer, const gchar *mailto)
p += clen;
if (*p == '&') {
p++;
- if (!strcmp (p, "amp;"))
+ if (!g_ascii_strncasecmp (p, "amp;", 4))
p += 4;
}
}