diff options
Diffstat (limited to 'Build/source/texk')
-rw-r--r-- | Build/source/texk/xdvipdfmx/ChangeLog | 2 | ||||
-rw-r--r-- | Build/source/texk/xdvipdfmx/src/dvi.c | 135 |
2 files changed, 67 insertions, 70 deletions
diff --git a/Build/source/texk/xdvipdfmx/ChangeLog b/Build/source/texk/xdvipdfmx/ChangeLog index c9033b9d2c9..1caa7c86b50 100644 --- a/Build/source/texk/xdvipdfmx/ChangeLog +++ b/Build/source/texk/xdvipdfmx/ChangeLog @@ -7,6 +7,8 @@ Merge. * src/dvi.c, src/fontmap.c, src/fontmap.h: Ignore native font family and style names that we no longer use. + * src/dvi.c (read_native_font_record, do_native_font_def): Don't check + for XDV_FLAG_FONTTYPE_* flags as they do nothing. 2013-02-25 Peter Breitenlohner <peb@mppmu.mpg.de> diff --git a/Build/source/texk/xdvipdfmx/src/dvi.c b/Build/source/texk/xdvipdfmx/src/dvi.c index 02ceb3ff751..93efaa0f710 100644 --- a/Build/source/texk/xdvipdfmx/src/dvi.c +++ b/Build/source/texk/xdvipdfmx/src/dvi.c @@ -164,8 +164,6 @@ static struct font_def } *def_fonts = NULL; #ifdef XETEX -#define XDV_FLAG_FONTTYPE_ATSUI 0x0001 -#define XDV_FLAG_FONTTYPE_ICU 0x0002 #define XDV_FLAG_VERTICAL 0x0100 #define XDV_FLAG_COLORED 0x0200 #define XDV_FLAG_FEATURES 0x0400 @@ -643,58 +641,60 @@ read_native_font_record (SIGNED_QUAD tex_id) point_size = get_unsigned_quad(dvi_file); flags = get_unsigned_pair(dvi_file); - if ((flags & XDV_FLAG_FONTTYPE_ICU) || (flags & XDV_FLAG_FONTTYPE_ATSUI)) { - plen = (int) get_unsigned_byte(dvi_file); /* PS name length */ - flen = (int) get_unsigned_byte(dvi_file); /* family name length */ - slen = (int) get_unsigned_byte(dvi_file); /* style name length */ - font_name = NEW(plen + 1, char); - if (fread(font_name, 1, plen, dvi_file) != plen) { - ERROR(invalid_signature); - } - font_name[plen] = '\0'; - - /* ignore family and style names */ - for (i = 0; i < flen + slen; ++i) - get_unsigned_byte(dvi_file); - - def_fonts[num_def_fonts].tex_id = tex_id; - def_fonts[num_def_fonts].font_name = font_name; - def_fonts[num_def_fonts].point_size = point_size; - def_fonts[num_def_fonts].design_size = 655360; /* hard-code as 10pt for now, not used anyway */ - def_fonts[num_def_fonts].used = 0; - def_fonts[num_def_fonts].native = 1; - if (flags & XDV_FLAG_VERTICAL) - def_fonts[num_def_fonts].layout_dir = 1; - else - def_fonts[num_def_fonts].layout_dir = 0; - if (flags & XDV_FLAG_COLORED) { - def_fonts[num_def_fonts].rgba_color = get_unsigned_quad(dvi_file); - } else { - def_fonts[num_def_fonts].rgba_color = 0xffffffff; - } - if (flags & XDV_FLAG_VARIATIONS) { - int v, nvars = get_unsigned_pair(dvi_file); - for (v = 0; v < nvars * 2; ++v) - (void)get_unsigned_quad(dvi_file); /* skip axis and value for each variation setting */ - WARN("Variation axes are not supported; ignoring variation settings for font %s.\n", font_name); - } - if (flags & XDV_FLAG_EXTEND) - def_fonts[num_def_fonts].extend = get_signed_quad(dvi_file); - else - def_fonts[num_def_fonts].extend = 0x00010000; - if (flags & XDV_FLAG_SLANT) - def_fonts[num_def_fonts].slant = get_signed_quad(dvi_file); - else - def_fonts[num_def_fonts].slant = 0; - if (flags & XDV_FLAG_EMBOLDEN) - def_fonts[num_def_fonts].embolden = get_signed_quad(dvi_file); - else - def_fonts[num_def_fonts].embolden = 0; - num_def_fonts++; - } else { - ERROR("Unknown native_font flags."); + plen = (int) get_unsigned_byte(dvi_file); /* PS name length */ + flen = (int) get_unsigned_byte(dvi_file); /* family name length */ + slen = (int) get_unsigned_byte(dvi_file); /* style name length */ + font_name = NEW(plen + 1, char); + if (fread(font_name, 1, plen, dvi_file) != plen) { + ERROR(invalid_signature); + } + font_name[plen] = '\0'; + + /* ignore family and style names */ + for (i = 0; i < flen + slen; ++i) + get_unsigned_byte(dvi_file); + + def_fonts[num_def_fonts].tex_id = tex_id; + def_fonts[num_def_fonts].font_name = font_name; + def_fonts[num_def_fonts].point_size = point_size; + def_fonts[num_def_fonts].design_size = 655360; /* hard-code as 10pt for now, not used anyway */ + def_fonts[num_def_fonts].used = 0; + def_fonts[num_def_fonts].native = 1; + + if (flags & XDV_FLAG_VERTICAL) + def_fonts[num_def_fonts].layout_dir = 1; + else + def_fonts[num_def_fonts].layout_dir = 0; + + if (flags & XDV_FLAG_COLORED) + def_fonts[num_def_fonts].rgba_color = get_unsigned_quad(dvi_file); + else + def_fonts[num_def_fonts].rgba_color = 0xffffffff; + + if (flags & XDV_FLAG_EXTEND) + def_fonts[num_def_fonts].extend = get_signed_quad(dvi_file); + else + def_fonts[num_def_fonts].extend = 0x00010000; + + if (flags & XDV_FLAG_SLANT) + def_fonts[num_def_fonts].slant = get_signed_quad(dvi_file); + else + def_fonts[num_def_fonts].slant = 0; + + if (flags & XDV_FLAG_EMBOLDEN) + def_fonts[num_def_fonts].embolden = get_signed_quad(dvi_file); + else + def_fonts[num_def_fonts].embolden = 0; + + if (flags & XDV_FLAG_VARIATIONS) { + int v, nvars = get_unsigned_pair(dvi_file); + for (v = 0; v < nvars * 2; ++v) + (void)get_unsigned_quad(dvi_file); /* skip axis and value for each variation setting */ + WARN("Variation axes are not supported; ignoring variation settings for font %s.\n", font_name); } + num_def_fonts++; + return; } #endif @@ -1876,29 +1876,24 @@ do_native_font_def (int scanning) SIGNED_QUAD tex_id = get_signed_quad(dvi_file); if (linear) { read_native_font_record(tex_id); - } - else { + } else { UNSIGNED_PAIR flags; int name_length, nvars, i; get_unsigned_quad(dvi_file); /* skip point size */ flags = get_unsigned_pair(dvi_file); - if ((flags & XDV_FLAG_FONTTYPE_ICU) || (flags & XDV_FLAG_FONTTYPE_ATSUI)) { - name_length = (int) get_unsigned_byte(dvi_file); - name_length += (int) get_unsigned_byte(dvi_file); - name_length += (int) get_unsigned_byte(dvi_file); - for (i = 0; i < name_length; ++i) - get_unsigned_byte(dvi_file); - if (flags & XDV_FLAG_COLORED) { - get_unsigned_quad(dvi_file); - } - if (flags & XDV_FLAG_VARIATIONS) { - nvars = get_unsigned_pair(dvi_file); - for (i = 0; i < nvars * 2; ++i) - get_unsigned_quad(dvi_file); /* skip axis and value for each variation setting */ - } - } else { - ERROR(invalid_signature); + name_length = (int) get_unsigned_byte(dvi_file); + name_length += (int) get_unsigned_byte(dvi_file); + name_length += (int) get_unsigned_byte(dvi_file); + for (i = 0; i < name_length; ++i) + get_unsigned_byte(dvi_file); + if (flags & XDV_FLAG_COLORED) { + get_unsigned_quad(dvi_file); + } + if (flags & XDV_FLAG_VARIATIONS) { + nvars = get_unsigned_pair(dvi_file); + for (i = 0; i < nvars * 2; ++i) + get_unsigned_quad(dvi_file); /* skip axis and value for each variation setting */ } } --dvi_page_buf_index; /* don't buffer the opcode */ |