poppler/GlobalParamsWin.cc | 57 +++++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 25 deletions(-)
New commits: commit 885b23bfd16a3e4970a52956493e92a160b2d0a8 Author: Dmytro Morgun <[email protected]> Date: Fri Jul 17 00:30:08 2015 +0200 GlobalParamsWin bug/fixes Bug #91053 diff --git a/poppler/GlobalParamsWin.cc b/poppler/GlobalParamsWin.cc index 084b49b..f9f40ef 100644 --- a/poppler/GlobalParamsWin.cc +++ b/poppler/GlobalParamsWin.cc @@ -7,6 +7,7 @@ // Copyright (C) 2012 Adrian Johnson <[email protected]> // Copyright (C) 2012 Mark Brand <[email protected]> // Copyright (C) 2013 Adam Reichold <[email protected]> + // Copyright (C) 2013 Dmytro Morgun <[email protected]> TODO: instead of a fixed mapping defined in displayFontTab, it could scan the whole fonts directory, parse TTF files and build font @@ -443,11 +444,14 @@ void GlobalParams::setupBaseFonts(char * dir) delete fontPath; } - if (displayFontTab[i].warnIfMissing) - error(errSyntaxError, -1, "No display font for '{0:s}'", fontName); + if (displayFontTab[i].warnIfMissing) { + error(errSyntaxError, -1, "No display font for '{0:s}'", displayFontTab[i].name); + delete fontName; + } } if (winFontDir[0]) { - sysFonts->scanWindowsFonts(new GooString(winFontDir)); + GooString gooWinFontsDir(winFontDir); + sysFonts->scanWindowsFonts(&gooWinFontsDir); } fileName = new GooString(dataRoot); @@ -468,32 +472,35 @@ void GlobalParams::setupBaseFonts(char * dir) obj1.free(); parser->getObj(&obj1); while (!obj1.isEOF()) { - parser->getObj(&obj2); - if (obj1.isName()) { - // Substitutions - if (obj2.isDict()) { - Object obj3; - obj2.getDict()->lookup("Path", &obj3); - if (obj3.isString()) - addFontFile(new GooString(obj1.getName()), obj3.getString()->copy()); - obj3.free(); - // Aliases - } else if (obj2.isName()) { - substFiles->add(new GooString(obj1.getName()), new GooString(obj2.getName())); - } - } - obj2.free(); - obj1.free(); - parser->getObj(&obj1); - // skip trailing ';' - while (obj1.isCmd(";")) { - obj1.free(); - parser->getObj(&obj1); - } + parser->getObj(&obj2); + if (obj1.isName()) { + // Substitutions + if (obj2.isDict()) { + Object obj3; + obj2.getDict()->lookup("Path", &obj3); + if (obj3.isString()) + addFontFile(new GooString(obj1.getName()), obj3.getString()->copy()); + obj3.free(); + // Aliases + } else if (obj2.isName()) { + substFiles->add(new GooString(obj1.getName()), new GooString(obj2.getName())); + } + } + obj2.free(); + obj1.free(); + parser->getObj(&obj1); + // skip trailing ';' + while (obj1.isCmd(";")) { + obj1.free(); + parser->getObj(&obj1); + } } delete file; delete parser; } + else { + delete fileName; + } } static const char *findSubstituteName(GfxFont *font, GooHash *fontFiles, _______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
