diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2007-11-04 11:11:34 +0100 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2007-11-04 11:11:34 +0100 |
commit | c01249ffe5ef1a98e309f5857ba8724f59163391 (patch) | |
tree | c5bd41837ae2326df4e219c055208072d86b9347 /font.c | |
parent | 7823790beb2f16d93b59dd4dbc6c8112fb3bc97d (diff) | |
download | vdr-c01249ffe5ef1a98e309f5857ba8724f59163391.tar.gz vdr-c01249ffe5ef1a98e309f5857ba8724f59163391.tar.bz2 |
Fixed a crash if no fonts are found
Diffstat (limited to 'font.c')
-rw-r--r-- | font.c | 26 |
1 files changed, 15 insertions, 11 deletions
@@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: font.c 1.21 2007/06/23 11:25:42 kls Exp $ + * $Id: font.c 1.22 2007/11/04 11:08:12 kls Exp $ */ #include "font.h" @@ -395,17 +395,21 @@ cString cFont::GetFontFileName(const char *FontName) FcConfigSubstitute(NULL, pat, FcMatchPattern); FcDefaultSubstitute(pat); FcFontSet *fontset = FcFontSort(NULL, pat, FcFalse, NULL, NULL); - for (int i = 0; i < fontset->nfont; i++) { - FcBool scalable; - FcPatternGetBool(fontset->fonts[i], FC_SCALABLE, 0, &scalable); - if (scalable) { - FcChar8 *s = NULL; - FcPatternGetString(fontset->fonts[i], FC_FILE, 0, &s); - FontFileName = (char *)s; - break; + if (fontset) { + for (int i = 0; i < fontset->nfont; i++) { + FcBool scalable; + FcPatternGetBool(fontset->fonts[i], FC_SCALABLE, 0, &scalable); + if (scalable) { + FcChar8 *s = NULL; + FcPatternGetString(fontset->fonts[i], FC_FILE, 0, &s); + FontFileName = (char *)s; + break; + } } - } - FcFontSetDestroy(fontset); + FcFontSetDestroy(fontset); + } + else + esyslog("ERROR: no usable font found for '%s'", FontName); FcPatternDestroy(pat); free(fn); FcFini(); |