diff options
author | Miika Pekkarinen <miipekk@ihme.org> | 2006-04-05 18:46:38 +0000 |
---|---|---|
committer | Miika Pekkarinen <miipekk@ihme.org> | 2006-04-05 18:46:38 +0000 |
commit | 35d213aec3718a76e1ac161cc0db10b5b5609456 (patch) | |
tree | cde2e5737a98ab3f27481ba5df82dcb307b3650e /apps/tagtree.c | |
parent | 1de1f5b141d5fdc0427877425928c77a9006e027 (diff) | |
download | rockbox-35d213aec3718a76e1ac161cc0db10b5b5609456.tar.gz rockbox-35d213aec3718a76e1ac161cc0db10b5b5609456.zip |
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
Diffstat (limited to 'apps/tagtree.c')
-rw-r--r-- | apps/tagtree.c | 15 |
1 files changed, 10 insertions, 5 deletions
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) | |||
426 | dptr->newtable = tcs.result_seek; | 426 | dptr->newtable = tcs.result_seek; |
427 | if (!tcs.ramsearch || csi->tagorder[extra] == tag_title) | 427 | if (!tcs.ramsearch || csi->tagorder[extra] == tag_title) |
428 | { | 428 | { |
429 | int tracknum = -1; | ||
430 | |||
429 | dptr->name = &c->name_buffer[namebufused]; | 431 | dptr->name = &c->name_buffer[namebufused]; |
430 | if (csi->tagorder[extra] == tag_title) | 432 | if (csi->tagorder[extra] == tag_title) |
433 | tracknum = tagcache_get_numeric(&tcs, tag_tracknumber); | ||
434 | |||
435 | if (tracknum > 0) | ||
431 | { | 436 | { |
432 | snprintf(dptr->name, c->name_buffer_size - namebufused, "%02d. %s", | 437 | snprintf(dptr->name, c->name_buffer_size - namebufused, "%02d. %s", |
433 | tagcache_get_numeric(&tcs, tag_tracknumber), | 438 | tracknum, tcs.result); |
434 | tcs.result); | ||
435 | namebufused += strlen(dptr->name) + 1; | 439 | namebufused += strlen(dptr->name) + 1; |
436 | if (namebufused >= c->name_buffer_size) | 440 | if (namebufused >= c->name_buffer_size) |
437 | { | 441 | { |
@@ -518,8 +522,8 @@ int tagtree_enter(struct tree_context* c) | |||
518 | 522 | ||
519 | switch (c->currtable) { | 523 | switch (c->currtable) { |
520 | case root: | 524 | case root: |
521 | c->currtable = newextra; | ||
522 | c->currextra = newextra; | 525 | c->currextra = newextra; |
526 | |||
523 | if (newextra == navibrowse) | 527 | if (newextra == navibrowse) |
524 | { | 528 | { |
525 | int i, j; | 529 | int i, j; |
@@ -539,7 +543,7 @@ int tagtree_enter(struct tree_context* c) | |||
539 | if (rc == -1 || !searchstring[0]) | 543 | if (rc == -1 || !searchstring[0]) |
540 | { | 544 | { |
541 | c->dirlevel--; | 545 | c->dirlevel--; |
542 | break; | 546 | return 0; |
543 | } | 547 | } |
544 | 548 | ||
545 | if (csi->clause[i][j].numeric) | 549 | if (csi->clause[i][j].numeric) |
@@ -549,8 +553,9 @@ int tagtree_enter(struct tree_context* c) | |||
549 | sizeof(csi->clause[i][j].str)-1); | 553 | sizeof(csi->clause[i][j].str)-1); |
550 | } | 554 | } |
551 | } | 555 | } |
552 | |||
553 | } | 556 | } |
557 | |||
558 | c->currtable = newextra; | ||
554 | break; | 559 | break; |
555 | 560 | ||
556 | case navibrowse: | 561 | case navibrowse: |