diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2002-09-08 14:51:28 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2002-09-08 14:51:28 +0200 |
commit | 706a6e1beb322c2681b6252a93c3577e7d306d9c (patch) | |
tree | cd5bd88c3b1549dd7dcdba92e210e7b04d5ebc43 | |
parent | f98ef07b519bb903709e06c5e18bb8b580efe532 (diff) | |
download | vdr-706a6e1beb322c2681b6252a93c3577e7d306d9c.tar.gz vdr-706a6e1beb322c2681b6252a93c3577e7d306d9c.tar.bz2 |
Fixed a crash when entering an integer value outside the limits
-rw-r--r-- | CONTRIBUTORS | 1 | ||||
-rw-r--r-- | HISTORY | 2 | ||||
-rw-r--r-- | menuitems.c | 9 |
3 files changed, 9 insertions, 3 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 28da4004..58bdd076 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -145,6 +145,7 @@ Stefan Huelswitt <huels@iname.com> 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 <roeder@efr-net.de> for pointing out that there are channels that have a symbol rate higher than @@ -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(); |