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 fixing a problem with detecting user inactivity in case the system time is
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>
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 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
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.
2013-04-05: Version 2.1.1
2013-04-07: Version 2.1.1
- 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.
*
* $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"
@ -592,7 +592,7 @@ void cTextWrapper::Set(const char *Text, const cFont *Font, int Width)
p = Blank;
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
// punch in a newline, so we need to make room for it:
if (Delim)
@ -608,8 +608,7 @@ void cTextWrapper::Set(const char *Text, const cFont *Font, int Width)
continue;
}
}
else
w += cw;
w += cw;
if (strchr("-.,:;!?_", *p)) {
Delim = p;
Blank = NULL;