Search "Jump first press" is not correctly case-insensitive

Issue #341 new
prl created an issue

In Components.ServiceList.moveToChar() an attempt has been made to make the search case-insensitive. However, it implements this by first calling eListboxServiceContent::getNextBeginningWithChar() with the character as entered, and then with that character uppercased.

  1. If Channel Selection MENU>Settings...>Jump first press in channel selection set to Alpha, this does search both cases, because in that mode the numeric keypad entry of characters returns lowercase alphabetic characters. However, if the setting is Number, keypad entry returns uppercase alpha characters, and so only upper case characters are searched on.
  2. In a true case-insensitive search the first matching entry will be returned. In the searches called in moveToChar(), the matching entry returned by the first search that returns a match will be used. E.g., if the search is supposed to be case-insensitive on 'f', moveToChar() searches for 'f' and then for 'F'. If there are items ... "First" ... "first" ... in the service list, moveToChar() will jump to "first", the second match in a correct case-insensitive search. This problem is most cleanly fixed by making getNextBeginningWithChar() case-insensitive. It can be fixed in moveToChar() but it is more complicated to code.

I've marked the Reproducability as Always, even though the bug can't be reproduced in the UI, because the error will always occur if the first characters of channel names are mixed case. I've marked it as Minor in Severity for the same reason.

Reproduction steps

Australian TV channel names are typically not mixed case in their first letters; they are normally all uppercase, so it is hard to reproduce this bug in the UI.

It is easy to see the problem by examining Components.ServiceList.moveToChar() and eListboxServiceContent::getNextBeginningWithChar().

Comments (0)

  1. Log in to comment