2021-03-23  Karl Berry  <karl@tug.org>

	* TL'21.

2021-01-30  Karl Berry  <karl@freefriends.org>

	* odvicopy.web,
	* odvitype.web,
	* ofm2opl.web,
	* opl2ofm.web,
	* ovf2ovp.web,
	* ovp2ovf.web: \titlefalse rather than the obsolete \titlepage{F}.
	Found by Andreas Scherer.

2018-09-09  Karl Berry  <karl@tug.org>

	* ligkern.test,
	* odvicopy.test,
	* overbmp.test: LC_ALL=LANGUAGE=C.

2018-07-22  Hironobu Yamashita  <h.y.acetaminophen@gmail.com>

	* odvicopy.web: Sync with dvicopy.web change 2018-07-17 (typos).

2018-01-19  Hironobu Yamashita  <h.y.acetaminophen@gmail.com>

	* ovp2ovf.web, ovp2ovf.ch: Throw an error and exit if OFMLEVEL
	undefined and char>0xff is used. This behavior is compatible
	with ovp2ovf C version.

2015-08-10  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* opl2ofm.ch, ovp2ovf.ch: Send also real numbers to stderr,
	completing the change from 2015-01-11.

2015-07-08  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* am/omegaware.am: Fix dependencies for 'make check'.

2015-06-22  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* am/omegaware.am: Use $(tie_m).

2015-01-18  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* odvicopy.ch: Drop intcast().
	* odvitype.ch: Drop intcast().
	* ofm2opl.ch: Drop intcast().
	* opl2ofm.ch: Drop intcast().
	* ovf2ovp.ch: Drop intcast().
	* ovp2ovf.ch: Drop intcast().

2015-01-16  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* odvicopy.web: Avoid useless differences with ../dvicopy.web.
	* odvicopy.ch: Bug fix: Respect -page-start and -max-pages.
	* odvicopy.test: Additional test cases.
	* am/omegaware.am (DISTCLEANFILES): Additional output files.

2015-01-15  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* odvitype.web: Avoid useless differences with ../dvitype.web.
	* odvitype.ch: Allow output level 0 and use intcast() as
	in ../dvitype.ch.

2015-01-12  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ofm2opl.ch, ovf2ovp.ch: Use ^byte and x*alloc_array().

2015-01-11  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ovf2ovp.ch: Send diagnostic messages to stderr.
	* ofm2opl.ch, opl2ofm.ch, ovp2ovf.ch:
	Send diagnostic messages to stderr.
	Non-zero return code in case of problems.
	* check.test: Also test writung OPL file to stdout.
	* selectfont.test: Also test writung OVP file to stdout.
	* bad.test, version.test: Shell scripts for new tests.
	* tests/badofm.ofm, tests/badopl.opl, tests/badovf.{ofm,ovf},
	tests/badovp.ovp: New test input files.
	* am/omegaware.am: Add new test shell scripts and input files.

2014-11-07  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ofm2opl.ch, ovf2ovp.ch: Add missing space to message.
	* help.test: New shell script to test help messages and options.

2014-11-06  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ofm2opl.ch, ovf2ovp.ch: Add stringcast to avoid printing
	strings as numbers.

2014-08-19  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* check.test, check.{ofm,opl}, checked.opl:
	Shell script and data for a new test.
	* am/omegaware.am: Add the new test.

2014-08-18  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ofonts.test: Fix parallel tests.

2014-08-17  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* tests/arabic.ovp: Use more than 64k ligkern steps.
	* tests/liguse{,1,2}.opl (new): Additional test data.
	* ligkern.test, am/omegaware.am: Add the new test data.

2014-08-14  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ovp2ovf.web: Correctly handle bchar_label (as in opl2ofm.web).

	* ofm2opl.web, ovf2ovp.{ch,web}: Treat infinite ligature loop
	as non-fatal.

	* ligkern.test, tests/lig{all,bch,bdy,blb}.opl,
	tests/ligblv.{opl,ovp}, tests/ligloop1.{ofm,opl},
	tests/ligloop2.opl: Shell script and data for a new test.
	* am/omegaware.am: Add the new test.

