Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pdf/xpdf/GlobalParams.cc
diff options
context:
space:
mode:
authorMartin Kretzschmar <mkretzschmar@src.gnome.org>2003-03-31 16:45:09 (GMT)
committer Martin Kretzschmar <mkretzschmar@src.gnome.org>2003-03-31 16:45:09 (GMT)
commit28c37dbcf87665a4ccec58bef9ef8ff0697022dd (patch)
tree4fd39a6f8e50717677d56ad0bbb520baa77589f0 /pdf/xpdf/GlobalParams.cc
parent6112dfe4b45b0305c7a6f61bd8a847f69f892cbb (diff)
Import of Xpdf 2.00 for merge
Diffstat (limited to 'pdf/xpdf/GlobalParams.cc')
-rw-r--r--pdf/xpdf/GlobalParams.cc86
1 files changed, 66 insertions, 20 deletions
diff --git a/pdf/xpdf/GlobalParams.cc b/pdf/xpdf/GlobalParams.cc
index 0bc908e..b50c15b 100644
--- a/pdf/xpdf/GlobalParams.cc
+++ b/pdf/xpdf/GlobalParams.cc
@@ -6,11 +6,12 @@
//
//========================================================================
-#ifdef __GNUC__
+#include <aconf.h>
+
+#ifdef USE_GCC_PRAGMAS
#pragma implementation
#endif
-#include <aconf.h>
#include <string.h>
#include <ctype.h>
#if HAVE_PAPER_H
@@ -144,11 +145,18 @@ GlobalParams::GlobalParams(char *cfgFileName) {
displayCIDFonts = new GHash();
displayNamedCIDFonts = new GHash();
#if HAVE_PAPER_H
+ char *paperName;
const struct paper *paperType;
paperinit();
- paperType = paperinfo(systempapername());
- psPaperWidth = (int)paperpswidth(paperType);
- psPaperHeight = (int)paperpsheight(paperType);
+ if ((paperName = systempapername())) {
+ paperType = paperinfo(paperName);
+ psPaperWidth = (int)paperpswidth(paperType);
+ psPaperHeight = (int)paperpsheight(paperType);
+ } else {
+ error(-1, "No paper information available - using defaults");
+ psPaperWidth = defPaperWidth;
+ psPaperHeight = defPaperHeight;
+ }
paperdone();
#else
psPaperWidth = defPaperWidth;
@@ -174,12 +182,15 @@ GlobalParams::GlobalParams(char *cfgFileName) {
#else
textEOL = eolUnix;
#endif
+ textKeepTinyChars = gFalse;
fontDirs = new GList();
initialZoom = new GString("1");
t1libControl = fontRastAALow;
freetypeControl = fontRastAALow;
urlCommand = NULL;
+ movieCommand = NULL;
mapNumericCharNames = gTrue;
+ printCommands = gFalse;
errQuiet = gFalse;
cidToUnicodeCache = new CIDToUnicodeCache();
@@ -192,18 +203,21 @@ GlobalParams::GlobalParams(char *cfgFileName) {
}
// set up the residentUnicodeMaps table
- map = new UnicodeMap("Latin1", latin1UnicodeMapRanges, latin1UnicodeMapLen);
+ map = new UnicodeMap("Latin1", gFalse,
+ latin1UnicodeMapRanges, latin1UnicodeMapLen);
residentUnicodeMaps->add(map->getEncodingName(), map);
- map = new UnicodeMap("ASCII7", ascii7UnicodeMapRanges, ascii7UnicodeMapLen);
+ map = new UnicodeMap("ASCII7", gFalse,
+ ascii7UnicodeMapRanges, ascii7UnicodeMapLen);
residentUnicodeMaps->add(map->getEncodingName(), map);
- map = new UnicodeMap("Symbol", symbolUnicodeMapRanges, symbolUnicodeMapLen);
+ map = new UnicodeMap("Symbol", gFalse,
+ symbolUnicodeMapRanges, symbolUnicodeMapLen);
residentUnicodeMaps->add(map->getEncodingName(), map);
- map = new UnicodeMap("ZapfDingbats", zapfDingbatsUnicodeMapRanges,
+ map = new UnicodeMap("ZapfDingbats", gFalse, zapfDingbatsUnicodeMapRanges,
zapfDingbatsUnicodeMapLen);
residentUnicodeMaps->add(map->getEncodingName(), map);
- map = new UnicodeMap("UTF-8", &mapUTF8);
+ map = new UnicodeMap("UTF-8", gTrue, &mapUTF8);
residentUnicodeMaps->add(map->getEncodingName(), map);
- map = new UnicodeMap("UCS-2", &mapUCS2);
+ map = new UnicodeMap("UCS-2", gTrue, &mapUCS2);
residentUnicodeMaps->add(map->getEncodingName(), map);
// default displayFonts table
@@ -235,7 +249,7 @@ GlobalParams::GlobalParams(char *cfgFileName) {
i = GetModuleFileName(NULL, buf, sizeof(buf));
if (i <= 0 || i >= sizeof(buf)) {
// error or path too long for buffer - just use the current dir
- buf[i] = '\0';
+ buf[0] = '\0';
}
fileName = grabPath(buf);
appendToPath(fileName, xpdfSysConfigFile);
@@ -249,6 +263,7 @@ GlobalParams::GlobalParams(char *cfgFileName) {
if (f) {
parseFile(fileName, f);
delete fileName;
+ fclose(f);
}
}
@@ -354,6 +369,9 @@ void GlobalParams::parseFile(GString *fileName, FILE *f) {
parseTextEncoding(tokens, fileName, line);
} else if (!cmd->cmp("textEOL")) {
parseTextEOL(tokens, fileName, line);
+ } else if (!cmd->cmp("textKeepTinyChars")) {
+ parseYesNo("textKeepTinyChars", &textKeepTinyChars,
+ tokens, fileName, line);
} else if (!cmd->cmp("fontDir")) {
parseFontDir(tokens, fileName, line);
} else if (!cmd->cmp("initialZoom")) {
@@ -365,10 +383,14 @@ void GlobalParams::parseFile(GString *fileName, FILE *f) {
parseFontRastControl("freetypeControl", &freetypeControl,
tokens, fileName, line);
} else if (!cmd->cmp("urlCommand")) {
- parseURLCommand(tokens, fileName, line);
+ parseCommand("urlCommand", &urlCommand, tokens, fileName, line);
+ } else if (!cmd->cmp("movieCommand")) {
+ parseCommand("movieCommand", &movieCommand, tokens, fileName, line);
} else if (!cmd->cmp("mapNumericCharNames")) {
parseYesNo("mapNumericCharNames", &mapNumericCharNames,
tokens, fileName, line);
+ } else if (!cmd->cmp("printCommands")) {
+ parseYesNo("printCommands", &printCommands, tokens, fileName, line);
} else if (!cmd->cmp("errQuiet")) {
parseYesNo("errQuiet", &errQuiet, tokens, fileName, line);
} else if (!cmd->cmp("fontpath") || !cmd->cmp("fontmap")) {
@@ -697,17 +719,17 @@ void GlobalParams::parseFontRastControl(char *cmdName, FontRastControl *val,
}
}
-void GlobalParams::parseURLCommand(GList *tokens, GString *fileName,
- int line) {
+void GlobalParams::parseCommand(char *cmdName, GString **val,
+ GList *tokens, GString *fileName, int line) {
if (tokens->getLength() != 2) {
- error(-1, "Bad 'urlCommand' config file command (%s:%d)",
- fileName->getCString(), line);
+ error(-1, "Bad '%s' config file command (%s:%d)",
+ cmdName, fileName->getCString(), line);
return;
}
- if (urlCommand) {
- delete urlCommand;
+ if (*val) {
+ delete *val;
}
- urlCommand = ((GString *)tokens->get(1))->copy();
+ *val = ((GString *)tokens->get(1))->copy();
}
void GlobalParams::parseYesNo(char *cmdName, GBool *flag,
@@ -759,6 +781,9 @@ GlobalParams::~GlobalParams() {
if (urlCommand) {
delete urlCommand;
}
+ if (movieCommand) {
+ delete movieCommand;
+ }
cMapDirs->startIter(&iter);
while (cMapDirs->getNext(&iter, &key, (void **)&list)) {
@@ -948,6 +973,15 @@ UnicodeMap *GlobalParams::getTextEncoding() {
// functions to set parameters
//------------------------------------------------------------------------
+void GlobalParams::addDisplayFont(DisplayFontParam *param) {
+ DisplayFontParam *old;
+
+ if ((old = (DisplayFontParam *)displayFonts->remove(param->name))) {
+ delete old;
+ }
+ displayFonts->add(param->name, param);
+}
+
void GlobalParams::setPSFile(char *file) {
if (psFile) {
delete psFile;
@@ -1032,6 +1066,10 @@ GBool GlobalParams::setTextEOL(char *s) {
return gTrue;
}
+void GlobalParams::setTextKeepTinyChars(GBool keep) {
+ textKeepTinyChars = keep;
+}
+
void GlobalParams::setInitialZoom(char *s) {
delete initialZoom;
initialZoom = new GString(s);
@@ -1060,6 +1098,14 @@ GBool GlobalParams::setFontRastControl(FontRastControl *val, char *s) {
return gTrue;
}
+void GlobalParams::setMapNumericCharNames(GBool map) {
+ mapNumericCharNames = map;
+}
+
+void GlobalParams::setPrintCommands(GBool printCommandsA) {
+ printCommands = printCommandsA;
+}
+
void GlobalParams::setErrQuiet(GBool errQuietA) {
errQuiet = errQuietA;
}