Sort headers using clang-tidy
[geeqie.git] / src / filefilter.cc
index a9eb7ae..8c5448a 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#include "main.h"
 #include "filefilter.h"
 
+#include <config.h>
+
 #include "cache.h"
-#include "ui-fileops.h"
+#include "debug.h"
+#include "main-defines.h"
 #include "rcfile.h"
+#include "ui-fileops.h"
 
 /*
  *-----------------------------------------------------------------------------
  *-----------------------------------------------------------------------------
  */
 
-static GList *filter_list = NULL;
-static GList *extension_list = NULL;
-static GList *sidecar_ext_list = NULL;
+static GList *filter_list = nullptr;
+static GList *extension_list = nullptr;
+static GList *sidecar_ext_list = nullptr;
 
 static GList *file_class_extension_list[FILE_FORMAT_CLASSES];
 
-static GList *file_writable_list = NULL; /* writable files */
-static GList *file_sidecar_list = NULL; /* files with allowed sidecar */
+static GList *file_writable_list = nullptr; /* writable files */
+static GList *file_sidecar_list = nullptr; /* files with allowed sidecar */
 
 
 static FilterEntry *filter_entry_new(const gchar *key, const gchar *description,
@@ -70,7 +73,7 @@ static void filter_entry_free(FilterEntry *fe)
        g_free(fe);
 }
 
-GList *filter_get_list(void)
+GList *filter_get_list()
 {
        return filter_list;
 }
@@ -87,23 +90,23 @@ static FilterEntry *filter_get_by_key(const gchar *key)
 {
        GList *work;
 
-       if (!key) return NULL;
+       if (!key) return nullptr;
 
        work = filter_list;
        while (work)
                {
-               FilterEntry *fe = static_cast<FilterEntry *>(work->data);
+               auto fe = static_cast<FilterEntry *>(work->data);
                work = work->next;
 
                if (strcmp(fe->key, key) == 0) return fe;
                }
 
-       return NULL;
+       return nullptr;
 }
 
 static gboolean filter_key_exists(const gchar *key)
 {
-       return (filter_get_by_key(key) != NULL);
+       return (filter_get_by_key(key) != nullptr);
 }
 
 void filter_add(const gchar *key, const gchar *description, const gchar *extensions, FileFormatClass file_class, gboolean writable, gboolean allow_sidecar, gboolean enabled)
