summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Faure <faure@kde.org>2011-10-29 00:31:25 +0200
committerDavid Faure <faure@kde.org>2011-10-31 16:09:06 +0100
commit0f9a506069cb126655057f43f1b5f99df6d2c8aa (patch)
tree066435a11becbabb825d78fd8dc0f8ad02203131
parenta88cf56762b4e8067dcc5f4b59dfdcf7cfe07c23 (diff)
downloadshared-mime-info-0f9a506069cb126655057f43f1b5f99df6d2c8aa.tar.gz
Lowercase non-case-sensitive patterns before writing them out.
Add testcase: testcompress.z
-rw-r--r--tests/list2
-rw-r--r--tests/testcompress.zbin0 -> 8 bytes
-rw-r--r--update-mime-database.c5
3 files changed, 5 insertions, 2 deletions
diff --git a/tests/list b/tests/list
index a60e7c94..c07dd923 100644
--- a/tests/list
+++ b/tests/list
@@ -351,3 +351,5 @@ test.h5 application/x-hdf
# From http://wiki.wireshark.org/SampleCaptures (ancp.pcap.gz, dns.cap)
ancp.pcap application/vnd.tcpdump.pcap
dns.cap application/vnd.tcpdump.pcap
+# Case-insensitive glob
+testcompress.z application/x-compress
diff --git a/tests/testcompress.z b/tests/testcompress.z
new file mode 100644
index 00000000..d4325e69
--- /dev/null
+++ b/tests/testcompress.z
Binary files differ
diff --git a/update-mime-database.c b/update-mime-database.c
index 3fea6df6..bd28ce07 100644
--- a/update-mime-database.c
+++ b/update-mime-database.c
@@ -398,10 +398,11 @@ static gboolean process_freedesktop_node(Type *type, xmlNode *field,
if (pattern && *pattern)
{
Glob *glob;
- GList *list = g_hash_table_lookup (globs_hash, pattern);
+ char *pat = case_sensitive ? g_strdup (pattern) : g_ascii_strdown (pattern, -1);
+ GList *list = g_hash_table_lookup (globs_hash, pat);
glob = g_new0 (Glob, 1);
- glob->pattern = g_strdup (pattern);
+ glob->pattern = pat;
glob->type = type;
glob->weight = weight;
glob->case_sensitive = case_sensitive;