X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=pdf2swf%2FSWFOutputDev.cc;h=4d05d03d6a622ba58d73c6a30650005f75afdadc;hb=c9d171c9692c7729e4eef7cfb8e6d93970c599c7;hp=59ba4c5d9d10d22bcbfd757ef82ca7da89ddd8a7;hpb=4921239e27afd7a74bbcd183648761608be223c1;p=swftools.git diff --git a/pdf2swf/SWFOutputDev.cc b/pdf2swf/SWFOutputDev.cc index 59ba4c5..4d05d03 100644 --- a/pdf2swf/SWFOutputDev.cc +++ b/pdf2swf/SWFOutputDev.cc @@ -1916,6 +1916,8 @@ void pdfswf_setparameter(char*name, char*value) zoom = atoi(value); } else if(!strcmp(name, "fontdir")) { pdfswf_addfontdir(value); + } else if(!strcmp(name, "languagedir")) { + pdfswf_addlanguagedir(value); } else { swfoutput_setparameter(name, value); } @@ -1932,9 +1934,42 @@ void pdfswf_addfont(char*filename) } } +static char* dirseparator() +{ +#ifdef WIN32 + return "\\"; +#else + return "/"; +#endif +} + +void pdfswf_addlanguagedir(char*dir) +{ + if(!globalParams) + globalParams = new GlobalParams(""); + + msg(" Adding %s to language pack directories", dir); + + int l; + FILE*fi = 0; + char* config_file = (char*)malloc(strlen(dir) + 1 + sizeof("add-to-xpdfrc")); + strcpy(config_file, dir); + strcat(config_file, dirseparator()); + strcat(config_file, "add-to-xpdfrc"); + + fi = fopen(config_file, "rb"); + if(!fi) { + msg(" Could not open %s", config_file); + return; + } + globalParams->parseFile(new GString(config_file), fi); + fclose(fi); +} + void pdfswf_addfontdir(char*dirname) { #ifdef HAVE_DIRENT_H + msg(" Adding %s to font directories", dirname); DIR*dir = opendir(dirname); if(!dir) { msg(" Couldn't open directory %s\n", dirname); @@ -1962,19 +1997,15 @@ void pdfswf_addfontdir(char*dirname) { char*fontname = (char*)malloc(strlen(dirname)+strlen(name)+2); strcpy(fontname, dirname); -#ifdef WIN32 - strcat(fontname, "\\"); -#else - strcat(fontname, "/"); -#endif + strcat(fontname, dirseparator()); strcat(fontname, name); - msg(" Adding %s to fonts", fontname); + msg(" Adding %s to fonts", fontname); pdfswf_addfont(fontname); } } closedir(dir); #else - msg(" No dirent.h- unable to add font dir %s"); + msg(" No dirent.h- unable to add font dir %s", dir); #endif } @@ -2005,7 +2036,8 @@ pdf_doc_t* pdf_init(char*filename, char*userPassword) Object info; // read config file - globalParams = new GlobalParams(""); + if(!globalParams) + globalParams = new GlobalParams(""); // open PDF file if (userPassword && userPassword[0]) { @@ -2082,7 +2114,7 @@ class MemCheck { public: ~MemCheck() { - delete globalParams; + delete globalParams;globalParams=0; Object::memCheck(stderr); gMemReport(stderr); }