summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile51
-rw-r--r--include/mupdf/fitz/buffer.h2
-rw-r--r--include/mupdf/fitz/font.h12
-rw-r--r--include/mupdf/pdf/font.h2
-rw-r--r--platform/gl/gl-font.c4
-rw-r--r--platform/win32/generate.bat127
-rw-r--r--platform/win32/generated.vcproj16
-rw-r--r--scripts/fontdump.c32
-rw-r--r--source/fitz/buffer.c4
-rw-r--r--source/fitz/font.c14
-rw-r--r--source/fitz/noto.c175
-rw-r--r--source/html/html-font.c4
-rw-r--r--source/pdf/pdf-font.c20
-rw-r--r--source/tools/murun.c6
-rw-r--r--source/tools/pdfcreate.c4
15 files changed, 262 insertions, 211 deletions
diff --git a/Makefile b/Makefile
index 3d312513..d82c3bdb 100644
--- a/Makefile
+++ b/Makefile
@@ -69,6 +69,7 @@ ALL_DIR += $(OUT)/tools
ALL_DIR += $(OUT)/platform/x11
ALL_DIR += $(OUT)/platform/x11/curl
ALL_DIR += $(OUT)/platform/gl
+ALL_DIR += $(OUT)/fonts
FITZ_HDR := include/mupdf/fitz.h $(wildcard include/mupdf/fitz/*.h)
PDF_HDR := include/mupdf/pdf.h $(wildcard include/mupdf/pdf/*.h)
@@ -108,12 +109,38 @@ $(CBZ_OBJ) : $(FITZ_HDR)
$(HTML_OBJ) : $(FITZ_HDR) $(HTML_HDR) $(HTML_SRC_HDR)
$(GPRF_OBJ) : $(FITZ_HDR) $(GPRF_HDR) $(GPRF_SRC_HDR)
+# --- Generated embedded font files ---
+
+FONT_BIN_DROID := $(wildcard resources/fonts/droid/*.ttc)
+FONT_BIN_NOTO := $(wildcard resources/fonts/noto/*.ttf)
+FONT_BIN_URW := $(wildcard resources/fonts/urw/*.cff)
+
+FONT_GEN_DROID := $(subst resources/fonts/droid/, $(GEN)/, $(addsuffix .c, $(basename $(FONT_BIN_DROID))))
+FONT_GEN_NOTO := $(subst resources/fonts/noto/, $(GEN)/, $(addsuffix .c, $(basename $(FONT_BIN_NOTO))))
+FONT_GEN_URW := $(subst resources/fonts/urw/, $(GEN)/, $(addsuffix .c, $(basename $(FONT_BIN_URW))))
+
+FONT_BIN := $(FONT_BIN_DROID) $(FONT_BIN_NOTO) $(FONT_BIN_URW)
+FONT_GEN := $(FONT_GEN_DROID) $(FONT_GEN_NOTO) $(FONT_GEN_URW)
+FONT_OBJ := $(subst $(GEN)/, $(OUT)/fonts/, $(addsuffix .o, $(basename $(FONT_GEN))))
+
+$(GEN)/%.c : resources/fonts/droid/%.ttc $(FONTDUMP)
+ $(QUIET_GEN) $(FONTDUMP) $@ $<
+$(GEN)/%.c : resources/fonts/noto/%.ttf $(FONTDUMP)
+ $(QUIET_GEN) $(FONTDUMP) $@ $<
+$(GEN)/%.c : resources/fonts/urw/%.cff $(FONTDUMP)
+ $(QUIET_GEN) $(FONTDUMP) $@ $<
+
+$(FONT_OBJ) : $(FONT_GEN)
+$(FONT_GEN_DROID) : $(FONT_BIN_DROID)
+$(FONT_GEN_NOTO) : $(FONT_BIN_NOTO)
+$(FONT_GEN_URW) : $(FONT_BIN_URW)
+
# --- Library ---
MUPDF_LIB = $(OUT)/libmupdf.a
THIRD_LIB = $(OUT)/libmupdfthird.a
-MUPDF_OBJ := $(FITZ_OBJ) $(PDF_OBJ) $(XPS_OBJ) $(CBZ_OBJ) $(HTML_OBJ) $(GPRF_OBJ)
+MUPDF_OBJ := $(FITZ_OBJ) $(FONT_OBJ) $(PDF_OBJ) $(XPS_OBJ) $(CBZ_OBJ) $(HTML_OBJ) $(GPRF_OBJ)
THIRD_OBJ := $(FREETYPE_OBJ) $(HARFBUZZ_OBJ) $(JBIG2DEC_OBJ) $(JPEG_OBJ) $(MUJS_OBJ) $(OPENJPEG_OBJ) $(ZLIB_OBJ)
$(MUPDF_LIB) : $(MUPDF_OBJ)
@@ -143,6 +170,9 @@ $(OUT)/%.o : source/%.cpp | $(ALL_DIR)
$(OUT)/%.o : scripts/%.c | $(OUT)
$(CC_CMD)
+$(OUT)/fonts/%.o : $(GEN)/%.c | $(ALL_DIR)
+ $(CC_CMD) -O0
+
$(OUT)/platform/x11/%.o : platform/x11/%.c | $(ALL_DIR)
$(CC_CMD) $(X11_CFLAGS)
@@ -157,7 +187,7 @@ $(OUT)/platform/gl/%.o : platform/gl/%.c | $(ALL_DIR)
.PRECIOUS : $(OUT)/%.o # Keep intermediates from chained rules
-# --- Generated CMAP, FONT and JAVASCRIPT files ---
+# --- Generated CMap and JavaScript files ---
CMAPDUMP := $(OUT)/cmapdump
FONTDUMP := $(OUT)/fontdump
@@ -170,11 +200,6 @@ CMAP_GB_SRC := $(wildcard resources/cmaps/gb/*)
CMAP_JAPAN_SRC := $(wildcard resources/cmaps/japan/*)
CMAP_KOREA_SRC := $(wildcard resources/cmaps/korea/*)
-FONT_BASE14_SRC := $(wildcard resources/fonts/urw/*.cff)
-FONT_NOTO_SRC := $(wildcard resources/fonts/noto/*.ttf)
-FONT_CJK_SRC := resources/fonts/droid/DroidSansFallback.ttc
-FONT_CJK_FULL_SRC := resources/fonts/droid/DroidSansFallbackFull.ttc
-
$(GEN)/gen_cmap_cns.h : $(CMAP_CNS_SRC)
$(QUIET_GEN) $(CMAPDUMP) $@ $(CMAP_CNS_SRC)
$(GEN)/gen_cmap_gb.h : $(CMAP_GB_SRC)
@@ -186,17 +211,6 @@ $(GEN)/gen_cmap_korea.h : $(CMAP_KOREA_SRC)
CMAP_GEN := $(addprefix $(GEN)/, gen_cmap_cns.h gen_cmap_gb.h gen_cmap_japan.h gen_cmap_korea.h)
-$(GEN)/gen_font_base14.h : $(FONT_BASE14_SRC)
- $(QUIET_GEN) $(FONTDUMP) $@ $(FONT_BASE14_SRC)
-$(GEN)/gen_font_noto.h : $(FONT_NOTO_SRC)
- $(QUIET_GEN) $(FONTDUMP) $@ $(FONT_NOTO_SRC)
-$(GEN)/gen_font_cjk.h : $(FONT_CJK_SRC)
- $(QUIET_GEN) $(FONTDUMP) $@ $(FONT_CJK_SRC)
-$(GEN)/gen_font_cjk_full.h : $(FONT_CJK_FULL_SRC)
- $(QUIET_GEN) $(FONTDUMP) $@ $(FONT_CJK_FULL_SRC)
-
-FONT_GEN := $(GEN)/gen_font_base14.h $(GEN)/gen_font_noto.h $(GEN)/gen_font_cjk.h $(GEN)/gen_font_cjk_full.h
-
include/mupdf/pdf.h : include/mupdf/pdf/name-table.h
NAME_GEN := include/mupdf/pdf/name-table.h source/pdf/pdf-name-table.h
$(NAME_GEN) : resources/pdf/names.txt
@@ -222,7 +236,6 @@ endif
generate: $(CMAP_GEN) $(FONT_GEN) $(JAVASCRIPT_GEN) $(ADOBECA_GEN) $(NAME_GEN)
-$(OUT)/fitz/noto.o : $(FONT_GEN)
$(OUT)/pdf/pdf-cmap-table.o : $(CMAP_GEN)
$(OUT)/pdf/pdf-pkcs7.o : $(ADOBECA_GEN)
$(OUT)/pdf/js/pdf-js.o : $(JAVASCRIPT_GEN)
diff --git a/include/mupdf/fitz/buffer.h b/include/mupdf/fitz/buffer.h
index 6f0e812f..28adc46b 100644
--- a/include/mupdf/fitz/buffer.h
+++ b/include/mupdf/fitz/buffer.h
@@ -75,7 +75,7 @@ fz_buffer *fz_new_buffer_from_data(fz_context *ctx, unsigned char *data, int siz
/*
fz_new_buffer_from_shared_data: Like fz_new_buffer, but does not take ownership.
*/
-fz_buffer *fz_new_buffer_from_shared_data(fz_context *ctx, unsigned char *data, int size);
+fz_buffer *fz_new_buffer_from_shared_data(fz_context *ctx, const char *data, int size);
/*
fz_resize_buffer: Ensure that a buffer has a given capacity,
diff --git a/include/mupdf/fitz/font.h b/include/mupdf/fitz/font.h
index 8b751d3d..52d22bf2 100644
--- a/include/mupdf/fitz/font.h
+++ b/include/mupdf/fitz/font.h
@@ -90,11 +90,11 @@ void fz_install_load_system_font_funcs(fz_context *ctx, fz_load_system_font_func
fz_font *fz_load_system_font(fz_context *ctx, const char *name, int bold, int italic, int needs_exact_metrics);
fz_font *fz_load_system_cjk_font(fz_context *ctx, const char *name, int ros, int serif);
-unsigned char *fz_lookup_base14_font(fz_context *ctx, const char *name, unsigned int *len);
-unsigned char *fz_lookup_cjk_font(fz_context *ctx, int registry, int serif, int wmode, unsigned int *len, int *index);
-unsigned char *fz_lookup_noto_font(fz_context *ctx, int script, int serif, unsigned int *len);
-unsigned char *fz_lookup_noto_symbol_font(fz_context *ctx, unsigned int *len);
-unsigned char *fz_lookup_noto_emoji_font(fz_context *ctx, unsigned int *len);
+const char *fz_lookup_base14_font(fz_context *ctx, const char *name, int *len);
+const char *fz_lookup_cjk_font(fz_context *ctx, int registry, int serif, int wmode, int *len, int *index);
+const char *fz_lookup_noto_font(fz_context *ctx, int script, int serif, int *len);
+const char *fz_lookup_noto_symbol_font(fz_context *ctx, int *len);
+const char *fz_lookup_noto_emoji_font(fz_context *ctx, int *len);
fz_font *fz_load_fallback_font(fz_context *ctx, int script, int serif, int bold, int italic);
fz_font *fz_load_fallback_symbol_font(fz_context *ctx);
@@ -102,7 +102,7 @@ fz_font *fz_load_fallback_emoji_font(fz_context *ctx);
fz_font *fz_new_type3_font(fz_context *ctx, const char *name, const fz_matrix *matrix);
-fz_font *fz_new_font_from_memory(fz_context *ctx, const char *name, unsigned char *data, int len, int index, int use_glyph_bbox);
+fz_font *fz_new_font_from_memory(fz_context *ctx, const char *name, const char *data, int len, int index, int use_glyph_bbox);
fz_font *fz_new_font_from_buffer(fz_context *ctx, const char *name, fz_buffer *buffer, int index, int use_glyph_bbox);
fz_font *fz_new_font_from_file(fz_context *ctx, const char *name, const char *path, int index, int use_glyph_bbox);
diff --git a/include/mupdf/pdf/font.h b/include/mupdf/pdf/font.h
index 343d6237..52e5e5ca 100644
--- a/include/mupdf/pdf/font.h
+++ b/include/mupdf/pdf/font.h
@@ -103,7 +103,7 @@ void pdf_load_to_unicode(fz_context *ctx, pdf_document *doc, pdf_font_desc *font
int pdf_font_cid_to_gid(fz_context *ctx, pdf_font_desc *fontdesc, int cid);
-unsigned char *pdf_lookup_substitute_font(fz_context *ctx, int mono, int serif, int bold, int italic, unsigned int *len);
+const char *pdf_lookup_substitute_font(fz_context *ctx, int mono, int serif, int bold, int italic, int *len);
pdf_font_desc *pdf_load_type3_font(fz_context *ctx, pdf_document *doc, pdf_obj *rdb, pdf_obj *obj);
void pdf_load_type3_glyphs(fz_context *ctx, pdf_document *doc, pdf_font_desc *fontdesc, int nestedDepth);
diff --git a/platform/gl/gl-font.c b/platform/gl/gl-font.c
index 9756489e..11430208 100644
--- a/platform/gl/gl-font.c
+++ b/platform/gl/gl-font.c
@@ -73,8 +73,8 @@ static void clear_font_cache(void)
void ui_init_fonts(fz_context *ctx, float pixelsize)
{
- unsigned char *data;
- unsigned int size;
+ const char *data;
+ int size;
glGenTextures(1, &g_cache_tex);
glBindTexture(GL_TEXTURE_2D, g_cache_tex);
diff --git a/platform/win32/generate.bat b/platform/win32/generate.bat
index e1461269..f3c83d49 100644
--- a/platform/win32/generate.bat
+++ b/platform/win32/generate.bat
@@ -21,11 +21,6 @@ if not exist cmapdump.exe goto usage
if not exist cquote.exe goto usage
if not exist bin2hex.exe goto usage
-if not exist generated/gen_font_base14.h fontdump.exe generated/gen_font_base14.h resources/fonts/urw/*.cff
-if not exist generated/gen_font_noto.h fontdump.exe generated/gen_font_noto.h resources/fonts/noto/*.ttf
-if not exist generated/gen_font_cjk.h fontdump.exe generated/gen_font_cjk.h resources/fonts/droid/DroidSansFallback.ttc
-if not exist generated/gen_font_cjk_full.h fontdump.exe generated/gen_font_cjk_full.h resources/fonts/droid/DroidSansFallbackFull.ttc
-
if not exist generated/gen_cmap_cns.h cmapdump.exe generated/gen_cmap_cns.h resources\cmaps\cns\*
if not exist generated/gen_cmap_gb.h cmapdump.exe generated/gen_cmap_gb.h resources\cmaps\gb\*
if not exist generated/gen_cmap_japan.h cmapdump.exe generated/gen_cmap_japan.h resources\cmaps\japan\*
@@ -34,6 +29,128 @@ if not exist generated/gen_cmap_korea.h cmapdump.exe generated/gen_cmap_korea.h
if not exist generated/gen_adobe_ca.h bin2hex.exe generated/gen_adobe_ca.h resources/certs/AdobeCA.p7c
if not exist generated/gen_js_util.h cquote.exe generated/gen_js_util.h source/pdf/js/pdf-util.js
+if not exist generated/DroidSansFallback.ttc fontdump.exe generated/DroidSansFallback.ttc resources/fonts/droid/DroidSansFallback.ttc
+if not exist generated/DroidSansFallbackFull.ttc fontdump.exe generated/DroidSansFallbackFull.ttc resources/fonts/droid/DroidSansFallbackFull.ttc
+
+if not exist generated/Dingbats.cff fontdump.exe generated/Dingbats.cff resources/fonts/urw/Dingbats.cff
+if not exist generated/NimbusMono-Bold.cff fontdump.exe generated/NimbusMono-Bold.cff resources/fonts/urw/NimbusMono-Bold.cff
+if not exist generated/NimbusMono-BoldOblique.cff fontdump.exe generated/NimbusMono-BoldOblique.cff resources/fonts/urw/NimbusMono-BoldOblique.cff
+if not exist generated/NimbusMono-Oblique.cff fontdump.exe generated/NimbusMono-Oblique.cff resources/fonts/urw/NimbusMono-Oblique.cff
+if not exist generated/NimbusMono-Regular.cff fontdump.exe generated/NimbusMono-Regular.cff resources/fonts/urw/NimbusMono-Regular.cff
+if not exist generated/NimbusRomNo9L-Med.cff fontdump.exe generated/NimbusRomNo9L-Med.cff resources/fonts/urw/NimbusRomNo9L-Med.cff
+if not exist generated/NimbusRomNo9L-MedIta.cff fontdump.exe generated/NimbusRomNo9L-MedIta.cff resources/fonts/urw/NimbusRomNo9L-MedIta.cff
+if not exist generated/NimbusRomNo9L-Reg.cff fontdump.exe generated/NimbusRomNo9L-Reg.cff resources/fonts/urw/NimbusRomNo9L-Reg.cff
+if not exist generated/NimbusRomNo9L-RegIta.cff fontdump.exe generated/NimbusRomNo9L-RegIta.cff resources/fonts/urw/NimbusRomNo9L-RegIta.cff
+if not exist generated/NimbusSanL-Bol.cff fontdump.exe generated/NimbusSanL-Bol.cff resources/fonts/urw/NimbusSanL-Bol.cff
+if not exist generated/NimbusSanL-BolIta.cff fontdump.exe generated/NimbusSanL-BolIta.cff resources/fonts/urw/NimbusSanL-BolIta.cff
+if not exist generated/NimbusSanL-Reg.cff fontdump.exe generated/NimbusSanL-Reg.cff resources/fonts/urw/NimbusSanL-Reg.cff
+if not exist generated/NimbusSanL-RegIta.cff fontdump.exe generated/NimbusSanL-RegIta.cff resources/fonts/urw/NimbusSanL-RegIta.cff
+if not exist generated/StandardSymL.cff fontdump.exe resources/fonts/urw/StandardSymL.cff resources/fonts/urw/StandardSymL.cff
+
+if not exist generated/NotoEmoji-Regular.ttf fontdump.exe generated/NotoEmoji-Regular.ttf resources/fonts/noto/NotoEmoji-Regular.ttf
+if not exist generated/NotoKufiArabic-Regular.ttf fontdump.exe generated/NotoKufiArabic-Regular.ttf resources/fonts/noto/NotoKufiArabic-Regular.ttf
+if not exist generated/NotoNaskhArabic-Regular.ttf fontdump.exe generated/NotoNaskhArabic-Regular.ttf resources/fonts/noto/NotoNaskhArabic-Regular.ttf
+if not exist generated/NotoNastaliqUrdu-Regular.ttf fontdump.exe generated/NotoNastaliqUrdu-Regular.ttf resources/fonts/noto/NotoNastaliqUrdu-Regular.ttf
+if not exist generated/NotoSans-Regular.ttf fontdump.exe generated/NotoSans-Regular.ttf resources/fonts/noto/NotoSans-Regular.ttf
+if not exist generated/NotoSansArmenian-Regular.ttf fontdump.exe generated/NotoSansArmenian-Regular.ttf resources/fonts/noto/NotoSansArmenian-Regular.ttf
+if not exist generated/NotoSansAvestan-Regular.ttf fontdump.exe generated/NotoSansAvestan-Regular.ttf resources/fonts/noto/NotoSansAvestan-Regular.ttf
+if not exist generated/NotoSansBalinese-Regular.ttf fontdump.exe generated/NotoSansBalinese-Regular.ttf resources/fonts/noto/NotoSansBalinese-Regular.ttf
+if not exist generated/NotoSansBamum-Regular.ttf fontdump.exe generated/NotoSansBamum-Regular.ttf resources/fonts/noto/NotoSansBamum-Regular.ttf
+if not exist generated/NotoSansBatak-Regular.ttf fontdump.exe generated/NotoSansBatak-Regular.ttf resources/fonts/noto/NotoSansBatak-Regular.ttf
+if not exist generated/NotoSansBengali-Regular.ttf fontdump.exe generated/NotoSansBengali-Regular.ttf resources/fonts/noto/NotoSansBengali-Regular.ttf
+if not exist generated/NotoSansBrahmi-Regular.ttf fontdump.exe generated/NotoSansBrahmi-Regular.ttf resources/fonts/noto/NotoSansBrahmi-Regular.ttf
+if not exist generated/NotoSansBuginese-Regular.ttf fontdump.exe generated/NotoSansBuginese-Regular.ttf resources/fonts/noto/NotoSansBuginese-Regular.ttf
+if not exist generated/NotoSansBuhid-Regular.ttf fontdump.exe generated/NotoSansBuhid-Regular.ttf resources/fonts/noto/NotoSansBuhid-Regular.ttf
+if not exist generated/NotoSansCanadianAboriginal-Regular.ttf fontdump.exe generated/NotoSansCanadianAboriginal-Regular.ttf resources/fonts/noto/NotoSansCanadianAboriginal-Regular.ttf
+if not exist generated/NotoSansCarian-Regular.ttf fontdump.exe generated/NotoSansCarian-Regular.ttf resources/fonts/noto/NotoSansCarian-Regular.ttf
+if not exist generated/NotoSansCham-Regular.ttf fontdump.exe generated/NotoSansCham-Regular.ttf resources/fonts/noto/NotoSansCham-Regular.ttf
+if not exist generated/NotoSansCherokee-Regular.ttf fontdump.exe generated/NotoSansCherokee-Regular.ttf resources/fonts/noto/NotoSansCherokee-Regular.ttf
+if not exist generated/NotoSansCoptic-Regular.ttf fontdump.exe generated/NotoSansCoptic-Regular.ttf resources/fonts/noto/NotoSansCoptic-Regular.ttf
+if not exist generated/NotoSansCuneiform-Regular.ttf fontdump.exe generated/NotoSansCuneiform-Regular.ttf resources/fonts/noto/NotoSansCuneiform-Regular.ttf
+if not exist generated/NotoSansCypriot-Regular.ttf fontdump.exe generated/NotoSansCypriot-Regular.ttf resources/fonts/noto/NotoSansCypriot-Regular.ttf
+if not exist generated/NotoSansDeseret-Regular.ttf fontdump.exe generated/NotoSansDeseret-Regular.ttf resources/fonts/noto/NotoSansDeseret-Regular.ttf
+if not exist generated/NotoSansDevanagari-Regular.ttf fontdump.exe generated/NotoSansDevanagari-Regular.ttf resources/fonts/noto/NotoSansDevanagari-Regular.ttf
+if not exist generated/NotoSansEgyptianHieroglyphs-Regular.ttf fontdump.exe generated/NotoSansEgyptianHieroglyphs-Regular.ttf resources/fonts/noto/NotoSansEgyptianHieroglyphs-Regular.ttf
+if not exist generated/NotoSansEthiopic-Regular.ttf fontdump.exe generated/NotoSansEthiopic-Regular.ttf resources/fonts/noto/NotoSansEthiopic-Regular.ttf
+if not exist generated/NotoSansGeorgian-Regular.ttf fontdump.exe generated/NotoSansGeorgian-Regular.ttf resources/fonts/noto/NotoSansGeorgian-Regular.ttf
+if not exist generated/NotoSansGlagolitic-Regular.ttf fontdump.exe generated/NotoSansGlagolitic-Regular.ttf resources/fonts/noto/NotoSansGlagolitic-Regular.ttf
+if not exist generated/NotoSansGothic-Regular.ttf fontdump.exe generated/NotoSansGothic-Regular.ttf resources/fonts/noto/NotoSansGothic-Regular.ttf
+if not exist generated/NotoSansGujarati-Regular.ttf fontdump.exe generated/NotoSansGujarati-Regular.ttf resources/fonts/noto/NotoSansGujarati-Regular.ttf
+if not exist generated/NotoSansGurmukhi-Regular.ttf fontdump.exe generated/NotoSansGurmukhi-Regular.ttf resources/fonts/noto/NotoSansGurmukhi-Regular.ttf
+if not exist generated/NotoSansHanunoo-Regular.ttf fontdump.exe generated/NotoSansHanunoo-Regular.ttf resources/fonts/noto/NotoSansHanunoo-Regular.ttf
+if not exist generated/NotoSansHebrew-Regular.ttf fontdump.exe generated/NotoSansHebrew-Regular.ttf resources/fonts/noto/NotoSansHebrew-Regular.ttf
+if not exist generated/NotoSansImperialAramaic-Regular.ttf fontdump.exe generated/NotoSansImperialAramaic-Regular.ttf resources/fonts/noto/NotoSansImperialAramaic-Regular.ttf
+if not exist generated/NotoSansInscriptionalPahlavi-Regular.ttf fontdump.exe generated/NotoSansInscriptionalPahlavi-Regular.ttf resources/fonts/noto/NotoSansInscriptionalPahlavi-Regular.ttf
+if not exist generated/NotoSansInscriptionalParthian-Regular.ttf fontdump.exe generated/NotoSansInscriptionalParthian-Regular.ttf resources/fonts/noto/NotoSansInscriptionalParthian-Regular.ttf
+if not exist generated/NotoSansJavanese-Regular.ttf fontdump.exe generated/NotoSansJavanese-Regular.ttf resources/fonts/noto/NotoSansJavanese-Regular.ttf
+if not exist generated/NotoSansKaithi-Regular.ttf fontdump.exe generated/NotoSansKaithi-Regular.ttf resources/fonts/noto/NotoSansKaithi-Regular.ttf
+if not exist generated/NotoSansKannada-Regular.ttf fontdump.exe generated/NotoSansKannada-Regular.ttf resources/fonts/noto/NotoSansKannada-Regular.ttf
+if not exist generated/NotoSansKayahLi-Regular.ttf fontdump.exe generated/NotoSansKayahLi-Regular.ttf resources/fonts/noto/NotoSansKayahLi-Regular.ttf
+if not exist generated/NotoSansKharoshthi-Regular.ttf fontdump.exe generated/NotoSansKharoshthi-Regular.ttf resources/fonts/noto/NotoSansKharoshthi-Regular.ttf
+if not exist generated/NotoSansKhmer-Regular.ttf fontdump.exe generated/NotoSansKhmer-Regular.ttf resources/fonts/noto/NotoSansKhmer-Regular.ttf
+if not exist generated/NotoSansLao-Regular.ttf fontdump.exe generated/NotoSansLao-Regular.ttf resources/fonts/noto/NotoSansLao-Regular.ttf
+if not exist generated/NotoSansLepcha-Regular.ttf fontdump.exe generated/NotoSansLepcha-Regular.ttf resources/fonts/noto/NotoSansLepcha-Regular.ttf
+if not exist generated/NotoSansLimbu-Regular.ttf fontdump.exe generated/NotoSansLimbu-Regular.ttf resources/fonts/noto/NotoSansLimbu-Regular.ttf
+if not exist generated/NotoSansLinearB-Regular.ttf fontdump.exe generated/NotoSansLinearB-Regular.ttf resources/fonts/noto/NotoSansLinearB-Regular.ttf
+if not exist generated/NotoSansLisu-Regular.ttf fontdump.exe generated/NotoSansLisu-Regular.ttf resources/fonts/noto/NotoSansLisu-Regular.ttf
+if not exist generated/NotoSansLycian-Regular.ttf fontdump.exe generated/NotoSansLycian-Regular.ttf resources/fonts/noto/NotoSansLycian-Regular.ttf
+if not exist generated/NotoSansLydian-Regular.ttf fontdump.exe generated/NotoSansLydian-Regular.ttf resources/fonts/noto/NotoSansLydian-Regular.ttf
+if not exist generated/NotoSansMalayalam-Regular.ttf fontdump.exe generated/NotoSansMalayalam-Regular.ttf resources/fonts/noto/NotoSansMalayalam-Regular.ttf
+if not exist generated/NotoSansMandaic-Regular.ttf fontdump.exe generated/NotoSansMandaic-Regular.ttf resources/fonts/noto/NotoSansMandaic-Regular.ttf
+if not exist generated/NotoSansMeeteiMayek-Regular.ttf fontdump.exe generated/NotoSansMeeteiMayek-Regular.ttf resources/fonts/noto/NotoSansMeeteiMayek-Regular.ttf
+if not exist generated/NotoSansMongolian-Regular.ttf fontdump.exe generated/NotoSansMongolian-Regular.ttf resources/fonts/noto/NotoSansMongolian-Regular.ttf
+if not exist generated/NotoSansMyanmar-Regular.ttf fontdump.exe generated/NotoSansMyanmar-Regular.ttf resources/fonts/noto/NotoSansMyanmar-Regular.ttf
+if not exist generated/NotoSansNKo-Regular.ttf fontdump.exe generated/NotoSansNKo-Regular.ttf resources/fonts/noto/NotoSansNKo-Regular.ttf
+if not exist generated/NotoSansNewTaiLue-Regular.ttf fontdump.exe generated/NotoSansNewTaiLue-Regular.ttf resources/fonts/noto/NotoSansNewTaiLue-Regular.ttf
+if not exist generated/NotoSansOgham-Regular.ttf fontdump.exe generated/NotoSansOgham-Regular.ttf resources/fonts/noto/NotoSansOgham-Regular.ttf
+if not exist generated/NotoSansOlChiki-Regular.ttf fontdump.exe generated/NotoSansOlChiki-Regular.ttf resources/fonts/noto/NotoSansOlChiki-Regular.ttf
+if not exist generated/NotoSansOldItalic-Regular.ttf fontdump.exe generated/NotoSansOldItalic-Regular.ttf resources/fonts/noto/NotoSansOldItalic-Regular.ttf
+if not exist generated/NotoSansOldPersian-Regular.ttf fontdump.exe generated/NotoSansOldPersian-Regular.ttf resources/fonts/noto/NotoSansOldPersian-Regular.ttf
+if not exist generated/NotoSansOldSouthArabian-Regular.ttf fontdump.exe generated/NotoSansOldSouthArabian-Regular.ttf resources/fonts/noto/NotoSansOldSouthArabian-Regular.ttf
+if not exist generated/NotoSansOldTurkic-Regular.ttf fontdump.exe generated/NotoSansOldTurkic-Regular.ttf resources/fonts/noto/NotoSansOldTurkic-Regular.ttf
+if not exist generated/NotoSansOriya-Regular.ttf fontdump.exe generated/NotoSansOriya-Regular.ttf resources/fonts/noto/NotoSansOriya-Regular.ttf
+if not exist generated/NotoSansOsmanya-Regular.ttf fontdump.exe generated/NotoSansOsmanya-Regular.ttf resources/fonts/noto/NotoSansOsmanya-Regular.ttf
+if not exist generated/NotoSansPhagsPa-Regular.ttf fontdump.exe generated/NotoSansPhagsPa-Regular.ttf resources/fonts/noto/NotoSansPhagsPa-Regular.ttf
+if not exist generated/NotoSansPhoenician-Regular.ttf fontdump.exe generated/NotoSansPhoenician-Regular.ttf resources/fonts/noto/NotoSansPhoenician-Regular.ttf
+if not exist generated/NotoSansRejang-Regular.ttf fontdump.exe generated/NotoSansRejang-Regular.ttf resources/fonts/noto/NotoSansRejang-Regular.ttf
+if not exist generated/NotoSansRunic-Regular.ttf fontdump.exe generated/NotoSansRunic-Regular.ttf resources/fonts/noto/NotoSansRunic-Regular.ttf
+if not exist generated/NotoSansSamaritan-Regular.ttf fontdump.exe generated/NotoSansSamaritan-Regular.ttf resources/fonts/noto/NotoSansSamaritan-Regular.ttf
+if not exist generated/NotoSansSaurashtra-Regular.ttf fontdump.exe generated/NotoSansSaurashtra-Regular.ttf resources/fonts/noto/NotoSansSaurashtra-Regular.ttf
+if not exist generated/NotoSansShavian-Regular.ttf fontdump.exe generated/NotoSansShavian-Regular.ttf resources/fonts/noto/NotoSansShavian-Regular.ttf
+if not exist generated/NotoSansSinhala-Regular.ttf fontdump.exe generated/NotoSansSinhala-Regular.ttf resources/fonts/noto/NotoSansSinhala-Regular.ttf
+if not exist generated/NotoSansSundanese-Regular.ttf fontdump.exe generated/NotoSansSundanese-Regular.ttf resources/fonts/noto/NotoSansSundanese-Regular.ttf
+if not exist generated/NotoSansSylotiNagri-Regular.ttf fontdump.exe generated/NotoSansSylotiNagri-Regular.ttf resources/fonts/noto/NotoSansSylotiNagri-Regular.ttf
+if not exist generated/NotoSansSymbols-Regular.ttf fontdump.exe generated/NotoSansSymbols-Regular.ttf resources/fonts/noto/NotoSansSymbols-Regular.ttf
+if not exist generated/NotoSansSyriacEastern-Regular.ttf fontdump.exe generated/NotoSansSyriacEastern-Regular.ttf resources/fonts/noto/NotoSansSyriacEastern-Regular.ttf
+if not exist generated/NotoSansSyriacEstrangela-Regular.ttf fontdump.exe generated/NotoSansSyriacEstrangela-Regular.ttf resources/fonts/noto/NotoSansSyriacEstrangela-Regular.ttf
+if not exist generated/NotoSansSyriacWestern-Regular.ttf fontdump.exe generated/NotoSansSyriacWestern-Regular.ttf resources/fonts/noto/NotoSansSyriacWestern-Regular.ttf
+if not exist generated/NotoSansTagalog-Regular.ttf fontdump.exe generated/NotoSansTagalog-Regular.ttf resources/fonts/noto/NotoSansTagalog-Regular.ttf
+if not exist generated/NotoSansTagbanwa-Regular.ttf fontdump.exe generated/NotoSansTagbanwa-Regular.ttf resources/fonts/noto/NotoSansTagbanwa-Regular.ttf
+if not exist generated/NotoSansTaiLe-Regular.ttf fontdump.exe generated/NotoSansTaiLe-Regular.ttf resources/fonts/noto/NotoSansTaiLe-Regular.ttf
+if not exist generated/NotoSansTaiTham-Regular.ttf fontdump.exe generated/NotoSansTaiTham-Regular.ttf resources/fonts/noto/NotoSansTaiTham-Regular.ttf
+if not exist generated/NotoSansTaiViet-Regular.ttf fontdump.exe generated/NotoSansTaiViet-Regular.ttf resources/fonts/noto/NotoSansTaiViet-Regular.ttf
+if not exist generated/NotoSansTamil-Regular.ttf fontdump.exe generated/NotoSansTamil-Regular.ttf resources/fonts/noto/NotoSansTamil-Regular.ttf
+if not exist generated/NotoSansTelugu-Regular.ttf fontdump.exe generated/NotoSansTelugu-Regular.ttf resources/fonts/noto/NotoSansTelugu-Regular.ttf
+if not exist generated/NotoSansThaana-Regular.ttf fontdump.exe generated/NotoSansThaana-Regular.ttf resources/fonts/noto/NotoSansThaana-Regular.ttf
+if not exist generated/NotoSansThai-Regular.ttf fontdump.exe generated/NotoSansThai-Regular.ttf resources/fonts/noto/NotoSansThai-Regular.ttf
+if not exist generated/NotoSansTibetan-Regular.ttf fontdump.exe generated/NotoSansTibetan-Regular.ttf resources/fonts/noto/NotoSansTibetan-Regular.ttf
+if not exist generated/NotoSansTifinagh-Regular.ttf fontdump.exe generated/NotoSansTifinagh-Regular.ttf resources/fonts/noto/NotoSansTifinagh-Regular.ttf
+if not exist generated/NotoSansUgaritic-Regular.ttf fontdump.exe generated/NotoSansUgaritic-Regular.ttf resources/fonts/noto/NotoSansUgaritic-Regular.ttf
+if not exist generated/NotoSansVai-Regular.ttf fontdump.exe generated/NotoSansVai-Regular.ttf resources/fonts/noto/NotoSansVai-Regular.ttf
+if not exist generated/NotoSansYi-Regular.ttf fontdump.exe generated/NotoSansYi-Regular.ttf resources/fonts/noto/NotoSansYi-Regular.ttf
+if not exist generated/NotoSerif-Regular.ttf fontdump.exe generated/NotoSerif-Regular.ttf resources/fonts/noto/NotoSerif-Regular.ttf
+if not exist generated/NotoSerifArmenian-Regular.ttf fontdump.exe generated/NotoSerifArmenian-Regular.ttf resources/fonts/noto/NotoSerifArmenian-Regular.ttf
+if not exist generated/NotoSerifBengali-Regular.ttf fontdump.exe generated/NotoSerifBengali-Regular.ttf resources/fonts/noto/NotoSerifBengali-Regular.ttf
+if not exist generated/NotoSerifGeorgian-Regular.ttf fontdump.exe generated/NotoSerifGeorgian-Regular.ttf resources/fonts/noto/NotoSerifGeorgian-Regular.ttf
+if not exist generated/NotoSerifGujarati-Regular.ttf fontdump.exe generated/NotoSerifGujarati-Regular.ttf resources/fonts/noto/NotoSerifGujarati-Regular.ttf
+if not exist generated/NotoSerifKannada-Regular.ttf fontdump.exe generated/NotoSerifKannada-Regular.ttf resources/fonts/noto/NotoSerifKannada-Regular.ttf
+if not exist generated/NotoSerifKhmer-Regular.ttf fontdump.exe generated/NotoSerifKhmer-Regular.ttf resources/fonts/noto/NotoSerifKhmer-Regular.ttf
+if not exist generated/NotoSerifLao-Regular.ttf fontdump.exe generated/NotoSerifLao-Regular.ttf resources/fonts/noto/NotoSerifLao-Regular.ttf
+if not exist generated/NotoSerifMalayalam-Regular.ttf fontdump.exe generated/NotoSerifMalayalam-Regular.ttf resources/fonts/noto/NotoSerifMalayalam-Regular.ttf
+if not exist generated/NotoSerifTamil-Regular.ttf fontdump.exe generated/NotoSerifTamil-Regular.ttf resources/fonts/noto/NotoSerifTamil-Regular.ttf
+if not exist generated/NotoSerifTelugu-Regular.ttf fontdump.exe generated/NotoSerifTelugu-Regular.ttf resources/fonts/noto/NotoSerifTelugu-Regular.ttf
+if not exist generated/NotoSerifThai-Regular.ttf fontdump.exe generated/NotoSerifThai-Regular.ttf resources/fonts/noto/NotoSerifThai-Regular.ttf
+
del cmapdump.obj fontdump.obj cquote.obj bin2hex.obj cmapdump.exe fontdump.exe cquote.exe bin2hex.exe
goto fin
diff --git a/platform/win32/generated.vcproj b/platform/win32/generated.vcproj
index cda72160..e28c4a1d 100644
--- a/platform/win32/generated.vcproj
+++ b/platform/win32/generated.vcproj
@@ -194,22 +194,6 @@
>
</File>
<File
- RelativePath="..\..\generated\gen_font_base14.h"
- >
- </File>
- <File
- RelativePath="..\..\generated\gen_font_cjk.h"
- >
- </File>
- <File
- RelativePath="..\..\generated\gen_font_cjk_full.h"
- >
- </File>
- <File
- RelativePath="..\..\generated\gen_font_noto.h"
- >
- </File>
- <File
RelativePath="..\..\generated\gen_js_util.h"
>
</File>
diff --git a/scripts/fontdump.c b/scripts/fontdump.c
index 568a6e64..fbeea47f 100644
--- a/scripts/fontdump.c
+++ b/scripts/fontdump.c
@@ -30,10 +30,9 @@ main(int argc, char **argv)
FILE *fo;
FILE *fi;
char fontname[256];
- char origname[256];
char *basename;
char *p;
- int i, len;
+ int i, size;
if (argc < 3)
{
@@ -48,7 +47,6 @@ main(int argc, char **argv)
return 1;
}
- fprintf(fo, "#ifdef DEBUG\n");
fprintf(fo, "#ifndef __STRICT_ANSI__\n");
fprintf(fo, "#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__)\n");
fprintf(fo, "#if !defined(__ICC)\n");
@@ -56,7 +54,6 @@ main(int argc, char **argv)
fprintf(fo, "#endif\n");
fprintf(fo, "#endif\n");
fprintf(fo, "#endif\n");
- fprintf(fo, "#endif\n");
for (i = 2; i < argc; i++)
{
@@ -76,34 +73,29 @@ main(int argc, char **argv)
else
basename = argv[i];
- strcpy(origname, basename);
- p = strrchr(origname, '.');
- if (p) *p = 0;
- strcpy(fontname, origname);
-
- p = fontname;
- while (*p)
+ strcpy(fontname, basename);
+ for (p = fontname; *p; ++p)
{
if (*p == '/' || *p == '.' || *p == '\\' || *p == '-')
*p = '_';
- p ++;
}
fseek(fi, 0, SEEK_END);
- len = ftell(fi);
+ size = ftell(fi);
fseek(fi, 0, SEEK_SET);
- if (getenv("verbose"))
- printf("\t{\"%s\",fz_font_%s,%d},\n", origname, fontname, len);
-
fprintf(fo, "\n#ifdef HAVE_INCBIN\n");
- fprintf(fo, "extern const unsigned char fz_font_%s[%d];\n", fontname, len);
- fprintf(fo, "asm(\".globl fz_font_%s\");\n", fontname);
- fprintf(fo, "asm(\".balign 8\");\n");
+ fprintf(fo, "const int fz_font_%s_size = %d;\n", fontname, size);
+ fprintf(fo, "asm(\".section .rodata\");\n");
+ fprintf(fo, "asm(\".global fz_font_%s\");\n", fontname);
+ fprintf(fo, "asm(\".type fz_font_%s, @object\");\n", fontname);
+ fprintf(fo, "asm(\".size fz_font_%s, %d\");\n", fontname, size);
+ fprintf(fo, "asm(\".align 64\");\n");
fprintf(fo, "asm(\"fz_font_%s:\");\n", fontname);
fprintf(fo, "asm(\".incbin \\\"%s\\\"\");\n", argv[i]);
fprintf(fo, "#else\n");
- fprintf(fo, "static const unsigned char fz_font_%s[%d] = {\n", fontname, len);
+ fprintf(fo, "const int fz_font_%s_size = %d;\n", fontname, size);
+ fprintf(fo, "const char fz_font_%s[] = {\n", fontname);
hexdump(fo, fi);
fprintf(fo, "};\n");
fprintf(fo, "#endif\n");
diff --git a/source/fitz/buffer.c b/source/fitz/buffer.c
index d1609ef1..6f0e7057 100644
--- a/source/fitz/buffer.c
+++ b/source/fitz/buffer.c
@@ -41,13 +41,13 @@ fz_new_buffer_from_data(fz_context *ctx, unsigned char *data, int size)
}
fz_buffer *
-fz_new_buffer_from_shared_data(fz_context *ctx, unsigned char *data, int size)
+fz_new_buffer_from_shared_data(fz_context *ctx, const char *data, int size)
{
fz_buffer *b;
b = fz_malloc_struct(ctx, fz_buffer);
b->refs = 1;
- b->data = data;
+ b->data = (unsigned char *)data; /* cast away const */
b->cap = size;
b->len = size;
b->unused_bits = 0;
diff --git a/source/fitz/font.c b/source/fitz/font.c
index 56cfecbf..385803ea 100644
--- a/source/fitz/font.c
+++ b/source/fitz/font.c
@@ -290,8 +290,8 @@ fz_font *fz_load_system_cjk_font(fz_context *ctx, const char *name, int ros, int
fz_font *fz_load_fallback_font(fz_context *ctx, int script, int serif, int bold, int italic)
{
- unsigned char *data;
- unsigned int size;
+ const char *data;
+ int size;
if (script < 0 || script > nelem(ctx->font->fallback))
return NULL;
@@ -324,8 +324,8 @@ fz_font *fz_load_fallback_font(fz_context *ctx, int script, int serif, int bold,
fz_font *fz_load_fallback_symbol_font(fz_context *ctx)
{
- unsigned char *data;
- unsigned int size;
+ const char *data;
+ int size;
if (!ctx->font->symbol)
{
data = fz_lookup_noto_symbol_font(ctx, &size);
@@ -337,8 +337,8 @@ fz_font *fz_load_fallback_symbol_font(fz_context *ctx)
fz_font *fz_load_fallback_emoji_font(fz_context *ctx)
{
- unsigned char *data;
- unsigned int size;
+ const char *data;
+ int size;
if (!ctx->font->emoji)
{
data = fz_lookup_noto_emoji_font(ctx, &size);
@@ -463,7 +463,7 @@ fz_new_font_from_buffer(fz_context *ctx, const char *name, fz_buffer *buffer, in
}
fz_font *
-fz_new_font_from_memory(fz_context *ctx, const char *name, unsigned char *data, int len, int index, int use_glyph_bbox)
+fz_new_font_from_memory(fz_context *ctx, const char *name, const char *data, int len, int index, int use_glyph_bbox)
{
fz_buffer *buffer = fz_new_buffer_from_shared_data(ctx, data, len);
fz_font *font;
diff --git a/source/fitz/noto.c b/source/fitz/noto.c
index f02bc524..681a67da 100644
--- a/source/fitz/noto.c
+++ b/source/fitz/noto.c
@@ -22,8 +22,6 @@
#define TOFU_SYMBOL
#endif
-#include "gen_font_base14.h"
-
#ifdef NOCJK
#define TOFU_CJK
#endif
@@ -34,120 +32,70 @@
#define TOFU_SYMBOL
#endif
-#ifndef TOFU_CJK
-#ifndef TOFU_CJK_EXT
-#include "gen_font_cjk_full.h"
-#else
-#include "gen_font_cjk.h"
-#endif
-#endif
+#define DEC_FONT(NAME) \
+ extern const int fz_font_ ## NAME ## _size; \
+ extern const char fz_font_ ## NAME []
-#ifndef TOFU
-#include "gen_font_noto.h"
-#endif
+#define RET_FONT(NAME) \
+ return *size = fz_font_ ## NAME ## _size, fz_font_ ## NAME
+
+#define BASE14(NAME, FONT) \
+ DEC_FONT(FONT); if (!strcmp(NAME, name)) RET_FONT(FONT)
-unsigned char *
-fz_lookup_base14_font(fz_context *ctx, const char *name, unsigned int *len)
+const char *
+fz_lookup_base14_font(fz_context *ctx, const char *name, int *size)
{
- if (!strcmp("Courier", name)) {
- *len = sizeof fz_font_NimbusMono_Regular;
- return (unsigned char*) fz_font_NimbusMono_Regular;
- }
- if (!strcmp("Courier-Bold", name)) {
- *len = sizeof fz_font_NimbusMono_Bold;
- return (unsigned char*) fz_font_NimbusMono_Bold;
- }
- if (!strcmp("Courier-Oblique", name)) {
- *len = sizeof fz_font_NimbusMono_Oblique;
- return (unsigned char*) fz_font_NimbusMono_Oblique;
- }
- if (!strcmp("Courier-BoldOblique", name)) {
- *len = sizeof fz_font_NimbusMono_BoldOblique;
- return (unsigned char*) fz_font_NimbusMono_BoldOblique;
- }
- if (!strcmp("Helvetica", name)) {
- *len = sizeof fz_font_NimbusSanL_Reg;
- return (unsigned char*) fz_font_NimbusSanL_Reg;
- }
- if (!strcmp("Helvetica-Bold", name)) {
- *len = sizeof fz_font_NimbusSanL_Bol;
- return (unsigned char*) fz_font_NimbusSanL_Bol;
- }
- if (!strcmp("Helvetica-Oblique", name)) {
- *len = sizeof fz_font_NimbusSanL_RegIta;
- return (unsigned char*) fz_font_NimbusSanL_RegIta;
- }
- if (!strcmp("Helvetica-BoldOblique", name)) {
- *len = sizeof fz_font_NimbusSanL_BolIta;
- return (unsigned char*) fz_font_NimbusSanL_BolIta;
- }
- if (!strcmp("Times-Roman", name)) {
- *len = sizeof fz_font_NimbusRomNo9L_Reg;
- return (unsigned char*) fz_font_NimbusRomNo9L_Reg;
- }
- if (!strcmp("Times-Bold", name)) {
- *len = sizeof fz_font_NimbusRomNo9L_Med;
- return (unsigned char*) fz_font_NimbusRomNo9L_Med;
- }
- if (!strcmp("Times-Italic", name)) {
- *len = sizeof fz_font_NimbusRomNo9L_RegIta;
- return (unsigned char*) fz_font_NimbusRomNo9L_RegIta;
- }
- if (!strcmp("Times-BoldItalic", name)) {
- *len = sizeof fz_font_NimbusRomNo9L_MedIta;
- return (unsigned char*) fz_font_NimbusRomNo9L_MedIta;
- }
- if (!strcmp("Symbol", name)) {
- *len = sizeof fz_font_StandardSymL;
- return (unsigned char*) fz_font_StandardSymL;
- }
- if (!strcmp("ZapfDingbats", name)) {
- *len = sizeof fz_font_Dingbats;
- return (unsigned char*) fz_font_Dingbats;
- }
- *len = 0;
- return NULL;
+ BASE14("Courier", NimbusMono_Regular_cff);
+ BASE14("Courier-Bold", NimbusMono_Bold_cff);
+ BASE14("Courier-Oblique", NimbusMono_Oblique_cff);
+ BASE14("Courier-BoldOblique", NimbusMono_BoldOblique_cff);
+ BASE14("Helvetica", NimbusSanL_Reg_cff);
+ BASE14("Helvetica-Bold", NimbusSanL_Bol_cff);
+ BASE14("Helvetica-Oblique", NimbusSanL_RegIta_cff);
+ BASE14("Helvetica-BoldOblique", NimbusSanL_BolIta_cff);
+ BASE14("Times-Roman", NimbusRomNo9L_Reg_cff);
+ BASE14("Times-Bold", NimbusRomNo9L_Med_cff);
+ BASE14("Times-Italic", NimbusRomNo9L_RegIta_cff);
+ BASE14("Times-BoldItalic", NimbusRomNo9L_MedIta_cff);
+ BASE14("Symbol", StandardSymL_cff);
+ BASE14("ZapfDingbats", Dingbats_cff);
+ return *size = 0, NULL;
}
-unsigned char *
-fz_lookup_cjk_font(fz_context *ctx, int registry, int serif, int wmode, unsigned int *len, int *index)
+const char *
+fz_lookup_cjk_font(fz_context *ctx, int registry, int serif, int wmode, int *size, int *index)
{
+ if (index) *index = wmode;
#ifndef TOFU_CJK
#ifndef TOFU_CJK_EXT
- if (index) *index = wmode;
- *len = sizeof fz_font_DroidSansFallbackFull;
- return (unsigned char*) fz_font_DroidSansFallbackFull;
+ DEC_FONT(DroidSansFallbackFull_ttc);
+ RET_FONT(DroidSansFallbackFull_ttc);
#else
- if (index) *index = wmode;
- *len = sizeof fz_font_DroidSansFallback;
- return (unsigned char*) fz_font_DroidSansFallback;
+ DEC_FONT(DroidSansFallback_ttc);
+ RET_FONT(DroidSansFallback_ttc);
#endif
#else
- *len = 0;
- return NULL;
+ return *size = 0, NULL;
#endif
}
-#define Noto(SANS) \
- *len = sizeof fz_font_Noto ## SANS ## _Regular; \
- return (unsigned char*) fz_font_Noto ## SANS ## _Regular; \
- break
+#define Noto(SANS) { \
+ DEC_FONT(Noto ## SANS ## _Regular_ttf); \
+ RET_FONT(Noto ## SANS ## _Regular_ttf); \
+ } break
-#define Noto2(SANS,SERIF) \
- if (serif) { \
- *len = sizeof fz_font_Noto ## SERIF ## _Regular; \
- return (unsigned char*) fz_font_Noto ## SERIF ## _Regular; \
- } else { \
- *len = sizeof fz_font_Noto ## SANS ## _Regular; \
- return (unsigned char*) fz_font_Noto ## SANS ## _Regular; \
- } \
- break
+#define Noto2(SANS,SERIF) { \
+ DEC_FONT(Noto ## SANS ## _Regular_ttf); \
+ DEC_FONT(Noto ## SERIF ## _Regular_ttf); \
+ if (serif) RET_FONT(Noto ## SERIF ## _Regular_ttf); \
+ else RET_FONT(Noto ## SANS ## _Regular_ttf); \
+ } break
#define Noto3(SANS,SERIF,UNUSED) \
Noto2(SANS,SERIF)
-unsigned char *
-fz_lookup_noto_font(fz_context *ctx, int script, int serif, unsigned int *len)
+const char *
+fz_lookup_noto_font(fz_context *ctx, int script, int serif, int *size)
{
/* Unused Noto fonts: NastaliqUrdu, SansSyriacEstrangela */
@@ -160,14 +108,14 @@ fz_lookup_noto_font(fz_context *ctx, int script, int serif, unsigned int *len)
break;
case UCDN_SCRIPT_HANGUL:
- return fz_lookup_cjk_font(ctx, FZ_ADOBE_KOREA_1, serif, 0, len, NULL);
+ return fz_lookup_cjk_font(ctx, FZ_ADOBE_KOREA_1, serif, 0, size, NULL);
case UCDN_SCRIPT_HIRAGANA:
case UCDN_SCRIPT_KATAKANA:
- return fz_lookup_cjk_font(ctx, FZ_ADOBE_JAPAN_1, serif, 0, len, NULL);
+ return fz_lookup_cjk_font(ctx, FZ_ADOBE_JAPAN_1, serif, 0, size, NULL);
case UCDN_SCRIPT_BOPOMOFO:
- return fz_lookup_cjk_font(ctx, FZ_ADOBE_GB_1, serif, 0, len, NULL);
+ return fz_lookup_cjk_font(ctx, FZ_ADOBE_GB_1, serif, 0, size, NULL);
case UCDN_SCRIPT_HAN:
- return fz_lookup_cjk_font(ctx, FZ_ADOBE_GB_1, serif, 0, len, NULL);
+ return fz_lookup_cjk_font(ctx, FZ_ADOBE_GB_1, serif, 0, size, NULL);
#ifndef TOFU
@@ -306,30 +254,27 @@ fz_lookup_noto_font(fz_context *ctx, int script, int serif, unsigned int *len)
#endif
}
- *len = 0;
- return NULL;
+ return *size = 0, NULL;
}
-unsigned char *
-fz_lookup_noto_symbol_font(fz_context *ctx, unsigned int *len)
+const char *
+fz_lookup_noto_symbol_font(fz_context *ctx, int *size)
{
#ifndef TOFU_SYMBOL
- *len = sizeof fz_font_NotoSansSymbols_Regular;
- return (unsigned char*) fz_font_NotoSansSymbols_Regular;
+ DEC_FONT(NotoSansSymbols_Regular_ttf);
+ RET_FONT(NotoSansSymbols_Regular_ttf);
#else
- *len = 0;
- return NULL;
+ return *size = 0, NULL;
#endif
}
-unsigned char *
-fz_lookup_noto_emoji_font(fz_context *ctx, unsigned int *len)
+const char *
+fz_lookup_noto_emoji_font(fz_context *ctx, int *size)
{
#ifndef TOFU_EMOJI
- *len = sizeof fz_font_NotoEmoji_Regular;
- return (unsigned char*) fz_font_NotoEmoji_Regular;
+ DEC_FONT(NotoEmoji_Regular_ttf);
+ RET_FONT(NotoEmoji_Regular_ttf);
#else
- *len = 0;
- return NULL;
+ return *size = 0, NULL;
#endif
}
diff --git a/source/html/html-font.c b/source/html/html-font.c
index 0612490c..64121416 100644
--- a/source/html/html-font.c
+++ b/source/html/html-font.c
@@ -16,8 +16,8 @@ fz_load_html_builtin_font(fz_context *ctx, fz_html_font_set *set, const char *fa
int idx = is_mono * 8 + is_sans * 4 + is_bold * 2 + is_italic;
if (!set->fonts[idx])
{
- unsigned char *data;
- unsigned int size;
+ const char *data;
+ int size;
data = fz_lookup_base14_font(ctx, font_names[idx], &size);
if (!data)
diff --git a/source/pdf/pdf-font.c b/source/pdf/pdf-font.c
index 9cc928a1..c3513cbb 100644
--- a/source/pdf/pdf-font.c
+++ b/source/pdf/pdf-font.c
@@ -47,8 +47,8 @@ static const char *base_font_names[][10] =
{ "ZapfDingbats", NULL }
};
-unsigned char *
-pdf_lookup_substitute_font(fz_context *ctx, int mono, int serif, int bold, int italic, unsigned int *len)
+const char *
+pdf_lookup_substitute_font(fz_context *ctx, int mono, int serif, int bold, int italic, int *len)
{
if (mono) {
if (bold) {
@@ -121,10 +121,10 @@ static const char *clean_font_name(const char *fontname)
static int is_builtin_font(fz_context *ctx, fz_font *font)
{
- unsigned int size;
+ int size;
if (!font->buffer)
return 0;
- return fz_lookup_base14_font(ctx, clean_font_name(font->name), &size) == font->buffer->data;
+ return fz_lookup_base14_font(ctx, clean_font_name(font->name), &size) == (char*)font->buffer->data;
}
/*
@@ -234,8 +234,8 @@ pdf_load_builtin_font(fz_context *ctx, pdf_font_desc *fontdesc, char *fontname,
fontdesc->font = fz_load_system_font(ctx, fontname, 0, 0, !has_descriptor);
if (!fontdesc->font)
{
- unsigned char *data;
- unsigned int len;
+ const char *data;
+ int len;
data = fz_lookup_base14_font(ctx, clean_name, &len);
if (!data)
@@ -259,8 +259,8 @@ pdf_load_substitute_font(fz_context *ctx, pdf_font_desc *fontdesc, char *fontnam
fontdesc->font = fz_load_system_font(ctx, fontname, bold, italic, 0);
if (!fontdesc->font)
{
- unsigned char *data;
- unsigned int len;
+ const char *data;
+ int len;
data = pdf_lookup_substitute_font(ctx, mono, serif, bold, italic, &len);
if (!data)
@@ -286,8 +286,8 @@ pdf_load_substitute_cjk_font(fz_context *ctx, pdf_font_desc *fontdesc, char *fon
fontdesc->font = fz_load_system_cjk_font(ctx, fontname, ros, serif);
if (!fontdesc->font)
{
- unsigned char *data;
- unsigned int len;
+ const char *data;
+ int len;
int index;
data = fz_lookup_cjk_font(ctx, ros, serif, fontdesc->wmode, &len, &index);
diff --git a/source/tools/murun.c b/source/tools/murun.c
index 8e99cac5..26ff1a57 100644
--- a/source/tools/murun.c
+++ b/source/tools/murun.c
@@ -732,7 +732,7 @@ static fz_buffer *ffi_tobuffer(js_State *J, int idx)
else {
const char *str = js_tostring(J, idx);
fz_try(ctx)
- buf = fz_new_buffer_from_shared_data(ctx, (unsigned char*)str, strlen(str));
+ buf = fz_new_buffer_from_shared_data(ctx, str, strlen(str));
fz_catch(ctx)
rethrow(J);
}
@@ -1862,8 +1862,8 @@ static void ffi_new_Font(js_State *J)
fz_context *ctx = js_getcontext(J);
const char *name = js_tostring(J, 1);
int index = js_isnumber(J, 2) ? js_tonumber(J, 2) : 0;
- unsigned char *data;
- unsigned int size;
+ const char *data;
+ int size;
fz_font *font = NULL;
fz_try(ctx) {
diff --git a/source/tools/pdfcreate.c b/source/tools/pdfcreate.c
index 4ebc87fe..c2a330c2 100644
--- a/source/tools/pdfcreate.c
+++ b/source/tools/pdfcreate.c
@@ -26,8 +26,8 @@ static pdf_document *doc = NULL;
static void add_font_res(pdf_obj *resources, char *name, char *path)
{
- unsigned char *data;
- unsigned int size;
+ const char *data;
+ int size;
fz_font *font;
pdf_obj *subres, *ref;