2014-08-13  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ofm2opl.{ch,web}, ovf2ovp.{ch,web}, yannis.test: Fixed a bug
	when checking for ligature loops.
	* opl2ofm.(ch,web}, ovp2ovf.{ch,web}: No 64-bit arg1 of f().

2014-08-08  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* yannis.test, tests/arabicr.pl, tests/arabic.ovp (new):
	Shell script and data for a new test.
	* am/omegaware.am: Add the new test.

2014-08-04  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* level1.opl, repeat.opl, repeated.opl, sample.ovp: Always use
	computed checksum.

2014-08-03  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* shorten.test, tests/shorten.opl (new): Shell script and data
	for a new test.
	* am/omegaware.am: Add the new test.

2014-07-31  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* opl2ofm.web, ovp2ovf.web: Fixed a bug in computation of lf.
	* opl2ofm.{ch,web}: Adapted (more) to PLtoTF Version 3.6.
	* ovp2ovf.{ch,web}: Adapted (more) to VPtoVF Version 1.6.

2014-07-09  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* am/omegaware.am: Drop Automake conditional OMFONTS.
	Always build and test wofm2opl&Co (instead of ofm2opl&Co).
	* level1.test, ofonts.test, omfonts.test, overbmp.test,
	realnum.test, repeat.test, selectfont.test, specialhex.test:
	Adapted.
	* charwd.test, tests/charwd-r.pl, tests/charwd-v.vpl (new):
	Shell script and data for a new test.

2014-05-05  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* odvicopy.ch, odvicopy.web: Fixed a non-Web2C bug and several
	typos, mostly from Udo Wermuth <u.wermuth@icloud.com>.
	Removed some trivial diffs with ../dvicopy.web.

2014-01-23  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ofm2opl.web, ovf2ovp.web: Drop duplicate semicolon.

2014-01-20  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ofm2opl.web: Adapted to TFtoPL Version 3.3.
	* opl2ofm.web: Adapted to PLtoTF Version 3.6.
	* ovf2ovp.web: Adapted to VFtpVP Version 1.4.
	* ovp2ovf.web: Adapted to VPtoVF Version 1.6.

2014-01-11  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* {ofm2opl,opl2ofm,ovf2ovp,ovp2ovf}.{ch,web}: Fix glitches in
	online printing of progress report.

2014-01-10  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* opl2ofm.up, ovp2ovf.up: Update module numbers.

2014-01-09  Peter Breitenlohner  <peb@mppmu.mpg.de>

	Version 1.13 (January 2014) of OFM2OPL & Co.

	* {ofm2opl,opl2ofm,ovf2ovp,ovp2ovf}.{ch,up,web}: Bug fixes.
	With character codes up to 0x10ffff the ligature hash keys no
	longer fit into 32-bit integers, thus we use type integer64.

	* vrepeat.test, vrepeat0.{ofm,opl}, vrepeat1.{ofm,opl,ovf,ovp}:
	Shell script and data for a new test,
	* am/omegaware.am: Adapted.

2014-01-06  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ofm2opl.{ch,web}: Adapt formatting to ../tftopl.web.
	* opl2ofm.{ch,up,web}: Adapt formatting to ../pltotf.web.
	* ovf2ovp.{ch,web}: Adapt formatting to ../vftovp.web.
	* ovp2ovf.{ch,up,web}: Adapt formatting to ../vptovf.web.

2014-01-04  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* am/omegaware.am: Add rules to build wofm2opl wopl2ofm wovf2ovp.

2013-12-30  TANAKA Takuji  <KXD02663@nifty.ne.jp>

	* ovp2ovf.web: OFM files are never seven bit safe.

