diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2011-04-06 15:43:43 +0200 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2011-04-06 15:43:43 +0200 |
commit | d1ca1560865a196d1caa10a27110880b58905db3 (patch) | |
tree | 43ef49c5dbe0c544aae7fc44a9470794c43e825c /scripts/fontdump.c | |
parent | e516feff18c3223a597ba23cbefba01b042c70bd (diff) | |
download | mupdf-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.c | 29 |
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); } |