summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipdfm-x/vf.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/dvipdfm-x/vf.c')
-rw-r--r--Build/source/texk/dvipdfm-x/vf.c10
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;