git.asbjorn.biz
/
swftools.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
18507d7
)
choose external fonts based on the shortest filename
author
kramm
<kramm>
Wed, 12 Mar 2008 19:09:51 +0000
(19:09 +0000)
committer
kramm
<kramm>
Wed, 12 Mar 2008 19:09:51 +0000
(19:09 +0000)
lib/pdf/GFXOutputDev.cc
patch
|
blob
|
history
diff --git
a/lib/pdf/GFXOutputDev.cc
b/lib/pdf/GFXOutputDev.cc
index
4d56590
..
416bf0b
100644
(file)
--- a/
lib/pdf/GFXOutputDev.cc
+++ b/
lib/pdf/GFXOutputDev.cc
@@
-80,6
+80,7
@@
typedef struct _fontfile
{
const char*filename;
typedef struct _fontfile
{
const char*filename;
+ int len; // basename length
int used;
} fontfile_t;
int used;
} fontfile_t;
@@
-327,12
+328,21
@@
DisplayFontParam *GFXGlobalParams::getDisplayFont(GString *fontName)
return dfp;
}
}
return dfp;
}
}
+
+ int bestlen = 0x7fffffff;
+ const char*bestfilename = 0;
for(t=0;t<fontnum;t++) {
if(strstr(fonts[t].filename, name)) {
for(t=0;t<fontnum;t++) {
if(strstr(fonts[t].filename, name)) {
- DisplayFontParam *dfp = new DisplayFontParam(new GString(fontName), displayFontT1);
- dfp->t1.fileName = new GString(fonts[t].filename);
- return dfp;
- }
+ if(fonts[t].len < bestlen) {
+ bestlen = fonts[t].len;
+ bestfilename = fonts[t].filename;
+ }
+ }
+ }
+ if(bestfilename) {
+ DisplayFontParam *dfp = new DisplayFontParam(new GString(fontName), displayFontT1);
+ dfp->t1.fileName = new GString(bestfilename);
+ return dfp;
}
return GlobalParams::getDisplayFont(fontName);
}
}
return GlobalParams::getDisplayFont(fontName);
}
@@
-2007,6
+2017,15
@@
void addGlobalFont(const char*filename)
fontfile_t f;
memset(&f, 0, sizeof(fontfile_t));
f.filename = filename;
fontfile_t f;
memset(&f, 0, sizeof(fontfile_t));
f.filename = filename;
+ int len = strlen(filename);
+ char*r1 = strrchr(filename, '/');
+ char*r2 = strrchr(filename, '\\');
+ if(r2>r1)
+ r1 = r2;
+ if(r1) {
+ len = strlen(r1+1);
+ }
+ f.len = len;
if(fontnum < sizeof(fonts)/sizeof(fonts[0])) {
msg("<notice> Adding font \"%s\".", filename);
fonts[fontnum++] = f;
if(fontnum < sizeof(fonts)/sizeof(fonts[0])) {
msg("<notice> Adding font \"%s\".", filename);
fonts[fontnum++] = f;