From 35d213aec3718a76e1ac161cc0db10b5b5609456 Mon Sep 17 00:00:00 2001 From: Miika Pekkarinen Date: Wed, 5 Apr 2006 18:46:38 +0000 Subject: Tagcache engine: Better handling for track numbers and genre strings. Browser: Don't jam if search string was not supplied. Don't show incorrect track numbers. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9523 a1c6a512-1295-4272-9138-f99709370657 --- apps/tagtree.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'apps/tagtree.c') diff --git a/apps/tagtree.c b/apps/tagtree.c index 7cae86a953..db35ee0d0c 100644 --- a/apps/tagtree.c +++ b/apps/tagtree.c @@ -426,12 +426,16 @@ int tagtree_load(struct tree_context* c) dptr->newtable = tcs.result_seek; if (!tcs.ramsearch || csi->tagorder[extra] == tag_title) { + int tracknum = -1; + dptr->name = &c->name_buffer[namebufused]; if (csi->tagorder[extra] == tag_title) + tracknum = tagcache_get_numeric(&tcs, tag_tracknumber); + + if (tracknum > 0) { snprintf(dptr->name, c->name_buffer_size - namebufused, "%02d. %s", - tagcache_get_numeric(&tcs, tag_tracknumber), - tcs.result); + tracknum, tcs.result); namebufused += strlen(dptr->name) + 1; if (namebufused >= c->name_buffer_size) { @@ -518,8 +522,8 @@ int tagtree_enter(struct tree_context* c) switch (c->currtable) { case root: - c->currtable = newextra; c->currextra = newextra; + if (newextra == navibrowse) { int i, j; @@ -539,7 +543,7 @@ int tagtree_enter(struct tree_context* c) if (rc == -1 || !searchstring[0]) { c->dirlevel--; - break; + return 0; } if (csi->clause[i][j].numeric) @@ -549,8 +553,9 @@ int tagtree_enter(struct tree_context* c) sizeof(csi->clause[i][j].str)-1); } } - } + + c->currtable = newextra; break; case navibrowse: -- cgit v1.2.3