summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorMiika Pekkarinen <miipekk@ihme.org>2006-08-13 14:53:19 +0000
committerMiika Pekkarinen <miipekk@ihme.org>2006-08-13 14:53:19 +0000
commite5059a7b0d056044299f6ef601b59296c0ebd42c (patch)
treea1e709231e479e288b9c99cde288a259cd7043bb /apps
parent33d91040785d679c40a44f3127eee54d6adb2ad3 (diff)
downloadrockbox-e5059a7b0d056044299f6ef601b59296c0ebd42c.tar.gz
rockbox-e5059a7b0d056044299f6ef601b59296c0ebd42c.zip
FS#5806 with code cleanup.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10559 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/tagcache.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/apps/tagcache.c b/apps/tagcache.c
index 87810da93b..08d6894e57 100644
--- a/apps/tagcache.c
+++ b/apps/tagcache.c
@@ -578,6 +578,17 @@ long tagcache_get_numeric(const struct tagcache_search *tcs, int tag)
578 return check_virtual_tags(tag, &idx); 578 return check_virtual_tags(tag, &idx);
579} 579}
580 580
581inline static bool str_ends_with(const char *str1, const char *str2)
582{
583 int str_len = strlen(str1);
584 int clause_len = strlen(str2);
585
586 if (clause_len > str_len)
587 return false;
588
589 return !strcasecmp(&str1[str_len - clause_len], str2);
590}
591
581static bool check_against_clause(long numeric, const char *str, 592static bool check_against_clause(long numeric, const char *str,
582 const struct tagcache_search_clause *clause) 593 const struct tagcache_search_clause *clause)
583{ 594{
@@ -610,13 +621,13 @@ static bool check_against_clause(long numeric, const char *str,
610 case clause_begins_with: 621 case clause_begins_with:
611 return (strcasestr(str, clause->str) == str); 622 return (strcasestr(str, clause->str) == str);
612 case clause_not_begins_with: 623 case clause_not_begins_with:
613 return (strcasestr(str, clause->str) != str); 624 return (strcasestr(str, clause->str) != str);
614 case clause_ends_with: /* Not supported yet */ 625 case clause_ends_with:
615 return false; 626 return str_ends_with(str, clause->str);
616 case clause_not_ends_with: /* Not supported yet */ 627 case clause_not_ends_with:
617 return false; 628 return !str_ends_with(str, clause->str);
618 } 629 }
619 630
620 return false; 631 return false;
621} 632}
622 633