diff options
Diffstat (limited to 'Build/source/texk/dvipdfm-x/vf.c')
-rw-r--r-- | Build/source/texk/dvipdfm-x/vf.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Build/source/texk/dvipdfm-x/vf.c b/Build/source/texk/dvipdfm-x/vf.c index b046b665b56..a6361715494 100644 --- a/Build/source/texk/dvipdfm-x/vf.c +++ b/Build/source/texk/dvipdfm-x/vf.c @@ -413,6 +413,16 @@ void vf_set_char(int32_t ch, int vf_font) dvi_vf_init (default_font); if (ch >= vf_fonts[vf_font].num_chars || !(start = (vf_fonts[vf_font].ch_pkt)[ch])) { + if (tfm_is_jfm((vf_fonts[vf_font].dev_fonts[0]).tfm_id) && + ch < 0x1000000 && dpx_conf.compat_mode != dpx_mode_xdv_mode) { + /* fallback multibyte character for (u)pTeX */ + if (dpx_conf.verbose_level > 0) + WARN ("Fallback multibyte character in virtual font: name=%s char=0x%06x(%d)", + vf_fonts[vf_font].tex_name, ch, ch); + dvi_set (ch); + dvi_vf_finish(); + return; + } fprintf (stderr, "\nchar=0x%x(%d)\n", ch, ch); fprintf (stderr, "Tried to set a nonexistent character in a virtual font"); start = end = NULL; |