From 8f2165b0a66024a98a18007895ce6b35c8185b97 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 5 Mar 2024 23:23:42 +0000 Subject: dvisvgm 3.2.1 git-svn-id: svn://tug.org/texlive/trunk@70431 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/README | 2 +- Build/source/texk/dvisvgm/TLpatches/TL-Changes | 19 +- .../texk/dvisvgm/TLpatches/patch-04-configure | 15 +- .../texk/dvisvgm/TLpatches/patch-08-makefiles | 163 +++---------- Build/source/texk/dvisvgm/configure | 24 +- Build/source/texk/dvisvgm/configure.ac | 2 +- Build/source/texk/dvisvgm/dvisvgm-src/Makefile.am | 5 +- Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in | 7 +- Build/source/texk/dvisvgm/dvisvgm-src/NEWS | 8 + .../texk/dvisvgm/dvisvgm-src/aminclude_static.am | 2 +- Build/source/texk/dvisvgm/dvisvgm-src/configure.ac | 4 +- .../source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1 | 16 +- .../texk/dvisvgm/dvisvgm-src/doc/dvisvgm.txt.in | 39 ++-- .../dvisvgm-src/libs/boost/boost-vectorstream.hpp | 9 + Build/source/texk/dvisvgm/dvisvgm-src/libs/defs.am | 11 +- .../dvisvgm/dvisvgm-src/src/BasicDVIReader.cpp | 8 +- .../dvisvgm/dvisvgm-src/src/BasicDVIReader.hpp | 4 +- .../texk/dvisvgm/dvisvgm-src/src/DVIReader.cpp | 14 +- .../texk/dvisvgm/dvisvgm-src/src/DVIReader.hpp | 2 +- .../texk/dvisvgm/dvisvgm-src/src/DVIToSVG.cpp | 30 +-- Build/source/texk/dvisvgm/dvisvgm-src/src/Font.cpp | 2 +- Build/source/texk/dvisvgm/dvisvgm-src/src/Font.hpp | 2 +- .../texk/dvisvgm/dvisvgm-src/src/FontManager.cpp | 2 +- .../texk/dvisvgm/dvisvgm-src/src/FontManager.hpp | 2 +- .../texk/dvisvgm/dvisvgm-src/src/GFReader.cpp | 2 +- .../texk/dvisvgm/dvisvgm-src/src/Makefile.am | 14 +- .../texk/dvisvgm/dvisvgm-src/src/Makefile.in | 36 ++- .../dvisvgm/dvisvgm-src/src/NoPsSpecialHandler.cpp | 2 +- .../dvisvgm-src/src/PsSpecialHandlerProxy.cpp | 85 +++++++ .../dvisvgm-src/src/PsSpecialHandlerProxy.hpp | 39 ++++ .../dvisvgm/dvisvgm-src/src/SpecialManager.cpp | 30 ++- .../dvisvgm/dvisvgm-src/src/SpecialManager.hpp | 2 + .../texk/dvisvgm/dvisvgm-src/src/StreamReader.cpp | 8 + .../texk/dvisvgm/dvisvgm-src/src/StreamReader.hpp | 1 + .../texk/dvisvgm/dvisvgm-src/src/VFActions.hpp | 5 +- .../texk/dvisvgm/dvisvgm-src/src/VFReader.cpp | 16 +- .../texk/dvisvgm/dvisvgm-src/src/VectorStream.hpp | 84 ------- .../dvisvgm/dvisvgm-src/src/optimizer/Makefile.in | 4 +- .../source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp | 257 +++++++++++---------- .../texk/dvisvgm/dvisvgm-src/src/ttf/Makefile.am | 1 - .../texk/dvisvgm/dvisvgm-src/src/ttf/Makefile.in | 5 +- .../texk/dvisvgm/dvisvgm-src/tests/Makefile.am | 6 - .../texk/dvisvgm/dvisvgm-src/tests/Makefile.in | 56 +---- .../dvisvgm/dvisvgm-src/tests/VectorStreamTest.cpp | 63 ----- Build/source/texk/dvisvgm/tests/sample_v2-nf.svg | 2 +- Build/source/texk/dvisvgm/tests/sample_v2-wf.svg | 2 +- Build/source/texk/dvisvgm/tests/sample_v3-nf.svg | 2 +- Build/source/texk/dvisvgm/tests/sample_v3-wf.svg | 2 +- Build/source/texk/dvisvgm/tests/upjf.svg | 2 +- Build/source/texk/dvisvgm/tests/upjf1.svg | 2 +- Build/source/texk/dvisvgm/version.ac | 2 +- 51 files changed, 490 insertions(+), 632 deletions(-) create mode 100644 Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandlerProxy.cpp create mode 100644 Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandlerProxy.hpp delete mode 100644 Build/source/texk/dvisvgm/dvisvgm-src/src/VectorStream.hpp delete mode 100644 Build/source/texk/dvisvgm/dvisvgm-src/tests/VectorStreamTest.cpp (limited to 'Build') diff --git a/Build/source/texk/README b/Build/source/texk/README index 3aa45dd1bca..db8865ce264 100644 --- a/Build/source/texk/README +++ b/Build/source/texk/README @@ -61,7 +61,7 @@ dvipos - maintained here, by us dvipsk - maintained here, by us -dvisvgm 3.2 - checked 16jan24 +dvisvgm 3.2.1 - checked 5mar24 https://dvisvgm.de/Downloads/ https://github.com/mgieseki/dvisvgm https://ctan.org/pkg/dvisvgm diff --git a/Build/source/texk/dvisvgm/TLpatches/TL-Changes b/Build/source/texk/dvisvgm/TLpatches/TL-Changes index a2b81ac1e19..de53a4f9260 100644 --- a/Build/source/texk/dvisvgm/TLpatches/TL-Changes +++ b/Build/source/texk/dvisvgm/TLpatches/TL-Changes @@ -32,13 +32,14 @@ svn rm `!!` svn status | sed -n 's/^\!//p' # rerun, should be empty now cd .. -Update our ./configure.ac from upstream dvisvgm-src/configure.ac. -See patch-04-configure for reference, but they won't apply as-is. -Probably easiest to check dvisvgm-prev/configure.ac vs. new: -diff dvisvgm-{prev,$ver}/configure.ac -and then install the changes in our configure.ac by hand. +# Update our ./configure.ac from upstream dvisvgm-src/configure.ac. +# See patch-04-configure for reference, but won't apply if there are any +# non-trivial changes. Best to check dvisvgm-prev/configure.ac vs. new: +cd .. +diff -u2 dvisvgm-{prev,$ver}/configure.ac +# and then install the changes in our configure.ac by hand as needed. -# patch to integrate into TL build; will likely need adjusting also. +# patch to integrate into TL build; even more likely to need adjusting. patch -d dvisvgm-src -p1 TLpatches/patch-04-configure diff --git a/Build/source/texk/dvisvgm/TLpatches/patch-04-configure b/Build/source/texk/dvisvgm/TLpatches/patch-04-configure index 5fcac0cc37e..d4f43dc4a1a 100644 --- a/Build/source/texk/dvisvgm/TLpatches/patch-04-configure +++ b/Build/source/texk/dvisvgm/TLpatches/patch-04-configure @@ -1,5 +1,5 @@ ---- dvisvgm-3.2/configure.ac 2024-01-11 00:52:01.000000000 -0800 -+++ ./configure.ac 2024-01-16 10:32:10.211225839 -0800 +--- dvisvgm-3.2.1/configure.ac 2024-02-29 00:19:44.000000000 -0800 ++++ ./configure.ac 2024-03-05 14:59:41.578987696 -0800 @@ -1,18 +1,31 @@ -# This file is part of dvisvgm -# Copyright (C) 2005-2024 Martin Gieseking @@ -21,10 +21,10 @@ +dnl Copyright 2005-2024 Martin Gieseking +dnl AC_PREREQ([2.69]) --AC_INIT([dvisvgm],[3.2],[martin.gieseking@uos.de]) +-AC_INIT([dvisvgm],[3.2.1],[martin.gieseking@uos.de]) +m4_include([version.ac])[] dnl define dvisvgm_version +AC_INIT([dvisvgm (TeX Live)], dvisvgm_version, [tex-k@tug.org]) - DATE="January 2024" + DATE="February 2024" -AC_CONFIG_SRCDIR(src) +AC_CONFIG_SRCDIR([dvisvgm-src/src/dvisvgm.cpp]) AC_CONFIG_HEADERS([config.h]) @@ -122,7 +122,7 @@ +fi AS_IF([test "x$have_libgs" = "xno"], # Ghostscript not found, check for dlopen -@@ -83,65 +70,88 @@ +@@ -83,68 +70,88 @@ [AC_DEFINE(DISABLE_GS, 1, [Set to 1 if PostScript support should be disabled])] [AC_MSG_WARN(PostScript support disabled)])]) +fi @@ -235,6 +235,9 @@ -AM_CONDITIONAL(HAVE_WOFF2, [test "x$have_woff2" = "xyes"]) -AM_CONDITIONAL(HAVE_XXHASH, [test "x$have_xxhash" = "xyes"]) - +-# Dummy required for TL build sections in automake files +-AM_CONDITIONAL(WIN32, false) +- -AS_IF([test "x$enable_woff" != "xyes"], - [AC_DEFINE([DISABLE_WOFF], 1, [Define if WOFF support is disabled])], - [AS_IF([test "x$with_ttfautohint" != "xno"], @@ -265,7 +268,7 @@ - AC_CHECK_HEADERS_ONCE([libintl.h stdlib.h string.h strings.h unistd.h]) -@@ -156,81 +166,82 @@ +@@ -159,81 +166,82 @@ AX_GCC_BUILTIN(__builtin_clz) -# add options for selection of "optional" library locations diff --git a/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles b/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles index 728144cf82d..e3753fc5682 100644 --- a/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles +++ b/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles @@ -1,6 +1,6 @@ ---- dvisvgm-3.2/./Makefile.am 2024-01-03 02:50:11.000000000 -0800 -+++ dvisvgm-src/./Makefile.am 2024-01-16 09:31:00.523974816 -0800 -@@ -4,9 +4,9 @@ +--- dvisvgm-3.2.1/./Makefile.am 2024-01-03 02:50:11.000000000 -0800 ++++ dvisvgm-src/./Makefile.am 2024-03-05 15:17:38.259701130 -0800 +@@ -4,9 +4,12 @@ ## Process this file with automake. -include $(top_srcdir)/aminclude_static.am @@ -9,141 +9,36 @@ AUTOMAKE_OPTIONS = foreign EXTRA_DIST = COPYING -SUBDIRS = libs src tests doc -+SUBDIRS = libs src #not for TL: m4 tests doc - ACLOCAL_AMFLAGS = -I m4 - ---- dvisvgm-3.2/./libs/Makefile.am 2024-01-03 02:50:11.000000000 -0800 -+++ dvisvgm-src/./libs/Makefile.am 2024-01-16 09:31:00.524974811 -0800 -@@ -4,5 +4,9 @@ - ## Process this file with automake. - --SUBDIRS = boost clipper md5 potrace variant xxHash -+SUBDIRS = boost clipper md5 variant xxHash -+ ++SUBDIRS = libs src +if !TEXLIVE_BUILD -+SUBDIRS += potrace ++SUBDIRS += m4 tests doc +endif + ACLOCAL_AMFLAGS = -I m4 - if ENABLE_WOFF ---- dvisvgm-3.2/./libs/defs.am 2024-01-03 02:50:11.000000000 -0800 -+++ dvisvgm-src/./libs/defs.am 2024-01-16 09:49:05.754922928 -0800 -@@ -8,6 +8,9 @@ - +--- dvisvgm-3.2.1/./libs/defs.am 2024-01-22 05:46:24.000000000 -0800 ++++ dvisvgm-src/./libs/defs.am 2024-03-05 15:20:00.075059010 -0800 +@@ -11,6 +11,6 @@ + else if !HAVE_POTRACE -POTRACE_CFLAGS = -I$(dvisvgm_srcdir)/libs/potrace -POTRACE_LIBS = ../libs/potrace/libpotrace.a -+POTRACE_CFLAGS = $(POTRACE_INCLUDES) -+endif -+# -+if TEXLIVE_BUILD -+POTRACE_CFLAGS = $(POTRACE_INCLUDES) - endif - ---- dvisvgm-3.2/./src/ttf/Makefile.am 2023-01-10 05:20:29.000000000 -0800 -+++ dvisvgm-src/./src/ttf/Makefile.am 2024-01-16 09:31:00.524974811 -0800 -@@ -23,3 +23,4 @@ - -I$(dvisvgm_srcdir)/libs/boost \ - -I$(dvisvgm_srcdir)/libs/variant/include \ -+ $(ZLIB_INCLUDES) \ - $(BROTLI_CFLAGS) $(WOFF2_CFLAGS) ---- dvisvgm-3.2/./src/Makefile.am 2024-01-11 00:52:01.000000000 -0800 -+++ dvisvgm-src/./src/Makefile.am 2024-01-18 09:44:09.359399768 -0800 -@@ -18,8 +18,6 @@ - ../libs/clipper/libclipper.a \ - ../libs/md5/libmd5.a \ -- $(FREETYPE_LIBS) \ - $(POTRACE_LIBS) \ -- $(XXHASH_LIBS) \ -- $(ZLIB_LIBS) -+ $(XXHASH_LIBS) - - if ENABLE_WOFF -@@ -29,5 +27,16 @@ - $(WOFF2_LIBS) \ - $(BROTLI_LIBS) --endif -+endif ENABLE_WOFF -+ -+if TEXLIVE_BUILD -+dvisvgm_LDADD += \ -+ $(KPATHSEA_LIBS) \ -+ $(FREETYPE2_LIBS) \ -+ $(ZLIB_LIBS) -+else -+dvisvgm_LDADD += \ -+ $(FREETYPE_LIBS) \ -+ $(ZLIB_LIBS) -+endif !TEXLIVE_BUILD - - dvisvgm_DEPENDENCIES = $(noinst_LTLIBRARIES) -@@ -171,9 +180,4 @@ - EXTRA_DIST = options.xml options.dtd iapi.h ierrors.h MiKTeXCom.hpp MiKTeXCom.cpp - --if !TEXLIVE_BUILD --WARNING_CFLAGS = -Wall --WARNING_CXXFLAGS = -Wall -Wnon-virtual-dtor --endif ++# POTRACE_CFLAGS = -I$(dvisvgm_srcdir)/libs/potrace ++# POTRACE_LIBS = ../libs/potrace/libpotrace.a + endif !HAVE_POTRACE + endif !TEXLIVE_BUILD +--- dvisvgm-3.2.1/./src/Makefile.am 2024-02-29 00:19:44.000000000 -0800 ++++ dvisvgm-src/./src/Makefile.am 2024-03-05 15:05:07.159805866 -0800 +@@ -258,13 +258,2 @@ + @POTRACE_RULE@ + endif TEXLIVE_BUILD - - AM_CFLAGS = $(WARNING_CFLAGS) \ - $(ZLIB_CFLAGS) \ -@@ -182,9 +186,5 @@ - AM_CXXFLAGS = $(WARNING_CXXFLAGS) \ - -I$(dvisvgm_srcdir)/libs/clipper \ -- -I$(dvisvgm_srcdir)/libs/variant/include \ -- $(KPSE_CFLAGS) \ -- $(FREETYPE_CFLAGS) \ -- $(ZLIB_CFLAGS) \ -- $(CODE_COVERAGE_CFLAGS) -+ -I$(dvisvgm_srcdir)/libs/variant/include - - AM_CXXFLAGS += \ -@@ -192,4 +192,22 @@ - $(XXHASH_CFLAGS) - -+if TEXLIVE_BUILD -+AM_CXXFLAGS += \ -+ $(KPATHSEA_INCLUDES) \ -+ $(POTRACE_INCLUDES) \ -+ $(FREETYPE2_INCLUDES) \ -+ $(ZLIB_INCLUDES) \ -+ $(CODE_COVERAGE_CFLAGS) -+if WIN32 -+AM_CXXFLAGS += -DTEXLIVEWIN32 -+endif WIN32 -+else -+AM_CXXFLAGS += \ -+ $(KPSE_CFLAGS) \ -+ $(FREETYPE_CFLAGS) \ -+ $(ZLIB_CFLAGS) \ -+ $(CODE_COVERAGE_CFLAGS) -+endif !TEXLIVE_BUILD -+ - AM_LDFLAGS = \ - $(KPSE_LIBS) \ -@@ -203,6 +221,9 @@ - $(WOFF2_CFLAGS) - -+# TL: do not try to rebuild these source files. -+if !TEXLIVE_BUILD - AM_LDFLAGS += $(TTFAUTOHINT_LIBS) --endif -+endif !TEXLIVE_BUILD -+endif ENABLE_WOFF - - AM_CXXFLAGS += -I$(dvisvgm_srcdir)/libs/md5 -@@ -226,4 +247,15 @@ - - if TEXLIVE_BUILD -+# Rebuild libkpathsea: -+@KPATHSEA_RULE@ -+# Rebuild libfreetype: -+@FREETYPE2_RULE@ -+# Rebuild libz: -+@ZLIB_RULE@ -+# Rebuild potrace: -+@POTRACE_RULE@ -+endif TEXLIVE_BUILD -+ -+if TEXLIVE_BUILD - # Rebuild libkpathsea: - @KPATHSEA_RULE@ +-if TEXLIVE_BUILD +-# Rebuild libkpathsea: +-@KPATHSEA_RULE@ +-# Rebuild libfreetype: +-@FREETYPE2_RULE@ +-# Rebuild libz: +-@ZLIB_RULE@ +-# Rebuild potrace: +-@POTRACE_RULE@ +-endif TEXLIVE_BUILD diff --git a/Build/source/texk/dvisvgm/configure b/Build/source/texk/dvisvgm/configure index f19161e807d..85cc0aa82de 100755 --- a/Build/source/texk/dvisvgm/configure +++ b/Build/source/texk/dvisvgm/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.72 for dvisvgm (TeX Live) 3.2. +# Generated by GNU Autoconf 2.72 for dvisvgm (TeX Live) 3.2.1. # # Report bugs to . # @@ -614,8 +614,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='dvisvgm (TeX Live)' PACKAGE_TARNAME='dvisvgm--tex-live-' -PACKAGE_VERSION='3.2' -PACKAGE_STRING='dvisvgm (TeX Live) 3.2' +PACKAGE_VERSION='3.2.1' +PACKAGE_STRING='dvisvgm (TeX Live) 3.2.1' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -1431,7 +1431,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -'configure' configures dvisvgm (TeX Live) 3.2 to adapt to many kinds of systems. +'configure' configures dvisvgm (TeX Live) 3.2.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1503,7 +1503,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of dvisvgm (TeX Live) 3.2:";; + short | recursive ) echo "Configuration of dvisvgm (TeX Live) 3.2.1:";; esac cat <<\_ACEOF @@ -1643,7 +1643,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -dvisvgm (TeX Live) configure 3.2 +dvisvgm (TeX Live) configure 3.2.1 generated by GNU Autoconf 2.72 Copyright (C) 2023 Free Software Foundation, Inc. @@ -2391,7 +2391,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by dvisvgm (TeX Live) $as_me 3.2, which was +It was created by dvisvgm (TeX Live) $as_me 3.2.1, which was generated by GNU Autoconf 2.72. Invocation command line was $ $0$ac_configure_args_raw @@ -3386,7 +3386,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -DATE="January 2024" +DATE="February 2024" ac_config_headers="$ac_config_headers config.h" @@ -9185,7 +9185,7 @@ fi # Define the identity of the package. PACKAGE='dvisvgm--tex-live-' - VERSION='3.2' + VERSION='3.2.1' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -21644,7 +21644,7 @@ Usage: $0 [OPTIONS] Report bugs to ." lt_cl_version="\ -dvisvgm (TeX Live) config.lt 3.2 +dvisvgm (TeX Live) config.lt 3.2.1 configured by $0, generated by GNU Autoconf 2.72. Copyright (C) 2011 Free Software Foundation, Inc. @@ -25142,7 +25142,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by dvisvgm (TeX Live) $as_me 3.2, which was +This file was extended by dvisvgm (TeX Live) $as_me 3.2.1, which was generated by GNU Autoconf 2.72. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -25210,7 +25210,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -dvisvgm (TeX Live) config.status 3.2 +dvisvgm (TeX Live) config.status 3.2.1 configured by $0, generated by GNU Autoconf 2.72, with options \\"\$ac_cs_config\\" diff --git a/Build/source/texk/dvisvgm/configure.ac b/Build/source/texk/dvisvgm/configure.ac index 01edeea429a..a0e86db4903 100644 --- a/Build/source/texk/dvisvgm/configure.ac +++ b/Build/source/texk/dvisvgm/configure.ac @@ -15,7 +15,7 @@ dnl AC_PREREQ([2.69]) m4_include([version.ac])[] dnl define dvisvgm_version AC_INIT([dvisvgm (TeX Live)], dvisvgm_version, [tex-k@tug.org]) -DATE="January 2024" +DATE="February 2024" AC_CONFIG_SRCDIR([dvisvgm-src/src/dvisvgm.cpp]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIRS([../../m4])dnl not just _DIR diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.am b/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.am index 5bb4d6cd866..bfaa08d18d0 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.am +++ b/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.am @@ -7,7 +7,10 @@ include $(top_srcdir)/dvisvgm-src/aminclude_static.am AUTOMAKE_OPTIONS = foreign EXTRA_DIST = COPYING -SUBDIRS = libs src #not for TL: m4 tests doc +SUBDIRS = libs src +if !TEXLIVE_BUILD +SUBDIRS += m4 tests doc +endif ACLOCAL_AMFLAGS = -I m4 if USE_BUNDLED_LIBS diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in index 96d17c9c748..f1250a5a3be 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in @@ -15,7 +15,7 @@ @SET_MAKE@ # aminclude_static.am generated automatically by Autoconf -# from AX_AM_MACROS_STATIC on Thu Jan 11 09:52:29 CET 2024 +# from AX_AM_MACROS_STATIC on Thu Feb 29 09:20:58 CET 2024 VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ @@ -90,6 +90,7 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ +@TEXLIVE_BUILD_FALSE@am__append_1 = m4 tests doc subdir = dvisvgm-src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/dvisvgm-src/m4/ax_gcc_builtin.m4 \ @@ -167,7 +168,7 @@ am__define_uniq_tagged_files = \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` -DIST_SUBDIRS = $(SUBDIRS) +DIST_SUBDIRS = libs src m4 tests doc am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/dvisvgm-src/aminclude_static.am AUTHORS COPYING \ INSTALL NEWS README @@ -373,7 +374,7 @@ top_srcdir = @top_srcdir@ @USE_BUNDLED_LIBS_TRUE@AM_DISTCHECK_CONFIGURE_FLAGS = --enable-bundled-libs AUTOMAKE_OPTIONS = foreign EXTRA_DIST = COPYING -SUBDIRS = libs src #not for TL: m4 tests doc +SUBDIRS = libs src $(am__append_1) ACLOCAL_AMFLAGS = -I m4 @CODE_COVERAGE_ENABLED_TRUE@lcov_dir = $(top_builddir)/lcov @CODE_COVERAGE_ENABLED_TRUE@lcov_file = $(lcov_dir)/lcov.info diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/NEWS b/Build/source/texk/dvisvgm/dvisvgm-src/NEWS index 2f2a5bee5ae..aadc0dd9289 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/NEWS +++ b/Build/source/texk/dvisvgm/dvisvgm-src/NEWS @@ -1,3 +1,11 @@ +dvisvgm-3.2.1 (2024-02-29) +- delayed loading of Ghostscript library to speed up the conversion of + DVI files without PS specials (GH issue #262) +- some improvements required for TeX Live builds + (patches by Karl Berry, GH issues #259, #260) +- added more details to some DVI warning messages +- added some further information to the manual page + dvisvgm-3.2 (2024-01-11) - PDF handler: fixed a rounding issue that could lead to slightly bigger text extents (GH issue #256) diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/aminclude_static.am b/Build/source/texk/dvisvgm/dvisvgm-src/aminclude_static.am index 8bf9b4ccc8f..6a111ddfd75 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/aminclude_static.am +++ b/Build/source/texk/dvisvgm/dvisvgm-src/aminclude_static.am @@ -1,6 +1,6 @@ # aminclude_static.am generated automatically by Autoconf -# from AX_AM_MACROS_STATIC on Thu Jan 11 09:52:29 CET 2024 +# from AX_AM_MACROS_STATIC on Thu Feb 29 09:20:58 CET 2024 # Code coverage diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac b/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac index 0374478903b..f3930d53e05 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac +++ b/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac @@ -4,8 +4,8 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) -AC_INIT([dvisvgm],[3.2],[martin.gieseking@uos.de]) -DATE="January 2024" +AC_INIT([dvisvgm],[3.2.1],[martin.gieseking@uos.de]) +DATE="February 2024" AC_CONFIG_SRCDIR(src) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([m4]) diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1 b/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1 index dbcd907ab54..3232620e95a 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1 +++ b/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1 @@ -2,12 +2,12 @@ .\" Title: dvisvgm .\" Author: Martin Gieseking .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-01-06 +.\" Date: 2024-02-04 .\" Manual: dvisvgm Manual -.\" Source: dvisvgm 3.2 +.\" Source: dvisvgm 3.2.1 .\" Language: English .\" -.TH "DVISVGM" "1" "2024\-01\-06" "dvisvgm 3\&.2" "dvisvgm Manual" +.TH "DVISVGM" "1" "2024\-02\-04" "dvisvgm 3\&.2\&.1" "dvisvgm Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -28,7 +28,7 @@ .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" -dvisvgm \- converts DVI and EPS files to the XML\-based SVG format +dvisvgm \- converts DVI, EPS, and PDF files to the XML\-based SVG format .SH "SYNOPSIS" .sp \fBdvisvgm\fR [\fIoptions\fR] \fIfile\fR[\&.dvi] @@ -1283,9 +1283,11 @@ attributes are omitted\&. .RE .SH "SUPPORTED SPECIALS" .sp -dvisvgm supports several \fIspecial commands\fR that enrich the DVI command set with additional instructions for features, like color, graphics, and hyperlinks\&. The term \fIspecial command\fR, or just \fIspecial\fR, originates from the TeX command \fB\especial{\&...}\fR which does almost nothing\&. TeX only forwards the whole command to the DVI file and delegates its execution to the DVI driver\&. The DVI driver can then decide to either process or ignore it, depending on the supported statements\&. The parameter of TeX\(cqs \fB\especial\fR command is given in curly braces and may consist of an arbitrary character sequence representing the actual instruction, for example \fBcolor Red\fR\&. +dvisvgm supports several \fIspecial commands\fR that enrich the DVI command set with additional instructions for features, like color, graphics, and hyperlinks\&. The term \fIspecial command\fR, or just \fIspecial\fR, originates from the TeX command \fB\especial{\&...}\fR which does almost nothing\&. TeX only forwards the argument of this command to the DVI file using the corresponding \fIxxx\fR opcode, thus delegating its execution to the DVI driver\&. The driver can then decide to either process or ignore it, depending on the supported statements\&. The parameter of TeX\(cqs \fB\especial\fR command is given in curly braces and may consist of an arbitrary character sequence representing the actual instruction, for example \fBcolor Red\fR\&. .sp -dvisvgm delegates the evaluation of special commands to dedicated handlers\&. Each handler is responsible for all special statements of the same command set, i\&.e\&. commands usually \(en but not necessarily \(en beginning with a common prefix\&. For example, all PDF specials start with the prefix \fBpdf:\fR, while the TPIC special set consists of 13 different commands without common identifier\&. The PDF specials are processed by dvisvgm\(cqs \fIpdf\fR handler, the TPIC ones by the \fItpic\fR handler\&. To get a list of the actually provided special handlers, use option \fB\-\-list\-specials\fR (see above)\&. The following list gives an overview of the special sets currently supported\&. The names of the handlers can also be used to disable the processing of individual sets of specials\&. For further information on this, see option \fB\-\-no\-specials\fR\&. +It might be worth mentioning that specials are only evaluated when processing DVI files\&. PS/EPS and PDF don\(cqt know anything about the concept of specials and therefore don\(cqt provide means to represent them\&. +.sp +In order to evaluate the special commands, dvisvgm implements several dedicated handlers\&. Each handler is responsible for all special statements belonging to the same command set, i\&.e\&. commands usually \(en but not necessarily \(en beginning with a common prefix\&. For example, all PDF specials start with the prefix \fBpdf:\fR, while the TPIC special set consists of 13 different commands without common identifier\&. The PDF specials are processed by dvisvgm\(cqs \fIpdf\fR handler, the TPIC ones by the \fItpic\fR handler\&. To get a list of the actually provided special handlers, use option \fB\-\-list\-specials\fR (see above)\&. The following list gives an overview of the special sets currently supported\&. The names of the handlers can also be used to disable the processing of individual sets of specials\&. For further information on this, see option \fB\-\-no\-specials\fR\&. .PP \fBbgcolor\fR .RS 4 @@ -1302,7 +1304,7 @@ Statements of this command set provide instructions to change the text/paint col .PP \fBdvisvgm\fR .RS 4 -dvisvgm offers its own small set of specials\&. The following list gives a brief overview\&. +The following list gives a brief overview of dvisvgm\(cqs own set of currently supported specials\&. .PP \fBdvisvgm:raw\fR \fItext\fR .RS 4 diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.txt.in b/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.txt.in index db5b48a35bb..f055998145f 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.txt.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.txt.in @@ -22,11 +22,11 @@ Martin Gieseking <@PACKAGE_BUGREPORT@> :man source: dvisvgm :man version: @VERSION@ :man manual: dvisvgm Manual -:revdate: 2024-01-06 14:30 +0100 +:revdate: 2024-02-04 15:33 +0100 Name ---- -dvisvgm - converts DVI and EPS files to the XML-based SVG format +dvisvgm - converts DVI, EPS, and PDF files to the XML-based SVG format Synopsis @@ -785,20 +785,23 @@ Supported Specials ------------------ dvisvgm supports several 'special commands' that enrich the DVI command set with additional instructions for features, like color, graphics, and hyperlinks. The term 'special command', or just 'special', originates -from the TeX command +\special{...}+ which does almost nothing. TeX only forwards the whole command to the -DVI file and delegates its execution to the DVI driver. The DVI driver can then decide to either process or -ignore it, depending on the supported statements. The parameter of TeX's +\special+ command is given in curly -braces and may consist of an arbitrary character sequence representing the actual instruction, for example -+color Red+. - -dvisvgm delegates the evaluation of special commands to dedicated handlers. Each handler is responsible for -all special statements of the same command set, i.e. commands usually – but not necessarily – -beginning with a common prefix. For example, all PDF specials start with the prefix +pdf:+, while the TPIC -special set consists of 13 different commands without common identifier. The PDF specials are processed by -dvisvgm's 'pdf' handler, the TPIC ones by the 'tpic' handler. To get a list of the actually provided special -handlers, use option *--list-specials* (see above). The following list gives an overview of the special sets -currently supported. The names of the handlers can also be used to disable the processing of individual sets -of specials. For further information on this, see option *--no-specials*. +from the TeX command +\special{...}+ which does almost nothing. TeX only forwards the argument of this command +to the DVI file using the corresponding 'xxx' opcode, thus delegating its execution to the DVI driver. The +driver can then decide to either process or ignore it, depending on the supported statements. The parameter +of TeX's +\special+ command is given in curly braces and may consist of an arbitrary character sequence +representing the actual instruction, for example +color Red+. + +It might be worth mentioning that specials are only evaluated when processing DVI files. PS/EPS and PDF +don't know anything about the concept of specials and therefore don't provide means to represent them. + +In order to evaluate the special commands, dvisvgm implements several dedicated handlers. Each handler is +responsible for all special statements belonging to the same command set, i.e. commands usually – +but not necessarily – beginning with a common prefix. For example, all PDF specials start with the +prefix +pdf:+, while the TPIC special set consists of 13 different commands without common identifier. The +PDF specials are processed by dvisvgm's 'pdf' handler, the TPIC ones by the 'tpic' handler. To get a list of +the actually provided special handlers, use option *--list-specials* (see above). The following list gives an +overview of the special sets currently supported. The names of the handlers can also be used to disable the +processing of individual sets of specials. For further information on this, see option *--no-specials*. *bgcolor*:: Special statements for changing the background/page color. Currently, dvisvgm only supports the +background+ @@ -813,8 +816,8 @@ Statements of this command set provide instructions to change the text/paint col exact syntax, see the documentation of dvips, for instance. *dvisvgm*:: -dvisvgm offers its own small set of specials. The following list gives a brief overview. - *dvisvgm:raw* 'text';; +The following list gives a brief overview of dvisvgm's own set of currently supported specials. +*dvisvgm:raw* 'text';; Adds an arbitrary sequence of XML nodes to the page section of the SVG document. dvisvgm checks syntax and proper nesting of the inserted elements but does not perform any validation, thus the user has to ensure that the resulting SVG is still valid. Opening and closing tags may be distributed among different 'raw' diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/boost/boost-vectorstream.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/libs/boost/boost-vectorstream.hpp index 91aa2f864d1..851d186656d 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/boost/boost-vectorstream.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/boost/boost-vectorstream.hpp @@ -43,6 +43,11 @@ #include // char traits #include // ptrdiff_t +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wreorder" +#endif + namespace boost { namespace interprocess { //!A streambuf class that controls the transmission of elements to and from @@ -604,4 +609,8 @@ class basic_vectorstream }} //namespace boost { namespace interprocess { +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif + #endif /* BOOST_INTERPROCESS_VECTORSTREAM_HPP */ diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/defs.am b/Build/source/texk/dvisvgm/dvisvgm-src/libs/defs.am index 2731452011b..50b15563e2a 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/defs.am +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/defs.am @@ -6,13 +6,14 @@ BROTLI_CFLAGS += -I$(dvisvgm_srcdir)/libs/brotli/include BROTLI_LIBS += ../libs/brotli/libbrotli.a endif -if !HAVE_POTRACE -POTRACE_CFLAGS = $(POTRACE_INCLUDES) -endif -# if TEXLIVE_BUILD POTRACE_CFLAGS = $(POTRACE_INCLUDES) -endif +else +if !HAVE_POTRACE +# POTRACE_CFLAGS = -I$(dvisvgm_srcdir)/libs/potrace +# POTRACE_LIBS = ../libs/potrace/libpotrace.a +endif !HAVE_POTRACE +endif !TEXLIVE_BUILD if !HAVE_WOFF2 WOFF2_CFLAGS += -I$(dvisvgm_srcdir)/libs/woff2/include diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/BasicDVIReader.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/BasicDVIReader.cpp index f87cbcbf3f3..a6ae7495c49 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/BasicDVIReader.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/BasicDVIReader.cpp @@ -81,7 +81,7 @@ int BasicDVIReader::evalCommand (CommandHandler &handler, int ¶m) { const int opcode = readByte(); if (!isStreamValid() || opcode < 0) // at end of file - throw InvalidDVIFileException("invalid DVI file"); + throw DVIPrematureEOFException(); int num_param_bytes = 0; param = -1; @@ -163,7 +163,7 @@ void BasicDVIReader::executePreamble () { return; } } - throw DVIException("invalid DVI file"); + throw DVIException("invalid DVI file (missing preamble)"); } @@ -171,7 +171,7 @@ void BasicDVIReader::executePreamble () { void BasicDVIReader::goToPostamble () { clearStream(); if (!isStreamValid()) - throw DVIException("invalid DVI file"); + throw DVIException("invalid DVI file (missing postamble)"); seek(-1, ios::end); // stream pointer to last byte int count=0; @@ -198,7 +198,7 @@ void BasicDVIReader::executePostamble () { void BasicDVIReader::executePostPost () { clearStream(); // reset all status bits if (!isStreamValid()) - throw DVIException("invalid DVI file"); + throw DVIException("invalid DVI file (missing postpost)"); seek(-1, ios::end); // stream pointer to last byte int count=0; diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/BasicDVIReader.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/BasicDVIReader.hpp index c3135cb5d51..f3976a6b928 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/BasicDVIReader.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/BasicDVIReader.hpp @@ -32,8 +32,8 @@ struct DVIException : public MessageException { }; -struct InvalidDVIFileException : public DVIException { - explicit InvalidDVIFileException (const std::string &msg) : DVIException(msg) {} +struct DVIPrematureEOFException : public DVIException { + explicit DVIPrematureEOFException () : DVIException("premature end of DVI stream") {} }; diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIReader.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIReader.cpp index b7c08bc1395..01501f29b0c 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIReader.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIReader.cpp @@ -20,6 +20,7 @@ #include #include +#include #include "Color.hpp" #include "DVIActions.hpp" #include "DVIReader.hpp" @@ -27,7 +28,6 @@ #include "FontManager.hpp" #include "HashFunction.hpp" #include "utility.hpp" -#include "VectorStream.hpp" using namespace std; @@ -49,7 +49,7 @@ void DVIReader::executeAll () { try { opcode = executeCommand(); } - catch (const InvalidDVIFileException &e) { + catch (const DVIPrematureEOFException &e) { // end of stream reached opcode = -1; } @@ -64,7 +64,7 @@ void DVIReader::executeAll () { bool DVIReader::executePage (unsigned n) { clearStream(); // reset all status bits if (!isStreamValid()) - throw DVIException("invalid DVI file"); + throw DVIException("invalid DVI file (page "+to_string(n)+" not found"); if (n < 1 || n > numberOfPages()) return false; @@ -204,7 +204,7 @@ void DVIReader::cmdPop (int) { void DVIReader::putVFChar (Font *font, uint32_t c) { if (auto vf = font_cast(font)) { // is current font a virtual font? FontManager &fm = FontManager::instance(); - const vector *dvi = vf->getDVI(c); // try to get DVI snippet that represents character c + const auto *dvi = vf->getDVI(c); // try to get DVI snippet that represents character c Font *firstFont = fm.vfFirstFont(vf); if (!dvi) { const FontMetrics *ffm = firstFont ? firstFont->getMetrics() : nullptr; @@ -222,8 +222,8 @@ void DVIReader::putVFChar (Font *font, uint32_t c) { _dvi2bp = vf->scaledSize()/(1 << 20); DVIState savedState = _dviState; // save current cursor position _dviState.x = _dviState.y = _dviState.w = _dviState.z = 0; - VectorInputStream vis(*dvi); - istream &is = replaceStream(vis); + ivectorstream> vis(*dvi); + auto &is = replaceStream(vis); try { executeAll(); // execute DVI fragment } @@ -534,7 +534,7 @@ void DVIReader::defineVFFont (uint32_t fontnum, const string &path, const string /** This template method is called by the VFReader after reading a character definition from a VF file. * @param[in] c character number * @param[in] dvi DVI fragment describing the character */ -void DVIReader::defineVFChar (uint32_t c, vector &&dvi) { +void DVIReader::defineVFChar (uint32_t c, vector &&dvi) { FontManager::instance().assignVFChar(c, std::move(dvi)); } diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIReader.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIReader.hpp index ffab16c5a81..b221960cb6c 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIReader.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIReader.hpp @@ -77,7 +77,7 @@ class DVIReader : public BasicDVIReader, public VFActions { // VFAction methods void defineVFFont (uint32_t fontnum, const std::string &path, const std::string &name, uint32_t checksum, double dsize, double ssize) override; - void defineVFChar (uint32_t c, std::vector &&dvi) override; + void defineVFChar (uint32_t c, std::vector &&dvi) override; // The following template methods provide higher-level access to the DVI commands. // In contrast to their cmdXXX pendants, they don't require any handling of the input stream. diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIToSVG.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIToSVG.cpp index b4340a89fec..a1da593d08b 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIToSVG.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIToSVG.cpp @@ -54,13 +54,8 @@ #include "HtmlSpecialHandler.hpp" #include "PapersizeSpecialHandler.hpp" #include "PdfSpecialHandler.hpp" +#include "PsSpecialHandlerProxy.hpp" #include "TpicSpecialHandler.hpp" -#ifndef HAVE_LIBGS - #include "NoPsSpecialHandler.hpp" -#endif -#ifndef DISABLE_GS - #include "PsSpecialHandler.hpp" -#endif /////////////////////////////////// @@ -423,28 +418,9 @@ void DVIToSVG::setProcessSpecials (const char *ignorelist, bool pswarning) { SpecialManager::registerHandler(ignoredHandlerName); // handles emTeX specials SpecialManager::registerHandler(ignoredHandlerName); // handles hyperref specials SpecialManager::registerHandler(ignoredHandlerName); // handles papersize special - SpecialManager::registerHandler(ignoredHandlerName); // handles pdf specials + SpecialManager::registerHandler(ignoredHandlerName); SpecialManager::registerHandler(ignoredHandlerName); // handles tpic specials - if (find(ignoredHandlerName.begin(), ignoredHandlerName.end(), PsSpecialHandler::handlerName()) == ignoredHandlerName.end()) { -#ifndef DISABLE_GS - if (Ghostscript().available()) - SpecialManager::registerHandler(ignoredHandlerName); // handles PostScript specials - else -#endif - { -#ifndef HAVE_LIBGS - // dummy PS special handler that only prints warning messages - SpecialManager::registerHandler(ignoredHandlerName); - if (pswarning) { -#ifdef DISABLE_GS - Message::wstream() << "processing of PostScript specials has been disabled permanently\n"; -#else - Message::wstream() << "processing of PostScript specials is disabled (Ghostscript not found)\n"; -#endif - } -#endif - } - } + SpecialManager::registerHandler(util::make_unique(pswarning), ignoredHandlerName); } } diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/Font.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/Font.cpp index 42737d364ae..56b4c635b06 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/Font.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/Font.cpp @@ -725,7 +725,7 @@ void VirtualFontImpl::assignChar (uint32_t c, DVIVector &&dvi) { /** Returns the DVI sippet that describes a given character of the virtual font. * @param[in] c character code * @return pointer to vector of DVI commands, or 0 if character doesn't exist */ -const vector* VirtualFontImpl::getDVI (int c) const { +const VirtualFont::DVIVector* VirtualFontImpl::getDVI (int c) const { auto it = _charDefs.find(c); return (it == _charDefs.end() ? nullptr : &it->second); } diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/Font.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/Font.hpp index 84c19e512e3..c8a2e340a9a 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/Font.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/Font.hpp @@ -162,7 +162,7 @@ class PhysicalFont : public virtual Font { class VirtualFont : public virtual Font { friend class FontManager; public: - using DVIVector = std::vector; + using DVIVector = std::vector; public: static std::unique_ptr create (const std::string &name, uint32_t checksum, double dsize, double ssize); diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.cpp index 1020617178b..2a5778326ab 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.cpp @@ -377,7 +377,7 @@ void FontManager::leaveVF () { /** Assigns a sequence of DVI commands to a char code. * @param[in] c character code * @param[in] dvi DVI commands that describe character c */ -void FontManager::assignVFChar (int c, vector &&dvi) { +void FontManager::assignVFChar (int c, vector &&dvi) { if (!_vfStack.empty()) _vfStack.top()->assignChar(c, std::move(dvi)); } diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.hpp index 3b051a38356..a2deb89d95d 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.hpp @@ -72,7 +72,7 @@ class FontManager { Font* vfFirstFont (const VirtualFont *vf) const; void enterVF (VirtualFont *vf); void leaveVF (); - void assignVFChar (int c, std::vector &&dvi); + void assignVFChar (int c, std::vector &&dvi); void addUsedChar (const Font &font, int c); void resetUsedChars (); CharMap& getUsedChars () {return _usedChars;} diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/GFReader.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/GFReader.cpp index 6b2c6aa388d..6584d068498 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/GFReader.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/GFReader.cpp @@ -158,7 +158,7 @@ bool GFReader::executePostamble () { throw GFException("invalid identification byte in postpost"); _in.seekg(-5, ios::cur); // now on postpost if (_in.get() != 249) - throw GFException("invalid GF file"); + throw GFException("invalid GF file (missing postpost)"); uint32_t q = readUnsigned(4); // pointer to begin of postamble _in.seekg(q); // now on begin of postamble while (executeCommand() != 249); // execute all commands until postpost is reached diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/Makefile.am b/Build/source/texk/dvisvgm/dvisvgm-src/src/Makefile.am index 393452534f2..f1888535c7a 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/Makefile.am +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/Makefile.am @@ -133,6 +133,7 @@ libdvisvgm_la_SOURCES = \ PSPattern.hpp PSPattern.cpp \ PSPreviewHandler.hpp PSPreviewHandler.cpp \ PsSpecialHandler.hpp PsSpecialHandler.cpp \ + PsSpecialHandlerProxy.hpp PsSpecialHandlerProxy.cpp \ RangeMap.hpp RangeMap.cpp \ ShadingPatch.hpp ShadingPatch.cpp \ SignalHandler.hpp SignalHandler.cpp \ @@ -161,7 +162,6 @@ libdvisvgm_la_SOURCES = \ Unicode.hpp Unicode.cpp \ utility.hpp utility.cpp \ VectorIterator.hpp \ - VectorStream.hpp \ VFActions.hpp \ VFReader.hpp VFReader.cpp \ windows.hpp \ @@ -185,6 +185,7 @@ AM_CFLAGS = $(WARNING_CFLAGS) \ $(CODE_COVERAGE_CFLAGS) AM_CXXFLAGS = $(WARNING_CXXFLAGS) \ + -I$(dvisvgm_srcdir)/libs/boost \ -I$(dvisvgm_srcdir)/libs/clipper \ -I$(dvisvgm_srcdir)/libs/variant/include @@ -256,14 +257,3 @@ if TEXLIVE_BUILD # Rebuild potrace: @POTRACE_RULE@ endif TEXLIVE_BUILD - -if TEXLIVE_BUILD -# Rebuild libkpathsea: -@KPATHSEA_RULE@ -# Rebuild libfreetype: -@FREETYPE2_RULE@ -# Rebuild libz: -@ZLIB_RULE@ -# Rebuild potrace: -@POTRACE_RULE@ -endif TEXLIVE_BUILD diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/src/Makefile.in index 99d4c39a8a6..7e9e615e634 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/Makefile.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/Makefile.in @@ -92,6 +92,8 @@ host_triplet = @host@ bin_PROGRAMS = dvisvgm$(EXEEXT) @HAVE_BROTLI_FALSE@am__append_1 = -I$(dvisvgm_srcdir)/libs/brotli/include @HAVE_BROTLI_FALSE@am__append_2 = ../libs/brotli/libbrotli.a +# POTRACE_CFLAGS = -I$(dvisvgm_srcdir)/libs/potrace +# POTRACE_LIBS = ../libs/potrace/libpotrace.a @HAVE_WOFF2_FALSE@am__append_3 = -I$(dvisvgm_srcdir)/libs/woff2/include @HAVE_WOFF2_FALSE@am__append_4 = ../libs/woff2/libwoff2.a @ENABLE_WOFF_TRUE@am__append_5 = ttf @@ -180,12 +182,12 @@ am_libdvisvgm_la_OBJECTS = BasicDVIReader.lo Bezier.lo \ PDFParser.lo PdfSpecialHandler.lo PDFToSVG.lo \ PreScanDVIReader.lo Process.lo psdefs.lo PSInterpreter.lo \ PSPattern.lo PSPreviewHandler.lo PsSpecialHandler.lo \ - RangeMap.lo ShadingPatch.lo SignalHandler.lo SourceInput.lo \ - SpecialActions.lo SpecialManager.lo StreamReader.lo \ - StreamWriter.lo Subfont.lo SVGCharHandler.lo \ - SVGCharHandlerFactory.lo SVGCharPathHandler.lo \ - SVGCharTspanTextHandler.lo SVGElement.lo SVGOutput.lo \ - SVGSingleCharTextHandler.lo SVGTree.lo System.lo \ + PsSpecialHandlerProxy.lo RangeMap.lo ShadingPatch.lo \ + SignalHandler.lo SourceInput.lo SpecialActions.lo \ + SpecialManager.lo StreamReader.lo StreamWriter.lo Subfont.lo \ + SVGCharHandler.lo SVGCharHandlerFactory.lo \ + SVGCharPathHandler.lo SVGCharTspanTextHandler.lo SVGElement.lo \ + SVGOutput.lo SVGSingleCharTextHandler.lo SVGTree.lo System.lo \ TensorProductPatch.lo Terminal.lo TFM.lo ToUnicodeMap.lo \ TpicSpecialHandler.lo TriangularPatch.lo Unicode.lo utility.lo \ VFReader.lo XMLDocument.lo XMLNode.lo XMLParser.lo \ @@ -258,7 +260,8 @@ am__depfiles_remade = ./$(DEPDIR)/BasicDVIReader.Plo \ ./$(DEPDIR)/PapersizeSpecialHandler.Plo \ ./$(DEPDIR)/PathClipper.Plo ./$(DEPDIR)/PdfSpecialHandler.Plo \ ./$(DEPDIR)/PreScanDVIReader.Plo ./$(DEPDIR)/Process.Plo \ - ./$(DEPDIR)/PsSpecialHandler.Plo ./$(DEPDIR)/RangeMap.Plo \ + ./$(DEPDIR)/PsSpecialHandler.Plo \ + ./$(DEPDIR)/PsSpecialHandlerProxy.Plo ./$(DEPDIR)/RangeMap.Plo \ ./$(DEPDIR)/SVGCharHandler.Plo \ ./$(DEPDIR)/SVGCharHandlerFactory.Plo \ ./$(DEPDIR)/SVGCharPathHandler.Plo \ @@ -545,8 +548,6 @@ dvisvgm_SOURCES = \ CommandLine.hpp \ dvisvgm.cpp -@HAVE_POTRACE_FALSE@POTRACE_CFLAGS = $(POTRACE_INCLUDES) -# @TEXLIVE_BUILD_TRUE@POTRACE_CFLAGS = $(POTRACE_INCLUDES) @HAVE_XXHASH_FALSE@XXHASH_CFLAGS = -I$(dvisvgm_srcdir)/libs/xxHash @HAVE_XXHASH_FALSE@XXHASH_LIBS = ../libs/xxHash/libxxhash.a @@ -640,6 +641,7 @@ libdvisvgm_la_SOURCES = \ PSPattern.hpp PSPattern.cpp \ PSPreviewHandler.hpp PSPreviewHandler.cpp \ PsSpecialHandler.hpp PsSpecialHandler.cpp \ + PsSpecialHandlerProxy.hpp PsSpecialHandlerProxy.cpp \ RangeMap.hpp RangeMap.cpp \ ShadingPatch.hpp ShadingPatch.cpp \ SignalHandler.hpp SignalHandler.cpp \ @@ -668,7 +670,6 @@ libdvisvgm_la_SOURCES = \ Unicode.hpp Unicode.cpp \ utility.hpp utility.cpp \ VectorIterator.hpp \ - VectorStream.hpp \ VFActions.hpp \ VFReader.hpp VFReader.cpp \ windows.hpp \ @@ -686,7 +687,8 @@ AM_CFLAGS = $(WARNING_CFLAGS) \ $(ZLIB_CFLAGS) \ $(CODE_COVERAGE_CFLAGS) -AM_CXXFLAGS = $(WARNING_CXXFLAGS) -I$(dvisvgm_srcdir)/libs/clipper \ +AM_CXXFLAGS = $(WARNING_CXXFLAGS) -I$(dvisvgm_srcdir)/libs/boost \ + -I$(dvisvgm_srcdir)/libs/clipper \ -I$(dvisvgm_srcdir)/libs/variant/include $(POTRACE_CFLAGS) \ $(XXHASH_CFLAGS) $(am__append_11) $(am__append_12) \ $(am__append_13) $(am__append_14) -I$(dvisvgm_srcdir)/libs/md5 @@ -868,6 +870,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PreScanDVIReader.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Process.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PsSpecialHandler.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PsSpecialHandlerProxy.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RangeMap.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SVGCharHandler.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SVGCharHandlerFactory.Plo@am__quote@ # am--include-marker @@ -1206,6 +1209,7 @@ distclean: distclean-recursive -rm -f ./$(DEPDIR)/PreScanDVIReader.Plo -rm -f ./$(DEPDIR)/Process.Plo -rm -f ./$(DEPDIR)/PsSpecialHandler.Plo + -rm -f ./$(DEPDIR)/PsSpecialHandlerProxy.Plo -rm -f ./$(DEPDIR)/RangeMap.Plo -rm -f ./$(DEPDIR)/SVGCharHandler.Plo -rm -f ./$(DEPDIR)/SVGCharHandlerFactory.Plo @@ -1351,6 +1355,7 @@ maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/PreScanDVIReader.Plo -rm -f ./$(DEPDIR)/Process.Plo -rm -f ./$(DEPDIR)/PsSpecialHandler.Plo + -rm -f ./$(DEPDIR)/PsSpecialHandlerProxy.Plo -rm -f ./$(DEPDIR)/RangeMap.Plo -rm -f ./$(DEPDIR)/SVGCharHandler.Plo -rm -f ./$(DEPDIR)/SVGCharHandlerFactory.Plo @@ -1445,15 +1450,6 @@ uninstall-am: uninstall-binPROGRAMS # Rebuild potrace: @TEXLIVE_BUILD_TRUE@@POTRACE_RULE@ -# Rebuild libkpathsea: -@TEXLIVE_BUILD_TRUE@@KPATHSEA_RULE@ -# Rebuild libfreetype: -@TEXLIVE_BUILD_TRUE@@FREETYPE2_RULE@ -# Rebuild libz: -@TEXLIVE_BUILD_TRUE@@ZLIB_RULE@ -# Rebuild potrace: -@TEXLIVE_BUILD_TRUE@@POTRACE_RULE@ - # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/NoPsSpecialHandler.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/NoPsSpecialHandler.cpp index 65f098eb35a..3d8e6a35006 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/NoPsSpecialHandler.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/NoPsSpecialHandler.cpp @@ -40,6 +40,6 @@ void NoPsSpecialHandler::dviEndPage (unsigned pageno, SpecialActions &actions) { vector NoPsSpecialHandler::prefixes () const { - vector pfx {"header=", "psfile=", "PSfile=", "ps:", "ps::", "!", "\""}; + vector pfx {"header=", "psfile=", "PSfile=", "ps:", "ps::", "!", "\"", "pst:", "PST:"}; return pfx; } diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandlerProxy.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandlerProxy.cpp new file mode 100644 index 00000000000..d13cc124ae6 --- /dev/null +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandlerProxy.cpp @@ -0,0 +1,85 @@ +/************************************************************************* +** PsSpecialHandlerProxy.cpp ** +** ** +** This file is part of dvisvgm -- a fast DVI to SVG converter ** +** Copyright (C) 2005-2024 Martin Gieseking ** +** ** +** This program is free software; you can redistribute it and/or ** +** modify it under the terms of the GNU General Public License as ** +** published by the Free Software Foundation; either version 3 of ** +** the License, or (at your option) any later version. ** +** ** +** This program is distributed in the hope that it will be useful, but ** +** WITHOUT ANY WARRANTY; without even the implied warranty of ** +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** +** GNU General Public License for more details. ** +** ** +** You should have received a copy of the GNU General Public License ** +** along with this program; if not, see . ** +*************************************************************************/ + +#include +#include +#include "Message.hpp" +#ifndef DISABLE_GS + #include "PsSpecialHandler.hpp" +#endif +#ifndef HAVE_LIBGS + #include "NoPsSpecialHandler.hpp" +#endif +#include "PsSpecialHandlerProxy.hpp" +#include "SpecialManager.hpp" +#include "utility.hpp" + +using namespace std; + +inline unique_ptr createPsSpecialHandler () { +#ifndef DISABLE_GS +#ifndef HAVE_LIBGS + if (Ghostscript().available()) +#endif + return util::make_unique(); +#endif +#ifndef HAVE_LIBGS + return util::make_unique(); +#endif +} + + +/** Replaces this handler proxy with the actual PS special handler. */ +SpecialHandler* PsSpecialHandlerProxy::replaceHandler () { + auto psSpecialHandler = createPsSpecialHandler(); + if (_pswarning) { +#ifdef DISABLE_GS + Message::wstream() << "processing of PostScript specials was permanently disabled\n"; +#else + if (!psSpecialHandler->name()) + Message::wstream() << "processing of PostScript specials is disabled (Ghostscript not found)\n"; +#endif + } + SpecialHandler *handlerPtr = psSpecialHandler.get(); + SpecialManager::instance().unregisterHandler(this); + SpecialManager::instance().registerHandler(std::move(psSpecialHandler)); + return handlerPtr; +} + + +void PsSpecialHandlerProxy::preprocess (const string &prefix, istream &is, SpecialActions &actions) { + replaceHandler()->preprocess(prefix, is, actions); +} + + +bool PsSpecialHandlerProxy::process (const string &prefix, istream &is, SpecialActions &actions) { + return replaceHandler()->process(prefix, is, actions); +} + + +const char* PsSpecialHandlerProxy::info() const { + return createPsSpecialHandler()->info(); +} + + +vector PsSpecialHandlerProxy::prefixes() const { + vector pfx {"header=", "pdffile=", "psfile=", "PSfile=", "ps:", "ps::", "!", "\"", "pst:", "PST:"}; + return pfx; +} diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandlerProxy.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandlerProxy.hpp new file mode 100644 index 00000000000..f2a1b3ab13b --- /dev/null +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandlerProxy.hpp @@ -0,0 +1,39 @@ +/************************************************************************* +** PsSpecialHandlerProxy.hpp ** +** ** +** This file is part of dvisvgm -- a fast DVI to SVG converter ** +** Copyright (C) 2005-2024 Martin Gieseking ** +** ** +** This program is free software; you can redistribute it and/or ** +** modify it under the terms of the GNU General Public License as ** +** published by the Free Software Foundation; either version 3 of ** +** the License, or (at your option) any later version. ** +** ** +** This program is distributed in the hope that it will be useful, but ** +** WITHOUT ANY WARRANTY; without even the implied warranty of ** +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** +** GNU General Public License for more details. ** +** ** +** You should have received a copy of the GNU General Public License ** +** along with this program; if not, see . ** +*************************************************************************/ + +#pragma once + +#include "SpecialHandler.hpp" + +class PsSpecialHandlerProxy : public SpecialHandler { + public: + explicit PsSpecialHandlerProxy (bool pswarning) : _pswarning(pswarning) {} + 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 "ps";} + const char* info () const override; + std::vector prefixes () const override; + + protected: + SpecialHandler* replaceHandler (); + + private: + bool _pswarning; +}; diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/SpecialManager.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/SpecialManager.cpp index 21f70c4af2a..175f3c54fb0 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/SpecialManager.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/SpecialManager.cpp @@ -56,6 +56,13 @@ void SpecialManager::registerHandler (unique_ptr handler) { } +void SpecialManager::registerHandler (unique_ptr handler, const vector &ignoredHandlerNames) { + const char *name = handler->name(); + if (!name || find(ignoredHandlerNames.begin(), ignoredHandlerNames.end(), string(name)) == ignoredHandlerNames.end()) + instance().registerHandler(std::move(handler)); +} + + /** Registers several special handlers at once. * If ignorelist == 0, all given handlers are registered. To exclude selected sets of * specials, the corresponding names can be given separated by non alpha-numeric characters, @@ -77,6 +84,21 @@ void SpecialManager::registerHandlers (vector> &handl } +/** Removes a handler and the corresponding prefixes. */ +void SpecialManager::unregisterHandler (SpecialHandler *handler) { + if (handler) { + auto it = find_if(_handlerPool.begin(), _handlerPool.end(), [=](unique_ptr &h) { + return h.get() == handler; + }); + if (it != _handlerPool.end()) { + for (const char *prefix : handler->prefixes()) + _handlersByPrefix.erase(prefix); + _handlerPool.erase(it); + } + } +} + + /** Looks for a handler responsible for a given special prefix. * @param[in] prefix the special prefix, e.g. "color" or "em" * @return in case of success: pointer to handler, 0 otherwise */ @@ -170,10 +192,10 @@ void SpecialManager::writeHandlerInfo (ostream &os) const { if (handler->name()) sortmap[handler->name()] = handler.get(); for (const auto &strhandlerpair : sortmap) { - os << setw(10) << left << strhandlerpair.second->name() << ' '; - if (strhandlerpair.second->info()) - os << strhandlerpair.second->info(); - os << endl; + if (const char *info = strhandlerpair.second->info()) { + os << setw(10) << left << strhandlerpair.second->name() << ' '; + os << info << '\n'; + } } os.flags(osflags); // restore format flags } diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/SpecialManager.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/SpecialManager.hpp index b4eb95c991c..00cc3ebc6b3 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/SpecialManager.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/SpecialManager.hpp @@ -48,8 +48,10 @@ class SpecialManager { instance().registerHandler(util::make_unique()); } + static void registerHandler (std::unique_ptr handler, const std::vector &ignoredHandlerNames); void registerHandler (std::unique_ptr handler); void registerHandlers (std::vector> &handlers, const char *ignorelist); + void unregisterHandler (SpecialHandler *handler); void unregisterHandlers (); void preprocess (const std::string &special, SpecialActions &actions) const; bool process (const std::string &special, double dvi2bp, SpecialActions &actions) const; diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/StreamReader.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/StreamReader.cpp index 93d4045248a..5fcdd8d8081 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/StreamReader.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/StreamReader.cpp @@ -146,6 +146,14 @@ vector StreamReader::readBytes (int n, HashFunction &hashfunc) { } +vector StreamReader::readBytesAsChars (int n) { + vector chars(n); + if (n > 0) + _is->read(chars.data(), n); + return chars; +} + + int StreamReader::readByte (HashFunction &hashfunc) { int ret = readByte(); if (ret >= 0) { diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/StreamReader.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/StreamReader.hpp index c5d06d4a3bb..70f05a5c774 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/StreamReader.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/StreamReader.hpp @@ -46,6 +46,7 @@ class StreamReader { std::string readString (int length, HashFunction &hashfunc); std::vector readBytes (int n); std::vector readBytes (int n, HashFunction &hash); + std::vector readBytesAsChars (int n); int readByte () {return _is->get();} int readByte (HashFunction &hashfunc); void seek (std::streampos pos, std::ios::seekdir dir) {_is->seekg(pos, dir);} diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/VFActions.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/VFActions.hpp index 2c8d6e47cc9..dc623293592 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/VFActions.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/VFActions.hpp @@ -25,13 +25,12 @@ #include -struct VFActions -{ +struct VFActions { virtual ~VFActions () =default; virtual void vfPreamble (const std::string &comment, uint32_t checksum, double dsize) {} virtual void vfPostamble () {} virtual void defineVFFont (uint32_t fontnum, const std::string &path, const std::string &name, uint32_t checksum, double dsize, double ssize) {} - virtual void defineVFChar (uint32_t c, std::vector &&dvi) {} + virtual void defineVFChar (uint32_t c, std::vector &&dvi) {} }; #endif diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/VFReader.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/VFReader.cpp index bf126039e4f..5ca91ced3db 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/VFReader.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/VFReader.cpp @@ -126,13 +126,13 @@ void VFReader::cmdPost () { void VFReader::cmdLongChar () { - uint32_t pl = readUnsigned(4); // packet length (length of DVI subroutine) + uint32_t pl = readUnsigned(4); // packet length (length of DVI subroutine) if (!_actions) - seek(8+pl, ios::cur); // skip remaining char definition bytes + seek(8+pl, ios::cur); // skip remaining char definition bytes else { - uint32_t cc = readUnsigned(4); // character code - readUnsigned(4); // equals character width from corresponding TFM file - auto dvi = readBytes(pl); // DVI subroutine + uint32_t cc = readUnsigned(4); // character code + readUnsigned(4); // equals character width from corresponding TFM file + auto dvi = readBytesAsChars(pl); // DVI subroutine _actions->defineVFChar(cc, std::move(dvi)); // call template method for user actions } } @@ -144,9 +144,9 @@ void VFReader::cmdShortChar (int pl) { if (!_actions) seek(4+pl, ios::cur); // skip char definition bytes else { - uint32_t cc = readUnsigned(1); // character code - readUnsigned(3); // character width from corresponding TFM file - auto dvi = readBytes(pl); // DVI subroutine + uint32_t cc = readUnsigned(1); // character code + readUnsigned(3); // character width from corresponding TFM file + auto dvi = readBytesAsChars(pl); // DVI subroutine _actions->defineVFChar(cc, std::move(dvi)); // call template method for user actions } } diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/VectorStream.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/VectorStream.hpp deleted file mode 100644 index 10189944002..00000000000 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/VectorStream.hpp +++ /dev/null @@ -1,84 +0,0 @@ -/************************************************************************* -** VectorStream.hpp ** -** ** -** This file is part of dvisvgm -- a fast DVI to SVG converter ** -** Copyright (C) 2005-2024 Martin Gieseking ** -** ** -** This program is free software; you can redistribute it and/or ** -** modify it under the terms of the GNU General Public License as ** -** published by the Free Software Foundation; either version 3 of ** -** the License, or (at your option) any later version. ** -** ** -** This program is distributed in the hope that it will be useful, but ** -** WITHOUT ANY WARRANTY; without even the implied warranty of ** -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** -** GNU General Public License for more details. ** -** ** -** You should have received a copy of the GNU General Public License ** -** along with this program; if not, see . ** -*************************************************************************/ - -#ifndef VECTORSTREAM_HPP -#define VECTORSTREAM_HPP - -#include -#include - -template -class VectorStreamBuffer : public std::streambuf { - public: - explicit VectorStreamBuffer (const std::vector &v) { - if (!v.empty()) { - _begin = _curr = &v[0]; - _end = &v[0]+v.size(); - } - } - - protected: - int_type underflow () override { - return _curr == _end ? traits_type::eof() : traits_type::to_int_type(*_curr); - } - - int_type uflow() override { - return _curr == _end ? traits_type::eof() : traits_type::to_int_type(*_curr++); - } - - std::streamsize showmanyc () override {return _end-_curr;} - - int_type pbackfail (int_type c) override { - if (_curr == _begin || (c != traits_type::eof() && c != _curr[-1])) - return traits_type::eof(); - return traits_type::to_int_type(*--_curr); - } - - pos_type seekoff (off_type off, std::ios_base::seekdir dir, std::ios_base::openmode which=std::ios_base::in) override { - switch (dir) { - case std::ios_base::cur: - _curr += off; break; - case std::ios_base::beg: - _curr = _begin+off; break; - case std::ios_base::end: - _curr = _end-off; break; - default: - break; - } - return _curr-_begin; - } - - private: - const T *_begin=nullptr; - const T *_end=nullptr; - const T *_curr=nullptr; -}; - - -template -class VectorInputStream : public std::istream { - public: - explicit VectorInputStream (const std::vector &source) : std::istream(&_buf), _buf(source) {} - - private: - VectorStreamBuffer _buf; -}; - -#endif diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/optimizer/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/src/optimizer/Makefile.in index 9f108830241..5dfafffaf30 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/optimizer/Makefile.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/optimizer/Makefile.in @@ -90,6 +90,8 @@ build_triplet = @build@ host_triplet = @host@ @HAVE_BROTLI_FALSE@am__append_1 = -I$(dvisvgm_srcdir)/libs/brotli/include @HAVE_BROTLI_FALSE@am__append_2 = ../libs/brotli/libbrotli.a +# POTRACE_CFLAGS = -I$(dvisvgm_srcdir)/libs/potrace +# POTRACE_LIBS = ../libs/potrace/libpotrace.a @HAVE_WOFF2_FALSE@am__append_3 = -I$(dvisvgm_srcdir)/libs/woff2/include @HAVE_WOFF2_FALSE@am__append_4 = ../libs/woff2/libwoff2.a subdir = dvisvgm-src/src/optimizer @@ -382,8 +384,6 @@ liboptimizer_la_SOURCES = \ TransformSimplifier.hpp TransformSimplifier.cpp \ WSNodeRemover.hpp WSNodeRemover.cpp -@HAVE_POTRACE_FALSE@POTRACE_CFLAGS = $(POTRACE_INCLUDES) -# @TEXLIVE_BUILD_TRUE@POTRACE_CFLAGS = $(POTRACE_INCLUDES) @HAVE_XXHASH_FALSE@XXHASH_CFLAGS = -I$(dvisvgm_srcdir)/libs/xxHash @HAVE_XXHASH_FALSE@XXHASH_LIBS = ../libs/xxHash/libxxhash.a diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp index bba86bee7c0..a16690a9553 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp @@ -33,132 +33,133 @@ const char *PSInterpreter::PSDEFS = "ulldevice get put @SD/:image @SD/image get put @SD/:colorimage @SD/colorimage " "get put @SD/.setopacityalpha known not{@SD/.setopacityalpha{pop}put}if @SD/.se" "tshapealpha known not{@SD/.setshapealpha{pop}put}if @SD/.setblendmode known no" -"t{@SD/.setblendmode{pop}put}if @SD/prseq{-1 1{-1 roll =only( )print}for(\\n)pr" -"int}put @SD/prcmd{( )exch(\\ndvi.)3{print}repeat prseq}put @SD/cvxall{{cvx}for" -"all}put @SD/defpr{[exch/copy cvx @SD 4 index[/get/exec]cvxall 5 index 3 index " -"dup length string cvs/prcmd cvx]cvx bind def}put @SD/querypos{{currentpoint}st" -"opped{$error/newerror false put}{2(querypos)prcmd}ifelse}put @SD/applyscaleval" -"s{1 0 dtransform exch dup mul exch dup mul add sqrt 0 1 dtransform exch dup mu" -"l 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(closepath)prcmd}pathforall}put @SD/n" -"ulldevice{@GD/@nulldev true put :nulldevice 1 1(setnulldevice)prcmd}put @SD/ch" -"arpath{/@dodraw false store :charpath/@dodraw true store}put @SD/stringwidth{/" -"@dodraw false store :stringwidth/@dodraw true store}put @SD/show{@dodraw @GD/@" -"nulldev get not and{dup :gsave currentpoint 2{50 mul exch}repeat :newpath move" -"to 50 50/scale sysexec true charpath fill :grestore/@dodraw false store :show/" -"@dodraw true store}{:show}ifelse}put @SD/varxyshow{dup 0 ge{<>begin 0 chr length str " -"length 1 sub{str exch chr length getinterval/chr exch store :gsave chr show :g" -"restore currentpoint prc moveto/idx idx 1 add store}for end}{pop pop show}ifel" -"se}put @SD/xyshow{dup dup type/arraytype eq exch length 0 gt and{dup length 2 " -"idiv 2 index length exch idiv}{-1}ifelse{exch arr idx 2 mul get add exch arr i" -"dx 2 mul 1 add get add}exch varxyshow}put @SD/xshow{dup dup type/arraytype eq " -"exch length 0 gt and{dup length 2 index length exch idiv}{-1}ifelse{exch arr i" -"dx get add exch}exch varxyshow}put @SD/yshow{dup dup type/arraytype eq exch le" -"ngth 0 gt and{dup length 2 index length exch idiv}{-1}ifelse{arr idx get add}e" -"xch varxyshow}put @SD/awidthshow{{1 string dup 0 5 index put :gsave show :gres" -"tore pop 0 rmoveto 3 index eq{4 index 4 index rmoveto}if 1 index 1 index rmove" -"to}exch cshow 5{pop}repeat}put @SD/widthshow{0 0 3 -1 roll awidthshow}put @SD/" -"ashow{0 0 0 6 3 roll awidthshow}put @SD/newpath{:newpath 1 1(newpath)prcmd}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/@nulldev get " -"not and{prcolor 0 1(newpath)prcmd prpath 0(fill)prcmd :newpath}{:fill}ifelse}p" -"ut @SD/eofill{@dodraw @GD/@nulldev get not and{prcolor 0 1(newpath)prcmd prpat" -"h 0(eofill)prcmd :newpath}{:eofill}ifelse}put/.fillstroke{:gsave fill :grestor" -"e .swapcolors stroke .swapcolors}bind def/.eofillstroke{:gsave eofill :grestor" -"e .swapcolors stroke .swapcolors}bind def @SD/clip{:clip @GD/@nulldev get not{" -"0 1(newpath)prcmd prpath 0(clip)prcmd}if}put @SD/eoclip{:eoclip @GD/@nulldev g" -"et not{0 1(newpath)prcmd prpath 0(eoclip)prcmd}if}put @SD/shfill{begin current" -"dict/ShadingType known currentdict/ColorSpace known and currentdict/DataSource" -" known and currentdict/Function known not and ShadingType 4 ge{DataSource type" -"/arraytype eq{<>begin currentdict ColorSpace kno" -"wn{ShadingType ColorSpace load bgknown{1 Background aload pop}{0}ifelse bbknow" -"n{1 BBox aload pop}{0}ifelse ShadingType 5 eq{VerticesPerRow}if DataSource alo" -"ad length 4 add bgknown{ColorSpace load add}if bbknown{4 add}if ShadingType 5 " -"eq{1 add}if(shfill)prcmd}if end}if}if end}put @SD/image{dup type/dicttype eq{d" -"up}{<>}ifelse @execimg}put @SD/c" -"olorimage{<<2 index{/Width 2 index 8 add index/Height 4 index 9 add index}{/Wi" -"dth 8 index/Height 9 index}ifelse/colorimg true>>@execimg}put/@imgbase(./)def/" -"@imgdevice(jpeg)def/@execimg{@GD/@imgcnt 2 copy .knownget{1 add}{1}ifelse put " -"begin<>begin @imgdevice(png)ne @imgdevice(jpeg)ne and{@imgdevice " -"cvn}{colordev{ispng{/png16m}{/jpeg}ifelse}{ispng{/pnggray}{/jpeggray}ifelse}if" -"else}ifelse dup devicedict exch known{:gsave/imgdev exch finddevice def mark/O" -"utputFile @imgbase imgid 20 string cvs strconcat suffix strconcat/PageSize[Wid" -"th Height]/UseFastColor true ispng{@imgdevice(pngmonod)eq{/MinFeatureSize wher" -"e{pop/MinFeatureSize MinFeatureSize}if}if}{/JPEGQ where{pop/JPEGQ JPEGQ}if}ife" -"lse imgdev putdeviceprops setdevice[Width 0 0 Height neg 0 Height]/setmatrix s" -"ysexec colorimg{:colorimage}{:image}ifelse/copypage sysexec mark/OutputFile()i" -"mgdev putdeviceprops pop :grestore imgid Width Height 3(image)prcmd}{pop color" -"img{:colorimage}{:image}ifelse}ifelse end end}def/@rect{4 -2 roll moveto 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 rlineto neg " -"0 exch rlineto}{exch dup 0 rlineto exch 0 exch rlineto neg 0 rlineto}ifelse cl" -"osepath}bind def @SD/rectclip{:newpath dup type/arraytype eq{aload length 4 id" -"iv{@rectcc}repeat}{@rectcc}ifelse clip :newpath}put @SD/rectfill{:gsave :newpa" -"th dup type/arraytype eq{aload length 4 idiv{@rectcc}repeat}{@rectcc}ifelse fi" -"ll :grestore}put @SD/rectstroke{gsave :newpath dup type/arraytype eq{aload len" -"gth 4 idiv{@rect}repeat}{@rect}ifelse stroke grestore}put false setglobal @SD " -"readonly pop/initclip 0 defpr/clippath 0 defpr/sysexec{@SD exch get exec}def/a" -"dddot{dup length 1 add string dup 0 46 put dup 3 -1 roll 1 exch putinterval}de" -"f/setlinewidth{dup/setlinewidth sysexec 1(setlinewidth)prcmd}def/setlinecap 1 " -"defpr/setlinejoin 1 defpr/setmiterlimit 1 defpr/setdash{mark 3 1 roll 2 copy/s" -"etdash sysexec exch aload length 1 add -1 roll counttomark(setdash)prcmd pop}d" -"ef/@setpagedevice{pop<<>>/setpagedevice sysexec matrix setmatrix newpath 0(set" -"pagedevice)prcmd}def/@checknulldev{@GD/@nulldev get{currentpagedevice maxlengt" -"h 0 ne{@GD/@nulldev false put 0 1(setnulldevice)prcmd}if}if}def/prcolor{curren" -"tcolorspace @setcolorspace currentrgbcolor 3(setrgbcolor)prcmd}def/printgstate" -"{@dodraw @GD/@nulldev get not and{matrix currentmatrix aload pop 6(setmatrix)p" -"rcmd applyscalevals currentlinewidth 1(setlinewidth)prcmd currentlinecap 1(set" -"linecap)prcmd currentlinejoin 1(setlinejoin)prcmd currentmiterlimit 1(setmiter" -"limit)prcmd revision dup 952 lt{pop}{.currentblendmode .setblendmode 952 eq{.c" -"urrentopacityalpha .setopacityalpha .currentshapealpha .setshapealpha}{.curren" -"talphaisshape{1}{0}ifelse 1(setalphaisshape)prcmd .currentstrokeconstantalpha " -"1(setstrokeconstantalpha)prcmd .currentfillconstantalpha 1(setfillconstantalph" -"a)prcmd}ifelse}ifelse prcolor currentdash mark 3 1 roll exch aload length 1 ad" -"d -1 roll counttomark(setdash)prcmd pop}if}def/strconcat{exch dup length 2 ind" -"ex length add string dup dup 4 2 roll copy length 4 -1 roll putinterval}def/se" -"tgstate{/setgstate sysexec printgstate}def/save{@UD begin/@saveID vmstatus pop" -" pop def end :save @saveID 1(save)prcmd}def/restore{:restore @checknulldev pri" -"ntgstate @UD/@saveID known{@UD begin @saveID end}{0}ifelse 1(restore)prcmd}def" -"/gsave 0 defpr/grestore{:grestore @checknulldev printgstate 0(grestore)prcmd}d" -"ef/grestoreall{:grestoreall @checknulldev setstate 0(grestoreall)prcmd}def/rot" -"ate{dup type/arraytype ne @dodraw and{dup 1(rotate)prcmd}if/rotate sysexec app" -"lyscalevals}def/scale{dup type/arraytype ne @dodraw and{2 copy 2(scale)prcmd}i" -"f/scale sysexec applyscalevals}def/translate{dup type/arraytype ne @dodraw and" -"{2 copy 2(translate)prcmd}if/translate sysexec}def/setmatrix{dup/setmatrix sys" -"exec @dodraw{aload pop 6(setmatrix)prcmd applyscalevals}{pop}ifelse}def/initma" -"trix{matrix setmatrix}def/concat{matrix currentmatrix matrix concatmatrix setm" -"atrix}def/makepattern{gsave<>begin<>cop" -"y mx/makepattern sysexec dup begin PatternType 2 lt{PatternType @patcnt BBox a" -"load pop XStep YStep PaintType mx aload pop 15(makepattern)prcmd :newpath matr" -"ix setmatrix dup PaintProc 0 1(makepattern)prcmd @GD/@patcnt @patcnt 1 add put" -"}if end end grestore}def/setpattern{dup begin PatternType end 1 eq{begin Paint" -"Type 1 eq{XUID aload pop exch pop 1}{:gsave[currentcolorspace aload length -1 " -"roll pop]/setcolorspace sysexec/setcolor sysexec XUID aload pop exch pop curre" -"ntrgbcolor :grestore 4}ifelse(setpattern)prcmd currentcolorspace 0 get/Pattern" -" ne{[/Pattern currentcolorspace]/setcolorspace sysexec}if currentcolorspace @s" -"etcolorspace end}{/setpattern sysexec}ifelse}def/setcolor{dup type/dicttype eq" -"{setpattern}{/setcolor sysexec/currentrgbcolor sysexec setrgbcolor}ifelse}def/" -"setcolorspace{dup/setcolorspace sysexec @setcolorspace}def/@setcolorspace{dup " -"type/arraytype eq{0 get}if/Pattern eq{1}{0}ifelse 1(setcolorspace)prcmd}def/se" -"tgray 1 defpr/setcmykcolor 4 defpr/sethsbcolor 3 defpr/setrgbcolor 3 defpr/.se" -"talphaisshape{@SD/.setalphaisshape known{dup/.setalphaisshape sysexec}if{1}{0}" -"ifelse 1(setalphaisshape)prcmd}bind def/.setfillconstantalpha{@SD/.setfillcons" -"tantalpha known{dup/.setfillconstantalpha sysexec}if 1(setfillconstantalpha)pr" -"cmd}bind def/.setstrokeconstantalpha{@SD/.setstrokeconstantalpha known{dup/.se" -"tstrokeconstantalpha sysexec}if 1(setstrokeconstantalpha)prcmd}bind def/.setop" -"acityalpha{false .setalphaisshape dup .setfillconstantalpha .setstrokeconstant" -"alpha}bind def/.setshapealpha{true .setalphaisshape dup .setfillconstantalpha " -".setstrokeconstantalpha}bind def/.setblendmode{dup/.setblendmode sysexec<>exch get 1(setblendmod" -"e)prcmd}def/@pdfpagecount{(r)file runpdfbegin pdfpagecount runpdfend}def/@pdfp" -"agebox{(r)file runpdfbegin dup dup 1 lt exch pdfpagecount gt or{pop}{pdfgetpag" -"e/MediaBox pget pop aload pop}ifelse runpdfend}def DELAYBIND{.bindnow}if "; +"t{@SD/.setblendmode{pop}put}if @SD/prseq{[exch 1 add 1 roll]{=only( )print}for" +"all(\\n)print}put @SD/prcmd{( )exch(\\ndvi.)3{print}repeat prseq}put @SD/cvxal" +"l{{cvx}forall}put @SD/defpr{[exch/copy cvx @SD 4 index[/get/exec]cvxall 5 inde" +"x 3 index dup length string cvs/prcmd cvx]cvx bind def}put @SD/querypos{{curre" +"ntpoint}stopped{$error/newerror false put}{2(querypos)prcmd}ifelse}put @SD/app" +"lyscalevals{1 0 dtransform exch dup mul exch dup mul add sqrt 0 1 dtransform e" +"xch 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(closepath)prcmd}pathforall" +"}put @SD/nulldevice{@GD/@nulldev true put :nulldevice 1 1(setnulldevice)prcmd}" +"put @SD/charpath{/@dodraw false store :charpath/@dodraw true store}put @SD/str" +"ingwidth{/@dodraw false store :stringwidth/@dodraw true store}put @SD/show{@do" +"draw @GD/@nulldev get not and{dup :gsave currentpoint 2{50 mul exch}repeat :ne" +"wpath moveto 50 50/scale sysexec true charpath fill :grestore/@dodraw false st" +"ore :show/@dodraw true store}{:show}ifelse}put @SD/varxyshow{dup 0 ge{<>begin 0 chr l" +"ength str length 1 sub{str exch chr length getinterval/chr exch store :gsave c" +"hr show :grestore currentpoint prc moveto/idx idx 1 add store}for end}{pop pop" +" show}ifelse}put @SD/xyshow{dup dup type/arraytype eq exch length 0 gt and{dup" +" length 2 idiv 2 index length exch idiv}{-1}ifelse{exch arr idx 2 mul get add " +"exch arr idx 2 mul 1 add get add}exch varxyshow}put @SD/xshow{dup dup type/arr" +"aytype eq exch length 0 gt and{dup length 2 index length exch idiv}{-1}ifelse{" +"exch arr idx get add exch}exch varxyshow}put @SD/yshow{dup dup type/arraytype " +"eq exch length 0 gt and{dup length 2 index length exch idiv}{-1}ifelse{arr idx" +" get add}exch varxyshow}put @SD/awidthshow{{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 i" +"ndex rmoveto}exch cshow 5{pop}repeat}put @SD/widthshow{0 0 3 -1 roll awidthsho" +"w}put @SD/ashow{0 0 0 6 3 roll awidthshow}put @SD/newpath{:newpath 1 1(newpath" +")prcmd}put @SD/stroke{@dodraw @GD/@nulldev get not and{prcolor 0 1(newpath)prc" +"md prpath 0(stroke)prcmd :newpath}{:stroke}ifelse}put @SD/fill{@dodraw @GD/@nu" +"lldev get not and{prcolor 0 1(newpath)prcmd prpath 0(fill)prcmd :newpath}{:fil" +"l}ifelse}put @SD/eofill{@dodraw @GD/@nulldev get not and{prcolor 0 1(newpath)p" +"rcmd prpath 0(eofill)prcmd :newpath}{:eofill}ifelse}put/.fillstroke{:gsave fil" +"l :grestore .swapcolors stroke .swapcolors}bind def/.eofillstroke{:gsave eofil" +"l :grestore .swapcolors stroke .swapcolors}bind def @SD/clip{:clip @GD/@nullde" +"v get not{0 1(newpath)prcmd prpath 0(clip)prcmd}if}put @SD/eoclip{:eoclip @GD/" +"@nulldev get not{0 1(newpath)prcmd prpath 0(eoclip)prcmd}if}put @SD/shfill{beg" +"in currentdict/ShadingType known currentdict/ColorSpace known and currentdict/" +"DataSource known and currentdict/Function known not and ShadingType 4 ge{DataS" +"ource type/arraytype eq{<>begin currentdict Colo" +"rSpace known{ShadingType ColorSpace load bgknown{1 Background aload pop}{0}ife" +"lse bbknown{1 BBox aload pop}{0}ifelse ShadingType 5 eq{VerticesPerRow}if Data" +"Source aload length 4 add bgknown{ColorSpace load add}if bbknown{4 add}if Shad" +"ingType 5 eq{1 add}if(shfill)prcmd}if end}if}if end}put @SD/image{dup type/dic" +"ttype eq{dup}{<>}ifelse @execimg" +"}put @SD/colorimage{<<2 index{/Width 2 index 8 add index/Height 4 index 9 add " +"index}{/Width 8 index/Height 9 index}ifelse/colorimg true>>@execimg}put/@imgba" +"se(./)def/@imgdevice(jpeg)def/@execimg{@GD/@imgcnt 2 copy .knownget{1 add}{1}i" +"felse put begin<>begin @imgdevice(png)ne @imgdevice(jpeg)ne and{@" +"imgdevice cvn}{colordev{ispng{/png16m}{/jpeg}ifelse}{ispng{/pnggray}{/jpeggray" +"}ifelse}ifelse}ifelse dup devicedict exch known{:gsave/imgdev exch finddevice " +"def mark/OutputFile @imgbase imgid 20 string cvs strconcat suffix strconcat/Pa" +"geSize[Width Height]/UseFastColor true ispng{@imgdevice(pngmonod)eq{/MinFeatur" +"eSize where{pop/MinFeatureSize MinFeatureSize}if}if}{/JPEGQ where{pop/JPEGQ JP" +"EGQ}if}ifelse imgdev putdeviceprops setdevice[Width 0 0 Height neg 0 Height]/s" +"etmatrix sysexec colorimg{:colorimage}{:image}ifelse/copypage sysexec mark/Out" +"putFile()imgdev putdeviceprops pop :grestore imgid Width Height 3(image)prcmd}" +"{pop colorimg{:colorimage}{:image}ifelse}ifelse end end}def/@rect{4 -2 roll mo" +"veto 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 rl" +"ineto 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 eq{aload l" +"ength 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 setg" +"lobal @SD readonly pop/initclip 0 defpr/clippath 0 defpr/sysexec{@SD exch get " +"exec}def/adddot{dup length 1 add string dup 0 46 put dup 3 -1 roll 1 exch puti" +"nterval}def/setlinewidth{dup/setlinewidth sysexec 1(setlinewidth)prcmd}def/set" +"linecap 1 defpr/setlinejoin 1 defpr/setmiterlimit 1 defpr/setdash{mark 3 1 rol" +"l 2 copy/setdash sysexec exch aload length 1 add -1 roll counttomark(setdash)p" +"rcmd pop}def/@setpagedevice{pop<<>>/setpagedevice sysexec matrix setmatrix new" +"path 0(setpagedevice)prcmd}def/@checknulldev{@GD/@nulldev get{currentpagedevic" +"e maxlength 0 ne{@GD/@nulldev false put 0 1(setnulldevice)prcmd}if}if}def/prco" +"lor{currentcolorspace @setcolorspace currentrgbcolor 3(setrgbcolor)prcmd}def/p" +"rintgstate{@dodraw @GD/@nulldev get not and{matrix currentmatrix aload pop 6(s" +"etmatrix)prcmd applyscalevals currentlinewidth 1(setlinewidth)prcmd currentlin" +"ecap 1(setlinecap)prcmd currentlinejoin 1(setlinejoin)prcmd currentmiterlimit " +"1(setmiterlimit)prcmd revision dup 952 lt{pop}{.currentblendmode .setblendmode" +" 952 eq{.currentopacityalpha .setopacityalpha .currentshapealpha .setshapealph" +"a}{.currentalphaisshape{1}{0}ifelse 1(setalphaisshape)prcmd .currentstrokecons" +"tantalpha 1(setstrokeconstantalpha)prcmd .currentfillconstantalpha 1(setfillco" +"nstantalpha)prcmd}ifelse}ifelse prcolor currentdash mark 3 1 roll exch aload l" +"ength 1 add -1 roll counttomark(setdash)prcmd pop}if}def/strconcat{exch dup le" +"ngth 2 index length add string dup dup 4 2 roll copy length 4 -1 roll putinter" +"val}def/setgstate{/setgstate sysexec printgstate}def/save{@UD begin/@saveID vm" +"status pop pop def end :save @saveID 1(save)prcmd}def/restore{:restore @checkn" +"ulldev printgstate @UD/@saveID known{@UD begin @saveID end}{0}ifelse 1(restore" +")prcmd}def/gsave 0 defpr/grestore{:grestore @checknulldev printgstate 0(gresto" +"re)prcmd}def/grestoreall{:grestoreall @checknulldev setstate 0(grestoreall)prc" +"md}def/rotate{dup type/arraytype ne @dodraw and{dup 1(rotate)prcmd}if/rotate s" +"ysexec applyscalevals}def/scale{dup type/arraytype ne @dodraw and{2 copy 2(sca" +"le)prcmd}if/scale sysexec applyscalevals}def/translate{dup type/arraytype ne @" +"dodraw and{2 copy 2(translate)prcmd}if/translate sysexec}def/setmatrix{dup/set" +"matrix sysexec @dodraw{aload pop 6(setmatrix)prcmd applyscalevals}{pop}ifelse}" +"def/initmatrix{matrix setmatrix}def/concat{matrix currentmatrix matrix concatm" +"atrix setmatrix}def/makepattern{gsave<>begin<>copy mx/makepattern sysexec dup begin PatternType 2 lt{PatternType @pat" +"cnt BBox aload pop XStep YStep PaintType mx aload pop 15(makepattern)prcmd :ne" +"wpath matrix setmatrix dup PaintProc 0 1(makepattern)prcmd @GD/@patcnt @patcnt" +" 1 add put}if end end grestore}def/setpattern{dup begin PatternType end 1 eq{b" +"egin PaintType 1 eq{XUID aload pop exch pop 1}{:gsave[currentcolorspace aload " +"length -1 roll pop]/setcolorspace sysexec/setcolor sysexec XUID aload pop exch" +" pop currentrgbcolor :grestore 4}ifelse(setpattern)prcmd currentcolorspace 0 g" +"et/Pattern ne{[/Pattern currentcolorspace]/setcolorspace sysexec}if currentcol" +"orspace @setcolorspace end}{/setpattern sysexec}ifelse}def/setcolor{dup type/d" +"icttype eq{setpattern}{/setcolor sysexec/currentrgbcolor sysexec setrgbcolor}i" +"felse}def/setcolorspace{dup/setcolorspace sysexec @setcolorspace}def/@setcolor" +"space{dup type/arraytype eq{0 get}if/Pattern eq{1}{0}ifelse 1(setcolorspace)pr" +"cmd}def/setgray 1 defpr/setcmykcolor 4 defpr/sethsbcolor 3 defpr/setrgbcolor 3" +" defpr/.setalphaisshape{@SD/.setalphaisshape known{dup/.setalphaisshape sysexe" +"c}if{1}{0}ifelse 1(setalphaisshape)prcmd}bind def/.setfillconstantalpha{@SD/.s" +"etfillconstantalpha known{dup/.setfillconstantalpha sysexec}if 1(setfillconsta" +"ntalpha)prcmd}bind def/.setstrokeconstantalpha{@SD/.setstrokeconstantalpha kno" +"wn{dup/.setstrokeconstantalpha sysexec}if 1(setstrokeconstantalpha)prcmd}bind " +"def/.setopacityalpha{false .setalphaisshape dup .setfillconstantalpha .setstro" +"keconstantalpha}bind def/.setshapealpha{true .setalphaisshape dup .setfillcons" +"tantalpha .setstrokeconstantalpha}bind def/.setblendmode{dup/.setblendmode sys" +"exec<>exch get 1(s" +"etblendmode)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{.bindno" +"w}if "; diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/ttf/Makefile.am b/Build/source/texk/dvisvgm/dvisvgm-src/src/ttf/Makefile.am index 6275714ff19..60883f64cc2 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/ttf/Makefile.am +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/ttf/Makefile.am @@ -22,5 +22,4 @@ include ../../libs/defs.am AM_CXXFLAGS = \ -I$(dvisvgm_srcdir)/libs/boost \ -I$(dvisvgm_srcdir)/libs/variant/include \ - $(ZLIB_INCLUDES) \ $(BROTLI_CFLAGS) $(WOFF2_CFLAGS) diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/ttf/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/src/ttf/Makefile.in index 8312cc60d6e..e36f65ca31d 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/ttf/Makefile.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/ttf/Makefile.in @@ -90,6 +90,8 @@ build_triplet = @build@ host_triplet = @host@ @HAVE_BROTLI_FALSE@am__append_1 = -I$(dvisvgm_srcdir)/libs/brotli/include @HAVE_BROTLI_FALSE@am__append_2 = ../libs/brotli/libbrotli.a +# POTRACE_CFLAGS = -I$(dvisvgm_srcdir)/libs/potrace +# POTRACE_LIBS = ../libs/potrace/libpotrace.a @HAVE_WOFF2_FALSE@am__append_3 = -I$(dvisvgm_srcdir)/libs/woff2/include @HAVE_WOFF2_FALSE@am__append_4 = ../libs/woff2/libwoff2.a subdir = dvisvgm-src/src/ttf @@ -388,15 +390,12 @@ libttf_la_SOURCES = \ VheaTable.hpp VheaTable.cpp \ VmtxTable.hpp VmtxTable.cpp -@HAVE_POTRACE_FALSE@POTRACE_CFLAGS = $(POTRACE_INCLUDES) -# @TEXLIVE_BUILD_TRUE@POTRACE_CFLAGS = $(POTRACE_INCLUDES) @HAVE_XXHASH_FALSE@XXHASH_CFLAGS = -I$(dvisvgm_srcdir)/libs/xxHash @HAVE_XXHASH_FALSE@XXHASH_LIBS = ../libs/xxHash/libxxhash.a AM_CXXFLAGS = \ -I$(dvisvgm_srcdir)/libs/boost \ -I$(dvisvgm_srcdir)/libs/variant/include \ - $(ZLIB_INCLUDES) \ $(BROTLI_CFLAGS) $(WOFF2_CFLAGS) all: all-am diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/tests/Makefile.am b/Build/source/texk/dvisvgm/dvisvgm-src/tests/Makefile.am index 81d28d2622c..0811c94312d 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/tests/Makefile.am +++ b/Build/source/texk/dvisvgm/dvisvgm-src/tests/Makefile.am @@ -396,12 +396,6 @@ VectorIteratorTest_SOURCES = VectorIteratorTest.cpp testutil.hpp VectorIteratorTest_CPPFLAGS = -I$(dvisvgm_srcdir)/tests/gtest/include $(LIBS_CFLAGS) VectorIteratorTest_LDADD = $(TESTLIBS) -TESTS += VectorStreamTest -check_PROGRAMS += VectorStreamTest -VectorStreamTest_SOURCES = VectorStreamTest.cpp testutil.hpp -VectorStreamTest_CPPFLAGS = -I$(dvisvgm_srcdir)/tests/gtest/include $(LIBS_CFLAGS) -VectorStreamTest_LDADD = $(TESTLIBS) - TESTS += XMLNodeTest check_PROGRAMS += XMLNodeTest XMLNodeTest_SOURCES = XMLNodeTest.cpp testutil.hpp diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/tests/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/tests/Makefile.in index 2222a330a5c..99438fe4d2d 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/tests/Makefile.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/tests/Makefile.in @@ -120,8 +120,7 @@ TESTS = hashcheck$(EXEEXT) BezierTest$(EXEEXT) BitmapTest$(EXEEXT) \ ToUnicodeMapTest$(EXEEXT) TpicSpecialTest$(EXEEXT) \ TriangularPatchTest$(EXEEXT) UnicodeTest$(EXEEXT) \ UtilityTest$(EXEEXT) VectorIteratorTest$(EXEEXT) \ - VectorStreamTest$(EXEEXT) XMLNodeTest$(EXEEXT) \ - XMLStringTest$(EXEEXT) check-conv + XMLNodeTest$(EXEEXT) XMLStringTest$(EXEEXT) check-conv check_PROGRAMS = hashcheck$(EXEEXT) BezierTest$(EXEEXT) \ BitmapTest$(EXEEXT) BoundingBoxTest$(EXEEXT) \ CalculatorTest$(EXEEXT) CMapManagerTest$(EXEEXT) \ @@ -151,8 +150,7 @@ check_PROGRAMS = hashcheck$(EXEEXT) BezierTest$(EXEEXT) \ ToUnicodeMapTest$(EXEEXT) TpicSpecialTest$(EXEEXT) \ TriangularPatchTest$(EXEEXT) UnicodeTest$(EXEEXT) \ UtilityTest$(EXEEXT) VectorIteratorTest$(EXEEXT) \ - VectorStreamTest$(EXEEXT) XMLNodeTest$(EXEEXT) \ - XMLStringTest$(EXEEXT) + XMLNodeTest$(EXEEXT) XMLStringTest$(EXEEXT) subdir = tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_ac_append_to_file.m4 \ @@ -396,10 +394,6 @@ am_VectorIteratorTest_OBJECTS = \ VectorIteratorTest-VectorIteratorTest.$(OBJEXT) VectorIteratorTest_OBJECTS = $(am_VectorIteratorTest_OBJECTS) VectorIteratorTest_DEPENDENCIES = $(am__DEPENDENCIES_5) -am_VectorStreamTest_OBJECTS = \ - VectorStreamTest-VectorStreamTest.$(OBJEXT) -VectorStreamTest_OBJECTS = $(am_VectorStreamTest_OBJECTS) -VectorStreamTest_DEPENDENCIES = $(am__DEPENDENCIES_5) am_XMLNodeTest_OBJECTS = XMLNodeTest-XMLNodeTest.$(OBJEXT) XMLNodeTest_OBJECTS = $(am_XMLNodeTest_OBJECTS) XMLNodeTest_DEPENDENCIES = $(am__DEPENDENCIES_5) @@ -482,7 +476,6 @@ am__depfiles_remade = ./$(DEPDIR)/BezierTest-BezierTest.Po \ ./$(DEPDIR)/UnicodeTest-UnicodeTest.Po \ ./$(DEPDIR)/UtilityTest-UtilityTest.Po \ ./$(DEPDIR)/VectorIteratorTest-VectorIteratorTest.Po \ - ./$(DEPDIR)/VectorStreamTest-VectorStreamTest.Po \ ./$(DEPDIR)/XMLNodeTest-XMLNodeTest.Po \ ./$(DEPDIR)/XMLStringTest-XMLStringTest.Po \ ./$(DEPDIR)/hashcheck-hashcheck.Po \ @@ -555,9 +548,8 @@ SOURCES = $(libgtest_la_SOURCES) $(BezierTest_SOURCES) \ $(TensorProductPatchTest_SOURCES) $(ToUnicodeMapTest_SOURCES) \ $(TpicSpecialTest_SOURCES) $(TriangularPatchTest_SOURCES) \ $(UnicodeTest_SOURCES) $(UtilityTest_SOURCES) \ - $(VectorIteratorTest_SOURCES) $(VectorStreamTest_SOURCES) \ - $(XMLNodeTest_SOURCES) $(XMLStringTest_SOURCES) \ - $(nodist_hashcheck_SOURCES) + $(VectorIteratorTest_SOURCES) $(XMLNodeTest_SOURCES) \ + $(XMLStringTest_SOURCES) $(nodist_hashcheck_SOURCES) DIST_SOURCES = $(libgtest_la_SOURCES) $(BezierTest_SOURCES) \ $(BitmapTest_SOURCES) $(BoundingBoxTest_SOURCES) \ $(CMapManagerTest_SOURCES) $(CMapReaderTest_SOURCES) \ @@ -588,8 +580,8 @@ DIST_SOURCES = $(libgtest_la_SOURCES) $(BezierTest_SOURCES) \ $(TensorProductPatchTest_SOURCES) $(ToUnicodeMapTest_SOURCES) \ $(TpicSpecialTest_SOURCES) $(TriangularPatchTest_SOURCES) \ $(UnicodeTest_SOURCES) $(UtilityTest_SOURCES) \ - $(VectorIteratorTest_SOURCES) $(VectorStreamTest_SOURCES) \ - $(XMLNodeTest_SOURCES) $(XMLStringTest_SOURCES) + $(VectorIteratorTest_SOURCES) $(XMLNodeTest_SOURCES) \ + $(XMLStringTest_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ @@ -1031,8 +1023,9 @@ EXTRA_DIST = gtest/LICENSE gtest/include gtest/src/gtest.cc \ gtest/src/gtest-printers.cc gtest/src/gtest-test-part.cc \ gtest/src/gtest-typed-test.cc check-conv genhashcheck.py \ normalize.xsl -@HAVE_POTRACE_FALSE@POTRACE_CFLAGS = -I$(dvisvgm_srcdir)/libs/potrace -@HAVE_POTRACE_FALSE@POTRACE_LIBS = ../libs/potrace/libpotrace.a +@HAVE_POTRACE_FALSE@@TEXLIVE_BUILD_FALSE@POTRACE_CFLAGS = -I$(dvisvgm_srcdir)/libs/potrace +@TEXLIVE_BUILD_TRUE@POTRACE_CFLAGS = $(POTRACE_INCLUDES) +@HAVE_POTRACE_FALSE@@TEXLIVE_BUILD_FALSE@POTRACE_LIBS = ../libs/potrace/libpotrace.a @HAVE_XXHASH_FALSE@XXHASH_CFLAGS = -I$(dvisvgm_srcdir)/libs/xxHash @HAVE_XXHASH_FALSE@XXHASH_LIBS = ../libs/xxHash/libxxhash.a LIBS_CFLAGS = $(XXHASH_CFLAGS) -I$(dvisvgm_srcdir)/libs/md5 @@ -1222,9 +1215,6 @@ UtilityTest_LDADD = $(TESTLIBS) VectorIteratorTest_SOURCES = VectorIteratorTest.cpp testutil.hpp VectorIteratorTest_CPPFLAGS = -I$(dvisvgm_srcdir)/tests/gtest/include $(LIBS_CFLAGS) VectorIteratorTest_LDADD = $(TESTLIBS) -VectorStreamTest_SOURCES = VectorStreamTest.cpp testutil.hpp -VectorStreamTest_CPPFLAGS = -I$(dvisvgm_srcdir)/tests/gtest/include $(LIBS_CFLAGS) -VectorStreamTest_LDADD = $(TESTLIBS) XMLNodeTest_SOURCES = XMLNodeTest.cpp testutil.hpp XMLNodeTest_CPPFLAGS = -I$(dvisvgm_srcdir)/tests/gtest/include $(LIBS_CFLAGS) XMLNodeTest_LDADD = $(TESTLIBS) @@ -1530,10 +1520,6 @@ VectorIteratorTest$(EXEEXT): $(VectorIteratorTest_OBJECTS) $(VectorIteratorTest_ @rm -f VectorIteratorTest$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(VectorIteratorTest_OBJECTS) $(VectorIteratorTest_LDADD) $(LIBS) -VectorStreamTest$(EXEEXT): $(VectorStreamTest_OBJECTS) $(VectorStreamTest_DEPENDENCIES) $(EXTRA_VectorStreamTest_DEPENDENCIES) - @rm -f VectorStreamTest$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(VectorStreamTest_OBJECTS) $(VectorStreamTest_LDADD) $(LIBS) - XMLNodeTest$(EXEEXT): $(XMLNodeTest_OBJECTS) $(XMLNodeTest_DEPENDENCIES) $(EXTRA_XMLNodeTest_DEPENDENCIES) @rm -f XMLNodeTest$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(XMLNodeTest_OBJECTS) $(XMLNodeTest_LDADD) $(LIBS) @@ -1612,7 +1598,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UnicodeTest-UnicodeTest.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UtilityTest-UtilityTest.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/VectorIteratorTest-VectorIteratorTest.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/VectorStreamTest-VectorStreamTest.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XMLNodeTest-XMLNodeTest.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XMLStringTest-XMLStringTest.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hashcheck-hashcheck.Po@am__quote@ # am--include-marker @@ -2475,20 +2460,6 @@ VectorIteratorTest-VectorIteratorTest.obj: VectorIteratorTest.cpp @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(VectorIteratorTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o VectorIteratorTest-VectorIteratorTest.obj `if test -f 'VectorIteratorTest.cpp'; then $(CYGPATH_W) 'VectorIteratorTest.cpp'; else $(CYGPATH_W) '$(srcdir)/VectorIteratorTest.cpp'; fi` -VectorStreamTest-VectorStreamTest.o: VectorStreamTest.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(VectorStreamTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT VectorStreamTest-VectorStreamTest.o -MD -MP -MF $(DEPDIR)/VectorStreamTest-VectorStreamTest.Tpo -c -o VectorStreamTest-VectorStreamTest.o `test -f 'VectorStreamTest.cpp' || echo '$(srcdir)/'`VectorStreamTest.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/VectorStreamTest-VectorStreamTest.Tpo $(DEPDIR)/VectorStreamTest-VectorStreamTest.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='VectorStreamTest.cpp' object='VectorStreamTest-VectorStreamTest.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(VectorStreamTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o VectorStreamTest-VectorStreamTest.o `test -f 'VectorStreamTest.cpp' || echo '$(srcdir)/'`VectorStreamTest.cpp - -VectorStreamTest-VectorStreamTest.obj: VectorStreamTest.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(VectorStreamTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT VectorStreamTest-VectorStreamTest.obj -MD -MP -MF $(DEPDIR)/VectorStreamTest-VectorStreamTest.Tpo -c -o VectorStreamTest-VectorStreamTest.obj `if test -f 'VectorStreamTest.cpp'; then $(CYGPATH_W) 'VectorStreamTest.cpp'; else $(CYGPATH_W) '$(srcdir)/VectorStreamTest.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/VectorStreamTest-VectorStreamTest.Tpo $(DEPDIR)/VectorStreamTest-VectorStreamTest.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='VectorStreamTest.cpp' object='VectorStreamTest-VectorStreamTest.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(VectorStreamTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o VectorStreamTest-VectorStreamTest.obj `if test -f 'VectorStreamTest.cpp'; then $(CYGPATH_W) 'VectorStreamTest.cpp'; else $(CYGPATH_W) '$(srcdir)/VectorStreamTest.cpp'; fi` - XMLNodeTest-XMLNodeTest.o: XMLNodeTest.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(XMLNodeTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XMLNodeTest-XMLNodeTest.o -MD -MP -MF $(DEPDIR)/XMLNodeTest-XMLNodeTest.Tpo -c -o XMLNodeTest-XMLNodeTest.o `test -f 'XMLNodeTest.cpp' || echo '$(srcdir)/'`XMLNodeTest.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/XMLNodeTest-XMLNodeTest.Tpo $(DEPDIR)/XMLNodeTest-XMLNodeTest.Po @@ -3215,13 +3186,6 @@ VectorIteratorTest.log: VectorIteratorTest$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -VectorStreamTest.log: VectorStreamTest$(EXEEXT) - @p='VectorStreamTest$(EXEEXT)'; \ - b='VectorStreamTest'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) XMLNodeTest.log: XMLNodeTest$(EXEEXT) @p='XMLNodeTest$(EXEEXT)'; \ b='XMLNodeTest'; \ @@ -3422,7 +3386,6 @@ distclean: distclean-recursive -rm -f ./$(DEPDIR)/UnicodeTest-UnicodeTest.Po -rm -f ./$(DEPDIR)/UtilityTest-UtilityTest.Po -rm -f ./$(DEPDIR)/VectorIteratorTest-VectorIteratorTest.Po - -rm -f ./$(DEPDIR)/VectorStreamTest-VectorStreamTest.Po -rm -f ./$(DEPDIR)/XMLNodeTest-XMLNodeTest.Po -rm -f ./$(DEPDIR)/XMLStringTest-XMLStringTest.Po -rm -f ./$(DEPDIR)/hashcheck-hashcheck.Po @@ -3531,7 +3494,6 @@ maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/UnicodeTest-UnicodeTest.Po -rm -f ./$(DEPDIR)/UtilityTest-UtilityTest.Po -rm -f ./$(DEPDIR)/VectorIteratorTest-VectorIteratorTest.Po - -rm -f ./$(DEPDIR)/VectorStreamTest-VectorStreamTest.Po -rm -f ./$(DEPDIR)/XMLNodeTest-XMLNodeTest.Po -rm -f ./$(DEPDIR)/XMLStringTest-XMLStringTest.Po -rm -f ./$(DEPDIR)/hashcheck-hashcheck.Po diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/tests/VectorStreamTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/tests/VectorStreamTest.cpp deleted file mode 100644 index 794336ec2d4..00000000000 --- a/Build/source/texk/dvisvgm/dvisvgm-src/tests/VectorStreamTest.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/************************************************************************* -** VectorStreamTest.cpp ** -** ** -** This file is part of dvisvgm -- a fast DVI to SVG converter ** -** Copyright (C) 2005-2024 Martin Gieseking ** -** ** -** This program is free software; you can redistribute it and/or ** -** modify it under the terms of the GNU General Public License as ** -** published by the Free Software Foundation; either version 3 of ** -** the License, or (at your option) any later version. ** -** ** -** This program is distributed in the hope that it will be useful, but ** -** WITHOUT ANY WARRANTY; without even the implied warranty of ** -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** -** GNU General Public License for more details. ** -** ** -** You should have received a copy of the GNU General Public License ** -** along with this program; if not, see . ** -*************************************************************************/ - -#include -#include -#include "VectorStream.hpp" - -using std::string; -using std::vector; - -TEST(VectorStreamTest, read1) { - const char *str = "abcdefghijklm\0nopqrstuvwxyz"; - vector vec(str, str+27); - VectorInputStream vs(vec); - for (unsigned count = 0; vs; count++) { - int c = vs.get(); - if (count < vec.size()) { - EXPECT_EQ(c, str[count]) << "count=" << count; - } - else { - EXPECT_EQ(c, -1); - } - } -} - - -TEST(VectorStreamTest, read2) { - vector vec; - VectorInputStream vs(vec); - EXPECT_EQ(vs.get(), -1); -} - - -TEST(VectorStreamTest, read3) { - vector vec; - vec.push_back(-2); - vec.push_back(-1); - vec.push_back(0); - vec.push_back(1); - VectorInputStream vs(vec); - EXPECT_EQ(vs.get(), 254); - EXPECT_EQ(vs.get(), 255); - EXPECT_EQ(vs.get(), 0); - EXPECT_EQ(vs.get(), 1); - EXPECT_EQ(vs.get(), -1); -} diff --git a/Build/source/texk/dvisvgm/tests/sample_v2-nf.svg b/Build/source/texk/dvisvgm/tests/sample_v2-nf.svg index d2f3b928926..deb3dcba386 100644 --- a/Build/source/texk/dvisvgm/tests/sample_v2-nf.svg +++ b/Build/source/texk/dvisvgm/tests/sample_v2-nf.svg @@ -1,5 +1,5 @@ - + diff --git a/Build/source/texk/dvisvgm/tests/sample_v2-wf.svg b/Build/source/texk/dvisvgm/tests/sample_v2-wf.svg index 40ea8b99425..a6452b182f1 100644 --- a/Build/source/texk/dvisvgm/tests/sample_v2-wf.svg +++ b/Build/source/texk/dvisvgm/tests/sample_v2-wf.svg @@ -1,5 +1,5 @@ - + diff --git a/Build/source/texk/dvisvgm/tests/sample_v3-nf.svg b/Build/source/texk/dvisvgm/tests/sample_v3-nf.svg index 7f21fed9074..7aabace829b 100644 --- a/Build/source/texk/dvisvgm/tests/sample_v3-nf.svg +++ b/Build/source/texk/dvisvgm/tests/sample_v3-nf.svg @@ -1,5 +1,5 @@ - + diff --git a/Build/source/texk/dvisvgm/tests/sample_v3-wf.svg b/Build/source/texk/dvisvgm/tests/sample_v3-wf.svg index d3251e8f7f5..6126ba4d286 100644 --- a/Build/source/texk/dvisvgm/tests/sample_v3-wf.svg +++ b/Build/source/texk/dvisvgm/tests/sample_v3-wf.svg @@ -1,5 +1,5 @@ - + diff --git a/Build/source/texk/dvisvgm/tests/upjf.svg b/Build/source/texk/dvisvgm/tests/upjf.svg index a80cd0dee3f..f455b195214 100644 --- a/Build/source/texk/dvisvgm/tests/upjf.svg +++ b/Build/source/texk/dvisvgm/tests/upjf.svg @@ -1,5 +1,5 @@ - + diff --git a/Build/source/texk/dvisvgm/tests/upjf1.svg b/Build/source/texk/dvisvgm/tests/upjf1.svg index d9fa80ddb89..1a0c5c8aecc 100644 --- a/Build/source/texk/dvisvgm/tests/upjf1.svg +++ b/Build/source/texk/dvisvgm/tests/upjf1.svg @@ -1,5 +1,5 @@ - + diff --git a/Build/source/texk/dvisvgm/version.ac b/Build/source/texk/dvisvgm/version.ac index a2a2ae3c425..7359265a853 100644 --- a/Build/source/texk/dvisvgm/version.ac +++ b/Build/source/texk/dvisvgm/version.ac @@ -9,4 +9,4 @@ dnl dnl -------------------------------------------------------- dnl dnl m4-include this file to define the current dvisvgm version -m4_define([dvisvgm_version], [3.2]) +m4_define([dvisvgm_version], [3.2.1]) -- cgit v1.2.3