]> git.sur5r.net Git - glabels/commitdiff
2007-11-18 Jim Evins <evins@snaught.com>
authorJim Evins <evins@snaught.com>
Mon, 19 Nov 2007 04:49:00 +0000 (04:49 +0000)
committerJim Evins <evins@snaught.com>
Mon, 19 Nov 2007 04:49:00 +0000 (04:49 +0000)
* libglabels/Makefile.am:
* libglabels/str.h:
* libglabels/str.c:
Added lgl_str_utf8_casecmp().
* libglabels/libglabels-private.h:
Use lgl_str_utf8_casecmp() for UTF8_EQUAL macro -- do case insensitive comparisons.
* libglabels/db.c: (lgl_db_get_brand_list):
Use lgl_str_utf8_casecmp() to determine if we have seen brand before when building
brand list.

git-svn-id: https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@692 f5e0f49d-192f-0410-a22d-a8d8700d0965

glabels2/ChangeLog
glabels2/libglabels/Makefile.am
glabels2/libglabels/db.c
glabels2/libglabels/libglabels-private.h
glabels2/libglabels/str.c [new file with mode: 0644]
glabels2/libglabels/str.h [new file with mode: 0644]

index b4199448d5ba6562e52c9325df80c1e92ff420e4..6c4498cc6af55e8befd47e452f02e0e3cd85b7f1 100644 (file)
@@ -1,3 +1,15 @@
+2007-11-18  Jim Evins  <evins@snaught.com>
+
+       * libglabels/Makefile.am:
+       * libglabels/str.h:
+       * libglabels/str.c:
+               Added lgl_str_utf8_casecmp().
+       * libglabels/libglabels-private.h:
+               Use lgl_str_utf8_casecmp() for UTF8_EQUAL macro -- do case insensitive comparisons.
+       * libglabels/db.c: (lgl_db_get_brand_list):
+               Use lgl_str_utf8_casecmp() to determine if we have seen brand before when building
+               brand list.
+
 2007-11-18  Jim Evins  <evins@snaught.com>
 
        * data/glade/template-designer.glade:
index bc6774f4212aa726ddca1c55c52780a94a71ce88..5bc36773f9fdb746bfbe170d49952e2477d05cf0 100644 (file)
@@ -33,7 +33,9 @@ libglabels_la_SOURCES =               \
        xml-template.h          \
        xml-template.c          \
        xml.h                   \
-       xml.c                   
+       xml.c                   \
+       str.h                   \
+       str.c
 
 libglabelsinclude_HEADERS =    \
        libglabels.h            \
index 8e4f1924a6ca5730a8985c658293b1c631912673..1411408c032a28f58dd7632fdb682081394c7f91 100644 (file)
@@ -999,11 +999,11 @@ lgl_db_get_brand_list (const gchar *paper_id,
                                 alias = (lglTemplateAlias *)p_alias->data;
 
                                 if ( !g_list_find_custom (brands, alias->brand,
-                                                          (GCompareFunc)g_utf8_collate) )
+                                                          (GCompareFunc)lgl_str_utf8_casecmp) )
                                 {
                                         brands = g_list_insert_sorted (brands,
                                                                        g_strdup (alias->brand),
-                                                                       (GCompareFunc)g_utf8_collate);
+                                                                       (GCompareFunc)lgl_str_utf8_casecmp);
                                 }
                        }
                }
index bf171270dc3b9db77c096aeca22e3cbf781689b3..dd8bda8320cfbfbd2e48e14b4c922aa72c0854f4 100644 (file)
@@ -30,6 +30,8 @@
 #include <glib/gfileutils.h>
 #include <glib/gunicode.h>
 
+#include "str.h"
+
 /* Data system and user data directories.  (must free w/ g_free()) */
 #define LGL_SYSTEM_DATA_DIR g_build_filename (LIBGLABELS_TEMPLATE_DIR, NULL)
 #define LGL_USER_DATA_DIR   g_build_filename (g_get_home_dir (), ".glabels", NULL)
@@ -37,7 +39,7 @@
 #undef  G_LOG_DOMAIN
 #define G_LOG_DOMAIN "LibGlabels"
 
-#define UTF8_EQUAL(s1,s2) (!g_utf8_collate (s1, s2))
+#define UTF8_EQUAL(s1,s2) (!lgl_str_utf8_casecmp (s1, s2))
 #define ASCII_EQUAL(s1,s2) (!g_ascii_strcasecmp (s1, s2))
 
 
diff --git a/glabels2/libglabels/str.c b/glabels2/libglabels/str.c
new file mode 100644 (file)
index 0000000..adf52f2
--- /dev/null
@@ -0,0 +1,70 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
+
+/*
+ *  (LIBGLABELS) Template library for GLABELS
+ *
+ *  str.c:  libGLabels string utilities
+ *
+ *  Copyright (C) 2007  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of the LIBGLABELS library.
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public
+ *  License along with this library; if not, write to the Free
+ *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ *  MA 02111-1307, USA
+ */
+#include <config.h>
+
+#include "str.h"
+
+
+/*===========================================*/
+/* Private types                             */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Private globals                           */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Local function prototypes                 */
+/*===========================================*/
+
+
+/*===========================================*/
+/* Functions.                                */
+/*===========================================*/
+
+gint
+lgl_str_utf8_casecmp (const gchar *s1,
+                      const gchar *s2)
+{
+        gchar *folded_s1;
+        gchar *folded_s2;
+        gint   result;
+
+        folded_s1 = g_utf8_casefold (s1, -1);
+        folded_s2 = g_utf8_casefold (s2, -1);
+
+        result = g_utf8_collate (folded_s1, folded_s2);
+
+        g_free (folded_s1);
+        g_free (folded_s2);
+
+        return result;
+}
+
+
diff --git a/glabels2/libglabels/str.h b/glabels2/libglabels/str.h
new file mode 100644 (file)
index 0000000..bc6312f
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
+
+/*
+ *  (LIBGLABELS) Template library for GLABELS
+ *
+ *  str.h:  libGLabels string utilities header file
+ *
+ *  Copyright (C) 2007  Jim Evins <evins@snaught.com>.
+ *
+ *  This file is part of the LIBGLABELS library.
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public
+ *  License along with this library; if not, write to the Free
+ *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ *  MA 02111-1307, USA
+ */
+
+#ifndef __STR_H__
+#define __STR_H__
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+gint  lgl_str_utf8_casecmp (const gchar *s1,
+                           const gchar *s2);
+
+G_END_DECLS
+
+
+#endif /* __STR_H__ */