texlive[47098] Build/source/texk: dvisvgm-2.3.5

commits+kakuto at tug.org commits+kakuto at tug.org
Sat Mar 24 07:50:32 CET 2018


Revision: 47098
          http://tug.org/svn/texlive?view=revision&revision=47098
Author:   kakuto
Date:     2018-03-24 07:50:31 +0100 (Sat, 24 Mar 2018)
Log Message:
-----------
dvisvgm-2.3.5

Modified Paths:
--------------
    trunk/Build/source/texk/README
    trunk/Build/source/texk/dvisvgm/ChangeLog
    trunk/Build/source/texk/dvisvgm/TLpatches/ChangeLog
    trunk/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles
    trunk/Build/source/texk/dvisvgm/configure
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/NEWS
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Matrix.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Matrix.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PSInterpreter.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PSInterpreter.hpp
    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/psdefs.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/version.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/tests/MatrixTest.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/tests/PSInterpreterTest.cpp
    trunk/Build/source/texk/dvisvgm/version.ac

Modified: trunk/Build/source/texk/README
===================================================================
--- trunk/Build/source/texk/README	2018-03-24 05:21:31 UTC (rev 47097)
+++ trunk/Build/source/texk/README	2018-03-24 06:50:31 UTC (rev 47098)
@@ -59,7 +59,7 @@
 
 dvipsk - maintained here, by us
 
-dvisvgm 2.3.3 - checked 21feb18
+dvisvgm 2.3.5 - checked 24mar18
   http://dvisvgm.bplaced.net/Downloads
 
 gregorio 5.1.0 - checked 12mar18

Modified: trunk/Build/source/texk/dvisvgm/ChangeLog
===================================================================
--- trunk/Build/source/texk/dvisvgm/ChangeLog	2018-03-24 05:21:31 UTC (rev 47097)
+++ trunk/Build/source/texk/dvisvgm/ChangeLog	2018-03-24 06:50:31 UTC (rev 47098)
@@ -1,3 +1,7 @@
+2018-03-24  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	* Import 2.3.5.
+
 2018-03-16  Karl Berry  <karl at freefriends.org>
 
 	* Import 2.3.4.

Modified: trunk/Build/source/texk/dvisvgm/TLpatches/ChangeLog
===================================================================
--- trunk/Build/source/texk/dvisvgm/TLpatches/ChangeLog	2018-03-24 05:21:31 UTC (rev 47097)
+++ trunk/Build/source/texk/dvisvgm/TLpatches/ChangeLog	2018-03-24 06:50:31 UTC (rev 47098)
@@ -1,3 +1,8 @@
+2018-03-24  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	* Import 2.3.5.
+	* patch-08-makefiles: adapt.
+
 2018-02-21  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
 
 	* Import 2.3.3.

Modified: trunk/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles
===================================================================
--- trunk/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles	2018-03-24 05:21:31 UTC (rev 47097)
+++ trunk/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles	2018-03-24 06:50:31 UTC (rev 47098)
@@ -1,6 +1,6 @@
-diff -u2r dvisvgm-2.3.3/Makefile.am dvisvgm-src/Makefile.am
---- dvisvgm-2.3.3/Makefile.am	Tue Jan 02 18:32:38 2018
-+++ dvisvgm-src/Makefile.am	Thu Feb 22 07:02:50 2018
+diff -u2r dvisvgm-2.3.5/Makefile.am dvisvgm-src/Makefile.am
+--- dvisvgm-2.3.5/Makefile.am	Mon Feb 05 19:10:22 2018
++++ dvisvgm-src/Makefile.am	Sat Mar 24 15:28:20 2018
 @@ -6,5 +6,5 @@
  AUTOMAKE_OPTIONS = foreign
  EXTRA_DIST = COPYING
@@ -8,9 +8,9 @@
 +SUBDIRS = libs src #not for TL: tests doc
  ACLOCAL_AMFLAGS = -I m4
  
