double size of renderbuffer
[enigma2.git] / lib / gdi / font.cpp
index f7c1bca5ed59f075bc5b2acb334555ea68e59dd1..3948ea98b244272b2def8551a911469fc79b68ae 100644 (file)
@@ -235,6 +235,13 @@ int fontRenderClass::getFont(ePtr<Font> &font, const std::string &face, int size
        return 0;
 }
 
+void addFont(const char *filename, const char *alias, int scale_factor, int is_replacement)
+{
+       fontRenderClass::getInstance()->AddFont(filename, alias, scale_factor);
+       if (is_replacement)
+               eTextPara::setReplacementFont(alias);
+}
+
 DEFINE_REF(Font);
 
 Font::Font(fontRenderClass *render, FTC_FaceID faceid, int isize, int tw): tabwidth(tw)
@@ -470,9 +477,9 @@ int eTextPara::renderString(const char *string, int rflags)
        if (string)
                uc_string.reserve(strlen(string));
        
-       const char *p = string;
+       const char *p = string ? string : "";
 
-       while(p)
+       while (*p)
        {
                unsigned int unicode=(unsigned char)*p++;
 
@@ -482,28 +489,28 @@ int eTextPara::renderString(const char *string, int rflags)
                        {
                                unicode&=0x1F;
                                unicode<<=6;
-                               if (p)
+                               if (*p)
                                        unicode|=(*p++)&0x3F;
                        } else if ((unicode & 0xF0)==0xE0) // three bytes
                        {
                                unicode&=0x0F;
                                unicode<<=6;
-                               if (p)
+                               if (*p)
                                        unicode|=(*p++)&0x3F;
                                unicode<<=6;
-                               if (p)
+                               if (*p)
                                        unicode|=(*p++)&0x3F;
                        } else if ((unicode & 0xF8)==0xF0) // four bytes
                        {
                                unicode&=0x07;
                                unicode<<=6;
-                               if (p)
+                               if (*p)
                                        unicode|=(*p++)&0x3F;
                                unicode<<=6;
-                               if (p)
+                               if (*p)
                                        unicode|=(*p++)&0x3F;
                                unicode<<=6;
-                               if (p)
+                               if (*p)
                                        unicode|=(*p++)&0x3F;
                        }
                }