summaryrefslogtreecommitdiff
path: root/Build
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2019-01-28 02:26:31 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2019-01-28 02:26:31 +0000
commitc5cfc1bb763e00cdb8e719c1650d4bfaaaf0be18 (patch)
tree551a47149da5752301214cca0d5ceb6548520125 /Build
parentfd9677144bde0094d71b09696e9e4bece7ca25dc (diff)
lcdf-typetools 2.108
git-svn-id: svn://tug.org/texlive/trunk@49844 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build')
-rw-r--r--Build/source/texk/README2
-rw-r--r--Build/source/texk/lcdf-typetools/ChangeLog5
-rw-r--r--Build/source/texk/lcdf-typetools/TLpatches/ChangeLog5
-rw-r--r--Build/source/texk/lcdf-typetools/TLpatches/TL-Changes2
-rw-r--r--Build/source/texk/lcdf-typetools/TLpatches/patch-02-mingw646
-rw-r--r--Build/source/texk/lcdf-typetools/TLpatches/patch-03-w3276
-rwxr-xr-xBuild/source/texk/lcdf-typetools/configure24
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/NEWS.md9
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/README.md2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.12
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.cc4
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/maket1font.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/configure.ac2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/cff.hh9
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/clp.h2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/vector.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/lcdf-typetools.spec2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afm.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmparse.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmw.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/amfm.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/cff.cc82
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/encoding.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/findmet.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/metrics.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otf.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfcmap.cc25
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdata.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdescrip.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgpos.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgsub.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfname.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfos2.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfpost.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/pairop.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/psres.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1bounds.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1cs.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1csgen.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1font.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1fontskel.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1interp.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1item.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1mm.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1rw.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1unparser.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfcs.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfhead.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfkern.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/bezier.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/clp.c2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/error.cc4
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/filename.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/globmatch.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/landmark.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/permstr.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/point.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/slurper.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/straccum.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/string.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/transform.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/main.cc4
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/mmafm.12
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/main.cc4
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/mmpfb.12
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/myfont.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1minimize.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1rewrit.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.12
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.cc5
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/automatic.cc16
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/dvipsencoding.cc4
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/kpseinterface.c2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.cc14
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.hh4
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.12
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.cc56
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.cc231
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.hh93
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/uniprop.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.hh2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.12
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.cc4
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/cscheck.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.12
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.cc4
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.12
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.cc4
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.12
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.cc4
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/util.cc2
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.12
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.cc4
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.12
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.cc4
-rw-r--r--Build/source/texk/lcdf-typetools/version.ac2
98 files changed, 446 insertions, 400 deletions
diff --git a/Build/source/texk/README b/Build/source/texk/README
index 65ad179e1ef..f216d704eda 100644
--- a/Build/source/texk/README
+++ b/Build/source/texk/README
@@ -74,7 +74,7 @@ gsftopk - from Paul Vojta's xdvi?
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
diff --git a/Build/source/texk/lcdf-typetools/ChangeLog b/Build/source/texk/lcdf-typetools/ChangeLog
index 4e4ba4f124d..9d36d197d09 100644
--- a/Build/source/texk/lcdf-typetools/ChangeLog
+++ b/Build/source/texk/lcdf-typetools/ChangeLog
@@ -1,3 +1,8 @@
+2019-01-28 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ Import lcdf-typetools-2.108.
+ * version.ac: Adapted.
+
2018-02-22 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
Import lcdf-typetools-2.107.
diff --git a/Build/source/texk/lcdf-typetools/TLpatches/ChangeLog b/Build/source/texk/lcdf-typetools/TLpatches/ChangeLog
index 7b4363ee93b..ab0096ba7cd 100644
--- a/Build/source/texk/lcdf-typetools/TLpatches/ChangeLog
+++ b/Build/source/texk/lcdf-typetools/TLpatches/ChangeLog
@@ -1,3 +1,8 @@
+2019-01-28 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ Import lcdf-typetools-2.108.
+ * patch-02-mingw64, patch-03-w32: Adapted.
+
2018-02-22 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
Import lcdf-typetools-2.107.
diff --git a/Build/source/texk/lcdf-typetools/TLpatches/TL-Changes b/Build/source/texk/lcdf-typetools/TLpatches/TL-Changes
index 5aaf834aa33..8de5cfa9857 100644
--- a/Build/source/texk/lcdf-typetools/TLpatches/TL-Changes
+++ b/Build/source/texk/lcdf-typetools/TLpatches/TL-Changes
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/TLpatches/patch-02-mingw64 b/Build/source/texk/lcdf-typetools/TLpatches/patch-02-mingw64
index 66e71659f72..401b55ace58 100644
--- a/Build/source/texk/lcdf-typetools/TLpatches/patch-02-mingw64
+++ b/Build/source/texk/lcdf-typetools/TLpatches/patch-02-mingw64
@@ -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__
diff --git a/Build/source/texk/lcdf-typetools/TLpatches/patch-03-w32 b/Build/source/texk/lcdf-typetools/TLpatches/patch-03-w32
index fa93291bef6..4511911edda 100644
--- a/Build/source/texk/lcdf-typetools/TLpatches/patch-03-w32
+++ b/Build/source/texk/lcdf-typetools/TLpatches/patch-03-w32
@@ -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 @@ diff -ur lcdf-typetools-2.107/liblcdf/filename.cc lcdf-typetools-src/liblcdf/fil
- 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 @@ diff -ur lcdf-typetools-2.107/otftotfm/automatic.cc lcdf-typetools-src/otftotfm/
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 @@ diff -ur lcdf-typetools-2.107/otftotfm/automatic.cc lcdf-typetools-src/otftotfm/
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 @@ diff -ur lcdf-typetools-2.107/otftotfm/automatic.cc lcdf-typetools-src/otftotfm/
mktexupd_tried = true;
}
-@@ -677,7 +696,7 @@
+@@ -677,7 +694,7 @@
#endif
{
fclose(f);
@@ -73,11 +71,11 @@ diff -ur lcdf-typetools-2.107/otftotfm/automatic.cc lcdf-typetools-src/otftotfm/
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 @@ diff -ur lcdf-typetools-2.107/otftotfm/automatic.cc lcdf-typetools-src/otftotfm/
+#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 @@ diff -ur lcdf-typetools-2.107/otftotfm/kpseinterface.c lcdf-typetools-src/otftot
+ 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 @@ diff -ur lcdf-typetools-2.107/otftotfm/kpseinterface.h lcdf-typetools-src/otftot
#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 @@ diff -ur lcdf-typetools-2.107/otftotfm/otftotfm.cc lcdf-typetools-src/otftotfm/o
using namespace Efont;
-@@ -585,7 +588,7 @@
+@@ -590,7 +593,7 @@
if (verbose)
errh->message("creating %s", filename.c_str());
@@ -152,7 +150,7 @@ diff -ur lcdf-typetools-2.107/otftotfm/otftotfm.cc lcdf-typetools-src/otftotfm/o
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 @@ diff -ur lcdf-typetools-2.107/otftotfm/otftotfm.cc lcdf-typetools-src/otftotfm/o
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 @@ diff -ur lcdf-typetools-2.107/t1dotlessj/t1dotlessj.cc lcdf-typetools-src/t1dotl
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 @@ diff -ur lcdf-typetools-2.107/t1rawafm/t1rawafm.cc lcdf-typetools-src/t1rawafm/t
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 @@ diff -ur lcdf-typetools-2.107/t1reencode/t1reencode.cc lcdf-typetools-src/t1reen
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));
diff --git a/Build/source/texk/lcdf-typetools/configure b/Build/source/texk/lcdf-typetools/configure
index a5049f8968f..b546e72c194 100755
--- a/Build/source/texk/lcdf-typetools/configure
+++ b/Build/source/texk/lcdf-typetools/configure
@@ -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@tug.org>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# 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@tug.org'
PACKAGE_URL=''
@@ -1369,7 +1369,7 @@ if test "$ac_init_help" = "long"; then
# 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 @@ fi
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 @@ fi
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 @@ cat >config.log <<_ACEOF
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 @@ fi
# 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 @@ fi
-LCDF_TYPETOOLS_VERSION=2.107
+LCDF_TYPETOOLS_VERSION=2.108
ac_config_headers="$ac_config_headers autoconf.h"
@@ -19945,7 +19945,7 @@ Usage: $0 [OPTIONS]
Report bugs to <bug-libtool@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 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# 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 @@ _ACEOF
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\\"
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/NEWS.md b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/NEWS.md
index 70b1d24c476..68382c0e911 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/NEWS.md
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/NEWS.md
@@ -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 @@ LCDF Typetools NEWS
`--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.
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/README.md b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/README.md
index cbe0e574755..8666241a121 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/README.md
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/README.md
@@ -99,7 +99,7 @@ named `FONTNAME.afm` -- `MyriadMM-LightCn.afm`, for example.
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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.1
index a4624a52fed..43057e099eb 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.1
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.1
@@ -1,4 +1,4 @@
-.ds V 2.107
+.ds V 2.108
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.cc
index 4229102602f..c77ddd2f512 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.cc
@@ -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 @@ main(int argc, char *argv[])
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");
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/maket1font.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/maket1font.cc
index 31e5d7eeb61..54a4000b9bd 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/maket1font.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/maket1font.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/configure.ac b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/configure.ac
index 5412c54c37e..a18a8979d5b 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/configure.ac
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/configure.ac
@@ -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])
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/cff.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/cff.hh
index e33c74abf00..494d93dcbfc 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/cff.hh
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/cff.hh
@@ -31,7 +31,7 @@ class Cff { public:
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 @@ class Cff { public:
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,12 +237,14 @@ class Cff::FontParent : public CharstringProgram { public:
Cff* _cff;
int _charstring_type;
int _error;
+ int _font_index;
FontParent(const FontParent &);
FontParent &operator=(const FontParent &);
Charstring *charstring(const IndexIterator &, int) const;
+ friend class Cff;
friend class Cff::Font;
friend class Cff::CIDFont;
friend class Cff::ChildFont;
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/clp.h b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/clp.h
index 2fa1196616e..3174a06e596 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/clp.h
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/clp.h
@@ -8,7 +8,7 @@ extern "C" {
/* clp.h - Public interface to CLP.
* This file is part of CLP, the command line parser package.
*
- * Copyright (c) 1997-2018 Eddie Kohler, ekohler@gmail.com
+ * Copyright (c) 1997-2019 Eddie Kohler, ekohler@gmail.com
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/vector.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/vector.cc
index 17110b64c12..cf8906a333f 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/vector.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/vector.cc
@@ -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"),
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/lcdf-typetools.spec b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/lcdf-typetools.spec
index e63cfe44711..d9eedba6dd3 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/lcdf-typetools.spec
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/lcdf-typetools.spec
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afm.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afm.cc
index 9e206f3dfdc..2d850c6ef8e 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afm.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afm.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmparse.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmparse.cc
index 5b59dc0b6b9..6e825bbd2b8 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmparse.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmparse.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmw.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmw.cc
index e0dc440069c..5f81af998f2 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmw.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmw.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/amfm.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/amfm.cc
index 5923eee8645..0ee4f66e6b0 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/amfm.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/amfm.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/cff.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/cff.cc
index 8a5484bf7eb..74af65d7cd2 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/cff.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/cff.cc
@@ -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 @@ static const uint8_t default_dict_cff_data[] = {
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 @@ Cff::~Cff()
{
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 @@ Cff::sid_permstring(int sid) const
}
}
-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 @@ Cff::font(PermString font_name, ErrorHandler *errh)
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;
+ }
+
+ // return font
+ for (int i = 0; i < _fonts.size(); ++i)
+ if (_fonts[i]->_font_index == findex)
+ return _fonts[i];
- if (!font_name)
- errh->error("no fonts in CFF");
+ 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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/encoding.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/encoding.cc
index 260eda2bec4..760fbfaffae 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/encoding.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/encoding.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/findmet.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/findmet.cc
index 136c916b5fd..ceea7992c43 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/findmet.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/findmet.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/metrics.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/metrics.cc
index 57ce7f1eb60..5c8fd973fcf 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/metrics.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/metrics.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otf.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otf.cc
index 6bd6ce45137..67eb7e72856 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otf.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otf.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfcmap.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfcmap.cc
index d9da6c0c12e..b91970c9600 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfcmap.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfcmap.cc
@@ -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 @@ Cmap::parse_header(ErrorHandler *errh)
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 @@ Cmap::parse_header(ErrorHandler *errh)
&& (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 @@ Cmap::map_table(int t, uint32_t uni, ErrorHandler *errh) const
}
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 @@ Cmap::dump_table(int t, Vector<std::pair<uint32_t, Glyph> > &ugp, ErrorHandler *
}
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));
}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdata.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdata.cc
index 8a4939208a5..b2768c406a6 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdata.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdata.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdescrip.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdescrip.cc
index 876ad7e4fbb..6046ade2fb0 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdescrip.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdescrip.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgpos.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgpos.cc
index a11c6dd3a66..6c682b2f8e6 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgpos.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgpos.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgsub.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgsub.cc
index 2e8e89f2140..8527d04b5aa 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgsub.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgsub.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfname.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfname.cc
index 90b20edc08c..0e8e4e4f6b2 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfname.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfname.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfos2.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfos2.cc
index d0e525dae18..de06d4904b9 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfos2.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfos2.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfpost.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfpost.cc
index 08532d916bf..af04b19edcb 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfpost.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfpost.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/pairop.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/pairop.cc
index 687f9f5cc0d..03d04e9097e 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/pairop.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/pairop.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/psres.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/psres.cc
index c2eb751c54d..dc3c7e8da23 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/psres.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/psres.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1bounds.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1bounds.cc
index e01e3836807..3766af2f58a 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1bounds.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1bounds.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1cs.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1cs.cc
index 01f960cd584..f4060e607b9 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1cs.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1cs.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1csgen.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1csgen.cc
index ac3160c6d88..7c970374fe2 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1csgen.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1csgen.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1font.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1font.cc
index d4aad89a6d2..82ab06e0389 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1font.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1font.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1fontskel.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1fontskel.cc
index 3b7ee45b50a..c62e25a392a 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1fontskel.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1fontskel.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1interp.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1interp.cc
index d716d0fe23c..59200f0981b 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1interp.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1interp.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1item.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1item.cc
index be14edba7cd..d9e2b614ef4 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1item.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1item.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1mm.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1mm.cc
index 42f95bc67a8..c49eafa6e87 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1mm.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1mm.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1rw.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1rw.cc
index 8261fca6f03..35e9f57a72c 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1rw.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1rw.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1unparser.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1unparser.cc
index b0b17b18fa5..e38aa37a9d7 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1unparser.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1unparser.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfcs.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfcs.cc
index 70316ffe133..eef06084ced 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfcs.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfcs.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfhead.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfhead.cc
index a3204cf7ce4..6dc36e7e8fc 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfhead.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfhead.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfkern.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfkern.cc
index ee9fd9190d2..8690f2c672c 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfkern.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfkern.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/bezier.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/bezier.cc
index 53cec68189c..c296a4b4aa3 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/bezier.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/bezier.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/clp.c b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/clp.c
index 454b55fab88..1555f2298d4 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/clp.c
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/clp.c
@@ -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@gmail.com
+ * Copyright (c) 1997-2019 Eddie Kohler, ekohler@gmail.com
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/error.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/error.cc
index b9df1aee6e1..2c41f3f2e79 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/error.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/error.cc
@@ -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 @@ ErrorHandler::vxformat(int default_flags, const char *s, va_list val)
case 'd':
case 'i':
flags |= cf_signed;
+ /* fallthru */
case 'u':
number: {
// protect numbuf from overflow
@@ -666,6 +667,7 @@ ErrorHandler::vxformat(int default_flags, const char *s, va_list val)
case 'X':
flags |= cf_uppercase;
+ /* fallthru */
case 'x':
base = 16;
goto number;
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/filename.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/filename.cc
index c3fd5c61909..fe9fb757406 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/filename.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/filename.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/globmatch.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/globmatch.cc
index a1fc3d46f47..891c9b09955 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/globmatch.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/globmatch.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/landmark.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/landmark.cc
index fc39108b845..3d4252e5d19 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/landmark.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/landmark.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/permstr.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/permstr.cc
index 7f48a88bc62..55d4b30fd0e 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/permstr.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/permstr.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/point.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/point.cc
index 74cbcd41ede..9fd881e9612 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/point.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/point.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/slurper.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/slurper.cc
index fcf9068b18d..0755059e825 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/slurper.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/slurper.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/straccum.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/straccum.cc
index 962a91dbde9..6ee6b62f22b 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/straccum.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/straccum.cc
@@ -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"),
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/string.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/string.cc
index 009adf497ac..41e7ae0d602 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/string.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/string.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/transform.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/transform.cc
index ede4aef3e71..8f92dfeba83 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/transform.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/transform.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/main.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/main.cc
index 697df0a4492..67e635f662a 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/main.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/main.cc
@@ -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 @@ main(int argc, char *argv[])
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");
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/mmafm.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/mmafm.1
index c03f70aec73..58be625b366 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/mmafm.1
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/mmafm.1
@@ -1,5 +1,5 @@
.\" -*-nroff-*-
-.ds V 2.107
+.ds V 2.108
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/main.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/main.cc
index bf1114b6b33..8b742f77c55 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/main.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/main.cc
@@ -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 @@ main(int argc, char *argv[])
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");
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/mmpfb.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/mmpfb.1
index 8c4cf1cd9f9..42dadb72bf5 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/mmpfb.1
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/mmpfb.1
@@ -1,5 +1,5 @@
.\" -*-nroff-*-
-.ds V 2.107
+.ds V 2.108
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/myfont.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/myfont.cc
index 16652577570..7a58a32d170 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/myfont.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/myfont.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1minimize.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1minimize.cc
index e6526e8c018..da7fee98cc3 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1minimize.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1minimize.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1rewrit.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1rewrit.cc
index 08740e68333..c8a4f507f03 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1rewrit.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1rewrit.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.1
index 2586832528a..558d5e144f3 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.1
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.1
@@ -1,5 +1,5 @@
'\"t
-.ds V 2.107
+.ds V 2.108
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.cc
index 8c67d3b3bbb..ea917b6a073 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.cc
@@ -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 @@ main(int argc, char *argv[])
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 @@ particular purpose.\n");
do_info(otf, &cerrh, result_errh);
}
+ Clp_DeleteParser(clp);
return (errh->nerrors() == 0 ? 0 : 1);
}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/automatic.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/automatic.cc
index 2736c83e3e4..f0722f99e40 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/automatic.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/automatic.cc
@@ -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 @@ update_autofont_map(const String &fontname, String mapline, ErrorHandler *errh)
#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 @@ update_autofont_map(const String &fontname, String mapline, ErrorHandler *errh)
// 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 @@ update_autofont_map(const String &fontname, String mapline, ErrorHandler *errh)
#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());
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/dvipsencoding.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/dvipsencoding.cc
index 5b4881da4b3..6a30b9d17fd 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/dvipsencoding.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/dvipsencoding.cc
@@ -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 @@ DvipsEncoding::make_metrics(Metrics &metrics, const FontInfo &finfo, Secondary *
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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.cc
index 67958e30987..03ffcbd86ee 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/kpseinterface.c b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/kpseinterface.c
index c75cab7c7bb..68eecbcc56d 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/kpseinterface.c
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/kpseinterface.c
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.cc
index 4bc91126ab8..84259ad69c6 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.cc
@@ -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 @@ Metrics::apply_ligature(const Vector<Code> &in, const Substitution *s, int looku
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 @@ Metrics::apply(const Vector<Substitution>& sv, bool allow_single, int lookup, co
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++;
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.hh
index 94dd27fbdbd..4e03246d53b 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.hh
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.hh
@@ -182,7 +182,9 @@ class Metrics { public:
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);
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.1
index 2f6860c25c3..6ecb0a7591f 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.1
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.1
@@ -1,5 +1,5 @@
'\"t
-.ds V 2.107
+.ds V 2.108
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.cc
index e4dd81c08e8..913e4cb68e4 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.cc
@@ -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 @@ using namespace Efont;
#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 @@ static Clp_Option options[] = {
{ "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 @@ Automatic mode options:\n\
--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-updmap Do not run updmap.\n\
--no-truetype Do not install TrueType-flavored input fonts.\n\
+ --no-updmap Do not run updmap.\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,20 +749,30 @@ output_pl(Metrics &metrics, const String &ps_name, int boundary_char,
// 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);
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 @@ output_pl(Metrics &metrics, const String &ps_name, int boundary_char,
}
}
fprintf(f, " )\n");
+ if (omitted_clig_sa)
+ fprintf(f, "%s\n", omitted_clig_sa.c_str());
// CHARACTERs
Vector<Setting> settings;
@@ -1868,6 +1885,7 @@ main(int argc, char *argv[])
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 @@ main(int argc, char *argv[])
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 @@ main(int argc, char *argv[])
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,12 +2116,14 @@ main(int argc, char *argv[])
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;
case TRUETYPE_OPT:
case TYPE42_OPT:
+ case UPDMAP_USER_OPT:
if (!clp->negated)
output_flags |= (opt - YES_OUTPUT_OPTS);
else
@@ -2243,7 +2267,7 @@ main(int argc, char *argv[])
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 @@ particular purpose.\n");
// 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 @@ particular purpose.\n");
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 @@ particular purpose.\n");
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);
}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.cc
index 386c83f4708..64343f7db21 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.cc
@@ -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 @@ enum {
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 @@ enum {
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 @@ FontInfo::~FontInfo()
{
delete cmap;
delete cff_file;
- delete cff;
delete post;
delete name;
delete _ttb_program;
@@ -234,8 +231,10 @@ double FontInfo::x_height(const Transform& font_xform) const {
} 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 @@ Secondary::~Secondary()
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 @@ T1Secondary::T1Secondary(const FontInfo &finfo, const String &font_name,
}
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,27 +328,11 @@ Secondary::SettingSet& Secondary::SettingSet::show(int uni) {
&& 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;
@@ -444,89 +422,88 @@ T1Secondary::dotlessj_font(Metrics &metrics, ErrorHandler *errh, Glyph &dj_glyph
}
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) {
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 @@ T1Secondary::setting(uint32_t uni, Vector<Setting> &v, Metrics &metrics, ErrorHa
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,39 +561,37 @@ T1Secondary::setting(uint32_t uni, Vector<Setting> &v, Metrics &metrics, ErrorHa
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;
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 @@ T1Secondary::setting(uint32_t uni, Vector<Setting> &v, Metrics &metrics, ErrorHa
(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 @@ T1Secondary::setting(uint32_t uni, Vector<Setting> &v, Metrics &metrics, ErrorHa
(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 @@ T1Secondary::setting(uint32_t uni, Vector<Setting> &v, Metrics &metrics, ErrorHa
}
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 @@ T1Secondary::setting(uint32_t uni, Vector<Setting> &v, Metrics &metrics, ErrorHa
}
- // 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);
}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.hh
index 7b5b121d65e..1330e9450a8 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.hh
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.hh
@@ -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 @@ struct FontInfo {
};
+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 Secondary { public:
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 @@ bool char_bounds(double bounds[4], double& width, const FontInfo &,
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 SettingSet& SettingSet::kernx(bool is_kernx) {
+ kern_type_ = is_kernx ? Setting::KERNX : Setting::KERN;
+ return *this;
}
-inline Secondary::SettingSet& Secondary::SettingSet::kern(int kern_type) {
- kern_type_ = kern_type;
+inline SettingSet& SettingSet::push_back(Setting s) {
+ if (ok_)
+ v_.push_back(s);
return *this;
}
-inline bool Secondary::SettingSet::ok() const {
- return ok_;
+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 Secondary::SettingSet Secondary::set(Vector<Setting>& v, Metrics& m) {
- return SettingSet(this, v, m);
+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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/uniprop.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/uniprop.cc
index 424bad1789e..de8d1e6c032 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/uniprop.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/uniprop.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.cc
index 2929217eadd..920c5c001d2 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.hh
index f75a427b488..6eb5415fc9a 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.hh
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.hh
@@ -11,7 +11,7 @@ extern bool force;
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;
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.1
index b9c7077c5e7..a839fca3492 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.1
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.1
@@ -1,4 +1,4 @@
-.ds V 2.107
+.ds V 2.108
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.cc
index e2c65b5cce8..9a70c4183a1 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.cc
@@ -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 @@ main(int argc, char *argv[])
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");
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/cscheck.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/cscheck.cc
index 85f899334ed..e6b4eaab848 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/cscheck.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/cscheck.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.1
index 5b317df9459..5ab620b81a3 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.1
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.1
@@ -1,4 +1,4 @@
-.ds V 2.107
+.ds V 2.108
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.cc
index 491db206342..1d5c6363f65 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.cc
@@ -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 @@ main(int argc, char *argv[])
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");
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.1
index 753593c76f9..9a367a31a52 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.1
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.1
@@ -1,4 +1,4 @@
-.ds V 2.107
+.ds V 2.108
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.cc
index d371158a43d..eaf919d1e28 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.cc
@@ -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 @@ main(int argc, char *argv[])
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");
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.1
index adc38badab9..8ded8a4e5b7 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.1
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.1
@@ -1,4 +1,4 @@
-.ds V 2.107
+.ds V 2.108
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.cc
index 11d5bdcb689..ff428b5ce5d 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.cc
@@ -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 @@ main(int argc, char *argv[])
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");
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/util.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/util.cc
index 6eb9f039378..2e3495cf963 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/util.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/util.cc
@@ -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
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.1
index 5c86e4233ab..d46e48538eb 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.1
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.1
@@ -1,4 +1,4 @@
-.ds V 2.107
+.ds V 2.108
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.cc
index 2f90b9d9eb3..7931b45087b 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.cc
@@ -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 @@ main(int argc, char *argv[])
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");
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.1
index cd44e49bd1c..a212bd1a79c 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.1
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.1
@@ -1,4 +1,4 @@
-.ds V 2.107
+.ds V 2.108
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.cc
index 0c9a098f423..d1e88706cd1 100644
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.cc
+++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.cc
@@ -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 @@ main(int argc, char *argv[])
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");
diff --git a/Build/source/texk/lcdf-typetools/version.ac b/Build/source/texk/lcdf-typetools/version.ac
index 4ff489e178f..bc82b32931e 100644
--- a/Build/source/texk/lcdf-typetools/version.ac
+++ b/Build/source/texk/lcdf-typetools/version.ac
@@ -8,4 +8,4 @@ dnl
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])