Commit 163420b4 authored by Oliver Sander's avatar Oliver Sander Committed by Albert Astals Cid

Replace GBool, gTrue, and gFalse by bool, true, false, resp.

These are just non-standard names for bool, true, false, respectively.
Getting rid of these names saves on layer of mental redirection,
and enables proper syntax highlighting in editors.
parent 22dd47a6
Pipeline #6522 passed with stage
in 19 minutes and 28 seconds
......@@ -292,14 +292,14 @@ image page_renderer::render_page(const page *p,
bgColor[0] = d->paper_color & 0xff;
bgColor[1] = (d->paper_color >> 8) & 0xff;
bgColor[2] = (d->paper_color >> 16) & 0xff;
SplashOutputDev splashOutputDev(colorMode, 4, gFalse, bgColor, gTrue, lineMode);
splashOutputDev.setFontAntialias(d->hints & text_antialiasing ? gTrue : gFalse);
splashOutputDev.setVectorAntialias(d->hints & antialiasing ? gTrue : gFalse);
splashOutputDev.setFreeTypeHinting(d->hints & text_hinting ? gTrue : gFalse, gFalse);
SplashOutputDev splashOutputDev(colorMode, 4, false, bgColor, true, lineMode);
splashOutputDev.setFontAntialias(d->hints & text_antialiasing ? true : false);
splashOutputDev.setVectorAntialias(d->hints & antialiasing ? true : false);
splashOutputDev.setFreeTypeHinting(d->hints & text_hinting ? true : false, false);
splashOutputDev.startDoc(pdfdoc);
pdfdoc->displayPageSlice(&splashOutputDev, pp->index + 1,
xres, yres, int(rotate) * 90,
gFalse, gTrue, gFalse,
false, true, false,
x, y, w, h);
SplashBitmap *bitmap = splashOutputDev.getBitmap();
......
......@@ -206,7 +206,7 @@ bool page::search(const ustring &text, rectf &r, search_direction_enum direction
u[i] = text[i];
}
const GBool sCase = case_sensitivity == case_sensitive ? gTrue : gFalse;
const bool sCase = case_sensitivity == case_sensitive;
const int rotation_value = (int)rotation * 90;
bool found = false;
......@@ -215,24 +215,24 @@ bool page::search(const ustring &text, rectf &r, search_direction_enum direction
double rect_right = r.right();
double rect_bottom = r.bottom();
TextOutputDev td(nullptr, gTrue, 0, gFalse, gFalse);
TextOutputDev td(nullptr, true, 0, false, false);
d->doc->doc->displayPage(&td, d->index + 1, 72, 72, rotation_value, false, true, false);
TextPage *text_page = td.takeText();
switch (direction) {
case search_from_top:
found = text_page->findText(&u[0], len,
gTrue, gTrue, gFalse, gFalse, sCase, gFalse, gFalse,
true, true, false, false, sCase, false, false,
&rect_left, &rect_top, &rect_right, &rect_bottom);
break;
case search_next_result:
found = text_page->findText(&u[0], len,
gFalse, gTrue, gTrue, gFalse, sCase, gFalse, gFalse,
false, true, true, false, sCase, false, false,
&rect_left, &rect_top, &rect_right, &rect_bottom);
break;
case search_previous_result:
found = text_page->findText(&u[0], len,
gFalse, gTrue, gTrue, gFalse, sCase, gTrue, gFalse,
false, true, true, false, sCase, true, false,
&rect_left, &rect_top, &rect_right, &rect_bottom);
break;
}
......@@ -273,8 +273,8 @@ ustring page::text(const rectf &r) const
ustring page::text(const rectf &r, text_layout_enum layout_mode) const
{
std::unique_ptr<GooString> s;
const GBool use_raw_order = (layout_mode == raw_order_layout);
TextOutputDev td(nullptr, gFalse, 0, use_raw_order, gFalse);
const bool use_raw_order = (layout_mode == raw_order_layout);
TextOutputDev td(nullptr, false, 0, use_raw_order, false);
d->doc->doc->displayPage(&td, d->index + 1, 72, 72, 0, false, true, false);
if (r.is_empty()) {
PDFRectangle rect = *d->page->getCropBox();
......@@ -338,10 +338,10 @@ std::vector<text_box> page::text_list() const
/* config values are same with Qt5 Page::TextList() */
auto output_dev = std::make_unique<TextOutputDev>(
nullptr, /* char* fileName */
gFalse, /* GBool physLayoutA */
false, /* bool physLayoutA */
0, /* double fixedPitchA */
gFalse, /* GBool rawOrderA */
gFalse /* GBool append */
false, /* bool rawOrderA */
false /* bool append */
);
/*
......@@ -352,11 +352,11 @@ std::vector<text_box> page::text_list() const
d->doc->doc->displayPageSlice(output_dev.get(),
d->index + 1, /* page */
72, 72, 0, /* hDPI, vDPI, rot */
gFalse, gFalse, gFalse, /* useMediaBox, crop, printing */
false, false, false, /* useMediaBox, crop, printing */
-1, -1, -1, -1, /* sliceX, sliceY, sliceW, sliceH */
nullptr, nullptr, /* abortCheckCbk(), abortCheckCbkData */
nullptr, nullptr, /* annotDisplayDecideCbk(), annotDisplayDecideCbkData */
gTrue); /* copyXRef */
true); /* copyXRef */
if (std::unique_ptr< TextWordList > word_list{output_dev->makeWordList()}) {
......@@ -375,7 +375,7 @@ std::vector<text_box> page::text_list() const
{xMin, yMin, xMax-xMin, yMax-yMin},
word->getRotation(),
{},
word->hasSpaceAfter() == gTrue
word->hasSpaceAfter() == true
}};
tb.m_data->char_bboxes.reserve(word->getLength());
......
......@@ -34,7 +34,7 @@
// FoFiBase
//------------------------------------------------------------------------
FoFiBase::FoFiBase(const char *fileA, int lenA, GBool freeFileDataA) {
FoFiBase::FoFiBase(const char *fileA, int lenA, bool freeFileDataA) {
file = (const Guchar *)fileA;
len = lenA;
freeFileData = freeFileDataA;
......@@ -82,11 +82,11 @@ char *FoFiBase::readFile(const char *fileName, int *fileLen) {
return buf;
}
int FoFiBase::getS8(int pos, GBool *ok) const {
int FoFiBase::getS8(int pos, bool *ok) const {
int x;
if (pos < 0 || pos >= len) {
*ok = gFalse;
*ok = false;
return 0;
}
x = file[pos];
......@@ -96,19 +96,19 @@ int FoFiBase::getS8(int pos, GBool *ok) const {
return x;
}
int FoFiBase::getU8(int pos, GBool *ok) const {
int FoFiBase::getU8(int pos, bool *ok) const {
if (pos < 0 || pos >= len) {
*ok = gFalse;
*ok = false;
return 0;
}
return file[pos];
}
int FoFiBase::getS16BE(int pos, GBool *ok) const {
int FoFiBase::getS16BE(int pos, bool *ok) const {
int x;
if (pos < 0 || pos+1 >= len || pos > INT_MAX - 1) {
*ok = gFalse;
*ok = false;
return 0;
}
x = file[pos];
......@@ -119,11 +119,11 @@ int FoFiBase::getS16BE(int pos, GBool *ok) const {
return x;
}
int FoFiBase::getU16BE(int pos, GBool *ok) const {
int FoFiBase::getU16BE(int pos, bool *ok) const {
int x;
if (pos < 0 || pos+1 >= len || pos > INT_MAX - 1) {
*ok = gFalse;
*ok = false;
return 0;
}
x = file[pos];
......@@ -131,11 +131,11 @@ int FoFiBase::getU16BE(int pos, GBool *ok) const {
return x;
}
int FoFiBase::getS32BE(int pos, GBool *ok) const {
int FoFiBase::getS32BE(int pos, bool *ok) const {
int x;
if (pos < 0 || pos+3 >= len || pos > INT_MAX - 3) {
*ok = gFalse;
*ok = false;
return 0;
}
x = file[pos];
......@@ -148,11 +148,11 @@ int FoFiBase::getS32BE(int pos, GBool *ok) const {
return x;
}
Guint FoFiBase::getU32BE(int pos, GBool *ok) const {
Guint FoFiBase::getU32BE(int pos, bool *ok) const {
Guint x;
if (pos < 0 || pos+3 >= len || pos > INT_MAX - 3) {
*ok = gFalse;
*ok = false;
return 0;
}
x = file[pos];
......@@ -162,11 +162,11 @@ Guint FoFiBase::getU32BE(int pos, GBool *ok) const {
return x;
}
Guint FoFiBase::getU32LE(int pos, GBool *ok) const {
Guint FoFiBase::getU32LE(int pos, bool *ok) const {
Guint x;
if (pos < 0 || pos+3 >= len || pos > INT_MAX - 3) {
*ok = gFalse;
*ok = false;
return 0;
}
x = file[pos+3];
......@@ -176,12 +176,12 @@ Guint FoFiBase::getU32LE(int pos, GBool *ok) const {
return x;
}
Guint FoFiBase::getUVarBE(int pos, int size, GBool *ok) const {
Guint FoFiBase::getUVarBE(int pos, int size, bool *ok) const {
Guint x;
int i;
if (pos < 0 || pos + size > len || pos > INT_MAX - size) {
*ok = gFalse;
*ok = false;
return 0;
}
x = 0;
......@@ -191,7 +191,7 @@ Guint FoFiBase::getUVarBE(int pos, int size, GBool *ok) const {
return x;
}
GBool FoFiBase::checkRegion(int pos, int size) const {
bool FoFiBase::checkRegion(int pos, int size) const {
return pos >= 0 &&
pos < INT_MAX - size &&
size < INT_MAX - pos &&
......
......@@ -42,26 +42,26 @@ public:
protected:
FoFiBase(const char *fileA, int lenA, GBool freeFileDataA);
FoFiBase(const char *fileA, int lenA, bool freeFileDataA);
static char *readFile(const char *fileName, int *fileLen);
// S = signed / U = unsigned
// 8/16/32/Var = word length, in bytes
// BE = big endian
int getS8(int pos, GBool *ok) const;
int getU8(int pos, GBool *ok) const;
int getS16BE(int pos, GBool *ok) const;
int getU16BE(int pos, GBool *ok) const;
int getS32BE(int pos, GBool *ok) const;
Guint getU32BE(int pos, GBool *ok) const;
Guint getU32LE(int pos, GBool *ok) const;
Guint getUVarBE(int pos, int size, GBool *ok) const;
int getS8(int pos, bool *ok) const;
int getU8(int pos, bool *ok) const;
int getS16BE(int pos, bool *ok) const;
int getU16BE(int pos, bool *ok) const;
int getS32BE(int pos, bool *ok) const;
Guint getU32BE(int pos, bool *ok) const;
Guint getU32LE(int pos, bool *ok) const;
Guint getUVarBE(int pos, int size, bool *ok) const;
GBool checkRegion(int pos, int size) const;
bool checkRegion(int pos, int size) const;
const Guchar *file;
int len;
GBool freeFileData;
bool freeFileData;
};
#endif
This diff is collapsed.
......@@ -166,24 +166,24 @@ struct cmpTrueTypeTableTagFunctor {
struct T42Table {
const char *tag; // 4-byte tag
GBool required; // required by the TrueType spec?
bool required; // required by the TrueType spec?
};
// TrueType tables to be embedded in Type 42 fonts.
// NB: the table names must be in alphabetical order here.
#define nT42Tables 11
static T42Table t42Tables[nT42Tables] = {
{ "cvt ", gTrue },
{ "fpgm", gTrue },
{ "glyf", gTrue },
{ "head", gTrue },
{ "hhea", gTrue },
{ "hmtx", gTrue },
{ "loca", gTrue },
{ "maxp", gTrue },
{ "prep", gTrue },
{ "vhea", gFalse },
{ "vmtx", gFalse }
{ "cvt ", true },
{ "fpgm", true },
{ "glyf", true },
{ "head", true },
{ "hhea", true },
{ "hmtx", true },
{ "loca", true },
{ "maxp", true },
{ "prep", true },
{ "vhea", false },
{ "vmtx", false }
};
#define t42HeadTable 3
#define t42LocaTable 6
......@@ -270,7 +270,7 @@ static const char *macGlyphNames[258] = {
FoFiTrueType *FoFiTrueType::make(const char *fileA, int lenA, int faceIndexA) {
FoFiTrueType *ff;
ff = new FoFiTrueType(fileA, lenA, gFalse, faceIndexA);
ff = new FoFiTrueType(fileA, lenA, false, faceIndexA);
if (!ff->parsedOk) {
delete ff;
return nullptr;
......@@ -286,7 +286,7 @@ FoFiTrueType *FoFiTrueType::load(const char *fileName, int faceIndexA) {
if (!(fileA = FoFiBase::readFile(fileName, &lenA))) {
return nullptr;
}
ff = new FoFiTrueType(fileA, lenA, gTrue, faceIndexA);
ff = new FoFiTrueType(fileA, lenA, true, faceIndexA);
if (!ff->parsedOk) {
delete ff;
return nullptr;
......@@ -294,14 +294,14 @@ FoFiTrueType *FoFiTrueType::load(const char *fileName, int faceIndexA) {
return ff;
}
FoFiTrueType::FoFiTrueType(const char *fileA, int lenA, GBool freeFileDataA, int faceIndexA):
FoFiTrueType::FoFiTrueType(const char *fileA, int lenA, bool freeFileDataA, int faceIndexA):
FoFiBase(fileA, lenA, freeFileDataA)
{
tables = nullptr;
nTables = 0;
cmaps = nullptr;
nCmaps = 0;
parsedOk = gFalse;
parsedOk = false;
faceIndex = faceIndexA;
gsubFeatureTable = 0;
gsubLookupList = 0;
......@@ -342,12 +342,12 @@ int FoFiTrueType::mapCodeToGID(int i, Guint c) const {
Guint segCnt, segEnd, segStart, segDelta, segOffset;
Guint cmapFirst, cmapLen;
int pos, a, b, m;
GBool ok;
bool ok;
if (i < 0 || i >= nCmaps) {
return 0;
}
ok = gTrue;
ok = true;
pos = cmaps[i].offset;
switch (cmaps[i].fmt) {
case 0:
......@@ -442,19 +442,19 @@ int FoFiTrueType::mapNameToGID(const char *name) const {
return gid->second;
}
GBool FoFiTrueType::getCFFBlock(char **start, int *length) const {
bool FoFiTrueType::getCFFBlock(char **start, int *length) const {
int i;
if (!openTypeCFF || !tables) {
return gFalse;
return false;
}
i = seekTable("CFF ");
if (!checkRegion(tables[i].offset, tables[i].len)) {
return gFalse;
return false;
}
*start = (char *)file + tables[i].offset;
*length = tables[i].len;
return gTrue;
return true;
}
int *FoFiTrueType::getCIDToGIDMap(int *nCIDs) const {
......@@ -477,12 +477,12 @@ int *FoFiTrueType::getCIDToGIDMap(int *nCIDs) const {
int FoFiTrueType::getEmbeddingRights() const {
int i, fsType;
GBool ok;
bool ok;
if ((i = seekTable("OS/2")) < 0) {
return 4;
}
ok = gTrue;
ok = true;
fsType = getU16BE(tables[i].offset + 8, &ok);
if (!ok) {
return 4;
......@@ -520,14 +520,14 @@ void FoFiTrueType::convertToType42(const char *psName, char **encoding,
void *outputStream) const {
GooString *buf;
int maxUsedGlyph;
GBool ok;
bool ok;
if (openTypeCFF) {
return;
}
// write the header
ok = gTrue;
ok = true;
buf = GooString::format("%!PS-TrueTypeFont-{0:2g}\n",
(double)getS32BE(0, &ok) / 65536.0);
(*outputFunc)(outputStream, buf->getCString(), buf->getLength());
......@@ -549,14 +549,14 @@ void FoFiTrueType::convertToType42(const char *psName, char **encoding,
// write the guts of the dictionary
cvtEncoding(encoding, outputFunc, outputStream);
cvtCharStrings(encoding, codeToGID, outputFunc, outputStream);
cvtSfnts(outputFunc, outputStream, nullptr, gFalse, &maxUsedGlyph);
cvtSfnts(outputFunc, outputStream, nullptr, false, &maxUsedGlyph);
// end the dictionary and define the font
(*outputFunc)(outputStream, "FontName currentdict end definefont pop\n", 40);
}
void FoFiTrueType::convertToType1(const char *psName, const char **newEncoding,
GBool ascii, FoFiOutputFunc outputFunc,
bool ascii, FoFiOutputFunc outputFunc,
void *outputStream) const {
char *start;
int length;
......@@ -574,12 +574,12 @@ void FoFiTrueType::convertToType1(const char *psName, const char **newEncoding,
void FoFiTrueType::convertToCIDType2(const char *psName,
int *cidMap, int nCIDs,
GBool needVerticalMetrics,
bool needVerticalMetrics,
FoFiOutputFunc outputFunc,
void *outputStream) const {
GooString *buf;
int cid, maxUsedGlyph;
GBool ok;
bool ok;
int i, j, k;
if (openTypeCFF) {
......@@ -587,7 +587,7 @@ void FoFiTrueType::convertToCIDType2(const char *psName,
}
// write the header
ok = gTrue;
ok = true;
buf = GooString::format("%!PS-TrueTypeFont-{0:2g}\n",
(double)getS32BE(0, &ok) / 65536.0);
(*outputFunc)(outputStream, buf->getCString(), buf->getLength());
......@@ -720,7 +720,7 @@ void FoFiTrueType::convertToCIDType0(const char *psName, int *cidMap, int nCIDs,
}
void FoFiTrueType::convertToType0(const char *psName, int *cidMap, int nCIDs,
GBool needVerticalMetrics,
bool needVerticalMetrics,
int *maxValidGlyph,
FoFiOutputFunc outputFunc,
void *outputStream) const {
......@@ -934,14 +934,14 @@ void FoFiTrueType::cvtCharStrings(char **encoding,
void FoFiTrueType::cvtSfnts(FoFiOutputFunc outputFunc,
void *outputStream, GooString *name,
GBool needVerticalMetrics,
bool needVerticalMetrics,
int *maxUsedGlyph) const {
Guchar headData[54];
TrueTypeLoca *locaTable;
Guchar *locaData;
TrueTypeTable newTables[nT42Tables];
Guchar tableDir[12 + nT42Tables*16];
GBool ok;
bool ok;
Guint checksum;
int nNewTables;
int glyfTableLen, length, pos, glyfPos, i, j, k, vmtxTabLength;
......@@ -965,7 +965,7 @@ void FoFiTrueType::cvtSfnts(FoFiOutputFunc outputFunc,
0, 1 // number of advance heights in vmtx table
};
Guchar *vmtxTab;
GBool needVhea, needVmtx;
bool needVhea, needVmtx;
int advance;
// construct the 'head' table, zero out the font checksum
......@@ -999,7 +999,7 @@ void FoFiTrueType::cvtSfnts(FoFiOutputFunc outputFunc,
pos = tables[i].offset;
i = seekTable("glyf");
glyfTableLen = tables[i].len;
ok = gTrue;
ok = true;
for (i = 0; i <= nGlyphs; ++i) {
locaTable[i].idx = i;
if (locaFmt) {
......@@ -1318,7 +1318,7 @@ void FoFiTrueType::parse() {
Guint topTag;
int pos, ver, i, j;
parsedOk = gTrue;
parsedOk = true;
// look for a collection (TTC)
topTag = getU32BE(0, &parsedOk);
......@@ -1333,7 +1333,7 @@ void FoFiTrueType::parse() {
if (!parsedOk)
return;
if (! dircount) {
parsedOk = gFalse;
parsedOk = false;
return;
}
......@@ -1392,7 +1392,7 @@ void FoFiTrueType::parse() {
(!openTypeCFF && seekTable("loca") < 0) ||
(!openTypeCFF && seekTable("glyf") < 0) ||
(openTypeCFF && seekTable("CFF ") < 0)) {
parsedOk = gFalse;
parsedOk = false;
return;
}
......@@ -1445,10 +1445,10 @@ void FoFiTrueType::parse() {
void FoFiTrueType::readPostTable() {
std::string name;
int tablePos, postFmt, stringIdx, stringPos;
GBool ok;
bool ok;
int i, j, n, m;
ok = gTrue;
ok = true;
if ((i = seekTable("post")) < 0) {
return;
}
......@@ -1474,7 +1474,7 @@ void FoFiTrueType::readPostTable() {
stringIdx = 0;
stringPos = tablePos + 34 + 2*n;
for (i = 0; i < n; ++i) {
ok = gTrue;
ok = true;
j = getU16BE(tablePos + 34 + 2*i, &ok);
if (j < 258) {
nameToGID[macGlyphNames[j]] = i;
......
......@@ -55,7 +55,7 @@ public:
// Returns true if this an OpenType font containing CFF data, false
// if it's a TrueType font (or OpenType font with TrueType data).
GBool isOpenTypeCFF() const { return openTypeCFF; }
bool isOpenTypeCFF() const { return openTypeCFF; }
// Return the number of cmaps defined by this font.
int getNumCmaps() const;
......@@ -118,7 +118,7 @@ public:
// otherwise it will be left as binary data. If <psName> is
// non-NULL, it will be used as the PostScript font name. (Only
// useful for OpenType CFF fonts.)
void convertToType1(const char *psName, const char **newEncoding, GBool ascii,
void convertToType1(const char *psName, const char **newEncoding, bool ascii,
FoFiOutputFunc outputFunc, void *outputStream) const;
// Convert to a Type 2 CIDFont, suitable for embedding in a
......@@ -127,7 +127,7 @@ public:
// font). The <cidMap> array maps CIDs to GIDs; it has <nCIDs>
// entries. (Not useful for OpenType CFF fonts.)
void convertToCIDType2(const char *psName, int *cidMap, int nCIDs,
GBool needVerticalMetrics,
bool needVerticalMetrics,
FoFiOutputFunc outputFunc, void *outputStream) const;
// Convert to a Type 0 CIDFont, suitable for embedding in a
......@@ -142,7 +142,7 @@ public:
// table in the font). The <cidMap> array maps CIDs to GIDs; it has
// <nCIDs> entries. (Not useful for OpenType CFF fonts.)
void convertToType0(const char *psName, int *cidMap, int nCIDs,
GBool needVerticalMetrics,
bool needVerticalMetrics,
int *maxValidGlyph,
FoFiOutputFunc outputFunc, void *outputStream) const;
......@@ -155,7 +155,7 @@ public:
// Returns a pointer to the CFF font embedded in this OpenType font.
// If successful, sets *<start> and *<length>, and returns true.
// Otherwise returns false. (Only useful for OpenType CFF fonts).
GBool getCFFBlock(char **start, int *length) const;
bool getCFFBlock(char **start, int *length) const;
// setup vert/vrt2 GSUB for default lang
int setupGSUB(const char *scriptName);
......@@ -165,7 +165,7 @@ public:
private:
FoFiTrueType(const char *fileA, int lenA, GBool freeFileDataA, int faceIndexA);
FoFiTrueType(const char *fileA, int lenA, bool freeFileDataA, int faceIndexA);
void cvtEncoding(char **encoding,
FoFiOutputFunc outputFunc,
void *outputStream) const;
......@@ -175,7 +175,7 @@ private:
void *outputStream) const;
void cvtSfnts(FoFiOutputFunc outputFunc,
void *outputStream, GooString *name,
GBool needVerticalMetrics,
bool needVerticalMetrics,
int *maxUsedGlyph) const;
void dumpString(const Guchar *s, int length,
FoFiOutputFunc outputFunc,
......@@ -198,9 +198,9 @@ private:
int locaFmt;
int bbox[4];
std::unordered_map<std::string,int> nameToGID;
GBool openTypeCFF;
bool openTypeCFF;
GBool parsedOk;
bool parsedOk;
int faceIndex;
Guint gsubFeatureTable;
Guint gsubLookupList;
......
......@@ -42,7 +42,7 @@
//------------------------------------------------------------------------
FoFiType1 *FoFiType1::make(const char *fileA, int lenA) {
return new FoFiType1(fileA, lenA, gFalse);
return new FoFiType1(fileA, lenA, false);
}
FoFiType1 *FoFiType1::load(const char *fileName) {
......@@ -52,10 +52,10 @@ FoFiType1 *FoFiType1::load(const char *fileName) {
if (!(fileA = FoFiBase::readFile(fileName, &lenA))) {
return nullptr;
}
return new FoFiType1(fileA, lenA, gTrue);
return new FoFiType1(fileA, lenA, true);
}
FoFiType1::FoFiType1(const char *fileA, int lenA, GBool freeFileDataA):
FoFiType1::FoFiType1(const char *fileA, int lenA, bool freeFileDataA):
FoFiBase(fileA, lenA, freeFileDataA)
{
name = nullptr;
......@@ -66,7 +66,7 @@ FoFiType1::FoFiType1(const char *fileA, int lenA, GBool freeFileDataA):