texlive[53077] Build/source/texk/dvisvgm: dvisvgm 2.8.2 (from Martin

commits+preining at tug.org commits+preining at tug.org
Tue Dec 10 07:22:32 CET 2019


Revision: 53077
          http://tug.org/svn/texlive?view=revision&revision=53077
Author:   preining
Date:     2019-12-10 07:22:32 +0100 (Tue, 10 Dec 2019)
Log Message:
-----------
dvisvgm 2.8.2 (from Martin Gieseking)

Modified Paths:
--------------
    trunk/Build/source/texk/dvisvgm/Makefile.in
    trunk/Build/source/texk/dvisvgm/TLpatches/ChangeLog
    trunk/Build/source/texk/dvisvgm/TLpatches/patch-04-configure-upstream
    trunk/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles
    trunk/Build/source/texk/dvisvgm/configure
    trunk/Build/source/texk/dvisvgm/configure.ac
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/ChangeLog
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/NEWS
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Calculator.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/CharMapID.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Color.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Directory.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Directory.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FileFinder.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FileFinder.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FilePath.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FileSystem.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FileSystem.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FixWord.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FontStyle.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFGlyphTracer.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFGlyphTracer.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFReader.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFReader.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFTracer.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFTracer.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GlyphTracerMessages.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/HtmlSpecialHandler.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/HyperlinkManager.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Length.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/MetafontWrapper.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/MiKTeXCom.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/NoPsSpecialHandler.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PSInterpreter.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PSPreviewFilter.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PSPreviewFilter.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PathClipper.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PreScanDVIReader.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PreScanDVIReader.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Process.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/RangeMap.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/SVGOutput.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/SVGOutput.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/SignalHandler.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/SignalHandler.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/TFM.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/VFReader.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/VFReader.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/VectorStream.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/dvisvgm.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/version.hpp
    trunk/Build/source/texk/dvisvgm/version.ac

Added Paths:
-----------
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/tests/gtest/src/gtest-matchers.cc

Modified: trunk/Build/source/texk/dvisvgm/Makefile.in
===================================================================
--- trunk/Build/source/texk/dvisvgm/Makefile.in	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/Makefile.in	2019-12-10 06:22:32 UTC (rev 53077)
@@ -14,7 +14,7 @@
 
 @SET_MAKE@
 
-# $Id: Makefile.am 49882 2019-01-31 18:21:25Z karl $
+# $Id$
 # Makefile.am for the TeX Live subdirectory texk/dvisvgm/
 #
 # Copyright 2015-2017 Karl Berry <tex-live at tug.org>

Modified: trunk/Build/source/texk/dvisvgm/TLpatches/ChangeLog
===================================================================
--- trunk/Build/source/texk/dvisvgm/TLpatches/ChangeLog	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/TLpatches/ChangeLog	2019-12-10 06:22:32 UTC (rev 53077)
@@ -1,3 +1,7 @@
+2019-12-09  Martin Gieseking  <martin.gieseking at uos.de>
+
+	* Import 2.8.2.
+
 2019-11-19  Martin Gieseking  <martin.gieseking at uos.de>
 
 	* patch-04-configure-upstream, patch-08-makefiles, patch-09-woff-zlib:

Modified: trunk/Build/source/texk/dvisvgm/TLpatches/patch-04-configure-upstream
===================================================================
--- trunk/Build/source/texk/dvisvgm/TLpatches/patch-04-configure-upstream	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/TLpatches/patch-04-configure-upstream	2019-12-10 06:22:32 UTC (rev 53077)
@@ -1,4 +1,4 @@
---- dvisvgm-2.8.1/configure.ac
+--- dvisvgm-2.8.2/configure.ac
 +++ configure.ac
 @@ -1,78 +1,63 @@
 -# This file is part of dvisvgm
@@ -7,7 +7,7 @@
 -# Process this file with autoconf to produce a configure script.
 -
 -AC_PREREQ(2.59)
--AC_INIT([dvisvgm],[2.8.1],[martin.gieseking at uos.de])
+-AC_INIT([dvisvgm],[2.8.2],[martin.gieseking at uos.de])
 +# $Id: configure.ac 49819 2019-01-25 23:20:32Z karl $
 +dnl Process this file with autoconf to produce a configure script
 +dnl for dvisvgm in TeX Live.
@@ -25,7 +25,7 @@
 +AC_PREREQ([2.65])
 +m4_include([version.ac])[] dnl define dvisvgm_version
 +AC_INIT([dvisvgm (TeX Live)], dvisvgm_version, [tex-k at tug.org])
- DATE="November 2019"
+ DATE="December 2019"
 -AC_CONFIG_SRCDIR(src)
 +AC_CONFIG_SRCDIR([dvisvgm-src/src/dvisvgm.cpp])
  AC_CONFIG_HEADERS([config.h])

Modified: trunk/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles
===================================================================
--- trunk/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles	2019-12-10 06:22:32 UTC (rev 53077)
@@ -1,6 +1,6 @@
 	See ./TL-Changes.
 
---- dvisvgm-2.8.1/Makefile.am	2019-07-08 17:24:34.000000000 +0200
+--- dvisvgm-2.8.2/Makefile.am	2019-07-08 17:24:34.000000000 +0200
 +++ dvisvgm-src/Makefile.am	2019-11-16 13:57:04.091210187 +0100
 @@ -5,7 +5,7 @@
  
@@ -11,7 +11,7 @@
  ACLOCAL_AMFLAGS = -I m4
  
  if USE_BUNDLED_LIBS
---- dvisvgm-2.8.1/src/Makefile.am	2019-09-12 14:43:35.000000000 +0200
+--- dvisvgm-2.8.2/src/Makefile.am	2019-09-12 14:43:35.000000000 +0200
 +++ dvisvgm-src/src/Makefile.am	2019-11-16 15:54:55.820450555 +0100
 @@ -4,7 +4,7 @@
  ## Process this file with automake.
@@ -140,7 +140,7 @@
 + at FREETYPE2_RULE@
 +# Rebuild libz:
 + at ZLIB_RULE@
---- dvisvgm-2.8.1/src/optimizer/Makefile.am	2019-11-08 15:26:11.000000000 +0100
+--- dvisvgm-2.8.2/src/optimizer/Makefile.am	2019-11-08 15:26:11.000000000 +0100
 +++ dvisvgm-src/src/optimizer/Makefile.am	2019-11-16 15:15:54.151760519 +0100
 @@ -1,6 +1,6 @@
 -noinst_LTLIBRARIES = liboptimizer.la

Modified: trunk/Build/source/texk/dvisvgm/configure
===================================================================
--- trunk/Build/source/texk/dvisvgm/configure	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/configure	2019-12-10 06:22:32 UTC (rev 53077)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for dvisvgm (TeX Live) 2.8.1.
+# Generated by GNU Autoconf 2.69 for dvisvgm (TeX Live) 2.8.2.
 #
 # Report bugs to <tex-k at tug.org>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='dvisvgm (TeX Live)'
 PACKAGE_TARNAME='dvisvgm--tex-live-'
-PACKAGE_VERSION='2.8.1'
-PACKAGE_STRING='dvisvgm (TeX Live) 2.8.1'
+PACKAGE_VERSION='2.8.2'
+PACKAGE_STRING='dvisvgm (TeX Live) 2.8.2'
 PACKAGE_BUGREPORT='tex-k at tug.org'
 PACKAGE_URL=''
 
@@ -1391,7 +1391,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures dvisvgm (TeX Live) 2.8.1 to adapt to many kinds of systems.
+\`configure' configures dvisvgm (TeX Live) 2.8.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1462,7 +1462,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of dvisvgm (TeX Live) 2.8.1:";;
+     short | recursive ) echo "Configuration of dvisvgm (TeX Live) 2.8.2:";;
    esac
   cat <<\_ACEOF
 
@@ -1594,7 +1594,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-dvisvgm (TeX Live) configure 2.8.1
+dvisvgm (TeX Live) configure 2.8.2
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2462,7 +2462,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by dvisvgm (TeX Live) $as_me 2.8.1, which was
+It was created by dvisvgm (TeX Live) $as_me 2.8.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -8214,7 +8214,7 @@
 
 # Define the identity of the package.
  PACKAGE='dvisvgm--tex-live-'
- VERSION='2.8.1'
+ VERSION='2.8.2'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -20212,7 +20212,7 @@
 Report bugs to <bug-libtool at gnu.org>."
 
 lt_cl_version="\
-dvisvgm (TeX Live) config.lt 2.8.1
+dvisvgm (TeX Live) config.lt 2.8.2
 configured by $0, generated by GNU Autoconf 2.69.
 
 Copyright (C) 2011 Free Software Foundation, Inc.
@@ -23517,7 +23517,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by dvisvgm (TeX Live) $as_me 2.8.1, which was
+This file was extended by dvisvgm (TeX Live) $as_me 2.8.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -23583,7 +23583,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-dvisvgm (TeX Live) config.status 2.8.1
+dvisvgm (TeX Live) config.status 2.8.2
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Modified: trunk/Build/source/texk/dvisvgm/configure.ac
===================================================================
--- trunk/Build/source/texk/dvisvgm/configure.ac	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/configure.ac	2019-12-10 06:22:32 UTC (rev 53077)
@@ -15,7 +15,7 @@
 AC_PREREQ([2.65])
 m4_include([version.ac])[] dnl define dvisvgm_version
 AC_INIT([dvisvgm (TeX Live)], dvisvgm_version, [tex-k at tug.org])
-DATE="November 2019"
+DATE="December 2019"
 AC_CONFIG_SRCDIR([dvisvgm-src/src/dvisvgm.cpp])
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_MACRO_DIRS([../../m4])dnl not just _DIR

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/ChangeLog
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/ChangeLog	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/ChangeLog	2019-12-10 06:22:32 UTC (rev 53077)
@@ -1,3 +1,67 @@
+2019-12-07  Martin Gieseking  <martin.gieseking at uos.de>
+
+  * NEWS: 
+  updated NEWS 
+
+2019-12-06  Martin Gieseking  <martin.gieseking at uos.de>
+
+  * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: 
+  set version to 2.8.2 
+
+2019-12-05  Martin Gieseking  <martin.gieseking at uos.de>
+
+  * src/FileSystem.cpp: 
+  convert path separators only in Windows binaries 
+
+  * src/Process.cpp: 
+  Subprocess: handle absolute path to executable correctly 
+
+  * src/FileFinder.cpp, src/FileFinder.hpp: 
+  added FileFinder::lookupExecutable() 
+
+  * src/MetafontWrapper.cpp: 
+  call 'mf-nowin' instead of 'mf' if available (closes #121) 
+
+2019-12-04  Martin Gieseking  <martin.gieseking at uos.de>
+
+  * src/PSInterpreter.cpp: 
+  adapt path separators before passing them to Ghostscript
+closes #123 
+
+  * src/FilePath.cpp, src/FileSystem.cpp, src/FileSystem.hpp, 
+    src/PSInterpreter.cpp, src/PsSpecialHandler.cpp, src/dvisvgm.cpp: 
+  renamed adaptPathSeperators() to ensureForwardSlashes() 
+
+  * src/Calculator.hpp, src/CharMapID.hpp, src/Color.hpp, src/Directory.cpp, 
+    src/Directory.hpp, src/FixWord.hpp, src/FontStyle.hpp, 
+    src/GFGlyphTracer.cpp, src/GFGlyphTracer.hpp, src/GFReader.cpp, 
+    src/GFReader.hpp, src/GFTracer.cpp, src/GFTracer.hpp, 
+    src/GlyphTracerMessages.hpp, src/HtmlSpecialHandler.hpp, 
+    src/HyperlinkManager.hpp, src/Length.hpp, src/NoPsSpecialHandler.hpp, 
+    src/PSPreviewFilter.cpp, src/PSPreviewFilter.hpp, src/PathClipper.hpp, 
+    src/PreScanDVIReader.cpp, src/PreScanDVIReader.hpp, src/Process.cpp, 
+    src/PsSpecialHandler.hpp, src/RangeMap.hpp, src/SVGOutput.cpp, 
+    src/SVGOutput.hpp, src/SignalHandler.cpp, src/SignalHandler.hpp, 
+    src/TFM.hpp, src/VFReader.cpp, src/VFReader.hpp, src/VectorStream.hpp: 
+  simplified constructors, avoid constant initializers 
+
+  * src/FileSystem.cpp, src/FileSystem.hpp: 
+  removed redundant class variable 
+
+  * src/MiKTeXCom.cpp: 
+  fixed type mismatch of FindFile expression 
+
+2019-12-03  Martin Gieseking  <martin.gieseking at uos.de>
+
+  * src/psdefs.cpp: 
+  fixed handling of 'nulldevice' in PS operator 'restore'
+closes #122 
+
+2019-11-23  Martin Gieseking  <martin.gieseking at uos.de>
+
+  * src/GraphicsPath.hpp: 
+  added missing namespace prefix to pow() 
+
 2019-11-14  Martin Gieseking  <martin.gieseking at uos.de>
 
   * NEWS, README.md: 

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in	2019-12-10 06:22:32 UTC (rev 53077)
@@ -166,7 +166,8 @@
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
 am__DIST_COMMON = $(srcdir)/Makefile.in AUTHORS COPYING ChangeLog \
-	INSTALL NEWS README
+	INSTALL NEWS README ar-lib compile config.guess config.sub \
+	depcomp install-sh ltmain.sh missing
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/NEWS
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/NEWS	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/NEWS	2019-12-10 06:22:32 UTC (rev 53077)
@@ -1,3 +1,11 @@
+dvisvgm-2.8.2 (2019-12-07)
+- if available, call 'mf-nowin' instead of 'mf' to process Metafont files
+  (GH #121)
+- fixed handling of null device in PS operator 'restore' (GH #122)
+- fixed PS error triggered by backslashes in file paths (GH #123)
+- fixed build issue related to GCC on Solaris 11
+- some code cleanup
+
 dvisvgm-2.8.1 (2019-11-14)
 - added SVG optimizer module 'simplify-text'
 - added support for PS operator 'nulldevice'

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1	2019-12-10 06:22:32 UTC (rev 53077)
@@ -4,10 +4,10 @@
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
 .\"      Date: 2019-11-12
 .\"    Manual: dvisvgm Manual
-.\"    Source: dvisvgm 2.8.1
+.\"    Source: dvisvgm 2.8.2
 .\"  Language: English
 .\"
-.TH "DVISVGM" "1" "2019\-11\-12" "dvisvgm 2\&.8\&.1" "dvisvgm Manual"
+.TH "DVISVGM" "1" "2019\-11\-12" "dvisvgm 2\&.8\&.2" "dvisvgm Manual"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Calculator.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Calculator.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Calculator.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -33,7 +33,6 @@
 
 class Calculator {
 	public:
-		Calculator () : _numValue(0) {}
 		double eval (std::istream &is);
 		double eval (const std::string &expr);
 		void setVariable (const std::string &name, double value) {_variables[name] = value;}
@@ -48,7 +47,7 @@
 
 	private:
 		std::map<std::string,double> _variables;
-		double _numValue;
+		double _numValue=0;
 		std::string _strValue;
 };
 

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/CharMapID.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/CharMapID.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/CharMapID.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -25,7 +25,7 @@
 
 /** Represents a character map of a font. */
 struct CharMapID {
-	CharMapID () noexcept : platform_id(0), encoding_id(0) {}
+	CharMapID () noexcept =default;
 	CharMapID (uint8_t plf_id, uint8_t enc_id) noexcept : platform_id(plf_id), encoding_id(enc_id) {}
 
 	bool operator == (const CharMapID &ids) const {
@@ -52,8 +52,8 @@
 	static const CharMapID MAC_SIMPLCHINESE;
 	static const CharMapID MAC_KOREAN;
 
-	uint8_t platform_id;
-	uint8_t encoding_id;
+	uint8_t platform_id=0;
+	uint8_t encoding_id=0;
 };
 
 #endif

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Color.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Color.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Color.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -40,7 +40,7 @@
 		enum class ColorSpace {GRAY, RGB, CMYK, LAB};
 
 	public:
-		Color () noexcept : _rgb(0) {}
+		Color () noexcept =default;
 		explicit Color (uint32_t rgb) noexcept : _rgb(rgb)         {}
 		Color (uint8_t r, uint8_t g, uint8_t b) noexcept  {setRGB(r,g,b);}
 		Color (double r, double g, double b) noexcept     {setRGB(r,g,b);}
@@ -90,7 +90,7 @@
 		static int numComponents (ColorSpace colorSpace);
 
 	private:
-		uint32_t _rgb;
+		uint32_t _rgb=0;
 };
 
 #endif

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Directory.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Directory.cpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Directory.cpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -22,9 +22,7 @@
 
 using namespace std;
 
-#ifdef _WIN32
-	#include "windows.hpp"
-#else
+#ifndef _WIN32
 	#include <cerrno>
 	#include <sys/stat.h>
 #endif
@@ -31,26 +29,13 @@
 
 
 Directory::Directory () {
-#if _WIN32
-	_handle = INVALID_HANDLE_VALUE;
-	_firstread = true;
+#ifdef _WIN32
 	memset(&_fileData, 0, sizeof(WIN32_FIND_DATA));
-#else
-	_dir = nullptr;
-	_dirent = nullptr;
 #endif
 }
 
 
-Directory::Directory (const string &dirname) {
-#if _WIN32
-	_handle = INVALID_HANDLE_VALUE;
-	_firstread = true;
-	memset(&_fileData, 0, sizeof(WIN32_FIND_DATA));
-#else
-	_dir = nullptr;
-	_dirent = nullptr;
-#endif
+Directory::Directory (const string &dirname) : Directory() {
 	open(dirname);
 }
 

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Directory.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Directory.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Directory.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -43,12 +43,12 @@
 	private:
 		std::string _dirname;
 #ifdef _WIN32
-		bool _firstread;
-		HANDLE _handle;
+		bool _firstread=true;
+		HANDLE _handle=INVALID_HANDLE_VALUE;
 		WIN32_FIND_DATA _fileData;
 #else
-		DIR *_dir;
-		struct dirent *_dirent;
+		DIR *_dir=nullptr;
+		struct dirent *_dirent=nullptr;
 #endif
 };
 

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FileFinder.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FileFinder.cpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FileFinder.cpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -46,6 +46,7 @@
 
 std::string FileFinder::_argv0;
 std::string FileFinder::_progname;
+std::string FileFinder::_pathbuf;
 bool FileFinder::_enableMktex = false;
 
 
@@ -109,12 +110,11 @@
 	if (fname.empty())
 		return nullptr;
 
-	static std::string buf;
 	// try to lookup the file in the additionally specified directories
 	for (const std::string &dir : _additionalDirs) {
-		buf = dir + "/" + fname;
-		if (FileSystem::exists(buf))
-			return buf.c_str();
+		_pathbuf = dir+"/"+fname;
+		if (FileSystem::exists(_pathbuf))
+			return _pathbuf.c_str();
 	}
 	std::string ext;
 	if (ftype)
@@ -126,21 +126,18 @@
 		ext = fname.substr(pos+1);
 	}
 
+#ifdef _WIN32
+	if (ext == "dll" || ext == "exe")
+		return lookupExecutable(fname);
 #ifdef MIKTEX
-	if (ext == "dll" || ext == "exe") {
-		// lookup dll and exe files in the MiKTeX bin directory first
-		buf = _miktex->getBinDir() + "/" + fname;
-		if (FileSystem::exists(buf))
-			return buf.c_str();
-	}
 	else if (ext == "cmap") {
 		// The MiKTeX SDK doesn't support the lookup of files without suffix (yet), thus
 		// it's not possible to find cmap files which usually don't have a suffix. In order
 		// to work around this, we try to lookup the files by calling kpsewhich.
 		Process process("kpsewhich", "-format=cmap "+fname);
-		process.run(&buf);
-		buf = util::trim(buf);
-		return buf.empty() ? nullptr : buf.c_str();
+		process.run(&_pathbuf);
+		_pathbuf = util::trim(_pathbuf);
+		return _pathbuf.empty() ? nullptr : _pathbuf.c_str();
 	}
 	try {
 		return _miktex->findFile(fname.c_str());
@@ -148,17 +145,9 @@
 	catch (const MessageException &e) {
 		return nullptr;
 	}
-#else
-#ifdef TEXLIVEWIN32
-	if (ext == "exe") {
-		// lookup exe files in directory where dvisvgm is located
-		if (const char *path = kpse_var_value("SELFAUTOLOC")) {
-			buf = std::string(path) + "/" + fname;
-			return FileSystem::exists(buf) ? buf.c_str() : nullptr;
-		}
-		return nullptr;
-	}
-#endif
+#endif  // MIKTEX
+#endif  // _WIN32
+#ifndef MIKTEX
 	static std::map<std::string, kpse_file_format_type> types = {
 		{"tfm",  kpse_tfm_format},
 		{"pfb",  kpse_type1_format},
@@ -188,12 +177,12 @@
 		// In the current version of libkpathsea, each call of kpse_find_file produces
 		// a memory leak since the path buffer is not freed. I don't think we can do
 		// anything against it here...
-		buf = path;
+		_pathbuf = path;
 		std::free(path);
-		return buf.c_str();
+		return _pathbuf.c_str();
 	}
 	return nullptr;
-#endif
+#endif  // !MIKTEX
 }
 
 
@@ -264,3 +253,35 @@
 		return path;
 	return nullptr;
 }
+
+
+/** Looks up the location of an executable file.
+ *  @param[in] fname name of file to look up
+ *  @param[in] addSuffix if true, ".exe" is appended to the given filename (Windows only)
+ *  @return absolute path of file or nullptr if not found */
+const char* FileFinder::lookupExecutable (const std::string &fname, bool addSuffix) const {
+#ifdef MIKTEX
+	_pathbuf = _miktex->getBinDir() + "/" + fname;
+	if (addSuffix)
+		_pathbuf += ".exe";
+	if (FileSystem::exists(_pathbuf))
+		return _pathbuf.c_str();
+	try {
+		return _miktex->findFile(fname.c_str());
+	}
+	catch (...) {
+	}
+#else
+	// lookup executables in directory where dvisvgm is located
+	if (const char *path = kpse_var_value("SELFAUTOLOC")) {
+		_pathbuf = std::string(path) + "/" + fname;
+#ifdef _WIN32
+		if (addSuffix)
+			_pathbuf += ".exe";
+#endif
+		if (FileSystem::exists(_pathbuf))
+			return _pathbuf.c_str();
+	}
+#endif  // !MIKTEX
+	return nullptr;
+}

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FileFinder.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FileFinder.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FileFinder.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -35,6 +35,7 @@
 		void addLookupDir (const std::string &path);
 		const char* lookup (const std::string &fname, const char *ftype, bool extended=true) const;
 		const char* lookup (const std::string &fname, bool extended=true) const {return lookup(fname, nullptr, extended);}
+		const char* lookupExecutable (const std::string &fname, bool addSuffix=false) const;
 
 	protected:
 		FileFinder ();
@@ -45,6 +46,7 @@
 	private:
 		static std::string _argv0;
 		static std::string _progname;
+		static std::string _pathbuf;  ///< buffer holding the path of the last search
 		static bool _enableMktex;
 		std::set<std::string> _additionalDirs;
 #ifdef MIKTEX

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FilePath.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FilePath.cpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FilePath.cpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -122,7 +122,7 @@
 	single_slashes(path);
 	single_slashes(current_dir);
 #ifdef _WIN32
-	path = FileSystem::adaptPathSeperators(path);
+	path = FileSystem::ensureForwardSlashes(path);
 	_drive = strip_drive_letter(path);
 #endif
 	if (isfile) {
@@ -303,7 +303,7 @@
 bool FilePath::isAbsolute (string path) {
 	path = util::trim(path);
 #ifdef _WIN32
-	path = FileSystem::adaptPathSeperators(path);
+	path = FileSystem::ensureForwardSlashes(path);
 	if (path.length() >= 2 && path[1] == ':' && isalpha(path[0]))
 		path.erase(0, 2);  // remove drive letter and colon
 #endif

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FileSystem.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FileSystem.cpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FileSystem.cpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -50,7 +50,6 @@
 #endif
 
 
-FileSystem FileSystem::_fs;
 string FileSystem::TMPDIR;
 const char *FileSystem::TMPSUBDIR = nullptr;
 
@@ -133,8 +132,10 @@
 }
 
 
-string FileSystem::adaptPathSeperators (string path) {
+string FileSystem::ensureForwardSlashes (string path) {
+#ifdef _WIN32
 	std::replace(path.begin(), path.end(), PATHSEP, '/');
+#endif
 	return path;
 }
 
@@ -142,7 +143,7 @@
 string FileSystem::getcwd () {
 	char buf[1024];
 #ifdef _WIN32
-	return adaptPathSeperators(_getcwd(buf, 1024));
+	return ensureForwardSlashes(_getcwd(buf, 1024));
 #else
 	return ::getcwd(buf, 1024);
 #endif
@@ -198,7 +199,7 @@
 #ifdef _WIN32
 		char buf[MAX_PATH];
 		if (GetTempPath(MAX_PATH, buf))
-			ret = adaptPathSeperators(buf);
+			ret = ensureForwardSlashes(buf);
 		else
 			ret = ".";
 #else
@@ -232,7 +233,7 @@
 	bool success = false;
 	if (const char *cdirname = dirname.c_str()) {
 		success = true;
-		const string dirstr = adaptPathSeperators(util::trim(cdirname));
+		const string dirstr = ensureForwardSlashes(util::trim(cdirname));
 		for (size_t pos=1; success && (pos = dirstr.find('/', pos)) != string::npos; pos++)
 			success &= s_mkdir(dirstr.substr(0, pos));
 		success &= s_mkdir(dirstr);

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FileSystem.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FileSystem.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FileSystem.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -24,8 +24,7 @@
 #include <string>
 #include <vector>
 
-class FileSystem
-{
+class FileSystem {
 	public:
 		~FileSystem ();
 		static bool remove (const std::string &fname);
@@ -32,7 +31,7 @@
 		static bool rename (const std::string &oldname, const std::string &newname);
 		static bool copy (const std::string &src, const std::string &dest, bool remove_src=false);
 		static uint64_t filesize (const std::string &fname);
-		static std::string adaptPathSeperators (std::string path);
+		static std::string ensureForwardSlashes (std::string path);
 		static std::string getcwd ();
 		static std::string tmpdir ();
 		static bool chdir (const std::string &dir);
@@ -51,9 +50,6 @@
 		FileSystem () =default;
 		bool system_tmpdir_available ();
 		static const char* TMPSUBDIR; ///< subdirectory of the system's temporary folder
-
-	private:
-		static FileSystem _fs;
 };
 
 #endif

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FixWord.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FixWord.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FixWord.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -25,7 +25,7 @@
 
 class FixWord {
 	public:
-		FixWord () : _value(0) {}
+		FixWord () =default;
 		FixWord (int32_t fw) : _value(fw) {}
 		explicit operator double () const {return double(_value)/(1 << 20);}
 		bool operator < (FixWord fw) const {return _value < fw._value;}
@@ -32,7 +32,7 @@
 		bool operator == (FixWord fw) const {return _value == fw._value;}
 
 	private:
-		int32_t _value;
+		int32_t _value=0;
 };
 
 #endif

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FontStyle.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FontStyle.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FontStyle.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -22,11 +22,11 @@
 #define FONTSTYLE
 
 struct FontStyle {
-	FontStyle () : bold(0), extend(1), slant(0) {}
+	FontStyle () =default;
 	FontStyle (float b, float e, float s) : bold(b), extend(e), slant(s) {}
-	double bold;   ///< stroke width in pt used to draw the glyph outlines
-	double extend; ///< factor to strech/shrink the glyphs horizontally
-	double slant;  ///< horizontal slanting/skewing value (= tan(phi))
+	double bold=0;   ///< stroke width in pt used to draw the glyph outlines
+	double extend=1; ///< factor to strech/shrink the glyphs horizontally
+	double slant=0;  ///< horizontal slanting/skewing value (= tan(phi))
 };
 
 #endif

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFGlyphTracer.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFGlyphTracer.cpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFGlyphTracer.cpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -22,10 +22,6 @@
 
 using namespace std;
 
-GFGlyphTracer::GFGlyphTracer () : GFTracer(_ifs, 0)
-{
-}
-
 /** Constructs a new glyph tracer.
  *  @param[in] is GF input stream
  *  @param[in] upp target units per PS point */

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFGlyphTracer.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFGlyphTracer.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFGlyphTracer.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -26,8 +26,7 @@
 #include "GFTracer.hpp"
 #include "Glyph.hpp"
 
-class GFGlyphTracer : public GFTracer
-{
+class GFGlyphTracer : public GFTracer {
 	public:
 		struct Callback {
 			virtual ~Callback () =default;
@@ -38,7 +37,7 @@
 		};
 
 	public:
-		GFGlyphTracer ();
+		GFGlyphTracer () : GFTracer(_ifs, 0) {}
 		GFGlyphTracer (std::string &fname, double upp, Callback *cb=nullptr);
 		void reset (std::string &fname, double upp);
 		void setCallback (Callback *cb) {_callback = cb;}

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFReader.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFReader.cpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFReader.cpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -40,16 +40,6 @@
 }
 
 
-GFReader::GFReader (istream &is) : _in(is), _insideCharDef(false), _penDown(false)
-{
-	_minX = _maxX = _minY = _maxY = _x = _y = 0;
-	_currentChar = 0;
-	_designSize = 0;
-	_hppp = _vppp = 0;
-	_checksum = 0;
-}
-
-
 uint32_t GFReader::readUnsigned (int bytes) {
 	uint32_t ret = 0;
 	for (int i=bytes-1; i >= 0 && !_in.eof(); i--) {

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFReader.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFReader.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFReader.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -47,7 +47,7 @@
 	};
 
 	public:
-		explicit GFReader (std::istream &is);
+		explicit GFReader (std::istream &is) : _in(is) {}
 		virtual ~GFReader () =default;
 		virtual bool executeChar (uint8_t c);
 		virtual bool executeAllChars ();
@@ -91,16 +91,16 @@
 
 	private:
 		std::istream &_in;
-		int32_t _minX, _maxX, _minY, _maxY;
-		int32_t _x, _y;        ///< current pen location (pixel units)
-		int32_t _currentChar;
-		Bitmap _bitmap;        ///< bitmap of current char
-		double _designSize;    ///< designSize in PS points
-		double _hppp, _vppp;   ///< horizontal and vertical pixel per point
-		uint32_t _checksum;
+		int32_t _minX=0, _maxX=0, _minY=0, _maxY=0;
+		int32_t _x=0, _y=0;          ///< current pen location (pixel units)
+		int32_t _currentChar=0;
+		Bitmap _bitmap;              ///< bitmap of current char
+		double _designSize=0;        ///< designSize in PS points
+		double _hppp=0, _vppp=0;     ///< horizontal and vertical pixel per point
+		uint32_t _checksum=0;
 		std::unordered_map<uint8_t,CharInfo> _charInfoMap;
-		bool _insideCharDef;   ///< true if inside a character definition (between BOC and EOC)
-		bool _penDown;
+		bool _insideCharDef=false;   ///< true if inside a character definition (between BOC and EOC)
+		bool _penDown=false;
 };
 
 #endif

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFTracer.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFTracer.cpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFTracer.cpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -27,12 +27,6 @@
 using namespace std;
 
 
-GFTracer::GFTracer (istream &is)
-	: GFReader(is), _unitsPerPoint(0.0)
-{
-}
-
-
 /** Constructs a new GFTracer.
  *  @param[in] is GF file is read from this stream
  *  @param[in] upp target units per PS point */

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFTracer.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFTracer.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GFTracer.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -26,7 +26,7 @@
 
 class GFTracer : public GFReader {
 	public:
-		explicit GFTracer (std::istream &is);
+		explicit GFTracer (std::istream &is) : GFReader(is) {}
 		GFTracer (std::istream &is, double upp);
 		virtual void moveTo (double x, double y) =0;
 		virtual void lineTo (double x, double y) =0;
@@ -39,7 +39,7 @@
 		void unitsPerPoint(double upp) {_unitsPerPoint = upp;}
 
 	private:
-		double _unitsPerPoint; ///< target units per PS point
+		double _unitsPerPoint=0; ///< target units per PS point
 };
 
 #endif

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GlyphTracerMessages.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GlyphTracerMessages.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/GlyphTracerMessages.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -27,7 +27,8 @@
 
 class GlyphTracerMessages : public GFGlyphTracer::Callback {
 	public:
-		explicit GlyphTracerMessages (bool sfmsg=true, bool autonl=true) : _sfmsg(sfmsg), _autonl(autonl), _traced(false) {}
+		GlyphTracerMessages () =default;
+		explicit GlyphTracerMessages (bool sfmsg, bool autonl) : _sfmsg(sfmsg), _autonl(autonl) {}
 
 		~GlyphTracerMessages () override {
 			if (_autonl)
@@ -71,8 +72,8 @@
 
 	private:
 		std::string _fname;
-		bool _sfmsg, _autonl;
-		bool _traced;  ///< true if a glyph of the current font has already been traced?
+		bool _sfmsg=true, _autonl=true;
+		bool _traced=false;  ///< true if a glyph of the current font has already been traced?
 };
 
 #endif

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/HtmlSpecialHandler.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/HtmlSpecialHandler.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/HtmlSpecialHandler.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -29,7 +29,6 @@
 
 class HtmlSpecialHandler : public SpecialHandler {
 	public:
-		HtmlSpecialHandler () : _active(false) {}
 		void preprocess (const std::string &prefix, std::istream &is, SpecialActions &actions) override;
 		bool process (const std::string &prefix, std::istream &is, SpecialActions &actions) override;
 		const char* name () const override {return "html";}
@@ -41,7 +40,7 @@
 		void dviMovedTo (double x, double y, SpecialActions &actions) override;
 
 	private:
-		bool _active;
+		bool _active=false;
 };
 
 #endif

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/HyperlinkManager.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/HyperlinkManager.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/HyperlinkManager.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -59,7 +59,7 @@
 		static void setDefaultLinkColor (Color color);
 
 	protected:
-		HyperlinkManager () : _anchorType(AnchorType::NONE), _depthThreshold(0), _linewidth(-1) {}
+		HyperlinkManager () =default;
 		void markLinkedBox (SpecialActions &actions);
 
 		enum class MarkerType {NONE, LINE, BOX, BGCOLOR};
@@ -69,9 +69,9 @@
 		static ColorSource COLORSOURCE; ///< if true, LINK_LINECOLOR is applied
 
    private:
-		AnchorType _anchorType;     ///< type of active anchor
-		int _depthThreshold;        ///< break anchor box if the DVI stack depth underruns this threshold
-		double _linewidth;          ///< line width of link marker (-1 => compute individual value per link)
+		AnchorType _anchorType=AnchorType::NONE;  ///< type of active anchor
+		int _depthThreshold=0;      ///< break anchor box if the DVI stack depth underruns this threshold
+		double _linewidth=-1;       ///< line width of link marker (-1 => compute individual value per link)
 		std::string _base;          ///< base URL that is prepended to all relative targets
 		NamedAnchors _namedAnchors; ///< information about all named anchors processed
 };

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Length.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Length.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Length.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -39,7 +39,7 @@
 		enum class Unit {PT, BP, CM, MM, IN, PC, DD, CC, SP};
 
 	public:
-		constexpr Length () : _pt(0) {}
+		constexpr Length () =default;
 		explicit constexpr Length (long double pt) : _pt(static_cast<double>(pt)) {}
 		Length (double val, Unit unit)                  {set(val, unit);}
 		Length (double val, const std::string &unitstr) {set(val, unitstr);}
@@ -76,7 +76,7 @@
 		static constexpr double pt2sp = 65536.0;
 
 	private:
-		double _pt;  // length in TeX point units (72.27pt = 1in)
+		double _pt=0;  // length in TeX point units (72.27pt = 1in)
 };
 
 

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/MetafontWrapper.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/MetafontWrapper.cpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/MetafontWrapper.cpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -53,20 +53,20 @@
 		return false;     // mf file not available => no need to call the "slow" Metafont
 	FileSystem::remove(_fontname+".gf");
 
+	string mfName = "mf";  // file name of Metafont executable
+#ifndef MIKTEX
+	if (const char *mfnowinPath = FileFinder::instance().lookupExecutable("mf-nowin", true))
+		mfName = mfnowinPath;
+	else
+#endif
+		if (const char *mfPath = FileFinder::instance().lookupExecutable(mfName, true))
+			mfName = mfPath;
 #ifdef _WIN32
-#ifdef TEXLIVEWIN32
-	const char *mfname = "mf-nowin.exe";
-#else
-	const char *mfname = "mf.exe";
+		else {
+			Message::estream(true) << "can't run Metafont (mf.exe and mf-nowin.exe not found)\n";
+			return false;
+		}
 #endif
-	const char *cmd = FileFinder::instance().lookup(mfname, false);
-	if (!cmd) {
-		Message::estream(true) << "can't run Metafont (" << mfname << " not found)\n";
-		return false;
-	}
-#else
-	const char *cmd = "mf";
-#endif
 	ostringstream oss;
 	oss << "\"\\mode=" << mode  << ";"  // set MF mode, e.g. 'proof', 'ljfour' or 'localfont'
 		"mode_setup;"                    // initialize MF variables
@@ -75,7 +75,7 @@
 		"batchmode;"                     // don't halt on errors and don't print informational messages
 		"input " << _fontname << "\"";   // load font description
 	Message::mstream(false, Message::MC_STATE) << "\nrunning Metafont for " << _fontname << '\n';
-	Process mf_process(cmd, oss.str());
+	Process mf_process(mfName, oss.str());
 	string mf_messages;
 	mf_process.run(_dir, &mf_messages);
 

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/MiKTeXCom.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/MiKTeXCom.cpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/MiKTeXCom.cpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -92,8 +92,7 @@
 		_bstr_t path;
 		static string ret;
 #ifdef _MSC_VER
-		HRESULT hres = _session->FindFile(fname, path.GetAddress());
-		bool found = (hres != 0);
+		bool found = (_session->FindFile(fname, path.GetAddress()) == VARIANT_TRUE);
 #else
 		VARIANT_BOOL found_var;
 		_session->FindFile(_bstr_t(fname), path.GetAddress(), &found_var);

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/NoPsSpecialHandler.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/NoPsSpecialHandler.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/NoPsSpecialHandler.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -25,7 +25,6 @@
 
 class NoPsSpecialHandler : public SpecialHandler {
 	public:
-		NoPsSpecialHandler () : _count(0) {}
 		bool process (const std::string &prefix, std::istream &is, SpecialActions &actions) override;
 		const char* name () const override {return nullptr;}
 		const char* info () const override {return nullptr;}
@@ -35,7 +34,7 @@
 		void dviEndPage (unsigned pageno, SpecialActions &actions) override;
 
 	private:
-		unsigned _count;  // number of PS specials skipped
+		size_t _count=0;  // number of PS specials skipped
 };
 
 #endif

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PSInterpreter.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PSInterpreter.cpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PSInterpreter.cpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -24,6 +24,7 @@
 #include <sstream>
 #include <unordered_map>
 #include "FileFinder.hpp"
+#include "FileSystem.hpp"
 #include "InputReader.hpp"
 #include "Message.hpp"
 #include "PSFilter.hpp"
@@ -352,7 +353,7 @@
 /** Returns the total number of pages of a PDF file.
  *  @param[in] fname name/path of the PDF file */
 int PSInterpreter::pdfPageCount (const string &fname) {
-	executeRaw("\n("+fname+")@pdfpagecount ", 1);
+	executeRaw("\n("+FileSystem::ensureForwardSlashes(fname)+")@pdfpagecount ", 1);
 	if (!_rawData.empty()) {
 		size_t index;
 		int ret = stoi(_rawData[0], &index, 10);
@@ -370,7 +371,7 @@
  *  @return the bounding box of the given page */
 BoundingBox PSInterpreter::pdfPageBox (const string &fname, int pageno) {
 	BoundingBox pagebox;
-	executeRaw("\n"+to_string(pageno)+"("+fname+")@pdfpagebox ", 4);
+	executeRaw("\n"+to_string(pageno)+"("+FileSystem::ensureForwardSlashes(fname)+")@pdfpagebox ", 4);
 	if (_rawData.size() < 4)
 		pagebox.invalidate();
 	else

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PSPreviewFilter.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PSPreviewFilter.cpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PSPreviewFilter.cpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -28,12 +28,6 @@
 
 using namespace std;
 
-PSPreviewFilter::PSPreviewFilter (PSInterpreter &psi)
-	: PSFilter(psi), _active(false), _tightpage(false), _dvi2bp(1.0/65536.0)
-{
-}
-
-
 /** Activates this filter so that the PS code will be redirected through it if
  *  it's hooked into the PSInterpreter. */
 void PSPreviewFilter::activate () {

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PSPreviewFilter.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PSPreviewFilter.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PSPreviewFilter.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -30,7 +30,7 @@
 
 class PSPreviewFilter : public PSFilter {
 	public:
-		explicit PSPreviewFilter (PSInterpreter &psi);
+		explicit PSPreviewFilter (PSInterpreter &psi) : PSFilter(psi) {}
 		void activate ();
 		void execute (const char *code, size_t len) override;
 		bool active () const override          {return _active;}
@@ -44,11 +44,11 @@
 		double width () const;
 
 	private:
-		std::string _version;  ///< version string of preview package
-		bool _active;          ///< true if filter is active
-		bool _tightpage;       ///< true if tightpage option was given
-		double _dvi2bp;        ///< factor to convert dvi units to PS points
-		std::vector<int> _boxExtents;  ///< bounding box data set by the preview package (in DVI units)
+		std::string _version;         ///< version string of preview package
+		bool _active=false;           ///< true if filter is active
+		bool _tightpage=false;        ///< true if tightpage option was given
+		double _dvi2bp=1.0/65536.0;   ///< factor to convert dvi units to PS points
+		std::vector<int> _boxExtents; ///< bounding box data set by the preview package (in DVI units)
 };
 
 #endif

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PathClipper.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PathClipper.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PathClipper.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -31,18 +31,15 @@
 
 using ClipperLib::IntPoint;
 
-class PathClipper
-{
+class PathClipper {
 	public:
 		using CurvedPath = GraphicsPath<double>;
 
 	public:
-		PathClipper () : _numLines(0) {}
 		void intersect (const CurvedPath &p1, const CurvedPath &p2, CurvedPath &result);
 
 	protected:
 		void flatten (const CurvedPath &gp, ClipperLib::Paths &polygons);
-//		void divide (IntPoint &p1, IntPoint &p2, IntPoint &ip);
 		void reconstruct (const ClipperLib::Path &polygon, CurvedPath &path);
 		void reconstruct (const ClipperLib::Paths &polygons, CurvedPath &path);
 		static void callback (IntPoint &e1bot, IntPoint &e1top, IntPoint &e2bot, IntPoint &e2top, IntPoint &ip);
@@ -49,7 +46,7 @@
 
 	private:
 		std::vector<Bezier> _curves;
-		int _numLines;  ///< negative number of straight line segments in path been processed
+		int _numLines=0;  ///< negative number of straight line segments in path been processed
 };
 
 #endif

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PreScanDVIReader.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PreScanDVIReader.cpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PreScanDVIReader.cpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -25,7 +25,7 @@
 
 
 PreScanDVIReader::PreScanDVIReader (std::istream &is, DVIActions *actions)
-	: BasicDVIReader(is), _actions(actions), _currentPageNumber(0)
+	: BasicDVIReader(is), _actions(actions)
 {
 }
 

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PreScanDVIReader.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PreScanDVIReader.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PreScanDVIReader.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -25,8 +25,7 @@
 
 struct DVIActions;
 
-class PreScanDVIReader : public BasicDVIReader
-{
+class PreScanDVIReader : public BasicDVIReader {
 	public:
 		PreScanDVIReader (std::istream &is, DVIActions *actions);
 		unsigned currentPageNumber () const override {return _currentPageNumber;}
@@ -37,7 +36,7 @@
 
 	private:
 		DVIActions *_actions;
-		unsigned _currentPageNumber;
+		unsigned _currentPageNumber=0;
 };
 
 #endif

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Process.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Process.cpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Process.cpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -22,6 +22,7 @@
 	#include "windows.hpp"
 #else
 	#include <csignal>
+	#include <cstring>
 	#include <fcntl.h>
 	#include <sys/wait.h>
 	#include <unistd.h>
@@ -42,7 +43,7 @@
 		enum class State {RUNNING, FINISHED, FAILED};
 
 	public:
-		Subprocess ();
+		Subprocess () =default;
 		Subprocess (const Subprocess&) =delete;
 		Subprocess (Subprocess&&) =delete;
 		~Subprocess ();
@@ -52,11 +53,11 @@
 
 	private:
 #ifdef _WIN32
-		HANDLE _pipeReadHandle;   ///< handle of read end of pipe
-		HANDLE _childProcHandle;  ///< handle of child process
+		HANDLE _pipeReadHandle=NULL;   ///< handle of read end of pipe
+		HANDLE _childProcHandle=NULL;  ///< handle of child process
 #else
-		int _readfd; ///< file descriptor of read end of pipe
-		pid_t _pid;  ///< PID of the subprocess
+		int _readfd=-1; ///< file descriptor of read end of pipe
+		pid_t _pid=-1;  ///< PID of the subprocess
 #endif
 };
 
@@ -113,10 +114,6 @@
 }
 
 
-Subprocess::Subprocess() : _pipeReadHandle(NULL), _childProcHandle(NULL) {
-}
-
-
 Subprocess::~Subprocess () {
 	if (_pipeReadHandle != NULL)
 		CloseHandle(_pipeReadHandle);
@@ -214,10 +211,6 @@
 
 #else  // !_WIN32
 
-Subprocess::Subprocess () : _readfd(-1), _pid(-1) {
-}
-
-
 Subprocess::~Subprocess () {
 	if (_readfd >= 0)
 		close(_readfd);
@@ -276,12 +269,12 @@
 
 
 /** Starts a child process.
- *  @param[in] cmd name of command to execute
- *  @param[in] paramstr parameters required by command
+ *  @param[in] cmd name of command to execute or absolute path to executable
+ *  @param[in] paramstr parameters required by the command
  *  @returns true if child process started properly */
 bool Subprocess::run (const string &cmd, string paramstr) {
 	int pipefd[2];
-	if (pipe(pipefd) < 0)
+	if (cmd.empty() || pipe(pipefd) < 0)
 		return false;
 
 	_pid = fork();
@@ -299,9 +292,11 @@
 		vector<const char*> params;
 		params.push_back(cmd.c_str());
 		split_paramstr(paramstr, params);
-		params.push_back(nullptr); // trailing null pointer marks end of parameter list
-		signal(SIGINT, SIG_IGN);   // child process is supposed to ignore ctrl-c events
-		execvp(cmd.c_str(), const_cast<char* const*>(&params[0]));
+		params.push_back(nullptr);  // trailing null pointer marks end of parameter list
+		signal(SIGINT, SIG_IGN);    // child process is supposed to ignore ctrl-c events
+		if (params[0][0] == '/')    // absolute path to executable?
+			params[0] = strrchr(params[0], '/')+1;  // filename of executable
+		execvp(cmd.c_str(), const_cast<char* const*>(params.data()));
 		exit(1);
 	}
 	_readfd = pipefd[0];

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.cpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.cpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -214,7 +214,7 @@
 		if (_actions) {
 			StreamInputReader in(is);
 			string fname = in.getQuotedString(in.peek() == '"' ? "\"" : nullptr);
-			fname = FileSystem::adaptPathSeperators(fname);
+			fname = FileSystem::ensureForwardSlashes(fname);
 			FileType fileType = FileType::EPS;
 			if (prefix == "pdffile")
 				fileType = FileType::PDF;
@@ -392,7 +392,7 @@
 	unique_ptr<XMLElement> node;
 	string pathstr;
 	if (const char *path = FileFinder::instance().lookup(fname, false))
-		pathstr = FileSystem::adaptPathSeperators(path);
+		pathstr = FileSystem::ensureForwardSlashes(path);
 	if ((pathstr.empty() || !FileSystem::exists(pathstr)) && FileSystem::exists(fname))
 		pathstr = fname;
 	if (pathstr.empty())

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -46,7 +46,6 @@
 	 *  clipping paths and compute their intersections locally if necessary. */
 	class ClippingStack {
 		public:
-			ClippingStack () : _maxID(0) {}
 			void pushEmptyPath ();
 			void push (const Path &path, int saveID=-1);
 			bool replace (const Path &path);
@@ -72,7 +71,7 @@
 				Entry (const Entry &entry) =default;
 				Entry (Entry &&entry) =default;
 			};
-			size_t _maxID;
+			size_t _maxID=0;
 			std::stack<Entry> _stack;  ///< stack holding the clipping information of the current graphics context
 	};
 

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/RangeMap.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/RangeMap.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/RangeMap.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -30,7 +30,7 @@
 	class Range {
 		friend class RangeMap;
 		public:
-			Range () : _min(0), _max(0), _minval(0) {}
+			Range () =default;
 
 			Range (uint32_t min, uint32_t max, uint32_t minval) : _min(min), _max(max), _minval(minval) {
 				if (_min > _max)
@@ -53,8 +53,8 @@
 			bool join (const Range &r);
 
 		private:
-			uint32_t _min, _max;
-			uint32_t _minval;
+			uint32_t _min=0, _max=0;
+			uint32_t _minval=0;
 	};
 
 	using Ranges = std::vector<Range>;

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/SVGOutput.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/SVGOutput.cpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/SVGOutput.cpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -35,7 +35,7 @@
 
 
 SVGOutput::SVGOutput (const string &base, string pattern, int zipLevel)
-	: _path(base), _pattern(std::move(pattern)), _stdout(base.empty()), _zipLevel(zipLevel), _page(-1)
+	: _path(base), _pattern(std::move(pattern)), _stdout(base.empty()), _zipLevel(zipLevel)
 {
 }
 

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/SVGOutput.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/SVGOutput.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/SVGOutput.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -53,7 +53,7 @@
 
 class SVGOutput : public SVGOutputBase {
 	public:
-		SVGOutput () : SVGOutput("", "", 0) {}
+		SVGOutput () =default;
 		explicit SVGOutput (const std::string &base) : SVGOutput(base, "", 0) {}
 		SVGOutput (const std::string &base, const std::string &pattern) : SVGOutput(base, pattern, 0) {}
 		SVGOutput (const std::string &base, std::string pattern, int zipLevel);
@@ -67,9 +67,9 @@
 	private:
 		FilePath _path;
 		std::string _pattern;
-		bool _stdout;      ///< write to STDOUT?
-		int _zipLevel;     ///< compression level
-		mutable int _page; ///< number of current page being written
+		bool _stdout=true;    ///< write to STDOUT?
+		int _zipLevel=0;      ///< compression level
+		mutable int _page=-1; ///< number of current page being written
 		mutable std::unique_ptr<std::ostream> _osptr;
 };
 

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/SignalHandler.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/SignalHandler.cpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/SignalHandler.cpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -49,7 +49,7 @@
 
 
 SignalHandler::SignalHandler ()
-	: _active(false), _impl(util::make_unique<SignalHandler::Impl>())
+	: _impl(util::make_unique<SignalHandler::Impl>())
 {
 }
 
@@ -89,7 +89,7 @@
 
 /** Checks for incoming signals and throws an exception if CTRL-C was caught.
  *  @throw SignalException */
-void SignalHandler::check() {
+void SignalHandler::check () {
 	if (_break)
 		throw SignalException();
 }

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/SignalHandler.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/SignalHandler.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/SignalHandler.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -45,7 +45,7 @@
 		static void callback (int signal);
 
 	private:
-		bool _active;       ///< true if listening for signals
+		bool _active=false;          ///< true if listening for signals
 		static volatile bool _break; ///< true if signal has been caught
 		class Impl;
 		std::unique_ptr<Impl> _impl; ///< system-specific data/functions

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/TFM.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/TFM.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/TFM.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -30,8 +30,7 @@
 
 class StreamReader;
 
-class TFM : public FontMetrics
-{
+class TFM : public FontMetrics {
 	public:
 		explicit TFM (std::istream &is);
 		double getCharWidth (int c) const override;
@@ -51,7 +50,7 @@
 		uint16_t lastChar () const override    {return _lastChar;}
 
 	protected:
-		TFM () : _checksum(0), _firstChar(0), _lastChar(0), _designSize(0), _params(7) {}
+		TFM () : _params(7) {}
 		void readHeader (StreamReader &reader);
 		void readTables (StreamReader &reader, int nw, int nh, int nd, int ni);
 		void readParameters (StreamReader &reader, int np);
@@ -59,9 +58,9 @@
 		void setCharRange (int firstchar, int lastchar) {_firstChar=firstchar; _lastChar=lastchar;}
 
 	private:
-		uint32_t _checksum;
-		uint16_t _firstChar, _lastChar;
-		double _designSize;  ///< design size of the font in PS points (72bp = 1in)
+		uint32_t _checksum=0;
+		uint16_t _firstChar=0, _lastChar=0;
+		double _designSize=0;  ///< design size of the font in PS points (72bp = 1in)
 		std::vector<uint32_t>  _charInfoTable;
 		std::vector<FixWord> _widthTable;    ///< character widths in design size units
 		std::vector<FixWord> _heightTable;   ///< character height in design size units

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/VFReader.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/VFReader.cpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/VFReader.cpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -28,11 +28,6 @@
 using namespace std;
 
 
-VFReader::VFReader (istream &is) : StreamReader(is)
-{
-}
-
-
 VFActions* VFReader::replaceActions (VFActions *a) {
 	VFActions *ret = _actions;
 	_actions = a;

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/VFReader.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/VFReader.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/VFReader.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -31,10 +31,10 @@
 
 struct VFActions;
 
-class VFReader : public StreamReader{
+class VFReader : public StreamReader {
 	using ApproveAction = bool (*)(int);
 	public:
-		explicit VFReader (std::istream &is);
+		explicit VFReader (std::istream &is) : StreamReader(is) {}
 		VFActions* replaceActions (VFActions *a);
 		bool executeAll ();
 		bool executePreambleAndFontDefs ();

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/VectorStream.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/VectorStream.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/VectorStream.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -28,9 +28,7 @@
 class VectorStreamBuffer : public std::streambuf {
 	public:
 		explicit VectorStreamBuffer (const std::vector<T> &v) {
-			if (v.empty())
-				_begin = _end = _curr = nullptr;
-			else {
+			if (!v.empty()) {
 				_begin = _curr = &v[0];
 				_end = &v[0]+v.size();
 			}
@@ -68,9 +66,9 @@
 		}
 
 	private:
-		const T *_begin;
-		const T *_end;
-		const T *_curr;
+		const T *_begin=nullptr;
+		const T *_end=nullptr;
+		const T *_curr=nullptr;
 };
 
 

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/dvisvgm.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/dvisvgm.cpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/dvisvgm.cpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -64,7 +64,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 static string remove_path (string fname) {
-	fname = FileSystem::adaptPathSeperators(fname);
+	fname = FileSystem::ensureForwardSlashes(fname);
 	size_t slashpos = fname.rfind('/');
 	if (slashpos == string::npos)
 		return fname;

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -22,103 +22,104 @@
 
 const char *PSInterpreter::PSDEFS =
 "<</Install{matrix setmatrix}/HWResolution[72 72]/PageSize[10000 10000]/Imaging"
-"BBox null>>setpagedevice/@dodraw true store/@nulldev false store/@patcnt 0 sto"
-"re/@SD systemdict def/@UD userdict def true setglobal @SD/:save @SD/save get p"
-"ut @SD/:restore @SD/restore get put @SD/:gsave @SD/gsave get put @SD/:grestore"
-" @SD/grestore get put @SD/:grestoreall @SD/grestoreall get put @SD/:newpath @S"
-"D/newpath get put @SD/:stroke @SD/stroke get put @SD/:fill @SD/fill get put @S"
-"D/:eofill @SD/eofill get put @SD/:clip @SD/clip get put @SD/:eoclip @SD/eoclip"
-" get put @SD/:charpath @SD/charpath get put @SD/:show @SD/show get put @SD/:st"
-"ringwidth @SD/stringwidth get put @SD/:nulldevice @SD/nulldevice get put @SD/."
-"setopacityalpha known not{@SD/.setopacityalpha{pop}put}if @SD/.setshapealpha k"
-"nown not{@SD/.setshapealpha{pop}put}if @SD/.setblendmode known not{@SD/.setble"
-"ndmode{pop}put}if @SD/prseq{-1 1{-1 roll =only( )print}for(\\n)print}put @SD/p"
-"rcmd{( )exch(\\ndvi.)3{print}repeat prseq}put @SD/cvxall{{cvx}forall}put @SD/d"
-"efpr{[exch[/copy @SD]cvxall 5 -1 roll dup 6 1 roll[/get/exec]cvxall 6 -1 roll "
-"dup 7 1 roll 4 -1 roll dup 5 1 roll dup length string cvs/prcmd cvx]cvx def}pu"
-"t @SD/querypos{{currentpoint}stopped{$error/newerror false put}{2(querypos)prc"
-"md}ifelse}put @SD/applyscalevals{1 0 dtransform exch dup mul exch dup mul add "
-"sqrt 0 1 dtransform exch dup mul exch dup mul add sqrt 1 0 dtransform dup mul "
-"exch dup dup mul 3 -1 roll add dup 0 eq{pop}{sqrt div}ifelse 3(applyscalevals)"
-"prcmd}put @SD/prpath{{2(moveto)prcmd}{2(lineto)prcmd}{6(curveto)prcmd}{0(close"
-"path)prcmd}pathforall}put @SD/nulldevice{/@nulldev true store :nulldevice 1 1("
-"setnulldevice)prcmd}put @SD/charpath{/@dodraw false store :charpath/@dodraw tr"
-"ue store}put @SD/stringwidth{/@dodraw false store :stringwidth/@dodraw true st"
-"ore}put @SD/show{@dodraw @nulldev not and{dup :gsave currentpoint 2{50 mul exc"
-"h}repeat :newpath moveto 50 50/scale sysexec true charpath fill :grestore/@dod"
-"raw false store :show/@dodraw true store}{:show}ifelse}put @SD/varxyshow{exch "
-"dup type/arraytype eq{<</arr 3 -1 roll/prc 5 -1 roll/chr 1 string/idx 0>>begin"
-"{chr 0 3 -1 roll put :gsave chr show :grestore currentpoint prc moveto/idx idx"
-" 1 add store}forall end}{pop show}ifelse}put @SD/xyshow{{exch arr idx 2 mul ge"
-"t add exch arr idx 2 mul 1 add get add}varxyshow}put @SD/xshow{{exch arr idx g"
-"et add exch}varxyshow}put @SD/yshow{{arr idx get add}varxyshow}put @SD/awidths"
-"how{{1 string dup 0 5 index put :gsave show :grestore pop 0 rmoveto 3 index eq"
-"{4 index 4 index rmoveto}if 1 index 1 index rmoveto}exch cshow 5{pop}repeat}pu"
-"t @SD/widthshow{0 0 3 -1 roll pstack awidthshow}put @SD/ashow{0 0 0 6 3 roll a"
-"widthshow}put @SD/newpath{:newpath 1 1(newpath)prcmd}put @SD/stroke{@dodraw @n"
-"ulldev not and{prcolor 0 1(newpath)prcmd prpath 0(stroke)prcmd :newpath}{:stro"
-"ke}ifelse}put @SD/fill{@dodraw @nulldev not and{prcolor 0 1(newpath)prcmd prpa"
-"th 0(fill)prcmd :newpath}{:fill}ifelse}put @SD/eofill{@dodraw @nulldev not and"
-"{prcolor 0 1(newpath)prcmd prpath 0(eofill)prcmd :newpath}{:eofill}ifelse}put "
-"@SD/clip{:clip @nulldev not{0 1(newpath)prcmd prpath 0(clip)prcmd}if}put @SD/e"
-"oclip{:eoclip @nulldev not{0 1(newpath)prcmd prpath 0(eoclip)prcmd}}put @SD/sh"
-"fill{begin currentdict/ShadingType known currentdict/ColorSpace known and curr"
-"entdict/DataSource known and currentdict/Function known not and ShadingType 4 "
-"ge and DataSource type/arraytype eq and{<</DeviceGray 1/DeviceRGB 3/DeviceCMYK"
-" 4/bgknown currentdict/Background known/bbknown currentdict/BBox known>>begin "
-"currentdict ColorSpace known{ShadingType ColorSpace load bgknown{1 Background "
-"aload pop}{0}ifelse bbknown{1 BBox aload pop}{0}ifelse ShadingType 5 eq{Vertic"
-"esPerRow}if DataSource aload length 4 add bgknown{ColorSpace load add}if bbkno"
-"wn{4 add}if ShadingType 5 eq{1 add}if(shfill)prcmd}if end}if end}put/@rect{4 -"
-"2 roll moveto exch dup 0 rlineto exch 0 exch rlineto neg 0 rlineto closepath}b"
-"ind def/@rectcc{4 -2 roll moveto 2 copy 0 lt exch 0 lt xor{dup 0 exch rlineto "
-"exch 0 rlineto neg 0 exch rlineto}{exch dup 0 rlineto exch 0 exch rlineto neg "
-"0 rlineto}ifelse closepath}bind def @SD/rectclip{:newpath dup type/arraytype e"
-"q{aload length 4 idiv{@rectcc}repeat}{@rectcc}ifelse clip :newpath}put @SD/rec"
-"tfill{gsave :newpath dup type/arraytype eq{aload length 4 idiv{@rectcc}repeat}"
-"{@rectcc}ifelse fill grestore}put @SD/rectstroke{gsave :newpath dup type/array"
-"type eq{aload length 4 idiv{@rect}repeat}{@rect}ifelse stroke grestore}put fal"
-"se setglobal @SD readonly pop/initclip 0 defpr/clippath 0 defpr/sysexec{@SD ex"
-"ch get exec}def/adddot{dup length 1 add string dup 0 46 put dup 3 -1 roll 1 ex"
-"ch putinterval}def/setlinewidth{dup/setlinewidth sysexec 1(setlinewidth)prcmd}"
-"def/setlinecap 1 defpr/setlinejoin 1 defpr/setmiterlimit 1 defpr/setdash{mark "
-"3 1 roll 2 copy/setdash sysexec exch aload length 1 add -1 roll counttomark(se"
-"tdash)prcmd pop}def/@setpagedevice{pop<<>>/setpagedevice sysexec matrix setmat"
-"rix newpath 0(setpagedevice)prcmd}def/@checknulldev{@nulldev{currentpagedevice"
-" maxlength 0 ne{/@nulldev false store 0 1(setnulldevice)prcmd}if}if}def/prcolo"
-"r{currentrgbcolor 3(setrgbcolor)prcmd}def/printgstate{@dodraw @nulldev not and"
-"{matrix currentmatrix aload pop 6(setmatrix)prcmd applyscalevals currentlinewi"
-"dth 1(setlinewidth)prcmd currentlinecap 1(setlinecap)prcmd currentlinejoin 1(s"
-"etlinejoin)prcmd currentmiterlimit 1(setmiterlimit)prcmd currentrgbcolor 3(set"
-"rgbcolor)prcmd currentdash mark 3 1 roll exch aload length 1 add -1 roll count"
-"tomark(setdash)prcmd pop}if}def/setgstate{/setgstate sysexec printgstate}def/s"
-"ave{@UD begin/@saveID vmstatus pop pop def end :save @saveID 1(save)prcmd}def/"
-"restore{:restore @checknulldev printgstate @UD/@saveID known{@UD begin @saveID"
-" end}{0}ifelse 1(restore)prcmd}def/gsave 0 defpr/grestore{:grestore @checknull"
-"dev printgstate 0(grestore)prcmd}def/grestoreall{:grestoreall @checknulldev se"
-"tstate 0(grestoreall)prcmd}def/rotate{dup type/arraytype ne @dodraw and{dup 1("
-"rotate)prcmd}if/rotate sysexec applyscalevals}def/scale{dup type/arraytype ne "
-"@dodraw and{2 copy 2(scale)prcmd}if/scale sysexec applyscalevals}def/translate"
-"{dup type/arraytype ne @dodraw and{2 copy 2(translate)prcmd}if/translate sysex"
-"ec}def/setmatrix{dup/setmatrix sysexec @dodraw{aload pop 6(setmatrix)prcmd app"
-"lyscalevals}{pop}ifelse}def/initmatrix{matrix setmatrix}def/concat{matrix curr"
-"entmatrix matrix concatmatrix setmatrix}def/makepattern{gsave<</mx 3 -1 roll>>"
-"begin dup/XUID[1000000 @patcnt]put mx/makepattern sysexec dup dup begin Patter"
-"nType @patcnt BBox aload pop XStep YStep PaintType mx aload pop 15(makepattern"
-")prcmd :newpath matrix setmatrix PaintProc 0 1(makepattern)prcmd end/@patcnt @"
-"patcnt 1 add store end grestore}def/setpattern{begin PatternType 1 eq{PaintTyp"
-"e 1 eq{XUID aload pop exch pop 1}{:gsave[currentcolorspace aload length -1 rol"
-"l pop]setcolorspace/setcolor sysexec XUID aload pop exch pop currentrgbcolor :"
-"grestore 4}ifelse(setpattern)prcmd}{/setpattern sysexec}ifelse end}def/setcolo"
-"r{dup type/dicttype eq{setpattern}{/setcolor sysexec/currentrgbcolor sysexec s"
-"etrgbcolor}ifelse}def/setgray 1 defpr/setcmykcolor 4 defpr/sethsbcolor 3 defpr"
-"/setrgbcolor 3 defpr/.setopacityalpha{dup/.setopacityalpha sysexec 1(setopacit"
-"yalpha)prcmd}def/.setshapealpha{dup/.setshapealpha sysexec 1(setshapealpha)prc"
-"md}def/.setblendmode{dup/.setblendmode sysexec<</Normal 0/Compatible 0/Multipl"
-"y 1/Screen 2/Overlay 3/SoftLight 4/HardLight 5/ColorDodge 6/ColorBurn 7/Darken"
-" 8/Lighten 9/Difference 10/Exclusion 11/Hue 12/Saturation 13/Color 14/Luminosi"
-"ty 15/CompatibleOverprint 16>>exch get 1(setblendmode)prcmd}def/@pdfpagecount{"
-"(r)file runpdfbegin pdfpagecount runpdfend}def/@pdfpagebox{(r)file runpdfbegin"
-" dup dup 1 lt exch pdfpagecount gt or{pop}{pdfgetpage/MediaBox pget pop aload "
-"pop}ifelse runpdfend}def DELAYBIND{.bindnow}if ";
+"BBox null>>setpagedevice/@dodraw true store/@patcnt 0 store/@GD globaldict def"
+"/@SD systemdict def/@UD userdict def @GD/@nulldev false put true setglobal @SD"
+"/:save @SD/save get put @SD/:restore @SD/restore get put @SD/:gsave @SD/gsave "
+"get put @SD/:grestore @SD/grestore get put @SD/:grestoreall @SD/grestoreall ge"
+"t put @SD/:newpath @SD/newpath get put @SD/:stroke @SD/stroke get put @SD/:fil"
+"l @SD/fill get put @SD/:eofill @SD/eofill get put @SD/:clip @SD/clip get put @"
+"SD/:eoclip @SD/eoclip get put @SD/:charpath @SD/charpath get put @SD/:show @SD"
+"/show get put @SD/:stringwidth @SD/stringwidth get put @SD/:nulldevice @SD/nul"
+"ldevice get put @SD/.setopacityalpha known not{@SD/.setopacityalpha{pop}put}if"
+" @SD/.setshapealpha known not{@SD/.setshapealpha{pop}put}if @SD/.setblendmode "
+"known not{@SD/.setblendmode{pop}put}if @SD/prseq{-1 1{-1 roll =only( )print}fo"
+"r(\\n)print}put @SD/prcmd{( )exch(\\ndvi.)3{print}repeat prseq}put @SD/cvxall{"
+"{cvx}forall}put @SD/defpr{[exch[/copy @SD]cvxall 5 -1 roll dup 6 1 roll[/get/e"
+"xec]cvxall 6 -1 roll dup 7 1 roll 4 -1 roll dup 5 1 roll dup length string cvs"
+"/prcmd cvx]cvx def}put @SD/querypos{{currentpoint}stopped{$error/newerror fals"
+"e put}{2(querypos)prcmd}ifelse}put @SD/applyscalevals{1 0 dtransform exch dup "
+"mul exch dup mul add sqrt 0 1 dtransform exch dup mul exch dup mul add sqrt 1 "
+"0 dtransform dup mul exch dup dup mul 3 -1 roll add dup 0 eq{pop}{sqrt div}ife"
+"lse 3(applyscalevals)prcmd}put @SD/prpath{{2(moveto)prcmd}{2(lineto)prcmd}{6(c"
+"urveto)prcmd}{0(closepath)prcmd}pathforall}put @SD/nulldevice{@GD/@nulldev tru"
+"e put :nulldevice 1 1(setnulldevice)prcmd}put @SD/charpath{/@dodraw false stor"
+"e :charpath/@dodraw true store}put @SD/stringwidth{/@dodraw false store :strin"
+"gwidth/@dodraw true store}put @SD/show{@dodraw @GD/@nulldev get not and{dup :g"
+"save currentpoint 2{50 mul exch}repeat :newpath moveto 50 50/scale sysexec tru"
+"e charpath fill :grestore/@dodraw false store :show/@dodraw true store}{:show}"
+"ifelse}put @SD/varxyshow{exch dup type/arraytype eq{<</arr 3 -1 roll/prc 5 -1 "
+"roll/chr 1 string/idx 0>>begin{chr 0 3 -1 roll put :gsave chr show :grestore c"
+"urrentpoint prc moveto/idx idx 1 add store}forall end}{pop show}ifelse}put @SD"
+"/xyshow{{exch arr idx 2 mul get add exch arr idx 2 mul 1 add get add}varxyshow"
+"}put @SD/xshow{{exch arr idx get add exch}varxyshow}put @SD/yshow{{arr idx get"
+" add}varxyshow}put @SD/awidthshow{{1 string dup 0 5 index put :gsave show :gre"
+"store pop 0 rmoveto 3 index eq{4 index 4 index rmoveto}if 1 index 1 index rmov"
+"eto}exch cshow 5{pop}repeat}put @SD/widthshow{0 0 3 -1 roll pstack awidthshow}"
+"put @SD/ashow{0 0 0 6 3 roll awidthshow}put @SD/newpath{:newpath 1 1(newpath)p"
+"rcmd}put @SD/stroke{@dodraw @GD/@nulldev get not and{prcolor 0 1(newpath)prcmd"
+" prpath 0(stroke)prcmd :newpath}{:stroke}ifelse}put @SD/fill{@dodraw @GD/@null"
+"dev get not and{prcolor 0 1(newpath)prcmd prpath 0(fill)prcmd :newpath}{:fill}"
+"ifelse}put @SD/eofill{@dodraw @GD/@nulldev get not and{prcolor 0 1(newpath)prc"
+"md prpath 0(eofill)prcmd :newpath}{:eofill}ifelse}put @SD/clip{:clip @GD/@null"
+"dev get not{0 1(newpath)prcmd prpath 0(clip)prcmd}if}put @SD/eoclip{:eoclip @G"
+"D/@nulldev get not{0 1(newpath)prcmd prpath 0(eoclip)prcmd}}put @SD/shfill{beg"
+"in currentdict/ShadingType known currentdict/ColorSpace known and currentdict/"
+"DataSource known and currentdict/Function known not and ShadingType 4 ge and D"
+"ataSource type/arraytype eq and{<</DeviceGray 1/DeviceRGB 3/DeviceCMYK 4/bgkno"
+"wn currentdict/Background known/bbknown currentdict/BBox known>>begin currentd"
+"ict ColorSpace known{ShadingType ColorSpace load bgknown{1 Background aload po"
+"p}{0}ifelse bbknown{1 BBox aload pop}{0}ifelse ShadingType 5 eq{VerticesPerRow"
+"}if DataSource aload length 4 add bgknown{ColorSpace load add}if bbknown{4 add"
+"}if ShadingType 5 eq{1 add}if(shfill)prcmd}if end}if end}put/@rect{4 -2 roll m"
+"oveto exch dup 0 rlineto exch 0 exch rlineto neg 0 rlineto closepath}bind def/"
+"@rectcc{4 -2 roll moveto 2 copy 0 lt exch 0 lt xor{dup 0 exch rlineto exch 0 r"
+"lineto neg 0 exch rlineto}{exch dup 0 rlineto exch 0 exch rlineto neg 0 rlinet"
+"o}ifelse closepath}bind def @SD/rectclip{:newpath dup type/arraytype eq{aload "
+"length 4 idiv{@rectcc}repeat}{@rectcc}ifelse clip :newpath}put @SD/rectfill{gs"
+"ave :newpath dup type/arraytype eq{aload length 4 idiv{@rectcc}repeat}{@rectcc"
+"}ifelse fill grestore}put @SD/rectstroke{gsave :newpath dup type/arraytype eq{"
+"aload length 4 idiv{@rect}repeat}{@rect}ifelse stroke grestore}put false setgl"
+"obal @SD readonly pop/initclip 0 defpr/clippath 0 defpr/sysexec{@SD exch get e"
+"xec}def/adddot{dup length 1 add string dup 0 46 put dup 3 -1 roll 1 exch putin"
+"terval}def/setlinewidth{dup/setlinewidth sysexec 1(setlinewidth)prcmd}def/setl"
+"inecap 1 defpr/setlinejoin 1 defpr/setmiterlimit 1 defpr/setdash{mark 3 1 roll"
+" 2 copy/setdash sysexec exch aload length 1 add -1 roll counttomark(setdash)pr"
+"cmd pop}def/@setpagedevice{pop<<>>/setpagedevice sysexec matrix setmatrix newp"
+"ath 0(setpagedevice)prcmd}def/@checknulldev{@GD/@nulldev get{currentpagedevice"
+" maxlength 0 ne{@GD/@nulldev false put 0 1(setnulldevice)prcmd}if}if}def/prcol"
+"or{currentrgbcolor 3(setrgbcolor)prcmd}def/printgstate{@dodraw @GD/@nulldev ge"
+"t not and{matrix currentmatrix aload pop 6(setmatrix)prcmd applyscalevals curr"
+"entlinewidth 1(setlinewidth)prcmd currentlinecap 1(setlinecap)prcmd currentlin"
+"ejoin 1(setlinejoin)prcmd currentmiterlimit 1(setmiterlimit)prcmd currentrgbco"
+"lor 3(setrgbcolor)prcmd currentdash mark 3 1 roll exch aload length 1 add -1 r"
+"oll counttomark(setdash)prcmd pop}if}def/setgstate{/setgstate sysexec printgst"
+"ate}def/save{@UD begin/@saveID vmstatus pop pop def end :save @saveID 1(save)p"
+"rcmd}def/restore{:restore @checknulldev printgstate @UD/@saveID known{@UD begi"
+"n @saveID end}{0}ifelse 1(restore)prcmd}def/gsave 0 defpr/grestore{:grestore @"
+"checknulldev printgstate 0(grestore)prcmd}def/grestoreall{:grestoreall @checkn"
+"ulldev setstate 0(grestoreall)prcmd}def/rotate{dup type/arraytype ne @dodraw a"
+"nd{dup 1(rotate)prcmd}if/rotate sysexec applyscalevals}def/scale{dup type/arra"
+"ytype ne @dodraw and{2 copy 2(scale)prcmd}if/scale sysexec applyscalevals}def/"
+"translate{dup type/arraytype ne @dodraw and{2 copy 2(translate)prcmd}if/transl"
+"ate sysexec}def/setmatrix{dup/setmatrix sysexec @dodraw{aload pop 6(setmatrix)"
+"prcmd applyscalevals}{pop}ifelse}def/initmatrix{matrix setmatrix}def/concat{ma"
+"trix currentmatrix matrix concatmatrix setmatrix}def/makepattern{gsave<</mx 3 "
+"-1 roll>>begin dup/XUID[1000000 @patcnt]put mx/makepattern sysexec dup dup beg"
+"in PatternType @patcnt BBox aload pop XStep YStep PaintType mx aload pop 15(ma"
+"kepattern)prcmd :newpath matrix setmatrix PaintProc 0 1(makepattern)prcmd end/"
+"@patcnt @patcnt 1 add store end grestore}def/setpattern{begin PatternType 1 eq"
+"{PaintType 1 eq{XUID aload pop exch pop 1}{:gsave[currentcolorspace aload leng"
+"th -1 roll pop]setcolorspace/setcolor sysexec XUID aload pop exch pop currentr"
+"gbcolor :grestore 4}ifelse(setpattern)prcmd}{/setpattern sysexec}ifelse end}de"
+"f/setcolor{dup type/dicttype eq{setpattern}{/setcolor sysexec/currentrgbcolor "
+"sysexec setrgbcolor}ifelse}def/setgray 1 defpr/setcmykcolor 4 defpr/sethsbcolo"
+"r 3 defpr/setrgbcolor 3 defpr/.setopacityalpha{dup/.setopacityalpha sysexec 1("
+"setopacityalpha)prcmd}def/.setshapealpha{dup/.setshapealpha sysexec 1(setshape"
+"alpha)prcmd}def/.setblendmode{dup/.setblendmode sysexec<</Normal 0/Compatible "
+"0/Multiply 1/Screen 2/Overlay 3/SoftLight 4/HardLight 5/ColorDodge 6/ColorBurn"
+" 7/Darken 8/Lighten 9/Difference 10/Exclusion 11/Hue 12/Saturation 13/Color 14"
+"/Luminosity 15/CompatibleOverprint 16>>exch get 1(setblendmode)prcmd}def/@pdfp"
+"agecount{(r)file runpdfbegin pdfpagecount runpdfend}def/@pdfpagebox{(r)file ru"
+"npdfbegin dup dup 1 lt exch pdfpagecount gt or{pop}{pdfgetpage/MediaBox pget p"
+"op aload pop}ifelse runpdfend}def DELAYBIND{.bindnow}if ";
 

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/version.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/version.hpp	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/version.hpp	2019-12-10 06:22:32 UTC (rev 53077)
@@ -22,7 +22,7 @@
 #define VERSION_HPP
 
 constexpr const char *PROGRAM_NAME = "dvisvgm";
-constexpr const char *PROGRAM_VERSION = "2.8.1";
+constexpr const char *PROGRAM_VERSION = "2.8.2";
 
 #endif
 

Added: trunk/Build/source/texk/dvisvgm/dvisvgm-src/tests/gtest/src/gtest-matchers.cc
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/tests/gtest/src/gtest-matchers.cc	                        (rev 0)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/tests/gtest/src/gtest-matchers.cc	2019-12-10 06:22:32 UTC (rev 53077)
@@ -0,0 +1,97 @@
+// Copyright 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// The Google C++ Testing and Mocking Framework (Google Test)
+//
+// This file implements just enough of the matcher interface to allow
+// EXPECT_DEATH and friends to accept a matcher argument.
+
+#include "gtest/internal/gtest-internal.h"
+#include "gtest/internal/gtest-port.h"
+#include "gtest/gtest-matchers.h"
+
+#include <string>
+
+namespace testing {
+
+// Constructs a matcher that matches a const std::string& whose value is
+// equal to s.
+Matcher<const std::string&>::Matcher(const std::string& s) { *this = Eq(s); }
+
+// Constructs a matcher that matches a const std::string& whose value is
+// equal to s.
+Matcher<const std::string&>::Matcher(const char* s) {
+  *this = Eq(std::string(s));
+}
+
+// Constructs a matcher that matches a std::string whose value is equal to
+// s.
+Matcher<std::string>::Matcher(const std::string& s) { *this = Eq(s); }
+
+// Constructs a matcher that matches a std::string whose value is equal to
+// s.
+Matcher<std::string>::Matcher(const char* s) { *this = Eq(std::string(s)); }
+
+#if GTEST_HAS_ABSL
+// Constructs a matcher that matches a const absl::string_view& whose value is
+// equal to s.
+Matcher<const absl::string_view&>::Matcher(const std::string& s) {
+  *this = Eq(s);
+}
+
+// Constructs a matcher that matches a const absl::string_view& whose value is
+// equal to s.
+Matcher<const absl::string_view&>::Matcher(const char* s) {
+  *this = Eq(std::string(s));
+}
+
+// Constructs a matcher that matches a const absl::string_view& whose value is
+// equal to s.
+Matcher<const absl::string_view&>::Matcher(absl::string_view s) {
+  *this = Eq(std::string(s));
+}
+
+// Constructs a matcher that matches a absl::string_view whose value is equal to
+// s.
+Matcher<absl::string_view>::Matcher(const std::string& s) { *this = Eq(s); }
+
+// Constructs a matcher that matches a absl::string_view whose value is equal to
+// s.
+Matcher<absl::string_view>::Matcher(const char* s) {
+  *this = Eq(std::string(s));
+}
+
+// Constructs a matcher that matches a absl::string_view whose value is equal to
+// s.
+Matcher<absl::string_view>::Matcher(absl::string_view s) {
+  *this = Eq(std::string(s));
+}
+#endif  // GTEST_HAS_ABSL
+
+}  // namespace testing


Property changes on: trunk/Build/source/texk/dvisvgm/dvisvgm-src/tests/gtest/src/gtest-matchers.cc
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Build/source/texk/dvisvgm/version.ac
===================================================================
--- trunk/Build/source/texk/dvisvgm/version.ac	2019-12-10 06:20:44 UTC (rev 53076)
+++ trunk/Build/source/texk/dvisvgm/version.ac	2019-12-10 06:22:32 UTC (rev 53077)
@@ -9,4 +9,4 @@
 dnl --------------------------------------------------------
 dnl
 dnl  m4-include this file to define the current dvisvgm version
-m4_define([dvisvgm_version], [2.8.1])
+m4_define([dvisvgm_version], [2.8.2])



More information about the tex-live-commits mailing list