summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipdfmx/src/pdffont.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/dvipdfmx/src/pdffont.c')
-rw-r--r--Build/source/texk/dvipdfmx/src/pdffont.c35
1 files changed, 27 insertions, 8 deletions
diff --git a/Build/source/texk/dvipdfmx/src/pdffont.c b/Build/source/texk/dvipdfmx/src/pdffont.c
index d011e59da9a..02e1f1962df 100644
--- a/Build/source/texk/dvipdfmx/src/pdffont.c
+++ b/Build/source/texk/dvipdfmx/src/pdffont.c
@@ -1,8 +1,8 @@
-/* $Header: /home/cvsroot/dvipdfmx/src/pdffont.c,v 1.17 2007/11/15 17:08:52 chofchof Exp $
+/* $Header: /home/cvsroot/dvipdfmx/src/pdffont.c,v 1.23 2008/05/18 14:49:20 chofchof Exp $
This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks.
- Copyright (C) 2007 by Jin-Hwan Cho and Shunsaku Hirata,
+ Copyright (C) 2008 by Jin-Hwan Cho, Matthias Franz, and Shunsaku Hirata,
the dvipdfmx project team <dvipdfmx@project.ktug.or.kr>
Copyright (C) 1998, 1999 by Mark A. Wicks <mwicks@kettering.edu>
@@ -122,6 +122,7 @@ struct pdf_font
int font_id;
/* For simple font */
+ int index;
char *fontname;
char uniqueID[7];
@@ -154,6 +155,7 @@ pdf_init_font_struct (pdf_font *font)
font->font_id = -1; /* Type0 ID */
font->fontname = NULL;
memset(font->uniqueID, 0, 7);
+ font->index = 0;
font->encoding_id = -1;
@@ -531,9 +533,10 @@ pdf_close_fonts (void)
/* Predefined encodings (and those simplified to them) are embedded
as direct objects, but this is purely a matter of taste. */
- pdf_add_dict(font->resource,
- pdf_new_name("Encoding"),
- PDF_OBJ_NAMETYPE(enc_obj) ? pdf_link_obj(enc_obj) : pdf_ref_obj(enc_obj));
+ if (enc_obj)
+ pdf_add_dict(font->resource,
+ pdf_new_name("Encoding"),
+ PDF_OBJ_NAMETYPE(enc_obj) ? pdf_link_obj(enc_obj) : pdf_ref_obj(enc_obj));
if (!pdf_lookup_dict(font->resource, "ToUnicode")
&& (tounicode = pdf_encoding_get_tounicode(font->encoding_id)))
@@ -669,8 +672,6 @@ pdf_font_findresource (const char *tex_name,
font->subtype = PDF_FONT_FONTTYPE_TYPE0;
font->encoding_id = cmap_id;
- mrec->opt.flags &= ~FONTMAP_OPT_REMAP; /* _FIXME_ */
-
font_cache.count++;
if (__verbose) {
@@ -701,7 +702,8 @@ pdf_font_findresource (const char *tex_name,
*/
if (!strcmp(fontname, font->ident) &&
encoding_id == font->encoding_id) {
- found = 1;
+ if (mrec && mrec->opt.index == font->index)
+ found = 1;
}
break;
case PDF_FONT_FONTTYPE_TYPE3:
@@ -749,6 +751,7 @@ pdf_font_findresource (const char *tex_name,
strcpy(font->ident, fontname);
font->map_name = NEW(strlen(tex_name) + 1, char);
strcpy(font->map_name, tex_name);
+ font->index = (mrec && mrec->opt.index) ? mrec->opt.index : 0;
if (pdf_font_open_type1(font) >= 0) {
font->subtype = PDF_FONT_FONTTYPE_TYPE1;
@@ -785,6 +788,14 @@ pdf_font_is_in_use (pdf_font *font)
return ((font->reference) ? 1 : 0);
}
+int
+pdf_font_get_index (pdf_font *font)
+{
+ ASSERT(font);
+
+ return font->index;
+}
+
char *
pdf_font_get_ident (pdf_font *font)
{
@@ -794,6 +805,14 @@ pdf_font_get_ident (pdf_font *font)
}
char *
+pdf_font_get_mapname (pdf_font *font)
+{
+ ASSERT(font);
+
+ return font->map_name;
+}
+
+char *
pdf_font_get_fontname (pdf_font *font)
{
ASSERT(font);