summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKhaled Hosny <khaledhosny@eglug.org>2014-07-29 09:20:42 +0000
committerKhaled Hosny <khaledhosny@eglug.org>2014-07-29 09:20:42 +0000
commite0d2937997ad59c6b13d14c7e47540b9ea11a7e4 (patch)
tree705e1efb5d085496d0406cf017e687914df24453
parent117d1038285bced4517dbc0313a0bb3f799961ed (diff)
Fix crash in fonts with no font map entry
The unit test does not actually work, no idea why the dvipdfmx can not found the xbmc10.tfm file! git-svn-id: svn://tug.org/texlive/trunk@34767 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/texk/dvipdfm-x/ChangeLog6
-rw-r--r--Build/source/texk/dvipdfm-x/Makefile.am3
-rw-r--r--Build/source/texk/dvipdfm-x/Makefile.in5
-rwxr-xr-xBuild/source/texk/dvipdfm-x/dvipdfmx.test5
-rw-r--r--Build/source/texk/dvipdfm-x/pdfdev.c3
-rw-r--r--Build/source/texk/dvipdfm-x/tests/xbmc.dvibin0 -> 252 bytes
-rw-r--r--Build/source/texk/dvipdfm-x/tests/xbmc.tex1
-rw-r--r--Build/source/texk/dvipdfm-x/tests/xbmc10.tfmbin0 -> 1328 bytes
-rwxr-xr-xBuild/source/texk/dvipdfm-x/xdvipdfmx.test5
9 files changed, 23 insertions, 5 deletions
diff --git a/Build/source/texk/dvipdfm-x/ChangeLog b/Build/source/texk/dvipdfm-x/ChangeLog
index 253a51998f3..45e8b96f83e 100644
--- a/Build/source/texk/dvipdfm-x/ChangeLog
+++ b/Build/source/texk/dvipdfm-x/ChangeLog
@@ -1,4 +1,4 @@
-2014-07-28 Khaled Hosny <khaledhosny@eglug.org>
+2014-07-29 Khaled Hosny <khaledhosny@eglug.org>
* spc_pdfm.c: remove the #ifdef ENABLE_TOUNICODE as it is always true.
* spc_pdfm.c: rename my_parse_pdf_dict to
@@ -13,6 +13,10 @@
* dvi.c, dvipdfmx.c, dvipdfmx.h, spc_pdfm.c: Rename is_xetex to is_xdv
and set it to 1 when DVI id equals XDV_ID.
+ * pdfdev.c (pdf_dev_locate_font): Don't crash if mrec is None.
+ * dvipdfm.test, xdvipdfm.test, tests/xbmc10.{dvi,tex}, Makefile.am:
+ Test the above bug.
+
2014-07-28 Jiang Jiang <gzjjgod@gmail.com>
diff --git a/Build/source/texk/dvipdfm-x/Makefile.am b/Build/source/texk/dvipdfm-x/Makefile.am
index f651383e9af..73dd65cdb0e 100644
--- a/Build/source/texk/dvipdfm-x/Makefile.am
+++ b/Build/source/texk/dvipdfm-x/Makefile.am
@@ -302,4 +302,5 @@ EXTRA_DIST += tests/image.dvi tests/image.tex
EXTRA_DIST += tests/cmr10.pfb tests/cmr10.tfm tests/annot.dvi tests/annot.tex
EXTRA_DIST += tests/bookm.dvi tests/bookm.tex tests/paper.dvi tests/paper.tex
EXTRA_DIST += tests/resrc.dvi tests/resrc.tex
-DISTCLEANFILES += img*.* pic*.* image*.pdf annot*.pdf bookm*.pdf paper*.pdf resrc*.pdf
+EXTRA_DIST += tests/xbmc.dvi tests/xbmc.tex tests/xbmc10.tfm
+DISTCLEANFILES += img*.* pic*.* image*.pdf annot*.pdf bookm*.pdf paper*.pdf resrc*.pdf xbmc.pdf
diff --git a/Build/source/texk/dvipdfm-x/Makefile.in b/Build/source/texk/dvipdfm-x/Makefile.in
index ad0708f4611..78c3c906940 100644
--- a/Build/source/texk/dvipdfm-x/Makefile.in
+++ b/Build/source/texk/dvipdfm-x/Makefile.in
@@ -801,7 +801,7 @@ dist_mapdata_DATA = data/cid-x.map
cmapdatadir = $(datarootdir)/texmf-dist/fonts/cmap/dvipdfmx
dist_cmapdata_DATA = data/EUC-UCS2
DISTCLEANFILES = config.force img*.* pic*.* image*.pdf annot*.pdf \
- bookm*.pdf paper*.pdf resrc*.pdf
+ bookm*.pdf paper*.pdf resrc*.pdf xbmc.pdf
TESTS = $(am__append_6) $(am__append_7)
dvipdfmx_tests = dvipdfmx.test dvipdfm-ann.test dvipdfm-bb.test \
dvipdfm-bkm.test dvipdfm-psz.test dvipdfm-res.test
@@ -817,7 +817,8 @@ EXTRA_DIST = $(dvipdfmx_tests) $(xdvipdfmx_tests) tests/dvipdfmx.cfg \
tests/image.dvi tests/image.tex tests/cmr10.pfb \
tests/cmr10.tfm tests/annot.dvi tests/annot.tex \
tests/bookm.dvi tests/bookm.tex tests/paper.dvi \
- tests/paper.tex tests/resrc.dvi tests/resrc.tex
+ tests/paper.tex tests/resrc.dvi tests/resrc.tex tests/xbmc.dvi \
+ tests/xbmc.tex tests/xbmc10.tfm
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-am
diff --git a/Build/source/texk/dvipdfm-x/dvipdfmx.test b/Build/source/texk/dvipdfm-x/dvipdfmx.test
index fc5ae188d94..72c6a18229a 100755
--- a/Build/source/texk/dvipdfm-x/dvipdfmx.test
+++ b/Build/source/texk/dvipdfm-x/dvipdfmx.test
@@ -27,6 +27,11 @@ echo "*** dvipdfmx -v -o image1.pdf image" && echo \
&& echo && echo "dvipdfmx-image tests OK" && echo \
|| failed="$failed dvipdfmx-image"
+echo "*** dvipdfmx -v xbmc" && echo \
+ && ./dvipdfmx -v $srcdir/tests/xbmc \
+ && echo && echo "dvipdfmx-xbmc tests OK" && echo \
+ || failed="$failed dvipdfmx-xbmc"
+
test -z "$failed" && exit 0
echo
echo "failed tests:$failed"
diff --git a/Build/source/texk/dvipdfm-x/pdfdev.c b/Build/source/texk/dvipdfm-x/pdfdev.c
index 6c0c5d7c7c3..6c2d1c5b4f3 100644
--- a/Build/source/texk/dvipdfm-x/pdfdev.c
+++ b/Build/source/texk/dvipdfm-x/pdfdev.c
@@ -1505,7 +1505,8 @@ pdf_dev_locate_font (const char *font_name, spt_t ptsize)
if (font->font_id < 0)
return -1;
- font->cff_charsets = mrec->opt.cff_charsets;
+ if (mrec)
+ font->cff_charsets = mrec->opt.cff_charsets;
/* We found device font here. */
if (i < num_dev_fonts) {
diff --git a/Build/source/texk/dvipdfm-x/tests/xbmc.dvi b/Build/source/texk/dvipdfm-x/tests/xbmc.dvi
new file mode 100644
index 00000000000..eddae94621a
--- /dev/null
+++ b/Build/source/texk/dvipdfm-x/tests/xbmc.dvi
Binary files differ
diff --git a/Build/source/texk/dvipdfm-x/tests/xbmc.tex b/Build/source/texk/dvipdfm-x/tests/xbmc.tex
new file mode 100644
index 00000000000..99a94cdb1fb
--- /dev/null
+++ b/Build/source/texk/dvipdfm-x/tests/xbmc.tex
@@ -0,0 +1 @@
+\font\revrm=xbmc10\revrm E\bye
diff --git a/Build/source/texk/dvipdfm-x/tests/xbmc10.tfm b/Build/source/texk/dvipdfm-x/tests/xbmc10.tfm
new file mode 100644
index 00000000000..04f6429540e
--- /dev/null
+++ b/Build/source/texk/dvipdfm-x/tests/xbmc10.tfm
Binary files differ
diff --git a/Build/source/texk/dvipdfm-x/xdvipdfmx.test b/Build/source/texk/dvipdfm-x/xdvipdfmx.test
index c20b8e27df8..51688143cdc 100755
--- a/Build/source/texk/dvipdfm-x/xdvipdfmx.test
+++ b/Build/source/texk/dvipdfm-x/xdvipdfmx.test
@@ -26,6 +26,11 @@ echo "*** xdvipdfmx -v -o image2.pdf image" && echo \
&& echo && echo "xdvipdfmx-image tests OK" && echo \
|| failed="$failed xdvipdfmx-image"
+echo "*** dvipdfmx -v xbmc" && echo \
+ && ./dvipdfmx -v $srcdir/tests/xbmc \
+ && echo && echo "dvipdfmx-xbmc tests OK" && echo \
+ || failed="$failed dvipdfmx-xbmc"
+
test -z "$failed" && exit 0
echo
echo "failed tests:$failed"