-diff -u2r dvisvgm-2.3.3/src/Makefile.am dvisvgm-src/src/Makefile.am
---- dvisvgm-2.3.3/src/Makefile.am	Tue Jan 02 18:32:38 2018
-+++ dvisvgm-src/src/Makefile.am	Thu Feb 22 07:09:47 2018
+diff -u2r dvisvgm-2.3.5/src/Makefile.am dvisvgm-src/src/Makefile.am
+--- dvisvgm-2.3.5/src/Makefile.am	Thu Mar 22 18:24:00 2018
++++ dvisvgm-src/src/Makefile.am	Sat Mar 24 15:28:48 2018
 @@ -14,8 +14,5 @@
  	$(noinst_LIBRARIES) \
  	../libs/clipper/libclipper.a \

Modified: trunk/Build/source/texk/dvisvgm/configure
===================================================================
--- trunk/Build/source/texk/dvisvgm/configure	2018-03-24 05:21:31 UTC (rev 47097)
+++ trunk/Build/source/texk/dvisvgm/configure	2018-03-24 06:50:31 UTC (rev 47098)
@@ -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.3.4.
+# Generated by GNU Autoconf 2.69 for dvisvgm (TeX Live) 2.3.5.
 #
 # 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.3.4'
-PACKAGE_STRING='dvisvgm (TeX Live) 2.3.4'
+PACKAGE_VERSION='2.3.5'
+PACKAGE_STRING='dvisvgm (TeX Live) 2.3.5'
 PACKAGE_BUGREPORT='tex-k at tug.org'
 PACKAGE_URL=''
 
