summaryrefslogtreecommitdiff
path: root/scripts/fontdump.c
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2011-04-06 15:43:43 +0200
committerTor Andersson <tor.andersson@artifex.com>2011-04-06 15:43:43 +0200
commitd1ca1560865a196d1caa10a27110880b58905db3 (patch)
tree43ef49c5dbe0c544aae7fc44a9470794c43e825c /scripts/fontdump.c
parente516feff18c3223a597ba23cbefba01b042c70bd (diff)
downloadmupdf-d1ca1560865a196d1caa10a27110880b58905db3.tar.xz
pdf: Change how CMap and font data files are generated and compiled.
Diffstat (limited to 'scripts/fontdump.c')
-rw-r--r--scripts/fontdump.c29
1 files changed, 18 insertions, 11 deletions
diff --git a/scripts/fontdump.c b/scripts/fontdump.c
index 37572bea..e40bf4ab 100644
--- a/scripts/fontdump.c
+++ b/scripts/fontdump.c
@@ -28,7 +28,8 @@ main(int argc, char **argv)
{
FILE *fo;
FILE *fi;
- char name[256];
+ char fontname[256];
+ char origname[256];
char *basename;
char *p;
int i, len;
@@ -50,7 +51,7 @@ main(int argc, char **argv)
fprintf(fo, "#if defined(__linux__) || defined(__FreeBSD__)\n");
fprintf(fo, "#define HAVE_INCBIN\n");
fprintf(fo, "#endif\n");
- fprintf(fo, "#endif\n\n");
+ fprintf(fo, "#endif\n");
for (i = 2; i < argc; i++)
{
@@ -69,11 +70,16 @@ main(int argc, char **argv)
basename++;
else
basename = argv[i];
- strcpy(name, basename);
- p = name;
+
+ strcpy(origname, basename);
+ p = strrchr(origname, '.');
+ if (p) *p = 0;
+ strcpy(fontname, origname);
+
+ p = fontname;
while (*p)
{
- if ((*p == '/') || (*p == '.') || (*p == '\\') || (*p == '-'))
+ if (*p == '/' || *p == '.' || *p == '\\' || *p == '-')
*p = '_';
p ++;
}
@@ -82,18 +88,19 @@ main(int argc, char **argv)
len = ftell(fi);
fseek(fi, 0, SEEK_SET);
- fprintf(fo, "const unsigned int pdf_font_%s_len = %d;\n", name, len);
+ printf("\t{\"%s\",pdf_font_%s,%d},\n", origname, fontname, len);
- fprintf(fo, "#ifdef HAVE_INCBIN\n");
- fprintf(fo, "asm(\".globl pdf_font_%s_buf\");\n", name);
+ fprintf(fo, "\n#ifdef HAVE_INCBIN\n");
+ fprintf(fo, "extern const unsigned char pdf_font_%s[%d];\n", fontname, len);
+ fprintf(fo, "asm(\".globl pdf_font_%s\");\n", fontname);
fprintf(fo, "asm(\".balign 8\");\n");
- fprintf(fo, "asm(\"pdf_font_%s_buf:\");\n", name);
+ fprintf(fo, "asm(\"pdf_font_%s:\");\n", fontname);
fprintf(fo, "asm(\".incbin \\\"%s\\\"\");\n", argv[i]);
fprintf(fo, "#else\n");
- fprintf(fo, "const unsigned char pdf_font_%s_buf[%d] = {\n", name, len);
+ fprintf(fo, "static const unsigned char pdf_font_%s[%d] = {\n", fontname, len);
hexdump(fo, fi);
fprintf(fo, "};\n");
- fprintf(fo, "#endif\n\n");
+ fprintf(fo, "#endif\n");
fclose(fi);
}