diff --git a/CONTRIBUTORS b/CONTRIBUTORS index ce3c0ce9..4b2e571d 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1157,11 +1157,13 @@ Andreas Regel for reporting a problem with messages when a cOsdObject uses the raw OSD for implementing palette replace mode in the OSD bitmaps -Thomas Bergwinkl +Thomas Bergwinkl for fixing the validity check for channel IDs, because some providers use TIDs with value 0 for pointing out that transponder handling didn't work with satellites that provide two transponders on the same frequency, with different polarization + for fixing detecting if there can be any useful further input when entering channel + numbers Stéphane Esté-Gracias for fixing a typo in libsi/si.h diff --git a/HISTORY b/HISTORY index c09ce5c0..ca97b274 100644 --- a/HISTORY +++ b/HISTORY @@ -4222,3 +4222,5 @@ Video Disk Recorder Revision History the final switch when the key is released. - The channel display is now updated _before_ the channel is switched. - Added a missing initialization of 'timeout' in the cDisplayChannel constructor. +- Fixed detecting if there can be any useful further input when entering channel + numbers (thanks to Thomas Bergwinkl). diff --git a/menu.c b/menu.c index a36ca271..3eb9f829 100644 --- a/menu.c +++ b/menu.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menu.c 1.400 2006/01/22 14:24:02 kls Exp $ + * $Id: menu.c 1.401 2006/01/22 14:30:00 kls Exp $ */ #include "menu.h" @@ -3107,15 +3107,18 @@ eOSState cDisplayChannel::ProcessKey(eKeys Key) DisplayChannel(); // Lets see if there can be any useful further input: int n = channel ? number * 10 : 0; + int m = 10; cChannel *ch = channel; while (ch && (ch = Channels.Next(ch)) != NULL) { if (!ch->GroupSep()) { - if (n <= ch->Number() && ch->Number() <= n + 9) { + if (n <= ch->Number() && ch->Number() < n + m) { n = 0; break; } - if (ch->Number() > n) + if (ch->Number() > n) { n *= 10; + m *= 10; + } } } if (n > 0) {