[gimp] app: simplify finding matching extensions



commit f232a2bb6f9e99f328394e19d9b18066d8ea10a4
Author: Nils Philippsen <nils redhat com>
Date:   Wed Aug 28 16:31:19 2013 +0200

    app: simplify finding matching extensions
    
    Use g_slist_find_custom(), g_ascii_strcasecmp() rather than iterating
    over lists of extensions, then over single characters again and
    comparing the output of g_ascii_tolower().

 app/file/file-procedure.c |   22 ++++------------------
 1 files changed, 4 insertions(+), 18 deletions(-)
---
diff --git a/app/file/file-procedure.c b/app/file/file-procedure.c
index 3d155b4..c818ae3 100644
--- a/app/file/file-procedure.c
+++ b/app/file/file-procedure.c
@@ -317,7 +317,6 @@ file_proc_find_by_extension (GSList      *procs,
   for (p = procs; p; p = g_slist_next (p))
     {
       GimpPlugInProcedure *proc = p->data;
-      GSList              *extensions;
 
       if (uri_procs_only && ! proc->handles_uri)
         continue;
@@ -325,24 +324,11 @@ file_proc_find_by_extension (GSList      *procs,
       if (skip_magic && proc->magics_list)
         continue;
 
-      for (extensions = proc->extensions_list;
-           extensions;
-           extensions = g_slist_next (extensions))
+      if (g_slist_find_custom (proc->extensions_list,
+                               ext,
+                               (GCompareFunc) g_ascii_strcasecmp))
         {
-          const gchar *p1 = ext;
-          const gchar *p2 = extensions->data;
-
-          while (*p1 && *p2)
-            {
-              if (g_ascii_tolower (*p1) != g_ascii_tolower (*p2))
-                break;
-
-              p1++;
-              p2++;
-            }
-
-          if (!(*p1) && !(*p2))
-            return proc;
+          return proc;
         }
     }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]