texlive[49844] Build/source/texk: lcdf-typetools 2.108

commits+kakuto at tug.org commits+kakuto at tug.org
Mon Jan 28 03:26:32 CET 2019


Revision: 49844
          http://tug.org/svn/texlive?view=revision&revision=49844
Author:   kakuto
Date:     2019-01-28 03:26:31 +0100 (Mon, 28 Jan 2019)
Log Message:
-----------
lcdf-typetools 2.108

Modified Paths:
--------------
    trunk/Build/source/texk/README
    trunk/Build/source/texk/lcdf-typetools/ChangeLog
    trunk/Build/source/texk/lcdf-typetools/TLpatches/ChangeLog
    trunk/Build/source/texk/lcdf-typetools/TLpatches/TL-Changes
    trunk/Build/source/texk/lcdf-typetools/TLpatches/patch-02-mingw64
    trunk/Build/source/texk/lcdf-typetools/TLpatches/patch-03-w32
    trunk/Build/source/texk/lcdf-typetools/configure
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/NEWS.md
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/README.md
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.1
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/maket1font.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/configure.ac
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/cff.hh
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/clp.h
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/vector.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/lcdf-typetools.spec
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afm.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmparse.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmw.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/amfm.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/cff.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/encoding.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/findmet.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/metrics.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otf.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfcmap.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdata.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdescrip.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgpos.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgsub.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfname.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfos2.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfpost.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/pairop.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/psres.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1bounds.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1cs.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1csgen.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1font.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1fontskel.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1interp.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1item.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1mm.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1rw.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1unparser.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfcs.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfhead.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfkern.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/bezier.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/clp.c
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/error.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/filename.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/globmatch.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/landmark.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/permstr.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/point.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/slurper.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/straccum.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/string.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/transform.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/main.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/mmafm.1
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/main.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/mmpfb.1
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/myfont.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1minimize.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1rewrit.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.1
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/automatic.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/dvipsencoding.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/kpseinterface.c
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.hh
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.1
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.hh
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/uniprop.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.hh
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.1
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/cscheck.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.1
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.1
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.1
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/util.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.1
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.cc
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.1
    trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.cc
    trunk/Build/source/texk/lcdf-typetools/version.ac

Modified: trunk/Build/source/texk/README
===================================================================
--- trunk/Build/source/texk/README	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/README	2019-01-28 02:26:31 UTC (rev 49844)
@@ -74,7 +74,7 @@
 
 kpathsea - maintained here, by us
 
-lcdf-typetools 2.107 - checked 22feb18
+lcdf-typetools 2.108 - checked 28jan19
   http://www.lcdf.org/type/
 
 makeindexk - maintained here, by us

Modified: trunk/Build/source/texk/lcdf-typetools/ChangeLog
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/ChangeLog	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/ChangeLog	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,3 +1,8 @@
+2019-01-28  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	Import lcdf-typetools-2.108.
+	* version.ac: Adapted.
+
 2018-02-22  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
 
 	Import lcdf-typetools-2.107.

Modified: trunk/Build/source/texk/lcdf-typetools/TLpatches/ChangeLog
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/TLpatches/ChangeLog	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/TLpatches/ChangeLog	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,3 +1,8 @@
+2019-01-28  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	Import lcdf-typetools-2.108.
+	* patch-02-mingw64, patch-03-w32: Adapted.
+
 2018-02-22  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
 
 	Import lcdf-typetools-2.107.

Modified: trunk/Build/source/texk/lcdf-typetools/TLpatches/TL-Changes
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/TLpatches/TL-Changes	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/TLpatches/TL-Changes	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,5 +1,5 @@
 Changes applied to the lcdf-typetools tree as obtained from:
-	http://www.lcdf.org/type/lcdf-typetools-2.107.tar.gz
+	http://www.lcdf.org/type/lcdf-typetools-2.108.tar.gz
 
 Removed:
 	aclocal.m4

Modified: trunk/Build/source/texk/lcdf-typetools/TLpatches/patch-02-mingw64
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/TLpatches/patch-02-mingw64	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/TLpatches/patch-02-mingw64	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
-diff -ur lcdf-typetools-2.107/include/config.h lcdf-typetools-src/include/config.h
---- lcdf-typetools-2.107/include/config.h	Thu Feb 22 22:51:55 2018
-+++ lcdf-typetools-src/include/config.h	Fri Feb 23 06:24:45 2018
+diff -ur lcdf-typetools-2.108/include/config.h lcdf-typetools-src/include/config.h
+--- lcdf-typetools-2.108/include/config.h	Mon Jan 28 03:39:19 2019
++++ lcdf-typetools-src/include/config.h	Mon Jan 28 07:59:03 2019
 @@ -7,6 +7,7 @@
  #ifdef WIN32
  # ifdef __MINGW32__

Modified: trunk/Build/source/texk/lcdf-typetools/TLpatches/patch-03-w32
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/TLpatches/patch-03-w32	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/TLpatches/patch-03-w32	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
-diff -ur lcdf-typetools-2.107/liblcdf/filename.cc lcdf-typetools-src/liblcdf/filename.cc
---- lcdf-typetools-2.107/liblcdf/filename.cc	Wed Feb 21 22:27:48 2018
-+++ lcdf-typetools-src/liblcdf/filename.cc	Fri Feb 23 06:26:17 2018
+diff -ur lcdf-typetools-2.108/liblcdf/filename.cc lcdf-typetools-src/liblcdf/filename.cc
+--- lcdf-typetools-2.108/liblcdf/filename.cc	Mon Jan 28 03:39:19 2019
++++ lcdf-typetools-src/liblcdf/filename.cc	Mon Jan 28 08:02:02 2019
 @@ -126,5 +126,5 @@
      if (_actual || !_path)
  	return _actual;
@@ -8,23 +8,21 @@
 -	return fopen(_path.c_str(), binary ? "wb" : "w");
 +	return fopen(_path.c_str(), "wb");
  }
-diff -ur lcdf-typetools-2.107/otftotfm/automatic.cc lcdf-typetools-src/otftotfm/automatic.cc
---- lcdf-typetools-2.107/otftotfm/automatic.cc	Wed Feb 21 22:35:01 2018
-+++ lcdf-typetools-src/otftotfm/automatic.cc	Fri Feb 23 06:39:45 2018
-@@ -39,7 +39,11 @@
+diff -ur lcdf-typetools-2.108/otftotfm/automatic.cc lcdf-typetools-src/otftotfm/automatic.cc
+--- lcdf-typetools-2.108/otftotfm/automatic.cc	Mon Jan 28 03:39:20 2019
++++ lcdf-typetools-src/otftotfm/automatic.cc	Mon Jan 28 08:19:16 2019
+@@ -39,7 +39,9 @@
  #include <algorithm>
  
  #ifdef WIN32
 -# define mkdir(dir, access) mkdir(dir)
-+#ifdef _MSC_VER
 +# include <io.h>
 +# include <direct.h>
-+#endif
 +# define mkdir(dir, access) _mkdir(dir)
  # define COPY_CMD "copy"
  # define CMD_SEP "&"
  #else
-@@ -124,7 +128,18 @@
+@@ -124,7 +126,18 @@
  static void
  find_writable_texdir(ErrorHandler *errh, const char *)
  {
@@ -43,7 +41,7 @@
      if (!writable_texdir)
          look_for_writable_texdir("$VARTEXMF", false);
      if (!writable_texdir)
-@@ -313,7 +328,7 @@
+@@ -313,7 +326,7 @@
      String ls_r = writable_texdir + "ls-R";
      bool success = false;
      if (access(ls_r.c_str(), R_OK) >= 0) // make sure it already exists
@@ -52,7 +50,7 @@
              fprintf(f, "./%s:\n%s\n", directory.c_str(), file.c_str());
              success = true;
              fclose(f);
-@@ -323,7 +338,11 @@
+@@ -323,7 +336,11 @@
      if (!success && writable_texdir.find_left('\'') < 0 && directory.find_left('\'') < 0 && file.find_left('\'') < 0) {
          // look for mktexupd script
          if (!mktexupd_tried) {
@@ -64,7 +62,7 @@
              mktexupd_tried = true;
          }
  
-@@ -677,7 +696,7 @@
+@@ -677,7 +694,7 @@
  #endif
              {
                  fclose(f);
@@ -73,11 +71,11 @@
                  fd = fileno(f);
              }
  
-@@ -742,7 +761,16 @@
+@@ -746,7 +763,16 @@
              if (slash >= 0)
                  filename = filename.substring(slash + 1);
              String redirect = verbose ? " 1>&2" : " >" DEV_NULL " 2>&1";
--            String command = "updmap --nomkmap --enable Map " + shell_quote(filename) + redirect
+-            String command = updmap_prog + " --nomkmap --enable Map " + shell_quote(filename) + redirect
 +#if defined(W32TEX)
 +// jtex_filetype is defined only in W32TeX
 +            char *p = kpsei_var_value("jtex_filetype");
@@ -88,12 +86,12 @@
 +#endif
 +            String option = "--enable Map ";
 +            String command = "updmap --nomkmap " + option  + shell_quote(filename) + redirect
-                 + CMD_SEP " updmap" + redirect;
+                 + CMD_SEP " " + updmap_prog + redirect;
              int retval = mysystem(command.c_str(), errh);
              if (retval == 127)
-diff -ur lcdf-typetools-2.107/otftotfm/kpseinterface.c lcdf-typetools-src/otftotfm/kpseinterface.c
---- lcdf-typetools-2.107/otftotfm/kpseinterface.c	Wed Feb 21 22:30:43 2018
-+++ lcdf-typetools-src/otftotfm/kpseinterface.c	Fri Feb 23 06:41:33 2018
+diff -ur lcdf-typetools-2.108/otftotfm/kpseinterface.c lcdf-typetools-src/otftotfm/kpseinterface.c
+--- lcdf-typetools-2.108/otftotfm/kpseinterface.c	Mon Jan 28 03:39:20 2019
++++ lcdf-typetools-src/otftotfm/kpseinterface.c	Mon Jan 28 08:21:16 2019
 @@ -21,6 +21,9 @@
  #include <kpathsea/expand.h>
  #include <kpathsea/c-pathch.h>
@@ -116,9 +114,9 @@
 +    return kpse_var_value(name);
 +}
 +#endif
-diff -ur lcdf-typetools-2.107/otftotfm/kpseinterface.h lcdf-typetools-src/otftotfm/kpseinterface.h
---- lcdf-typetools-2.107/otftotfm/kpseinterface.h	Tue Sep 17 22:27:20 2013
-+++ lcdf-typetools-src/otftotfm/kpseinterface.h	Fri Feb 23 06:42:27 2018
+diff -ur lcdf-typetools-2.108/otftotfm/kpseinterface.h lcdf-typetools-src/otftotfm/kpseinterface.h
+--- lcdf-typetools-2.108/otftotfm/kpseinterface.h	Thu Jun 23 21:25:52 2016
++++ lcdf-typetools-src/otftotfm/kpseinterface.h	Mon Jan 28 08:22:18 2019
 @@ -13,6 +13,10 @@
  char* kpsei_find_file(const char* name, int format);
  void kpsei_set_debug_flags(unsigned flags);
@@ -130,9 +128,9 @@
  #ifdef __cplusplus
  }
  #endif
