diff options
-rw-r--r-- | CONTRIBUTORS | 4 | ||||
-rw-r--r-- | HISTORY | 2 | ||||
-rw-r--r-- | font.c | 26 |
3 files changed, 21 insertions, 11 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index a5ac694e..76572ef5 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -744,6 +744,7 @@ Georg Hitsch <georg@hitsch.at> Clemens Kirchgatterer <clemens@thf.ath.cx> for suggesting to change source directory name for plugins from 'SRC' to 'src' for reporting a problem with user defined CFLAGS in libdtv/libvdr/Makefile + for suggesting an error log message if no fonts are found Emil Naepflein <Emil.Naepflein@philosys.de> for suggesting to take an active SVDRP connection into account when doing shutdown or @@ -2231,3 +2232,6 @@ Yarema Aka Knedlyk <yupadmin@gmail.com> Lauri Nurmi <lanurmi@iki.fi> for adding a missing '.' to the date returned by DayDateTime() + +Mario Ivankovits <mario@ops.co.at> + for fixing a crash if no fonts are found @@ -5514,3 +5514,5 @@ Video Disk Recorder Revision History Stefan Huelswitt). The 'newplugin' and 'i18n-to-gettext.pl' scripts have been changed accordingly. Plugin authors may want to adjust the 'i18n' target of their Makefiles. +- Fixed a crash if no fonts are found (thanks to Mario Ivankovits and Clemens + Kirchgatterer). @@ -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(); |