summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKim Woelders <kim@woelders.dk>2020-01-03 21:18:21 +0100
committerKim Woelders <kim@woelders.dk>2020-01-11 12:55:08 +0100
commit875bc82b499a4674e834c8f6032af3257cfdd3ef (patch)
treecc0e45737639ee85659aa49d9333f6412bcb5aac
parentc02dc3c975b322b31c6e6e303a7f0e2b7d775603 (diff)
downloadimlib2-875bc82b499a4674e834c8f6032af3257cfdd3ef.tar.gz
Introduce __imlib_LoaderSetFormats()
-rw-r--r--src/lib/image.h3
-rw-r--r--src/lib/loaders.c13
-rw-r--r--src/modules/loaders/loader_argb.c8
-rw-r--r--src/modules/loaders/loader_bmp.c9
-rw-r--r--src/modules/loaders/loader_bz2.c9
-rw-r--r--src/modules/loaders/loader_ff.c6
-rw-r--r--src/modules/loaders/loader_gif.c9
-rw-r--r--src/modules/loaders/loader_ico.c9
-rw-r--r--src/modules/loaders/loader_id3.c9
-rw-r--r--src/modules/loaders/loader_jpeg.c9
-rw-r--r--src/modules/loaders/loader_lbm.c9
-rw-r--r--src/modules/loaders/loader_png.c9
-rw-r--r--src/modules/loaders/loader_pnm.c9
-rw-r--r--src/modules/loaders/loader_tga.c9
-rw-r--r--src/modules/loaders/loader_tiff.c9
-rw-r--r--src/modules/loaders/loader_webp.c9
-rw-r--r--src/modules/loaders/loader_xpm.c9
-rw-r--r--src/modules/loaders/loader_zlib.c9
18 files changed, 49 insertions, 107 deletions
diff --git a/src/lib/image.h b/src/lib/image.h
index bc89055..fa45202 100644
--- a/src/lib/image.h
+++ b/src/lib/image.h
@@ -116,6 +116,9 @@ ImlibLoader *__imlib_FindBestLoaderForFormat(const char *format,
ImlibLoader *__imlib_FindBestLoaderForFileFormat(const char *file,
char *format,
int for_save);
+void __imlib_LoaderSetFormats(ImlibLoader * l,
+ const char *const *fmt,
+ unsigned int num);
ImlibImage *__imlib_CreateImage(int w, int h, DATA32 * data);
ImlibImage *__imlib_LoadImage(const char *file,
diff --git a/src/lib/loaders.c b/src/lib/loaders.c
index cd9461f..90b4c10 100644
--- a/src/lib/loaders.c
+++ b/src/lib/loaders.c
@@ -218,3 +218,16 @@ __imlib_FindBestLoaderForFileFormat(const char *file, char *format,
else
return __imlib_FindBestLoaderForFile(file, for_save);
}
+
+__EXPORT__ void
+__imlib_LoaderSetFormats(ImlibLoader * l,
+ const char *const *fmt, unsigned int num)
+{
+ unsigned int i;
+
+ l->num_formats = num;
+ l->formats = malloc(sizeof(char *) * num);
+
+ for (i = 0; i < num; i++)
+ l->formats[i] = strdup(fmt[i]);
+}
diff --git a/src/modules/loaders/loader_argb.c b/src/modules/loaders/loader_argb.c
index 393e880..1aa23a5 100644
--- a/src/modules/loaders/loader_argb.c
+++ b/src/modules/loaders/loader_argb.c
@@ -144,11 +144,7 @@ void
formats(ImlibLoader * l)
{
static const char *const list_formats[] = { "argb", "arg" };
- int i;
- l->num_formats = sizeof(list_formats) / sizeof(char *);
- l->formats = malloc(sizeof(char *) * l->num_formats);
-
- for (i = 0; i < l->num_formats; i++)
- l->formats[i] = strdup(list_formats[i]);
+ __imlib_LoaderSetFormats(l, list_formats,
+ sizeof(list_formats) / sizeof(char *));
}
diff --git a/src/modules/loaders/loader_bmp.c b/src/modules/loaders/loader_bmp.c
index 5e2320f..564a8a2 100644
--- a/src/modules/loaders/loader_bmp.c
+++ b/src/modules/loaders/loader_bmp.c
@@ -850,11 +850,6 @@ void
formats(ImlibLoader * l)
{
static const char *const list_formats[] = { "bmp" };
- int i;
-
- l->num_formats = sizeof(list_formats) / sizeof(char *);
- l->formats = malloc(sizeof(char *) * l->num_formats);
-
- for (i = 0; i < l->num_formats; i++)
- l->formats[i] = strdup(list_formats[i]);
+ __imlib_LoaderSetFormats(l, list_formats,
+ sizeof(list_formats) / sizeof(char *));
}
diff --git a/src/modules/loaders/loader_bz2.c b/src/modules/loaders/loader_bz2.c
index 804e390..30fcbe7 100644
--- a/src/modules/loaders/loader_bz2.c
+++ b/src/modules/loaders/loader_bz2.c
@@ -103,11 +103,6 @@ void
formats(ImlibLoader * l)
{
static const char *const list_formats[] = { "bz2" };
- int i;
-
- l->num_formats = sizeof(list_formats) / sizeof(char *);
- l->formats = malloc(sizeof(char *) * l->num_formats);
-
- for (i = 0; i < l->num_formats; i++)
- l->formats[i] = strdup(list_formats[i]);
+ __imlib_LoaderSetFormats(l, list_formats,
+ sizeof(list_formats) / sizeof(char *));
}
diff --git a/src/modules/loaders/loader_ff.c b/src/modules/loaders/loader_ff.c
index 5b22610..7a1bc85 100644
--- a/src/modules/loaders/loader_ff.c
+++ b/src/modules/loaders/loader_ff.c
@@ -161,7 +161,7 @@ save(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity)
void
formats(ImlibLoader * l)
{
- l->num_formats = 1;
- l->formats = malloc(sizeof(char *));
- *(l->formats) = strdup("ff");
+ static const char *const list_formats[] = { "ff" };
+ __imlib_LoaderSetFormats(l, list_formats,
+ sizeof(list_formats) / sizeof(char *));
}
diff --git a/src/modules/loaders/loader_gif.c b/src/modules/loaders/loader_gif.c
index 53fc8b9..0c174bd 100644
--- a/src/modules/loaders/loader_gif.c
+++ b/src/modules/loaders/loader_gif.c
@@ -193,11 +193,6 @@ void
formats(ImlibLoader * l)
{
static const char *const list_formats[] = { "gif" };
- int i;
-
- l->num_formats = sizeof(list_formats) / sizeof(char *);
- l->formats = malloc(sizeof(char *) * l->num_formats);
-
- for (i = 0; i < l->num_formats; i++)
- l->formats[i] = strdup(list_formats[i]);
+ __imlib_LoaderSetFormats(l, list_formats,
+ sizeof(list_formats) / sizeof(char *));
}
diff --git a/src/modules/loaders/loader_ico.c b/src/modules/loaders/loader_ico.c
index 5aff0a5..f985a36 100644
--- a/src/modules/loaders/loader_ico.c
+++ b/src/modules/loaders/loader_ico.c
@@ -432,11 +432,6 @@ void
formats(ImlibLoader * l)
{
static const char *const list_formats[] = { "ico" };
- int i;
-
- l->num_formats = sizeof(list_formats) / sizeof(char *);
- l->formats = malloc(sizeof(char *) * l->num_formats);
-
- for (i = 0; i < l->num_formats; i++)
- l->formats[i] = strdup(list_formats[i]);
+ __imlib_LoaderSetFormats(l, list_formats,
+ sizeof(list_formats) / sizeof(char *));
}
diff --git a/src/modules/loaders/loader_id3.c b/src/modules/loaders/loader_id3.c
index 73b4aaa..e8006c4 100644
--- a/src/modules/loaders/loader_id3.c
+++ b/src/modules/loaders/loader_id3.c
@@ -595,11 +595,6 @@ void
formats(ImlibLoader * l)
{
static const char *const list_formats[] = { "mp3" };
- int i;
-
- l->num_formats = sizeof(list_formats) / sizeof(char *);
- l->formats = malloc(sizeof(char *) * l->num_formats);
-
- for (i = 0; i < l->num_formats; i++)
- l->formats[i] = strdup(list_formats[i]);
+ __imlib_LoaderSetFormats(l, list_formats,
+ sizeof(list_formats) / sizeof(char *));
}
diff --git a/src/modules/loaders/loader_jpeg.c b/src/modules/loaders/loader_jpeg.c
index 0c7687c..616934f 100644
--- a/src/modules/loaders/loader_jpeg.c
+++ b/src/modules/loaders/loader_jpeg.c
@@ -294,11 +294,6 @@ void
formats(ImlibLoader * l)
{
static const char *const list_formats[] = { "jpg", "jpeg", "jfif", "jfi" };
- int i;
-
- l->num_formats = sizeof(list_formats) / sizeof(char *);
- l->formats = malloc(sizeof(char *) * l->num_formats);
-
- for (i = 0; i < l->num_formats; i++)
- l->formats[i] = strdup(list_formats[i]);
+ __imlib_LoaderSetFormats(l, list_formats,
+ sizeof(list_formats) / sizeof(char *));
}
diff --git a/src/modules/loaders/loader_lbm.c b/src/modules/loaders/loader_lbm.c
index 419c724..79e53d8 100644
--- a/src/modules/loaders/loader_lbm.c
+++ b/src/modules/loaders/loader_lbm.c
@@ -604,11 +604,6 @@ void
formats(ImlibLoader * l)
{
static const char *const list_formats[] = { "iff", "ilbm", "lbm" };
- int i;
-
- l->num_formats = sizeof(list_formats) / sizeof(char *);
- l->formats = malloc(sizeof(char *) * l->num_formats);
-
- for (i = 0; i < l->num_formats; i++)
- l->formats[i] = strdup(list_formats[i]);
+ __imlib_LoaderSetFormats(l, list_formats,
+ sizeof(list_formats) / sizeof(char *));
}
diff --git a/src/modules/loaders/loader_png.c b/src/modules/loaders/loader_png.c
index 5ccb483..dc35e34 100644
--- a/src/modules/loaders/loader_png.c
+++ b/src/modules/loaders/loader_png.c
@@ -361,11 +361,6 @@ void
formats(ImlibLoader * l)
{
static const char *const list_formats[] = { "png" };
- int i;
-
- l->num_formats = sizeof(list_formats) / sizeof(char *);
- l->formats = malloc(sizeof(char *) * l->num_formats);
-
- for (i = 0; i < l->num_formats; i++)
- l->formats[i] = strdup(list_formats[i]);
+ __imlib_LoaderSetFormats(l, list_formats,
+ sizeof(list_formats) / sizeof(char *));
}
diff --git a/src/modules/loaders/loader_pnm.c b/src/modules/loaders/loader_pnm.c
index a5f549f..4b89c64 100644
--- a/src/modules/loaders/loader_pnm.c
+++ b/src/modules/loaders/loader_pnm.c
@@ -472,11 +472,6 @@ formats(ImlibLoader * l)
{
static const char *const list_formats[] =
{ "pnm", "ppm", "pgm", "pbm", "pam" };
- int i;
-
- l->num_formats = sizeof(list_formats) / sizeof(char *);
- l->formats = malloc(sizeof(char *) * l->num_formats);
-
- for (i = 0; i < l->num_formats; i++)
- l->formats[i] = strdup(list_formats[i]);
+ __imlib_LoaderSetFormats(l, list_formats,
+ sizeof(list_formats) / sizeof(char *));
}
diff --git a/src/modules/loaders/loader_tga.c b/src/modules/loaders/loader_tga.c
index 37f53ed..c0a56ba 100644
--- a/src/modules/loaders/loader_tga.c
+++ b/src/modules/loaders/loader_tga.c
@@ -575,13 +575,8 @@ void
formats(ImlibLoader * l)
{
static const char *const list_formats[] = { "tga" };
- int i;
-
- l->num_formats = sizeof(list_formats) / sizeof(char *);
- l->formats = malloc(sizeof(char *) * l->num_formats);
-
- for (i = 0; i < l->num_formats; i++)
- l->formats[i] = strdup(list_formats[i]);
+ __imlib_LoaderSetFormats(l, list_formats,
+ sizeof(list_formats) / sizeof(char *));
}
/**********************/
diff --git a/src/modules/loaders/loader_tiff.c b/src/modules/loaders/loader_tiff.c
index b327afe..734d7b9 100644
--- a/src/modules/loaders/loader_tiff.c
+++ b/src/modules/loaders/loader_tiff.c
@@ -518,11 +518,6 @@ void
formats(ImlibLoader * l)
{
static const char *const list_formats[] = { "tiff", "tif" };
- int i;
-
- l->num_formats = sizeof(list_formats) / sizeof(char *);
- l->formats = malloc(sizeof(char *) * l->num_formats);
-
- for (i = 0; i < l->num_formats; i++)
- l->formats[i] = strdup(list_formats[i]);
+ __imlib_LoaderSetFormats(l, list_formats,
+ sizeof(list_formats) / sizeof(char *));
}
diff --git a/src/modules/loaders/loader_webp.c b/src/modules/loaders/loader_webp.c
index 6482fa8..bc0ec1f 100644
--- a/src/modules/loaders/loader_webp.c
+++ b/src/modules/loaders/loader_webp.c
@@ -170,11 +170,6 @@ void
formats(ImlibLoader * l)
{
static const char *const list_formats[] = { "webp" };
- int i;
-
- l->num_formats = sizeof(list_formats) / sizeof(char *);
- l->formats = malloc(sizeof(char *) * l->num_formats);
-
- for (i = 0; i < l->num_formats; i++)
- l->formats[i] = strdup(list_formats[i]);
+ __imlib_LoaderSetFormats(l, list_formats,
+ sizeof(list_formats) / sizeof(char *));
}
diff --git a/src/modules/loaders/loader_xpm.c b/src/modules/loaders/loader_xpm.c
index 7bc3fa9..f2a6815 100644
--- a/src/modules/loaders/loader_xpm.c
+++ b/src/modules/loaders/loader_xpm.c
@@ -469,11 +469,6 @@ void
formats(ImlibLoader * l)
{
static const char *const list_formats[] = { "xpm" };
- int i;
-
- l->num_formats = sizeof(list_formats) / sizeof(char *);
- l->formats = malloc(sizeof(char *) * l->num_formats);
-
- for (i = 0; i < l->num_formats; i++)
- l->formats[i] = strdup(list_formats[i]);
+ __imlib_LoaderSetFormats(l, list_formats,
+ sizeof(list_formats) / sizeof(char *));
}
diff --git a/src/modules/loaders/loader_zlib.c b/src/modules/loaders/loader_zlib.c
index d081e32..d5cc87b 100644
--- a/src/modules/loaders/loader_zlib.c
+++ b/src/modules/loaders/loader_zlib.c
@@ -96,11 +96,6 @@ void
formats(ImlibLoader * l)
{
static const char *const list_formats[] = { "gz" };
- int i;
-
- l->num_formats = sizeof(list_formats) / sizeof(char *);
- l->formats = malloc(sizeof(char *) * l->num_formats);
-
- for (i = 0; i < l->num_formats; i++)
- l->formats[i] = strdup(list_formats[i]);
+ __imlib_LoaderSetFormats(l, list_formats,
+ sizeof(list_formats) / sizeof(char *));
}