fontfile_t*fd = global_fonts;
while(fd) {
FcConfigAppFontAddFile(config, (FcChar8*)fd->filename);
+ msg("<debug> Adding font %s to fontconfig", fd->filename);
fd = fd->next;
}
if(getLogLevel() >= LOGLEVEL_TRACE) {
int t;
- for(t=0;t<set->nfont;t++) {
- char*fcfamily=0,*fcstyle=0,*filename=0;
- FcBool scalable=FcFalse, outline=FcFalse;
- FcPatternGetString(set->fonts[t], "family", 0, (FcChar8**)&fcfamily);
- FcPatternGetString(set->fonts[t], "style", 0, (FcChar8**)&fcstyle);
- FcPatternGetString(set->fonts[t], "file", 0, (FcChar8**)&filename);
- FcPatternGetBool(set->fonts[t], "outline", 0, &outline);
- FcPatternGetBool(set->fonts[t], "scalable", 0, &scalable);
- if(scalable && outline) {
- msg("<trace> %s-%s -> %s", fcfamily, fcstyle, filename);
+ int p;
+ for(p=0;p<2;p++) {
+ for(t=0;t<set->nfont;t++) {
+ char*fcfamily=0,*fcstyle=0,*filename=0;
+ FcBool scalable=FcFalse, outline=FcFalse;
+ FcPatternGetString(set->fonts[t], "family", 0, (FcChar8**)&fcfamily);
+ FcPatternGetString(set->fonts[t], "style", 0, (FcChar8**)&fcstyle);
+ FcPatternGetString(set->fonts[t], "file", 0, (FcChar8**)&filename);
+ FcPatternGetBool(set->fonts[t], "outline", 0, &outline);
+ FcPatternGetBool(set->fonts[t], "scalable", 0, &scalable);
+ if(scalable && outline) {
+ msg("<trace> %s (%s) -> %s", fcfamily, fcstyle, filename);
+ }
}
+ set = FcConfigGetFonts(config, FcSetApplication);
}
}
}
char*family = strdup(name);
char*style = 0;
char*dash = strchr(family, '-');
+ if(!dash) dash = strchr(family, ',');
+
FcPattern*pattern = 0;
if(dash) {
*dash = 0;
DisplayFontParam *GFXGlobalParams::getDisplayFont(GString *fontName)
{
- msg("<verbose> looking for font %s in global params", fontName->getCString());
+ msg("<verbose> looking for font %s", fontName->getCString());
char*name = fontName->getCString();
}
free(filename);
return dfp;
+ } else {
+ msg("<verbose> Font %s not found\n", name);
+ return GlobalParams::getDisplayFont(fontName);
}
- return GlobalParams::getDisplayFont(fontName);
}
GFXOutputDev::GFXOutputDev(InfoOutputDev*info, PDFDoc*doc)
this->user_clipy1 = 0;
this->user_clipx2 = 0;
this->user_clipy2 = 0;
+ this->current_gfxfont = 0;
this->current_fontinfo = 0;
this->current_text_stroke = 0;
this->current_text_clip = 0;
gfxcolor_t col = getFillColor(state);
if(getLogLevel() >= LOGLEVEL_TRACE) {
- msg("<trace> %sfill %02x%02x%02x%02x%s", evenodd?"eo":"", col.r, col.g, col.b, col.a);
+ msg("<trace> %sfill %02x%02x%02x%02x", evenodd?"eo":"", col.r, col.g, col.b, col.a);
dump_outline(line);
}
device->fill(device, line, &col);
}
if(states[statepos].state!=state) {
msg("<fatal> bad state nesting");
+ if(verbose) {
+ int t;
+ for(t=0;t<=statepos;t++) {
+ printf("%08x ", states[t].state);
+ }
+ printf("\n");
+ }
exit(1);
}
states[statepos].state=0;
this->device = states[statepos].olddevice;
if(!this->device) {
- msg("<fatal> Bad state nesting in transparency group");
- msg("<fatal> Notice: this is a known problem, which will be fixed in 0.9.1");
- msg("<fatal> In the meantime, please convert the file with -s poly2bitmap");
- restoreState(state);
- this->device = states[statepos].olddevice;
+ msg("<error> Invalid state nesting");
}
states[statepos].olddevice = 0;