From fbe7acf59ebf6dc3f04a6ef108ff3887fa5d7972 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 3 Dec 2022 02:58:11 +0000 Subject: gentoo auto-resync : 03:12:2022 - 02:58:11 --- mail-client/Manifest.gz | Bin 3715 -> 3714 bytes mail-client/evolution/Manifest | 2 + ...llWindow-The-New-menu-is-not-filled-after.patch | 119 ++++++ ...-Update-preview-s-iframe-height-to-match-.patch | 417 +++++++++++++++++++++ 4 files changed, 538 insertions(+) create mode 100644 mail-client/evolution/files/3.44.4-I-1969-EShellWindow-The-New-menu-is-not-filled-after.patch create mode 100644 mail-client/evolution/files/3.44.4-I-2001-Mail-Update-preview-s-iframe-height-to-match-.patch (limited to 'mail-client') diff --git a/mail-client/Manifest.gz b/mail-client/Manifest.gz index 9160245bf6ef..0857a355257b 100644 Binary files a/mail-client/Manifest.gz and b/mail-client/Manifest.gz differ diff --git a/mail-client/evolution/Manifest b/mail-client/evolution/Manifest index ece2c534eff4..24c959058047 100644 --- a/mail-client/evolution/Manifest +++ b/mail-client/evolution/Manifest @@ -1,3 +1,5 @@ +AUX 3.44.4-I-1969-EShellWindow-The-New-menu-is-not-filled-after.patch 3533 BLAKE2B 299189598870deb1031f1c060b96727c03f26bf5a92a91eab2bd1e174d68d572cd3418bc298387a00b9096d1c17db144d97124d7ec46a948d1fa402d1e43ed8d SHA512 6f235d034f92efc91be319709728436f3cd109fcdcea4432f6c96f8da94b66b6e45681907a59a098eb949bed1188d6714bbb5476ae924e858c8f5f0f28179166 +AUX 3.44.4-I-2001-Mail-Update-preview-s-iframe-height-to-match-.patch 13915 BLAKE2B 6d75a8a8d9097e74712149d48cb2872de1aaa39290c37ef371c7be45ed783c1c88d6fdf1f60015848b149f4f2c92e6931a4e20b0a9e7af444180d0b3cb7690e5 SHA512 f679b25d5b0f257c3a5aee5a6fc8fa26776e2f11a3874a91a26772b8ebe98b5cb3e1058d17faa0336fbb28a714e6ab28ef6cc5666ce4d1b63ac0ba6ef5e81220 DIST evolution-3.44.4.tar.xz 13130588 BLAKE2B ffb6da420acbf7be7e5eb6fad44bcb9f00e9c52f99314a4f8e8e35e898eaac8a8fdc511328fd519fed5ac9ef98e63e326cfc7dde324919c1cc6e60ff17b3ad76 SHA512 1c2a30e00e4f9226ced2617cf5a69f33db914d5a94dd22223c9dc12e635952a52e2fac395d49de70c70c21004fb0d87e3ba81725aff924bb0b386ffb4901d058 DIST evolution-3.46.0.tar.xz 13286524 BLAKE2B b9c9605d3d0fa697832fc181f25f85cccee0c1d2b37578221e0a7632b1daab4c21fbfa13142ef2ec24a4da4c7c39e182b912d803ee2ab1a9e36e7fe634d109f8 SHA512 58b532711196e7c79cffa2357245743562a94fd9629718066ba16a26889fb45f94992e4cc3cf0d3911356b700abecb05099c5c854749db282a241321c0d0c605 DIST evolution-3.46.1.tar.xz 13287436 BLAKE2B 16e8fd77d7c1db2b1b04a4455e84054acbf8f03fb2eaadf072c4a1965b4527e709f6cdcc9f5762d8a5ed2757bedfc20e390466ce4c87437d7fc6755e2f205d30 SHA512 20b6a5663ec6ab43af6ec7c15a64b1d1070f8488aaebd3fbaca4b4cc8b70bf4b8087b047e5b75e37273818b8d1d6bde5139c708284626e9d3c15b83dc09f5d3b diff --git a/mail-client/evolution/files/3.44.4-I-1969-EShellWindow-The-New-menu-is-not-filled-after.patch b/mail-client/evolution/files/3.44.4-I-1969-EShellWindow-The-New-menu-is-not-filled-after.patch new file mode 100644 index 000000000000..882448e2f07c --- /dev/null +++ b/mail-client/evolution/files/3.44.4-I-1969-EShellWindow-The-New-menu-is-not-filled-after.patch @@ -0,0 +1,119 @@ +From 080791256d78a6d97384b4eef0d411cdc73feeb0 Mon Sep 17 00:00:00 2001 +From: Milan Crha +Date: Fri, 23 Sep 2022 11:34:51 +0200 +Subject: [PATCH 2/2] I#1969 - EShellWindow: The 'New' menu is not filled after + start + +Related to https://gitlab.gnome.org/GNOME/evolution/-/issues/1969 +--- + src/shell/e-shell-window.c | 45 ++++++++++++++++++++++++++++++++++++-- + 1 file changed, 43 insertions(+), 2 deletions(-) + +diff --git a/src/shell/e-shell-window.c b/src/shell/e-shell-window.c +index e7be30feee..86c83e5e1e 100644 +--- a/src/shell/e-shell-window.c ++++ b/src/shell/e-shell-window.c +@@ -47,6 +47,7 @@ enum { + enum { + CLOSE_ALERT, + SHELL_VIEW_CREATED, ++ UPDATE_NEW_MENU, + LAST_SIGNAL + }; + +@@ -120,6 +121,17 @@ shell_window_toolbar_update_new_menu (GtkMenuToolButton *menu_tool_button, + gtk_menu_tool_button_set_menu (menu_tool_button, menu); + } + ++static void ++shell_window_toolbar_update_new_menu_sig (EShellWindow *shell_window, ++ GtkMenuToolButton *menu_tool_button) ++{ ++ GtkWidget *menu; ++ ++ /* Update the "New" menu tool button submenu. */ ++ menu = e_shell_window_create_new_menu (shell_window); ++ gtk_menu_tool_button_set_menu (menu_tool_button, menu); ++} ++ + static gboolean + shell_window_active_view_to_prefer_item (GBinding *binding, + const GValue *source_value, +@@ -160,6 +172,8 @@ shell_window_set_notebook_page (EShellWindow *shell_window, + g_return_if_fail (page_num >= 0); + + gtk_notebook_set_current_page (notebook, page_num); ++ ++ g_signal_emit (shell_window, signals[UPDATE_NEW_MENU], 0, NULL); + } + + static void +@@ -463,8 +477,8 @@ shell_window_construct_menubar (EShellWindow *shell_window) + main_menu, "visible", + G_BINDING_SYNC_CREATE); + +- e_signal_connect_notify ( +- shell_window, "notify::active-view", ++ g_signal_connect ( ++ shell_window, "update-new-menu", + G_CALLBACK (shell_window_menubar_update_new_menu), NULL); + + return main_menu; +@@ -544,6 +558,11 @@ shell_window_construct_toolbar (EShellWindow *shell_window) + G_CALLBACK (shell_window_toolbar_update_new_menu), + shell_window); + ++ g_signal_connect_object ( ++ shell_window, "update-new-menu", ++ G_CALLBACK (shell_window_toolbar_update_new_menu_sig), ++ item, 0); ++ + gtk_box_pack_start (GTK_BOX (box), toolbar, TRUE, TRUE, 0); + + toolbar = e_shell_window_get_managed_widget ( +@@ -1133,6 +1152,24 @@ e_shell_window_class_init (EShellWindowClass *class) + G_TYPE_NONE, 1, + E_TYPE_SHELL_VIEW); + ++ /* ++ * EShellWindow::update-new-menu ++ * @shell_window: the #EShellWindow ++ * ++ * Emitted when the 'New' menu should be updated. ++ * ++ * Since: 3.44.5 ++ */ ++ signals[UPDATE_NEW_MENU] = g_signal_new ( ++ "update-new-menu", ++ G_OBJECT_CLASS_TYPE (object_class), ++ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, ++ 0, ++ NULL, NULL, ++ g_cclosure_marshal_VOID__VOID, ++ G_TYPE_NONE, 0, ++ G_TYPE_NONE); ++ + binding_set = gtk_binding_set_by_class (class); + gtk_binding_entry_add_signal ( + binding_set, GDK_KEY_Escape, 0, "close-alert", 0); +@@ -2049,6 +2086,8 @@ e_shell_window_register_new_item_actions (EShellWindow *shell_window, + G_OBJECT (action), + "primary", GINT_TO_POINTER (TRUE)); + } ++ ++ g_signal_emit (shell_window, signals[UPDATE_NEW_MENU], 0, NULL); + } + + /** +@@ -2126,6 +2165,8 @@ e_shell_window_register_new_source_actions (EShellWindow *shell_window, + G_OBJECT (action), + "backend-name", (gpointer) backend_name); + } ++ ++ g_signal_emit (shell_window, signals[UPDATE_NEW_MENU], 0, NULL); + } + + /** +-- +2.37.4 + diff --git a/mail-client/evolution/files/3.44.4-I-2001-Mail-Update-preview-s-iframe-height-to-match-.patch b/mail-client/evolution/files/3.44.4-I-2001-Mail-Update-preview-s-iframe-height-to-match-.patch new file mode 100644 index 000000000000..e7fe8acd07a6 --- /dev/null +++ b/mail-client/evolution/files/3.44.4-I-2001-Mail-Update-preview-s-iframe-height-to-match-.patch @@ -0,0 +1,417 @@ +From 44ac716d199b1c0a07a92014d2d64c28a077f876 Mon Sep 17 00:00:00 2001 +From: Milan Crha +Date: Fri, 16 Sep 2022 08:47:07 +0200 +Subject: [PATCH 1/2] I#2001 - Mail: Update preview's iframe height to match + its content + +Closes https://gitlab.gnome.org/GNOME/evolution/-/issues/2001 +--- + data/webkit/e-web-view.js | 60 ++++++++++++---- + data/webkit/webview.css | 32 ++++----- + src/em-format/e-mail-formatter-text-plain.c | 2 +- + src/mail/e-mail-display.c | 69 ++++++++++++++++++- + .../e-mail-formatter-text-highlight.c | 14 +++- + 5 files changed, 140 insertions(+), 37 deletions(-) + +diff --git a/data/webkit/e-web-view.js b/data/webkit/e-web-view.js +index a8f99c4668..058b4e578c 100644 +--- a/data/webkit/e-web-view.js ++++ b/data/webkit/e-web-view.js +@@ -772,6 +772,38 @@ Evo.EnsureMainDocumentInitialized = function() + Evo.initializeAndPostContentLoaded(null); + } + ++Evo.mailDisplayUpdateIFramesHeightRecursive = function(doc) ++{ ++ if (!doc) ++ return; ++ ++ var ii, iframes; ++ ++ iframes = doc.getElementsByTagName("iframe"); ++ ++ /* Update from bottom to top */ ++ for (ii = 0; ii < iframes.length; ii++) { ++ Evo.mailDisplayUpdateIFramesHeightRecursive(iframes[ii].contentDocument); ++ } ++ ++ if (!doc.body || !doc.defaultView || !doc.defaultView.frameElement) ++ return; ++ ++ if (doc.defaultView.frameElement.height == doc.body.scrollHeight) ++ doc.defaultView.frameElement.height = 10; ++ doc.defaultView.frameElement.height = doc.body.scrollHeight + 2 + (doc.body.scrollWidth > doc.body.clientWidth ? 20 : 0); ++} ++ ++Evo.MailDisplayUpdateIFramesHeight = function() ++{ ++ var scrolly = document.defaultView ? document.defaultView.scrollY : -1; ++ ++ Evo.mailDisplayUpdateIFramesHeightRecursive(document); ++ ++ if (scrolly != -1 && document.defaultView.scrollY != scrolly) ++ document.defaultView.scrollTo(0, scrolly); ++} ++ + if (this instanceof Window && this.document) { + this.document.onload = function() { Evo.initializeAndPostContentLoaded(this); }; + +@@ -857,9 +889,8 @@ Evo.mailDisplayResizeContentToPreviewWidth = function() + local_width -= 2; /* 1 + 1 frame borders */ + } else if (!iframes.length) { + /* Message main body */ +- local_width -= 8; /* 8 + 8 margins of body without iframes */ +- if (level > 1) +- local_width -= 8; ++ local_width -= level * 20; /* 10 + 10 margins of body without iframes */ ++ local_width -= 4; + + Evo.addRuleIntoStyleSheetDocument(doc, "-e-mail-formatter-style-sheet", "body", "width: " + local_width + "px;"); + Evo.addRuleIntoStyleSheetDocument(doc, "-e-mail-formatter-style-sheet", ".part-container", "width: " + local_width + "px;"); +@@ -869,7 +900,7 @@ Evo.mailDisplayResizeContentToPreviewWidth = function() + Evo.addRuleIntoStyleSheetDocument(doc, "-e-mail-formatter-style-sheet", "body", + "width: " + local_width + "px;"); + +- local_width -= 2; /* 1 + 1 frame borders */ ++ local_width -= 4; /* 2 + 2 frame borders */ + + Evo.addRuleIntoStyleSheetDocument(doc, "-e-mail-formatter-style-sheet", ".part-container-nostyle iframe", + "width: " + local_width + "px;"); +@@ -881,19 +912,15 @@ Evo.mailDisplayResizeContentToPreviewWidth = function() + Evo.addRuleIntoStyleSheetDocument(doc, "-e-mail-formatter-style-sheet", ".part-container iframe", + "width: " + (local_width - 10) + "px;"); + } else { +- local_width -= 20; /* 10 + 10 margins of body with iframes */ +- local_width -= 8; /* attachment margin */ +- local_width -= 2; /* 1 + 1 frame borders */ ++ local_width -= (level - 1) * 20; /* 10 + 10 margins of body with iframes */ ++ local_width -= 4; /* 2 + 2 frame borders */ ++ local_width -= 10; /* attachment margin */ + +- /* We need to subtract another 10 pixels from the iframe width to +- * have the iframe's borders on the correct place. We can't subtract +- * it from local_width as we don't want to propagate this change +- * further. */ + Evo.addRuleIntoStyleSheetDocument(doc, "-e-mail-formatter-style-sheet", ".part-container-nostyle iframe", +- "width: " + (local_width - 10) + "px;"); ++ "width: " + local_width + "px;"); + + Evo.addRuleIntoStyleSheetDocument(doc, "-e-mail-formatter-style-sheet", "body > .part-container-nostyle iframe", +- "width: " + (local_width - 10) + "px;"); ++ "width: " + local_width + "px;"); + } + + /* Add rules to every sub document */ +@@ -904,7 +931,7 @@ Evo.mailDisplayResizeContentToPreviewWidth = function() + var tmp_local_width = local_width; + + if (level == 0) { +- tmp_local_width -= 8; /* attachment's margin */ ++ tmp_local_width -= 10; /* attachment's margin */ + + Evo.addRuleIntoStyleSheetDocument(doc, "-e-mail-formatter-style-sheet", ".attachment-wrapper iframe:not([src*=\"__formatas=\"])", + "width: " + tmp_local_width + "px;"); +@@ -913,7 +940,7 @@ Evo.mailDisplayResizeContentToPreviewWidth = function() + "width: " + tmp_local_width + "px;"); + + Evo.addRuleIntoStyleSheetDocument(doc, "-e-mail-formatter-style-sheet", "body > .part-container-nostyle iframe", +- "width: " + local_width + "px;"); ++ "width: " + tmp_local_width + "px;"); + } + + this.set_iframe_and_body_width (iframes[ii].contentDocument, tmp_local_width, original_width, level + 1); +@@ -926,6 +953,7 @@ Evo.mailDisplayResizeContentToPreviewWidth = function() + width -= 20; /* 10 + 10 margins of body */ + + traversar.set_iframe_and_body_width(document, width, width, 0); ++ window.webkit.messageHandlers.scheduleIFramesHeightUpdate.postMessage(0); + } + + Evo.mailDisplayUpdateMagicSpacebarState = function() +@@ -1294,6 +1322,8 @@ Evo.MailDisplayShowAttachment = function(element_id, show) + window.webkit.messageHandlers.contentLoaded.postMessage(iframe_id); + Evo.mailDisplayUpdateMagicSpacebarState(); + } ++ } else if (elem.ownerDocument.defaultView.frameElement) { ++ window.webkit.messageHandlers.scheduleIFramesHeightUpdate.postMessage(0); + } + } + +diff --git a/data/webkit/webview.css b/data/webkit/webview.css +index 0d21253644..5b08388672 100644 +--- a/data/webkit/webview.css ++++ b/data/webkit/webview.css +@@ -12,8 +12,8 @@ img { + } + + body { +- /* Use margin so that children can safely use width=100% */ +- margin: 5px 10px 5px 10px; ++ /* Use padding so that children can safely use width=100% */ ++ padding: 8px; + } + + body, div, p, td { +@@ -38,21 +38,21 @@ img#__evo-contact-photo { + + img.navigable { + cursor: pointer; +- margin-right: 4px; ++ padding-right: 4px; + } + + .attachments { + background: #FFF; + border: 1px solid silver; +- margin: 10px 10px 10px 10px; ++ padding: 10px 10px 10px 10px; + border-left: 0; + border-right: 0; + border-bottom: 0; + } + + .attachment { +- margin-left: 8px; +- margin-right: 0px; ++ padding-left: 8px; ++ padding-right: 0px; + } + + .attachment td { +@@ -66,21 +66,21 @@ iframe:not([id$=".itip"]) { + + .part-container { + height: 100%; +- margin-top: 2px; +- margin-bottom: 2px; ++ padding: 0px; + } + + .part-container-nostyle iframe { +- margin-right: 10px; ++ margin: 0px; ++ padding-right: 0px; + } + + .part-container-inner-margin { +- margin: 8px; ++ padding: 0px; + } + + object { /* GtkWidgets */ +- margin-top: 2px; +- margin-bottom: 2px; ++ padding-top: 2px; ++ padding-bottom: 2px; + } + + .__evo-highlight { +@@ -175,7 +175,7 @@ th.rtl { + /***** PRINTING *******/ + + .printing-header { +- margin-bottom: 20px; ++ padding-bottom: 20px; + } + + .printing-header h1, +@@ -195,7 +195,7 @@ th.rtl { + /******* ITIP *********/ + .itip.icon { + float: left; +- margin-right: 5px; ++ padding-right: 5px; + } + + .itip.content { +@@ -204,7 +204,7 @@ th.rtl { + } + + .itip.description { +- margin: 5px; ++ padding: 5px; + } + + .itip tr { +@@ -228,7 +228,7 @@ th.rtl { + } + + #table_row_buttons img { +- margin-right: 5px; ++ padding-right: 5px; + vertical-align: middle; + } + +diff --git a/src/em-format/e-mail-formatter-text-plain.c b/src/em-format/e-mail-formatter-text-plain.c +index 7c6befda6b..3858bcdb3d 100644 +--- a/src/em-format/e-mail-formatter-text-plain.c ++++ b/src/em-format/e-mail-formatter-text-plain.c +@@ -111,7 +111,7 @@ emfe_text_plain_format (EMailFormatterExtension *extension, + string = + "
"; ++ "style=\"border: none; padding: 0; margin: 0;\">"; + + g_output_stream_write_all ( + stream, string, strlen (string), +diff --git a/src/mail/e-mail-display.c b/src/mail/e-mail-display.c +index cc38c65957..c60ab45cc5 100644 +--- a/src/mail/e-mail-display.c ++++ b/src/mail/e-mail-display.c +@@ -83,6 +83,7 @@ struct _EMailDisplayPrivate { + GSettings *settings; + + guint scheduled_reload; ++ guint iframes_height_update_id; + + GHashTable *old_settings; + +@@ -537,6 +538,43 @@ initialize_web_view_colors (EMailDisplay *display, + e_web_view_get_cancellable (E_WEB_VIEW (display))); + } + ++static gboolean ++mail_display_can_use_frame_flattening (void) ++{ ++ guint wk_major, wk_minor; ++ ++ wk_major = webkit_get_major_version (); ++ wk_minor = webkit_get_minor_version (); ++ ++ /* The 2.38 is the last version, which supports frame-flattening; ++ prefer it over the manual and expensive calculations. */ ++ return (wk_major < 2) || (wk_major == 2 && wk_minor <= 38); ++} ++ ++static gboolean ++mail_display_iframes_height_update_cb (gpointer user_data) ++{ ++ EMailDisplay *mail_display = user_data; ++ ++ mail_display->priv->iframes_height_update_id = 0; ++ ++ e_web_view_jsc_run_script (WEBKIT_WEB_VIEW (mail_display), e_web_view_get_cancellable (E_WEB_VIEW (mail_display)), ++ "Evo.MailDisplayUpdateIFramesHeight();"); ++ ++ return G_SOURCE_REMOVE; ++} ++ ++static void ++mail_display_schedule_iframes_height_update (EMailDisplay *mail_display) ++{ ++ if (mail_display_can_use_frame_flattening ()) ++ return; ++ ++ if (mail_display->priv->iframes_height_update_id) ++ g_source_remove (mail_display->priv->iframes_height_update_id); ++ mail_display->priv->iframes_height_update_id = g_timeout_add (100, mail_display_iframes_height_update_cb, mail_display); ++} ++ + static void + mail_display_change_one_attachment_visibility (EMailDisplay *display, + EAttachment *attachment, +@@ -1353,6 +1391,8 @@ mail_display_content_loaded_cb (EWebView *web_view, + gtk_widget_grab_focus (widget); + } + } ++ ++ mail_display_schedule_iframes_height_update (mail_display); + } + + static void +@@ -1475,6 +1515,11 @@ mail_display_dispose (GObject *object) + priv->scheduled_reload = 0; + } + ++ if (priv->iframes_height_update_id > 0) { ++ g_source_remove (priv->iframes_height_update_id); ++ priv->iframes_height_update_id = 0; ++ } ++ + if (priv->settings != NULL) { + g_signal_handlers_disconnect_matched ( + priv->settings, G_SIGNAL_MATCH_DATA, +@@ -1599,6 +1644,18 @@ mail_display_magic_spacebar_state_changed_cb (WebKitUserContentManager *manager, + mail_display->priv->magic_spacebar_state = jsc_value_to_int32 (jsc_value); + } + ++static void ++mail_display_schedule_iframes_height_update_cb (WebKitUserContentManager *manager, ++ WebKitJavascriptResult *js_result, ++ gpointer user_data) ++{ ++ EMailDisplay *mail_display = user_data; ++ ++ g_return_if_fail (mail_display != NULL); ++ ++ mail_display_schedule_iframes_height_update (mail_display); ++} ++ + static void + mail_display_constructed (GObject *object) + { +@@ -1611,9 +1668,11 @@ mail_display_constructed (GObject *object) + /* Chain up to parent's constructed() method. */ + G_OBJECT_CLASS (e_mail_display_parent_class)->constructed (object); + +- g_object_set (webkit_web_view_get_settings (WEBKIT_WEB_VIEW (object)), +- "enable-frame-flattening", TRUE, +- NULL); ++ if (mail_display_can_use_frame_flattening ()) { ++ g_object_set (webkit_web_view_get_settings (WEBKIT_WEB_VIEW (object)), ++ "enable-frame-flattening", TRUE, ++ NULL); ++ } + + display = E_MAIL_DISPLAY (object); + web_view = E_WEB_VIEW (object); +@@ -1661,8 +1720,12 @@ mail_display_constructed (GObject *object) + g_signal_connect_object (manager, "script-message-received::mailDisplayMagicSpacebarStateChanged", + G_CALLBACK (mail_display_magic_spacebar_state_changed_cb), display, 0); + ++ g_signal_connect_object (manager, "script-message-received::scheduleIFramesHeightUpdate", ++ G_CALLBACK (mail_display_schedule_iframes_height_update_cb), display, 0); ++ + webkit_user_content_manager_register_script_message_handler (manager, "mailDisplayHeadersCollapsed"); + webkit_user_content_manager_register_script_message_handler (manager, "mailDisplayMagicSpacebarStateChanged"); ++ webkit_user_content_manager_register_script_message_handler (manager, "scheduleIFramesHeightUpdate"); + + e_extensible_load_extensions (E_EXTENSIBLE (object)); + } +diff --git a/src/modules/text-highlight/e-mail-formatter-text-highlight.c b/src/modules/text-highlight/e-mail-formatter-text-highlight.c +index d7c641c157..f1db9bf79c 100644 +--- a/src/modules/text-highlight/e-mail-formatter-text-highlight.c ++++ b/src/modules/text-highlight/e-mail-formatter-text-highlight.c +@@ -135,16 +135,26 @@ text_hightlight_read_data_thread (gpointer user_data) + { + TextHighlightClosure *closure = user_data; + gint nbuffer = 10240; ++ gssize read; ++ gsize wrote = 0; + gchar *buffer; + + g_return_val_if_fail (closure != NULL, NULL); + + buffer = g_new (gchar, nbuffer); + ++ strcpy (buffer, ""); ++ read = strlen (buffer); ++ ++ if (!g_output_stream_write_all (closure->output_stream, buffer, read, &wrote, closure->cancellable, &closure->error) || ++ (gssize) wrote != read || closure->error) { ++ g_free (buffer); ++ return NULL; ++ } ++ + while (!camel_stream_eos (closure->read_stream) && + !g_cancellable_set_error_if_cancelled (closure->cancellable, &closure->error)) { +- gssize read; +- gsize wrote = 0; ++ wrote = 0; + + read = camel_stream_read (closure->read_stream, buffer, nbuffer, closure->cancellable, &closure->error); + if (read < 0 || closure->error) +-- +2.37.4 + -- cgit v1.2.3