aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-display.c
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2000-05-09 06:28:11 +0800
committerDan Winship <danw@src.gnome.org>2000-05-09 06:28:11 +0800
commit38165888d297d91e1bdf5f1ac6027b900b23b740 (patch)
treef4f75d5c426ff0e7422b22ddd543b90fdc0c1a05 /mail/mail-display.c
parent65ec43cb553420890c8d14b6c76ce2606674d893 (diff)
downloadgsoc2013-evolution-38165888d297d91e1bdf5f1ac6027b900b23b740.tar.gz
gsoc2013-evolution-38165888d297d91e1bdf5f1ac6027b900b23b740.tar.zst
gsoc2013-evolution-38165888d297d91e1bdf5f1ac6027b900b23b740.zip
Update for CamelStream CamelException changes.
* mail-display.c (save_data_cb): (on_url_requested): Update for CamelStream CamelException changes. * mail-format.c: Pass NULL for a CamelException in a bunch of places... the user will see that the data is not being displayed, and there's not a lot we can do, and none of these things should be failing anyway. Maybe fix this later. svn path=/trunk/; revision=2925
Diffstat (limited to 'mail/mail-display.c')
-rw-r--r--mail/mail-display.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/mail/mail-display.c b/mail/mail-display.c
index bee6e9cc74..0e7eac06e1 100644
--- a/mail/mail-display.c
+++ b/mail/mail-display.c
@@ -44,6 +44,7 @@ save_data_cb (GtkWidget *widget, gpointer user_data)
gtk_widget_get_ancestor (widget, GTK_TYPE_FILE_SELECTION);
char *name, buf[1024];
int fd, nread;
+ CamelException *ex;
name = gtk_file_selection_get_filename (file_select);
@@ -69,14 +70,24 @@ save_data_cb (GtkWidget *widget, gpointer user_data)
return;
}
- camel_stream_reset (output);
- do {
- nread = camel_stream_read (output, buf, sizeof (buf));
+ ex = camel_exception_new ();
+ camel_stream_reset (output, ex);
+ while (!camel_exception_is_set (ex) && !camel_stream_eos (output)) {
+ nread = camel_stream_read (output, buf, sizeof (buf), ex);
if (nread > 0)
write (fd, buf, nread);
- } while (!camel_stream_eos (output));
+ }
close (fd);
+ if (camel_exception_is_set (ex)) {
+ char *msg;
+
+ msg = g_strdup_printf ("Could not write data: %s",
+ camel_exception_get_description (ex));
+ gnome_error_dialog_parented (msg, GTK_WINDOW (file_select));
+ }
+ camel_exception_free (ex);
+
gtk_widget_destroy (GTK_WIDGET (file_select));
}
@@ -163,9 +174,10 @@ on_url_requested (GtkHTML *html, const char *url, GtkHTMLStreamHandle handle,
output = camel_data_wrapper_get_output_stream (data);
g_return_if_fail (CAMEL_IS_STREAM (output));
- camel_stream_reset (output);
+ camel_stream_reset (output, NULL);
do {
- nread = camel_stream_read (output, buf, sizeof (buf));
+ nread = camel_stream_read (output, buf,
+ sizeof (buf), NULL);
if (nread > 0)
gtk_html_write (html, handle, buf, nread);
} while (!camel_stream_eos (output));