Fixed an endless loop in cTextWrapper::Set() in case the given Width is smaller than one character

This commit is contained in:
Klaus Schmidinger 2013-04-07 14:49:42 +02:00
parent b6b66acfc7
commit cf7f25fe50
3 changed files with 11 additions and 5 deletions

View File

@ -1788,6 +1788,7 @@ Udo Richter <udo_richter@gmx.de>
for requesting to keep using relative paths when building plugins locally for requesting to keep using relative paths when building plugins locally
for fixing a problem with detecting user inactivity in case the system time is for fixing a problem with detecting user inactivity in case the system time is
changed after VDR has been started changed after VDR has been started
for a patch that was used to add definitions for older DVB API versions, back until 5.0
Sven Kreiensen <svenk@kammer.uni-hannover.de> Sven Kreiensen <svenk@kammer.uni-hannover.de>
for his help in keeping 'channels.conf.terr' up to date for his help in keeping 'channels.conf.terr' up to date
@ -3135,3 +3136,7 @@ Zoran Turalija <zoran.turalija@gmail.com>
for translating OSD texts to the Serbian language for translating OSD texts to the Serbian language
for adding maximum SNR and signal strength value for TechniSat SkyStar HD2 for adding maximum SNR and signal strength value for TechniSat SkyStar HD2
for pointing out that the language file sr_SR.po should be renamed to sr_RS.po for pointing out that the language file sr_SR.po should be renamed to sr_RS.po
Stefan Braun <louis.braun@gmx.de>
for reporting an endless loop in cTextWrapper::Set() in case the given Width is smaller
than one character

View File

@ -7787,6 +7787,8 @@ Video Disk Recorder Revision History
- Fixed initializing cDevice::keepTracks. - Fixed initializing cDevice::keepTracks.
2013-04-05: Version 2.1.1 2013-04-07: Version 2.1.1
- Fixed initializing cDevice::keepTracks. - Fixed initializing cDevice::keepTracks.
- Fixed an endless loop in cTextWrapper::Set() in case the given Width is smaller than
one character (reported by Stefan Braun).

7
font.c
View File

@ -6,7 +6,7 @@
* *
* BiDi support by Osama Alrawab <alrawab@hotmail.com> @2008 Tripoli-Libya. * BiDi support by Osama Alrawab <alrawab@hotmail.com> @2008 Tripoli-Libya.
* *
* $Id: font.c 2.13 2012/06/02 13:38:28 kls Exp $ * $Id: font.c 3.1 2013/04/07 14:42:13 kls Exp $
*/ */
#include "font.h" #include "font.h"
@ -592,7 +592,7 @@ void cTextWrapper::Set(const char *Text, const cFont *Font, int Width)
p = Blank; p = Blank;
continue; continue;
} }
else { else if (w > 0) { // there has to be at least one character before the newline
// Here's the ugly part, where we don't have any whitespace to // Here's the ugly part, where we don't have any whitespace to
// punch in a newline, so we need to make room for it: // punch in a newline, so we need to make room for it:
if (Delim) if (Delim)
@ -608,8 +608,7 @@ void cTextWrapper::Set(const char *Text, const cFont *Font, int Width)
continue; continue;
} }
} }
else w += cw;
w += cw;
if (strchr("-.,:;!?_", *p)) { if (strchr("-.,:;!?_", *p)) {
Delim = p; Delim = p;
Blank = NULL; Blank = NULL;