2013-12-10  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ofm2ovf.web, ovf2ofm.web: Replace 65535 etc by numeric Web
	macros (can be up to 2^{30} for otangle).
	* ofm2opl.ch: Split one changset to enable  upTeX version.
	* ofm2ovf.up, ovf2ofm.up (new): Changes for upTeX versions.
	* ovp2ovf.up: Character codes are 0..0x10ffff.
	* overbmp.test: More extensive tests.
	* tests/inbmp0.opl (removed): Moved ...
	* tests/inbmp.opl (new): ... to here.
	* tests/overbmp.opl (new): Additional test data.
	* tests/overbmp.ovp: Adapt to modified file names.
	* am/omegaware.am: Adapted.

2013-12-09  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ovp2ovf.up: Ensure char_repeats[c]<=0xffff.
	* overbmp.test, tests/inbmp0.opl, tests/overbmp.ovp (new):
	Shell script and data for a new test,
	inspired by TANAKA Takuji <KXD02663@nifty.ne.jp>.

2013-12-06  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* opl2ofm.{ch,web}: Drop ASCII_04, ASCII_10, ASCII_14, MBL_string,
	RI_string, RCE_string (all unused).
	* {opl2ofm,ovp2ovf}.web: Drop unused procedure out_digs().
	* {ofm2opl,opl2ofm,ovf2ovp,ovp2ovf}.{ch,web}: HEX has 16 bytes.

	* ovp2ovf.ch: Use make_suffix() for implied ofm_name.
	* selectfont.test: Add test for 'ovp2ovf foo.ovp bar.ovf'.
	* am/omegaware.am (DISTCLEANFILES): Additional files.

2013-01-24  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* otangle.test: Avoid spurious failure of parallel-tests.
	* am/etex.am: Renamed cftest.{web,ch,p} => cftest.{web,ch,p}.

2012-12-17  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* am/omegaware.am: Enable silent rules.

2012-07-15  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* odvicopy.ch, odvitype.ch, ofm2opl.ch, opl2ofm.ch, otangle.ch,
	ovf2ovp.ch, ovp2ovf.ch: Define and use my_name.

2012-05-15  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* am/omegaware.am: Add rule to build wovp2ovf.