@@ -139,7 +142,7 @@ static void filter_add_if_missing(const gchar *key, const gchar *description, co
        work = filter_list;
        while (work)
                {
-               FilterEntry *fe = static_cast<FilterEntry *>(work->data);
+               auto fe = static_cast<FilterEntry *>(work->data);
                work = work->next;
                if (fe->key && strcmp(fe->key, key) == 0)
                        {
@@ -158,23 +161,13 @@ static void filter_add_if_missing(const gchar *key, const gchar *description, co
        filter_add(key, description, extensions, file_class, writable, allow_sidecar, enabled);
 }
 
-void filter_reset(void)
+void filter_reset()
 {
-       GList *work;
-
-       work = filter_list;
-       while (work)
-               {
-               FilterEntry *fe = static_cast<FilterEntry *>(work->data);
-               work = work->next;
-               filter_entry_free(fe);
-               }
-
-       g_list_free(filter_list);
-       filter_list = NULL;
+       g_list_free_full(filter_list, reinterpret_cast<GDestroyNotify>(filter_entry_free));
+       filter_list = nullptr;
 }
 
-void filter_add_defaults(void)
+void filter_add_defaults()
 {
        /* formats supported by custom loaders */
        filter_add_if_missing("dds", "DirectDraw Surface", ".dds", FORMAT_CLASS_IMAGE, FALSE, FALSE, TRUE);
@@ -190,6 +183,9 @@ void filter_add_defaults(void)
 #ifdef HAVE_DJVU
        filter_add_if_missing("djvu", "DjVu Format", ".djvu;.djv", FORMAT_CLASS_DOCUMENT, FALSE, FALSE, TRUE);
 #endif
+#ifdef HAVE_JPEGXL
+       filter_add_if_missing("jxl", "JXL", ".jxl", FORMAT_CLASS_IMAGE, FALSE, TRUE, TRUE);
+#endif
 #ifdef HAVE_J2K
        filter_add_if_missing("jp2", "JPEG 2000", ".jp2", FORMAT_CLASS_IMAGE, FALSE, FALSE, TRUE);
 #endif
@@ -201,7 +197,8 @@ void filter_add_defaults(void)
        filter_add_if_missing("apng", "Animated Portable Network Graphic", ".apng", FORMAT_CLASS_IMAGE, FALSE, FALSE, TRUE);
 
        /* formats supported by gdk-pixbuf */
-       GSList *list, *work;
+       GSList *list;
+       GSList *work;
 
        list = gdk_pixbuf_get_formats();
        work = list;
@@ -211,10 +208,10 @@ void filter_add_defaults(void)
                gchar *name;
                gchar *desc;
                gchar **extensions;
-               GString *filter = NULL;
+               GString *filter = nullptr;
                guint i;
 
-               format = work->data;
+               format = static_cast<GdkPixbufFormat *>(work->data);
                work = work->next;
 
                name = gdk_pixbuf_format_get_name(format);
@@ -290,9 +287,8 @@ void filter_add_defaults(void)
        filter_add_if_missing("mrw", "Minolta raw format", ".mrw", FORMAT_CLASS_RAWIMAGE, FALSE, TRUE, TRUE);
        filter_add_if_missing("nef", "Nikon raw format", ".nef", FORMAT_CLASS_RAWIMAGE, FALSE, TRUE, TRUE);
        filter_add_if_missing("orf", "Olympus raw format", ".orf", FORMAT_CLASS_RAWIMAGE, FALSE, TRUE, TRUE);
-       filter_add_if_missing("pef", "Pentax or Samsung raw format", ".pef;.ptx", FORMAT_CLASS_RAWIMAGE, FALSE, TRUE, TRUE);
+       filter_add_if_missing("pef", "Pentax or Samsung raw format", ".pef", FORMAT_CLASS_RAWIMAGE, FALSE, TRUE, TRUE);
        filter_add_if_missing("dng", "Adobe Digital Negative raw format", ".dng", FORMAT_CLASS_RAWIMAGE, FALSE, TRUE, TRUE);
-       filter_add_if_missing("x3f", "Sigma raw format", ".x3f", FORMAT_CLASS_RAWIMAGE, FALSE, TRUE, TRUE);
        filter_add_if_missing("raw", "Panasonic raw format", ".raw", FORMAT_CLASS_RAWIMAGE, FALSE, TRUE, TRUE);
        filter_add_if_missing("r3d", "Red raw format", ".r3d", FORMAT_CLASS_RAWIMAGE, FALSE, TRUE, TRUE);
        filter_add_if_missing("3fr", "Hasselblad raw format", ".3fr", FORMAT_CLASS_RAWIMAGE, FALSE, TRUE, TRUE);
@@ -301,22 +297,22 @@ void filter_add_defaults(void)
        filter_add_if_missing("rw2", "Panasonic raw format", ".rw2", FORMAT_CLASS_RAWIMAGE, FALSE, TRUE, TRUE);
 
        /* video files */
-       filter_add_if_missing("mp4", "MP4 video file", ".mp4;.m4v;.3gp;.3g2", FORMAT_CLASS_VIDEO, FALSE, FALSE, FALSE);
-       filter_add_if_missing("3gp", "3GP video file", ".3gp;.3g2", FORMAT_CLASS_VIDEO, FALSE, FALSE, FALSE);
-       filter_add_if_missing("mov", "MOV video file", ".mov;.qt", FORMAT_CLASS_VIDEO, FALSE, FALSE, FALSE);
-       filter_add_if_missing("avi", "AVI video file", ".avi", FORMAT_CLASS_VIDEO, FALSE, FALSE, FALSE);
-       filter_add_if_missing("mpg", "MPG video file", ".mpg;.mpeg;.mts;.m2ts", FORMAT_CLASS_VIDEO, FALSE, FALSE, FALSE);
-       filter_add_if_missing("mkv", "Matroska video file", ".mkv;.webm", FORMAT_CLASS_VIDEO, FALSE, FALSE, FALSE);
-       filter_add_if_missing("wmv", "Windows Media Video file", ".wmv;.asf", FORMAT_CLASS_VIDEO, FALSE, FALSE, FALSE);
-       filter_add_if_missing("flv", "Flash Video file", ".flv", FORMAT_CLASS_VIDEO, FALSE, FALSE, FALSE);
+       filter_add_if_missing("mp4", "MP4 video file", ".mp4;.m4v;.3gp;.3g2", FORMAT_CLASS_VIDEO, FALSE, FALSE, TRUE);
+       filter_add_if_missing("3gp", "3GP video file", ".3gp;.3g2", FORMAT_CLASS_VIDEO, FALSE, FALSE, TRUE);
+       filter_add_if_missing("mov", "MOV video file", ".mov;.qt", FORMAT_CLASS_VIDEO, FALSE, FALSE, TRUE);
+       filter_add_if_missing("avi", "AVI video file", ".avi", FORMAT_CLASS_VIDEO, FALSE, FALSE, TRUE);
+       filter_add_if_missing("mpg", "MPG video file", ".mpg;.mpeg;.mts;.m2ts", FORMAT_CLASS_VIDEO, FALSE, FALSE, TRUE);
+       filter_add_if_missing("mkv", "Matroska video file", ".mkv;.webm", FORMAT_CLASS_VIDEO, FALSE, FALSE, TRUE);
+       filter_add_if_missing("wmv", "Windows Media Video file", ".wmv;.asf", FORMAT_CLASS_VIDEO, FALSE, FALSE, TRUE);
+       filter_add_if_missing("flv", "Flash Video file", ".flv", FORMAT_CLASS_VIDEO, FALSE, FALSE, TRUE);
 }
 
 GList *filter_to_list(const gchar *extensions)
 {
-       GList *list = NULL;
+       GList *list = nullptr;
        const gchar *p;
 
-       if (!extensions) return NULL;
+       if (!extensions) return nullptr;
 
        p = extensions;
        while (*p != '\0')
@@ -358,8 +354,8 @@ GList *filter_to_list(const gchar *extensions)
 
 static gint filter_sort_ext_len_cb(gconstpointer a, gconstpointer b)
 {
-       gchar *sa = (gchar *)a;
-       gchar *sb = (gchar *)b;
+       auto sa = static_cast<const gchar *>(a);
+       auto sb = static_cast<const gchar *>(b);
 
        gint len_a = strlen(sa);
        gint len_b = strlen(sb);
@@ -370,24 +366,24 @@ static gint filter_sort_ext_len_cb(gconstpointer a, gconstpointer b)
 }
 
 
-void filter_rebuild(void)
+void filter_rebuild()
 {
        GList *work;
        guint i;
 
-       string_list_free(extension_list);
-       extension_list = NULL;
+       g_list_free_full(extension_list, g_free);
+       extension_list = nullptr;
 
-       string_list_free(file_writable_list);
-       file_writable_list = NULL;
+       g_list_free_full(file_writable_list, g_free);
+       file_writable_list = nullptr;
 
-       string_list_free(file_sidecar_list);
-       file_sidecar_list = NULL;
+       g_list_free_full(file_sidecar_list, g_free);
+       file_sidecar_list = nullptr;
 
        for (i = 0; i < FILE_FORMAT_CLASSES; i++)
                {
-               string_list_free(file_class_extension_list[i]);
-               file_class_extension_list[i] = NULL;
+               g_list_free_full(file_class_extension_list[i], g_free);
+               file_class_extension_list[i] = nullptr;
                }
 
        work = filter_list;
@@ -395,7 +391,7 @@ void filter_rebuild(void)
                {
                FilterEntry *fe;
 
-               fe = work->data;
+               fe = static_cast<FilterEntry *>(work->data);
                work = work->next;
 
                if (fe->enabled)
@@ -445,7 +441,7 @@ static const gchar *filter_name_find(GList *filter, const gchar *name)
        work = filter;
        while (work)
                {
-               gchar *filter = work->data;
+               auto filter = static_cast<gchar *>(work->data);
                guint lf = strlen(filter);
 
                if (ln >= lf)
@@ -456,7 +452,7 @@ static const gchar *filter_name_find(GList *filter, const gchar *name)
                work = work->next;
                }
 
-       return NULL;
+       return nullptr;
 }
 const gchar *registered_extension_from_path(const gchar *name)
 {
@@ -513,7 +509,7 @@ void filter_write_list(GString *outstr, gint indent)
        work = filter_list;
        while (work)
                {
-               FilterEntry *fe = static_cast<FilterEntry *>(work->data);
+               auto fe = static_cast<FilterEntry *>(work->data);
                work = work->next;
 
                WRITE_NL(); WRITE_STRING("<file_type ");
@@ -556,7 +552,7 @@ void filter_load_file_type(const gchar **attribute_names, const gchar **attribut
                {
                old_fe = filter_get_by_key(fe.key);
 
-               if (old_fe != NULL) filter_remove_entry(old_fe);
+               if (old_fe != nullptr) filter_remove_entry(old_fe);
                filter_add(fe.key, fe.description, fe.extensions, fe.file_class, fe.writable, fe.allow_sidecar, fe.enabled);
                }
        g_free(fe.key);
@@ -571,30 +567,21 @@ void filter_load_file_type(const gchar **attribute_names, const gchar **attribut
  *-----------------------------------------------------------------------------
  */
 
-GList *sidecar_ext_get_list(void)
+GList *sidecar_ext_get_list()
 {
        return sidecar_ext_list;
 }
 
-static void sidecar_ext_free_list(void)
+static void sidecar_ext_free_list()
 {
-       GList *work;
-
-       work = sidecar_ext_list;
-       while (work)
-               {
-               gchar *ext = work->data;
-               work = work->next;
-               g_free(ext);
-               }
-       g_list_free(sidecar_ext_list);
-       sidecar_ext_list = NULL;
+       g_list_free_full(sidecar_ext_list, g_free);
+       sidecar_ext_list = nullptr;
 }
 
 void sidecar_ext_parse(const gchar *text)
 {
        sidecar_ext_free_list();
-       if (text == NULL) return;
+       if (text == nullptr) return;
 
        sidecar_ext_list = filter_to_list(text);
 }