-diff -ur lcdf-typetools-2.107/otftotfm/otftotfm.cc lcdf-typetools-src/otftotfm/otftotfm.cc
---- lcdf-typetools-2.107/otftotfm/otftotfm.cc	Thu Feb 22 21:04:01 2018
-+++ lcdf-typetools-src/otftotfm/otftotfm.cc	Fri Feb 23 06:44:44 2018
+diff -ur lcdf-typetools-2.108/otftotfm/otftotfm.cc lcdf-typetools-src/otftotfm/otftotfm.cc
+--- lcdf-typetools-2.108/otftotfm/otftotfm.cc	Mon Jan 28 03:39:20 2019
++++ lcdf-typetools-src/otftotfm/otftotfm.cc	Mon Jan 28 08:25:14 2019
 @@ -63,6 +63,9 @@
  #ifdef HAVE_FCNTL_H
  # include <fcntl.h>
@@ -143,7 +141,7 @@
  
  using namespace Efont;
  
-@@ -585,7 +588,7 @@
+@@ -590,7 +593,7 @@
  
      if (verbose)
          errh->message("creating %s", filename.c_str());
@@ -152,7 +150,7 @@
      if (!f) {
          errh->error("%s: %s", filename.c_str(), strerror(errno));
          return;
-@@ -1031,7 +1034,7 @@
+@@ -1048,7 +1051,7 @@
  #endif
      {
          fclose(f);
@@ -161,9 +159,9 @@
          fd = fileno(f);
      }
  
-diff -ur lcdf-typetools-2.107/t1dotlessj/t1dotlessj.cc lcdf-typetools-src/t1dotlessj/t1dotlessj.cc
---- lcdf-typetools-2.107/t1dotlessj/t1dotlessj.cc	Wed Feb 21 22:27:48 2018
-+++ lcdf-typetools-src/t1dotlessj/t1dotlessj.cc	Fri Feb 23 06:46:52 2018
+diff -ur lcdf-typetools-2.108/t1dotlessj/t1dotlessj.cc lcdf-typetools-src/t1dotlessj/t1dotlessj.cc
+--- lcdf-typetools-2.108/t1dotlessj/t1dotlessj.cc	Mon Jan 28 03:39:20 2019
++++ lcdf-typetools-src/t1dotlessj/t1dotlessj.cc	Mon Jan 28 08:29:20 2019
 @@ -410,10 +410,10 @@
      // write it to output
      if (!outputf)
@@ -177,9 +175,9 @@
  	Type1PFBWriter w(outputf);
  	dotless_font->write(w);
      } else {
-diff -ur lcdf-typetools-2.107/t1rawafm/t1rawafm.cc lcdf-typetools-src/t1rawafm/t1rawafm.cc
---- lcdf-typetools-2.107/t1rawafm/t1rawafm.cc	Wed Feb 21 22:27:48 2018
-+++ lcdf-typetools-src/t1rawafm/t1rawafm.cc	Fri Feb 23 06:48:17 2018
+diff -ur lcdf-typetools-2.108/t1rawafm/t1rawafm.cc lcdf-typetools-src/t1rawafm/t1rawafm.cc
+--- lcdf-typetools-2.108/t1rawafm/t1rawafm.cc	Mon Jan 28 03:39:20 2019
++++ lcdf-typetools-src/t1rawafm/t1rawafm.cc	Mon Jan 28 08:30:38 2019
 @@ -359,6 +359,9 @@
          if (!outf)
              errh->fatal("%s: %s", output_file, strerror(errno));
@@ -190,9 +188,9 @@
  
      write_afm(outf, font);
  
-diff -ur lcdf-typetools-2.107/t1reencode/t1reencode.cc lcdf-typetools-src/t1reencode/t1reencode.cc
---- lcdf-typetools-2.107/t1reencode/t1reencode.cc	Wed Feb 21 22:27:48 2018
-+++ lcdf-typetools-src/t1reencode/t1reencode.cc	Fri Feb 23 06:49:36 2018
+diff -ur lcdf-typetools-2.108/t1reencode/t1reencode.cc lcdf-typetools-src/t1reencode/t1reencode.cc
+--- lcdf-typetools-2.108/t1reencode/t1reencode.cc	Mon Jan 28 03:39:20 2019
++++ lcdf-typetools-src/t1reencode/t1reencode.cc	Mon Jan 28 08:32:09 2019
 @@ -1094,10 +1094,10 @@
  	if (!outf)
  	    errh->fatal("%s: %s", output_file, strerror(errno));
@@ -206,9 +204,9 @@
  	Type1PFBWriter w(outf);
  	font->write(w);
      } else {
-diff -ur lcdf-typetools-2.107/t1testpage/t1testpage.cc lcdf-typetools-src/t1testpage/t1testpage.cc
---- lcdf-typetools-2.107/t1testpage/t1testpage.cc	Wed Feb 21 22:27:48 2018
-+++ lcdf-typetools-src/t1testpage/t1testpage.cc	Fri Feb 23 06:50:58 2018
+diff -ur lcdf-typetools-2.108/t1testpage/t1testpage.cc lcdf-typetools-src/t1testpage/t1testpage.cc
+--- lcdf-typetools-2.108/t1testpage/t1testpage.cc	Mon Jan 28 03:39:20 2019
++++ lcdf-typetools-src/t1testpage/t1testpage.cc	Mon Jan 28 08:33:12 2019
 @@ -665,6 +665,9 @@
  	if (!outf)
  	    errh->fatal("%s: %s", output_file, strerror(errno));

Modified: trunk/Build/source/texk/lcdf-typetools/configure
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/configure	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/configure	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for LCDF typetools (TeX Live) 2.107.
+# Generated by GNU Autoconf 2.69 for LCDF typetools (TeX Live) 2.108.
 #
 # Report bugs to <tex-k at tug.org>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='LCDF typetools (TeX Live)'
 PACKAGE_TARNAME='lcdf-typetools--tex-live-'
-PACKAGE_VERSION='2.107'
-PACKAGE_STRING='LCDF typetools (TeX Live) 2.107'
+PACKAGE_VERSION='2.108'
+PACKAGE_STRING='LCDF typetools (TeX Live) 2.108'
 PACKAGE_BUGREPORT='tex-k at tug.org'
 PACKAGE_URL=''
 
@@ -1369,7 +1369,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 LCDF typetools (TeX Live) 2.107 to adapt to many kinds of systems.
+\`configure' configures LCDF typetools (TeX Live) 2.108 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1440,7 +1440,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of LCDF typetools (TeX Live) 2.107:";;
+     short | recursive ) echo "Configuration of LCDF typetools (TeX Live) 2.108:";;
    esac
   cat <<\_ACEOF
 
@@ -1585,7 +1585,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-LCDF typetools (TeX Live) configure 2.107
+LCDF typetools (TeX Live) configure 2.108
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2791,7 +2791,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by LCDF typetools (TeX Live) $as_me 2.107, which was
+It was created by LCDF typetools (TeX Live) $as_me 2.108, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -8478,7 +8478,7 @@
 
 # Define the identity of the package.
  PACKAGE='lcdf-typetools--tex-live-'
- VERSION='2.107'
+ VERSION='2.108'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -14082,7 +14082,7 @@
 
 
 
-LCDF_TYPETOOLS_VERSION=2.107
+LCDF_TYPETOOLS_VERSION=2.108
 
 
 ac_config_headers="$ac_config_headers autoconf.h"
@@ -19945,7 +19945,7 @@
 Report bugs to <bug-libtool at gnu.org>."
 
 lt_cl_version="\
-LCDF typetools (TeX Live) config.lt 2.107
+LCDF typetools (TeX Live) config.lt 2.108
 configured by $0, generated by GNU Autoconf 2.69.
 
 Copyright (C) 2011 Free Software Foundation, Inc.
@@ -22015,7 +22015,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by LCDF typetools (TeX Live) $as_me 2.107, which was
+This file was extended by LCDF typetools (TeX Live) $as_me 2.108, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -22081,7 +22081,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-LCDF typetools (TeX Live) config.status 2.107
+LCDF typetools (TeX Live) config.status 2.108
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/NEWS.md
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/NEWS.md	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/NEWS.md	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,13 @@
 LCDF Typetools NEWS
 ===================
 
+## Version 2.108 – 27.Jan.2019
+
+* Handle more fonts.
+
+* `otftotfm -a`: Run `updmap-sys` by default.
+
+
 ## Version 2.107 – 22.Feb.2018
 
 * Some corrections to output of `--math-spacing`.
@@ -645,7 +652,7 @@
   `--clear-subs` options (inspired by patch from Achim Blumensath).
 
 * otftotfm: Update documentation and behavior for newer teTeX
-  installations.  For instance, run the system 'updmap' by default (unless
+  installations.  For instance, run the system `updmap` by default (unless
   you give the `--no-updmap` option).  This makes automatic mode much
   easier to set up.
 

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/README.md
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/README.md	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/README.md	2019-01-28 02:26:31 UTC (rev 49844)
@@ -99,7 +99,7 @@
 Copyright and license
 ---------------------
 
-All source code is Copyright (c) 1997-2018 Eddie Kohler.
+All source code is Copyright (c) 1997-2019 Eddie Kohler.
 
 This code is distributed under the GNU General Public License, Version 2
 (and only Version 2). The GNU General Public License is available via the

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.1
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.1	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.1	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,4 +1,4 @@
-.ds V 2.107
+.ds V 2.108
 .de M
 .BR "\\$1" "(\\$2)\\$3"
 ..

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* cfftot1.cc -- driver for translating CFF fonts to Type 1 fonts
  *
- * Copyright (c) 2002-2018 Eddie Kohler
+ * Copyright (c) 2002-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free
@@ -221,7 +221,7 @@
 
 	  case VERSION_OPT:
 	    printf("cfftot1 (LCDF typetools) %s\n", VERSION);
-	    printf("Copyright (C) 2002-2018 Eddie Kohler\n\
+	    printf("Copyright (C) 2002-2019 Eddie Kohler\n\
 This is free software; see the source for copying conditions.\n\
 There is NO warranty, not even for merchantability or fitness for a\n\
 particular purpose.\n");

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/maket1font.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/maket1font.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/maket1font.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* maket1font.{cc,hh} -- translate CFF fonts to Type 1 fonts
  *
- * Copyright (c) 2002-2018 Eddie Kohler
+ * Copyright (c) 2002-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/configure.ac
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/configure.ac	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/configure.ac	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_INIT([lcdf-typetools], [2.107])
+AC_INIT([lcdf-typetools], [2.108])
 AC_CONFIG_SRCDIR([NEWS.md])
 AM_INIT_AUTOMAKE
 AC_CONFIG_HEADERS([autoconf.h])

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/cff.hh
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/cff.hh	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/cff.hh	2019-01-28 02:26:31 UTC (rev 49844)
@@ -31,7 +31,7 @@
 
     int nfonts() const                  { return _name_index.size(); }
     PermString font_name(int i) const   { return _name_index[i]; }
-    FontParent *font(PermString = PermString(), ErrorHandler * = 0);
+    FontParent* font(PermString = PermString(), ErrorHandler* = 0);
 
     enum { NSTANDARD_STRINGS = 391, MAX_SID = 64999 };
     int max_sid() const                 { return NSTANDARD_STRINGS - 1 + _strings.size(); }
@@ -125,13 +125,12 @@
     mutable HashMap<PermString, int> _strings_map;
 
     IndexIterator _gsubrs_index;
-    Vector<Charstring *> _gsubrs_cs;
+    Vector<Charstring*> _gsubrs_cs;
+    Vector<FontParent*> _fonts;
 
     unsigned _units_per_em;
 
     int parse_header(ErrorHandler *);
-    int font_offset(int, int &, int &) const;
-    int font_offset(PermString, int &, int &) const;
 
     enum { HEADER_SIZE = 4 };
 
@@ -238,6 +237,7 @@
     Cff* _cff;
     int _charstring_type;
     int _error;
+    int _font_index;
 
     FontParent(const FontParent &);
     FontParent &operator=(const FontParent &);
@@ -244,6 +244,7 @@
 
     Charstring *charstring(const IndexIterator &, int) const;
 
+    friend class Cff;
     friend class Cff::Font;
     friend class Cff::CIDFont;
     friend class Cff::ChildFont;

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/clp.h
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/clp.h	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/clp.h	2019-01-28 02:26:31 UTC (rev 49844)
@@ -8,7 +8,7 @@
 /* clp.h - Public interface to CLP.
  * This file is part of CLP, the command line parser package.
  *
- * Copyright (c) 1997-2018 Eddie Kohler, ekohler at gmail.com
+ * Copyright (c) 1997-2019 Eddie Kohler, ekohler at gmail.com
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/vector.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/vector.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/vector.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -7,7 +7,7 @@
  *
  * Copyright (c) 1999-2000 Massachusetts Institute of Technology
  * Copyright (c) 2001-2003 International Computer Science Institute
- * Copyright (c) 1999-2018 Eddie Kohler
+ * Copyright (c) 1999-2019 Eddie Kohler
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/lcdf-typetools.spec
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/lcdf-typetools.spec	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/lcdf-typetools.spec	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 Summary: Programs to manipulate OpenType and multiple-master fonts
 Name: lcdf-typetools
-Version: 2.107
+Version: 2.108
 Copyright: GPL
 Vendor: Little Cambridgeport Design Factory <http://www.lcdf.org/>
 Group: Utilities/Printing

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afm.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afm.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afm.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* afm.{cc,hh} -- Adobe Font Metrics files
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmparse.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmparse.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmparse.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* afmparse.{cc,hh} -- Adobe Font Metrics parsing
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmw.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmw.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmw.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* afmw.{cc,hh} -- Adobe Font Metrics writing
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/amfm.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/amfm.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/amfm.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* amfm.{cc,hh} -- Adobe Multiple-Master Font Metrics
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/cff.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/cff.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/cff.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* cff.{cc,hh} -- Compact Font Format fonts
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free
@@ -326,17 +326,11 @@
     0, 0
 };
 
-static const Cff::Dict &
+static const Cff::Dict&
 default_dict()
 {
-    static Cff *cff;
-    static Cff::Font *cfffont;
-    if (!cfffont) {
-        cff = new Cff(String::make_stable((const char *) default_dict_cff_data, sizeof(default_dict_cff_data)),
-                      0, ErrorHandler::default_handler());
-        cfffont = (Cff::Font *) cff->font();
-    }
-    return cfffont->top_dict();
+    static Cff cff(String::make_stable((const char*) default_dict_cff_data, sizeof(default_dict_cff_data)), 0, ErrorHandler::default_handler());
+    return static_cast<Cff::Font*>(cff.font())->top_dict();
 }
 
 
@@ -360,6 +354,8 @@
 {
     for (int i = 0; i < _gsubrs_cs.size(); i++)
         delete _gsubrs_cs[i];
+    for (int i = 0; i < _fonts.size(); ++i)
+        delete _fonts[i];
 }
 
 /*
@@ -500,25 +496,6 @@
     }
 }
 
-int
-Cff::font_offset(int findex, int &offset, int &length) const
-{
-    if (findex < 0 || findex >= nfonts())
-        return -ENOENT;
-    offset = _top_dict_index[findex] - _data;
-    length = _top_dict_index[findex + 1] - _top_dict_index[findex];
-    return 0;
-}
-
-int
-Cff::font_offset(PermString name, int &offset, int &length) const
-{
-    for (int i = 0; i < _name_index.size(); i++)
-        if (_name_index[i] == name && name)
-            return font_offset(i, offset, length);
-    return -ENOENT;
-}
-
 Cff::FontParent *
 Cff::font(PermString font_name, ErrorHandler *errh)
 {
@@ -529,24 +506,39 @@
         return errh->error("invalid CFF"), (FontParent *) 0;
 
     // search for a font named 'font_name'
-    for (int i = 0; i < _name_index.size(); i++)
-        if (_name_index[i] && (!font_name || font_name == _name_index[i])) {
-            int td_offset = _top_dict_index[i] - _data;
-            int td_length = _top_dict_index[i + 1] - _top_dict_index[i];
-            Dict top_dict(this, td_offset, td_length, errh, "Top DICT");
-            if (!top_dict.ok())
-                return 0;
-            else if (top_dict.has_first(oROS))
-                return new Cff::CIDFont(this, _name_index[i], top_dict, errh);
-            else
-                return new Cff::Font(this, _name_index[i], top_dict, errh);
-        }
+    int findex;
+    for (findex = 0; findex < _name_index.size(); ++findex) {
+        if (_name_index[findex]
+            && (!font_name || font_name == _name_index[findex]))
+            break;
+    }
+    if (findex >= _name_index.size()) {
+        if (!font_name)
+            errh->error("no fonts in CFF");
+        else
+            errh->error("font %<%s%> not found", font_name.c_str());
+        return 0;
+    }
 
-    if (!font_name)
-        errh->error("no fonts in CFF");
+    // return font
+    for (int i = 0; i < _fonts.size(); ++i)
+        if (_fonts[i]->_font_index == findex)
+            return _fonts[i];
+
+    int td_offset = _top_dict_index[findex] - _data;
+    int td_length = _top_dict_index[findex + 1] - _top_dict_index[findex];
+    Dict top_dict(this, td_offset, td_length, errh, "Top DICT");
+    if (!top_dict.ok())
+        return 0;
+
+    Cff::FontParent* fp;
+    if (top_dict.has_first(oROS))
+        fp = new Cff::CIDFont(this, _name_index[findex], top_dict, errh);
     else
-        errh->error("font %<%s%> not found", font_name.c_str());
-    return 0;
+        fp = new Cff::Font(this, _name_index[findex], top_dict, errh);
+    fp->_font_index = findex;
+    _fonts.push_back(fp);
+    return fp;
 }
 
 static inline int

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/encoding.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/encoding.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/encoding.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* encoding.{cc,hh} -- 8-bit encodings
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/findmet.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/findmet.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/findmet.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* findmet.{cc,hh} -- find font metrics
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/metrics.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/metrics.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/metrics.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* metrics.{cc,hh} -- generic font metrics
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otf.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otf.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otf.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* otf.{cc,hh} -- OpenType font basics
  *
- * Copyright (c) 2002-2018 Eddie Kohler
+ * Copyright (c) 2002-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfcmap.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfcmap.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfcmap.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* otfcmap.{cc,hh} -- OpenType cmap table
  *
- * Copyright (c) 2002-2018 Eddie Kohler
+ * Copyright (c) 2002-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free
@@ -26,6 +26,7 @@
 #define USHORT_AT(d)            (Data::u16_aligned(d))
 #define SHORT_AT(d)             (Data::s16_aligned(d))
 #define ULONG_AT(d)             (Data::u32_aligned(d))
+#define ULONG_AT2(d)            (Data::u32_aligned16(d))
 
 namespace Efont { namespace OpenType {
 
@@ -80,9 +81,9 @@
             language = USHORT_AT(data + offset + 4);
         } else if (format == F_HIBYTE32 || format == F_TRIMMED32
                    || format == F_SEGMENTED32) {
-            if (offset + 12 > (uint32_t) len || ULONG_AT(data + offset + 4) < 12)
+            if (offset + 12 > (uint32_t) len || ULONG_AT2(data + offset + 4) < 12)
                 goto length_error;
-            language = ULONG_AT(data + offset + 8);
+            language = ULONG_AT2(data + offset + 8);
         } else
             continue;
         if (!(platform > last_platform
@@ -90,7 +91,7 @@
                   && (encoding > last_encoding
                       || (encoding == last_encoding
                           && language > last_language)))))
-            return errh->error("subtables out of order at entry %d", i);
+            errh->warning("unsorted cmap encoding records at entry %d (%d,%d,%d follows %d,%d,%d)", i, platform, encoding, language, last_platform, last_encoding, last_language);
         if ((platform == 0 || (platform == 3 && encoding == 1))
             && _first_unicode_table < 0)
             _first_unicode_table = i;
@@ -331,17 +332,17 @@
     }
 
     case F_SEGMENTED32: {
-        uint32_t nGroups = ULONG_AT(data + 12);
+        uint32_t nGroups = ULONG_AT2(data + 12);
         uint32_t l = 0, r = nGroups;
         const uint8_t *groups = data + 16;
         while (l < r) {
             uint32_t m = l + (r - l) / 2;
-            uint32_t startCharCode = ULONG_AT(groups + m * 12);
-            uint32_t endCharCode = ULONG_AT(groups + m * 12 + 4);
+            uint32_t startCharCode = ULONG_AT2(groups + m * 12);
+            uint32_t endCharCode = ULONG_AT2(groups + m * 12 + 4);
             if (uni < startCharCode)
                 r = m;
             else if (uni <= endCharCode)
-                return ULONG_AT(groups + m * 12 + 8) + uni - startCharCode;
+                return ULONG_AT2(groups + m * 12 + 8) + uni - startCharCode;
             else
                 l = m + 1;
         }
@@ -428,12 +429,12 @@
     }
 
     case F_SEGMENTED32: {
-        uint32_t nGroups = ULONG_AT(data + 12);
+        uint32_t nGroups = ULONG_AT2(data + 12);
         const uint8_t *groups = data + 16;
         for (uint32_t i = 0; i < nGroups; i++, groups += 12) {
-            uint32_t startCharCode = ULONG_AT(groups);
-            uint32_t nCharCodes = ULONG_AT(groups + 4) - startCharCode;
-            Glyph startGlyphID = ULONG_AT(groups + 8);
+            uint32_t startCharCode = ULONG_AT2(groups);
+            uint32_t nCharCodes = ULONG_AT2(groups + 4) - startCharCode;
+            Glyph startGlyphID = ULONG_AT2(groups + 8);
             for (uint32_t i = 0; i <= nCharCodes; i++)
                 ugp.push_back(std::make_pair(startCharCode + i, startGlyphID + i));
         }

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdata.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdata.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdata.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* otfdata.{cc,hh} -- OpenType bounds-checked string type
  *
- * Copyright (c) 2003-2018 Eddie Kohler
+ * Copyright (c) 2003-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdescrip.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdescrip.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdescrip.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* otfdescrip.cc -- descriptions for OpenType tags
  *
- * Copyright (c) 2002-2018 Eddie Kohler
+ * Copyright (c) 2002-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgpos.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgpos.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgpos.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* otfgpos.{cc,hh} -- OpenType GPOS table
  *
- * Copyright (c) 2003-2018 Eddie Kohler
+ * Copyright (c) 2003-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgsub.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgsub.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgsub.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* otfgsub.{cc,hh} -- OpenType GSUB table
  *
- * Copyright (c) 2003-2018 Eddie Kohler
+ * Copyright (c) 2003-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfname.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfname.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfname.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* otfname.{cc,hh} -- OpenType name table
  *
- * Copyright (c) 2003-2018 Eddie Kohler
+ * Copyright (c) 2003-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfos2.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfos2.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfos2.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* otfos2.{cc,hh} -- OpenType OS/2 table
  *
- * Copyright (c) 2005-2018 Eddie Kohler
+ * Copyright (c) 2005-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfpost.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfpost.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfpost.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* otfpost.{cc,hh} -- OpenType post table
  *
- * Copyright (c) 2006-2018 Eddie Kohler
+ * Copyright (c) 2006-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/pairop.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/pairop.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/pairop.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* pairop.{cc,hh} -- ligature/kern font metrics
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/psres.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/psres.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/psres.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* psres.{cc,hh} -- PSres.upr files
  *
- * Copyright (c) 1999-2018 Eddie Kohler
+ * Copyright (c) 1999-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1bounds.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1bounds.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1bounds.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* t1bounds.{cc,hh} -- charstring bounding box finder
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1cs.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1cs.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1cs.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* t1cs.{cc,hh} -- Type 1/2 charstrings
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1csgen.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1csgen.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1csgen.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* t1csgen.{cc,hh} -- Type 1 charstring generation
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1font.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1font.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1font.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* t1font.{cc,hh} -- Type 1 font
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1fontskel.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1fontskel.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1fontskel.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* t1fontskel.cc -- Type 1 font skeleton
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1interp.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1interp.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1interp.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* t1interp.{cc,hh} -- Type 1/2 charstring interpretation
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1item.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1item.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1item.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* t1item.{cc,hh} -- items in a Type 1 font
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1mm.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1mm.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1mm.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* t1mm.{cc,hh} -- Type 1 multiple master font information
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1rw.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1rw.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1rw.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* t1rw.{cc,hh} -- Type 1 font reading and writing
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1unparser.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1unparser.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1unparser.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* t1unparser.{cc,hh} -- debug printing of Type 1 fonts
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfcs.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfcs.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfcs.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* ttfcs.{cc,hh} -- TrueType "charstring" emulation
  *
- * Copyright (c) 2006-2018 Eddie Kohler
+ * Copyright (c) 2006-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfhead.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfhead.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfhead.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* ttfhead.{cc,hh} -- TrueType head table
  *
- * Copyright (c) 2007-2018 Eddie Kohler
+ * Copyright (c) 2007-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfkern.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfkern.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfkern.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* ttfkern.{cc,hh} -- TrueType kern table
  *
- * Copyright (c) 2009-2018 Eddie Kohler
+ * Copyright (c) 2009-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/bezier.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/bezier.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/bezier.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* bezier.{cc,hh} -- cubic Bezier curves
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/clp.c
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/clp.c	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/clp.c	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 /* clp.c - Complete source code for CLP.
  * This file is part of CLP, the command line parser package.
  *
- * Copyright (c) 1997-2018 Eddie Kohler, ekohler at gmail.com
+ * Copyright (c) 1997-2019 Eddie Kohler, ekohler at gmail.com
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/error.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/error.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/error.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -4,7 +4,7 @@
  * Eddie Kohler
  *
  * Copyright (c) 1999-2000 Massachusetts Institute of Technology
- * Copyright (c) 2001-2018 Eddie Kohler
+ * Copyright (c) 2001-2019 Eddie Kohler
  * Copyright (c) 2008 Meraki, Inc.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
@@ -585,6 +585,7 @@
 	case 'd':
 	case 'i':
 	    flags |= cf_signed;
+            /* fallthru */
 	case 'u':
 	number: {
 	    // protect numbuf from overflow
@@ -666,6 +667,7 @@
 
 	case 'X':
 	    flags |= cf_uppercase;
+            /* fallthru */
 	case 'x':
 	    base = 16;
 	    goto number;

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/filename.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/filename.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/filename.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* filename.{cc,hh} -- filenames
  *
- * Copyright (c) 1999-2018 Eddie Kohler
+ * Copyright (c) 1999-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/globmatch.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/globmatch.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/globmatch.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* globmatch.{cc,hh} -- glob_match() function for shell globbing
  *
- * Copyright (c) 2000-2018 Eddie Kohler
+ * Copyright (c) 2000-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/landmark.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/landmark.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/landmark.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* landmark.{cc,hh} -- FILE:LINE type landmarks
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/permstr.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/permstr.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/permstr.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* permstr.{cc,hh} -- permanent strings
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/point.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/point.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/point.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* point.{cc,hh} -- 2D points
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/slurper.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/slurper.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/slurper.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* slurper.{cc,hh} -- reading from files a line at a time
  *
- * Copyright (c) 1998-2018 Eddie Kohler
+ * Copyright (c) 1998-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/straccum.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/straccum.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/straccum.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -4,7 +4,7 @@
  * Eddie Kohler
  *
  * Copyright (c) 1999-2000 Massachusetts Institute of Technology
- * Copyright (c) 2001-2018 Eddie Kohler
+ * Copyright (c) 2001-2019 Eddie Kohler
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/string.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/string.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/string.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -4,7 +4,7 @@
  * Eddie Kohler
  *
  * Copyright (c) 1999-2000 Massachusetts Institute of Technology
- * Copyright (c) 2001-2018 Eddie Kohler
+ * Copyright (c) 2001-2019 Eddie Kohler
  * Copyright (c) 2008-2009 Meraki, Inc.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/transform.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/transform.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/transform.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -2,7 +2,7 @@
 
 /* transform.{cc,hh} -- planar affine transformations
  *
- * Copyright (c) 2000-2018 Eddie Kohler
+ * Copyright (c) 2000-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/main.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/main.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/main.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* main.cc -- driver for mmafm program
  *
- * Copyright (c) 1997-2018 Eddie Kohler
+ * Copyright (c) 1997-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free
@@ -322,7 +322,7 @@
 
      case VERSION_OPT:
       printf("mmafm (LCDF typetools) %s\n", VERSION);
-      printf("Copyright (C) 1997-2018 Eddie Kohler\n\
+      printf("Copyright (C) 1997-2019 Eddie Kohler\n\
 This is free software; see the source for copying conditions.\n\
 There is NO warranty, not even for merchantability or fitness for a\n\
 particular purpose.\n");

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/mmafm.1
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/mmafm.1	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/mmafm.1	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,5 +1,5 @@
 .\" -*-nroff-*-
-.ds V 2.107
+.ds V 2.108
 .de M
 .BR "\\$1" "(\\$2)\\$3"
 ..

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/main.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/main.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/main.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* main.cc -- driver for mmpfb program
  *
- * Copyright (c) 1997-2018 Eddie Kohler
+ * Copyright (c) 1997-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free
@@ -355,7 +355,7 @@
 
      case VERSION_OPT:
       printf("mmpfb (LCDF typetools) %s\n", VERSION);
-      printf("Copyright (C) 1997-2018 Eddie Kohler\n\
+      printf("Copyright (C) 1997-2019 Eddie Kohler\n\
 This is free software; see the source for copying conditions.\n\
 There is NO warranty, not even for merchantability or fitness for a\n\
 particular purpose.\n");

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/mmpfb.1
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/mmpfb.1	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/mmpfb.1	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,5 +1,5 @@
 .\" -*-nroff-*-
-.ds V 2.107
+.ds V 2.108
 .de M
 .BR "\\$1" "(\\$2)\\$3"
 ..

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/myfont.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/myfont.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/myfont.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* myfont.cc -- general multiple- to single-master conversion
  *
- * Copyright (c) 1997-2018 Eddie Kohler
+ * Copyright (c) 1997-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1minimize.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1minimize.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1minimize.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* t1minimize.cc -- make minimal copy of a Type 1 font
  *
- * Copyright (c) 2003-2018 Eddie Kohler
+ * Copyright (c) 2003-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1rewrit.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1rewrit.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1rewrit.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* t1rewrit.cc -- routines for multiple- to single-master charstring conversion
  *
- * Copyright (c) 1997-2018 Eddie Kohler
+ * Copyright (c) 1997-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.1
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.1	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.1	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,5 +1,5 @@
 '\"t
-.ds V 2.107
+.ds V 2.108
 .de M
 .BR "\\$1" "(\\$2)\\$3"
 ..

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* otfinfo.cc -- driver for reporting information about OpenType fonts
  *
- * Copyright (c) 2003-2018 Eddie Kohler
+ * Copyright (c) 2003-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free
@@ -645,7 +645,7 @@
 
 	  case VERSION_OPT:
 	    printf("otfinfo (LCDF typetools) %s\n", VERSION);
-	    printf("Copyright (C) 2003-2018 Eddie Kohler\n\
+	    printf("Copyright (C) 2003-2019 Eddie Kohler\n\
 This is free software; see the source for copying conditions.\n\
 There is NO warranty, not even for merchantability or fitness for a\n\
 particular purpose.\n");
@@ -721,5 +721,6 @@
 	    do_info(otf, &cerrh, result_errh);
     }
 
+    Clp_DeleteParser(clp);
     return (errh->nerrors() == 0 ? 0 : 1);
 }

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/automatic.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/automatic.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/automatic.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* automatic.{cc,hh} -- code for automatic mode and interfacing with kpathsea
  *
- * Copyright (c) 2003-2018 Eddie Kohler
+ * Copyright (c) 2003-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free
@@ -39,10 +39,8 @@
 #include <algorithm>
 
 #ifdef WIN32
-#ifdef _MSC_VER
 # include <io.h>
 # include <direct.h>
-#endif
 # define mkdir(dir, access) _mkdir(dir)
 # define COPY_CMD "copy"
 # define CMD_SEP "&"
@@ -712,12 +710,14 @@
 
 #if HAVE_KPATHSEA && !WIN32
         // run 'updmap' if present
+        String updmap_prog = output_flags & G_UPDMAP_USER ? "updmap-user" : "updmap-sys";
         String updmap_dir, updmap_file;
         if (automatic && (output_flags & G_UPDMAP))
             updmap_dir = getodir(O_MAP_PARENT, errh);
-        if (updmap_dir && (updmap_file = updmap_dir + "/updmap")
+        if (updmap_dir
+            && (updmap_file = updmap_dir + "/" + updmap_prog)
             && access(updmap_file.c_str(), X_OK) >= 0) {
-            // want to run 'updmap' from its directory, can't use system()
+            // want to run `updmap` from its directory, can't use system()
             if (verbose)
                 errh->message("running %s", updmap_file.c_str());
 
@@ -728,7 +728,9 @@
                 // change to updmap directory, run it
                 if (chdir(updmap_dir.c_str()) < 0)
                     errh->fatal("%s: %s during chdir", updmap_dir.c_str(), strerror(errno));
-                if (execl("./updmap", updmap_file.c_str(), (const char*) 0) < 0)
+                if (execl(output_flags & G_UPDMAP_USER ? "./updmap-user" : "./updmap-sys",
+                          updmap_file.c_str(),
+                          (const char*) 0) < 0)
                     errh->fatal("%s: %s during exec", updmap_file.c_str(), strerror(errno));
                 exit(1);        // should never get here
             }
@@ -771,7 +773,7 @@
 #endif
             String option = "--enable Map ";
             String command = "updmap --nomkmap " + option  + shell_quote(filename) + redirect
-                + CMD_SEP " updmap" + redirect;
+                + CMD_SEP " " + updmap_prog + redirect;
             int retval = mysystem(command.c_str(), errh);
             if (retval == 127)
                 errh->warning("could not run %<%s%>", command.c_str());

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/dvipsencoding.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/dvipsencoding.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/dvipsencoding.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* dvipsencoding.{cc,hh} -- store a DVIPS encoding
  *
- * Copyright (c) 2003-2018 Eddie Kohler
+ * Copyright (c) 2003-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free
@@ -883,7 +883,7 @@
     if (_altselector_char >= 0 && _altselector_char < _e.size()) {
         metrics.add_altselector_code(_altselector_char, 0);
         if (metrics.glyph(_altselector_char) <= 0 && !literal)
-            (void) secondary->encode_uni(_altselector_char, "altselector", U_ALTSELECTOR, metrics, errh);
+            (void) secondary->encode_uni(_altselector_char, "<altselector>", U_ALTSELECTOR, metrics, errh);
     }
 
     // final pass: complain

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* glyphfilter.{cc,hh} -- define subsets of characters
  *
- * Copyright (c) 2004-2018 Eddie Kohler
+ * Copyright (c) 2004-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/kpseinterface.c
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/kpseinterface.c	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/kpseinterface.c	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* kpseinterface.{c,h} -- interface with the kpathsea library
  *
- * Copyright (c) 2003-2018 Eddie Kohler
+ * Copyright (c) 2003-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* metrics.{cc,hh} -- an encoding during and after OpenType features
  *
- * Copyright (c) 2003-2018 Eddie Kohler
+ * Copyright (c) 2003-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free
@@ -667,15 +667,19 @@
 
 void
 Metrics::apply_simple_context_ligature(const Vector<Code> &codes,
-                        const Substitution *s, int lookup, ChangedContext &ctx)
+             const Substitution *s, int lookup, ChangedContext &ctx,
+             const GlyphFilter &glyph_filter,
+             const Vector<PermString>& glyph_names)
 {
     int nleft = s->left_nglyphs(), nin = s->in_nglyphs();
     assert(codes.size() >= 2);
 
     // check if context allows substitutions
-    for (const Code *inp = codes.begin(); inp < codes.end(); ++inp)
-        if (!ctx.allowed(*inp, inp - codes.begin() < nleft))
+    for (int i = 0; i < codes.size(); ++i) {
+        if (!ctx.allowed(codes[i], i < nleft)
+            || !glyph_filter.allow_substitution(s->in_glyph(i), glyph_names, unicode(codes[i])))
             return;
+    }
 
     // check if any part of the combination has already changed
     int ncheck = nleft + (nin > 2 ? 2 : nin);
@@ -734,7 +738,7 @@
                 if (is_apply_single)
                     apply_single(codes[0], s, lookup, ctx, glyph_filter, glyph_names);
                 else
-                    apply_simple_context_ligature(codes, s, lookup, ctx);
+                    apply_simple_context_ligature(codes, s, lookup, ctx, glyph_filter, glyph_names);
             }
         } else
             failures++;

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.hh
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.hh	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.hh	2019-01-28 02:26:31 UTC (rev 49844)
@@ -182,7 +182,9 @@
                 ChangedContext &ctx, const GlyphFilter &glyph_filter,
                 const Vector<PermString> &glyph_names);
     void apply_simple_context_ligature(const Vector<Code> &codes,
-                const Substitution *s, int lookup, ChangedContext &ctx);
+                const Substitution *s, int lookup, ChangedContext &ctx,
+                const GlyphFilter &glyph_filter,
+                const Vector<PermString> &glyph_names);
     void apply_alternates_single(Code cin, const Substitution *s, int lookup,
                 const GlyphFilter &glyph_filter,
                 const Vector<PermString> &glyph_names);

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.1
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.1	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.1	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,5 +1,5 @@
 '\"t
-.ds V 2.107
+.ds V 2.108
 .de M
 .BR "\\$1" "(\\$2)\\$3"
 ..

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* otftotfm.cc -- driver for translating OpenType fonts to TeX metrics
  *
- * Copyright (c) 2003-2018 Eddie Kohler
+ * Copyright (c) 2003-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free
@@ -143,10 +143,12 @@
 #define NO_TYPE1_OPT            (NO_OUTPUT_OPTS + G_TYPE1)
 #define NO_DOTLESSJ_OPT         (NO_OUTPUT_OPTS + G_DOTLESSJ)
 #define NO_UPDMAP_OPT           (NO_OUTPUT_OPTS + G_UPDMAP)
+#define UPDMAP_SYS_OPT          (NO_OUTPUT_OPTS + G_UPDMAP_USER)
 
 #define YES_OUTPUT_OPTS         2000
 #define TRUETYPE_OPT            (YES_OUTPUT_OPTS + G_TRUETYPE)
 #define TYPE42_OPT              (YES_OUTPUT_OPTS + G_TYPE42)
+#define UPDMAP_USER_OPT         (YES_OUTPUT_OPTS + G_UPDMAP_USER)
 
 #define CHAR_OPTTYPE            (Clp_ValFirstUser)
 
@@ -202,6 +204,8 @@
     { "no-type1", 0, NO_TYPE1_OPT, 0, 0 },
     { "no-dotlessj", 0, NO_DOTLESSJ_OPT, 0, 0 },
     { "no-updmap", 0, NO_UPDMAP_OPT, 0, 0 },
+    { "updmap-sys", 0, UPDMAP_SYS_OPT, 0, 0 },
+    { "updmap-user", 0, UPDMAP_USER_OPT, 0, 0 },
     { "truetype", 0, TRUETYPE_OPT, 0, Clp_Negate },
     { "type42", 0, TYPE42_OPT, 0, Clp_Negate },
     { "map-file", 0, MAP_FILE_OPT, Clp_ValString, Clp_Negate },
@@ -373,8 +377,9 @@
       --typeface=NAME          Set typeface name for TDS [<font family>].\n\
       --no-type1               Do not generate Type 1 fonts.\n\
       --no-dotlessj            Do not generate dotless-j fonts.\n\
+      --no-truetype            Do not install TrueType-flavored input fonts.\n\
       --no-updmap              Do not run updmap.\n\
-      --no-truetype            Do not install TrueType-flavored input fonts.\n\
+      --updmap-user            Run `updmap-user` instead of `updmap-sys`.\n\
 \n\
 Output options:\n\
   -n, --name=NAME              Generated font name is NAME.\n\
@@ -744,6 +749,7 @@
     // don't print KRN x after printing LIG x
     uint32_t used[8];
     bool any_ligs = false;
+    StringAccum omitted_clig_sa;
     for (int i = 0; i <= 256; i++)
         if (metrics.glyph(i) && minimum_kern < 10000) {
             int any_lig = metrics.ligatures(i, lig_code2, lig_outcode, lig_context);
@@ -750,14 +756,23 @@
             int any_kern = metrics.kerns(i, kern_code2, kern_amt);
             if (any_lig || any_kern) {
                 StringAccum kern_sa;
-                memset(&used[0], 0, 32);
+                memset(used, 0, sizeof(used));
                 for (int j = 0; j < lig_code2.size(); j++) {
-                    kern_sa << "   (" << lig_context_str(lig_context[j])
-                            << ' ' << glyph_ids[lig_code2[j]]
-                            << ' ' << glyph_ids[lig_outcode[j]]
-                            << ')' << glyph_comments[lig_code2[j]]
-                            << glyph_comments[lig_outcode[j]] << '\n';
-                    used[lig_code2[j] >> 5] |= (1 << (lig_code2[j] & 0x1F));
+                    if (lig_outcode[j] < 257) {
+                        kern_sa << "   (" << lig_context_str(lig_context[j])
+                                << ' ' << glyph_ids[lig_code2[j]]
+                                << ' ' << glyph_ids[lig_outcode[j]]
+                                << ')' << glyph_comments[lig_code2[j]]
+                                << glyph_comments[lig_outcode[j]] << '\n';
+                        used[lig_code2[j] >> 5] |= (1 << (lig_code2[j] & 0x1F));
+                    } else {
+                        omitted_clig_sa << "(COMMENT omitted "
+                                << lig_context_str(lig_context[j])
+                                << ' ' << metrics.code_name(i)
+                                << ' ' << metrics.code_name(lig_code2[j])
+                                << ' ' << metrics.code_name(lig_outcode[j])
+                                << ")\n";
+                    }
                 }
                 for (Vector<int>::const_iterator k2 = kern_code2.begin(); k2 < kern_code2.end(); k2++)
                     if (!(used[*k2 >> 5] & (1 << (*k2 & 0x1F)))) {
@@ -776,6 +791,8 @@
             }
         }
     fprintf(f, "   )\n");
+    if (omitted_clig_sa)
+        fprintf(f, "%s\n", omitted_clig_sa.c_str());
 
     // CHARACTERs
     Vector<Setting> settings;
@@ -1868,6 +1885,7 @@
     GlyphFilter current_substitution_filter;
     GlyphFilter current_alternate_filter;
     GlyphFilter* current_filter_ptr = &null_filter;
+    Vector<GlyphFilter*> allocated_filters;
 
     while (1) {
         int opt = Clp_Next(clp);
@@ -1899,8 +1917,10 @@
               else if (feature_filters[t])
                   usage_error(errh, "feature %<%s%> included twice", t.text().c_str());
               else {
-                  if (!current_filter_ptr)
+                  if (!current_filter_ptr) {
                       current_filter_ptr = new GlyphFilter(current_substitution_filter + current_alternate_filter);
+                      allocated_filters.push_back(current_filter_ptr);
+                  }
                   interesting_features.push_back(t);
                   feature_filters.insert(t, current_filter_ptr);
               }
@@ -2032,8 +2052,10 @@
               else if (altselector_feature_filters[t])
                   usage_error(errh, "altselector feature %<%s%> included twice", t.text().c_str());
               else {
-                  if (!current_filter_ptr)
+                  if (!current_filter_ptr) {
                       current_filter_ptr = new GlyphFilter(current_substitution_filter + current_alternate_filter);
+                      allocated_filters.push_back(current_filter_ptr);
+                  }
                   altselector_features.push_back(t);
                   altselector_feature_filters.insert(t, current_filter_ptr);
               }
@@ -2094,6 +2116,7 @@
         case NO_TYPE1_OPT:
         case NO_DOTLESSJ_OPT:
         case NO_UPDMAP_OPT:
+        case UPDMAP_SYS_OPT:
             output_flags &= ~(opt - NO_OUTPUT_OPTS);
             specified_output_flags |= opt - NO_OUTPUT_OPTS;
             break;
@@ -2100,6 +2123,7 @@
 
         case TRUETYPE_OPT:
         case TYPE42_OPT:
+        case UPDMAP_USER_OPT:
             if (!clp->negated)
                 output_flags |= (opt - YES_OUTPUT_OPTS);
             else
@@ -2243,7 +2267,7 @@
 
           case VERSION_OPT:
             printf("otftotfm (LCDF typetools) %s\n", VERSION);
-            printf("Copyright (C) 2002-2018 Eddie Kohler\n\
+            printf("Copyright (C) 2002-2019 Eddie Kohler\n\
 This is free software; see the source for copying conditions.\n\
 There is NO warranty, not even for merchantability or fitness for a\n\
 particular purpose.\n");
@@ -2302,8 +2326,10 @@
 
     // set up feature filters
     if (!altselector_features.size()) {
-        if (!current_filter_ptr)
+        if (!current_filter_ptr) {
             current_filter_ptr = new GlyphFilter(current_substitution_filter + current_alternate_filter);
+            allocated_filters.push_back(current_filter_ptr);
+        }
         altselector_features.push_back(OpenType::Tag("dlig"));
         altselector_feature_filters.insert(OpenType::Tag("dlig"), current_filter_ptr);
         altselector_features.push_back(OpenType::Tag("salt"));
@@ -2389,7 +2415,6 @@
                     dvipsenc.encode(i, (*t1e)[i]);
             } else
                 errh->fatal("font has no encoding, specify one explicitly");
-            delete font;
         }
 
         // apply default ligkern commands
@@ -2417,5 +2442,8 @@
         errh->error("unhandled exception %<%s%>", e.description.c_str());
     }
 
+    for (int i = 0; i < allocated_filters.size(); ++i)
+        delete allocated_filters[i];
+    Clp_DeleteParser(clp);
     return (errh->nerrors() == 0 ? 0 : 1);
 }

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* secondary.{cc,hh} -- code for generating fake glyphs
  *
- * Copyright (c) 2003-2018 Eddie Kohler
+ * Copyright (c) 2003-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free
@@ -53,7 +53,6 @@
     U_DBLBRACKETLEFT = 0x27E6,  // U+27E6 MATHEMATICAL LEFT WHITE SQUARE BRACKET
     U_DBLBRACKETRIGHT = 0x27E7, // U+27E7 MATHEMATICAL RIGHT WHITE SQUARE BRACKET
     U_INTERROBANGDOWN = 0x2E18, // U+2E18 INVERTED INTERROBANG
-    U_EMPTYSLOT = 0xD801,       // invalid Unicode (not handled by Secondary)
     U_ALTSELECTOR = 0xD802,     // invalid Unicode
     U_CAPITALCWM = 0xD809,      // invalid Unicode
     U_ASCENDERCWM = 0xD80A,     // invalid Unicode
@@ -71,7 +70,6 @@
     U_FFLSMALL = 0xD808,        // invalid Unicode
     // END BACKWARDS COMPATIBILITY
 
-    U_USE_KERNX = 0xD80E,       // invalid Unicode, not in maps
     U_VS1 = 0xFE00,
     U_VS16 = 0xFE0F,
     U_VS17 = 0xE0100,
@@ -125,7 +123,6 @@
 {
     delete cmap;
     delete cff_file;
-    delete cff;
     delete post;
     delete name;
     delete _ttb_program;
@@ -234,8 +231,10 @@
         } catch (Efont::OpenType::Bounds) {
         }
     static bool warned = false;
-    if (_override_x_height == x_height_auto && x1 >= 0 && x2 >= 0
-        && fabs(x1 - x2) > units_per_em() / 100.) {
+    if (_override_x_height == x_height_auto
+        && x1 >= 0
+        && x2 >= 0
+        && fabs(x1 - x2) > units_per_em() / 50.) {
         if (!warned) {
             ErrorHandler* errh = ErrorHandler::default_handler();
             errh->warning("font x-height and height of %<x%> differ by %d%%", (int) (fabs(x1 - x2) * 100 / units_per_em()));
@@ -256,43 +255,38 @@
 
 bool
 Secondary::encode_uni(int code, PermString name,
-                      const uint32_t *uni_begin, const uint32_t *uni_end,
+                      const uint32_t* uni_begin, const uint32_t* uni_end,
                       Metrics &metrics, ErrorHandler *errh)
 {
+    uint32_t uni = 0;
     if (uni_begin + 1 == uni_end)
-        return encode_uni(code, name, *uni_begin, metrics, errh);
-    else {
-        Vector<Setting> v;
-        int max_s = 0;
-        while (uni_begin != uni_end) {
-            Vector<Setting> subv;
-            int s = setting(*uni_begin, subv, metrics, errh);
-            if (s == 0)
-                return false;
-            if (subv.size() && v.size())
-                v.push_back(Setting(Setting::KERN));
-            for (Vector<Setting>::const_iterator it = subv.begin();
-                 it != subv.end(); ++it)
-                v.push_back(*it);
-            max_s = (max_s > s ? max_s : s);
-            ++uni_begin;
-        }
-        metrics.encode_virtual(code, name, 0, v, max_s > 1);
-        return true;
+        uni = *uni_begin;
+
+    SettingSet set(this, metrics);
+    int max_s = 0;
+    while (uni_begin != uni_end) {
+        int s = setting(*uni_begin, set, errh);
+        if (s == 0)
+            return false;
+        max_s = (max_s > s ? max_s : s);
+        ++uni_begin;
+        set.checkpoint();
     }
-}
 
-bool
-Secondary::encode_uni(int code, PermString name, uint32_t uni, Metrics &metrics, ErrorHandler *errh)
-{
-    Vector<Setting> v;
-    if (int s = setting(uni, v, metrics, errh)) {
-        metrics.encode_virtual(code, name, uni, v, s > 1);
-        return true;
-    } else if (_next)
-        return _next->encode_uni(code, name, uni, metrics, errh);
-    else
-        return false;
+    if (uni == U_ALTSELECTOR
+        || (uni >= U_VS1 && uni <= U_VS16)
+        || (uni >= U_VS17 && uni <= U_VS256)) {
+        int selector = 0;
+        if (uni >= U_VS1 && uni <= U_VS16)
+            selector = uni - U_VS1 + 1;
+        else if (uni >= U_VS17 && uni <= U_VS256)
+            selector = uni - U_VS17 + 17;
+        metrics.add_altselector_code(code, selector);
+        name = selector ? permprintf("<vs%d>", selector) : PermString("<altselector>");
+    }
+
+    metrics.encode_virtual(code, name, 0, set.settings(), max_s > 1);
+    return true;
 }
 
 T1Secondary::T1Secondary(const FontInfo &finfo, const String &font_name,
@@ -308,22 +302,22 @@
 }
 
 int
-Secondary::setting(uint32_t uni, Vector<Setting> &v, Metrics &metrics, ErrorHandler *errh)
+Secondary::setting(uint32_t uni, SettingSet& set, ErrorHandler *errh)
 {
     if (_next)
-        return _next->setting(uni, v, metrics, errh);
+        return _next->setting(uni, set, errh);
     else
         return 0;
 }
 
-Secondary::SettingSet& Secondary::SettingSet::show(int uni) {
+SettingSet& SettingSet::show(int uni) {
     if (!ok_)
         return *this;
-    int code = m_.unicode_encoding(uni);
+    int code = metrics_.unicode_encoding(uni);
     if (code < 0) {
         Glyph glyph = s_->_finfo.cmap->map_uni(uni);
         if (glyph != 0)
-            code = m_.force_encoding(glyph);
+            code = metrics_.force_encoding(glyph);
     }
     if (code < 0) {
         ok_ = false;
@@ -334,28 +328,12 @@
             && v_.back().op == Setting::SHOW
             && kern_type_)
             v_.push_back(Setting(kern_type_));
-        v_.push_back(Setting(Setting::SHOW, code, m_.base_glyph(code)));
+        v_.push_back(Setting(Setting::SHOW, code, metrics_.base_glyph(code)));
     }
     return *this;
 }
 
-bool
-T1Secondary::encode_uni(int code, PermString name, uint32_t uni, Metrics &metrics, ErrorHandler *errh)
-{
-    if (uni == U_ALTSELECTOR
-        || (uni >= U_VS1 && uni <= U_VS16)
-        || (uni >= U_VS17 && uni <= U_VS256)) {
-        Vector<Setting> v;
-        setting(uni, v, metrics, errh);
-        int which = (uni == U_ALTSELECTOR ? 0 : (uni <= U_VS16 ? uni - U_VS1 + 1 : uni - U_VS17 + 17));
-        metrics.encode_virtual(code, (which ? permprintf("<vs%d>", which) : PermString("<altselector>")), uni, v, false);
-        metrics.add_altselector_code(code, which);
-        return true;
-    } else
-        return Secondary::encode_uni(code, name, uni, metrics, errh);
-}
 
-
 static String dotlessj_file_name;
 
 static String
@@ -444,13 +422,12 @@
 }
 
 int
-T1Secondary::setting(uint32_t uni, Vector<Setting> &v, Metrics &metrics, ErrorHandler *errh)
+T1Secondary::setting(uint32_t uni, SettingSet& set, ErrorHandler *errh)
 {
     Transform xform;
-    int vsize = v.size();
     extern int letterspace;
 
-    if (set(v, metrics).show(uni).ok())
+    if (set.show(uni).check())
         return 1;
 
     switch (uni) {
@@ -457,76 +434,76 @@
 
       case U_CWM:
       case U_ALTSELECTOR:
-        v.push_back(Setting(Setting::RULE, 0, _xheight));
+        set.push_back(Setting::RULE, 0, _xheight);
         return 1;
 
       case U_CAPITALCWM:
-        v.push_back(Setting(Setting::RULE, 0, font_cap_height(_finfo, xform)));
+        set.push_back(Setting::RULE, 0, font_cap_height(_finfo, xform));
         return 1;
 
       case U_ASCENDERCWM:
-        v.push_back(Setting(Setting::RULE, 0, font_ascender(_finfo, xform)));
+        set.push_back(Setting::RULE, 0, font_ascender(_finfo, xform));
         return 1;
 
     case U_VISIBLESPACE: {
         int sb = (int) (0.050 * _units_per_em), h = (int) (0.150 * _units_per_em),
             lw = (int) (0.040 * _units_per_em);
-        v.push_back(Setting(Setting::MOVE, sb, -h));
-        v.push_back(Setting(Setting::RULE, lw, h));
-        v.push_back(Setting(Setting::RULE, _spacewidth, lw));
-        v.push_back(Setting(Setting::RULE, lw, h));
-        v.push_back(Setting(Setting::MOVE, sb, h));
+        set.move(sb, -h);
+        set.push_back(Setting::RULE, lw, h);
+        set.push_back(Setting::RULE, _spacewidth, lw);
+        set.push_back(Setting::RULE, lw, h);
+        set.move(sb, h);
         return 2;
     }
 
     case U_SS:
-        if (set(v, metrics).show('S').show('S').ok())
+        if (set.show('S').show('S').check())
             return 1;
         break;
 
     case U_SSSMALL:
-        if (set(v, metrics).show(U_SSMALL).show(U_SSMALL).ok()
-            || set(v, metrics).show('s').show('s').ok())
+        if (set.show(U_SSMALL).show(U_SSMALL).check()
+            || set.show('s').show('s').check())
             return 1;
         break;
 
       case U_FFSMALL:
-        if (set(v, metrics).show(U_FSMALL).show(U_FSMALL).ok()
-            || set(v, metrics).show('f').show('f').ok())
+        if (set.show(U_FSMALL).show(U_FSMALL).check()
+            || set.show('f').show('f').check())
             return 1;
         break;
 
       case U_FISMALL:
-        if (set(v, metrics).show(U_FSMALL).show(U_ISMALL).ok()
-            || set(v, metrics).show('f').show('i').ok())
+        if (set.show(U_FSMALL).show(U_ISMALL).check()
+            || set.show('f').show('i').check())
             return 1;
         break;
 
       case U_FLSMALL:
-        if (set(v, metrics).show(U_FSMALL).show(U_LSMALL).ok()
-            || set(v, metrics).show('f').show('l').ok())
+        if (set.show(U_FSMALL).show(U_LSMALL).check()
+            || set.show('f').show('l').check())
             return 1;
         break;
 
       case U_FFISMALL:
-        if (set(v, metrics).show(U_FSMALL).show(U_FSMALL).show(U_ISMALL).ok()
-            || set(v, metrics).show('f').show('f').show('i').ok())
+        if (set.show(U_FSMALL).show(U_FSMALL).show(U_ISMALL).check()
+            || set.show('f').show('f').show('i').check())
             return 1;
         break;
 
       case U_FFLSMALL:
-        if (set(v, metrics).show(U_FSMALL).show(U_FSMALL).show(U_LSMALL).ok()
-            || set(v, metrics).show('f').show('f').show('l').ok())
+        if (set.show(U_FSMALL).show(U_FSMALL).show(U_LSMALL).check()
+            || set.show('f').show('f').show('l').check())
             return 1;
         break;
 
       case U_IJ:
-        if (set(v, metrics).show('I').show('J').ok())
+        if (set.show('I').show('J').check())
             return 1;
         break;
 
       case U_ij:
-        if (set(v, metrics).show('i').show('j').ok())
+        if (set.show('i').show('j').check())
             return 1;
         break;
 
@@ -534,45 +511,45 @@
       case U_DOTLESSJ_2:
       case U_MATHDOTLESSJ: {
           Glyph dj_glyph;
-          int which = dotlessj_font(metrics, errh, dj_glyph);
+          int which = dotlessj_font(set.metrics(), errh, dj_glyph);
           if (which >= 0) {
-              v.push_back(Setting(Setting::FONT, which));
-              v.push_back(Setting(Setting::SHOW, 'j', dj_glyph));
+              set.push_back(Setting::FONT, which);
+              set.push_back(Setting::SHOW, 'j', dj_glyph);
               return 2;
-          } else if (which == J_NODOT && set(v, metrics).show('j').ok())
+          } else if (which == J_NODOT && set.show('j').check())
               return 1;
           break;
       }
 
       case U_DBLBRACKETLEFT:
-        if (set(v, metrics).show('[').ok()) {
+        if (set.show('[').check()) {
             if (!_finfo.is_fixed_pitch()) {
                 double d = char_one_bound(_finfo, xform, 4, true, 0, '[', 0);
-                v.push_back(Setting(Setting::MOVE, (int) (-0.666 * d - letterspace), 0));
+                set.move((int) (-0.666 * d - letterspace));
             }
-            set(v, metrics).show('[');
+            set.show('[');
             return 1;
         }
         break;
 
       case U_DBLBRACKETRIGHT:
-        if (set(v, metrics).show(']').ok()) {
+        if (set.show(']').check()) {
             if (!_finfo.is_fixed_pitch()) {
                 double d = char_one_bound(_finfo, xform, 4, true, 0, ']', 0);
-                v.push_back(Setting(Setting::MOVE, (int) (-0.666 * d - letterspace), 0));
+                set.move((int) (-0.666 * d - letterspace));
             }
-            set(v, metrics).show(']');
+            set.show(']');
             return 1;
         }
         break;
 
       case U_BARDBL:
-        if (set(v, metrics).show('|').ok()) {
+        if (set.show('|').check()) {
             if (!_finfo.is_fixed_pitch()) {
                 double d = char_one_bound(_finfo, Transform(), 4, true, 0, '|', 0);
-                v.push_back(Setting(Setting::MOVE, (int) (-0.333 * d - letterspace), 0));
+                set.move((int) (-0.333 * d - letterspace));
             }
-            set(v, metrics).show('|');
+            set.show('|');
             return 1;
         }
         break;
@@ -584,32 +561,30 @@
               dropdown += std::max(bounds[3], 0.) + std::min(bounds[1], 0.);
           if (char_bounds(bounds, bounds[4], _finfo, xform, '('))
               dropdown -= std::max(bounds[3], 0.) + std::min(bounds[1], 0.);
-          v.push_back(Setting(Setting::MOVE, 0, (int) (-dropdown / 2)));
-          if (set(v, metrics).show('*').ok()) {
-              v.push_back(Setting(Setting::MOVE, 0, -(int) (-dropdown / 2)));
+          int dy = (int) (-dropdown / 2);
+          if (set.move(0, dy).show('*').move(0, -dy).check())
               return 1;
-          }
           break;
       }
 
       case U_TWELVEUDASH:
-        if (set(v, metrics).show(U_ENDASH).ok()) {
+        if (set.show(U_ENDASH).check()) {
             if (!_finfo.is_fixed_pitch()) {
                 double d = char_one_bound(_finfo, xform, 4, true, 0, U_ENDASH, 0);
-                v.push_back(Setting(Setting::MOVE, (int) (_units_per_em * 0.667 - 2 * d - letterspace), 0));
+                set.move((int) (_units_per_em * 0.667 - 2 * d - letterspace));
             }
-            set(v, metrics).show(U_ENDASH);
+            set.show(U_ENDASH);
             return 1;
         }
         break;
 
       case U_THREEQUARTERSEMDASH:
-        if (set(v, metrics).show(U_ENDASH).ok()) {
+        if (set.show(U_ENDASH).check()) {
             if (!_finfo.is_fixed_pitch()) {
                 double d = char_one_bound(_finfo, xform, 4, true, 0, U_ENDASH, 0);
-                v.push_back(Setting(Setting::MOVE, (int) (_units_per_em * 0.750 - 2 * d - letterspace), 0));
+                set.move((int) (_units_per_em * 0.750 - 2 * d - letterspace));
             }
-            set(v, metrics).show(U_ENDASH);
+            set.show(U_ENDASH);
             return 1;
         }
         break;
@@ -616,7 +591,7 @@
 
       case U_CENTIGRADE:
         // TODO: set italic correction to that of a 'C'
-        if (set(v, metrics).kern(Setting::KERNX).show(U_DEGREE).show('C').ok())
+        if (set.show(U_DEGREE).kernx(true).show('C').kernx(false).check())
             return 1;
         break;
 
@@ -625,13 +600,9 @@
               (char_one_bound(_finfo, xform, 4, true, 0, '?', 0)
                - char_one_bound(_finfo, xform, 4, true, 0, '!', 0)) * 0.5
               + 0.050 * _units_per_em;
-          v.push_back(Setting(Setting::PUSH));
-          v.push_back(Setting(Setting::MOVE, (int) exclam_offset, 0));
-          if (set(v, metrics).show('!').ok()) {
-              v.push_back(Setting(Setting::POP));
-              if (set(v, metrics).show('?').ok())
-                  return 1;
-          }
+          if (set.push_back(Setting::PUSH).move((int) exclam_offset)
+              .show('!').push_back(Setting::POP).show('?').check())
+              return 1;
           break;
       }
 
@@ -640,19 +611,15 @@
               (char_one_bound(_finfo, xform, 4, true, 0, U_QUESTIONDOWN, 0)
                - char_one_bound(_finfo, xform, 4, true, 0, U_EXCLAMDOWN, 0)) * 0.5
               + 0.050 * _units_per_em;
-          v.push_back(Setting(Setting::PUSH));
-          v.push_back(Setting(Setting::MOVE, (int) exclam_offset, 0));
-          if (set(v, metrics).show(U_EXCLAMDOWN).ok()) {
-              v.push_back(Setting(Setting::POP));
-              if (set(v, metrics).show(U_QUESTIONDOWN).ok())
-                  return 1;
-          }
+          if (set.push_back(Setting::PUSH).move((int) exclam_offset)
+              .show(U_EXCLAMDOWN).push_back(Setting::POP).show(U_QUESTIONDOWN).check())
+              return 1;
           break;
       }
 
       case U_PERTENTHOUSAND:
-        if (set(v, metrics).kern(Setting::KERNX).show(0xF661).show(U_FRACTION)
-            .show(0xF655).show(0xF655).show(0xF655).ok())
+        if (set.show(0xF661).kernx(true).show(U_FRACTION)
+            .show(0xF655).show(0xF655).show(0xF655).kernx(false).check())
             return 1;
         break;
 
@@ -666,9 +633,7 @@
           }
           if (A_width > -_units_per_em && ring_width > -_units_per_em) {
               int offset = (A_width - ring_width) / 2;
-              v.push_back(Setting(Setting::MOVE, offset, 0));
-              if (set(v, metrics).show(ring_char).ok()) {
-                  v.push_back(Setting(Setting::MOVE, A_width - ring_width - offset, 0));
+              if (set.move(offset).show(ring_char).move(A_width - ring_width - offset).check()) {
                   return 1;
               }
           }
@@ -677,16 +642,12 @@
 
     }
 
-    // didn't find a good setting, restore v to pristine state
-    while (v.size() > vsize)
-        v.pop_back();
-
     // variant selectors get the same setting as ALTSELECTOR
     if ((uni >= U_VS1 && uni <= U_VS16) || (uni >= U_VS17 && uni <= U_VS256))
-        return setting(U_ALTSELECTOR, v, metrics, errh);
+        return setting(U_ALTSELECTOR, set, errh);
 
     // otherwise, try other secondaries
-    return Secondary::setting(uni, v, metrics, errh);
+    return Secondary::setting(uni, set, errh);
 }
 
 

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.hh
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.hh	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.hh	2019-01-28 02:26:31 UTC (rev 49844)
@@ -4,6 +4,7 @@
 #include <efont/cff.hh>
 #include "setting.hh"
 class Metrics;
+class Secondary;
 class Transform;
 namespace Efont { class TrueTypeBoundsCharstringProgram; }
 
@@ -69,31 +70,39 @@
 
 };
 
+class SettingSet {
+public:
+    inline SettingSet(Secondary* s, Metrics& m);
+    inline SettingSet& push_back(Setting s);
+    inline SettingSet& push_back(int op, int x = 0, int y = 0);
+    inline SettingSet& move(int x, int y = 0);
+    SettingSet& show(int uni);
+    inline SettingSet& kernx(bool is_kernx);
+    inline bool check();
+    inline void checkpoint();
+    inline Metrics& metrics() const;
+    inline const Vector<Setting>& settings() const;
+private:
+    Secondary* s_;
+    Vector<Setting> v_;
+    int original_size_;
+    Metrics& metrics_;
+    int kern_type_;
+    bool ok_;
+    typedef Efont::OpenType::Glyph Glyph;
+};
+
 class Secondary { public:
     Secondary(const FontInfo& finfo)    : _finfo(finfo), _next(0) { }
     virtual ~Secondary();
     void set_next(Secondary *s)         { _next = s; }
     typedef Efont::OpenType::Glyph Glyph;
-    bool encode_uni(int code, PermString name, const uint32_t *uni_begin, const uint32_t *uni_end, Metrics &metrics, ErrorHandler *errh);
-    virtual bool encode_uni(int code, PermString name, uint32_t uni, Metrics &, ErrorHandler *);
-    virtual int setting(uint32_t uni, Vector<Setting> &, Metrics &, ErrorHandler *);
+    bool encode_uni(int code, PermString name, const uint32_t* uni_first, const uint32_t* uni_last, Metrics &metrics, ErrorHandler *errh);
+    inline bool encode_uni(int code, PermString name, uint32_t uni, Metrics& m, ErrorHandler* errh);
+    virtual int setting(uint32_t uni, SettingSet&, ErrorHandler *);
   protected:
     const FontInfo& _finfo;
 
-    class SettingSet { public:
-        inline SettingSet(Secondary* s, Vector<Setting>& v, Metrics& m);
-        inline SettingSet& kern(int kern_type);
-        SettingSet& show(int uni);
-        inline bool ok() const;
-    private:
-        Secondary* s_;
-        Vector<Setting>& v_;
-        int original_size_;
-        Metrics& m_;
-        int kern_type_;
-        bool ok_;
-    };
-    inline SettingSet set(Vector<Setting>& v, Metrics& m);
     friend class SettingSet;
   private:
     Secondary *_next;
@@ -101,8 +110,7 @@
 
 class T1Secondary : public Secondary { public:
     T1Secondary(const FontInfo &, const String &font_name, const String &otf_file_name);
-    bool encode_uni(int code, PermString name, uint32_t uni, Metrics &, ErrorHandler *);
-    int setting(uint32_t uni, Vector<Setting> &, Metrics &, ErrorHandler *);
+    int setting(uint32_t uni, SettingSet&, ErrorHandler *);
   private:
     String _font_name;
     String _otf_file_name;
@@ -119,22 +127,51 @@
 double char_one_bound(const FontInfo &, const Transform &,
                       int dimen, bool max, double best, int uni, ...);
 
-inline Secondary::SettingSet::SettingSet(Secondary* s, Vector<Setting>& v, Metrics& m)
-    : s_(s), v_(v), original_size_(v.size()), m_(m), kern_type_(Setting::KERN),
-      ok_(true) {
+inline SettingSet::SettingSet(Secondary* s, Metrics& m)
+    : s_(s), original_size_(0), metrics_(m),
+      kern_type_(Setting::KERN), ok_(true) {
 }
 
-inline Secondary::SettingSet& Secondary::SettingSet::kern(int kern_type) {
-    kern_type_ = kern_type;
+inline SettingSet& SettingSet::kernx(bool is_kernx) {
+    kern_type_ = is_kernx ? Setting::KERNX : Setting::KERN;
     return *this;
 }
 
-inline bool Secondary::SettingSet::ok() const {
-    return ok_;
+inline SettingSet& SettingSet::push_back(Setting s) {
+    if (ok_)
+        v_.push_back(s);
+    return *this;
 }
 
-inline Secondary::SettingSet Secondary::set(Vector<Setting>& v, Metrics& m) {
-    return SettingSet(this, v, m);
+inline SettingSet& SettingSet::push_back(int op, int x, int y) {
+    return push_back(Setting(op, x, y));
 }
 
+inline SettingSet& SettingSet::move(int x, int y) {
+    return push_back(Setting(Setting::MOVE, x, y));
+}
+
+inline bool SettingSet::check() {
+    bool ok = ok_;
+    ok_ = true;
+    return ok;
+}
+
+inline void SettingSet::checkpoint() {
+    assert(ok_);
+    original_size_ = v_.size();
+}
+
+inline Metrics& SettingSet::metrics() const {
+    return metrics_;
+}
+
+inline const Vector<Setting>& SettingSet::settings() const {
+    return v_;
+}
+
+inline bool Secondary::encode_uni(int code, PermString name, uint32_t uni, Metrics& m, ErrorHandler* errh) {
+    return encode_uni(code, name, &uni, &uni + 1, m, errh);
+}
+
 #endif

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/uniprop.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/uniprop.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/uniprop.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* uniprop.{cc,hh} -- code for Unicode character properties
  *
- * Copyright (c) 2004-2018 Eddie Kohler
+ * Copyright (c) 2004-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* util.{cc,hh} -- various bits
  *
- * Copyright (c) 2003-2018 Eddie Kohler
+ * Copyright (c) 2003-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.hh
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.hh	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.hh	2019-01-28 02:26:31 UTC (rev 49844)
@@ -11,7 +11,7 @@
 
 enum { G_ENCODING = 1, G_METRICS = 2, G_VMETRICS = 4, G_TYPE1 = 8,
        G_PSFONTSMAP = 16, G_BINARY = 32, G_ASCII = 64, G_DOTLESSJ = 128,
-       G_UPDMAP = 256, G_TRUETYPE = 512, G_TYPE42 = 1024 };
+       G_UPDMAP = 256, G_TRUETYPE = 512, G_TYPE42 = 1024, G_UPDMAP_USER = 2048 };
 
 extern unsigned output_flags;
 

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.1
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.1	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.1	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,4 +1,4 @@
-.ds V 2.107
+.ds V 2.108
 .de M
 .BR "\\$1" "(\\$2)\\$3"
 ..

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* t1dotlessj.cc -- driver for creating dotlessj characters from Type 1 fonts
  *
- * Copyright (c) 2003-2018 Eddie Kohler
+ * Copyright (c) 2003-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free
@@ -317,7 +317,7 @@
 
 	  case VERSION_OPT:
 	    printf("t1dotlessj (LCDF typetools) %s\n", VERSION);
-	    printf("Copyright (C) 2003-2018 Eddie Kohler\n\
+	    printf("Copyright (C) 2003-2019 Eddie Kohler\n\
 This is free software; see the source for copying conditions.\n\
 There is NO warranty, not even for merchantability or fitness for a\n\
 particular purpose.\n");

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/cscheck.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/cscheck.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/cscheck.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* cscheck.{cc,hh} -- checking Type 1 charstrings for validity
  *
- * Copyright (c) 1999-2018 Eddie Kohler
+ * Copyright (c) 1999-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.1
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.1	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.1	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,4 +1,4 @@
-.ds V 2.107
+.ds V 2.108
 .de M
 .BR "\\$1" "(\\$2)\\$3"
 ..

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* t1lint.cc -- driver for checking Type 1 fonts for validity
  *
- * Copyright (c) 1999-2018 Eddie Kohler
+ * Copyright (c) 1999-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free
@@ -412,7 +412,7 @@
 
      case VERSION_OPT:
       printf("t1lint (LCDF typetools) %s\n", VERSION);
-      printf("Copyright (C) 1999-2018 Eddie Kohler\n\
+      printf("Copyright (C) 1999-2019 Eddie Kohler\n\
 This is free software; see the source for copying conditions.\n\
 There is NO warranty, not even for merchantability or fitness for a\n\
 particular purpose.\n");

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.1
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.1	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.1	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,4 +1,4 @@
-.ds V 2.107
+.ds V 2.108
 .de M
 .BR "\\$1" "(\\$2)\\$3"
 ..

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* t1rawafm.cc -- driver for generating a raw AFM file from a font
  *
- * Copyright (c) 2008-2018 Eddie Kohler
+ * Copyright (c) 2008-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free
@@ -315,7 +315,7 @@
 
           case VERSION_OPT:
             printf("t1rawafm (LCDF typetools) %s\n", VERSION);
-            printf("Copyright (C) 2008-2018 Eddie Kohler\n\
+            printf("Copyright (C) 2008-2019 Eddie Kohler\n\
 This is free software; see the source for copying conditions.\n\
 There is NO warranty, not even for merchantability or fitness for a\n\
 particular purpose.\n");

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.1
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.1	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.1	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,4 +1,4 @@
-.ds V 2.107
+.ds V 2.108
 .de M
 .BR "\\$1" "(\\$2)\\$3"
 ..

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* t1reencode.cc -- driver for reencoding Type 1 fonts
  *
- * Copyright (c) 2005-2018 Eddie Kohler
+ * Copyright (c) 2005-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free
@@ -978,7 +978,7 @@
 
 	  case VERSION_OPT:
 	    printf("t1reencode (LCDF typetools) %s\n", VERSION);
-	    printf("Copyright (C) 1999-2018 Eddie Kohler\n\
+	    printf("Copyright (C) 1999-2019 Eddie Kohler\n\
 This is free software; see the source for copying conditions.\n\
 There is NO warranty, not even for merchantability or fitness for a\n\
 particular purpose.\n");

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/util.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/util.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/util.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* util.{cc,hh} -- various bits
  *
- * Copyright (c) 2003-2018 Eddie Kohler
+ * Copyright (c) 2003-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.1
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.1	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.1	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,4 +1,4 @@
-.ds V 2.107
+.ds V 2.108
 .de M
 .BR "\\$1" "(\\$2)\\$3"
 ..

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* t1testpage.cc -- driver for generating Type 1 fonts' test pages
  *
- * Copyright (c) 1999-2018 Eddie Kohler
+ * Copyright (c) 1999-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free
@@ -624,7 +624,7 @@
 
 	  case VERSION_OPT:
 	    printf("t1testpage (LCDF typetools) %s\n", VERSION);
-	    printf("Copyright (C) 1999-2018 Eddie Kohler\n\
+	    printf("Copyright (C) 1999-2019 Eddie Kohler\n\
 This is free software; see the source for copying conditions.\n\
 There is NO warranty, not even for merchantability or fitness for a\n\
 particular purpose.\n");

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.1
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.1	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.1	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,4 +1,4 @@
-.ds V 2.107
+.ds V 2.108
 .de M
 .BR "\\$1" "(\\$2)\\$3"
 ..

Modified: trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.cc
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.cc	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.cc	2019-01-28 02:26:31 UTC (rev 49844)
@@ -1,6 +1,6 @@
 /* ttftotype42.cc -- driver for translating TrueType fonts to Type 42 fonts
  *
- * Copyright (c) 2006-2018 Eddie Kohler
+ * Copyright (c) 2006-2019 Eddie Kohler
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the Free
@@ -355,7 +355,7 @@
 
 	  case VERSION_OPT:
 	    printf("ttftotype42 (LCDF typetools) %s\n", VERSION);
-	    printf("Copyright (C) 2006-2018 Eddie Kohler\n\
+	    printf("Copyright (C) 2006-2019 Eddie Kohler\n\
 This is free software; see the source for copying conditions.\n\
 There is NO warranty, not even for merchantability or fitness for a\n\
 particular purpose.\n");

Modified: trunk/Build/source/texk/lcdf-typetools/version.ac
===================================================================
--- trunk/Build/source/texk/lcdf-typetools/version.ac	2019-01-28 01:23:28 UTC (rev 49843)
+++ trunk/Build/source/texk/lcdf-typetools/version.ac	2019-01-28 02:26:31 UTC (rev 49844)
@@ -8,4 +8,4 @@
 dnl --------------------------------------------------------
 dnl
 dnl  m4-include this file to define the current lcdf-typetools version
-m4_define([lcdf_typetools_version], [2.107])
+m4_define([lcdf_typetools_version], [2.108])



More information about the tex-live-commits mailing list