diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 28da4004..58bdd076 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -145,6 +145,7 @@ Stefan Huelswitt option can't be accessed for implementing several replay modes to allow players that play only audio for improving cCondVar::Wait() and implementing cCondVar::TimedWait() + for reporting a bug when entering an integer value outside the limit Ulrich Röder for pointing out that there are channels that have a symbol rate higher than diff --git a/HISTORY b/HISTORY index fc78e6e6..ad2354df 100644 --- a/HISTORY +++ b/HISTORY @@ -1456,3 +1456,5 @@ Video Disk Recorder Revision History that are currently not available (for instance because all devices are recording and these channels are on different transponders). - Implemented an SPU decoder (thanks to Andreas Schultz). +- Fixed a crash when entering an integer value outside the limits (thanks to + Stefan Huelswitt for reporting this one). diff --git a/menuitems.c b/menuitems.c index 8c7848f5..97d81ad1 100644 --- a/menuitems.c +++ b/menuitems.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menuitems.c 1.8 2002/08/15 11:27:57 kls Exp $ + * $Id: menuitems.c 1.9 2002/09/08 14:51:28 kls Exp $ */ #include "menuitems.h" @@ -68,7 +68,7 @@ eOSState cMenuEditIntItem::ProcessKey(eKeys Key) *value = 0; fresh = false; } - newValue = *value * 10 + (Key - k0); + newValue = *value * 10 + (Key - k0); } else if (NORMALKEY(Key) == kLeft) { // TODO might want to increase the delta if repeated quickly? newValue = *value - 1; @@ -78,8 +78,11 @@ eOSState cMenuEditIntItem::ProcessKey(eKeys Key) newValue = *value + 1; fresh = true; } - else + else { + if (*value < min) { *value = min; Set(); } + if (*value > max) { *value = max; Set(); } return state; + } if ((!fresh || min <= newValue) && newValue <= max) { *value = newValue; Set();