Patch taken from maemo-gtk:

2007-01-17  Michael Natterer  <mitch@imendio.com>

	Patch taken from maemo-gtk:

	* io-png.c (png_text_to_pixbuf_option): don't call g_convert() on
	ASCII strings.

	(png_info_callback): set an error when the size_func would scale
	the pixbuf away completely.


svn path=/trunk/; revision=17179
This commit is contained in:
Michael Natterer 2007-01-17 14:07:01 +00:00 committed by Michael Natterer
parent 3ce8736298
commit 852e8c1729
2 changed files with 32 additions and 6 deletions

View File

@ -1,3 +1,13 @@
2007-01-17 Michael Natterer <mitch@imendio.com>
Patch taken from maemo-gtk:
* io-png.c (png_text_to_pixbuf_option): don't call g_convert() on
ASCII strings.
(png_info_callback): set an error when the size_func would scale
the pixbuf away completely.
2007-01-16 Matthias Clasen <mclasen@redhat.com> 2007-01-16 Matthias Clasen <mclasen@redhat.com>
* gdk-pixbuf-loader.c (gdk_pixbuf_loader_write): Just * gdk-pixbuf-loader.c (gdk_pixbuf_loader_write): Just

View File

@ -204,14 +204,24 @@ png_text_to_pixbuf_option (png_text text_ptr,
gchar **key, gchar **key,
gchar **value) gchar **value)
{ {
if (text_ptr.text_length > 0) { gboolean is_ascii = TRUE;
*value = g_convert (text_ptr.text, -1, int i;
"UTF-8", "ISO-8859-1",
NULL, NULL, NULL); /* Avoid loading iconv if the text is plain ASCII */
} for (i = 0; i < text_ptr.text_length; i++)
else { if (text_ptr.text[i] & 0x80) {
is_ascii = FALSE;
break;
}
if (is_ascii) {
*value = g_strdup (text_ptr.text); *value = g_strdup (text_ptr.text);
} else {
*value = g_convert (text_ptr.text, -1,
"UTF-8", "ISO-8859-1",
NULL, NULL, NULL);
} }
if (*value) { if (*value) {
*key = g_strconcat ("tEXt::", text_ptr.key, NULL); *key = g_strconcat ("tEXt::", text_ptr.key, NULL);
return TRUE; return TRUE;
@ -602,6 +612,12 @@ png_info_callback (png_structp png_read_ptr,
if (w == 0 || h == 0) { if (w == 0 || h == 0) {
lc->fatal_error_occurred = TRUE; lc->fatal_error_occurred = TRUE;
if (lc->error && *lc->error == NULL) {
g_set_error (lc->error,
GDK_PIXBUF_ERROR,
GDK_PIXBUF_ERROR_FAILED,
_("Transformed PNG has zero width or height."));
}
return; return;
} }
} }