summaryrefslogtreecommitdiff
path: root/font.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2013-04-07 14:49:42 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2013-04-07 14:49:42 +0200
commitcf7f25fe5049ea5b6dc9a5c4ae8962264d5e801d (patch)
tree9512cc5df3c0400ffa1568cb93a6a7ff43714b91 /font.c
parentb6b66acfc7a0597f213fa01d8e6930f43c201b36 (diff)
downloadvdr-cf7f25fe5049ea5b6dc9a5c4ae8962264d5e801d.tar.gz
vdr-cf7f25fe5049ea5b6dc9a5c4ae8962264d5e801d.tar.bz2
Fixed an endless loop in cTextWrapper::Set() in case the given Width is smaller than one character
Diffstat (limited to 'font.c')
-rw-r--r--font.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/font.c b/font.c
index 0bcdc9bb..dee26c21 100644
--- a/font.c
+++ b/font.c
@@ -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;