summaryrefslogtreecommitdiff
path: root/Build/source/libs/xpdf/xpdf-src/splash/SplashFTFontEngine.cc
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/xpdf/xpdf-src/splash/SplashFTFontEngine.cc')
-rw-r--r--Build/source/libs/xpdf/xpdf-src/splash/SplashFTFontEngine.cc53
1 files changed, 30 insertions, 23 deletions
diff --git a/Build/source/libs/xpdf/xpdf-src/splash/SplashFTFontEngine.cc b/Build/source/libs/xpdf/xpdf-src/splash/SplashFTFontEngine.cc
index 3ba033c9db3..33939541051 100644
--- a/Build/source/libs/xpdf/xpdf-src/splash/SplashFTFontEngine.cc
+++ b/Build/source/libs/xpdf/xpdf-src/splash/SplashFTFontEngine.cc
@@ -8,7 +8,7 @@
#include <aconf.h>
-#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
+#if HAVE_FREETYPE_H
#ifdef USE_GCC_PRAGMAS
#pragma implementation
@@ -19,6 +19,7 @@
# include <unistd.h>
#endif
#include "gmem.h"
+#include "gmempp.h"
#include "GString.h"
#include "gfile.h"
#include "FoFiTrueType.h"
@@ -87,13 +88,13 @@ SplashFontFile *SplashFTFontEngine::loadType1Font(SplashFontFileID *idA,
GBool deleteFile,
#endif
const char **enc) {
- return SplashFTFontFile::loadType1Font(this, idA,
+ return SplashFTFontFile::loadType1Font(this, idA, splashFontType1,
#if LOAD_FONTS_FROM_MEM
fontBuf,
#else
fileName, deleteFile,
#endif
- enc, gTrue);
+ enc);
}
SplashFontFile *SplashFTFontEngine::loadType1CFont(SplashFontFileID *idA,
@@ -104,13 +105,13 @@ SplashFontFile *SplashFTFontEngine::loadType1CFont(SplashFontFileID *idA,
GBool deleteFile,
#endif
const char **enc) {
- return SplashFTFontFile::loadType1Font(this, idA,
+ return SplashFTFontFile::loadType1Font(this, idA, splashFontType1C,
#if LOAD_FONTS_FROM_MEM
fontBuf,
#else
fileName, deleteFile,
#endif
- enc, gFalse);
+ enc);
}
SplashFontFile *SplashFTFontEngine::loadOpenTypeT1CFont(SplashFontFileID *idA,
@@ -143,8 +144,8 @@ SplashFontFile *SplashFTFontEngine::loadOpenTypeT1CFont(SplashFontFileID *idA,
fontBuf2 = new GString();
ff->convertToType1(NULL, enc, gFalse, &gstringWrite, fontBuf2);
delete ff;
- ret = SplashFTFontFile::loadType1Font(this, idA, fontBuf2, enc,
- gFalse);
+ ret = SplashFTFontFile::loadType1Font(this, idA, splashFontType1,
+ fontBuf2, enc);
if (ret) {
delete fontBuf;
} else {
@@ -159,8 +160,9 @@ SplashFontFile *SplashFTFontEngine::loadOpenTypeT1CFont(SplashFontFileID *idA,
ff->convertToType1(NULL, enc, gFalse, &fileWrite, tmpFile);
delete ff;
fclose(tmpFile);
- ret = SplashFTFontFile::loadType1Font(this, idA, tmpFileName->getCString(),
- gTrue, enc, gFalse);
+ ret = SplashFTFontFile::loadType1Font(this, idA, splashFontType1,
+ tmpFileName->getCString(),
+ gTrue, enc);
if (ret) {
if (deleteFile) {
unlink(fileName);
@@ -172,32 +174,36 @@ SplashFontFile *SplashFTFontEngine::loadOpenTypeT1CFont(SplashFontFileID *idA,
#endif
} else {
delete ff;
- ret = SplashFTFontFile::loadType1Font(this, idA,
+ ret = SplashFTFontFile::loadType1Font(this, idA, splashFontOpenTypeT1C,
#if LOAD_FONTS_FROM_MEM
fontBuf,
#else
fileName, deleteFile,
#endif
- enc, gFalse);
+ enc);
}
return ret;
}
SplashFontFile *SplashFTFontEngine::loadCIDFont(SplashFontFileID *idA,
#if LOAD_FONTS_FROM_MEM
- GString *fontBuf
+ GString *fontBuf,
#else
char *fileName,
- GBool deleteFile
+ GBool deleteFile,
#endif
- ) {
+ int *codeToGID,
+ int codeToGIDLen) {
FoFiType1C *ff;
int *cidToGIDMap;
int nCIDs;
SplashFontFile *ret;
// check for a CFF font
- if (useCIDs) {
+ if (codeToGID) {
+ cidToGIDMap = NULL;
+ nCIDs = 0;
+ } else if (useCIDs) {
cidToGIDMap = NULL;
nCIDs = 0;
#if LOAD_FONTS_FROM_MEM
@@ -212,13 +218,14 @@ SplashFontFile *SplashFTFontEngine::loadCIDFont(SplashFontFileID *idA,
cidToGIDMap = NULL;
nCIDs = 0;
}
- ret = SplashFTFontFile::loadCIDFont(this, idA,
+ ret = SplashFTFontFile::loadCIDFont(this, idA, splashFontCID,
#if LOAD_FONTS_FROM_MEM
fontBuf,
#else
fileName, deleteFile,
#endif
- cidToGIDMap, nCIDs);
+ codeToGID ? codeToGID : cidToGIDMap,
+ codeToGID ? codeToGIDLen : nCIDs);
if (!ret) {
gfree(cidToGIDMap);
}
@@ -266,8 +273,8 @@ SplashFontFile *SplashFTFontEngine::loadOpenTypeCFFFont(SplashFontFileID *idA,
if (!useCIDs) {
cidToGIDMap = ff->getCIDToGIDMap(&nCIDs);
}
- ret = SplashFTFontFile::loadCIDFont(this, idA, fontBuf2,
- cidToGIDMap, nCIDs);
+ ret = SplashFTFontFile::loadCIDFont(this, idA, splashFontOpenTypeCFF,
+ fontBuf2, cidToGIDMap, nCIDs);
if (ret) {
delete fontBuf;
} else {
@@ -284,7 +291,7 @@ SplashFontFile *SplashFTFontEngine::loadOpenTypeCFFFont(SplashFontFileID *idA,
if (!useCIDs) {
cidToGIDMap = ff->getCIDToGIDMap(&nCIDs);
}
- ret = SplashFTFontFile::loadCIDFont(this, idA,
+ ret = SplashFTFontFile::loadCIDFont(this, idA, splashFontOpenTypeCFF,
tmpFileName->getCString(), gTrue,
cidToGIDMap, nCIDs);
if (ret) {
@@ -300,7 +307,7 @@ SplashFontFile *SplashFTFontEngine::loadOpenTypeCFFFont(SplashFontFileID *idA,
if (!codeToGID && !useCIDs && ff->isOpenTypeCFF()) {
cidToGIDMap = ff->getCIDToGIDMap(&nCIDs);
}
- ret = SplashFTFontFile::loadCIDFont(this, idA,
+ ret = SplashFTFontFile::loadCIDFont(this, idA, splashFontOpenTypeCFF,
#if LOAD_FONTS_FROM_MEM
fontBuf,
#else
@@ -356,7 +363,7 @@ SplashFontFile *SplashFTFontEngine::loadTrueTypeFont(SplashFontFileID *idA,
fclose(tmpFile);
#endif
delete ff;
- ret = SplashFTFontFile::loadTrueTypeFont(this, idA,
+ ret = SplashFTFontFile::loadTrueTypeFont(this, idA, splashFontTrueType,
#if LOAD_FONTS_FROM_MEM
fontBuf2,
#else
@@ -382,4 +389,4 @@ SplashFontFile *SplashFTFontEngine::loadTrueTypeFont(SplashFontFileID *idA,
return ret;
}
-#endif // HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
+#endif // HAVE_FREETYPE_H