diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2014-07-09 11:29:23 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2014-07-09 11:29:23 +0000 |
commit | 0c0900f8ae6d770b54d9d5602af9e2c7f398bac5 (patch) | |
tree | 0e5f3a9f6bb34b55481b595c864193bb81b02f97 /Build/source/texk/web2c/omegafonts | |
parent | d5143b40000d0fac9135af33ea084189e99e733e (diff) |
texk/web2c: Drop configure option '--disable-omfonts'
omegaware: Always build wofm2opl&Co, more tests
omegafonts: Allow char codes from Supplementary Unicode Planes
git-svn-id: svn://tug.org/texlive/trunk@34555 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/omegafonts')
26 files changed, 1024 insertions, 78 deletions
diff --git a/Build/source/texk/web2c/omegafonts/ChangeLog b/Build/source/texk/web2c/omegafonts/ChangeLog index 8c2af72d2df..9583e665f1c 100644 --- a/Build/source/texk/web2c/omegafonts/ChangeLog +++ b/Build/source/texk/web2c/omegafonts/ChangeLog @@ -1,3 +1,12 @@ +2014-07-09 Peter Breitenlohner <peb@mppmu.mpg.de> + + * Makefile.am: Drop Automake conditional OMFONTS. + * ofonts.test, overbmp.test, tests/ofont*, tests/inbmp.opl, + tests/overbmp.* (new): Shell scripts and data for new tests. + + * char_routines.c, ligkern_routines.c, parse_ofm.c: Allow char + codes from Supplementary Unicode Planes (<=10FFFF). + 2013-12-06 Peter Breitenlohner <peb@mppmu.mpg.de> * omfonts.c (main): Use make_suffix() for implied ofm_name. diff --git a/Build/source/texk/web2c/omegafonts/Makefile.am b/Build/source/texk/web2c/omegafonts/Makefile.am index bc3fda25aaa..4c5bfd00405 100644 --- a/Build/source/texk/web2c/omegafonts/Makefile.am +++ b/Build/source/texk/web2c/omegafonts/Makefile.am @@ -1,6 +1,6 @@ ## Makefile.am for the TeX Live subdirectory texk/web2c/omegafonts/ ## -## Copyright (C) 2009-2013 Peter Breitenlohner <tex-live@tug.org> +## Copyright (C) 2009-2014 Peter Breitenlohner <tex-live@tug.org> ## You may freely use, modify and/or distribute this file. ## AM_CPPFLAGS = -I$(top_builddir)/.. -I$(top_srcdir) $(KPATHSEA_INCLUDES) -DNOT_WEB2C @@ -18,12 +18,10 @@ $(proglib): ${top_srcdir}/lib/*.c bin_PROGRAMS = if OTANGLE -if OMFONTS bin_PROGRAMS += omfonts if WIN32 noinst_PROGRAMS = call_omfonts endif WIN32 -endif OMFONTS endif OTANGLE EXTRA_PROGRAMS = omfonts @@ -82,7 +80,6 @@ bin_links = \ include $(top_srcdir)/../../am/bin_links.am if OTANGLE -if OMFONTS install-exec-hook: install-bin-links if WIN32 for f in $(linked_programs); do \ @@ -95,17 +92,14 @@ if WIN32 rm -f $(DESTDIR)$(bindir)/$$f$(EXEEXT); \ done endif WIN32 -endif OMFONTS endif OTANGLE ## Tests ## -OMFONTS_tests = charwd.test level1.test omfonts.test realnum.test \ - repeat.test selectfont.test specialhex.test +OMFONTS_tests = charwd.test level1.test ofonts.test omfonts.test overbmp.test \ + realnum.test repeat.test selectfont.test specialhex.test if OTANGLE -if OMFONTS TESTS = $(OMFONTS_tests) -endif OMFONTS endif OTANGLE EXTRA_DIST = $(OMFONTS_tests) @@ -116,11 +110,23 @@ DISTCLEANFILES += tests/charwdr.* tests/charwdv.* ## level1.test EXTRA_DIST += tests/level1.opl DISTCLEANFILES += tests/xlevel1.ofm tests/xlevel1.opl +## ofonts.test +EXTRA_DIST += tests/ofontr0.pl \ + tests/ofontr1.pl tests/ofontr1.vpl \ + tests/ofontr2.opl tests/ofontr2.ovp \ + tests/ofontr3.opl tests/ofontr3.ovp \ + tests/ofontv4.pl tests/ofontv4.vpl \ + tests/ofontv5.opl tests/ofontv5.ovp \ + tests/ofontv6.opl tests/ofontv6.ovp +DISTCLEANFILES += tests/xofont* ## omfonts.test EXTRA_DIST += tests/Cherokee.pl tests/OCherokee.ovp DISTCLEANFILES += tests/Cherokee.tfm tests/OCherokee.ofm \ tests/OCherokee.opl tests/OCherokee.ovf \ tests/xCherokee.* tests/xOCherokee.* +## overbmp.test +EXTRA_DIST += tests/inbmp.opl tests/overbmp.opl tests/overbmp.ovp +DISTCLEANFILES += tests/xinbmp* tests/xoverbmp* ## realnum.test EXTRA_DIST += tests/realnum.opl tests/realnum.out DISTCLEANFILES += tests/realnum.* diff --git a/Build/source/texk/web2c/omegafonts/Makefile.in b/Build/source/texk/web2c/omegafonts/Makefile.in index 185cc7e480f..01f690fa300 100644 --- a/Build/source/texk/web2c/omegafonts/Makefile.in +++ b/Build/source/texk/web2c/omegafonts/Makefile.in @@ -79,9 +79,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = $(am__EXEEXT_1) -@OMFONTS_TRUE@@OTANGLE_TRUE@am__append_1 = omfonts -@OMFONTS_TRUE@@OTANGLE_TRUE@@WIN32_TRUE@noinst_PROGRAMS = \ -@OMFONTS_TRUE@@OTANGLE_TRUE@@WIN32_TRUE@ call_omfonts$(EXEEXT) +@OTANGLE_TRUE@am__append_1 = omfonts +@OTANGLE_TRUE@@WIN32_TRUE@noinst_PROGRAMS = call_omfonts$(EXEEXT) EXTRA_PROGRAMS = omfonts$(EXEEXT) DIST_COMMON = $(top_srcdir)/../../am/bin_links.am \ $(srcdir)/Makefile.in $(srcdir)/Makefile.am pl-parser.h \ @@ -138,7 +137,7 @@ CONFIG_HEADER = $(top_builddir)/w2c/c-auto.h \ $(top_builddir)/ff-config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -@OMFONTS_TRUE@@OTANGLE_TRUE@am__EXEEXT_1 = omfonts$(EXEEXT) +@OTANGLE_TRUE@am__EXEEXT_1 = omfonts$(EXEEXT) am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) am__dirstamp = $(am__leading_dot)dirstamp @@ -706,9 +705,10 @@ call_omfonts_CPPFLAGS = -DEXEPROG=\"omfonts.exe\" nodist_call_omfonts_SOURCES = ../callexe.c call_omfonts_LDADD = DISTCLEANFILES = pl-parser.output tests/charwdr.* tests/charwdv.* \ - tests/xlevel1.ofm tests/xlevel1.opl tests/Cherokee.tfm \ - tests/OCherokee.ofm tests/OCherokee.opl tests/OCherokee.ovf \ - tests/xCherokee.* tests/xOCherokee.* tests/realnum.* \ + tests/xlevel1.ofm tests/xlevel1.opl tests/xofont* \ + tests/Cherokee.tfm tests/OCherokee.ofm tests/OCherokee.opl \ + tests/OCherokee.ovf tests/xCherokee.* tests/xOCherokee.* \ + tests/xinbmp* tests/xoverbmp* tests/realnum.* \ tests/xrepeated.* tests/sample*.ofm tests/sample*.ovf \ tests/sample1-h.opl tests/xsample*.out tests/specialhex.ofm \ tests/specialhex.opl tests/specialhex.ovf tests/xspecialhex.* @@ -719,15 +719,20 @@ bin_links = \ omfonts$(EXEEXT):ovf2ovp \ omfonts$(EXEEXT):ovp2ovf -OMFONTS_tests = charwd.test level1.test omfonts.test realnum.test \ - repeat.test selectfont.test specialhex.test +OMFONTS_tests = charwd.test level1.test ofonts.test omfonts.test overbmp.test \ + realnum.test repeat.test selectfont.test specialhex.test -@OMFONTS_TRUE@@OTANGLE_TRUE@TESTS = $(OMFONTS_tests) +@OTANGLE_TRUE@TESTS = $(OMFONTS_tests) EXTRA_DIST = $(OMFONTS_tests) tests/charwd-r.pl tests/charwd-v.vpl \ - tests/level1.opl tests/Cherokee.pl tests/OCherokee.ovp \ - tests/realnum.opl tests/realnum.out tests/repeat.opl \ - tests/repeated.opl tests/sample.out tests/sample.ovp \ - tests/sample0-h.opl tests/specialhex.ovp + tests/level1.opl tests/ofontr0.pl tests/ofontr1.pl \ + tests/ofontr1.vpl tests/ofontr2.opl tests/ofontr2.ovp \ + tests/ofontr3.opl tests/ofontr3.ovp tests/ofontv4.pl \ + tests/ofontv4.vpl tests/ofontv5.opl tests/ofontv5.ovp \ + tests/ofontv6.opl tests/ofontv6.ovp tests/Cherokee.pl \ + tests/OCherokee.ovp tests/inbmp.opl tests/overbmp.opl \ + tests/overbmp.ovp tests/realnum.opl tests/realnum.out \ + tests/repeat.opl tests/repeated.opl tests/sample.out \ + tests/sample.ovp tests/sample0-h.opl tests/specialhex.ovp all: all-am .SUFFIXES: @@ -1201,9 +1206,7 @@ maintainer-clean-generic: -rm -f pl-lexer.c -rm -f pl-parser.c -rm -f pl-parser.h -@OMFONTS_FALSE@install-exec-hook: @OTANGLE_FALSE@install-exec-hook: -@OMFONTS_FALSE@uninstall-hook: @OTANGLE_FALSE@uninstall-hook: clean: clean-am @@ -1320,14 +1323,14 @@ uninstall-bin-links: @WIN32_FALSE@ rm -f $(DESTDIR)$(bindir)/$$link; \ @WIN32_FALSE@ done -@OMFONTS_TRUE@@OTANGLE_TRUE@install-exec-hook: install-bin-links -@OMFONTS_TRUE@@OTANGLE_TRUE@@WIN32_TRUE@ for f in $(linked_programs); do \ -@OMFONTS_TRUE@@OTANGLE_TRUE@@WIN32_TRUE@ $(INSTALL_PROGRAM) call_omfonts$(EXEEXT) $(DESTDIR)$(bindir)/$$f$(EXEEXT) || exit 1; \ -@OMFONTS_TRUE@@OTANGLE_TRUE@@WIN32_TRUE@ done -@OMFONTS_TRUE@@OTANGLE_TRUE@uninstall-hook: uninstall-bin-links -@OMFONTS_TRUE@@OTANGLE_TRUE@@WIN32_TRUE@ for f in $(linked_programs); do \ -@OMFONTS_TRUE@@OTANGLE_TRUE@@WIN32_TRUE@ rm -f $(DESTDIR)$(bindir)/$$f$(EXEEXT); \ -@OMFONTS_TRUE@@OTANGLE_TRUE@@WIN32_TRUE@ done +@OTANGLE_TRUE@install-exec-hook: install-bin-links +@OTANGLE_TRUE@@WIN32_TRUE@ for f in $(linked_programs); do \ +@OTANGLE_TRUE@@WIN32_TRUE@ $(INSTALL_PROGRAM) call_omfonts$(EXEEXT) $(DESTDIR)$(bindir)/$$f$(EXEEXT) || exit 1; \ +@OTANGLE_TRUE@@WIN32_TRUE@ done +@OTANGLE_TRUE@uninstall-hook: uninstall-bin-links +@OTANGLE_TRUE@@WIN32_TRUE@ for f in $(linked_programs); do \ +@OTANGLE_TRUE@@WIN32_TRUE@ rm -f $(DESTDIR)$(bindir)/$$f$(EXEEXT); \ +@OTANGLE_TRUE@@WIN32_TRUE@ done # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/Build/source/texk/web2c/omegafonts/char_routines.c b/Build/source/texk/web2c/omegafonts/char_routines.c index 772edb5dd9a..b7e65d2377c 100644 --- a/Build/source/texk/web2c/omegafonts/char_routines.c +++ b/Build/source/texk/web2c/omegafonts/char_routines.c @@ -38,6 +38,7 @@ along with Omega; if not, write to the Free Software Foundation, Inc., #include "dvi.h" #define PLANE 0x10000 +#define INDEX_MAX (PLANE-1) #define HALFPLANE 0x08000 #define MAX_START_OFM 65535 @@ -61,9 +62,9 @@ along with Omega; if not, write to the Free Software Foundation, Inc., * or when the character is referenced in a charlist cycle, an extensible * piece or in a ligature/kerning table. In the latter case, ensure_existence * is called, and it sets the defined field of the character to be FALSE; - * + * * init_character also sets current_character to the character entry; - * + * */ unsigned bc=0x7fffffff; @@ -247,7 +248,7 @@ check_existence_all_character_fields(void) char_entry *entry; unsigned *exten; unsigned j; - + FOR_ALL_EXISTING_CHARACTERS( unsigned c = plane*PLANE + index; if (entry->indices[C_WD] == NULL) { @@ -264,22 +265,33 @@ check_existence_all_character_fields(void) check_existence_and_safety(c, entry->remainder, "", "%sCharacter (H %X) NEXTLARGER than (H %X) " "has no CHARACTER spec"); + if (entry->remainder > 0xffff) { + fprintf(stderr, "Character (H %X) NEXTLARGER than (H %X) " + "exceeds ffff\n", entry->remainder, c); + exit(2); + } break; } case TAG_EXT:{ exten = entry->extens; for (j=E_MIN; j<=E_MAX; j++) { - if (exten[j]!=0) + if (exten[j]!=0) { check_existence_and_safety(c, exten[j], extensible_pieces[j], "%s piece (H %X) of character (H %X) " "has no CHARACTER spec"); + if (exten[j] > 0xfff) { + fprintf(stderr, "%s piece (H %X) of character (H %X) " + "exceeds ffff\n", extensible_pieces[j], exten[j], c); + exit(2); + } + } } break; } } ) -} +} void clear_ligature_entries(void) @@ -368,7 +380,7 @@ print_characters(boolean read_ovf) lentry = lig_kern_table + entry->remainder; if (lentry->entries[0] > STOP_FLAG) { lentry = lig_kern_table + - (256*lentry->entries[2]+lentry->entries[3]); + (256*lentry->entries[2]+lentry->entries[3]); } do { print_one_lig_kern_entry(lentry, FALSE); @@ -460,7 +472,7 @@ print_packet(unsigned char *packet_start, unsigned packet_length) arg = ovf_get_arg(&packet, cmd - DVI_SET_1 + 1, FALSE); print_set_char(arg); break; - case DVI_NOP: + case DVI_NOP: packet++; break; case DVI_PUSH: @@ -860,66 +872,88 @@ unsigned num_char_info, words_per_entry; void compute_ofm_character_info(void) { + unsigned c; unsigned plane, index; char_entry *entry; bc = 0x7fffffff; ec=0; FOR_ALL_EXISTING_CHARACTERS( - unsigned c = plane*PLANE + index; + c = plane*PLANE + index; if (c < bc) bc = c; if (c > ec) ec = c; ) if (bc > ec) bc = 1; + + /* fill gaps */ + for (plane = 0; plane < plane_max; plane++) { + if (planes[plane] == NULL) { + planes[plane] = (char_entry **)xmalloc(PLANE * sizeof(char_entry *)); + char_max[plane] = 0; + planes[plane][0] = NULL; + } + for (index = char_max[plane]+1; index <= INDEX_MAX; index++) { + planes[plane][index] = NULL; + } + char_max[plane] = INDEX_MAX; + } + switch (ofm_level) { case OFM_TFM: { - if (ec>255) + if (ec>0xff) fatal_error_1( "Char (%x) too big for TFM (max ff); use OFM file",ec); break; } case OFM_LEVEL0: { - if (ec>65535) + if (ec>0x10ffff) fatal_error_1( - "Char (%x) too big for OFM level-0 (max ffff); use level-2", + "Char (%x) too big for OFM level-0 (max 10ffff); use level-2", ec); break; } case OFM_LEVEL1: { - if (ec>65535) + if (ec>0x10ffff) fatal_error_1( - "Char (%x) too big for OFM level-1 (max ffff); use level-2", + "Char (%x) too big for OFM level-1 (max 10ffff); use level-2", ec); - /* Level 1 only uses plane 0. Take advantage of this fact. */ num_char_info = 0; - for (index = bc; index <=ec; index++) { - unsigned saved_index = index; + for (c = bc; c <= ec; c++) { + unsigned saved_c = c; char_entry *next; - entry = planes[0][index]; + plane = c / PLANE; + index = c % PLANE; + entry = planes[plane][index]; if ((entry != NULL) && (WD_ENTRY != 0)) { unsigned wd = WD_ENTRY, ht = HT_ENTRY, dp = DP_ENTRY, ic = IC_ENTRY; - index += entry->copies; - for (; index < ec; index++) { - next = planes[0][index+1]; + c += entry->copies; + for (; (c < ec) && (c-saved_c < 0xffff); c++) { + plane = (c+1) / PLANE; + index = (c+1) % PLANE; + next = planes[plane][index]; if ((WD_NEXT != wd) || (HT_NEXT != ht) || (DP_NEXT != dp) || (IC_NEXT != ic) || (RM_NEXT != entry->remainder) || (TG_NEXT != entry->tag)) break; - planes[0][index+1] = entry; + planes[plane][index] = entry; } } else { - planes[0][index] = NULL; - init_character(index, NULL); + plane = c / PLANE; + index = c % PLANE; + planes[plane][index] = NULL; + init_character(c, NULL); entry = current_character; - for (; index < ec; index++) { - next = planes[0][index+1]; + for (; (c < ec) && (c-saved_c < 0xffff); c++) { + plane = (c+1) / PLANE; + index = (c+1) % PLANE; + next = planes[plane][index]; if (WD_NEXT != 0) break; - planes[0][index+1] = entry; + planes[plane][index] = entry; } } - entry->copies = index - saved_index; + entry->copies = c - saved_c; num_char_info++; } break; @@ -937,9 +971,9 @@ output_ofm_character_info(void) switch (ofm_level) { case OFM_TFM: { plane=0; - for (index = bc; index <=ec; index++) { - entry = planes[plane][index]; - if (entry == NULL) { + for (index = bc; index <= ec; index++) { + entry = planes[plane][index]; + if (entry == NULL) { out_ofm_4(0); } else { out_ofm(WD_ENTRY); @@ -951,10 +985,13 @@ output_ofm_character_info(void) break; } case OFM_LEVEL0: { - plane=0; - for (index = bc; index <=ec; index++) { - entry = planes[plane][index]; - if (entry == NULL) { + unsigned c; + + for (c = bc; c <= ec; c++) { + plane = c / PLANE; + index = c % PLANE; + entry = planes[plane][index]; + if (entry == NULL) { out_ofm_4(0); out_ofm_4(0); } else { out_ofm_2(WD_ENTRY); @@ -969,10 +1006,13 @@ output_ofm_character_info(void) } case OFM_LEVEL1: { unsigned i; - plane=0; - for (index = bc; index <=ec; index++) { - entry = planes[plane][index]; - if (entry == NULL) { + unsigned c; + + for (c = bc; c <= ec; c++) { + plane = c / PLANE; + index = c % PLANE; + entry = planes[plane][index]; + if (entry == NULL) { for (i=0; i<words_per_entry; i++) out_ofm_4(0); } else { @@ -992,7 +1032,7 @@ output_ofm_character_info(void) /* padding */ if (0 == npc % 2) out_ofm_2(0); - index += copies; + c += copies; } } break; diff --git a/Build/source/texk/web2c/omegafonts/ligkern_routines.c b/Build/source/texk/web2c/omegafonts/ligkern_routines.c index 5302466dfde..6291b9cfb76 100644 --- a/Build/source/texk/web2c/omegafonts/ligkern_routines.c +++ b/Build/source/texk/web2c/omegafonts/ligkern_routines.c @@ -82,7 +82,7 @@ void set_stop_command(void) { if (lk_step_ended == TRUE) { - lig_kern_table[nl-1].entries[0] = + lig_kern_table[nl-1].entries[0] = lig_kern_table[nl-1].entries[0] / 256 * 256 + STOP_FLAG; } else { warning_0("STOP must follow LIG or KRN; ignored"); @@ -316,7 +316,7 @@ int l_eval(unsigned x, unsigned y) { hash_list h; - + if ((x==CHAR_ERROR) || (y==CHAR_ERROR)) return CHAR_ERROR; h = l_hash_lookup(x, y); if (h == NULL) return y; @@ -427,22 +427,38 @@ check_ligature_program(unsigned c, unsigned lab) entry = lig_kern_table+lig_ptr; if (l_hash_input(lig_ptr,c)) { if (entry->entries[2] < KERN_FLAG) { - if (entry->entries[1] != bchar) + if (entry->entries[1] != bchar) { check_existence_and_safety(c, entry->entries[1], ligature_commands[entry->entries[2]], "%s character examined by (H %X)"); + if (entry->entries[1] > 0xffff) { + fprintf(stderr, "%s character (H %X) examined by (H %X) " + "exceeds ffff\n", ligature_commands[entry->entries[2]], entry->entries[1], c); + exit(2); + } + } if (entry->entries[3] >= 128) /* Needs fixing */ if ((c < 128) || (c == -1)) if ((entry->entries[1] < 128) || - (entry->entries[1] == bchar)) + (entry->entries[1] == bchar)) seven_bit_calculated = 0; check_existence_and_safety(c, entry->entries[3], ligature_commands[entry->entries[2]], "%s character generated by (H %X)"); + if (entry->entries[3] >0xffff) { + fprintf(stderr, "%s character (H %X) generated by (H %X) " + "exceeds ffff\n", ligature_commands[entry->entries[2]], entry->entries[3], c); + exit(2); + } } else { check_existence_and_safety(c, entry->entries[1], "KRN", "%s character examined by (H %X)"); + if (entry->entries[1] > 0xffff) { + fprintf(stderr, "KRN character (H %X) examined by (H %X) " + "exceeds ffff\n", entry->entries[1], c); + exit(2); + } } } if (entry->entries[0] >= STOP_FLAG) lig_ptr = nl; diff --git a/Build/source/texk/web2c/omegafonts/ofonts.test b/Build/source/texk/web2c/omegafonts/ofonts.test new file mode 100755 index 00000000000..16a5bee25b5 --- /dev/null +++ b/Build/source/texk/web2c/omegafonts/ofonts.test @@ -0,0 +1,56 @@ +#! /bin/sh + +# Copyright (C) 2009-2014 Peter Breitenlohner <tex-live@tug.org> +# You may freely use, modify and/or distribute this file. + +test -d tests || mkdir -p tests + +VPL='ofontr1 ofontv4' +OVP='ofontr2 ofontr3 ofontv5 ofontv6' + +TEXMFCNF=$srcdir/../../kpathsea +OFMFONTS=.:$srcdir/tests +export TEXMFCNF OFMFONTS + +exit 77 +set -x + +for f in $VPL; do + ./omfonts -opl2ofm $srcdir/tests/$f.pl tests/x$f.tfm || exit 1 + ./omfonts -ofm2opl tests/x$f.tfm tests/x$f.pl || exit 1 + diff $srcdir/tests/$f.pl tests/x$f.pl || exit 1 +done + +for f in $OVP; do + ./omfonts -opl2ofm $srcdir/tests/$f tests/x$f || exit 1 + ./omfonts -ofm2opl tests/x$f tests/x$f || exit 1 + diff $srcdir/tests/$f.opl tests/x$f.opl || exit 1 +done + +rm -rf tests/xofont* + +for f in ofontr0; do + ./omfonts -opl2ofm $srcdir/tests/$f.pl tests/x$f.tfm || exit 1 + ./omfonts -ofm2opl tests/x$f.tfm tests/x$f.pl || exit 1 + diff $srcdir/tests/$f.pl tests/x$f.pl || exit 1 +done + +for f in $VPL; do + ./omfonts -ovp2ovf $srcdir/tests/$f.vpl tests/x$f.vf tests/x$f.tfm || exit 1 + ./omfonts -ofm2opl tests/x$f.tfm tests/x$f.pl || exit 1 + diff $srcdir/tests/$f.pl tests/x$f.pl || exit 1 + ./omfonts -ovf2ovp tests/x$f.vf tests/x$f.tfm tests/x$f.vpl || exit 1 + diff $srcdir/tests/$f.vpl tests/x$f.vpl || exit 1 +done + +for f in $OVP; do + ./omfonts -ovp2ovf $srcdir/tests/$f tests/x$f tests/x$f || exit 1 + ./omfonts -ofm2opl tests/x$f tests/x$f || exit 1 + diff $srcdir/tests/$f.opl tests/x$f.opl || exit 1 + ./omfonts -ovf2ovp tests/x$f tests/x$f tests/x$f || exit 1 + diff $srcdir/tests/$f.ovp tests/x$f.ovp || exit 1 +done + +exit 0 + + diff --git a/Build/source/texk/web2c/omegafonts/overbmp.test b/Build/source/texk/web2c/omegafonts/overbmp.test new file mode 100755 index 00000000000..fc3771c73c2 --- /dev/null +++ b/Build/source/texk/web2c/omegafonts/overbmp.test @@ -0,0 +1,53 @@ +#! /bin/sh + +# Copyright (C) 2013, 2014 Peter Breitenlohner <tex-live@tug.org> +# You may freely use, modify and/or distribute this file. + +test -d tests || mkdir -p tests + +TEXMFCNF=$srcdir/../../kpathsea +OFMFONTS=./tests +export TEXMFCNF OFMFONTS + +exit 77 +set -x + +./omfonts -opl2ofm $srcdir/tests/inbmp tests/xinbmp || exit 1 + +./omfonts -ofm2opl xinbmp tests/xinbmp || exit 1 + +diff $srcdir/tests/inbmp.opl tests/xinbmp.opl || exit 1 + +./omfonts -ovp2ovf $srcdir/tests/overbmp.ovp tests/xoverbmp || exit 1 + +./omfonts -ofm2opl xoverbmp tests/xoverbmp || exit 1 + +diff $srcdir/tests/overbmp.opl tests/xoverbmp.opl || exit 1 + +./omfonts -ovf2ovp tests/xoverbmp xoverbmp tests/xoverbmp.ovp || exit 1 + +diff $srcdir/tests/overbmp.ovp tests/xoverbmp.ovp || exit 1 + +sed -e '/OFMLEVEL/s/H 0/H 1/' tests/xinbmp.opl >tests/xinbmp1.opl + +./omfonts -opl2ofm tests/xinbmp1 tests/xinbmp1 || exit 1 + +./omfonts -ofm2opl xinbmp1 tests/xinbmp2 || exit 1 + +diff tests/xinbmp1.opl tests/xinbmp1.opl || exit 1 + +sed -e '/OFMLEVEL/s/H 1/H 0/' -e 's/xinbmp)/xinbmp1)/;s/xoverbmp)/xoverbmp1)/' \ + tests/xoverbmp.ovp >tests/xoverbmp1.ovp + +./omfonts -ovp2ovf tests/xoverbmp1.ovp tests/xoverbmp1 || exit 1 + +sed -e '/OFMLEVEL/s/H 1/H 0/' tests/xoverbmp.opl >tests/xoverbmp1.opl + +./omfonts -ofm2opl xoverbmp1 tests/xoverbmp2 || exit 1 + +diff tests/xoverbmp1.opl tests/xoverbmp2.opl || exit 1 + +./omfonts -ovf2ovp tests/xoverbmp1 xoverbmp1 tests/xoverbmp2 || exit 1 + +diff tests/xoverbmp1.ovp tests/xoverbmp2.ovp || exit 1 + diff --git a/Build/source/texk/web2c/omegafonts/parse_ofm.c b/Build/source/texk/web2c/omegafonts/parse_ofm.c index fc22024233b..823d68209a2 100644 --- a/Build/source/texk/web2c/omegafonts/parse_ofm.c +++ b/Build/source/texk/web2c/omegafonts/parse_ofm.c @@ -183,7 +183,7 @@ ofm_organize(void) eval_four_bytes(&ne); eval_four_bytes(&np); eval_four_bytes(&font_dir); - top_char = 65535; + top_char = 0x10ffff; top_width = 65535; top_height = 255; top_depth = 255; diff --git a/Build/source/texk/web2c/omegafonts/tests/inbmp.opl b/Build/source/texk/web2c/omegafonts/tests/inbmp.opl new file mode 100644 index 00000000000..aef0f847fbf --- /dev/null +++ b/Build/source/texk/web2c/omegafonts/tests/inbmp.opl @@ -0,0 +1,18 @@ +(OFMLEVEL D 0) +(FONTDIR TL) +(FAMILY UNSPECIFIED) +(FACE F MRR) +(CODINGSCHEME UNSPECIFIED) +(DESIGNSIZE R 10.0) +(COMMENT DESIGNSIZE IS IN POINTS) +(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) +(CHECKSUM H AA6297E0) +(SEVENBITSAFEFLAG FALSE) +(FONTDIMEN + ) +(CHARACTER H 4E00 + (CHARWD R 1.0) + ) +(CHARACTER H 53F1 + (CHARWD R 1.0) + ) diff --git a/Build/source/texk/web2c/omegafonts/tests/level1.opl b/Build/source/texk/web2c/omegafonts/tests/level1.opl index 2a700e7ada0..048e6b14f0e 100644 --- a/Build/source/texk/web2c/omegafonts/tests/level1.opl +++ b/Build/source/texk/web2c/omegafonts/tests/level1.opl @@ -37,3 +37,8 @@ (CHARHT R 0.9) (CHARDP R 0.1) ) +(CHARREPEAT H 20001 H FFFE + (CHARWD R 1.0) + (CHARHT R 0.9) + (CHARDP R 0.1) + ) diff --git a/Build/source/texk/web2c/omegafonts/tests/ofontr0.pl b/Build/source/texk/web2c/omegafonts/tests/ofontr0.pl new file mode 100644 index 00000000000..0cf4c883ccb --- /dev/null +++ b/Build/source/texk/web2c/omegafonts/tests/ofontr0.pl @@ -0,0 +1,47 @@ +(FAMILY UNSPECIFIED) +(FACE F MRR) +(CODINGSCHEME UNSPECIFIED) +(DESIGNSIZE R 10.0) +(COMMENT DESIGNSIZE IS IN POINTS) +(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) +(CHECKSUM H BB0E7BF) +(SEVENBITSAFEFLAG TRUE) +(FONTDIMEN + (SLANT R 0.0) + (SPACE R 0.25) + (STRETCH R 0.2) + (SHRINK R 0.1) + (XHEIGHT R 0.45) + (QUAD R 1.0) + (EXTRASPACE R 0.111) + ) +(CHARACTER H 41 + (CHARWD R 0.8) + (CHARHT R 1.1) + (CHARDP R 0.1) + ) +(CHARACTER H 42 + (CHARWD R 0.9) + (CHARHT R 0.9) + (CHARIC R 0.2) + ) +(CHARACTER H 43 + (CHARWD R 0.8) + (CHARHT R 1.2) + (CHARDP R 0.2) + ) +(CHARACTER H 44 + (CHARWD R 0.7) + (CHARHT R 0.9) + (CHARIC R 0.2) + ) +(CHARACTER H 45 + (CHARWD R 0.6) + (CHARHT R 1.1) + (CHARDP R 0.1) + ) +(CHARACTER H 46 + (CHARWD R 0.7) + (CHARHT R 0.9) + (CHARIC R 0.1) + ) diff --git a/Build/source/texk/web2c/omegafonts/tests/ofontr1.pl b/Build/source/texk/web2c/omegafonts/tests/ofontr1.pl new file mode 100644 index 00000000000..fb77c215a38 --- /dev/null +++ b/Build/source/texk/web2c/omegafonts/tests/ofontr1.pl @@ -0,0 +1,27 @@ +(FAMILY UNSPECIFIED) +(FACE F MRR) +(CODINGSCHEME UNSPECIFIED) +(DESIGNSIZE R 10.0) +(COMMENT DESIGNSIZE IS IN POINTS) +(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) +(CHECKSUM H 9748D64) +(SEVENBITSAFEFLAG TRUE) +(FONTDIMEN + (SLANT R 0.0) + (SPACE R 0.25) + (STRETCH R 0.2) + (SHRINK R 0.1) + (XHEIGHT R 0.45) + (QUAD R 1.0) + (EXTRASPACE R 0.111) + ) +(CHARACTER H 7F + (CHARWD R 0.8) + (CHARHT R 1.1) + (CHARDP R 0.1) + ) +(CHARACTER H 80 + (CHARWD R 0.9) + (CHARHT R 0.9) + (CHARIC R 0.2) + ) diff --git a/Build/source/texk/web2c/omegafonts/tests/ofontr1.vpl b/Build/source/texk/web2c/omegafonts/tests/ofontr1.vpl new file mode 100644 index 00000000000..9e043344a21 --- /dev/null +++ b/Build/source/texk/web2c/omegafonts/tests/ofontr1.vpl @@ -0,0 +1,40 @@ +(VTITLE Mapping ofontr1 to ofontr0) +(FAMILY UNSPECIFIED) +(FACE F MRR) +(CODINGSCHEME UNSPECIFIED) +(DESIGNSIZE R 10.0) +(COMMENT DESIGNSIZE IS IN POINTS) +(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) +(CHECKSUM H 9748D64) +(SEVENBITSAFEFLAG TRUE) +(FONTDIMEN + (SLANT R 0.0) + (SPACE R 0.25) + (STRETCH R 0.2) + (SHRINK R 0.1) + (XHEIGHT R 0.45) + (QUAD R 1.0) + (EXTRASPACE R 0.111) + ) +(MAPFONT D 0 + (FONTNAME ofontr0) + (FONTCHECKSUM H BB0E7BF) + (FONTAT R 1.0) + (FONTDSIZE R 10.0) + ) +(CHARACTER H 7F + (CHARWD R 0.8) + (CHARHT R 1.1) + (CHARDP R 0.1) + (MAP + (SETCHAR H 41) + ) + ) +(CHARACTER H 80 + (CHARWD R 0.9) + (CHARHT R 0.9) + (CHARIC R 0.2) + (MAP + (SETCHAR H 42) + ) + ) diff --git a/Build/source/texk/web2c/omegafonts/tests/ofontr2.opl b/Build/source/texk/web2c/omegafonts/tests/ofontr2.opl new file mode 100644 index 00000000000..1e0b5b44b4e --- /dev/null +++ b/Build/source/texk/web2c/omegafonts/tests/ofontr2.opl @@ -0,0 +1,29 @@ +(OFMLEVEL D 0) +(FONTDIR TL) +(FAMILY UNSPECIFIED) +(FACE F MRR) +(CODINGSCHEME UNSPECIFIED) +(DESIGNSIZE R 10.0) +(COMMENT DESIGNSIZE IS IN POINTS) +(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) +(CHECKSUM H 6415BA2B) +(SEVENBITSAFEFLAG FALSE) +(FONTDIMEN + (SLANT R 0.0) + (SPACE R 0.25) + (STRETCH R 0.2) + (SHRINK R 0.1) + (XHEIGHT R 0.45) + (QUAD R 1.0) + (EXTRASPACE R 0.111) + ) +(CHARACTER H 17F + (CHARWD R 0.8) + (CHARHT R 1.2) + (CHARDP R 0.2) + ) +(CHARACTER H 180 + (CHARWD R 0.7) + (CHARHT R 0.9) + (CHARIC R 0.2) + ) diff --git a/Build/source/texk/web2c/omegafonts/tests/ofontr2.ovp b/Build/source/texk/web2c/omegafonts/tests/ofontr2.ovp new file mode 100644 index 00000000000..2b953d253e3 --- /dev/null +++ b/Build/source/texk/web2c/omegafonts/tests/ofontr2.ovp @@ -0,0 +1,42 @@ +(VTITLE Mapping ofontr2 to ofontr0) +(OFMLEVEL D 0) +(FONTDIR TL) +(FAMILY UNSPECIFIED) +(FACE F MRR) +(CODINGSCHEME UNSPECIFIED) +(DESIGNSIZE R 10.0) +(COMMENT DESIGNSIZE IS IN POINTS) +(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) +(CHECKSUM H 6415BA2B) +(SEVENBITSAFEFLAG FALSE) +(FONTDIMEN + (SLANT R 0.0) + (SPACE R 0.25) + (STRETCH R 0.2) + (SHRINK R 0.1) + (XHEIGHT R 0.45) + (QUAD R 1.0) + (EXTRASPACE R 0.111) + ) +(MAPFONT D 0 + (FONTNAME ofontr0) + (FONTCHECKSUM H BB0E7BF) + (FONTAT R 1.0) + (FONTDSIZE R 10.0) + ) +(CHARACTER H 17F + (CHARWD R 0.8) + (CHARHT R 1.2) + (CHARDP R 0.2) + (MAP + (SETCHAR H 43) + ) + ) +(CHARACTER H 180 + (CHARWD R 0.7) + (CHARHT R 0.9) + (CHARIC R 0.2) + (MAP + (SETCHAR H 44) + ) + ) diff --git a/Build/source/texk/web2c/omegafonts/tests/ofontr3.opl b/Build/source/texk/web2c/omegafonts/tests/ofontr3.opl new file mode 100644 index 00000000000..5a005f10f05 --- /dev/null +++ b/Build/source/texk/web2c/omegafonts/tests/ofontr3.opl @@ -0,0 +1,29 @@ +(OFMLEVEL D 1) +(FONTDIR TL) +(FAMILY UNSPECIFIED) +(FACE F MRR) +(CODINGSCHEME UNSPECIFIED) +(DESIGNSIZE R 10.0) +(COMMENT DESIGNSIZE IS IN POINTS) +(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) +(CHECKSUM H 9141B113) +(SEVENBITSAFEFLAG FALSE) +(FONTDIMEN + (SLANT R 0.0) + (SPACE R 0.25) + (STRETCH R 0.2) + (SHRINK R 0.1) + (XHEIGHT R 0.45) + (QUAD R 1.0) + (EXTRASPACE R 0.111) + ) +(CHARACTER H 27F + (CHARWD R 0.6) + (CHARHT R 1.1) + (CHARDP R 0.1) + ) +(CHARACTER H 280 + (CHARWD R 0.7) + (CHARHT R 0.9) + (CHARIC R 0.1) + ) diff --git a/Build/source/texk/web2c/omegafonts/tests/ofontr3.ovp b/Build/source/texk/web2c/omegafonts/tests/ofontr3.ovp new file mode 100644 index 00000000000..608376df9ab --- /dev/null +++ b/Build/source/texk/web2c/omegafonts/tests/ofontr3.ovp @@ -0,0 +1,42 @@ +(VTITLE Mapping ofontr3 to ofontr0) +(OFMLEVEL D 1) +(FONTDIR TL) +(FAMILY UNSPECIFIED) +(FACE F MRR) +(CODINGSCHEME UNSPECIFIED) +(DESIGNSIZE R 10.0) +(COMMENT DESIGNSIZE IS IN POINTS) +(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) +(CHECKSUM H 9141B113) +(SEVENBITSAFEFLAG FALSE) +(FONTDIMEN + (SLANT R 0.0) + (SPACE R 0.25) + (STRETCH R 0.2) + (SHRINK R 0.1) + (XHEIGHT R 0.45) + (QUAD R 1.0) + (EXTRASPACE R 0.111) + ) +(MAPFONT D 0 + (FONTNAME ofontr0) + (FONTCHECKSUM H BB0E7BF) + (FONTAT R 1.0) + (FONTDSIZE R 10.0) + ) +(CHARACTER H 27F + (CHARWD R 0.6) + (CHARHT R 1.1) + (CHARDP R 0.1) + (MAP + (SETCHAR H 45) + ) + ) +(CHARACTER H 280 + (CHARWD R 0.7) + (CHARHT R 0.9) + (CHARIC R 0.1) + (MAP + (SETCHAR H 46) + ) + ) diff --git a/Build/source/texk/web2c/omegafonts/tests/ofontv4.pl b/Build/source/texk/web2c/omegafonts/tests/ofontv4.pl new file mode 100644 index 00000000000..c3f18f3e40d --- /dev/null +++ b/Build/source/texk/web2c/omegafonts/tests/ofontv4.pl @@ -0,0 +1,47 @@ +(FAMILY UNSPECIFIED) +(FACE F MRR) +(CODINGSCHEME UNSPECIFIED) +(DESIGNSIZE R 10.0) +(COMMENT DESIGNSIZE IS IN POINTS) +(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) +(CHECKSUM H C1668DBB) +(SEVENBITSAFEFLAG TRUE) +(FONTDIMEN + (SLANT R 0.0) + (SPACE R 0.25) + (STRETCH R 0.2) + (SHRINK R 0.1) + (XHEIGHT R 0.45) + (QUAD R 1.0) + (EXTRASPACE R 0.111) + ) +(CHARACTER H 7C + (CHARWD R 0.8) + (CHARHT R 1.1) + (CHARDP R 0.1) + ) +(CHARACTER H 7D + (CHARWD R 0.8) + (CHARHT R 1.2) + (CHARDP R 0.2) + ) +(CHARACTER H 7E + (CHARWD R 0.6) + (CHARHT R 1.1) + (CHARDP R 0.1) + ) +(CHARACTER H 81 + (CHARWD R 0.9) + (CHARHT R 0.9) + (CHARIC R 0.2) + ) +(CHARACTER H 82 + (CHARWD R 0.7) + (CHARHT R 0.9) + (CHARIC R 0.2) + ) +(CHARACTER H 83 + (CHARWD R 0.7) + (CHARHT R 0.9) + (CHARIC R 0.1) + ) diff --git a/Build/source/texk/web2c/omegafonts/tests/ofontv4.vpl b/Build/source/texk/web2c/omegafonts/tests/ofontv4.vpl new file mode 100644 index 00000000000..c77d8be3d94 --- /dev/null +++ b/Build/source/texk/web2c/omegafonts/tests/ofontv4.vpl @@ -0,0 +1,88 @@ +(VTITLE Mapping ofontv4 to ofontr1+ofontr2+ofontr3) +(FAMILY UNSPECIFIED) +(FACE F MRR) +(CODINGSCHEME UNSPECIFIED) +(DESIGNSIZE R 10.0) +(COMMENT DESIGNSIZE IS IN POINTS) +(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) +(CHECKSUM H C1668DBB) +(SEVENBITSAFEFLAG TRUE) +(FONTDIMEN + (SLANT R 0.0) + (SPACE R 0.25) + (STRETCH R 0.2) + (SHRINK R 0.1) + (XHEIGHT R 0.45) + (QUAD R 1.0) + (EXTRASPACE R 0.111) + ) +(MAPFONT D 0 + (FONTNAME ofontr1) + (FONTCHECKSUM H 9748D64) + (FONTAT R 1.0) + (FONTDSIZE R 10.0) + ) +(MAPFONT D 1 + (FONTNAME ofontr2) + (FONTCHECKSUM H 6415BA2B) + (FONTAT R 1.0) + (FONTDSIZE R 10.0) + ) +(MAPFONT D 2 + (FONTNAME ofontr3) + (FONTCHECKSUM H 9141B113) + (FONTAT R 1.0) + (FONTDSIZE R 10.0) + ) +(CHARACTER H 7C + (CHARWD R 0.8) + (CHARHT R 1.1) + (CHARDP R 0.1) + (MAP + (SETCHAR H 7F) + ) + ) +(CHARACTER H 7D + (CHARWD R 0.8) + (CHARHT R 1.2) + (CHARDP R 0.2) + (MAP + (SELECTFONT D 1) + (SETCHAR H 17F) + ) + ) +(CHARACTER H 7E + (CHARWD R 0.6) + (CHARHT R 1.1) + (CHARDP R 0.1) + (MAP + (SELECTFONT D 2) + (SETCHAR H 27F) + ) + ) +(CHARACTER H 81 + (CHARWD R 0.9) + (CHARHT R 0.9) + (CHARIC R 0.2) + (MAP + (SETCHAR H 80) + ) + ) +(CHARACTER H 82 + (CHARWD R 0.7) + (CHARHT R 0.9) + (CHARIC R 0.2) + (MAP + (SELECTFONT D 1) + (SETCHAR H 180) + ) + ) +(CHARACTER H 83 + (CHARWD R 0.7) + (CHARHT R 0.9) + (CHARIC R 0.1) + (MAP + (SELECTFONT D 2) + (SETCHAR H 280) + ) + ) diff --git a/Build/source/texk/web2c/omegafonts/tests/ofontv5.opl b/Build/source/texk/web2c/omegafonts/tests/ofontv5.opl new file mode 100644 index 00000000000..19aac187c26 --- /dev/null +++ b/Build/source/texk/web2c/omegafonts/tests/ofontv5.opl @@ -0,0 +1,49 @@ +(OFMLEVEL D 0) +(FONTDIR TL) +(FAMILY UNSPECIFIED) +(FACE F MRR) +(CODINGSCHEME UNSPECIFIED) +(DESIGNSIZE R 10.0) +(COMMENT DESIGNSIZE IS IN POINTS) +(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) +(CHECKSUM H 4A681BA5) +(SEVENBITSAFEFLAG FALSE) +(FONTDIMEN + (SLANT R 0.0) + (SPACE R 0.25) + (STRETCH R 0.2) + (SHRINK R 0.1) + (XHEIGHT R 0.45) + (QUAD R 1.0) + (EXTRASPACE R 0.111) + ) +(CHARACTER H 17C + (CHARWD R 0.8) + (CHARHT R 1.2) + (CHARDP R 0.2) + ) +(CHARACTER H 17D + (CHARWD R 0.6) + (CHARHT R 1.1) + (CHARDP R 0.1) + ) +(CHARACTER H 17E + (CHARWD R 0.8) + (CHARHT R 1.1) + (CHARDP R 0.1) + ) +(CHARACTER H 181 + (CHARWD R 0.7) + (CHARHT R 0.9) + (CHARIC R 0.2) + ) +(CHARACTER H 182 + (CHARWD R 0.7) + (CHARHT R 0.9) + (CHARIC R 0.1) + ) +(CHARACTER H 183 + (CHARWD R 0.9) + (CHARHT R 0.9) + (CHARIC R 0.2) + ) diff --git a/Build/source/texk/web2c/omegafonts/tests/ofontv5.ovp b/Build/source/texk/web2c/omegafonts/tests/ofontv5.ovp new file mode 100644 index 00000000000..f01e8b7797a --- /dev/null +++ b/Build/source/texk/web2c/omegafonts/tests/ofontv5.ovp @@ -0,0 +1,90 @@ +(VTITLE Mapping ofontv5 to ofontr2+ofontr3+ofontr1) +(OFMLEVEL D 0) +(FONTDIR TL) +(FAMILY UNSPECIFIED) +(FACE F MRR) +(CODINGSCHEME UNSPECIFIED) +(DESIGNSIZE R 10.0) +(COMMENT DESIGNSIZE IS IN POINTS) +(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) +(CHECKSUM H 4A681BA5) +(SEVENBITSAFEFLAG FALSE) +(FONTDIMEN + (SLANT R 0.0) + (SPACE R 0.25) + (STRETCH R 0.2) + (SHRINK R 0.1) + (XHEIGHT R 0.45) + (QUAD R 1.0) + (EXTRASPACE R 0.111) + ) +(MAPFONT D 0 + (FONTNAME ofontr2) + (FONTCHECKSUM H 6415BA2B) + (FONTAT R 1.0) + (FONTDSIZE R 10.0) + ) +(MAPFONT D 1 + (FONTNAME ofontr3) + (FONTCHECKSUM H 9141B113) + (FONTAT R 1.0) + (FONTDSIZE R 10.0) + ) +(MAPFONT D 2 + (FONTNAME ofontr1) + (FONTCHECKSUM H 9748D64) + (FONTAT R 1.0) + (FONTDSIZE R 10.0) + ) +(CHARACTER H 17C + (CHARWD R 0.8) + (CHARHT R 1.2) + (CHARDP R 0.2) + (MAP + (SETCHAR H 17F) + ) + ) +(CHARACTER H 17D + (CHARWD R 0.6) + (CHARHT R 1.1) + (CHARDP R 0.1) + (MAP + (SELECTFONT D 1) + (SETCHAR H 27F) + ) + ) +(CHARACTER H 17E + (CHARWD R 0.8) + (CHARHT R 1.1) + (CHARDP R 0.1) + (MAP + (SELECTFONT D 2) + (SETCHAR H 7F) + ) + ) +(CHARACTER H 181 + (CHARWD R 0.7) + (CHARHT R 0.9) + (CHARIC R 0.2) + (MAP + (SETCHAR H 180) + ) + ) +(CHARACTER H 182 + (CHARWD R 0.7) + (CHARHT R 0.9) + (CHARIC R 0.1) + (MAP + (SELECTFONT D 1) + (SETCHAR H 280) + ) + ) +(CHARACTER H 183 + (CHARWD R 0.9) + (CHARHT R 0.9) + (CHARIC R 0.2) + (MAP + (SELECTFONT D 2) + (SETCHAR H 80) + ) + ) diff --git a/Build/source/texk/web2c/omegafonts/tests/ofontv6.opl b/Build/source/texk/web2c/omegafonts/tests/ofontv6.opl new file mode 100644 index 00000000000..8a7b6b7027b --- /dev/null +++ b/Build/source/texk/web2c/omegafonts/tests/ofontv6.opl @@ -0,0 +1,49 @@ +(OFMLEVEL D 1) +(FONTDIR TL) +(FAMILY UNSPECIFIED) +(FACE F MRR) +(CODINGSCHEME UNSPECIFIED) +(DESIGNSIZE R 10.0) +(COMMENT DESIGNSIZE IS IN POINTS) +(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) +(CHECKSUM H 2DCEE34A) +(SEVENBITSAFEFLAG FALSE) +(FONTDIMEN + (SLANT R 0.0) + (SPACE R 0.25) + (STRETCH R 0.2) + (SHRINK R 0.1) + (XHEIGHT R 0.45) + (QUAD R 1.0) + (EXTRASPACE R 0.111) + ) +(CHARACTER H 27C + (CHARWD R 0.6) + (CHARHT R 1.1) + (CHARDP R 0.1) + ) +(CHARACTER H 27D + (CHARWD R 0.8) + (CHARHT R 1.1) + (CHARDP R 0.1) + ) +(CHARACTER H 27E + (CHARWD R 0.8) + (CHARHT R 1.2) + (CHARDP R 0.2) + ) +(CHARACTER H 281 + (CHARWD R 0.7) + (CHARHT R 0.9) + (CHARIC R 0.1) + ) +(CHARACTER H 282 + (CHARWD R 0.9) + (CHARHT R 0.9) + (CHARIC R 0.2) + ) +(CHARACTER H 283 + (CHARWD R 0.7) + (CHARHT R 0.9) + (CHARIC R 0.2) + ) diff --git a/Build/source/texk/web2c/omegafonts/tests/ofontv6.ovp b/Build/source/texk/web2c/omegafonts/tests/ofontv6.ovp new file mode 100644 index 00000000000..babf355c922 --- /dev/null +++ b/Build/source/texk/web2c/omegafonts/tests/ofontv6.ovp @@ -0,0 +1,90 @@ +(VTITLE Mapping ofontv6 to ofontr3+ofontr1+ofontr2) +(OFMLEVEL D 1) +(FONTDIR TL) +(FAMILY UNSPECIFIED) +(FACE F MRR) +(CODINGSCHEME UNSPECIFIED) +(DESIGNSIZE R 10.0) +(COMMENT DESIGNSIZE IS IN POINTS) +(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) +(CHECKSUM H 2DCEE34A) +(SEVENBITSAFEFLAG FALSE) +(FONTDIMEN + (SLANT R 0.0) + (SPACE R 0.25) + (STRETCH R 0.2) + (SHRINK R 0.1) + (XHEIGHT R 0.45) + (QUAD R 1.0) + (EXTRASPACE R 0.111) + ) +(MAPFONT D 0 + (FONTNAME ofontr3) + (FONTCHECKSUM H 9141B113) + (FONTAT R 1.0) + (FONTDSIZE R 10.0) + ) +(MAPFONT D 1 + (FONTNAME ofontr1) + (FONTCHECKSUM H 9748D64) + (FONTAT R 1.0) + (FONTDSIZE R 10.0) + ) +(MAPFONT D 2 + (FONTNAME ofontr2) + (FONTCHECKSUM H 6415BA2B) + (FONTAT R 1.0) + (FONTDSIZE R 10.0) + ) +(CHARACTER H 27C + (CHARWD R 0.6) + (CHARHT R 1.1) + (CHARDP R 0.1) + (MAP + (SETCHAR H 27F) + ) + ) +(CHARACTER H 27D + (CHARWD R 0.8) + (CHARHT R 1.1) + (CHARDP R 0.1) + (MAP + (SELECTFONT D 1) + (SETCHAR H 7F) + ) + ) +(CHARACTER H 27E + (CHARWD R 0.8) + (CHARHT R 1.2) + (CHARDP R 0.2) + (MAP + (SELECTFONT D 2) + (SETCHAR H 17F) + ) + ) +(CHARACTER H 281 + (CHARWD R 0.7) + (CHARHT R 0.9) + (CHARIC R 0.1) + (MAP + (SETCHAR H 280) + ) + ) +(CHARACTER H 282 + (CHARWD R 0.9) + (CHARHT R 0.9) + (CHARIC R 0.2) + (MAP + (SELECTFONT D 1) + (SETCHAR H 80) + ) + ) +(CHARACTER H 283 + (CHARWD R 0.7) + (CHARHT R 0.9) + (CHARIC R 0.2) + (MAP + (SELECTFONT D 2) + (SETCHAR H 180) + ) + ) diff --git a/Build/source/texk/web2c/omegafonts/tests/overbmp.opl b/Build/source/texk/web2c/omegafonts/tests/overbmp.opl new file mode 100644 index 00000000000..7cc4615c3ff --- /dev/null +++ b/Build/source/texk/web2c/omegafonts/tests/overbmp.opl @@ -0,0 +1,22 @@ +(OFMLEVEL D 1) +(FONTDIR TL) +(FAMILY UNSPECIFIED) +(FACE F MRR) +(CODINGSCHEME UNSPECIFIED) +(DESIGNSIZE R 10.0) +(COMMENT DESIGNSIZE IS IN POINTS) +(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) +(CHECKSUM H DD8C3992) +(SEVENBITSAFEFLAG FALSE) +(CHARACTER H 4E00 + (CHARWD R 1.0) + ) +(CHARACTER H 53F1 + (CHARWD R 1.0) + ) +(CHARACTER H 20B9F + (CHARWD R 1.0) + ) +(CHARACTER H 20BB7 + (CHARWD R 1.0) + ) diff --git a/Build/source/texk/web2c/omegafonts/tests/overbmp.ovp b/Build/source/texk/web2c/omegafonts/tests/overbmp.ovp new file mode 100644 index 00000000000..06886a456a9 --- /dev/null +++ b/Build/source/texk/web2c/omegafonts/tests/overbmp.ovp @@ -0,0 +1,49 @@ +(VTITLE JVF with characters above the Basic Multilingual Plane) +(OFMLEVEL D 1) +(FONTDIR TL) +(FAMILY UNSPECIFIED) +(FACE F MRR) +(CODINGSCHEME UNSPECIFIED) +(DESIGNSIZE R 10.0) +(COMMENT DESIGNSIZE IS IN POINTS) +(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) +(CHECKSUM H DD8C3992) +(SEVENBITSAFEFLAG FALSE) +(MAPFONT D 0 + (FONTNAME xinbmp) + (FONTCHECKSUM H AA6297E0) + (FONTAT R 1.0) + (FONTDSIZE R 10.0) + ) +(MAPFONT D 1 + (FONTNAME xoverbmp) + (FONTCHECKSUM H DD8C3992) + (FONTAT R 1.0) + (FONTDSIZE R 10.0) + ) +(CHARACTER H 4E00 + (CHARWD R 1.0) + (MAP + (SETCHAR H 4E00) + ) + ) +(CHARACTER H 53F1 + (CHARWD R 1.0) + (MAP + (SELECTFONT D 1) + (SETCHAR H 20B9F) + ) + ) +(CHARACTER H 20B9F + (CHARWD R 1.0) + (MAP + (SELECTFONT D 1) + (SETCHAR H 20BB7) + ) + ) +(CHARACTER H 20BB7 + (CHARWD R 1.0) + (MAP + (SETCHAR H 53F1) + ) + ) diff --git a/Build/source/texk/web2c/omegafonts/tests/repeat.opl b/Build/source/texk/web2c/omegafonts/tests/repeat.opl index 8cf09282d2f..09099826e4b 100644 --- a/Build/source/texk/web2c/omegafonts/tests/repeat.opl +++ b/Build/source/texk/web2c/omegafonts/tests/repeat.opl @@ -1,4 +1,4 @@ -(OFMLEVEL H 1) +(OFMLEVEL D 1) (FONTDIR TL) (FAMILY UNSPECIFIED) (FACE F MRR) |