summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKim Woelders <kim@woelders.dk>2020-02-27 17:40:52 +0100
committerKim Woelders <kim@woelders.dk>2020-02-27 21:20:36 +0100
commitac41eae7fa3c5b6d5dcd63413325530761276e2e (patch)
tree9cf7007971493be08d5de8ad7b3eb337eb655519
parent97865ad8ef526804f25750ededf89cd6f8acd1c5 (diff)
downloadimlib2-ac41eae7fa3c5b6d5dcd63413325530761276e2e.tar.gz
GZ, BZ2 loaders: Accept more file names
E.g. ".png.gz", "png.gz", ".../png.gz".
-rw-r--r--src/modules/loaders/loader_bz2.c10
-rw-r--r--src/modules/loaders/loader_zlib.c10
2 files changed, 10 insertions, 10 deletions
diff --git a/src/modules/loaders/loader_bz2.c b/src/modules/loaders/loader_bz2.c
index 30fcbe7..f5348ac 100644
--- a/src/modules/loaders/loader_bz2.c
+++ b/src/modules/loaders/loader_bz2.c
@@ -57,17 +57,17 @@ load(ImlibImage * im, ImlibProgressFunction progress,
/* make sure this file ends in ".bz2" and that there's another ext
* (e.g. "foo.png.bz2") */
- for (s = im->real_file, p = q = NULL; *s; s++)
+ for (p = s = im->real_file, q = NULL; *s; s++)
{
- if (*s != '.')
+ if (*s != '.' && *s != '/')
continue;
q = p;
- p = s;
+ p = s + 1;
}
- if (!q || q == im->real_file || strcasecmp(p + 1, "bz2"))
+ if (!q || strcasecmp(p, "bz2"))
return 0;
- if (!(real_ext = strndup(q + 1, p - q - 1)))
+ if (!(real_ext = strndup(q, p - q - 1)))
return 0;
loader = __imlib_FindBestLoaderForFormat(real_ext, 0);
diff --git a/src/modules/loaders/loader_zlib.c b/src/modules/loaders/loader_zlib.c
index d5cc87b..22e7d1b 100644
--- a/src/modules/loaders/loader_zlib.c
+++ b/src/modules/loaders/loader_zlib.c
@@ -50,17 +50,17 @@ load(ImlibImage * im, ImlibProgressFunction progress,
/* make sure this file ends in ".gz" and that there's another ext
* (e.g. "foo.png.gz") */
- for (s = im->real_file, p = q = NULL; *s; s++)
+ for (p = s = im->real_file, q = NULL; *s; s++)
{
- if (*s != '.')
+ if (*s != '.' && *s != '/')
continue;
q = p;
- p = s;
+ p = s + 1;
}
- if (!q || q == im->real_file || strcasecmp(p + 1, "gz"))
+ if (!q || strcasecmp(p, "gz"))
return 0;
- if (!(real_ext = strndup(q + 1, p - q - 1)))
+ if (!(real_ext = strndup(q, p - q - 1)))
return 0;
loader = __imlib_FindBestLoaderForFormat(real_ext, 0);