Klaus Schmidinger wrote:

>> Can you please verify if the attached patch does this correctly?
> Maybe the attached version is even better, because there are also other
> places where Glyph() is called.

The patch works, but you should also pass the AntiAliased parameter when
recursivly calling Glyph().

Besides this - I have the 0xA0 about 80 times in my epg.data (very often on
DMAX). As far as I can tell, the 0xA0 is used as NON-BREAKING SPACE to avoid the
collapsing of two or more spaces. Therefore the 0xA0 might as well be rendered
as normal single space by default:

if (CharCode == 0xA0)
   CharCode = 0x20;


Tobias

diff -urNad vdr-1.5.16~/font.c vdr-1.5.16/font.c
--- vdr-1.5.16~/font.c  2008-02-29 22:21:30.000000000 +0100
+++ vdr-1.5.16/font.c   2008-02-29 22:24:05.000000000 +0100
@@ -214,6 +214,9 @@
         return Glyph;
         }
      }
+#define UNKNOWN_GLYPH_INDICATOR '?'
+  if (CharCode != UNKNOWN_GLYPH_INDICATOR)
+     return Glyph(UNKNOWN_GLYPH_INDICATOR, AntiAliased);
   return NULL;
 }
 
@@ -258,6 +261,8 @@
            uint sym = Utf8CharGet(s, sl);
            s += sl;
            cGlyph *g = Glyph(sym, AntiAliased);
+           if (!g)
+              continue;
            int kerning = Kerning(g, prevSym);
            prevSym = sym;
            uchar *buffer = g->Bitmap();
_______________________________________________
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr

Reply via email to