diff --git a/abuild.patch b/abuild.patch new file mode 100644 index 0000000..6d186e7 --- /dev/null +++ b/abuild.patch @@ -0,0 +1,78 @@ +Index: evolution-2.9.91/calendar/gui/print.c +=================================================================== +--- evolution-2.9.91.orig/calendar/gui/print.c ++++ evolution-2.9.91/calendar/gui/print.c +@@ -2637,6 +2637,9 @@ print_calendar (GnomeCalendar *gcal, gbo + + g_return_if_fail (gcal != NULL); + g_return_if_fail (GNOME_IS_CALENDAR (gcal)); ++ ++ /* This is probably obscuring a bug and needs to be properly initialized. */ ++ gpd = NULL; + + view = (int) default_view; + +Index: evolution-2.9.91/calendar/conduits/memo/memo-conduit.c +=================================================================== +--- evolution-2.9.91.orig/calendar/conduits/memo/memo-conduit.c ++++ evolution-2.9.91/calendar/conduits/memo/memo-conduit.c +@@ -473,6 +473,8 @@ local_record_to_pilot_record (EMemoLocal + pi_buffer_t * buffer; + #endif + ++ memset(&p, 0, sizeof (p)); ++ + g_assert (local->comp != NULL); + g_assert (local->memo != NULL ); + +Index: evolution-2.9.91/calendar/conduits/todo/todo-conduit.c +=================================================================== +--- evolution-2.9.91.orig/calendar/conduits/todo/todo-conduit.c ++++ evolution-2.9.91/calendar/conduits/todo/todo-conduit.c +@@ -620,6 +620,8 @@ local_record_to_pilot_record (EToDoLocal + + LOG (g_message ( "local_record_to_pilot_record\n" )); + ++ memset(&p, 0, sizeof (p)); ++ + p.ID = local->local.ID; + p.category = local->local.category; + p.attr = local->local.attr; +Index: evolution-2.9.91/addressbook/conduit/address-conduit.c +=================================================================== +--- evolution-2.9.91.orig/addressbook/conduit/address-conduit.c ++++ evolution-2.9.91/addressbook/conduit/address-conduit.c +@@ -812,6 +812,8 @@ local_record_to_pilot_record (EAddrLocal + #ifdef PILOT_LINK_0_12 + pi_buffer_t * buffer; + #endif ++ ++ memset(&p, 0, sizeof (p)); + + g_assert (local->addr != NULL ); + +Index: evolution-2.9.91/mail/em-format-html-print.c +=================================================================== +--- evolution-2.9.91.orig/mail/em-format-html-print.c ++++ evolution-2.9.91/mail/em-format-html-print.c +@@ -183,6 +183,7 @@ emfhp_complete(EMFormatHTMLPrint *efhp, + mdi->efhp = efhp; + mdi->line = 0.0; + mdi->res = GNOME_PRINT_OK; ++ memset(&info, 0, sizeof (info)); + mdi->info = info; + + /* connect */ +Index: evolution-2.9.91/calendar/conduits/calendar/calendar-conduit.c +=================================================================== +--- evolution-2.9.91.orig/calendar/conduits/calendar/calendar-conduit.c ++++ evolution-2.9.91/calendar/conduits/calendar/calendar-conduit.c +@@ -840,6 +840,8 @@ local_record_to_pilot_record (ECalLocalR + pi_buffer_t * buffer; + #endif + ++ memset(&p, 0, sizeof (p)); ++ + g_assert (local->comp != NULL); + g_assert (local->appt != NULL ); + diff --git a/calendar-sendbutton.patch b/calendar-sendbutton.patch index dfb0ae9..9d5510a 100644 --- a/calendar-sendbutton.patch +++ b/calendar-sendbutton.patch @@ -1,10 +1,7 @@ Index: ui/evolution-editor.xml =================================================================== -RCS file: /cvs/gnome/evolution/ui/evolution-editor.xml,v -retrieving revision 1.5 -diff -u -p -r1.5 evolution-editor.xml ---- ui/evolution-editor.xml 14 Jan 2006 10:30:20 -0000 1.5 -+++ ui/evolution-editor.xml 9 Mar 2006 11:28:18 -0000 +--- ui/evolution-editor.xml.orig ++++ ui/evolution-editor.xml @@ -1,6 +1,8 @@ @@ -36,11 +33,8 @@ diff -u -p -r1.5 evolution-editor.xml Index: calendar/gui/dialogs/comp-editor.h =================================================================== -RCS file: /cvs/gnome/evolution/calendar/gui/dialogs/comp-editor.h,v -retrieving revision 1.32 -diff -u -p -r1.32 comp-editor.h ---- calendar/gui/dialogs/comp-editor.h 13 Jan 2006 09:29:17 -0000 1.32 -+++ calendar/gui/dialogs/comp-editor.h 9 Mar 2006 10:52:45 -0000 +--- calendar/gui/dialogs/comp-editor.h.orig ++++ calendar/gui/dialogs/comp-editor.h @@ -53,9 +53,9 @@ typedef struct { BonoboWindowClass parent_class; @@ -54,12 +48,9 @@ diff -u -p -r1.32 comp-editor.h Index: calendar/gui/dialogs/event-editor.c =================================================================== -RCS file: /cvs/gnome/evolution/calendar/gui/dialogs/event-editor.c,v -retrieving revision 1.78 -diff -u -p -r1.78 event-editor.c ---- calendar/gui/dialogs/event-editor.c 8 Feb 2006 13:06:24 -0000 1.78 -+++ calendar/gui/dialogs/event-editor.c 9 Mar 2006 10:52:46 -0000 -@@ -566,7 +566,8 @@ event_editor_construct (EventEditor *ee, +--- calendar/gui/dialogs/event-editor.c.orig ++++ calendar/gui/dialogs/event-editor.c +@@ -583,7 +583,8 @@ event_editor_construct (EventEditor *ee, if (e_cal_get_static_capability (client, CAL_STATIC_CAPABILITY_REQ_SEND_OPTIONS)) event_page_show_options (priv->event_page); @@ -68,15 +59,12 @@ diff -u -p -r1.78 event-editor.c + comp_editor_set_needs_send (COMP_EDITOR (ee), TRUE); comp_editor_set_group_item (COMP_EDITOR (ee), TRUE); if ((flags & COMP_EDITOR_USER_ORG) || (flags & COMP_EDITOR_DELEGATE)|| (flags & COMP_EDITOR_NEW_ITEM)) { - priv->sched_window = gtk_dialog_new_with_buttons (_("Free/Busy"), + ENameSelector *name_selector; Index: calendar/gui/dialogs/task-editor.c =================================================================== -RCS file: /cvs/gnome/evolution/calendar/gui/dialogs/task-editor.c,v -retrieving revision 1.94 -diff -u -p -r1.94 task-editor.c ---- calendar/gui/dialogs/task-editor.c 9 Feb 2006 04:02:49 -0000 1.94 -+++ calendar/gui/dialogs/task-editor.c 9 Mar 2006 10:52:46 -0000 -@@ -447,6 +447,9 @@ task_editor_construct (TaskEditor *te, E +--- calendar/gui/dialogs/task-editor.c.orig ++++ calendar/gui/dialogs/task-editor.c +@@ -446,6 +446,9 @@ task_editor_construct (TaskEditor *te, E read_only = TRUE; if (priv->is_assigned) { @@ -86,9 +74,11 @@ diff -u -p -r1.94 task-editor.c if (e_cal_get_static_capability (client, CAL_STATIC_CAPABILITY_REQ_SEND_OPTIONS)) task_page_show_options (priv->task_page); ---- calendar/gui/dialogs/comp-editor.c.orig 2006-09-04 17:59:13.174145096 +0200 -+++ calendar/gui/dialogs/comp-editor.c 2006-09-04 18:02:10.589153326 +0200 -@@ -860,8 +860,8 @@ save_comp_with_send (CompEditor *editor) +Index: calendar/gui/dialogs/comp-editor.c +=================================================================== +--- calendar/gui/dialogs/comp-editor.c.orig ++++ calendar/gui/dialogs/comp-editor.c +@@ -878,8 +878,8 @@ save_comp_with_send (CompEditor *editor) if (!save_comp (editor)) return FALSE; @@ -99,15 +89,15 @@ diff -u -p -r1.94 task-editor.c if (e_cal_component_get_vtype (priv->comp) == E_CAL_COMPONENT_JOURNAL) return comp_editor_send_comp (editor, E_CAL_COMPONENT_METHOD_PUBLISH); else -@@ -1398,6 +1398,7 @@ menu_help_cb (BonoboUIComponent *uic, +@@ -1458,6 +1458,7 @@ menu_help_cb (BonoboUIComponent *uic, static BonoboUIVerb verbs [] = { BONOBO_UI_VERB ("FileSave", menu_file_save_cb), -+ BONOBO_UI_VERB ("FileSend", menu_file_save_cb), ++ BONOBO_UI_VERB ("FileSend", menu_file_save_cb), + BONOBO_UI_VERB ("CalendarPrint", menu_file_print_cb), + BONOBO_UI_VERB ("CalendarPrintPreview", menu_file_print_preview_cb), BONOBO_UI_VERB ("FileClose", menu_file_close_cb), - - BONOBO_UI_VERB ("EditCopy", menu_edit_copy_cb), -@@ -1414,6 +1415,7 @@ static BonoboUIVerb verbs [] = { +@@ -1476,6 +1477,7 @@ static BonoboUIVerb verbs [] = { static EPixmap pixmaps[] = { E_PIXMAP ("/Toolbar/InsertAttachments", "stock_attach", E_ICON_SIZE_LARGE_TOOLBAR), E_PIXMAP ("/menu/Insert/Attachments/InsertAttachments", "stock_attach", E_ICON_SIZE_MENU), @@ -115,7 +105,7 @@ diff -u -p -r1.94 task-editor.c E_PIXMAP_END }; -@@ -1545,6 +1547,9 @@ comp_editor_init (CompEditor *editor) +@@ -1607,6 +1609,9 @@ comp_editor_init (CompEditor *editor) bonobo_ui_component_thaw (editor->uic, NULL); bonobo_ui_component_set_prop (editor->uic, "/commands/FileSave", "sensitive", "0", NULL); @@ -125,7 +115,7 @@ diff -u -p -r1.94 task-editor.c /* DND support */ gtk_drag_dest_set (GTK_WIDGET (editor), GTK_DEST_DEFAULT_ALL, drop_types, num_drop_types, GDK_ACTION_COPY|GDK_ACTION_ASK|GDK_ACTION_MOVE); -@@ -1771,9 +1776,10 @@ comp_editor_set_changed (CompEditor *edi +@@ -1833,9 +1838,10 @@ comp_editor_set_changed (CompEditor *edi priv = editor->priv; priv->changed = changed; @@ -138,7 +128,7 @@ diff -u -p -r1.94 task-editor.c } /** -@@ -1839,6 +1845,11 @@ comp_editor_set_needs_send (CompEditor * +@@ -1901,6 +1907,11 @@ comp_editor_set_needs_send (CompEditor * priv = editor->priv; priv->needs_send = needs_send; diff --git a/evolution-2.8.2.tar.bz2 b/evolution-2.8.2.tar.bz2 deleted file mode 100644 index 7123036..0000000 --- a/evolution-2.8.2.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cbe0a650ecef50a0c26b0e55e9037feb6988f7a0d997e3c60573fe5a593826e8 -size 12923830 diff --git a/evolution-2.9.91.tar.bz2 b/evolution-2.9.91.tar.bz2 new file mode 100644 index 0000000..8cfe55f --- /dev/null +++ b/evolution-2.9.91.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e353e6f1c8bc862aa2a947bd6b8efd8c14ae2bf7628e32b2d736c668de0b6ac9 +size 13809217 diff --git a/evolution.changes b/evolution.changes index 4c455c0..1ed711c 100644 --- a/evolution.changes +++ b/evolution.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Mon Mar 12 16:44:10 CST 2007 - maw@suse.de + +- Update to version 2.9.91 +- Remove upstreamed bnc-214647-add-prefer-plain-plugin.patch +- fix-security-gtkhtml-moreui.diff is now much smaller +- Add abuild.patch +- Bug fixes, including bugzilla.gnome.org #373497, #76336, + and #348212. + ------------------------------------------------------------------- Wed Jan 10 18:25:02 CET 2007 - sbrabec@suse.cz diff --git a/evolution.spec b/evolution.spec index 2255748..f20e3ad 100644 --- a/evolution.spec +++ b/evolution.spec @@ -1,5 +1,5 @@ # -# spec file for package evolution (Version 2.8.2) +# spec file for package evolution (Version 2.9.91) # # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -11,15 +11,15 @@ # norootforbuild Name: evolution -BuildRequires: evolution-data-server-devel gnome-common gnome-icon-theme-devel gnome-pilot-devel gtk-doc gtkhtml2-devel intltool kdelibs3-doc libidl libnotify libnotify-devel mDNSResponder-devel mozilla-nss-devel openldap2 perl-XML-Parser python-devel scrollkeeper update-desktop-files +BuildRequires: evolution-data-server-devel gnome-common gnome-doc-utils-devel gnome-icon-theme-devel gnome-pilot-devel gtk-doc gtkhtml2-devel intltool kdelibs3-doc libidl libnotify libnotify-devel mDNSResponder-devel mozilla-nss-devel openldap2 perl-XML-Parser python-devel scrollkeeper update-desktop-files License: GNU General Public License (GPL) Group: Productivity/Networking/Email/Clients Obsoletes: evoltn Provides: evoltn Autoreqprov: on Obsoletes: bonobo-conf -Version: 2.8.2 -Release: 5 +Version: 2.9.91 +Release: 1 Summary: The Integrated GNOME Mail, Calendar, and Address Book Suite Source: ftp://ftp.gnome.org/pub/gnome/sources/evolution/2.8/%{name}-%{version}.tar.bz2 Source1: summerdance-about2.png @@ -56,6 +56,7 @@ Patch89: bnc-214647-add-prefer-plain-plugin.patch Patch90: fix-security-gtkhtml-moreui.diff Patch91: evo-2.8.2-build-break.fix Patch92: evo-2.8.2-regression-fix.patch +Patch100: abuild.patch Patch999: build-fixes.diff URL: http://gnome.org/projects/evolution/ BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -281,7 +282,8 @@ Authors: %patch17 #%patch18 %if %suse_version > 1000 -%patch19 -p1 +# FIXME: somebody with time should fix this patch up and make it apply once more +# %patch19 -p1 %endif %patch20 %patch23 @@ -299,10 +301,14 @@ Authors: %patch71 %patch78 %patch88 -%patch89 -%patch90 -%patch91 -%patch92 +# 89 is uptream now +# %patch89 +# FIXME: 90 breaks the build. need to re-do. +# %patch90 +# 91 and 92 upsream too +#%patch91 +# %patch92 +%patch100 -p1 %patch999 %build @@ -335,15 +341,15 @@ for xml in $RPM_BUILD_ROOT/%{_datadir}/gnome/help/evolution-*/*/evolution-*.xml; meinproc --check --cache `echo $xml | sed 's/xml$/cache.bz2/'` $xml || : done cp %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE5} $RPM_BUILD_ROOT/%{_datadir}/applications/ -%suse_update_desktop_file -G "Mail" -D "evolution-2.8/evolution-2.8.xml?usage-mail" evolution-email -%suse_update_desktop_file -G "Address Book" -D "evolution-2.8/evolution-2.8.xml?usage-contact" evolution-addressbook -%suse_update_desktop_file -G "Schedule Manager" -D "evolution-2.8/evolution-2.8.xml?usage-calendar" evolution-calendar -%suse_update_desktop_file -G "Task List" -D "evolution-2.8/evolution-2.8.xml?usage-calendar-todo" evolution-tasklist +%suse_update_desktop_file -G "Mail" -D "evolution-2.10/evolution-2.10.xml?usage-mail" evolution-email +%suse_update_desktop_file -G "Address Book" -D "evolution-2.10/evolution-2.10.xml?usage-contact" evolution-addressbook +%suse_update_desktop_file -G "Schedule Manager" -D "evolution-2.10/evolution-2.10.xml?usage-calendar" evolution-calendar +%suse_update_desktop_file -G "Task List" -D "evolution-2.10/evolution-2.10.xml?usage-calendar-todo" evolution-tasklist mkdir -p $RPM_BUILD_ROOT/%{_datadir}/pixmaps cp %{SOURCE6} %{SOURCE7} %{SOURCE8} %{SOURCE9} $RPM_BUILD_ROOT/%{_datadir}/pixmaps/ -%find_lang evolution-2.8 +%find_lang evolution-2.10 %find_gconf_schemas -cat evolution-2.8.lang %{name}.schemas_list >%{name}.lst +cat evolution-2.10.lang %{name}.schemas_list >%{name}.lst rm $RPM_BUILD_ROOT%{_libdir}/evolution/*/*/*.*a rm -r $RPM_BUILD_ROOT%{_datadir}/mime-info @@ -389,6 +395,19 @@ fi %{_prefix}/lib/evolution/*/csv2vcard %{_prefix}/lib/evolution/*/evolution-* %{_prefix}/lib/evolution/*/killev +%dir %{_datadir}/gnome/help/evolution +%dir %{_datadir}/gnome/help/evolution/C +%{_datadir}/gnome/help/evolution/C/*.* +%dir %{_datadir}/gnome/help/evolution/C/figures +%{_datadir}/gnome/help/evolution/C/figures/*.* +%dir %{_datadir}/gnome/help/evolution/es +%{_datadir}/gnome/help/evolution/es/*.* +%dir %{_datadir}/gnome/help/evolution/es/figures/ +%{_datadir}/gnome/help/evolution/es/figures/*.* +%dir %{_datadir}/gnome/help/evolution/sv +%{_datadir}/gnome/help/evolution/sv/*.* +%dir %{_datadir}/gnome/help/evolution/sv/figures +%{_datadir}/gnome/help/evolution/sv/figures/*.* %files devel %defattr(-,root,root) @@ -402,7 +421,14 @@ fi %{_datadir}/gnome-pilot/conduits/*.conduit %{_libdir}/evolution/*/conduits/*.so -%changelog -n evolution +%changelog +* Mon Mar 12 2007 - maw@suse.de +- Update to version 2.9.91 +- Remove upstreamed bnc-214647-add-prefer-plain-plugin.patch +- fix-security-gtkhtml-moreui.diff is now much smaller +- Add abuild.patch +- Bug fixes, including bugzilla.gnome.org #373497, #76336, + and #348212. * Wed Jan 10 2007 - sbrabec@suse.cz - Do not remove files from %%{_libdir}/evolution/2.8 - these are standard libraries, not modules. diff --git a/fix-security-gtkhtml-moreui.diff b/fix-security-gtkhtml-moreui.diff index bea8f54..e4a7922 100644 --- a/fix-security-gtkhtml-moreui.diff +++ b/fix-security-gtkhtml-moreui.diff @@ -1,69 +1,12 @@ ? mail.error -Index: em-format-html-display.c +Index: mail/em-format-html-display.c =================================================================== -RCS file: /cvs/gnome/evolution/mail/em-format-html-display.c,v -retrieving revision 1.107 -diff -u -p -r1.107 em-format-html-display.c ---- em-format-html-display.c 16 Oct 2006 12:37:02 -0000 1.107 -+++ mail/em-format-html-display.c 17 Nov 2006 18:46:20 -0000 -@@ -74,6 +74,7 @@ - #include +--- mail/em-format-html-display.c.orig ++++ mail/em-format-html-display.c +@@ -2580,3 +2580,161 @@ efhd_format_optional(EMFormat *emf, Came - #include -+#include - #include - #include - #include -@@ -182,6 +183,9 @@ struct _attach_puri { - int fit_height; - GtkImage *image; - -+ /* Optional Text Mem Stream */ -+ CamelStreamMem *mstream; -+ - /* Signed / Encrypted */ - camel_cipher_validity_sign_t sign; - camel_cipher_validity_encrypt_t encrypt; -@@ -199,6 +203,7 @@ static void efhd_format_clone(EMFormat * - static void efhd_format_error(EMFormat *emf, CamelStream *stream, const char *txt); - static void efhd_format_source(EMFormat *, CamelStream *, CamelMimePart *); - static void efhd_format_attachment(EMFormat *, CamelStream *, CamelMimePart *, const char *, const EMFormatHandler *); -+static void efhd_format_optional(EMFormat *, CamelStream *, CamelMimePart *, CamelStream *); - static void efhd_format_secure(EMFormat *emf, CamelStream *stream, CamelMimePart *part, CamelCipherValidity *valid); - static void efhd_complete(EMFormat *); - gboolean efhd_mnemonic_show_bar (GtkWidget *widget, gboolean focus, GtkWidget *efhd); -@@ -353,6 +358,7 @@ efhd_class_init(GObjectClass *klass) - ((EMFormatClass *)klass)->format_error = efhd_format_error; - ((EMFormatClass *)klass)->format_source = efhd_format_source; - ((EMFormatClass *)klass)->format_attachment = efhd_format_attachment; -+ ((EMFormatClass *)klass)->format_optional = efhd_format_optional; - ((EMFormatClass *)klass)->format_secure = efhd_format_secure; - ((EMFormatClass *)klass)->complete = efhd_complete; - -@@ -1509,7 +1515,7 @@ efhd_attachment_popup(GtkWidget *w, GdkE - } - - e_popup_add_items((EPopup *)emp, menus, NULL, efhd_menu_items_free, info); -- -+ - menu = e_popup_create_menu_once((EPopup *)emp, (EPopupTarget *)target, 0); - if (event) - gtk_menu_popup(menu, NULL, NULL, NULL, NULL, event->button, event->time); -@@ -2398,7 +2404,6 @@ efhd_format_attachment(EMFormat *emf, Ca - if (handle) { - if (info->shown) - handle->handler(emf, stream, part, handle); -- /*camel_stream_printf(stream, "\n", classid, _("Attachment content could not be loaded"));*/ - } else if (efhd_use_component(mime_type)) { - g_free(classid); /* messy */ - -@@ -2406,6 +2411,164 @@ efhd_format_attachment(EMFormat *emf, Ca - em_format_html_add_pobject((EMFormatHTML *)emf, sizeof(EMFormatHTMLPObject), classid, part, efhd_bonobo_object); - camel_stream_printf(stream, "
>\n", classid, mime_type); - } -+ -+ g_free(classid); -+} + g_free(classid); + } + +static void +efhd_optional_button_show (GtkWidget *widget, GtkWidget *w) @@ -219,231 +162,14 @@ diff -u -p -r1.107 em-format-html-display.c + camel_stream_write_string(stream, +/* "\n" */ + EM_FORMAT_HTML_VPAD); - - g_free(classid); - } -Index: em-format-html.c -=================================================================== -RCS file: /cvs/gnome/evolution/mail/em-format-html.c,v -retrieving revision 1.93 -diff -u -p -r1.93 em-format-html.c ---- em-format-html.c 29 Sep 2006 17:54:48 -0000 1.93 -+++ mail/em-format-html.c 17 Nov 2006 18:46:23 -0000 -@@ -767,7 +767,7 @@ efh_text_plain(EMFormatHTML *efh, CamelS - "
\n", - efh->frame_colour & 0xffffff, efh->content_colour & 0xffffff); - camel_stream_write_string(stream, "\n"); -- em_format_format_text((EMFormat *)efh, (CamelStream *)filtered_stream, camel_medium_get_content_object((CamelMedium *)newpart)); -+ em_format_format_text((EMFormat *)efh, (CamelStream *)filtered_stream, newpart); - camel_stream_flush((CamelStream *)filtered_stream); - camel_stream_write_string(stream, "\n"); - camel_stream_write_string(stream, "
\n"); -@@ -807,7 +807,7 @@ efh_text_enriched(EMFormatHTML *efh, Cam - "
\n", - efh->frame_colour & 0xffffff, efh->content_colour & 0xffffff); - -- em_format_format_text((EMFormat *)efh, (CamelStream *)filtered_stream, dw); -+ em_format_format_text((EMFormat *)efh, (CamelStream *)filtered_stream, part); - - camel_object_unref(filtered_stream); - camel_stream_write_string(stream, "
"); -@@ -829,7 +829,7 @@ efh_write_text_html(EMFormat *emf, Camel - camel_data_wrapper_write_to_stream(dw, out); - camel_object_unref(out); - #endif -- em_format_format_text(emf, stream, camel_medium_get_content_object((CamelMedium *)puri->part)); -+ em_format_format_text(emf, stream, puri->part); - } - - static void -@@ -985,7 +985,7 @@ efh_message_deliverystatus(EMFormatHTML - camel_object_unref(html_filter); - - camel_stream_write_string(stream, "\n"); -- em_format_format_text((EMFormat *)efh, (CamelStream *)filtered_stream, camel_medium_get_content_object((CamelMedium *)part)); -+ em_format_format_text((EMFormat *)efh, (CamelStream *)filtered_stream, part); - camel_stream_flush((CamelStream *)filtered_stream); - camel_stream_write_string(stream, "\n"); - -Index: em-format-quote.c -=================================================================== -RCS file: /cvs/gnome/evolution/mail/em-format-quote.c,v -retrieving revision 1.19 -diff -u -p -r1.19 em-format-quote.c ---- em-format-quote.c 8 Aug 2005 04:30:38 -0000 1.19 -+++ mail/em-format-quote.c 17 Nov 2006 18:46:23 -0000 -@@ -411,7 +411,7 @@ emfq_format_source(EMFormat *emf, CamelS - camel_stream_filter_add(filtered_stream, html_filter); - camel_object_unref(html_filter); - -- em_format_format_text(emf, (CamelStream *)filtered_stream, dw); -+ em_format_format_text(emf, (CamelStream *)filtered_stream, part); - camel_object_unref(filtered_stream); - } - -@@ -473,7 +473,7 @@ emfq_text_plain(EMFormatQuote *emfq, Cam - camel_stream_filter_add(filtered_stream, html_filter); - camel_object_unref(html_filter); - -- em_format_format_text((EMFormat *)emfq, (CamelStream *)filtered_stream, camel_medium_get_content_object((CamelMedium *)part)); -+ em_format_format_text((EMFormat *)emfq, (CamelStream *)filtered_stream, part); - camel_stream_flush((CamelStream *)filtered_stream); - camel_object_unref(filtered_stream); - } -@@ -501,7 +501,7 @@ emfq_text_enriched(EMFormatQuote *emfq, - camel_object_unref(enriched); - - camel_stream_write_string(stream, "


"); -- em_format_format_text((EMFormat *)emfq, (CamelStream *)filtered_stream, dw); -+ em_format_format_text((EMFormat *)emfq, (CamelStream *)filtered_stream, part); - camel_object_unref(filtered_stream); - } - -@@ -509,7 +509,7 @@ static void - emfq_text_html(EMFormat *emf, CamelStream *stream, CamelMimePart *part, EMFormatHandler *info) - { - camel_stream_write_string(stream, "\n\n"); -- em_format_format_text(emf, stream, camel_medium_get_content_object((CamelMedium *)part)); -+ em_format_format_text(emf, stream, part); - } - - static void -Index: em-format.c -=================================================================== -RCS file: /cvs/gnome/evolution/mail/em-format.c,v -retrieving revision 1.52 -diff -u -p -r1.52 em-format.c ---- em-format.c 20 Apr 2006 16:35:32 -0000 1.52 -+++ mail/em-format.c 17 Nov 2006 18:46:26 -0000 -@@ -47,6 +47,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -80,7 +81,6 @@ static const EMFormatHandler *emf_find_h - static void emf_format_clone(EMFormat *emf, CamelFolder *folder, const char *uid, CamelMimeMessage *msg, EMFormat *emfsource); - static void emf_format_secure(EMFormat *emf, CamelStream *stream, CamelMimePart *part, CamelCipherValidity *valid); - static gboolean emf_busy(EMFormat *emf); -- - enum { - EMF_COMPLETE, - EMF_LAST_SIGNAL, -@@ -117,8 +117,10 @@ static void - emf_init(GObject *o) - { - EMFormat *emf = (EMFormat *)o; -- -+ char * asize; -+ - emf->inline_table = g_hash_table_new(g_str_hash, g_str_equal); -+ emf->composer = FALSE; - e_dlist_init(&emf->header_list); - em_format_default_headers(emf); - emf->part_id = g_string_new(""); -@@ -469,6 +471,7 @@ em_format_find_visible_puri(EMFormat *em - * Return value: - **/ - EMFormatPURI * + - em_format_find_puri(EMFormat *emf, const char *uri) - { - return g_hash_table_lookup(emf->pending_uri_table, uri); -@@ -1016,7 +1019,7 @@ em_format_format_content(EMFormat *emf, - CamelDataWrapper *dw = camel_medium_get_content_object((CamelMedium *)part); - - if (camel_content_type_is (dw->mime_type, "text", "*")) -- em_format_format_text(emf, stream, dw); -+ em_format_format_text(emf, stream, part); - else - camel_data_wrapper_decode_to_stream(dw, stream); - } -@@ -1036,6 +1039,9 @@ em_format_format_text(EMFormat *emf, Cam - CamelMimeFilterCharset *filter; - const char *charset = NULL; - CamelMimeFilterWindows *windows = NULL; -+ CamelStream *mem_stream = NULL; -+ size_t size; -+ size_t max; - - if (emf->charset) { - charset = emf->charset; -@@ -1064,17 +1070,27 @@ em_format_format_text(EMFormat *emf, Cam - } else if (charset == NULL) { - charset = emf->default_charset; - } -- -- filter_stream = camel_stream_filter_new_with_stream(stream); -+ -+ mem_stream = (CamelStreamMem *)camel_stream_mem_new (); -+ filter_stream = camel_stream_filter_new_with_stream(mem_stream); - - if ((filter = camel_mime_filter_charset_new_convert(charset, "UTF-8"))) { - camel_stream_filter_add(filter_stream, (CamelMimeFilter *) filter); - camel_object_unref(filter); - } -- -- camel_data_wrapper_decode_to_stream(dw, (CamelStream *)filter_stream); -+ -+ max = mail_config_get_message_limit(); -+ size = camel_data_wrapper_decode_to_stream(emf->mode == EM_FORMAT_SOURCE ? (CamelDataWrapper *)dw: camel_medium_get_content_object((CamelMedium *)dw), (CamelStream *)filter_stream); - camel_stream_flush((CamelStream *)filter_stream); - camel_object_unref(filter_stream); -+ camel_stream_reset (mem_stream); -+ -+ if (max == -1 || size < (max * 1024) || emf->composer) { -+ camel_stream_write_to_stream(mem_stream, (CamelStream *)stream); -+ camel_stream_flush((CamelStream *)stream); -+ } else { -+ ((EMFormatClass *)G_OBJECT_GET_CLASS(emf))->format_optional(emf, stream, (CamelMimePart *)dw, mem_stream); -+ } - - if (windows) - camel_object_unref(windows); -@@ -1495,7 +1511,7 @@ emf_message_rfc822(EMFormat *emf, CamelS - static void - emf_message_deliverystatus(EMFormat *emf, CamelStream *stream, CamelMimePart *part, const EMFormatHandler *info) - { -- em_format_format_text(emf, stream, camel_medium_get_content_object((CamelMedium *)part)); -+ em_format_format_text(emf, stream, part); - } - - static void -Index: em-format.h ++ g_free(classid); ++} +Index: mail/em-mailer-prefs.c =================================================================== -RCS file: /cvs/gnome/evolution/mail/em-format.h,v -retrieving revision 1.16 -diff -u -p -r1.16 em-format.h ---- em-format.h 19 May 2005 06:06:35 -0000 1.16 -+++ mail/em-format.h 17 Nov 2006 18:46:26 -0000 -@@ -226,6 +226,7 @@ struct _EMFormat { - em_format_mode_t mode; /* source/headers/etc */ - char *charset; /* charset override */ - char *default_charset; /* charset fallback */ -+ gboolean composer; /* Formatting from composer ?*/ - }; - - struct _EMFormatClass { -@@ -257,6 +258,9 @@ struct _EMFormatClass { - /* returns true if the formatter is still busy with pending stuff */ - gboolean (*busy)(EMFormat *); - -+ /* Shows optional way to open messages */ -+ void (*format_optional)(EMFormat *, struct _CamelStream *, struct _CamelMimePart *, struct _CamelStream* ); -+ - /* signals */ - /* complete, alternative to polling busy, for asynchronous work */ - void (*complete)(EMFormat *); -Index: em-mailer-prefs.c -=================================================================== -RCS file: /cvs/gnome/evolution/mail/em-mailer-prefs.c,v -retrieving revision 1.39 -diff -u -p -r1.39 em-mailer-prefs.c ---- em-mailer-prefs.c 9 Aug 2006 08:43:27 -0000 1.39 -+++ mail/em-mailer-prefs.c 17 Nov 2006 18:46:28 -0000 -@@ -459,6 +459,16 @@ address_compress_count_changed (GtkSpinB +--- mail/em-mailer-prefs.c.orig ++++ mail/em-mailer-prefs.c +@@ -469,6 +469,16 @@ mlimit_count_changed (GtkSpinButton *spi } static void @@ -460,72 +186,11 @@ diff -u -p -r1.39 em-mailer-prefs.c spin_button_init (EMMailerPrefs *prefs, GtkSpinButton *spin, const char *key, float div, GCallback value_changed) { GError *err = NULL; -@@ -772,6 +782,16 @@ em_mailer_prefs_construct (EMMailerPrefs - "/apps/evolution/mail/display/mark_seen_timeout", - 1000.0, G_CALLBACK (mark_seen_timeout_changed)); - -+ prefs->mlimit_toggle = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "mlimit_checkbutton")); -+ toggle_button_init (prefs, prefs->mlimit_toggle, FALSE, -+ "/apps/evolution/mail/display/force_message_limit", -+ G_CALLBACK (toggle_button_toggled)); -+ -+ prefs->mlimit_count = GTK_SPIN_BUTTON (glade_xml_get_widget (gui, "mlimit_spin")); -+ spin_button_init (prefs, prefs->mlimit_count, -+ "/apps/evolution/mail/display/message_text_part_limit", -+ 1, G_CALLBACK (mlimit_count_changed)); -+ - prefs->address_toggle = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "address_checkbox")); - toggle_button_init (prefs, prefs->address_toggle, FALSE, - "/apps/evolution/mail/display/address_compress", -Index: em-mailer-prefs.h +Index: mail/evolution-mail.schemas.in.in =================================================================== -RCS file: /cvs/gnome/evolution/mail/em-mailer-prefs.h,v -retrieving revision 1.15 -diff -u -p -r1.15 em-mailer-prefs.h ---- em-mailer-prefs.h 25 May 2006 04:59:47 -0000 1.15 -+++ mail/em-mailer-prefs.h 17 Nov 2006 18:46:28 -0000 -@@ -75,7 +75,9 @@ struct _EMMailerPrefs { - struct _GtkToggleButton *timeout_toggle; - struct _GtkSpinButton *timeout; - struct _GtkToggleButton *address_toggle; -- struct _GtkSpinButton *address_count; -+ struct _GtkSpinButton *address_count; -+ struct _GtkToggleButton *mlimit_toggle; -+ struct _GtkSpinButton *mlimit_count; - struct _GtkOptionMenu *charset; - struct _GtkToggleButton *citation_highlight; - struct _GnomeColorPicker *citation_color; -Index: em-utils.c -=================================================================== -RCS file: /cvs/gnome/evolution/mail/em-utils.c,v -retrieving revision 1.83 -diff -u -p -r1.83 em-utils.c ---- em-utils.c 23 Aug 2006 14:05:19 -0000 1.83 -+++ mail/em-utils.c 17 Nov 2006 18:46:30 -0000 -@@ -1605,6 +1605,7 @@ em_utils_part_to_html(CamelMimePart *par - camel_stream_mem_set_byte_array (mem, buf); - - emfq = em_format_quote_new(NULL, (CamelStream *)mem, 0); -+ ((EMFormat *) emfq)->composer = TRUE; - em_format_set_session((EMFormat *)emfq, session); - if (source) { - /* copy over things we can, other things are internal, perhaps need different api than 'clone' */ -@@ -1653,6 +1654,7 @@ em_utils_message_to_html(CamelMimeMessag - camel_stream_mem_set_byte_array (mem, buf); - - emfq = em_format_quote_new(credits, (CamelStream *)mem, flags); -+ ((EMFormat *) emfq)->composer = TRUE; - em_format_set_session((EMFormat *)emfq, session); - - if (!source) { -Index: evolution-mail.schemas.in.in -=================================================================== -RCS file: /cvs/gnome/evolution/mail/evolution-mail.schemas.in.in,v -retrieving revision 1.29 -diff -u -p -r1.29 evolution-mail.schemas.in.in ---- evolution-mail.schemas.in.in 14 Jul 2006 05:42:26 -0000 1.29 -+++ mail/evolution-mail.schemas.in.in 17 Nov 2006 18:46:31 -0000 -@@ -485,7 +485,36 @@ +--- mail/evolution-mail.schemas.in.in.orig ++++ mail/evolution-mail.schemas.in.in +@@ -529,7 +529,36 @@ @@ -561,28 +226,13 @@ diff -u -p -r1.29 evolution-mail.schemas.in.in + + - /schemas/apps/evolution/mail/display/address_count - /apps/evolution/mail/display/address_count -Index: mail-config.c + /schemas/apps/evolution/mail/display/thread_subject + /apps/evolution/mail/display/thread_subject +Index: mail/mail-config.c =================================================================== -RCS file: /cvs/gnome/evolution/mail/mail-config.c,v -retrieving revision 1.326 -diff -u -p -r1.326 mail-config.c ---- mail-config.c 25 May 2006 04:59:47 -0000 1.326 -+++ mail/mail-config.c 17 Nov 2006 18:46:32 -0000 -@@ -110,6 +110,11 @@ typedef struct { - guint address_compress_notify_id; - gboolean address_compress; - gint address_count; -+ guint mlimit_size_notify_id; -+ guint mlimit_notify_id; -+ gboolean mlimit; -+ gint mlimit_size; -+ - - GPtrArray *mime_types; - guint mime_types_notify_id; -@@ -339,6 +344,20 @@ gconf_address_compress_changed (GConfCli +--- mail/mail-config.c.orig ++++ mail/mail-config.c +@@ -358,6 +358,20 @@ gconf_mlimit_changed (GConfClient *clien } static void @@ -603,34 +253,10 @@ diff -u -p -r1.326 mail-config.c gconf_mime_types_changed (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer user_data) { -@@ -373,7 +392,11 @@ mail_config_init (void) - config->font_notify_id = gconf_client_notify_add (config->gconf, "/apps/evolution/mail/display/address_compress", - gconf_address_compress_changed, NULL, NULL, NULL); - config->font_notify_id = gconf_client_notify_add (config->gconf, "/apps/evolution/mail/display/address_count", -- gconf_address_count_changed, NULL, NULL, NULL); -+ gconf_address_count_changed, NULL, NULL, NULL); -+ config->mlimit_notify_id = gconf_client_notify_add (config->gconf, "/apps/evolution/mail/display/force_message_limit", -+ gconf_mlimit_changed, NULL, NULL, NULL); -+ config->mlimit_size_notify_id = gconf_client_notify_add (config->gconf, "/apps/evolution/mail/display/message_text_part_limit", -+ gconf_mlimit_size_changed, NULL, NULL, NULL); - config->spell_notify_id = gconf_client_notify_add (config->gconf, "/GNOME/Spell", - gconf_style_changed, NULL, NULL, NULL); - config->mark_citations__notify_id = gconf_client_notify_add (config->gconf, "/apps/evolution/mail/display/mark_citations", -@@ -397,6 +420,8 @@ mail_config_init (void) - config_cache_mime_types (); - config->address_compress = gconf_client_get_bool (config->gconf, "/apps/evolution/mail/display/address_compress", NULL); - config->address_count = gconf_client_get_int (config->gconf, "/apps/evolution/mail/display/address_count", NULL); -+ config->mlimit = gconf_client_get_bool (config->gconf, "/apps/evolution/mail/display/force_message_limit", NULL); -+ config->mlimit_size = gconf_client_get_int (config->gconf, "/apps/evolution/mail/display/message_text_part_limit", NULL); - config->accounts = e_account_list_new (config->gconf); - config->signatures = e_signature_list_new (config->gconf); +@@ -572,6 +586,15 @@ mail_config_get_message_limit (void) + return config->mlimit_size; } -@@ -536,6 +561,15 @@ mail_config_get_address_count (void) - return -1; - return config->address_count; -+} -+ +int +mail_config_get_message_limit (void) +{ @@ -638,36 +264,16 @@ diff -u -p -r1.326 mail-config.c + return -1; + + return config->mlimit_size; - } - ++} ++ const char * -Index: mail-config.glade + mail_config_get_label_color_by_name (const char *name) + { +Index: mail/mail-config.glade =================================================================== -RCS file: /cvs/gnome/evolution/mail/mail-config.glade,v -retrieving revision 1.174 -diff -u -p -r1.174 mail-config.glade ---- mail-config.glade 19 Jul 2006 15:26:27 -0000 1.174 -+++ mail/mail-config.glade 17 Nov 2006 18:46:45 -0000 -@@ -3342,7 +3342,7 @@ For example: "Work" or "P - - - True -- S_end message receipts: -+ S_end message receipts: - True - False - GTK_JUSTIFY_LEFT -@@ -3352,8 +3352,8 @@ For example: "Work" or "P - 0.5 - 0 - 0 -- PANGO_ELLIPSIZE_NONE - receipt_policy_dropdown -+ PANGO_ELLIPSIZE_NONE - -1 - False - 0 -@@ -4962,6 +4962,82 @@ For example: "Work" or "P +--- mail/mail-config.glade.orig ++++ mail/mail-config.glade +@@ -5038,6 +5038,82 @@ For example: "Work" or "P @@ -750,45 +356,3 @@ diff -u -p -r1.174 mail-config.glade True False -@@ -6572,7 +6648,7 @@ For example: "Work" or "P - - - True -- -+ - False - False - GTK_JUSTIFY_LEFT -@@ -6675,7 +6751,7 @@ For example: "Work" or "P - - - True -- -+ - False - False - GTK_JUSTIFY_LEFT -@@ -6731,7 +6807,7 @@ For example: "Work" or "P - - - True -- -+ - False - False - GTK_JUSTIFY_LEFT -Index: mail-config.h -=================================================================== -RCS file: /cvs/gnome/evolution/mail/mail-config.h,v -retrieving revision 1.121 -diff -u -p -r1.121 mail-config.h ---- mail-config.h 25 May 2006 04:59:47 -0000 1.121 -+++ mail/mail-config.h 17 Nov 2006 18:46:45 -0000 -@@ -134,6 +134,7 @@ void mail_config_add_account (struct _EA - void mail_config_remove_account (struct _EAccount *account); - void mail_config_set_default_account (struct _EAccount *account); - int mail_config_get_address_count (void); -+int mail_config_get_message_limit (void); - - void mail_config_remove_account_proxies (struct _EAccount *account); - void mail_config_prune_proxies (void);