summaryrefslogtreecommitdiffstats
path: root/source/t/texlive/patches/20180625.diff
diff options
context:
space:
mode:
Diffstat (limited to 'source/t/texlive/patches/20180625.diff')
-rw-r--r--source/t/texlive/patches/20180625.diff688
1 files changed, 688 insertions, 0 deletions
diff --git a/source/t/texlive/patches/20180625.diff b/source/t/texlive/patches/20180625.diff
new file mode 100644
index 000000000..583d99486
--- /dev/null
+++ b/source/t/texlive/patches/20180625.diff
@@ -0,0 +1,688 @@
+diff -ur ./texk/dvipdfm-x/ChangeLog ../b18/texk/dvipdfm-x/ChangeLog
+--- ./texk/dvipdfm-x/ChangeLog 2018-03-03 11:27:37.000000000 +0100
++++ ../b18/texk/dvipdfm-x/ChangeLog 2018-06-25 22:07:46.343277185 +0200
+@@ -1,3 +1,16 @@
++2018-05-06 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
++
++ * tt_cmap.c: Revert a part of changes in 2017-12-09,
++ which breaks to give tounicode entries for ligatures.
++ http://tug.org/pipermail/tex-live/2018-May/041608.html.
++ * configure.ac: Version 20180506.
++
++ 2018-04-28 Stefan Br\"uns <stefan.bruens@rwth-aachen.de>
++
++ * pngimage.c: Fix a bug which causes a segfault with 1/2/4-bit
++ transparent indexed PNGs.
++ * configure.ac: Version 20180428.
++
+ 2018-03-03 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * xbb.c: Remove unused lines.
+diff -ur ./texk/dvipdfm-x/configure ../b18/texk/dvipdfm-x/configure
+--- ./texk/dvipdfm-x/configure 2018-02-17 09:41:35.000000000 +0100
++++ ../b18/texk/dvipdfm-x/configure 2018-06-25 22:07:47.183276612 +0200
+@@ -1,6 +1,6 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.69 for dvipdfm-x (TeX Live) 20180217.
++# Generated by GNU Autoconf 2.69 for dvipdfm-x (TeX Live) 20180506.
+ #
+ # Report bugs to <tex-k@tug.org>.
+ #
+@@ -590,8 +590,8 @@
+ # Identity of this package.
+ PACKAGE_NAME='dvipdfm-x (TeX Live)'
+ PACKAGE_TARNAME='dvipdfm-x--tex-live-'
+-PACKAGE_VERSION='20180217'
+-PACKAGE_STRING='dvipdfm-x (TeX Live) 20180217'
++PACKAGE_VERSION='20180506'
++PACKAGE_STRING='dvipdfm-x (TeX Live) 20180506'
+ PACKAGE_BUGREPORT='tex-k@tug.org'
+ PACKAGE_URL=''
+
+@@ -1350,7 +1350,7 @@
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+-\`configure' configures dvipdfm-x (TeX Live) 20180217 to adapt to many kinds of systems.
++\`configure' configures dvipdfm-x (TeX Live) 20180506 to adapt to many kinds of systems.
+
+ Usage: $0 [OPTION]... [VAR=VALUE]...
+
+@@ -1421,7 +1421,7 @@
+
+ if test -n "$ac_init_help"; then
+ case $ac_init_help in
+- short | recursive ) echo "Configuration of dvipdfm-x (TeX Live) 20180217:";;
++ short | recursive ) echo "Configuration of dvipdfm-x (TeX Live) 20180506:";;
+ esac
+ cat <<\_ACEOF
+
+@@ -1551,7 +1551,7 @@
+ test -n "$ac_init_help" && exit $ac_status
+ if $ac_init_version; then
+ cat <<\_ACEOF
+-dvipdfm-x (TeX Live) configure 20180217
++dvipdfm-x (TeX Live) configure 20180506
+ generated by GNU Autoconf 2.69
+
+ Copyright (C) 2012 Free Software Foundation, Inc.
+@@ -2390,7 +2390,7 @@
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+
+-It was created by dvipdfm-x (TeX Live) $as_me 20180217, which was
++It was created by dvipdfm-x (TeX Live) $as_me 20180506, which was
+ generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+@@ -8075,7 +8075,7 @@
+
+ # Define the identity of the package.
+ PACKAGE='dvipdfm-x--tex-live-'
+- VERSION='20180217'
++ VERSION='20180506'
+
+
+ cat >>confdefs.h <<_ACEOF
+@@ -14744,7 +14744,7 @@
+ Report bugs to <bug-libtool@gnu.org>."
+
+ lt_cl_version="\
+-dvipdfm-x (TeX Live) config.lt 20180217
++dvipdfm-x (TeX Live) config.lt 20180506
+ configured by $0, generated by GNU Autoconf 2.69.
+
+ Copyright (C) 2011 Free Software Foundation, Inc.
+@@ -16624,7 +16624,7 @@
+ # report actual input values of CONFIG_FILES etc. instead of their
+ # values after options handling.
+ ac_log="
+-This file was extended by dvipdfm-x (TeX Live) $as_me 20180217, which was
++This file was extended by dvipdfm-x (TeX Live) $as_me 20180506, which was
+ generated by GNU Autoconf 2.69. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+@@ -16694,7 +16694,7 @@
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ ac_cs_version="\\
+-dvipdfm-x (TeX Live) config.status 20180217
++dvipdfm-x (TeX Live) config.status 20180506
+ configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
+
+diff -ur ./texk/dvipdfm-x/configure.ac ../b18/texk/dvipdfm-x/configure.ac
+--- ./texk/dvipdfm-x/configure.ac 2018-02-28 00:14:55.000000000 +0100
++++ ../b18/texk/dvipdfm-x/configure.ac 2018-06-25 22:07:47.183276612 +0200
+@@ -7,7 +7,7 @@
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ dnl
+-AC_INIT([dvipdfm-x (TeX Live)], [20180217], [tex-k@tug.org])
++AC_INIT([dvipdfm-x (TeX Live)], [20180506], [tex-k@tug.org])
+ AC_PREREQ([2.65])
+ AC_CONFIG_SRCDIR([agl.c])
+ AC_CONFIG_AUX_DIR([../../build-aux])
+diff -ur ./texk/dvipdfm-x/pngimage.c ../b18/texk/dvipdfm-x/pngimage.c
+--- ./texk/dvipdfm-x/pngimage.c 2018-02-17 09:41:35.000000000 +0100
++++ ../b18/texk/dvipdfm-x/pngimage.c 2018-06-25 22:07:49.306275165 +0200
+@@ -964,12 +964,16 @@
+ png_bytep trans;
+ int num_trans;
+ png_uint_32 i;
++ png_byte bpc, mask, shift;
+
+ if (!png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS) ||
+ !png_get_tRNS(png_ptr, info_ptr, &trans, &num_trans, NULL)) {
+ WARN("%s: PNG does not have valid tRNS chunk but tRNS is requested.", PNG_DEBUG_STR);
+ return NULL;
+ }
++ bpc = png_get_bit_depth(png_ptr, info_ptr);
++ mask = 0xff >> (8 - bpc);
++ shift = 8 - bpc;
+
+ smask = pdf_new_stream(STREAM_COMPRESS);
+ dict = pdf_stream_dict(smask);
+@@ -981,7 +985,8 @@
+ pdf_add_dict(dict, pdf_new_name("ColorSpace"), pdf_new_name("DeviceGray"));
+ pdf_add_dict(dict, pdf_new_name("BitsPerComponent"), pdf_new_number(8));
+ for (i = 0; i < width*height; i++) {
+- png_byte idx = image_data_ptr[i];
++ /* data is packed for 1/2/4 bpc formats, msb first */
++ png_byte idx = (image_data_ptr[bpc * i / 8] >> (shift - bpc * i % 8)) & mask;
+ smask_data_ptr[i] = (idx < num_trans) ? trans[idx] : 0xff;
+ }
+ pdf_add_stream(smask, (char *)smask_data_ptr, width*height);
+diff -ur ./texk/dvipdfm-x/tt_cmap.c ../b18/texk/dvipdfm-x/tt_cmap.c
+--- ./texk/dvipdfm-x/tt_cmap.c 2017-12-09 15:07:09.000000000 +0100
++++ ../b18/texk/dvipdfm-x/tt_cmap.c 2018-06-25 22:07:49.617274953 +0200
+@@ -1,6 +1,6 @@
+ /* This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks.
+
+- Copyright (C) 2007-2017 by Jin-Hwan Cho and Shunsaku Hirata,
++ Copyright (C) 2007-2018 by Jin-Hwan Cho and Shunsaku Hirata,
+ the dvipdfmx project team.
+
+ This program is free software; you can redistribute it and/or modify
+@@ -928,19 +928,12 @@
+ }
+ #undef MAX_UNICODES
+ if (unicode_count == -1) {
+-#if defined(LIBDPX)
+ if(verbose > VERBOSE_LEVEL_MIN) {
+ if (name)
+ MESG("No Unicode mapping available: GID=%u, name=%s\n", gid, name);
+ else
+ MESG("No Unicode mapping available: GID=%u\n", gid);
+ }
+-#else
+- if (name)
+- MESG("No Unicode mapping available: GID=%u, name=%s\n", gid, name);
+- else
+- MESG("No Unicode mapping available: GID=%u\n", gid);
+-#endif /* LIBDPX */
+ } else {
+ /* the Unicode characters go into wbuf[2] and following, in UTF16BE */
+ /* we rely on WBUF_SIZE being more than adequate for MAX_UNICODES */
+@@ -1021,13 +1014,7 @@
+ {
+ USHORT count = 0;
+ USHORT cid = cffont ? cff_charsets_lookup_inverse(cffont, gid) : gid;
+-
+- /* Skip PUA characters and alphabetic presentation forms, allowing
+- * handle_subst_glyphs() as it might find better mapping. Fixes the
+- * mapping of ligatures encoded in PUA in fonts like Linux Libertine
+- * and old Adobe fonts.
+- */
+- if (is_used_char2(used_chars, cid) && !is_PUA_or_presentation(ch)) {
++ if (is_used_char2(used_chars, cid)) {
+ int len;
+ unsigned char *p = wbuf + 2;
+
+@@ -1038,11 +1025,18 @@
+ len = UC_UTF16BE_encode_char((int32_t) ch, &p, wbuf + WBUF_SIZE);
+ CMap_add_bfchar(cmap, wbuf, 2, wbuf + 2, len);
+
+- /* Avoid duplicate entry
+- * There are problem when two Unicode code is mapped to
+- * single glyph...
++ /* Skip PUA characters and alphabetic presentation forms, allowing
++ * handle_subst_glyphs() as it might find better mapping. Fixes the
++ * mapping of ligatures encoded in PUA in fonts like Linux Libertine
++ * and old Adobe fonts.
+ */
+- used_chars[cid / 8] &= ~(1 << (7 - (cid % 8)));
++ if (!is_PUA_or_presentation(ch)) {
++ /* Avoid duplicate entry
++ * There are problem when two Unicode code is mapped to
++ * single glyph...
++ */
++ used_chars[cid / 8] &= ~(1 << (7 - (cid % 8)));
++ }
+ }
+
+ return count;
+diff -ur ./texk/web2c/ptexdir/ChangeLog ../b18/texk/web2c/ptexdir/ChangeLog
+--- ./texk/web2c/ptexdir/ChangeLog 2018-02-05 13:35:05.000000000 +0100
++++ ../b18/texk/web2c/ptexdir/ChangeLog 2018-06-25 22:08:39.566240911 +0200
+@@ -1,3 +1,16 @@
++2018-05-06 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
++
++ * kanji.c: More strict check kanji token.
++
++2018-04-14 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
++
++ * ptex-base.ch: Fix issue GitHub:texjporg/tex-jp-build#57
++ that discontinuous KINSOKU/INHIBIT table cannot be
++ searched properly.
++ (regression caused by a commmit of 2017-09-11)
++ * tests/free_pena.tex, tests/free_ixsp.tex: Added.
++ * ptex_version.h: pTeX version p3.8.1.
++
+ 2018-02-05 Hironobu Yamashita <h.y.acetaminophen@gmail.com>
+
+ * ptex-base.ch: Set subtype for JFM glue in math list.
+diff -ur ./texk/web2c/ptexdir/kanji.c ../b18/texk/web2c/ptexdir/kanji.c
+--- ./texk/web2c/ptexdir/kanji.c 2016-11-25 19:24:38.000000000 +0100
++++ ../b18/texk/web2c/ptexdir/kanji.c 2018-06-25 22:08:39.675240837 +0200
+@@ -4,6 +4,7 @@
+ */
+
+ #include "kanji.h"
++#define CS_TOKEN_FLAG 0xFFFF
+
+ #if !defined(WIN32)
+ int sjisterminal;
+@@ -12,7 +13,8 @@
+ /* TOKEN */
+ boolean check_kanji(integer c)
+ {
+- return is_char_kanji(c);
++ if (c >= CS_TOKEN_FLAG) return false;
++ else return is_char_kanji(c);
+ }
+
+ boolean is_char_ascii(integer c)
+diff -ur ./texk/web2c/ptexdir/ptex-base.ch ../b18/texk/web2c/ptexdir/ptex-base.ch
+--- ./texk/web2c/ptexdir/ptex-base.ch 2018-02-05 13:35:05.000000000 +0100
++++ ../b18/texk/web2c/ptexdir/ptex-base.ch 2018-06-25 22:08:39.677240836 +0200
+@@ -58,6 +58,7 @@
+ % pTeX p3.7.1.
+ % (2017-09-07) HK pTeX p3.7.2 More restrictions on direction change commands.
+ % (2018-01-21) HK Added \ptexversion primitive and co. pTeX p3.8.
++% (2018-04-14) HK pTeX p3.8.1 Bug fix for discontinuous KINSOKU table.
+ %
+
+ @x
+@@ -73,8 +74,8 @@
+ @y
+ @d pTeX_version=3
+ @d pTeX_minor_version=8
+-@d pTeX_revision==".0"
+-@d pTeX_version_string=='-p3.8.0' {current \pTeX\ version}
++@d pTeX_revision==".1"
++@d pTeX_version_string=='-p3.8.1' {current \pTeX\ version}
+ @#
+ @d pTeX_banner=='This is pTeX, Version 3.14159265',pTeX_version_string
+ @d pTeX_banner_k==pTeX_banner
+@@ -6397,6 +6398,8 @@
+ @d inhibit_both=0 {disable to insert space before 2byte-char and after it}
+ @d inhibit_previous=1 {disable to insert space before 2byte-char}
+ @d inhibit_after=2 {disable to insert space after 2byte-char}
++@d inhibit_none=3 {enable to insert space before/after 2byte-char}
++@d inhibit_unused=4 {unused entry}
+ @d no_entry=1000
+ @d new_pos=0
+ @d cur_pos=1
+@@ -6427,14 +6430,15 @@
+ begin s:=calc_pos(c); p:=s;
+ if n=new_pos then
+ begin repeat
+- if (inhibit_xsp_code(p)=0)or(inhibit_xsp_code(p)=c) then goto done;
++ if (inhibit_xsp_type(p)=inhibit_unused)or(inhibit_xsp_code(p)=0)
++ or(inhibit_xsp_code(p)=c) then goto done;
+ incr(p); if p>255 then p:=0;
+ until s=p; p:=no_entry;
+ end
+ else
+ begin repeat
+- if inhibit_xsp_code(p)=0 then goto done1;
+- if inhibit_xsp_code(p)=c then goto done;
++ if inhibit_xsp_code(p)=0 then goto done1
++ else if (inhibit_xsp_type(p)<>inhibit_unused)and(inhibit_xsp_code(p)=c) then goto done;
+ incr(p); if p>255 then p:=0;
+ until s=p;
+ done1: p:=no_entry;
+@@ -6447,9 +6451,10 @@
+ begin p:=cur_chr; scan_int; n:=cur_val; scan_optional_equals; scan_int;
+ if is_char_kanji(n) then
+ begin j:=get_inhibit_pos(tokanji(n),new_pos);
+- if (j<>no_entry)and(cur_val>inhibit_after)and(global or cur_level=level_one) then
+- begin n:=0; cur_val:=0 end
+- { remove the entry from inhibit table }
++ if (j<>no_entry)and(cur_val>inhibit_after) then
++ begin if global or(cur_level=level_one) then cur_val:=inhibit_unused
++ { remove the entry from inhibit table }
++ else cur_val:=inhibit_none; end
+ else if j=no_entry then
+ begin print_err("Inhibit table is full!!");
+ help1("I'm skipping this control sequences.");@/
+@@ -6466,7 +6471,7 @@
+
+ @ @<Fetch inhibit type from some table@>=
+ begin scan_int; q:=get_inhibit_pos(tokanji(cur_val),cur_pos);
+-cur_val_level:=int_val; cur_val:=3;
++cur_val_level:=int_val; cur_val:=inhibit_none;
+ if q<>no_entry then cur_val:=inhibit_xsp_type(q);
+ end
+
+@@ -6476,6 +6481,7 @@
+
+ @d pre_break_penalty_code=1
+ @d post_break_penalty_code=2
++@d kinsoku_unused_code=3
+
+ @<Put each...@>=
+ primitive("prebreakpenalty",assign_kinsoku,pre_break_penalty_code);
+@@ -6502,15 +6508,16 @@
+ gubed
+ if n=new_pos then
+ begin repeat
+- if (kinsoku_type(p)=0)or(kinsoku_code(p)=c) then goto done;
++ if (kinsoku_type(p)=0)or(kinsoku_type(p)=kinsoku_unused_code)
++ or(kinsoku_code(p)=c) then goto done;
+ incr(p); if p>255 then p:=0;
+ until s=p;
+ p:=no_entry;
+ end
+ else
+ begin repeat
+- if kinsoku_type(p)=0 then goto done1;
+- if kinsoku_code(p)=c then goto done;
++ if kinsoku_type(p)=0 then goto done1
++ else if (kinsoku_type(p)<>kinsoku_unused_code)and(kinsoku_code(p)=c) then goto done;
+ incr(p); if p>255 then p:=0;
+ until s=p;
+ done1: p:=no_entry;
+@@ -6523,8 +6530,8 @@
+ begin p:=cur_chr; scan_int; n:=cur_val; scan_optional_equals; scan_int;
+ if is_char_ascii(n) or is_char_kanji(n) then
+ begin j:=get_kinsoku_pos(tokanji(n),new_pos);
+- if (j<>no_entry)and(cur_val=0)and(global or cur_level=level_one) then
+- define(kinsoku_base+j,0,0) { remove the entry from KINSOKU table }
++ if (j<>no_entry)and(cur_val=0)and(global or(cur_level=level_one)) then
++ define(kinsoku_base+j,kinsoku_unused_code,0) { remove the entry from KINSOKU table }
+ else begin
+ if j=no_entry then begin
+ print_err("KINSOKU table is full!!");
+diff -ur ./texk/web2c/ptexdir/ptex_version.h ../b18/texk/web2c/ptexdir/ptex_version.h
+--- ./texk/web2c/ptexdir/ptex_version.h 2018-01-21 04:48:06.000000000 +0100
++++ ../b18/texk/web2c/ptexdir/ptex_version.h 2018-06-25 22:08:39.678240835 +0200
+@@ -1 +1 @@
+-#define PTEX_VERSION "p3.8.0"
++#define PTEX_VERSION "p3.8.1"
+diff -ur ./texk/web2c/uptexdir/kanji.c ../b18/texk/web2c/uptexdir/kanji.c
+--- ./texk/web2c/uptexdir/kanji.c 2018-02-25 01:31:25.000000000 +0100
++++ ../b18/texk/web2c/uptexdir/kanji.c 2018-06-25 22:08:41.864239345 +0200
+@@ -18,7 +18,7 @@
+ /* TOKEN */
+ boolean check_kanji (integer c)
+ {
+- if (c > CS_TOKEN_FLAG) return false;
++ if (c >= CS_TOKEN_FLAG) return false;
+ else if (!(XXHi(c)>=KCAT_KANJI && XXHi(c)<=KCAT_HANGUL)) return false;
+ else return is_char_kanji(c);
+ }
+diff -ur ./utils/README ../b18/utils/README
+--- ./utils/README 2018-04-08 22:08:33.000000000 +0200
++++ ../b18/utils/README 2018-06-25 22:08:45.738236705 +0200
+@@ -1,4 +1,4 @@
+-$Id: README 47384 2018-04-08 20:08:33Z karl $
++$Id: README 47642 2018-05-08 16:06:43Z karl $
+ Public domain. Originally written 2005 by Karl Berry.
+
+ Extra utilities we (optionally) compile for TeX Live.
+@@ -16,7 +16,7 @@
+
+ lacheck - maintained here, by us
+
+-m-tx 0.63 - checked 09jan18
++m-tx 0.63a - checked 29apr18
+ http://ctan.org/pkg/m-tx/
+
+ pmx 2.8.4 - checked 14feb18
+diff -ur ./utils/m-tx/ChangeLog ../b18/utils/m-tx/ChangeLog
+--- ./utils/m-tx/ChangeLog 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/ChangeLog 2018-06-25 22:08:49.771233956 +0200
+@@ -1,3 +1,7 @@
++2018-04-29 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
++
++ * Import m-tx 0.63a.
++
+ 2018-01-09 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * Import m-tx 0.63.
+diff -ur ./utils/m-tx/TLpatches/ChangeLog ../b18/utils/m-tx/TLpatches/ChangeLog
+--- ./utils/m-tx/TLpatches/ChangeLog 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/TLpatches/ChangeLog 2018-06-25 22:08:49.772233956 +0200
+@@ -1,3 +1,7 @@
++2018-04-29 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
++
++ * patch-01-write-bin: Update for 0.63a.
++
+ 2018-01-09 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * patch-01-write-bin: Update for 0.63.
+diff -ur ./utils/m-tx/TLpatches/TL-Changes ../b18/utils/m-tx/TLpatches/TL-Changes
+--- ./utils/m-tx/TLpatches/TL-Changes 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/TLpatches/TL-Changes 2018-06-25 22:08:49.772233956 +0200
+@@ -1,4 +1,4 @@
+-Changes applied to the mtx-0.63 tree as obtained from:
++Changes applied to the mtx-0.63a tree as obtained from:
+ http://www.ctan.org/tex-archive/support/m-tx/
+
+ Remove:
+diff -ur ./utils/m-tx/TLpatches/patch-01-write-bin ../b18/utils/m-tx/TLpatches/patch-01-write-bin
+--- ./utils/m-tx/TLpatches/patch-01-write-bin 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/TLpatches/patch-01-write-bin 2018-06-25 22:08:49.772233956 +0200
+@@ -1,6 +1,21 @@
+-diff -ur mtx-0.63.orig/globals.c mtx-0.63/globals.c
+---- mtx-0.63.orig/globals.c Tue Jan 09 01:39:42 2018
+-+++ mtx-0.63/globals.c Tue Jan 09 08:46:40 2018
++diff -ur mtx-0.63a/files.c mtx-src/files.c
++--- mtx-0.63a/files.c Tue Jan 09 01:39:42 2018
+++++ mtx-src/files.c Wed Apr 25 18:07:12 2018
++@@ -289,9 +289,9 @@
++ pushFile(infilename);
++ strcpy(outfile_NAME, outfilename);
++ if (outfile != NULL)
++- outfile = freopen(outfile_NAME, "w", outfile);
+++ outfile = freopen(outfile_NAME, "wb", outfile);
++ else
++- outfile = fopen(outfile_NAME, "w");
+++ outfile = fopen(outfile_NAME, "wb");
++ _SETIO(outfile != NULL, FileNotFound);
++ strcpy(stylefile_NAME, stylefilename);
++ if (stylefile != NULL)
++diff -ur mtx-0.63a/globals.c mtx-src/globals.c
++--- mtx-0.63a/globals.c Tue Jan 09 01:39:42 2018
+++++ mtx-src/globals.c Wed Apr 25 18:07:37 2018
+ @@ -230,7 +230,7 @@
+ if (outfile != NULL)
+ fclose(outfile);
+diff -ur ./utils/m-tx/configure ../b18/utils/m-tx/configure
+--- ./utils/m-tx/configure 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/configure 2018-06-25 22:08:49.879233883 +0200
+@@ -1,6 +1,6 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.69 for m-tx (TeX Live) 0.63.
++# Generated by GNU Autoconf 2.69 for m-tx (TeX Live) 0.63a.
+ #
+ # Report bugs to <tex-k@tug.org>.
+ #
+@@ -580,8 +580,8 @@
+ # Identity of this package.
+ PACKAGE_NAME='m-tx (TeX Live)'
+ PACKAGE_TARNAME='m-tx--tex-live-'
+-PACKAGE_VERSION='0.63'
+-PACKAGE_STRING='m-tx (TeX Live) 0.63'
++PACKAGE_VERSION='0.63a'
++PACKAGE_STRING='m-tx (TeX Live) 0.63a'
+ PACKAGE_BUGREPORT='tex-k@tug.org'
+ PACKAGE_URL=''
+
+@@ -1275,7 +1275,7 @@
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+-\`configure' configures m-tx (TeX Live) 0.63 to adapt to many kinds of systems.
++\`configure' configures m-tx (TeX Live) 0.63a to adapt to many kinds of systems.
+
+ Usage: $0 [OPTION]... [VAR=VALUE]...
+
+@@ -1341,7 +1341,7 @@
+
+ if test -n "$ac_init_help"; then
+ case $ac_init_help in
+- short | recursive ) echo "Configuration of m-tx (TeX Live) 0.63:";;
++ short | recursive ) echo "Configuration of m-tx (TeX Live) 0.63a:";;
+ esac
+ cat <<\_ACEOF
+
+@@ -1438,7 +1438,7 @@
+ test -n "$ac_init_help" && exit $ac_status
+ if $ac_init_version; then
+ cat <<\_ACEOF
+-m-tx (TeX Live) configure 0.63
++m-tx (TeX Live) configure 0.63a
+ generated by GNU Autoconf 2.69
+
+ Copyright (C) 2012 Free Software Foundation, Inc.
+@@ -1861,7 +1861,7 @@
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+
+-It was created by m-tx (TeX Live) $as_me 0.63, which was
++It was created by m-tx (TeX Live) $as_me 0.63a, which was
+ generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+@@ -3784,7 +3784,7 @@
+
+ # Define the identity of the package.
+ PACKAGE='m-tx--tex-live-'
+- VERSION='0.63'
++ VERSION='0.63a'
+
+
+ cat >>confdefs.h <<_ACEOF
+@@ -5868,7 +5868,7 @@
+ # report actual input values of CONFIG_FILES etc. instead of their
+ # values after options handling.
+ ac_log="
+-This file was extended by m-tx (TeX Live) $as_me 0.63, which was
++This file was extended by m-tx (TeX Live) $as_me 0.63a, which was
+ generated by GNU Autoconf 2.69. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+@@ -5925,7 +5925,7 @@
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ ac_cs_version="\\
+-m-tx (TeX Live) config.status 0.63
++m-tx (TeX Live) config.status 0.63a
+ configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
+
+diff -ur ./utils/m-tx/mtx-src/Corrections ../b18/utils/m-tx/mtx-src/Corrections
+--- ./utils/m-tx/mtx-src/Corrections 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/mtx-src/Corrections 2018-06-25 22:08:49.880233882 +0200
+@@ -3,6 +3,12 @@
+
+ Newest items at top. You might also want to look at file `MAINTENANCE`.
+
++Version 0.63a
++-------------
++
++Commented out apparently spurious begin...end block in preambleDefaults
++in preamble.pas. (RDT)
++
+ Version 0.63
+ ------------
+
+diff -ur ./utils/m-tx/mtx-src/files.c ../b18/utils/m-tx/mtx-src/files.c
+--- ./utils/m-tx/mtx-src/files.c 2016-11-25 19:24:43.000000000 +0100
++++ ../b18/utils/m-tx/mtx-src/files.c 2018-06-25 22:08:49.882233881 +0200
+@@ -289,9 +289,9 @@
+ pushFile(infilename);
+ strcpy(outfile_NAME, outfilename);
+ if (outfile != NULL)
+- outfile = freopen(outfile_NAME, "w", outfile);
++ outfile = freopen(outfile_NAME, "wb", outfile);
+ else
+- outfile = fopen(outfile_NAME, "w");
++ outfile = fopen(outfile_NAME, "wb");
+ _SETIO(outfile != NULL, FileNotFound);
+ strcpy(stylefile_NAME, stylefilename);
+ if (stylefile != NULL)
+diff -ur ./utils/m-tx/mtx-src/libp2c/p2clib.c ../b18/utils/m-tx/mtx-src/libp2c/p2clib.c
+--- ./utils/m-tx/mtx-src/libp2c/p2clib.c 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/mtx-src/libp2c/p2clib.c 2018-06-25 22:08:49.883233880 +0200
+@@ -73,8 +73,8 @@
+ {
+ register char *dd = (char *)d, *ss = (char *)s;
+ if (dd < ss || dd - ss >= n) {
+-#if defined(bcopy) && defined(memcpy)
+- my_memcpy(dd, ss, n);
++#if defined(bcopy) && defined(memcpy)
++ Anyptr my_memcpy(Anyptr d, Const Anyptr s, size_t n);
+ #else
+ memcpy(dd, ss, n);
+ #endif
+diff -ur ./utils/m-tx/mtx-src/preamble.c ../b18/utils/m-tx/mtx-src/preamble.c
+--- ./utils/m-tx/mtx-src/preamble.c 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/mtx-src/preamble.c 2018-06-25 22:08:49.953233832 +0200
+@@ -801,8 +801,8 @@
+ stave_size[i] = unspec;
+ for (i = 0; i <= maxstaves; i++)
+ nspace[i] = unspec;
+- nspace[i] = unspec;
+- stave_size[i-1] = unspec;
++ /* next line seems to be spurious. 0.63a RDT */
++ /* begin nspace[i]:=unspec; stave_size[i]:=unspec; end; */
+ n_pages = 1;
+ n_systems = 1;
+ readStyles();
+diff -ur ./utils/m-tx/mtx-src/preamble.pas ../b18/utils/m-tx/mtx-src/preamble.pas
+--- ./utils/m-tx/mtx-src/preamble.pas 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/mtx-src/preamble.pas 2018-06-25 22:08:49.953233832 +0200
+@@ -501,7 +501,8 @@
+ for i:=1 to maxvoices do setVocal(i,false);
+ for i:=1 to maxstaves do stave_size[i]:=unspec;
+ for i:=0 to maxstaves do nspace[i]:=unspec;
+- begin nspace[i]:=unspec; stave_size[i]:=unspec; end;
++ { next line seems to be spurious. 0.63a RDT }
++ { begin nspace[i]:=unspec; stave_size[i]:=unspec; end; }
+ n_pages:=1; n_systems:=1;
+ readStyles; old_known_styles := known_styles;
+ for i:=1 to lines_in_paragraph do omit_line[i]:=false;
+diff -ur ./utils/m-tx/mtx-src/prepmx.c ../b18/utils/m-tx/mtx-src/prepmx.c
+--- ./utils/m-tx/mtx-src/prepmx.c 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/mtx-src/prepmx.c 2018-06-25 22:08:49.954233832 +0200
+@@ -66,8 +66,8 @@
+
+ /** M-Tx preprocessor to PMX Dirk Laurie */
+
+-#define version "0.63"
+-#define version_date "<7 January 2018>"
++#define version "0.63a"
++#define version_date "<8 April 2018>"
+
+ /** See file "Corrections" for updates */
+
+@@ -758,7 +758,7 @@
+ Static void topOfPMXfile(void)
+ {
+ Char STR2[24];
+- Char STR3[32];
++ Char STR3[30];
+
+ putLine("---");
+ sprintf(STR2, "\\def\\mtxversion{%s}", version);
+diff -ur ./utils/m-tx/mtx-src/prepmx.pas ../b18/utils/m-tx/mtx-src/prepmx.pas
+--- ./utils/m-tx/mtx-src/prepmx.pas 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/mtx-src/prepmx.pas 2018-06-25 22:08:49.954233832 +0200
+@@ -5,8 +5,8 @@
+ { CMO: addition/change by Christian Mondrup }
+
+ {* M-Tx preprocessor to PMX Dirk Laurie }
+-const version = '0.63';
+- version_date = '<7 January 2018>';
++const version = '0.63a';
++ version_date = '<8 April 2018>';
+
+ {* See file "Corrections" for updates }
+
+diff -ur ./utils/m-tx/tests/mozart.pmx ../b18/utils/m-tx/tests/mozart.pmx
+--- ./utils/m-tx/tests/mozart.pmx 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/tests/mozart.pmx 2018-06-25 22:08:50.059233760 +0200
+@@ -1,6 +1,6 @@
+ ---
+-\def\mtxversion{0.63}
+-\def\mtxdate{<7 January 2018>}
++\def\mtxversion{0.63a}
++\def\mtxdate{<8 April 2018>}
+ \input mtx
+ \mtxComposerLine{}{W. A. Mozart (1756--1791)}
+ \mtxTitleLine{Riff in C}
+diff -ur ./utils/m-tx/version.ac ../b18/utils/m-tx/version.ac
+--- ./utils/m-tx/version.ac 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/version.ac 2018-06-25 22:08:50.059233760 +0200
+@@ -8,4 +8,4 @@
+ dnl --------------------------------------------------------
+ dnl
+ dnl m4-include this file to define the current mtx version
+-m4_define([mtx_version], [0.63])
++m4_define([mtx_version], [0.63a])