forked from AuroraMiddleware/gtk
Always save errno to a temporary before making other calls. (#335179,
2006-03-20 Matthias Clasen <mclasen@redhat.com> * gdk-pixbuf-animation.c: * gdk-pixbuf-io.c: * io-xpm.c: * io-xbm.c: * io-gif.c: Always save errno to a temporary before making other calls. (#335179, Morten Welinder)
This commit is contained in:
parent
5e66f6aa75
commit
2d281ed53d
@ -1,3 +1,12 @@
|
||||
2006-03-20 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk-pixbuf-animation.c:
|
||||
* gdk-pixbuf-io.c:
|
||||
* io-xpm.c:
|
||||
* io-xbm.c:
|
||||
* io-gif.c: Always save errno to a temporary before making
|
||||
other calls. (#335179, Morten Welinder)
|
||||
|
||||
2006-03-14 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* io-gif.c (gdk_pixbuf__gif_image_load): Add a shortcut
|
||||
|
@ -147,12 +147,13 @@ gdk_pixbuf_animation_new_from_file (const char *filename,
|
||||
display_name = g_filename_display_name (filename);
|
||||
f = g_fopen (filename, "rb");
|
||||
if (!f) {
|
||||
gint save_errno = errno;
|
||||
g_set_error (error,
|
||||
G_FILE_ERROR,
|
||||
g_file_error_from_errno (errno),
|
||||
g_file_error_from_errno (save_errno),
|
||||
_("Failed to open file '%s': %s"),
|
||||
display_name,
|
||||
g_strerror (errno));
|
||||
g_strerror (save_errno));
|
||||
g_free (display_name);
|
||||
return NULL;
|
||||
}
|
||||
|
@ -851,12 +851,13 @@ gdk_pixbuf_new_from_file (const char *filename,
|
||||
|
||||
f = g_fopen (filename, "rb");
|
||||
if (!f) {
|
||||
gint save_errno = errno;
|
||||
g_set_error (error,
|
||||
G_FILE_ERROR,
|
||||
g_file_error_from_errno (errno),
|
||||
g_file_error_from_errno (save_errno),
|
||||
_("Failed to open file '%s': %s"),
|
||||
display_name,
|
||||
g_strerror (errno));
|
||||
g_strerror (save_errno));
|
||||
g_free (display_name);
|
||||
return NULL;
|
||||
}
|
||||
@ -1101,13 +1102,14 @@ gdk_pixbuf_new_from_file_at_scale (const char *filename,
|
||||
|
||||
f = g_fopen (filename, "rb");
|
||||
if (!f) {
|
||||
gint save_errno = errno;
|
||||
gchar *display_name = g_filename_display_name (filename);
|
||||
g_set_error (error,
|
||||
G_FILE_ERROR,
|
||||
g_file_error_from_errno (errno),
|
||||
g_file_error_from_errno (save_errno),
|
||||
_("Failed to open file '%s': %s"),
|
||||
display_name,
|
||||
g_strerror (errno));
|
||||
g_strerror (save_errno));
|
||||
g_free (display_name);
|
||||
return NULL;
|
||||
}
|
||||
@ -1370,11 +1372,12 @@ save_to_file_callback (const gchar *buf,
|
||||
|
||||
n = fwrite (buf, 1, count, filehandle);
|
||||
if (n != count) {
|
||||
gint save_errno = errno;
|
||||
g_set_error (error,
|
||||
G_FILE_ERROR,
|
||||
g_file_error_from_errno (errno),
|
||||
g_file_error_from_errno (save_errno),
|
||||
_("Error writing to image file: %s"),
|
||||
g_strerror (errno));
|
||||
g_strerror (save_errno));
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
@ -1462,9 +1465,10 @@ save_to_callback_with_tmp_file (GdkPixbufModule *image_module,
|
||||
goto end;
|
||||
f = fdopen (fd, "wb+");
|
||||
if (f == NULL) {
|
||||
gint save_errno = errno;
|
||||
g_set_error (error,
|
||||
G_FILE_ERROR,
|
||||
g_file_error_from_errno (errno),
|
||||
g_file_error_from_errno (save_errno),
|
||||
_("Failed to open temporary file"));
|
||||
goto end;
|
||||
}
|
||||
@ -1487,9 +1491,10 @@ save_to_callback_with_tmp_file (GdkPixbufModule *image_module,
|
||||
break;
|
||||
}
|
||||
if (ferror (f)) {
|
||||
gint save_errno = errno;
|
||||
g_set_error (error,
|
||||
G_FILE_ERROR,
|
||||
g_file_error_from_errno (errno),
|
||||
g_file_error_from_errno (save_errno),
|
||||
_("Failed to read from temporary file"));
|
||||
goto end;
|
||||
}
|
||||
@ -1720,13 +1725,14 @@ gdk_pixbuf_savev (GdkPixbuf *pixbuf,
|
||||
f = g_fopen (filename, "wb");
|
||||
|
||||
if (f == NULL) {
|
||||
gint save_errno = errno;
|
||||
gchar *display_name = g_filename_display_name (filename);
|
||||
g_set_error (error,
|
||||
G_FILE_ERROR,
|
||||
g_file_error_from_errno (errno),
|
||||
g_file_error_from_errno (save_errno),
|
||||
_("Failed to open '%s' for writing: %s"),
|
||||
display_name,
|
||||
g_strerror (errno));
|
||||
g_strerror (save_errno));
|
||||
g_free (display_name);
|
||||
return FALSE;
|
||||
}
|
||||
@ -1744,13 +1750,14 @@ gdk_pixbuf_savev (GdkPixbuf *pixbuf,
|
||||
}
|
||||
|
||||
if (fclose (f) < 0) {
|
||||
gint save_errno = errno;
|
||||
gchar *display_name = g_filename_display_name (filename);
|
||||
g_set_error (error,
|
||||
G_FILE_ERROR,
|
||||
g_file_error_from_errno (errno),
|
||||
g_file_error_from_errno (save_errno),
|
||||
_("Failed to close '%s' while writing image, all data may not have been saved: %s"),
|
||||
display_name,
|
||||
g_strerror (errno));
|
||||
g_strerror (save_errno));
|
||||
g_free (display_name);
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -214,11 +214,14 @@ gif_read (GifContext *context, guchar *buffer, size_t len)
|
||||
#endif
|
||||
retval = (fread(buffer, len, 1, context->file) != 0);
|
||||
|
||||
if (!retval && ferror (context->file))
|
||||
if (!retval && ferror (context->file)) {
|
||||
gint save_errno = errno;
|
||||
g_set_error (context->error,
|
||||
G_FILE_ERROR,
|
||||
g_file_error_from_errno (errno),
|
||||
_("Failure reading GIF: %s"), strerror (errno));
|
||||
g_file_error_from_errno (save_errno),
|
||||
_("Failure reading GIF: %s"),
|
||||
strerror (save_errno));
|
||||
}
|
||||
|
||||
#ifdef IO_GIFDEBUG
|
||||
if (len < 100) {
|
||||
|
@ -435,10 +435,11 @@ gdk_pixbuf__xbm_image_load_increment (gpointer data,
|
||||
g_return_val_if_fail (data != NULL, FALSE);
|
||||
|
||||
if (fwrite (buf, sizeof (guchar), size, context->file) != size) {
|
||||
gint save_errno = errno;
|
||||
context->all_okay = FALSE;
|
||||
g_set_error (error,
|
||||
G_FILE_ERROR,
|
||||
g_file_error_from_errno (errno),
|
||||
g_file_error_from_errno (save_errno),
|
||||
_("Failed to write to temporary file when loading XBM image"));
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -769,10 +769,11 @@ gdk_pixbuf__xpm_image_load_increment (gpointer data,
|
||||
g_return_val_if_fail (data != NULL, FALSE);
|
||||
|
||||
if (fwrite (buf, sizeof (guchar), size, context->file) != size) {
|
||||
gint save_errno = errno;
|
||||
context->all_okay = FALSE;
|
||||
g_set_error (error,
|
||||
G_FILE_ERROR,
|
||||
g_file_error_from_errno (errno),
|
||||
g_file_error_from_errno (save_errno),
|
||||
_("Failed to write to temporary file when loading XPM image"));
|
||||
return FALSE;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user