2012-02-04  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ovf2ovp.ch: Allow arbitrarily large TFM files as in TFtoPL.

	* opl2ofm.ch, ovp2ovf.ch: Avoid name conflict; MinGW defines
	`byte' in <rpcndr.h>.

2012-02-01  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ofm2opl.web, ovf2ovp.web: Both nl and lig_size are in words,
	so the multiplication by 4 is not needed.

	* ofm2opl.ch: Handle tfm_file_array as in TFtoPL, i.e., allocate
	with a small initial size and reallocate as needed.

	* ofm2opl.ch, opl2ofm.web: Remove unused constant tfm_size.

2012-01-24  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* opl2ofm.web, ovp2ovf.web: Interpret "--" as "+", not "-".

	* realnum.test, tests/realnum.opl, tests/realnum.out (new):
	Shell script and data for a new test.
	* am/omegaware.am: Add the new test.

2012-01-22  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ofm2opl.web, ovf2ovp.web: Add missing space in error message.

2011-12-23  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ovf2ovp.web, ovp2ovf.web: Replace 65535 etc by numeric Web
	macros (can be up to 2^{30} for otangle).

	* ovf2ovp.up, ovp2ovf.up (new): Changes for upTeX versions.
	* am/omegaware.am: Adapted.

2011-12-21  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* opl2ofm.web: Correctly compute mem_size=max_char*4+8;
	* ofm2opl.web, ovf2ovp.web: Drop unused mem_size.

	* ovf2ovp.ch: Shorten change set (for upTeX version).

2011-12-20  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* selectfont.test, tests/sample.out, tests/sample.ovp,
	tests/sample0-h.opl (new): Shell script and data for a new test.
	* am/omegaware.am: Add the new test.

2011-04-19  Peter Breitenlohner  <peb@mppmu.mpg.de>

	Avoid 'differ in signedness' warnings.
	* odvicopy.ch (comment): Do not declare as unsigned.
	(do_pre): Apply ucharcast() to xord[] index.

2010-04-22  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* opl2ofm.ch, ovp2ovf.ch: Bug fix, from ../ptexdir/ppltotf.ch by
	Ken Nakano <nakano@nextsolution.co.jp>.

2010-04-08  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* odvicopy.ch (dvi_name): New global variable.
	(dvi_length, dvi_move): Use dvi_name instead of 'odvicopy' as
	last arg of xfseek() and xftell().
	No random reading on stdin, may be not seekable.
	* odvitype.ch (dvi_name): New global variable.
	(dvi_length, move_to_byte): Use dvi_name instead of 'odvitype'
	as last arg of xfseek() and xftell().

2010-03-09  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* odvicopy.ch, odvitype.ch, ofm2opl.ch, opl2ofm.ch, otangle.ch,
	ovf2ovp.ch, ovp2ovf: Use kpse_set_program_name(argv[0], nil)
	instead of kpse_set_progname(argv[0]).

2010-01-22  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* odvitype.ch (open_dvi_file): Skip use of cur_name.
	* ofm2opl.ch (tfm_name, pl_name), opl2ofm.ch (tfm_name, pl_name),
	otangle.ch (web_name, chg_name, pascal_name, pool_name),
	ovf2ovp.ch (vf_name, vpl_name), ovp2ovf.ch (vpl_name, tfm_name,
	vf_name): Declare as const_c_string.

2010-01-05  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* repeat.test (new): Shell script to test repeat_char handling.
	* tests/repeat.opl, tests/repeated.opl (new): Test data.
	* am/omegaware.am: Add the new test.

2010-01-04  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* opl2ofm.web (font direction code): Fix typo in error message.

2010-01-03  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* opl2ofm.ch, ovp2ovf.ch (read_repeated_character_info): No
	output (except errors) unless verbose.

2009-09-29  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* opl2ofm.web, ovp2ovf.web: Rearrange property name codes to
	simplify checking for legal properties.

2009-09-28  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* o*.web, o*.ch: Remove trailing blanks.

2009-09-26  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ofm2opl.web, opl2ofm.web, ovf2ovp.web, ovp2ovf.web: Bugfix.
	Don't forget to output the mvalues.

	* opl2ofm.web, ovp2ovf.web: Bugfix. Check input parameters for
	character tables (ivalue & Co), fix table size computation.
	Use out_int() for values that might be negative.

2009-09-24  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* odvicopy.test (new): Shell script to test odvicopy.
	* odvitype.test (new): Shell script to test odvitype.
	* ofonts.test (new): Shell script to test ofm2opl etc.
	* tests/ofont* (new): Test data.
	* am/omegaware.am: Add new tests and test data.

	* odvicopy.{ch,web}: Correctly identify TFM/OFM files by their
	ofm_level, not by being found via TFMFONTS/OFMFONTS.
	When assembling VF chracter packets use type of local font.

	* ovf2ovp.ch: Somewhat reorganize, avoiding to move a largish
	section of code.

2009-09-22  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ovf2ovp.{web,ch}: Bugfix in handling of local fonts with
	ofm_level=0,1 and characters in the range 0..65535, diagnosing
	characters outside this range.

	* opl2ofm.web, ovp2ovf.web: Bugfix. Don't forget to output the
	mvalues.

2009-09-20  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ovp2ovf.web: Bugfix in handling of ofm_level=-1.

2009-09-20  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* odvicopy.web (load_font), odvitype.web (in_TFM): Bugfix in
	handling of ofm_level=1 fonts.

	* odvicopy.ch, odvitype.ch: Avoid compiler warnings.

2009-09-19  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* opl2ofm.web (get_integer), ovp2ovf.web (get_integer):
	Avoid relying on 32-Bit integer overflow.
	* ofm2opl.web (check_unused), ovf2ovp.web (check_unused):
	New function to check for non-zero unused char info bits.
	* opl2ofm.web, ovp2ovf.web: Check for parameter index <0.

2009-09-18  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* opl2ofm.web: Use top_width as maximum number as character
	widths, not max_width; same for depth, height, and italic.

	Reported by Lars Hellstr\"om <Lars.Hellstrom@residenset.net>

2009-09-17  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ofm2opl.web, opl2ofm.web, ovf2ovp.web, ovp2ovf.web: Use correct
	8-bit italic index for ofm_level=0 as in C versions and engines.

2009-09-13  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ofm2opl.web, ovf2ovp.web: Check for ofm_level<=1.
	Bugfix: ensure that ofm2opl and ovf2ovp can read TFM files.
	Handle the seven_bit_safe_flag of TFM files as TFtoPL/VFtoVP do.
	Add newline after '...WAS BAD, SO THE DATA HAS BEEN CHANGED!'

2009-09-11  Peter Breitenlohner  <peb@mppmu.mpg.de>

	Version 1.12 (September 2009) of OFM2OPL & Co.

	* opl2ofm.web, ovp2ovf.web: Accept NATURALFONTDIR as alias for
	NFONTDIR for compatibility with omegafonts (C) versions.

2009-09-09  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* am/omegaware.am, ../am/web.am: Move test data from ../tests/
	to tests.
	* level1.test, omfonts.test, specialhex.test: Adjusted.

2009-09-07  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* odvicopy.web: Version 1.6 (September 2009).
	Import changes for dvicopy.web updating from V1.5 to V1.6:
	Minor cleanup to avoid unused or uninitialized variables
	and diagnose impossible cases.
	(comp_char): Bugfix, 'o' was used uninitialized.

	* odvicopy.ch (make_name): Eliminate unused variable.
	(jump_out, confusion, overflow, bad_tfm, bad_font, bad_dvi):
	Declare as noreturn procedures.

	* odvitype.ch (first_par): Diagnose impossible cases.

2009-09-06  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* odvicopy.ch: Declare comment as const_w2c_u_string.

2009-09-05  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* ovf2ovp.ch (ASCII04 etc.): Declare as const_c_string.
	(vf_input, organize, do_map): Eliminate unused labels.
	* ofm2opl.ch (ASCII04 etc.): Declare as const_c_string.
	* opl2ofm.ch: Define char (used as array index) as 0..255.
	(ASCII04 etc.): Declare as const_c_string.
	(read_lig_kern): Eliminate unused variables.
	* ovp2ovf.ch: Define char (used as array index) as 0..255.
	(HEX): Declare as const_c_string.
	(read_lig_kern): Eliminate unused variables.

2009-09-04  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* otangle.ch: Eliminate the unused |end_of_TANGLE| label.

2009-08-16  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* am/omegaware.am: Adapt to web2c-sh.

2009-07-15  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* specialhex.test (new): Shell script to test specials.
	* am/omegaware.am: add the new test.

2009-05-30  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* level1.test (new): Shell script to test ofm_level=1.
	* omfonts.test (new): Shell script to test ofm2opl etc.
	* am/omegaware.am: add the new test.

	* ovp2ovf.ch: correctly print banner and version_string.

2009-05-29  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* {ofm2opl,opl2ofm,ovf2ovp,ovp2ovf}.{ch,web}: revived.

2009-05-26  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* {ofm2opl,opl2ofm,ovf2ovp,ovp2ovf}.{ch,web} (removed):
	these Pascal Web versions are obsolete, replaced by symlinks
	to omfonts (from ../omegafonts/).

2009-03-03  Peter Breitenlohner  <peb@mppmu.mpg.de>

	* otangle.ch: use kpse_open_file to locate input files,
	in order to respect WEBINPUTS (ported from tangle.ch).
