: mimeinfo->encoding_type;
gchar lastline[BUFFSIZE];
memset(lastline, 0, BUFFSIZE);
-
+
cm_return_val_if_fail(mimeinfo != NULL, FALSE);
if (prefs_common.respect_flowed_format &&
))
return TRUE;
+ if (mimeinfo->type == MIMETYPE_MULTIPART || mimeinfo->type == MIMETYPE_MESSAGE)
+ return TRUE;
+
infp = procmime_fopen(mimeinfo->data.filename, "rb");
if (!infp) {
perror("fopen");
src_codeset = CS_GB18030;
else if (!forced_charset && src_codeset && !strcasecmp(src_codeset, CS_GB2312))
src_codeset = CS_GB18030;
+ else if (!forced_charset && src_codeset && !strcasecmp(src_codeset, CS_X_VIET_VPS))
+ src_codeset = CS_WINDOWS_874;
if (mimeinfo->type == MIMETYPE_TEXT && !g_ascii_strcasecmp(mimeinfo->subtype, "html")) {
SC_HTMLParser *parser;
g_free(str);
} else {
conv_fail = TRUE;
- if ((scan_ret = scan_callback(str, cb_data)) == TRUE)
+ if ((scan_ret = scan_callback(buf, cb_data)) == TRUE)
break;
}
}
exts = g_strsplit(mime_type->extension, " ", 16);
for (i = 0; exts[i] != NULL; i++) {
- /* use previously dup'd key on overwriting */
- if (g_hash_table_lookup(table, exts[i]))
- key = exts[i];
- else
+ /* Don't overwrite previously inserted extension */
+ if (!g_hash_table_lookup(table, exts[i])) {
key = g_strdup(exts[i]);
- g_hash_table_insert(table, key, mime_type);
+ g_hash_table_insert(table, key, mime_type);
+ }
}
g_strfreev(exts);
}
g_hash_table_insert(table, g_strdup(attribute), g_strdup(value->str));
g_string_free(value, TRUE);
}
- slist_free_strings(concatlist);
- g_slist_free(concatlist);
+ slist_free_strings_full(concatlist);
for (cur = convlist; cur != NULL; cur = g_slist_next(cur)) {
gchar *attribute, *key, *value;
g_hash_table_insert(table, g_strdup(attribute), newvalue);
}
- slist_free_strings(convlist);
- g_slist_free(convlist);
+ slist_free_strings_full(convlist);
g_free(params);
}
mimeinfo->length = length;
if (content_type != NULL) {
+ remove_space(content_type);
procmime_parse_content_type(content_type, mimeinfo);
} else {
mimeinfo->type = MIMETYPE_TEXT;
}
if (content_encoding != NULL) {
+ remove_space(content_encoding);
procmime_parse_content_encoding(content_encoding, mimeinfo);
} else {
mimeinfo->encoding_type = ENC_UNKNOWN;
mimeinfo->location = NULL;
if (content_disposition != NULL)
+ remove_space(content_disposition);
procmime_parse_content_disposition(content_disposition, mimeinfo);
else
mimeinfo->disposition = DISPOSITIONTYPE_UNKNOWN;
break;
if (skip && (buf[0] == ' ' || buf[0] == '\t'))
continue;
- if (g_ascii_strncasecmp(buf, "Mime-Version:", 13) == 0 ||
+ if (g_ascii_strncasecmp(buf, "MIME-Version:", 13) == 0 ||
g_ascii_strncasecmp(buf, "Content-Type:", 13) == 0 ||
g_ascii_strncasecmp(buf, "Content-Transfer-Encoding:", 26) == 0 ||
g_ascii_strncasecmp(buf, "Content-Description:", 20) == 0 ||
return -1;
child = (MimeInfo *) childnode->data;
- if (fprintf(fp, "Mime-Version: 1.0\n") < 0) {
+ if (fprintf(fp, "MIME-Version: 1.0\n") < 0) {
g_warning("failed to write mime version");
return -1;
}