aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/dbUtils.c8
-rw-r--r--src/locate.c12
-rw-r--r--src/locate.h7
-rw-r--r--src/queue_print.c6
4 files changed, 22 insertions, 11 deletions
diff --git a/src/dbUtils.c b/src/dbUtils.c
index 00df5b606..b33ec58df 100644
--- a/src/dbUtils.c
+++ b/src/dbUtils.c
@@ -84,14 +84,10 @@ searchForSongsIn(struct client *client, const char *name,
const struct locate_item_list *criteria)
{
int ret;
- struct locate_item_list *new_list;
+ struct locate_item_list *new_list
+ = locate_item_list_casefold(criteria);
struct search_data data;
- new_list = locate_item_list_new(criteria->length);
- for (unsigned i = 0; i < criteria->length; i++)
- new_list->items[i].needle =
- g_utf8_casefold(criteria->items[i].needle, -1);
-
data.client = client;
data.criteria = new_list;
diff --git a/src/locate.c b/src/locate.c
index 9f6eff686..d334e797a 100644
--- a/src/locate.c
+++ b/src/locate.c
@@ -117,6 +117,18 @@ locate_item_list_parse(char *argv[], int argc)
return list;
}
+struct locate_item_list *
+locate_item_list_casefold(const struct locate_item_list *list)
+{
+ struct locate_item_list *new_list = locate_item_list_new(list->length);
+
+ for (unsigned i = 0; i < list->length; i++)
+ new_list->items[i].needle =
+ g_utf8_casefold(list->items[i].needle, -1);
+
+ return new_list;
+}
+
void
locate_item_free(struct locate_item *item)
{
diff --git a/src/locate.h b/src/locate.h
index 0f1bd1a64..c2d4c0ec4 100644
--- a/src/locate.h
+++ b/src/locate.h
@@ -63,6 +63,13 @@ locate_item_list_new(unsigned length);
struct locate_item_list *
locate_item_list_parse(char *argv[], int argc);
+/**
+ * Duplicate the struct locate_item_list object and convert all
+ * needles with g_utf8_casefold().
+ */
+struct locate_item_list *
+locate_item_list_casefold(const struct locate_item_list *list);
+
void
locate_item_list_free(struct locate_item_list *list);
diff --git a/src/queue_print.c b/src/queue_print.c
index 54cdc15ae..5479360a2 100644
--- a/src/queue_print.c
+++ b/src/queue_print.c
@@ -85,11 +85,7 @@ queue_search(struct client *client, const struct queue *queue,
{
unsigned i;
struct locate_item_list *new_list =
- locate_item_list_new(criteria->length);
-
- for (i = 0; i < criteria->length; i++)
- new_list->items[i].needle =
- g_utf8_casefold(criteria->items[i].needle, -1);
+ locate_item_list_casefold(criteria);
for (i = 0; i < queue_length(queue); i++) {
const struct song *song = queue_get(queue, i);