summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2002-09-08 14:51:28 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2002-09-08 14:51:28 +0200
commit706a6e1beb322c2681b6252a93c3577e7d306d9c (patch)
treecd5bd88c3b1549dd7dcdba92e210e7b04d5ebc43
parentf98ef07b519bb903709e06c5e18bb8b580efe532 (diff)
downloadvdr-706a6e1beb322c2681b6252a93c3577e7d306d9c.tar.gz
vdr-706a6e1beb322c2681b6252a93c3577e7d306d9c.tar.bz2
Fixed a crash when entering an integer value outside the limits
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY2
-rw-r--r--menuitems.c9
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
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();