1diff --git a/poppler/GlobalParams.cc b/poppler/GlobalParams.cc 2index 6efdd0c..9f81d87 100644 3--- a/poppler/GlobalParams.cc 4+++ b/poppler/GlobalParams.cc 5@@ -197,6 +197,36 @@ get_poppler_datadir (void) 6 #undef POPPLER_DATADIR 7 #define POPPLER_DATADIR get_poppler_datadir () 8 9+static const char * 10+get_poppler_fontsdir (void) 11+{ 12+ static char retval[MAX_PATH]; 13+ static int beenhere = 0; 14+ 15+ unsigned char *p; 16+ 17+ if (beenhere) 18+ return retval; 19+ 20+ if (!GetModuleFileName (hmodule, (CHAR *) retval, sizeof(retval) - 20)) 21+ return POPPLER_DATADIR; 22+ 23+ p = _mbsrchr ((unsigned char *) retval, '\\'); 24+ *p = '\0'; 25+ p = _mbsrchr ((unsigned char *) retval, '\\'); 26+ if (p) { 27+ if (stricmp ((const char *) (p+1), "bin") == 0) 28+ *p = '\0'; 29+ } 30+ strcat (retval, "\\share\\fonts"); 31+ 32+ beenhere = 1; 33+ 34+ return retval; 35+} 36+#undef POPPLER_FONTSDIR 37+#define POPPLER_FONTSDIR get_poppler_fontsdir () 38+ 39 #endif 40 41 //------------------------------------------------------------------------ 42@@ -1113,7 +1143,7 @@ GooString *GlobalParams::findFontFile(GooString *fontName) { 43 FILE *f; 44 int i, j; 45 46- setupBaseFonts(NULL); 47+ setupBaseFonts(POPPLER_FONTSDIR); 48 lockGlobalParams; 49 if ((path = (GooString *)fontFiles->lookup(fontName))) { 50 path = path->copy(); 51@@ -1149,7 +1179,7 @@ GooString *GlobalParams::findFontFile(GooString *fontName) { 52 */ 53 #if WITH_FONTCONFIGURATION_FONTCONFIG 54 // not needed for fontconfig 55-void GlobalParams::setupBaseFonts(char *dir) { 56+void GlobalParams::setupBaseFonts(const char *dir) { 57 } 58 59 GooString *GlobalParams::findBase14FontFile(GooString *base14Name, GfxFont *font) { 60@@ -1363,7 +1393,7 @@ static const char *displayFontDirs[] = { 61 NULL 62 }; 63 64-void GlobalParams::setupBaseFonts(char *dir) { 65+void GlobalParams::setupBaseFonts(const char *dir) { 66 GooString *fontName; 67 GooString *fileName; 68 FILE *f; 69diff --git a/poppler/GlobalParams.h b/poppler/GlobalParams.h 70index bc11684..f15de06 100644 71--- a/poppler/GlobalParams.h 72+++ b/poppler/GlobalParams.h 73@@ -133,7 +133,7 @@ public: 74 75 ~GlobalParams(); 76 77- void setupBaseFonts(char *dir); 78+ void setupBaseFonts(const char *dir); 79 80 //----- accessors 81 82diff --git a/poppler/GlobalParamsWin.cc b/poppler/GlobalParamsWin.cc 83index 084b49b..855b088 100644 84--- a/poppler/GlobalParamsWin.cc 85+++ b/poppler/GlobalParamsWin.cc 86@@ -405,7 +405,7 @@ static GooString* replaceSuffix(GooString *path, 87 } 88 89 90-void GlobalParams::setupBaseFonts(char * dir) 91+void GlobalParams::setupBaseFonts(const char * dir = NULL) 92 { 93 const char *dataRoot = popplerDataDir ? popplerDataDir : POPPLER_DATADIR; 94 GooString *fileName = NULL; 95@@ -556,7 +556,7 @@ GooString *GlobalParams::findSystemFontFile(GfxFont *font, 96 GooString *fontName = font->getName(); 97 if (!fontName) return NULL; 98 lockGlobalParams; 99- setupBaseFonts(NULL); 100+ setupBaseFonts(POPPLER_FONTSDIR); 101 102 // TODO: base14Name should be changed? 103 // In the system using FontConfig, findSystemFontFile() uses 104