locate: added locate_item_list_casefold()
Merged casefolding code from two locations into this one library function.
This commit is contained in:
@@ -84,14 +84,10 @@ searchForSongsIn(struct client *client, const char *name,
|
|||||||
const struct locate_item_list *criteria)
|
const struct locate_item_list *criteria)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
struct locate_item_list *new_list;
|
struct locate_item_list *new_list
|
||||||
|
= locate_item_list_casefold(criteria);
|
||||||
struct search_data data;
|
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.client = client;
|
||||||
data.criteria = new_list;
|
data.criteria = new_list;
|
||||||
|
|
||||||
|
12
src/locate.c
12
src/locate.c
@@ -117,6 +117,18 @@ locate_item_list_parse(char *argv[], int argc)
|
|||||||
return list;
|
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
|
void
|
||||||
locate_item_free(struct locate_item *item)
|
locate_item_free(struct locate_item *item)
|
||||||
{
|
{
|
||||||
|
@@ -63,6 +63,13 @@ locate_item_list_new(unsigned length);
|
|||||||
struct locate_item_list *
|
struct locate_item_list *
|
||||||
locate_item_list_parse(char *argv[], int argc);
|
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
|
void
|
||||||
locate_item_list_free(struct locate_item_list *list);
|
locate_item_list_free(struct locate_item_list *list);
|
||||||
|
|
||||||
|
@@ -85,11 +85,7 @@ queue_search(struct client *client, const struct queue *queue,
|
|||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
struct locate_item_list *new_list =
|
struct locate_item_list *new_list =
|
||||||
locate_item_list_new(criteria->length);
|
locate_item_list_casefold(criteria);
|
||||||
|
|
||||||
for (i = 0; i < criteria->length; i++)
|
|
||||||
new_list->items[i].needle =
|
|
||||||
g_utf8_casefold(criteria->items[i].needle, -1);
|
|
||||||
|
|
||||||
for (i = 0; i < queue_length(queue); i++) {
|
for (i = 0; i < queue_length(queue); i++) {
|
||||||
const struct song *song = queue_get(queue, i);
|
const struct song *song = queue_get(queue, i);
|
||||||
|
Reference in New Issue
Block a user