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 /menuitems.c | |
parent | f98ef07b519bb903709e06c5e18bb8b580efe532 (diff) | |
download | vdr-706a6e1beb322c2681b6252a93c3577e7d306d9c.tar.gz vdr-706a6e1beb322c2681b6252a93c3577e7d306d9c.tar.bz2 |
Fixed a crash when entering an integer value outside the limits
Diffstat (limited to 'menuitems.c')
-rw-r--r-- | menuitems.c | 9 |
1 files changed, 6 insertions, 3 deletions
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(); |