@@ -1375,7 +1375,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.3.4 to adapt to many kinds of systems.
+\`configure' configures dvisvgm (TeX Live) 2.3.5 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1446,7 +1446,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of dvisvgm (TeX Live) 2.3.4:";;
+     short | recursive ) echo "Configuration of dvisvgm (TeX Live) 2.3.5:";;
    esac
   cat <<\_ACEOF
 
@@ -1581,7 +1581,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-dvisvgm (TeX Live) configure 2.3.4
+dvisvgm (TeX Live) configure 2.3.5
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2449,7 +2449,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.3.4, which was
+It was created by dvisvgm (TeX Live) $as_me 2.3.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -8188,7 +8188,7 @@
 
 # Define the identity of the package.
  PACKAGE='dvisvgm--tex-live-'
- VERSION='2.3.4'
+ VERSION='2.3.5'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -20189,7 +20189,7 @@
 Report bugs to <bug-libtool at gnu.org>."
 
 lt_cl_version="\
-dvisvgm (TeX Live) config.lt 2.3.4
+dvisvgm (TeX Live) config.lt 2.3.5
 configured by $0, generated by GNU Autoconf 2.69.
 
 Copyright (C) 2011 Free Software Foundation, Inc.
@@ -23585,7 +23585,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.3.4, which was
+This file was extended by dvisvgm (TeX Live) $as_me 2.3.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -23651,7 +23651,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.3.4
+dvisvgm (TeX Live) config.status 2.3.5
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/NEWS
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/NEWS	2018-03-24 05:21:31 UTC (rev 47097)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/NEWS	2018-03-24 06:50:31 UTC (rev 47098)
@@ -1,3 +1,8 @@
+dvisvgm-2.3.5 (2018-03-23)
+- added evaluation of PS operator 'setpagedevice' in psfile specials
+- fixed evaluation of dvips color names
+- fixed warning printed when using Ghostscript 9.23
+
 dvisvgm-2.3.4 (2018-03-14)
 - fixed error message printed when addding a single '-' on the command-line
 - added missing data file that lead to failing tests (GH bug #87)

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac	2018-03-24 05:21:31 UTC (rev 47097)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac	2018-03-24 06:50:31 UTC (rev 47098)
@@ -4,7 +4,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.59)
-AC_INIT([dvisvgm],[2.3.4],[martin.gieseking at uos.de])
+AC_INIT([dvisvgm],[2.3.5],[martin.gieseking at uos.de])
 DATE="March 2018"
 AC_CONFIG_SRCDIR(src)
 AC_CONFIG_HEADERS([config.h])

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1	2018-03-24 05:21:31 UTC (rev 47097)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1	2018-03-24 06:50:31 UTC (rev 47098)
@@ -2,12 +2,12 @@
 .\"     Title: dvisvgm
 .\"    Author: Martin Gieseking <martin.gieseking at uos.de>
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 03/14/2018
+.\"      Date: 03/23/2018
 .\"    Manual: dvisvgm Manual
-.\"    Source: dvisvgm 2.3.4
+.\"    Source: dvisvgm 2.3.5
 .\"  Language: English
 .\"
-.TH "DVISVGM" "1" "03/14/2018" "dvisvgm 2\&.3\&.4" "dvisvgm Manual"
+.TH "DVISVGM" "1" "03/23/2018" "dvisvgm 2\&.3\&.5" "dvisvgm Manual"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Matrix.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Matrix.cpp	2018-03-24 05:21:31 UTC (rev 47097)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Matrix.cpp	2018-03-24 06:50:31 UTC (rev 47098)
@@ -90,6 +90,17 @@
 }
 
 
+Matrix::Matrix (initializer_list<double> initlist) {
+	int count=0;
+	for (auto it=initlist.begin(); it != initlist.end() && count < 9; ++it) {
+		_values[count/3][count%3] = *it;
+		count++;
+	}
+	for (; count < 9; count++)
+		_values[count/3][count%3] = (count%4 ? 0 : 1);
+}
+
+
 Matrix& Matrix::set (double d) {
 	for (int i=0; i < 3; i++)
 		for (int j=0; j < 3; j++)

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Matrix.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Matrix.hpp	2018-03-24 05:21:31 UTC (rev 47097)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/Matrix.hpp	2018-03-24 06:50:31 UTC (rev 47098)
@@ -21,6 +21,7 @@
 #ifndef MATRIX_HPP
 #define MATRIX_HPP
 
+#include <initializer_list>
 #include <istream>
 #include <string>
 #include <vector>
@@ -28,15 +29,13 @@
 #include "Pair.hpp"
 
 
-struct ParserException : public MessageException
-{
+struct ParserException : public MessageException {
 	ParserException (const std::string &msg) : MessageException(msg) {}
 };
 
 class Calculator;
 
-class Matrix
-{
+class Matrix {
 	friend double det (const Matrix &m);
 	friend double det (const Matrix &m, int row, int col);
 
@@ -45,6 +44,7 @@
 		Matrix (double d=0);
 		Matrix (double v[], unsigned size=9);
 		Matrix (const std::vector<double> &v, int start=0);
+		Matrix (std::initializer_list<double> initlist);
 		Matrix& set (double d);
 		Matrix& set (double v[], unsigned size);
 		Matrix& set (const std::vector<double> &v, int start=0);
@@ -80,20 +80,17 @@
 };
 
 
-struct TranslationMatrix : public Matrix
-{
+struct TranslationMatrix : public Matrix {
 	TranslationMatrix (double tx, double ty);
 };
 
 
-struct ScalingMatrix : public Matrix
-{
+struct ScalingMatrix : public Matrix {
 	ScalingMatrix (double sx, double sy);
 };
 
 
-struct RotationMatrix : public Matrix
-{
+struct RotationMatrix : public Matrix {
 	RotationMatrix (double deg);
 };
 

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PSInterpreter.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PSInterpreter.cpp	2018-03-24 05:21:31 UTC (rev 47097)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PSInterpreter.cpp	2018-03-24 06:50:31 UTC (rev 47098)
@@ -36,7 +36,7 @@
 const char *PSInterpreter::GSARGS[] = {
 	"gs",                // dummy name
 	"-q",                // be quiet, suppress gs banner
-	"-dSAFER",           // disallow writing of files
+//	"-dSAFER",           // disallow writing of files
 	"-dNODISPLAY",       // we don't need a display device
 	"-dNOPAUSE",         // keep going
 	"-dWRITESYSTEMDICT", // leave systemdict writable as some operators must be replaced
@@ -281,6 +281,7 @@
 		{"setmatrix",      { 6, &PSActions::setmatrix}},
 		{"setmiterlimit",  { 1, &PSActions::setmiterlimit}},
 		{"setopacityalpha",{ 1, &PSActions::setopacityalpha}},
+		{"setpagedevice",  { 0, &PSActions::setpagedevice}},
 		{"setpattern",     {-1, &PSActions::setpattern}},
 		{"setrgbcolor",    { 3, &PSActions::setrgbcolor}},
 		{"shfill",         {-1, &PSActions::shfill}},

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PSInterpreter.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PSInterpreter.hpp	2018-03-24 05:21:31 UTC (rev 47097)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PSInterpreter.hpp	2018-03-24 06:50:31 UTC (rev 47098)
@@ -30,8 +30,7 @@
 #include "MessageException.hpp"
 
 
-struct PSException : public MessageException
-{
+struct PSException : public MessageException {
 	PSException (const std::string &msg) : MessageException(msg) {}
 };
 
@@ -38,8 +37,7 @@
 
 /** This interface provides the template methods called by PSInterpreter when executing a PS snippet.
  *  Each method corresponds to a PostScript operator of the same name. */
-struct PSActions
-{
+struct PSActions {
 	virtual ~PSActions () =default;
 	virtual void applyscalevals (std::vector<double> &p) =0;
 	virtual void clip (std::vector<double> &p) =0;
@@ -72,6 +70,7 @@
 	virtual void setmatrix (std::vector<double> &p) =0;
 	virtual void setmiterlimit (std::vector<double> &p) =0;
 	virtual void setopacityalpha (std::vector<double> &p) =0;
+	virtual void setpagedevice (std::vector<double> &p) =0;
 	virtual void setpattern (std::vector<double> &p) =0;
 	virtual void setrgbcolor (std::vector<double> &rgb) =0;
 	virtual void shfill (std::vector<double> &rgb) =0;
@@ -84,8 +83,7 @@
 
 /** This class provides methods to execute chunks of PostScript code and calls
  *  several template methods on invocation of selected PS operators (see PSActions). */
-class PSInterpreter
-{
+class PSInterpreter {
 	enum Mode {PS_NONE, PS_RUNNING, PS_QUIT};
 
 	public:

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.cpp	2018-03-24 05:21:31 UTC (rev 47097)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.cpp	2018-03-24 06:50:31 UTC (rev 47098)
@@ -69,7 +69,7 @@
 	if (_psSection == PS_NONE) {
 		initgraphics();
 		// execute dvips prologue/header files
-		for (const char *fname : {"tex.pro", "texps.pro", "special.pro"})
+		for (const char *fname : {"tex.pro", "texps.pro", "special.pro", "color.pro"})
 			processHeaderFile(fname);
 		// disable bop/eop operators to prevent side-effects by
 		// unexpected bops/eops present in PS specials
@@ -330,7 +330,7 @@
 
 	auto groupNode = util::make_unique<XMLElementNode>("g");  // append following elements to this group
 	_xmlnode = groupNode.get();
-	_psi.execute("\n at beginspecial @setspecial "); // enter \special environment
+	_psi.execute("\n at beginspecial @setspecial /setpagedevice{@setpagedevice}def "); // enter \special environment
 	EPSFile epsfile(filepath);
 	_psi.limit(epsfile.pslength());  // limit the number of bytes going to be processed
 	_psi.execute(epsfile.istream()); // process EPS file
@@ -470,6 +470,20 @@
 
 ///////////////////////////////////////////////////////
 
+void PsSpecialHandler::setpagedevice (std::vector<double> &p) {
+	_linewidth = 1;
+	_linecap = _linejoin = 0;  // butt end caps and miter joins
+	_miterlimit = 4;
+	_opacityalpha = 1;  // fully opaque
+	_sx = _sy = _cos = 1.0;
+	_pattern = nullptr;
+	_currentcolor = Color::BLACK;
+	_dashoffset = 0;
+	_dashpattern.clear();
+	_path.clear();
+}
+
+
 void PsSpecialHandler::gsave (vector<double>&) {
 	_clipStack.dup();
 }
@@ -645,7 +659,7 @@
 }
 
 
-/** Creates a Matrix object out of a given sequence of 6 double values.
+/** Creates a Matrix object from a given sequence of 6 double values.
  *  The given values must be arranged in PostScript matrix order.
  *  @param[in] v vector containing the matrix values
  *  @param[in] startindex vector index of first component

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.hpp	2018-03-24 05:21:31 UTC (rev 47097)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.hpp	2018-03-24 06:50:31 UTC (rev 47098)
@@ -142,6 +142,7 @@
 		void setmatrix (std::vector<double> &p) override;
 		void setmiterlimit (std::vector<double> &p) override   {_miterlimit = p[0];}
 		void setopacityalpha (std::vector<double> &p) override {_opacityalpha = p[0];}
+		void setpagedevice (std::vector<double> &p) override;
 		void setpattern (std::vector<double> &p) override;
 		void setrgbcolor (std::vector<double> &rgb) override;
 		void shfill (std::vector<double> &p) override;

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp	2018-03-24 05:21:31 UTC (rev 47097)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp	2018-03-24 06:50:31 UTC (rev 47098)
@@ -71,29 +71,30 @@
 "ength 1 add string dup 0 46 put dup 3 -1 roll 1 exch putinterval}def/setlinewi"
 "dth{dup/setlinewidth sysexec 1(setlinewidth)prcmd}def/setlinecap 1 defpr/setli"
 "nejoin 1 defpr/setmiterlimit 1 defpr/setdash{mark 3 1 roll 2 copy/setdash syse"
-"xec exch aload length 1 add -1 roll counttomark(setdash)prcmd pop}def/setgstat"
-"e{currentlinewidth 1(setlinewidth)prcmd currentlinecap 1(setlinecap)prcmd curr"
-"entlinejoin 1(setlinejoin)prcmd currentmiterlimit 1(setmiterlimit)prcmd curren"
-"trgbcolor 3(setrgbcolor)prcmd matrix currentmatrix aload pop 6(setmatrix)prcmd"
-" applyscalevals currentdash mark 3 1 roll exch aload length 1 add -1 roll coun"
-"ttomark(setdash)prcmd pop}def/save{@UD begin/@saveID vmstatus pop pop def end "
-":save @saveID 1(save)prcmd}def/restore{:restore setgstate @UD/@saveID known{@U"
-"D begin @saveID end}{0}ifelse 1(restore)prcmd}def/gsave 0 defpr/grestore{:gres"
-"tore setgstate 0(grestore)prcmd}def/grestoreall{:grestoreall setstate 0(gresto"
-"reall)prcmd}def/rotate{dup type/arraytype ne{dup 1(rotate)prcmd}if/rotate syse"
-"xec applyscalevals}def/scale{dup type/arraytype ne{2 copy 2(scale)prcmd}if/sca"
-"le sysexec applyscalevals}def/translate{dup type/arraytype ne{2 copy 2(transla"
-"te)prcmd}if/translate sysexec}def/setmatrix{dup/setmatrix sysexec aload pop 6("
-"setmatrix)prcmd applyscalevals}def/initmatrix{matrix setmatrix}def/concat{matr"
-"ix currentmatrix matrix concatmatrix setmatrix}def/makepattern{gsave<</mx 3 -1"
-" roll>>begin dup/XUID[1000000 @patcnt]put mx/makepattern sysexec dup dup begin"
-" PatternType @patcnt BBox aload pop XStep YStep PaintType mx aload pop 15(make"
-"pattern)prcmd :newpath matrix setmatrix PaintProc 0 1(makepattern)prcmd end/@p"
-"atcnt @patcnt 1 add store end grestore}def/setpattern{begin PatternType 1 eq{P"
-"aintType 1 eq{XUID aload pop exch pop 1}{:gsave[currentcolorspace aload length"
-" -1 roll pop]setcolorspace/setcolor sysexec XUID aload pop exch pop currentrgb"
-"color :grestore 4}ifelse(setpattern)prcmd}{/setpattern sysexec}ifelse end}def/"
-"setcolor{dup type/dicttype eq{setpattern}{/setcolor sysexec/currentrgbcolor sy"
-"sexec setrgbcolor}ifelse}def/setgray 1 defpr/setcmykcolor 4 defpr/sethsbcolor "
-"3 defpr/setrgbcolor 3 defpr/.setopacityalpha{dup/.setopacityalpha sysexec 1(se"
-"topacityalpha)prcmd}def ";
+"xec exch aload length 1 add -1 roll counttomark(setdash)prcmd pop}def/@setpage"
+"device{pop<<>>/setpagedevice sysexec[1 0 0 -1 0 0]setmatrix newpath 0(setpaged"
+"evice)prcmd}def/setgstate{currentlinewidth 1(setlinewidth)prcmd currentlinecap"
+" 1(setlinecap)prcmd currentlinejoin 1(setlinejoin)prcmd currentmiterlimit 1(se"
+"tmiterlimit)prcmd currentrgbcolor 3(setrgbcolor)prcmd matrix currentmatrix alo"
+"ad pop 6(setmatrix)prcmd applyscalevals currentdash mark 3 1 roll exch aload l"
+"ength 1 add -1 roll counttomark(setdash)prcmd pop}def/save{@UD begin/@saveID v"
+"mstatus pop pop def end :save @saveID 1(save)prcmd}def/restore{:restore setgst"
+"ate @UD/@saveID known{@UD begin @saveID end}{0}ifelse 1(restore)prcmd}def/gsav"
+"e 0 defpr/grestore{:grestore setgstate 0(grestore)prcmd}def/grestoreall{:grest"
+"oreall setstate 0(grestoreall)prcmd}def/rotate{dup type/arraytype ne{dup 1(rot"
+"ate)prcmd}if/rotate sysexec applyscalevals}def/scale{dup type/arraytype ne{2 c"
+"opy 2(scale)prcmd}if/scale sysexec applyscalevals}def/translate{dup type/array"
+"type ne{2 copy 2(translate)prcmd}if/translate sysexec}def/setmatrix{dup/setmat"
+"rix sysexec aload pop 6(setmatrix)prcmd applyscalevals}def/initmatrix{matrix s"
+"etmatrix}def/concat{matrix currentmatrix matrix concatmatrix setmatrix}def/mak"
+"epattern{gsave<</mx 3 -1 roll>>begin dup/XUID[1000000 @patcnt]put mx/makepatte"
+"rn sysexec dup dup begin PatternType @patcnt BBox aload pop XStep YStep PaintT"
+"ype 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{PaintType 1 eq{XUID aload pop exch pop 1}{:gsave[curren"
+"tcolorspace aload length -1 roll pop]setcolorspace/setcolor sysexec XUID aload"
+" pop exch pop currentrgbcolor :grestore 4}ifelse(setpattern)prcmd}{/setpattern"
+" sysexec}ifelse end}def/setcolor{dup type/dicttype eq{setpattern}{/setcolor sy"
+"sexec/currentrgbcolor sysexec setrgbcolor}ifelse}def/setgray 1 defpr/setcmykco"
+"lor 4 defpr/sethsbcolor 3 defpr/setrgbcolor 3 defpr/.setopacityalpha{dup/.seto"
+"pacityalpha sysexec 1(setopacityalpha)prcmd}def ";

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/version.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/version.hpp	2018-03-24 05:21:31 UTC (rev 47097)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/version.hpp	2018-03-24 06:50:31 UTC (rev 47098)
@@ -22,7 +22,7 @@
 #define VERSION_HPP
 
 constexpr const char *PROGRAM_NAME = "dvisvgm";
-constexpr const char *PROGRAM_VERSION = "2.3.4";
+constexpr const char *PROGRAM_VERSION = "2.3.5";
 
 #endif
 

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/tests/MatrixTest.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/tests/MatrixTest.cpp	2018-03-24 05:21:31 UTC (rev 47097)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/tests/MatrixTest.cpp	2018-03-24 06:50:31 UTC (rev 47098)
@@ -27,7 +27,7 @@
 using namespace std;
 
 
-TEST(MatrixTest, construct) {
+TEST(MatrixTest, construct1) {
 	const vector<double> vec{1, 2, 3, 4, 5, 6, 7, 8, 9};
 	Matrix m1(vec);
 	for (int row=0; row < 3; row++)
@@ -46,6 +46,22 @@
 }
 
 
+TEST(MatrixTest, construct2) {
+	Matrix m1 = {1, 2, 3, 4, 5, 6, 7, 8, 9};
+	for (int row=0; row < 3; row++)
+		for (int col=0; col < 3; col++)
+			ASSERT_EQ(m1.get(row, col), 3*row+col+1) << "row=" << row << ", col=" << col;
+
+	Matrix m2 = {1, 2, 3, 4, 5, 6};
+	for (int row=0; row < 2; row++)
+		for (int col=0; col < 3; col++)
+			ASSERT_EQ(m2.get(row, col), 3*row+col+1) << "row=" << row << ", col=" << col;
+	ASSERT_EQ(m2.get(2, 0), 0);
+	ASSERT_EQ(m2.get(2, 1), 0);
+	ASSERT_EQ(m2.get(2, 2), 1);
+}
+
+
 TEST(MatrixTest, svg) {
 	double v1[] = {1,2,3,4,5,6,7,8,9};
 	Matrix m1(v1);

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/tests/PSInterpreterTest.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/tests/PSInterpreterTest.cpp	2018-03-24 05:21:31 UTC (rev 47097)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/tests/PSInterpreterTest.cpp	2018-03-24 06:50:31 UTC (rev 47098)
@@ -28,42 +28,43 @@
 
 class PSTestActions : public PSActions {
 	public:
-		void applyscalevals (vector<double> &p)  {print("applyscalevals", p);}
-		void clip (vector<double> &p)            {print("clip", p);}
-		void clippath (vector<double> &p)        {print("clippath", p);}
-		void closepath (vector<double> &p)       {print("closepath", p);}
-		void curveto (vector<double> &p)         {print("curveto", p);}
-		void eoclip (vector<double> &p)          {print("eoclip", p);}
-		void eofill (vector<double> &p)          {print("eofill", p);}
-		void fill (vector<double> &p)            {print("fill", p);}
-		void gsave (vector<double> &p)           {print("gsave", p);}
-		void grestore (vector<double> &p)        {print("grestore", p);}
-		void grestoreall(std::vector<double> &p) {print("grestoreall", p);}
-		void initclip (vector<double> &p)        {print("initclip", p);}
-		void lineto (vector<double> &p)          {print("lineto", p);}
-		void moveto (vector<double> &p)          {print("moveto", p);}
-		void makepattern (vector<double> &p)     {print("makepattern", p);}
-		void setpattern (vector<double> &p)      {print("setpattern", p);}
-		void newpath (vector<double> &p)         {print("newpath", p);}
-		void querypos (vector<double> &p)        {print("querypos", p);}
-		void restore(std::vector<double> &p)     {print("restore", p);}
-		void rotate (vector<double> &p)          {print("rotate", p);}
-		void save(std::vector<double> &p)        {print("save", p);}
-		void scale (vector<double> &p)           {print("scale", p);}
-		void setcmykcolor (vector<double> &p)    {print("setcmykcolor", p);}
-		void setdash (vector<double> &p)         {print("setdash", p);}
-		void setgray (vector<double> &p)         {print("setgray", p);}
-		void sethsbcolor (vector<double> &p)     {print("sethsbcolor", p);}
-		void setlinecap (vector<double> &p)      {print("setlinecap", p);}
-		void setlinejoin (vector<double> &p)     {print("setlinejoin", p);}
-		void setlinewidth (vector<double> &p)    {print("setlinewidth", p);}
-		void setmatrix (vector<double> &p)       {print("setmatrix", p);}
-		void setmiterlimit (vector<double> &p)   {print("setmiterlimit", p);}
-		void setopacityalpha (vector<double> &p) {print("setopacityalpha", p);}
-		void setrgbcolor (vector<double> &p)     {print("setrgbcolor", p);}
-		void shfill (vector<double> &p)          {print("shfill", p);}
-		void stroke (vector<double> &p)          {print("stroke", p);}
-		void translate (vector<double> &p)       {print("translate", p);}
+		void applyscalevals (vector<double> &p) override  {print("applyscalevals", p);}
+		void clip (vector<double> &p) override            {print("clip", p);}
+		void clippath (vector<double> &p) override        {print("clippath", p);}
+		void closepath (vector<double> &p) override       {print("closepath", p);}
+		void curveto (vector<double> &p) override         {print("curveto", p);}
+		void eoclip (vector<double> &p) override          {print("eoclip", p);}
+		void eofill (vector<double> &p) override          {print("eofill", p);}
+		void fill (vector<double> &p) override            {print("fill", p);}
+		void gsave (vector<double> &p) override           {print("gsave", p);}
+		void grestore (vector<double> &p) override        {print("grestore", p);}
+		void grestoreall(std::vector<double> &p) override {print("grestoreall", p);}
+		void initclip (vector<double> &p) override        {print("initclip", p);}
+		void lineto (vector<double> &p) override          {print("lineto", p);}
+		void moveto (vector<double> &p) override          {print("moveto", p);}
+		void makepattern (vector<double> &p) override     {print("makepattern", p);}
+		void setpattern (vector<double> &p) override      {print("setpattern", p);}
+		void setpagedevice (vector<double> &p) override   {print("setpagedevice", p);}
+		void newpath (vector<double> &p) override         {print("newpath", p);}
+		void querypos (vector<double> &p) override        {print("querypos", p);}
+		void restore(std::vector<double> &p) override     {print("restore", p);}
+		void rotate (vector<double> &p) override          {print("rotate", p);}
+		void save(std::vector<double> &p) override        {print("save", p);}
+		void scale (vector<double> &p) override           {print("scale", p);}
+		void setcmykcolor (vector<double> &p) override    {print("setcmykcolor", p);}
+		void setdash (vector<double> &p) override         {print("setdash", p);}
+		void setgray (vector<double> &p) override         {print("setgray", p);}
+		void sethsbcolor (vector<double> &p) override     {print("sethsbcolor", p);}
+		void setlinecap (vector<double> &p) override      {print("setlinecap", p);}
+		void setlinejoin (vector<double> &p) override     {print("setlinejoin", p);}
+		void setlinewidth (vector<double> &p) override    {print("setlinewidth", p);}
+		void setmatrix (vector<double> &p) override       {print("setmatrix", p);}
+		void setmiterlimit (vector<double> &p) override   {print("setmiterlimit", p);}
+		void setopacityalpha (vector<double> &p) override {print("setopacityalpha", p);}
+		void setrgbcolor (vector<double> &p) override     {print("setrgbcolor", p);}
+		void shfill (vector<double> &p) override          {print("shfill", p);}
+		void stroke (vector<double> &p) override          {print("stroke", p);}
+		void translate (vector<double> &p) override       {print("translate", p);}
 
 
 		string result () const {return _oss.str();}

Modified: trunk/Build/source/texk/dvisvgm/version.ac
===================================================================
--- trunk/Build/source/texk/dvisvgm/version.ac	2018-03-24 05:21:31 UTC (rev 47097)
+++ trunk/Build/source/texk/dvisvgm/version.ac	2018-03-24 06:50:31 UTC (rev 47098)
@@ -9,4 +9,4 @@
 dnl --------------------------------------------------------
 dnl
 dnl  m4-include this file to define the current dvisvgm version
-m4_define([dvisvgm_version], [2.3.4])
+m4_define([dvisvgm_version], [2.3.5])



More information about the tex-live-commits mailing list