Handle partial writes.
2008-01-15 Matthias Clasen <mclasne@redhat.com> * gdk-pixbuf-io.c (save_to_stream): Handle partial writes. svn path=/trunk/; revision=19380
This commit is contained in:
parent
37fcd9e6f9
commit
00a56fc2ab
@ -1,3 +1,7 @@
|
||||
2008-01-15 Matthias Clasen <mclasne@redhat.com>
|
||||
|
||||
* gdk-pixbuf-io.c (save_to_stream): Handle partial writes.
|
||||
|
||||
2008-01-16 Michael Natterer <mitch@imendio.com>
|
||||
|
||||
* gdk-pixbuf-io.c (save_to_stream): fix signature of this function
|
||||
|
@ -2218,24 +2218,32 @@ save_to_stream (const gchar *buffer,
|
||||
gpointer data)
|
||||
{
|
||||
SaveToStreamData *sdata = (SaveToStreamData *)data;
|
||||
gsize remaining;
|
||||
gssize written;
|
||||
GError *my_error = NULL;
|
||||
gsize n;
|
||||
|
||||
n = g_output_stream_write (sdata->stream,
|
||||
buffer, count,
|
||||
sdata->cancellable,
|
||||
&my_error);
|
||||
if (n != count) {
|
||||
if (!my_error) {
|
||||
g_set_error (error,
|
||||
G_IO_ERROR, 0,
|
||||
_("Error writing to image stream"));
|
||||
}
|
||||
else {
|
||||
g_propagate_error (error, my_error);
|
||||
}
|
||||
return FALSE;
|
||||
remaining = count;
|
||||
written = 0;
|
||||
while (remaining > 0) {
|
||||
buffer += written;
|
||||
remaining -= written;
|
||||
written = g_output_stream_write (sdata->stream,
|
||||
buffer, remaining,
|
||||
sdata->cancellable,
|
||||
&my_error);
|
||||
if (written < 0) {
|
||||
if (!my_error) {
|
||||
g_set_error (error,
|
||||
G_IO_ERROR, 0,
|
||||
_("Error writing to image stream"));
|
||||
}
|
||||
else {
|
||||
g_propagate_error (error, my_error);
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user