diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2009-05-27 20:37:17 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2009-05-27 20:37:17 +0800 |
commit | cc3a98fc1ad5bb87aa7335f3de404ee7feee1541 (patch) | |
tree | 763785c47096a6aba1ca6c03115b5e862c9f49ad /mail/em-format-html.c | |
parent | 10f8406b09318b1a3e4fe9d08d41a60239f9f3a6 (diff) | |
parent | e4afd3f9fb962ea1295a0657ec9f83a427829171 (diff) | |
download | gsoc2013-evolution-cc3a98fc1ad5bb87aa7335f3de404ee7feee1541.tar.gz gsoc2013-evolution-cc3a98fc1ad5bb87aa7335f3de404ee7feee1541.tar.zst gsoc2013-evolution-cc3a98fc1ad5bb87aa7335f3de404ee7feee1541.zip |
Merge branch 'master' into kill-bonobo
Conflicts:
a11y/widgets/ea-combo-button.c
a11y/widgets/ea-combo-button.h
addressbook/gui/component/addressbook-component.c
addressbook/gui/component/addressbook-component.h
addressbook/gui/component/addressbook-view.c
addressbook/gui/component/addressbook-view.h
addressbook/gui/component/component-factory.c
addressbook/gui/widgets/e-addressbook-view.c
addressbook/gui/widgets/eab-contact-display.c
addressbook/gui/widgets/eab-gui-util.h
addressbook/gui/widgets/eab-menu.c
addressbook/gui/widgets/eab-menu.h
addressbook/gui/widgets/eab-popup-control.c
addressbook/gui/widgets/eab-popup-control.h
addressbook/gui/widgets/eab-popup.c
addressbook/gui/widgets/eab-popup.h
calendar/gui/cal-search-bar.c
calendar/gui/calendar-commands.c
calendar/gui/calendar-component.c
calendar/gui/comp-editor-factory.c
calendar/gui/comp-editor-factory.h
calendar/gui/control-factory.c
calendar/gui/dialogs/comp-editor.c
calendar/gui/e-cal-component-memo-preview.c
calendar/gui/e-cal-component-memo-preview.h
calendar/gui/e-calendar-table.c
calendar/gui/e-memo-table.c
calendar/gui/e-memos.c
calendar/gui/e-tasks.c
calendar/gui/gnome-cal.c
calendar/gui/gnome-cal.h
calendar/gui/itip-bonobo-control.c
calendar/gui/itip-bonobo-control.h
calendar/gui/main.c
calendar/gui/memos-component.c
calendar/gui/memos-control.c
calendar/gui/memos-control.h
calendar/gui/migration.c
calendar/gui/migration.h
calendar/gui/tasks-component.c
calendar/gui/tasks-control.c
calendar/importers/main.c
composer/Makefile.am
composer/e-composer-header-table.c
composer/e-composer-header.c
composer/e-composer-header.h
composer/e-composer-name-header.c
composer/e-composer-private.c
composer/e-composer-text-header.c
composer/e-msg-composer.c
composer/e-msg-composer.h
e-util/e-corba-utils.h
e-util/e-logger.c
e-util/e-logger.h
e-util/e-util-labels.c
e-util/e-util-labels.h
em-format/em-format.c
mail/Makefile.am
mail/e-mail-shell-migrate.c
mail/em-account-editor.c
mail/em-account-editor.h
mail/em-composer-prefs.c
mail/em-composer-utils.c
mail/em-composer-utils.h
mail/em-folder-browser.c
mail/em-folder-tree-model.c
mail/em-folder-tree.c
mail/em-folder-tree.h
mail/em-folder-utils.c
mail/em-folder-utils.h
mail/em-folder-view.c
mail/em-format-html-display.c
mail/em-format-html.c
mail/em-mailer-prefs.c
mail/em-mailer-prefs.h
mail/em-message-browser.c
mail/em-message-browser.h
mail/em-network-prefs.h
mail/em-popup.c
mail/em-utils.c
mail/importers/Makefile.am
mail/mail-component-factory.c
mail/mail-component.c
mail/mail-config-factory.c
mail/mail-config-factory.h
mail/mail-config.c
mail/mail-dialogs.glade
mail/mail-types.h
plugins/calendar-weather/calendar-weather.c
plugins/mail-account-disable/mail-account-disable.c
plugins/select-one-source/select-one-source.c
po/POTFILES.in
shell/e-component-registry.c
shell/e-component-registry.h
shell/e-component-view.c
shell/e-component-view.h
shell/e-corba-config-page.c
shell/e-corba-config-page.h
shell/e-shell-constants.h
shell/e-shell-settings-dialog.c
shell/e-shell-settings-dialog.h
shell/e-shell-window-commands.c
shell/e-shell-window.c
shell/e-shell.h
shell/e-sidebar.c
shell/e-sidebar.h
shell/e-user-creatable-items-handler.c
shell/e-user-creatable-items-handler.h
shell/es-menu.c
shell/es-menu.h
shell/evolution-component.h
shell/evolution-config-control.c
shell/evolution-config-control.h
shell/evolution-listener.c
shell/evolution-listener.h
shell/evolution-shell-component-utils.c
shell/evolution-shell-component-utils.h
shell/importer/evolution-importer-client.c
shell/importer/evolution-importer-client.h
shell/importer/evolution-importer-listener.c
shell/importer/evolution-importer-listener.h
shell/importer/evolution-importer.c
shell/importer/evolution-importer.h
shell/importer/evolution-intelligent-importer.c
shell/importer/evolution-intelligent-importer.h
shell/importer/intelligent.c
shell/main.c
shell/test/evolution-test-component.c
shell/test/evolution-test-component.h
widgets/menus/gal-view-instance.c
widgets/menus/gal-view-menus.c
widgets/menus/gal-view-menus.h
widgets/misc/Makefile.am
widgets/misc/e-activity-handler.c
widgets/misc/e-activity-handler.h
widgets/misc/e-charset-picker.c
widgets/misc/e-combo-button.c
widgets/misc/e-combo-button.h
widgets/misc/e-config-page.h
widgets/misc/e-dropdown-button.c
widgets/misc/e-dropdown-button.h
widgets/misc/e-filter-bar.c
widgets/misc/e-info-label.c
widgets/misc/e-info-label.h
widgets/misc/e-multi-config-dialog.c
widgets/misc/e-multi-config-dialog.h
widgets/misc/e-search-bar.c
widgets/misc/e-search-bar.h
widgets/misc/e-task-bar.c
widgets/misc/e-task-bar.h
widgets/misc/e-task-widget.c
widgets/misc/e-task-widget.h
widgets/misc/test-dropdown-button.c
widgets/misc/test-error.c
widgets/misc/test-info-label.c
widgets/table/e-table-example-1.c
Diffstat (limited to 'mail/em-format-html.c')
-rw-r--r-- | mail/em-format-html.c | 128 |
1 files changed, 63 insertions, 65 deletions
diff --git a/mail/em-format-html.c b/mail/em-format-html.c index cbf90a9214..6bc4a79794 100644 --- a/mail/em-format-html.c +++ b/mail/em-format-html.c @@ -10,7 +10,7 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with the program; if not, see <http://www.gnu.org/licenses/> + * License along with the program; if not, see <http://www.gnu.org/licenses/> * * * Authors: @@ -978,7 +978,6 @@ em_format_html_get_color (EMFormatHTML *efh, GdkColor *format_color; g_return_if_fail (EM_IS_FORMAT_HTML (efh)); - g_return_if_fail (type >= 0); g_return_if_fail (type < EM_FORMAT_HTML_NUM_COLOR_TYPES); g_return_if_fail (color != NULL); @@ -998,7 +997,6 @@ em_format_html_set_color (EMFormatHTML *efh, const gchar *property_name; g_return_if_fail (EM_IS_FORMAT_HTML (efh)); - g_return_if_fail (type >= 0); g_return_if_fail (type < EM_FORMAT_HTML_NUM_COLOR_TYPES); g_return_if_fail (color != NULL); @@ -2014,40 +2012,40 @@ efh_image(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part, EMFormatH } static EMFormatHandler type_builtin_table[] = { - { "image/gif", (EMFormatFunc)efh_image }, - { "image/jpeg", (EMFormatFunc)efh_image }, - { "image/png", (EMFormatFunc)efh_image }, - { "image/x-png", (EMFormatFunc)efh_image }, - { "image/tiff", (EMFormatFunc)efh_image }, - { "image/x-bmp", (EMFormatFunc)efh_image }, - { "image/bmp", (EMFormatFunc)efh_image }, - { "image/svg", (EMFormatFunc)efh_image }, - { "image/x-cmu-raster", (EMFormatFunc)efh_image }, - { "image/x-ico", (EMFormatFunc)efh_image }, - { "image/x-portable-anymap", (EMFormatFunc)efh_image }, - { "image/x-portable-bitmap", (EMFormatFunc)efh_image }, - { "image/x-portable-graymap", (EMFormatFunc)efh_image }, - { "image/x-portable-pixmap", (EMFormatFunc)efh_image }, - { "image/x-xpixmap", (EMFormatFunc)efh_image }, - { "text/enriched", (EMFormatFunc)efh_text_enriched }, - { "text/plain", (EMFormatFunc)efh_text_plain }, - { "text/html", (EMFormatFunc)efh_text_html }, - { "text/richtext", (EMFormatFunc)efh_text_enriched }, - { "text/*", (EMFormatFunc)efh_text_plain }, - { "message/external-body", (EMFormatFunc)efh_message_external }, - { "message/delivery-status", (EMFormatFunc)efh_message_deliverystatus }, - { "multipart/related", (EMFormatFunc)efh_multipart_related }, + { (gchar *) "image/gif", (EMFormatFunc)efh_image }, + { (gchar *) "image/jpeg", (EMFormatFunc)efh_image }, + { (gchar *) "image/png", (EMFormatFunc)efh_image }, + { (gchar *) "image/x-png", (EMFormatFunc)efh_image }, + { (gchar *) "image/tiff", (EMFormatFunc)efh_image }, + { (gchar *) "image/x-bmp", (EMFormatFunc)efh_image }, + { (gchar *) "image/bmp", (EMFormatFunc)efh_image }, + { (gchar *) "image/svg", (EMFormatFunc)efh_image }, + { (gchar *) "image/x-cmu-raster", (EMFormatFunc)efh_image }, + { (gchar *) "image/x-ico", (EMFormatFunc)efh_image }, + { (gchar *) "image/x-portable-anymap", (EMFormatFunc)efh_image }, + { (gchar *) "image/x-portable-bitmap", (EMFormatFunc)efh_image }, + { (gchar *) "image/x-portable-graymap", (EMFormatFunc)efh_image }, + { (gchar *) "image/x-portable-pixmap", (EMFormatFunc)efh_image }, + { (gchar *) "image/x-xpixmap", (EMFormatFunc)efh_image }, + { (gchar *) "text/enriched", (EMFormatFunc)efh_text_enriched }, + { (gchar *) "text/plain", (EMFormatFunc)efh_text_plain }, + { (gchar *) "text/html", (EMFormatFunc)efh_text_html }, + { (gchar *) "text/richtext", (EMFormatFunc)efh_text_enriched }, + { (gchar *) "text/*", (EMFormatFunc)efh_text_plain }, + { (gchar *) "message/external-body", (EMFormatFunc)efh_message_external }, + { (gchar *) "message/delivery-status", (EMFormatFunc)efh_message_deliverystatus }, + { (gchar *) "multipart/related", (EMFormatFunc)efh_multipart_related }, /* This is where one adds those busted, non-registered types, that some idiot mailer writers out there decide to pull out of their proverbials at random. */ - { "image/jpg", (EMFormatFunc)efh_image }, - { "image/pjpeg", (EMFormatFunc)efh_image }, + { (gchar *) "image/jpg", (EMFormatFunc)efh_image }, + { (gchar *) "image/pjpeg", (EMFormatFunc)efh_image }, /* special internal types */ - { "x-evolution/message/rfc822", (EMFormatFunc)efh_format_message } + { (gchar *) "x-evolution/message/rfc822", (EMFormatFunc)efh_format_message } }; static void @@ -2071,18 +2069,18 @@ efh_format_text_header (EMFormatHTML *emfh, CamelStream *stream, const char *lab const char *fmt, *html; char *mhtml = NULL; gboolean is_rtl; - + if (value == NULL) return; while (*value == ' ') value++; - + if (!(flags & EM_FORMAT_HTML_HEADER_HTML)) html = mhtml = camel_text_to_html (value, emfh->text_html_flags, 0); - else + else html = value; - + is_rtl = gtk_widget_get_default_direction () == GTK_TEXT_DIR_RTL; if (emfh->simple_headers) { fmt = "<b>%s</b>: %s<br>"; @@ -2099,7 +2097,7 @@ efh_format_text_header (EMFormatHTML *emfh, CamelStream *stream, const char *lab else fmt = "<tr><th align=\"right\" valign=\"top\" nowrap>%s<b> </b></th><td valign=top>%s</td></tr>"; } else { - + if (flags & EM_FORMAT_HEADER_BOLD) { if (is_rtl) fmt = "<tr><td align=\"right\" valign=\"top\" width=\"100%%\">%2$s</td><th align=\"left\" nowrap>%1$s:<b> </b></th></tr>"; @@ -2118,7 +2116,7 @@ efh_format_text_header (EMFormatHTML *emfh, CamelStream *stream, const char *lab g_free(mhtml); } -static char *addrspec_hdrs[] = { +static const gchar *addrspec_hdrs[] = { "Sender", "From", "Reply-To", "To", "Cc", "Bcc", "Resent-Sender", "Resent-From", "Resent-Reply-To", "Resent-To", "Resent-Cc", "Resent-Bcc", NULL @@ -2238,22 +2236,22 @@ static void canon_header_name (char *name) { char *inptr = name; - + /* canonicalise the header name... first letter is * capitalised and any letter following a '-' also gets * capitalised */ - + if (*inptr >= 'a' && *inptr <= 'z') *inptr -= 0x20; - + inptr++; - + while (*inptr) { if (inptr[-1] == '-' && *inptr >= 'a' && *inptr <= 'z') *inptr -= 0x20; else if (*inptr >= 'A' && *inptr <= 'Z') *inptr += 0x20; - + inptr++; } } @@ -2278,22 +2276,22 @@ efh_format_header(EMFormat *emf, CamelStream *stream, CamelMedium *part, struct break; } } - + label = _(name); - + if (addrspec) { struct _camel_header_address *addrs; GString *html; char *img; - + buf = camel_header_unfold (header->value); if (!(addrs = camel_header_address_decode (buf, emf->charset ? emf->charset : emf->default_charset))) { g_free (buf); return; } - + g_free (buf); - + html = g_string_new(""); img = efh_format_address(efh, html, addrs, (char *)label); @@ -2303,7 +2301,7 @@ efh_format_header(EMFormat *emf, CamelStream *stream, CamelMedium *part, struct flags |= EM_FORMAT_HTML_HEADER_NODEC; g_free (img); } - + camel_header_address_unref(addrs); txt = value = html->str; g_string_free(html, FALSE); @@ -2313,7 +2311,7 @@ efh_format_header(EMFormat *emf, CamelStream *stream, CamelMedium *part, struct buf = camel_header_unfold (header->value); txt = value = camel_header_decode_string (buf, charset); g_free (buf); - + flags |= EM_FORMAT_HEADER_BOLD; } else if (!strcmp(name, "X-evolution-mailer")) { /* pseudo-header */ @@ -2340,7 +2338,7 @@ efh_format_header(EMFormat *emf, CamelStream *stream, CamelMedium *part, struct if (msg_offset) { char buf[256], *html; - + msg_offset += (local.tm_hour * 60) + local.tm_min; if (msg_offset >= (24 * 60) || msg_offset < 0) { /* translators: strftime format for local time equivalent in Date header display, with day */ @@ -2353,27 +2351,27 @@ efh_format_header(EMFormat *emf, CamelStream *stream, CamelMedium *part, struct e_utf8_strftime(buf, sizeof(buf), msg, &local); g_free(msg); } - + html = camel_text_to_html(txt, efh->text_html_flags, 0); txt = value = g_strdup_printf("%s %s", html, buf); g_free(html); flags |= EM_FORMAT_HTML_HEADER_HTML; } - + flags |= EM_FORMAT_HEADER_BOLD; } else if (!strcmp(name, "Newsgroups")) { struct _camel_header_newsgroup *ng, *scan; GString *html; - + buf = camel_header_unfold (header->value); - + if (!(ng = camel_header_newsgroups_decode (buf))) { g_free (buf); return; } - + g_free (buf); - + html = g_string_new(""); scan = ng; while (scan) { @@ -2382,9 +2380,9 @@ efh_format_header(EMFormat *emf, CamelStream *stream, CamelMedium *part, struct if (scan) g_string_append_printf(html, ", "); } - + camel_header_newsgroups_free(ng); - + txt = html->str; g_string_free(html, FALSE); flags |= EM_FORMAT_HEADER_BOLD|EM_FORMAT_HTML_HEADER_HTML; @@ -2397,9 +2395,9 @@ efh_format_header(EMFormat *emf, CamelStream *stream, CamelMedium *part, struct txt = value = camel_header_decode_string (buf, charset); g_free (buf); } - + efh_format_text_header(efh, stream, label, txt, flags); - + g_free (value); g_free (str_field); } @@ -2421,7 +2419,7 @@ efh_format_headers(EMFormatHTML *efh, CamelStream *stream, CamelMedium *part) char *header_sender = NULL, *header_from = NULL, *name; gboolean mail_from_delegate = FALSE; const char *hdr_charset; - + if (!part) return; @@ -2436,9 +2434,9 @@ efh_format_headers(EMFormatHTML *efh, CamelStream *stream, CamelMedium *part) e_color_to_value ( &efh->priv->colors[ EM_FORMAT_HTML_COLOR_HEADER])); - + hdr_charset = emf->charset ? emf->charset : emf->default_charset; - + header = ((CamelMimePart *)part)->headers; while (header) { if (!g_ascii_strcasecmp (header->name, "Sender")) { @@ -2477,7 +2475,7 @@ efh_format_headers(EMFormatHTML *efh, CamelStream *stream, CamelMedium *part) header = header->next; } - + if (header_sender && header_from && mail_from_delegate) { camel_stream_printf(stream, "<tr><td><table border=1 width=\"100%%\" cellspacing=2 cellpadding=2><tr>"); if(gtk_widget_get_default_direction () == GTK_TEXT_DIR_RTL) @@ -2541,7 +2539,7 @@ efh_format_headers(EMFormatHTML *efh, CamelStream *stream, CamelMedium *part) if (!use_header) use_header = header; - xmailer.name = "X-Evolution-Mailer"; + xmailer.name = (gchar *) "X-Evolution-Mailer"; xmailer.value = use_header->value; mailer_shown = TRUE; @@ -2550,11 +2548,11 @@ efh_format_headers(EMFormatHTML *efh, CamelStream *stream, CamelMedium *part) have_icon = TRUE; } else if (!face_decoded && face && !g_ascii_strcasecmp (header->name, "Face")) { char *cp = header->value; - + /* Skip over spaces */ while (*cp == ' ') cp++; - + face_header_value = g_base64_decode (cp, &face_header_len); face_header_value = g_realloc (face_header_value, face_header_len + 1); face_header_value[face_header_len] = 0; |