diff options
author | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2019-01-28 02:26:31 +0000 |
---|---|---|
committer | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2019-01-28 02:26:31 +0000 |
commit | c5cfc1bb763e00cdb8e719c1650d4bfaaaf0be18 (patch) | |
tree | 551a47149da5752301214cca0d5ceb6548520125 /Build | |
parent | fd9677144bde0094d71b09696e9e4bece7ca25dc (diff) |
lcdf-typetools 2.108
git-svn-id: svn://tug.org/texlive/trunk@49844 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build')
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]) |