[Xfce4-commits] <postler:master> Parse subject and content type of source properly
Christian Dywan
noreply at xfce.org
Mon May 31 20:24:02 CEST 2010
Updating branch refs/heads/master
to 0b9e9c2802362545d08c7711797d0ac5b3f74504 (commit)
from 323c82a406ba1fa2e183d8797bd494b2dbab3976 (commit)
commit 0b9e9c2802362545d08c7711797d0ac5b3f74504
Author: Christian Dywan <christian at twotoasts.de>
Date: Mon May 31 20:19:52 2010 +0200
Parse subject and content type of source properly
postler/postler-content.vala | 22 ++++++++++++++++------
1 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/postler/postler-content.vala b/postler/postler-content.vala
index 3e45d03..b45ed93 100644
--- a/postler/postler-content.vala
+++ b/postler/postler-content.vala
@@ -157,15 +157,25 @@ public class Postler.Content : WebKit.WebView {
if (view_source) {
body = new GLib.StringBuilder ();
while ((line = stream.read_line (null, null)) != null) {
- if (line.has_prefix ("Content-Type:"))
- content_type = line.substring (14, line.length - 14);
+ parts = line.split (":", 2);
+ if (parts != null && parts[0] != null) {
+ string field = parts[0].down ();
+ if (field == "content-type")
+ content_type = parts[1].strip ();
+ else if (field == "subject")
+ subject = parse_encoded (parts[1], out charset);
+ }
body.append (line + "\n");
}
- parts = content_type.split ("; charset=");
- if (parts != null && parts[0] != null && parts[1] != null) {
- mime_type = parts[0];
- charset = parts[1];
+ if (content_type != null) {
+ parts = content_type.split_set ("; ");
+ foreach (var part in parts) {
+ if (part.has_prefix ("charset="))
+ charset = part.substring (8, part.length - 8);
+ else if (part != "" && !part.contains ("="))
+ mime_type = part.down ();
+ }
}
if (charset == null)
charset = default_charset;
More information about the Xfce4-commits
mailing list