summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/mupdf/pdf/font.h6
-rw-r--r--source/pdf/pdf-encoding.c14
-rw-r--r--source/pdf/pdf-font.c31
-rw-r--r--source/pdf/pdf-type3.c2
-rw-r--r--source/pdf/pdf-unicode.c2
5 files changed, 39 insertions, 16 deletions
diff --git a/include/mupdf/pdf/font.h b/include/mupdf/pdf/font.h
index d2421ab0..63177061 100644
--- a/include/mupdf/pdf/font.h
+++ b/include/mupdf/pdf/font.h
@@ -18,8 +18,8 @@ enum
PDF_FD_FORCE_BOLD = 1 << 18
};
-void pdf_load_encoding(char **estrings, char *encoding);
-int pdf_lookup_agl(char *name);
+void pdf_load_encoding(const char **estrings, char *encoding);
+int pdf_lookup_agl(const char *name);
const char **pdf_lookup_agl_duplicates(int ucs);
extern const unsigned short pdf_doc_encoding[256];
@@ -99,7 +99,7 @@ void pdf_end_vmtx(fz_context *ctx, pdf_font_desc *font);
pdf_hmtx pdf_lookup_hmtx(fz_context *ctx, pdf_font_desc *font, int cid);
pdf_vmtx pdf_lookup_vmtx(fz_context *ctx, pdf_font_desc *font, int cid);
-void pdf_load_to_unicode(fz_context *ctx, pdf_document *doc, pdf_font_desc *font, char **strings, char *collection, pdf_obj *cmapstm);
+void pdf_load_to_unicode(fz_context *ctx, pdf_document *doc, pdf_font_desc *font, const char **strings, char *collection, pdf_obj *cmapstm);
int pdf_font_cid_to_gid(fz_context *ctx, pdf_font_desc *fontdesc, int cid);
diff --git a/source/pdf/pdf-encoding.c b/source/pdf/pdf-encoding.c
index d0a4bb88..25843c12 100644
--- a/source/pdf/pdf-encoding.c
+++ b/source/pdf/pdf-encoding.c
@@ -4,19 +4,19 @@
#include "pdf-glyphlist.h"
void
-pdf_load_encoding(char **estrings, char *encoding)
+pdf_load_encoding(const char **estrings, char *encoding)
{
- char **bstrings = NULL;
+ const char * const *bstrings = NULL;
int i;
if (!strcmp(encoding, "StandardEncoding"))
- bstrings = (char**) pdf_standard;
+ bstrings = pdf_standard;
if (!strcmp(encoding, "MacRomanEncoding"))
- bstrings = (char**) pdf_mac_roman;
+ bstrings = pdf_mac_roman;
if (!strcmp(encoding, "MacExpertEncoding"))
- bstrings = (char**) pdf_mac_expert;
+ bstrings = pdf_mac_expert;
if (!strcmp(encoding, "WinAnsiEncoding"))
- bstrings = (char**) pdf_win_ansi;
+ bstrings = pdf_win_ansi;
if (bstrings)
for (i = 0; i < 256; i++)
@@ -24,7 +24,7 @@ pdf_load_encoding(char **estrings, char *encoding)
}
int
-pdf_lookup_agl(char *name)
+pdf_lookup_agl(const char *name)
{
char buf[64];
char *p;
diff --git a/source/pdf/pdf-font.c b/source/pdf/pdf-font.c
index a974c8d5..eaeac3c0 100644
--- a/source/pdf/pdf-font.c
+++ b/source/pdf/pdf-font.c
@@ -178,9 +178,9 @@ static int ft_char_index(FT_Face face, int cid)
return gid;
}
-static int ft_name_index(FT_Face face, char *name)
+static int ft_name_index(FT_Face face, const char *name)
{
- int code = FT_Get_Name_Index(face, name);
+ int code = FT_Get_Name_Index(face, (char*)name);
if (code == 0)
{
int unicode = pdf_lookup_agl(name);
@@ -300,9 +300,32 @@ static int ft_width(fz_context *ctx, pdf_font_desc *fontdesc, int cid)
return adv * 1000 / ((FT_Face)fontdesc->font->ft_face)->units_per_EM;
}
-static int lookup_mre_code(char *name)
+static const struct { int code; const char *name; } mre_diff_table[] =
+{
+ { 173, "notequal" },
+ { 176, "infinity" },
+ { 178, "lessequal" },
+ { 179, "greaterequal" },
+ { 182, "partialdiff" },
+ { 183, "summation" },
+ { 184, "product" },
+ { 185, "pi" },
+ { 186, "integral" },
+ { 189, "Omega" },
+ { 195, "radical" },
+ { 197, "approxequal" },
+ { 198, "Delta" },
+ { 215, "lozenge" },
+ { 219, "Euro" },
+ { 240, "apple" },
+};
+
+static int lookup_mre_code(const char *name)
{
int i;
+ for (i = 0; i < nelem(mre_diff_table); ++i)
+ if (!strcmp(name, mre_diff_table[i].name))
+ return mre_diff_table[i].code;
for (i = 0; i < 256; i++)
if (pdf_mac_roman[i] && !strcmp(name, pdf_mac_roman[i]))
return i;
@@ -557,7 +580,7 @@ pdf_load_simple_font_by_name(fz_context *ctx, pdf_document *doc, pdf_obj *dict,
int kind;
int glyph;
- char *estrings[256];
+ const char *estrings[256];
char ebuffer[256][32];
int i, k, n;
int fterr;
diff --git a/source/pdf/pdf-type3.c b/source/pdf/pdf-type3.c
index 677a26e5..3eeff1f8 100644
--- a/source/pdf/pdf-type3.c
+++ b/source/pdf/pdf-type3.c
@@ -19,7 +19,7 @@ pdf_font_desc *
pdf_load_type3_font(fz_context *ctx, pdf_document *doc, pdf_obj *rdb, pdf_obj *dict)
{
char buf[256];
- char *estrings[256];
+ const char *estrings[256];
pdf_font_desc *fontdesc = NULL;
pdf_obj *encoding;
pdf_obj *widths;
diff --git a/source/pdf/pdf-unicode.c b/source/pdf/pdf-unicode.c
index 65bda460..fdff47ba 100644
--- a/source/pdf/pdf-unicode.c
+++ b/source/pdf/pdf-unicode.c
@@ -57,7 +57,7 @@ pdf_remap_cmap(fz_context *ctx, pdf_cmap *gid_from_cpt, pdf_cmap *ucs_from_cpt)
void
pdf_load_to_unicode(fz_context *ctx, pdf_document *doc, pdf_font_desc *font,
- char **strings, char *collection, pdf_obj *cmapstm)
+ const char **strings, char *collection, pdf_obj *cmapstm)
{
unsigned int cpt;