diff options
author | Matthias Clasen <mclasen@redhat.com> | 2005-07-22 15:34:32 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2005-07-22 15:34:32 +0000 |
commit | da260ce8356e69a553c2c4737c28da686b88fb4c (patch) | |
tree | 620cebf4dff58c297e23b89cb20aff481495136b /gdk-pixbuf | |
parent | fee54dfc8fb042b2e2f1b13507ecf0d030c6542b (diff) | |
download | gtk+-da260ce8356e69a553c2c4737c28da686b88fb4c.tar.gz |
Make anchored patterns work as they did before.
2005-07-22 Matthias Clasen <mclasen@redhat.com>
* gdk-pixbuf-io.c (format_check): Make anchored patterns work
as they did before.
Diffstat (limited to 'gdk-pixbuf')
-rw-r--r-- | gdk-pixbuf/ChangeLog | 5 | ||||
-rw-r--r-- | gdk-pixbuf/gdk-pixbuf-io.c | 12 |
2 files changed, 13 insertions, 4 deletions
diff --git a/gdk-pixbuf/ChangeLog b/gdk-pixbuf/ChangeLog index c792284076..7d0be6bca0 100644 --- a/gdk-pixbuf/ChangeLog +++ b/gdk-pixbuf/ChangeLog @@ -1,5 +1,10 @@ 2005-07-22 Matthias Clasen <mclasen@redhat.com> + * gdk-pixbuf-io.c (format_check): Make anchored patterns work + as they did before. + +2005-07-22 Matthias Clasen <mclasen@redhat.com> + * gdk-pixbuf-io.c (format_check): Interpret patterns where the first byte of the mask is '*' as unanchored. (#311011) (gdk_pixbuf_new_from_file): Use the first 256 bytes for diff --git a/gdk-pixbuf/gdk-pixbuf-io.c b/gdk-pixbuf/gdk-pixbuf-io.c index a8faa782f9..f67dd0355c 100644 --- a/gdk-pixbuf/gdk-pixbuf-io.c +++ b/gdk-pixbuf/gdk-pixbuf-io.c @@ -51,21 +51,21 @@ format_check (GdkPixbufModule *module, guchar *buffer, int size) int i, j; gchar m; GdkPixbufModulePattern *pattern; - gboolean unanchored; + gboolean anchored; guchar *prefix, *mask; for (pattern = module->info->signature; pattern->prefix; pattern++) { if (pattern->mask && pattern->mask[0] == '*') { prefix = pattern->prefix + 1; mask = pattern->mask + 1; - unanchored = TRUE; + anchored = FALSE; } else { prefix = pattern->prefix; mask = pattern->mask; - unanchored = FALSE; + anchored = TRUE; } - for (i = 0; unanchored && i < size; i++) { + for (i = 0; i < size; i++) { for (j = 0; i + j < size && prefix[j] != 0; j++) { m = mask ? mask[j] : ' '; if (m == ' ') { @@ -85,8 +85,12 @@ format_check (GdkPixbufModule *module, guchar *buffer, int size) break; } } + if (prefix[j] == 0) return pattern->relevance; + + if (anchored) + break; } } return 0; |