summaryrefslogtreecommitdiff
path: root/Build
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-03-16 17:01:01 +0000
committerKarl Berry <karl@freefriends.org>2018-03-16 17:01:01 +0000
commit6bdf7e89f698c2bcf5c3d17bc130869b0637ad35 (patch)
tree5161ebbe8cf2cebc8a32715758be0e32d5ecf3a8 /Build
parente69e90912037ff24c42325a1b87022ceef0066cf (diff)
dvisvgm 2.3.4
git-svn-id: svn://tug.org/texlive/trunk@46983 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build')
-rw-r--r--Build/source/texk/dvisvgm/ChangeLog4
-rw-r--r--Build/source/texk/dvisvgm/TLpatches/TL-Changes3
-rwxr-xr-xBuild/source/texk/dvisvgm/configure22
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/ChangeLog3817
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/NEWS6
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/configure.ac4
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.16
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/Makefile.am6
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/Makefile.in17
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/constants.h19
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/context.h261
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/dictionary.h2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/platform.h436
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/transform.h80
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/version.h4
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references.c23
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references.h11
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references_hq.c151
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references_hq.h47
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references_inc.h20
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/bit_cost.c2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/bit_cost.h10
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/block_encoder_inc.h13
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/block_splitter.c5
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/block_splitter.h2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/block_splitter_inc.h22
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/brotli_bit_stream.c203
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/brotli_bit_stream.h52
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/cluster.c2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/cluster.h2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/command.h58
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/compress_fragment.c33
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/compress_fragment.h2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/compress_fragment_two_pass.c31
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/compress_fragment_two_pass.h2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/dictionary_hash.c2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/encode.c409
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/encoder_dict.c32
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/encoder_dict.h42
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/entropy_encode.c28
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/entropy_encode.h10
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/entropy_encode_static.h6
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/fast_log.h2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/find_match_length.h6
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash.h39
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_forgetful_chain_inc.h17
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_longest_match64_inc.h16
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_longest_match_inc.h16
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_longest_match_quickly_inc.h19
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_to_binary_tree_inc.h17
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/histogram.c15
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/histogram.h9
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/histogram_inc.h2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/literal_cost.c10
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/literal_cost.h4
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/memory.c21
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/memory.h26
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/metablock.c42
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/metablock.h9
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/metablock_inc.h2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/params.h44
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/prefix.h7
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/quality.h33
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/ringbuffer.h26
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/static_dict.c86
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/static_dict.h7
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/static_dict_lut.h2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/utf8_util.c40
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/utf8_util.h2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/write_bits.h33
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/include/brotli/decode.h17
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/include/brotli/encode.h20
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/include/brotli/port.h80
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/src/CLCommandLine.cpp2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/src/EmSpecialHandler.hpp7
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/src/MiKTeXCom.cpp1
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/src/RangeMap.cpp8
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/src/XMLDocument.hpp3
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/src/XMLNode.cpp5
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/src/XMLNode.hpp4
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/src/dvisvgm.cpp7
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/src/options.xml20
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/src/version.hpp2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/tests/data/Makefile.am1
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/tests/data/Makefile.in1
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/tests/data/cmr10.pfbbin0 -> 35752 bytes
-rw-r--r--Build/source/texk/dvisvgm/version.ac2
87 files changed, 3828 insertions, 2811 deletions
diff --git a/Build/source/texk/dvisvgm/ChangeLog b/Build/source/texk/dvisvgm/ChangeLog
index 6d8d759b6ce..ec0339c4873 100644
--- a/Build/source/texk/dvisvgm/ChangeLog
+++ b/Build/source/texk/dvisvgm/ChangeLog
@@ -1,3 +1,7 @@
+2018-03-16 Karl Berry <karl@freefriends.org>
+
+ * Import 2.3.4.
+
2018-03-11 Karl Berry <karl@tug.org>
* configure.ac (HAVE_LIBGS): find libgs for non-native-tl builds.
diff --git a/Build/source/texk/dvisvgm/TLpatches/TL-Changes b/Build/source/texk/dvisvgm/TLpatches/TL-Changes
index ce481d6e4f3..f06d9a687c1 100644
--- a/Build/source/texk/dvisvgm/TLpatches/TL-Changes
+++ b/Build/source/texk/dvisvgm/TLpatches/TL-Changes
@@ -26,7 +26,8 @@ svn rm `!!`
svn status | sed -n 's/^\!//p' # rerun, should be empty now
cd ..
-# patch to integrate into TL build:
+# patch to integrate into TL build (may well need adjusting):
patch -d dvisvgm-src -p1 <TLpatches/patch-08-makefiles
+# remake autostuff.
autoreconf
diff --git a/Build/source/texk/dvisvgm/configure b/Build/source/texk/dvisvgm/configure
index f09f39c0d54..b6969bae08a 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.69 for dvisvgm (TeX Live) 2.3.3.
+# Generated by GNU Autoconf 2.69 for dvisvgm (TeX Live) 2.3.4.
#
# Report bugs to <tex-k@tug.org>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='dvisvgm (TeX Live)'
PACKAGE_TARNAME='dvisvgm--tex-live-'
-PACKAGE_VERSION='2.3.3'
-PACKAGE_STRING='dvisvgm (TeX Live) 2.3.3'
+PACKAGE_VERSION='2.3.4'
+PACKAGE_STRING='dvisvgm (TeX Live) 2.3.4'
PACKAGE_BUGREPORT='tex-k@tug.org'
PACKAGE_URL=''
@@ -1375,7 +1375,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) 2.3.3 to adapt to many kinds of systems.
+\`configure' configures dvisvgm (TeX Live) 2.3.4 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1446,7 +1446,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of dvisvgm (TeX Live) 2.3.3:";;
+ short | recursive ) echo "Configuration of dvisvgm (TeX Live) 2.3.4:";;
esac
cat <<\_ACEOF
@@ -1581,7 +1581,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-dvisvgm (TeX Live) configure 2.3.3
+dvisvgm (TeX Live) configure 2.3.4
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2449,7 +2449,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 2.3.3, which was
+It was created by dvisvgm (TeX Live) $as_me 2.3.4, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -8188,7 +8188,7 @@ fi
# Define the identity of the package.
PACKAGE='dvisvgm--tex-live-'
- VERSION='2.3.3'
+ VERSION='2.3.4'
cat >>confdefs.h <<_ACEOF
@@ -20189,7 +20189,7 @@ Usage: $0 [OPTIONS]
Report bugs to <bug-libtool@gnu.org>."
lt_cl_version="\
-dvisvgm (TeX Live) config.lt 2.3.3
+dvisvgm (TeX Live) config.lt 2.3.4
configured by $0, generated by GNU Autoconf 2.69.
Copyright (C) 2011 Free Software Foundation, Inc.
@@ -23585,7 +23585,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 2.3.3, which was
+This file was extended by dvisvgm (TeX Live) $as_me 2.3.4, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -23651,7 +23651,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-dvisvgm (TeX Live) config.status 2.3.3
+dvisvgm (TeX Live) config.status 2.3.4
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/ChangeLog b/Build/source/texk/dvisvgm/dvisvgm-src/ChangeLog
index e87fb4b7185..def2eca2b78 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/ChangeLog
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/ChangeLog
@@ -1,11 +1,64 @@
-2018-01-12 Martin Gieseking <martin.gieseking@uos.de>
+2018-02-20 Martin Gieseking <martin.gieseking@uos.de>
+
+ * .appveyor.yml, .travis.yml, CMakeLists.txt, configure.ac, src/Doxyfile,
+ src/version.hpp:
+ set version to 2.3.3
+
+ * NEWS:
+ updated NEWS
+
+2018-02-19 Martin Gieseking <martin.gieseking@uos.de>
+
+ * src/PdfSpecialHandler.cpp, src/PdfSpecialHandler.hpp:
+ don't remove fontmap definitions before processing pdf:mapXXX specials
+
+ * src/FontEngine.cpp:
+ prevent creating string from nullptr
+
+2018-02-08 Martin Gieseking <martin.gieseking@uos.de>
+
+ * .appveyor.yml, .travis.yml, CMakeLists.txt, configure.ac, src/Doxyfile,
+ src/version.hpp:
+ set version to 2.3.2
+
+ * src/TpicSpecialHandler.cpp:
+ prevent potential division by 0
+
+ * src/dvisvgm.cpp:
+ prevent dereferencing nullptr (CACHE_PATH)
* NEWS:
updated NEWS
+2018-02-05 Martin Gieseking <martin.gieseking@uos.de>
+
+ * src/DVIActions.hpp, src/DVIReader.cpp, src/DVIReader.hpp,
+ src/DVIToSVG.cpp, src/DVIToSVG.hpp, src/DVIToSVGActions.cpp,
+ src/DVIToSVGActions.hpp:
+ don't update the SVG position after DVIActions::setChar()
+Otherwise, all
+ characters get an explicit x position assigned even if it's
+already
+ reached by applying the character's advance width.
+
+2018-01-15 Martin Gieseking <martin.gieseking@uos.de>
+
+ * configure.ac, src/Ghostscript.cpp:
+ prevent build error if GS development files are missing
+
+2018-01-14 Martin Gieseking <martin.gieseking@uos.de>
+
+ * src/RangeMap.cpp, src/RangeMap.hpp:
+ added iterator and some getters to RangeMap
+
+2018-01-12 Martin Gieseking <martin.gieseking@uos.de>
+
* .appveyor.yml:
AppVeyor: fixed download link of ttfautohint-dll
+ * NEWS:
+ updated NEWS
+
2018-01-11 Martin Gieseking <martin.gieseking@uos.de>
* doc/dvisvgm.txt.in:
@@ -34,12 +87,6 @@
2018-01-02 Martin Gieseking <martin.gieseking@uos.de>
- * src/Font.cpp:
- fixed char width of fonts slanted by style option (closes #82)
-
- * src/dvisvgm.cpp:
- avoid potential dangling string pointer to --fontmap argument
-
* Makefile.am, README, README.md, configure.ac, doc/Makefile.am,
doc/conf-dblatex-man.xsl, doc/conf-dblatex-pdf.xsl, doc/db2html.xsl,
doc/dvisvgm.txt.in, doc/tweak-db-article.xsl, doc/tweak-db-refentry.xsl,
@@ -151,26 +198,32 @@
tests/normalize.xsl, tests/testmain.cpp, update-copyright-year.sh:
updated year in copyright statements to 2018
-2017-12-31 Martin Gieseking <martin.gieseking@uos.de>
+ * src/dvisvgm.cpp:
+ avoid potential dangling string pointer to --fontmap argument
- * src/FontWriter.cpp:
- keep unhinted TTF if autohinting failed
+ * src/Font.cpp:
+ fixed char width of fonts slanted by style option (closes #82)
+
+2017-12-31 Martin Gieseking <martin.gieseking@uos.de>
* src/TTFAutohint.hpp:
don't declare member variables of TTFAutohint if ttfautohint is not
available
+ * src/FontWriter.cpp:
+ keep unhinted TTF if autohinting failed
+
2017-12-28 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, README, README.md:
- updated README and NEWS
+ * .appveyor.yml:
+ AppVeyor: download and install ttfautohint headers
* .appveyor.yml, .travis.yml, CMakeLists.txt, configure.ac, src/Doxyfile,
src/version.hpp:
set version to 2.3
- * .appveyor.yml:
- AppVeyor: download and install ttfautohint headers
+ * NEWS, README, README.md:
+ updated README and NEWS
2017-12-27 Martin Gieseking <martin.gieseking@uos.de>
@@ -212,14 +265,14 @@
2017-12-19 Martin Gieseking <martin.gieseking@uos.de>
+ * configure.ac:
+ configure: dropped check of outdated Ghostscript version
+
* configure.ac, src/Makefile.am:
configure: added --with-kpathsea to set the path of the kpathsea devel
files
closes #71
- * configure.ac:
- configure: dropped check of outdated Ghostscript version
-
2017-12-18 Martin Gieseking <martin.gieseking@uos.de>
* src/psdefs.cpp:
@@ -227,11 +280,6 @@ closes #71
2017-12-17 Martin Gieseking <martin.gieseking@uos.de>
- * CMakeLists.txt, cmake-config.h, cmake/FindTTFAutohint.cmake,
- configure.ac, src/CMakeLists.txt, src/FontWriter.cpp, src/Makefile.am,
- src/dvisvgm.cpp, tests/CMakeLists.txt:
- added optional support for ttfautohint
-
* libs/woff2/Makefile.am, libs/woff2/include/woff2/file.h,
src/CMakeLists.txt, src/FontWriter.cpp, src/FontWriter.hpp,
src/Makefile.am, src/StreamReader.hpp, src/StreamWriter.cpp,
@@ -239,6 +287,11 @@ closes #71
src/ffwrapper.c, src/ffwrapper.h, src/utility.cpp, src/utility.hpp:
replaced ff_sfd_to_woff() with TrueTypeFont::writeWOFF()
+ * CMakeLists.txt, cmake-config.h, cmake/FindTTFAutohint.cmake,
+ configure.ac, src/CMakeLists.txt, src/FontWriter.cpp, src/Makefile.am,
+ src/dvisvgm.cpp, tests/CMakeLists.txt:
+ added optional support for ttfautohint
+
2017-12-14 Martin Gieseking <martin.gieseking@uos.de>
* configure.ac, libs/CMakeLists.txt, libs/Makefile.am,
@@ -338,9 +391,6 @@ closes #71
2017-12-12 Martin Gieseking <martin.gieseking@uos.de>
- * tests/CMakeLists.txt:
- ctest: colorize test results and keep gtest colors
-
* libs/variant/include/mpark/config.hpp,
libs/variant/include/mpark/lib.hpp,
libs/variant/include/mpark/variant.hpp:
@@ -349,15 +399,18 @@ closes #71
fixes a build error
introduced with MSVC 19.12
-2017-12-11 Martin Gieseking <martin.gieseking@uos.de>
+ * tests/CMakeLists.txt:
+ ctest: colorize test results and keep gtest colors
- * NEWS:
- updated NEWS
+2017-12-11 Martin Gieseking <martin.gieseking@uos.de>
* .appveyor.yml, .travis.yml, CMakeLists.txt, configure.ac, src/Doxyfile,
src/version.hpp:
set version to 2.2.3
+ * NEWS:
+ updated NEWS
+
2017-11-29 Martin Gieseking <martin.gieseking@uos.de>
* libs/woff2/brotli/common/dictionary.h,
@@ -371,36 +424,35 @@ fixes a build error
2017-11-24 Martin Gieseking <martin.gieseking@uos.de>
- * src/DependencyGraph.hpp:
- simplified DependencyGraph::GraphNode
-
* src/BgColorSpecialHandler.cpp, src/BoundingBox.cpp, src/BoundingBox.hpp,
src/Color.cpp, src/PathClipper.cpp, src/SVGTree.cpp,
tests/BoundingBoxTest.cpp:
minor code cleanup and improvements
-2017-11-23 Martin Gieseking <martin.gieseking@uos.de>
+ * src/DependencyGraph.hpp:
+ simplified DependencyGraph::GraphNode
- * src/Makefile.am, tests/Makefile.am, tests/create-makefile:
- suppress warnings regarding 'mismatched tags'
- (class/struct)
-https://gcc.gnu.org/wiki/FAQ#Why_GCC_does_not_warn_for_mismatch_between_struct_and_class_.28-Wmismatched-tags.29_.3F
+2017-11-23 Martin Gieseking <martin.gieseking@uos.de>
- * src/DependencyGraph.hpp:
- fixed dangling pointer issue in DependencyGraph
+ * tests/TpicSpecialTest.cpp:
+ added missing initializers in TpicSpecialTest
* tests/EmSpecialTest.cpp:
added missing initializers in EmSpecialTest
- * tests/TpicSpecialTest.cpp:
- added missing initializers in TpicSpecialTest
+ * src/DependencyGraph.hpp:
+ fixed dangling pointer issue in DependencyGraph
+
+ * src/Makefile.am, tests/Makefile.am, tests/create-makefile:
+ suppress warnings regarding 'mismatched tags'
+ (class/struct)
+https://gcc.gnu.org/wiki/FAQ#Why_GCC_does_not_warn_for_mismatch_between_struct_and_class_.28-Wmismatched-tags.29_.3F
2017-11-22 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIReader.hpp, tests/CMakeLists.txt, tests/DVIReaderTest.cpp,
- tests/Makefile.am, tests/data/Makefile.am, tests/data/cmr10.pfb,
- tests/data/sample_v2.dvi, tests/data/sample_v3.dvi:
- added test for DVIReader
+ * src/PSPattern.cpp, src/SVGCharHandler.cpp, src/SVGTree.cpp,
+ src/TpicSpecialHandler.cpp:
+ removed redundant calls of std::move()
* src/Subfont.cpp, src/Subfont.hpp, tests/CMakeLists.txt,
tests/CMapManagerTest.cpp, tests/FileFinderTest.cpp,
@@ -409,9 +461,10 @@ https://gcc.gnu.org/wiki/FAQ#Why_GCC_does_not_warn_for_mismatch_between_struct_a
tests/testutil.hpp:
tests: moved common initializations to testmain.cpp
- * src/PSPattern.cpp, src/SVGCharHandler.cpp, src/SVGTree.cpp,
- src/TpicSpecialHandler.cpp:
- removed redundant calls of std::move()
+ * src/DVIReader.hpp, tests/CMakeLists.txt, tests/DVIReaderTest.cpp,
+ tests/Makefile.am, tests/data/Makefile.am, tests/data/cmr10.pfb,
+ tests/data/sample_v2.dvi, tests/data/sample_v3.dvi:
+ added test for DVIReader
2017-11-21 Martin Gieseking <martin.gieseking@uos.de>
@@ -420,35 +473,35 @@ https://gcc.gnu.org/wiki/FAQ#Why_GCC_does_not_warn_for_mismatch_between_struct_a
2017-11-20 Martin Gieseking <martin.gieseking@uos.de>
- * README.md:
- added donation badge to readme
-
* tests/CMapTest.cpp, tests/GFReaderTest.cpp, tests/JFMReaderTest.cpp,
tests/RangeMapTest.cpp, tests/TFMReaderTest.cpp,
tests/TensorProductPatchTest.cpp, tests/ToUnicodeMapTest.cpp,
tests/VectorStreamTest.cpp:
tests: few code improvements
+ * README.md:
+ added donation badge to readme
+
2017-11-17 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS:
- updated NEWS
+ * src/Font.cpp, src/Font.hpp:
+ prevent dangling pointers to font map entries (closes #79)
- * .appveyor.yml, .travis.yml, CMakeLists.txt, configure.ac, src/Doxyfile,
- src/version.hpp:
- set version to 2.2.2
+ * src/CMapManager.cpp, src/FileFinder.cpp, src/Font.cpp, src/Font.hpp,
+ src/FontEngine.cpp, src/FontManager.cpp, src/FontMap.cpp,
+ src/FontMap.hpp, src/Ghostscript.cpp, src/MiKTeXCom.cpp, src/XMLNode.cpp:
+ replaced null pointer constants with 'nullptr'
* src/XMLString.cpp, tests/TensorProductPatchTest.cpp,
tests/XMLStringTest.cpp:
avoid scientific notation when printing floats/doubles
- * src/CMapManager.cpp, src/FileFinder.cpp, src/Font.cpp, src/Font.hpp,
- src/FontEngine.cpp, src/FontManager.cpp, src/FontMap.cpp,
- src/FontMap.hpp, src/Ghostscript.cpp, src/MiKTeXCom.cpp, src/XMLNode.cpp:
- replaced null pointer constants with 'nullptr'
+ * .appveyor.yml, .travis.yml, CMakeLists.txt, configure.ac, src/Doxyfile,
+ src/version.hpp:
+ set version to 2.2.2
- * src/Font.cpp, src/Font.hpp:
- prevent dangling pointers to font map entries (closes #79)
+ * NEWS:
+ updated NEWS
2017-11-16 Martin Gieseking <martin.gieseking@uos.de>
@@ -457,19 +510,19 @@ https://gcc.gnu.org/wiki/FAQ#Why_GCC_does_not_warn_for_mismatch_between_struct_a
2017-11-13 Martin Gieseking <martin.gieseking@uos.de>
+ * .appveyor.yml, .travis.yml, CMakeLists.txt, configure.ac, src/Doxyfile,
+ src/version.hpp:
+ set version to 2.2.1
+
+ * NEWS, README.md:
+ updated NEWS and README
+
* libs/variant/include/mpark/lib.hpp,
libs/variant/include/mpark/variant.hpp:
updated mpark::variant to commit
ea542a0
https://github.com/mpark/variant/commit/ea542a0fef86fb8c1696238b95bdaddb8ff2337c
- * NEWS, README.md:
- updated NEWS and README
-
- * .appveyor.yml, .travis.yml, CMakeLists.txt, configure.ac, src/Doxyfile,
- src/version.hpp:
- set version to 2.2.1
-
2017-11-10 Martin Gieseking <martin.gieseking@uos.de>
* README, README.md, doc/dvisvgm.txt.in:
@@ -487,18 +540,15 @@ https://github.com/mpark/variant/commit/ea542a0fef86fb8c1696238b95bdaddb8ff2337c
2017-10-30 Martin Gieseking <martin.gieseking@uos.de>
- * src/PsSpecialHandler.hpp, src/psdefs.cpp, src/psdefs.ps,
- tests/PSInterpreterTest.cpp:
- call applyscalevals on every change of the CTM
-
* src/CMakeLists.txt, src/PsSpecialHandler.hpp, src/psdefs.cpp,
src/psdefs.ps, tests/PSInterpreterTest.cpp:
properly apply CTM to linewidth (closes #77)
-2017-10-27 Martin Gieseking <martin.gieseking@uos.de>
+ * src/PsSpecialHandler.hpp, src/psdefs.cpp, src/psdefs.ps,
+ tests/PSInterpreterTest.cpp:
+ call applyscalevals on every change of the CTM
- * src/DependencyGraph.hpp, src/SVGTree.cpp, tests/DependencyGraphTest.cpp:
- manage heap memory in DependencyGraph with unique_ptrs
+2017-10-27 Martin Gieseking <martin.gieseking@uos.de>
* src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, src/DVIToSVGActions.hpp,
src/DvisvgmSpecialHandler.cpp, src/EPSToSVG.cpp, src/EPSToSVG.hpp,
@@ -515,6 +565,9 @@ https://github.com/mpark/variant/commit/ea542a0fef86fb8c1696238b95bdaddb8ff2337c
which helps to ensure
proper ownership and simplifies deleting the corresponding objects
+ * src/DependencyGraph.hpp, src/SVGTree.cpp, tests/DependencyGraphTest.cpp:
+ manage heap memory in DependencyGraph with unique_ptrs
+
2017-10-21 Martin Gieseking <martin.gieseking@uos.de>
* libs/ff-woff/fontforge/macbinary.c:
@@ -527,19 +580,6 @@ which helps to ensure
2017-10-17 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, README, README.md:
- updated NEWS and README
-
- * .appveyor.yml, .travis.yml, CMakeLists.txt, configure.ac, src/Doxyfile,
- src/version.hpp:
- set version to 2.2
-
- * src/Length.hpp, src/PageSize.cpp:
- added user-defined literals for some length units
-
- * src/dvisvgm.cpp:
- fixed output of option --version
-
* src/CMapManager.cpp, src/CMapReader.cpp, src/CMapReader.hpp,
src/DVIActions.hpp, src/DVIToSVG.cpp, src/DVIToSVG.hpp,
src/DVIToSVGActions.hpp, src/FileFinder.cpp, src/Font.cpp, src/Font.hpp,
@@ -554,16 +594,29 @@ which helps to ensure
tests/ShadingPatchTest.cpp:
replaced several bare new/delete statements with unique pointers
+ * src/dvisvgm.cpp:
+ fixed output of option --version
+
+ * src/Length.hpp, src/PageSize.cpp:
+ added user-defined literals for some length units
+
+ * .appveyor.yml, .travis.yml, CMakeLists.txt, configure.ac, src/Doxyfile,
+ src/version.hpp:
+ set version to 2.2
+
+ * NEWS, README, README.md:
+ updated NEWS and README
+
2017-10-16 Martin Gieseking <martin.gieseking@uos.de>
- * src/Subfont.cpp:
- don't access unique_ptr after it has been moved
+ * src/FontWriter.cpp:
+ added missing #include of config.h
* src/Message.cpp:
check for '\0' at end of DVISVGM_COLORS
- * src/FontWriter.cpp:
- added missing #include of config.h
+ * src/Subfont.cpp:
+ don't access unique_ptr after it has been moved
2017-10-15 Martin Gieseking <martin.gieseking@uos.de>
@@ -572,9 +625,6 @@ which helps to ensure
2017-10-13 Martin Gieseking <martin.gieseking@uos.de>
- * .travis.yml:
- Travis: use gcc 4.9 rather than 4.8 to compile mpark::variant correctly
-
* AUTHORS, configure.ac, doc/dvisvgm.txt.in, libs/CMakeLists.txt,
libs/Makefile.am, libs/variant/CMakeLists.txt, libs/variant/LICENSE.md,
libs/variant/Makefile.am, libs/variant/include/mpark/config.hpp,
@@ -588,6 +638,9 @@ which helps to ensure
tests/SpecialManagerTest.cpp, tests/create-makefile:
added evaluation of PDF hyperlink specials (closes #74)
+ * .travis.yml:
+ Travis: use gcc 4.9 rather than 4.8 to compile mpark::variant correctly
+
2017-10-11 Martin Gieseking <martin.gieseking@uos.de>
* src/CMakeLists.txt, src/HtmlSpecialHandler.cpp,
@@ -624,14 +677,14 @@ which helps to ensure
2017-10-06 Martin Gieseking <martin.gieseking@uos.de>
- * src/Subfont.cpp, src/Subfont.hpp, src/utility.hpp:
- removed stream-based constructor of SubfontException
+ * src/CRC32.hpp, src/SpecialManager.hpp, src/Subfont.hpp, src/XMLNode.hpp:
+ use delete/default to remove/implement constructors
* src/XMLNode.cpp, src/XMLNode.hpp:
added move constructor to XMLElementNode
- * src/CRC32.hpp, src/SpecialManager.hpp, src/Subfont.hpp, src/XMLNode.hpp:
- use delete/default to remove/implement constructors
+ * src/Subfont.cpp, src/Subfont.hpp, src/utility.hpp:
+ removed stream-based constructor of SubfontException
2017-09-29 Martin Gieseking <martin.gieseking@uos.de>
@@ -643,17 +696,25 @@ which helps to ensure
2017-09-28 Martin Gieseking <martin.gieseking@uos.de>
+ * src/DVIToSVG.cpp, src/Length.hpp, src/PageSize.cpp, src/PageSize.hpp,
+ src/utility.hpp, tests/PageSizeTest.cpp:
+ use class Length in PageSize rather than plain numbers
+
* src/BoundingBox.cpp, src/BoundingBox.hpp, src/DVIToSVG.cpp,
src/utility.cpp, src/utility.hpp, tests/BoundingBoxTest.cpp,
tests/UtilityTest.cpp:
rewrite of BoundingBox::extractLengths()
- * src/DVIToSVG.cpp, src/Length.hpp, src/PageSize.cpp, src/PageSize.hpp,
- src/utility.hpp, tests/PageSizeTest.cpp:
- use class Length in PageSize rather than plain numbers
-
2017-09-21 Martin Gieseking <martin.gieseking@uos.de>
+ * src/TpicSpecialHandler.cpp:
+ use isxdigit() to check hex digits
+
+ * src/InputReader.cpp, src/InputReader.hpp, tests/CMakeLists.txt,
+ tests/Makefile.am, tests/SplittedCharInputBufferTest.cpp,
+ tests/StreamInputBufferTest.cpp, tests/StringMatcherTest.cpp:
+ use Knuth-Morris-Pratt algorithm to find a string in a stream
+
* libs/woff2/brotli/common/constants.h,
libs/woff2/brotli/common/dictionary.c,
libs/woff2/brotli/common/dictionary.h,
@@ -682,14 +743,6 @@ which helps to ensure
libs/woff2/brotli/include/brotli/encode.h:
updated Brotli to version 1.0.1
- * src/InputReader.cpp, src/InputReader.hpp, tests/CMakeLists.txt,
- tests/Makefile.am, tests/SplittedCharInputBufferTest.cpp,
- tests/StreamInputBufferTest.cpp, tests/StringMatcherTest.cpp:
- use Knuth-Morris-Pratt algorithm to find a string in a stream
-
- * src/TpicSpecialHandler.cpp:
- use isxdigit() to check hex digits
-
2017-09-19 Martin Gieseking <martin.gieseking@uos.de>
* transfer-cs:
@@ -702,6 +755,11 @@ which helps to ensure
2017-09-15 Martin Gieseking <martin.gieseking@uos.de>
+ * src/DVIToSVG.cpp, src/SpecialManager.cpp, src/SpecialManager.hpp,
+ src/utility.hpp, tests/CMakeLists.txt, tests/Makefile.am,
+ tests/SpecialManagerTest.cpp:
+ use smart pointers to allocate/deallocate SpecialHandlers
+
* src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.hpp,
src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.hpp,
src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.hpp,
@@ -716,19 +774,14 @@ which helps to ensure
tests/ColorSpecialTest.cpp, tests/PapersizeSpecialTest.cpp:
changed return value of SpecialHandler::prefixes() to std::vector
- * src/DVIToSVG.cpp, src/SpecialManager.cpp, src/SpecialManager.hpp,
- src/utility.hpp, tests/CMakeLists.txt, tests/Makefile.am,
- tests/SpecialManagerTest.cpp:
- use smart pointers to allocate/deallocate SpecialHandlers
-
2017-09-13 Martin Gieseking <martin.gieseking@uos.de>
- * tests/CMakeLists.txt:
- make name of Python script part of custom command
-
* tests/FileSystemTest.cpp:
close streams before removing crresponding files
+ * tests/CMakeLists.txt:
+ make name of Python script part of custom command
+
2017-09-12 Martin Gieseking <martin.gieseking@uos.de>
* tests/CMakeLists.txt:
@@ -741,13 +794,11 @@ which helps to ensure
2017-09-08 Martin Gieseking <martin.gieseking@uos.de>
- * libs/xxHash/xxhash.c, libs/xxHash/xxhash.h, libs/xxHash/xxhsum.c:
- updated xxhash to version 0.6.3
+ * src/DependencyGraph.hpp, src/SVGTree.cpp, tests/DependencyGraphTest.cpp:
+ DependencyGraph::getKeys(): return result, don't use reference parameter
- * src/FileFinder.cpp, src/FileFinder.hpp, tests/CMapManagerTest.cpp,
- tests/FileFinderTest.cpp, tests/FontManagerTest.cpp,
- tests/MapLineTest.cpp, tests/SubfontTest.cpp:
- init libkpathsea correctly in tests to prevent assertion failures
+ * src/FileFinder.cpp, src/Makefile.am:
+ added missing #include; added windows.hpp to Makefile.am
* tests/CMakeLists.txt, tests/Makefile.am, tests/create-makefile,
tests/gtest/CMakeLists.txt, tests/testmain.cpp:
@@ -755,48 +806,30 @@ which helps to ensure
tests
this is required to initialize kpathsea properly, for example
- * src/FileFinder.cpp, src/Makefile.am:
- added missing #include; added windows.hpp to Makefile.am
+ * src/FileFinder.cpp, src/FileFinder.hpp, tests/CMapManagerTest.cpp,
+ tests/FileFinderTest.cpp, tests/FontManagerTest.cpp,
+ tests/MapLineTest.cpp, tests/SubfontTest.cpp:
+ init libkpathsea correctly in tests to prevent assertion failures
- * src/DependencyGraph.hpp, src/SVGTree.cpp, tests/DependencyGraphTest.cpp:
- DependencyGraph::getKeys(): return result, don't use reference parameter
+ * libs/xxHash/xxhash.c, libs/xxHash/xxhash.h, libs/xxHash/xxhsum.c:
+ updated xxhash to version 0.6.3
2017-09-07 Martin Gieseking <martin.gieseking@uos.de>
- * doc/dvisvgm.txt.in, src/dvisvgm.cpp:
- added pdftex.map to default mapfiles
-
- * src/MapLine.cpp, tests/MapLineTest.cpp:
- treat prefix "<<" in a mapline as "<[" (skip second char)
-
- * src/GFReader.cpp:
- fixed incorrect integer type in GFReader; insert CharInfos with emplace
-
* tests/CMakeLists.txt, tests/FontCacheTest.cpp, tests/Makefile.am,
tests/create-makefile:
fixed path issue in FontCacheTest
-2017-09-06 Martin Gieseking <martin.gieseking@uos.de>
+ * src/GFReader.cpp:
+ fixed incorrect integer type in GFReader; insert CharInfos with emplace
- * src/CLCommandLine.cpp, src/CMapManager.cpp, src/CMapManager.hpp,
- src/Calculator.cpp, src/Calculator.hpp, src/DVIToSVG.cpp,
- src/DVIToSVGActions.hpp, src/DependencyGraph.hpp,
- src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.hpp,
- src/EmSpecialHandler.cpp, src/EmSpecialHandler.hpp, src/FileFinder.cpp,
- src/Font.cpp, src/Font.hpp, src/FontCache.hpp, src/FontEncoding.cpp,
- src/FontManager.cpp, src/FontManager.hpp, src/FontMap.hpp,
- src/GFReader.hpp, src/HtmlSpecialHandler.cpp, src/HtmlSpecialHandler.hpp,
- src/InputReader.cpp, src/InputReader.hpp, src/Message.cpp,
- src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, src/SVGTree.cpp,
- src/SVGTree.hpp, src/SpecialManager.hpp, src/Subfont.cpp,
- src/Subfont.hpp, tests/StreamInputBufferTest.cpp:
- replaced std::map with std::unordered_map where possible to increase
- performance
+ * src/MapLine.cpp, tests/MapLineTest.cpp:
+ treat prefix "<<" in a mapline as "<[" (skip second char)
- * src/DLLoader.hpp, src/Directory.cpp, src/Directory.hpp,
- src/FileSystem.cpp, src/MiKTeXCom.hpp, src/Process.cpp, src/Terminal.cpp,
- src/windows.hpp:
- disable macros min/max defined in windows.h
+ * doc/dvisvgm.txt.in, src/dvisvgm.cpp:
+ added pdftex.map to default mapfiles
+
+2017-09-06 Martin Gieseking <martin.gieseking@uos.de>
* src/BasicDVIReader.cpp, src/BgColorSpecialHandler.cpp, src/Bitmap.cpp,
src/BoundingBox.cpp, src/CMap.cpp, src/CMapReader.cpp, src/CRC32.cpp,
@@ -817,25 +850,45 @@ this is required to initialize kpathsea properly, for example
src/XMLString.cpp, src/dvisvgm.cpp:
removed redundant #includes of config.h
+ * src/DLLoader.hpp, src/Directory.cpp, src/Directory.hpp,
+ src/FileSystem.cpp, src/MiKTeXCom.hpp, src/Process.cpp, src/Terminal.cpp,
+ src/windows.hpp:
+ disable macros min/max defined in windows.h
+
+ * src/CLCommandLine.cpp, src/CMapManager.cpp, src/CMapManager.hpp,
+ src/Calculator.cpp, src/Calculator.hpp, src/DVIToSVG.cpp,
+ src/DVIToSVGActions.hpp, src/DependencyGraph.hpp,
+ src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.hpp,
+ src/EmSpecialHandler.cpp, src/EmSpecialHandler.hpp, src/FileFinder.cpp,
+ src/Font.cpp, src/Font.hpp, src/FontCache.hpp, src/FontEncoding.cpp,
+ src/FontManager.cpp, src/FontManager.hpp, src/FontMap.hpp,
+ src/GFReader.hpp, src/HtmlSpecialHandler.cpp, src/HtmlSpecialHandler.hpp,
+ src/InputReader.cpp, src/InputReader.hpp, src/Message.cpp,
+ src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, src/SVGTree.cpp,
+ src/SVGTree.hpp, src/SpecialManager.hpp, src/Subfont.cpp,
+ src/Subfont.hpp, tests/StreamInputBufferTest.cpp:
+ replaced std::map with std::unordered_map where possible to increase
+ performance
+
2017-09-05 Martin Gieseking <martin.gieseking@uos.de>
+ * tests/DvisvgmSpecialTest.cpp:
+ replaced constexpr with const to make clang happy
+
* doc/dvisvgm.txt.in, src/DvisvgmSpecialHandler.cpp,
tests/DvisvgmSpecialTest.cpp:
allow all common length units in dvisvgm specials
- * tests/DvisvgmSpecialTest.cpp:
- replaced constexpr with const to make clang happy
-
2017-08-27 Martin Gieseking <martin.gieseking@uos.de>
- * tests/MapLineTest.cpp:
- added braces to prevent compiler warnings
-
* src/AGLTable.hpp, src/CMakeLists.txt, src/CMapReader.cpp, src/Color.cpp,
src/CommandLine.hpp, src/FontWriter.cpp, src/genhashmap.py,
tests/genhashcheck.py:
use list initialization on constant std::arrays
+ * tests/MapLineTest.cpp:
+ added braces to prevent compiler warnings
+
2017-08-25 Martin Gieseking <martin.gieseking@uos.de>
* src/CMapManager.cpp, src/DvisvgmSpecialHandler.cpp, src/Font.cpp,
@@ -892,6 +945,11 @@ this is required to initialize kpathsea properly, for example
2017-05-30 Martin Gieseking <martin.gieseking@uos.de>
+ * src/GraphicsPath.hpp:
+ replaced vector with deque in class GraphicsPath
+due to cheaper front
+ insertions/deletions
+
* src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp:
manage memory of ClippingStack with shared pointers
- automatically
@@ -899,22 +957,17 @@ this is required to initialize kpathsea properly, for example
- avoids keeping popped (and no longer
required) paths in the pool vector
- * src/GraphicsPath.hpp:
- replaced vector with deque in class GraphicsPath
-due to cheaper front
- insertions/deletions
-
2017-05-26 Martin Gieseking <martin.gieseking@uos.de>
- * src/FileFinder.cpp, src/PsSpecialHandler.cpp:
- lookup psfile in texmf tree if it's not present in cwd (fixes #69)
+ * src/Pair.hpp, tests/PairTest.cpp:
+ added abs() and negation operator to class Pair
* src/Matrix.hpp, src/PsSpecialHandler.cpp:
respect transformation of PS state in computation of psfile position
(fixes #70)
- * src/Pair.hpp, tests/PairTest.cpp:
- added abs() and negation operator to class Pair
+ * src/FileFinder.cpp, src/PsSpecialHandler.cpp:
+ lookup psfile in texmf tree if it's not present in cwd (fixes #69)
2017-05-16 Martin Gieseking <martin.gieseking@uos.de>
@@ -925,9 +978,6 @@ $srcdir/data may be
2017-05-15 Martin Gieseking <martin.gieseking@uos.de>
- * .appveyor.yml:
- updated FreeType to version 2.8
-
* libs/woff2/CMakeLists.txt, libs/woff2/brotli/LICENSE,
libs/woff2/brotli/Makefile.am, libs/woff2/brotli/common/constants.h,
libs/woff2/brotli/common/dictionary.c,
@@ -962,6 +1012,9 @@ $srcdir/data may be
libs/woff2/brotli/include/brotli/types.h:
updated brotli to version 0.6.0
+ * .appveyor.yml:
+ updated FreeType to version 2.8
+
2017-05-11 Martin Gieseking <martin.gieseking@uos.de>
* src/Process.cpp:
@@ -969,6 +1022,10 @@ $srcdir/data may be
2017-05-08 Martin Gieseking <martin.gieseking@uos.de>
+ * CMakeLists.txt, cmake-config.h, configure.ac, src/SignalHandler.cpp,
+ src/SignalHandler.hpp:
+ use sigaction() rather than signal() if possible
+
* src/Process.cpp, src/Process.hpp:
refactored Process class
- use separate class to encapsulate
@@ -978,10 +1035,6 @@ $srcdir/data may be
- prevent blocking if subprocess doesn't write anything
to stdout/stderr
- * CMakeLists.txt, cmake-config.h, configure.ac, src/SignalHandler.cpp,
- src/SignalHandler.hpp:
- use sigaction() rather than signal() if possible
-
2017-04-28 Martin Gieseking <martin.gieseking@uos.de>
* src/Process.cpp:
@@ -994,16 +1047,16 @@ $srcdir/data may be
2017-04-24 Martin Gieseking <martin.gieseking@uos.de>
- * src/TpicSpecialHandler.cpp, tests/TpicSpecialTest.cpp:
- added evaluation of TPIC's 'tx' special command
+ * src/Color.cpp, src/Color.hpp, src/PSPattern.cpp,
+ tests/ColorSpecialTest.cpp:
+ avoid implicit conversion of Color object to RGB integer
* src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.hpp,
tests/CMakeLists.txt, tests/Makefile.am, tests/TpicSpecialTest.cpp:
improved the TPIC special handler and added tests for it
- * src/Color.cpp, src/Color.hpp, src/PSPattern.cpp,
- tests/ColorSpecialTest.cpp:
- avoid implicit conversion of Color object to RGB integer
+ * src/TpicSpecialHandler.cpp, tests/TpicSpecialTest.cpp:
+ added evaluation of TPIC's 'tx' special command
2017-04-18 Martin Gieseking <martin.gieseking@uos.de>
@@ -1012,14 +1065,14 @@ $srcdir/data may be
2017-04-14 Martin Gieseking <martin.gieseking@uos.de>
- * src/Ghostscript.cpp:
- try to load libgs.X.dylib on Mac systems (closes #66)
+ * src/DLLoader.cpp, src/DLLoader.hpp:
+ added DLLoader::loadLibrary() to assign a different library
* src/DLLoader.cpp, src/DLLoader.hpp, src/Ghostscript.cpp:
replaced c-string parameter of DLLoader() and loadLibrary() with string
- * src/DLLoader.cpp, src/DLLoader.hpp:
- added DLLoader::loadLibrary() to assign a different library
+ * src/Ghostscript.cpp:
+ try to load libgs.X.dylib on Mac systems (closes #66)
2017-03-22 Martin Gieseking <martin.gieseking@uos.de>
@@ -1028,33 +1081,33 @@ $srcdir/data may be
2017-03-03 Martin Gieseking <martin.gieseking@uos.de>
- * tests/FilePathTest.cpp, tests/FontCacheTest.cpp,
- tests/SVGOutputTest.cpp:
- tests: minor path improvements
+ * src/FileFinder.cpp, tests/FileFinderTest.cpp:
+ fixed handling of absolute additional directories in FileFinder
* .gitignore, CMakeLists.txt, libs/ff-woff/CMakeLists.txt,
src/CMakeLists.txt, tests/CMakeLists.txt:
cmake: fixed build issues when using a separate build directory
- * src/FileFinder.cpp, tests/FileFinderTest.cpp:
- fixed handling of absolute additional directories in FileFinder
+ * tests/FilePathTest.cpp, tests/FontCacheTest.cpp,
+ tests/SVGOutputTest.cpp:
+ tests: minor path improvements
2017-03-02 Martin Gieseking <martin.gieseking@uos.de>
- * src/Color.cpp, src/FilePath.cpp, src/FontWriter.cpp, src/PageSize.cpp,
- src/dvisvgm.cpp, src/utility.cpp, src/utility.hpp, tests/UtilityTest.cpp:
- util::tolower() no longer modifies its string parameter
+ * libs/woff2/src/normalize.cc, libs/woff2/src/woff2_enc.cc:
+ woff2: removed unused variables
* libs/woff2/CMakeLists.txt, src/Makefile.am, src/dvisvgm.cpp:
improved generation of list showing the library versions
- * libs/woff2/src/normalize.cc, libs/woff2/src/woff2_enc.cc:
- woff2: removed unused variables
+ * src/Color.cpp, src/FilePath.cpp, src/FontWriter.cpp, src/PageSize.cpp,
+ src/dvisvgm.cpp, src/utility.cpp, src/utility.hpp, tests/UtilityTest.cpp:
+ util::tolower() no longer modifies its string parameter
2017-03-01 Martin Gieseking <martin.gieseking@uos.de>
- * libs/woff2/CMakeLists.txt:
- adapted Makefiles to updated libwoff2
+ * libs/ff-woff/fontforge/nowakowskittfinstr.c:
+ ff-woff: removed redundant variables
* libs/woff2/Makefile.am, libs/woff2/brotli/Makefile.am,
libs/woff2/brotli/common/constants.h,
@@ -1124,8 +1177,8 @@ $srcdir/data may be
libs/woff2/src/woff2_enc.cc, src/Makefile.am:
updated woff2 to https://github.com/google/woff2/commit/68e9ab5
- * libs/ff-woff/fontforge/nowakowskittfinstr.c:
- ff-woff: removed redundant variables
+ * libs/woff2/CMakeLists.txt:
+ adapted Makefiles to updated libwoff2
2017-02-23 Martin Gieseking <martin.gieseking@uos.de>
@@ -1145,6 +1198,10 @@ $srcdir/data may be
2017-02-22 Martin Gieseking <martin.gieseking@uos.de>
+ * libs/woff2/brotli/tools/bro.cc, libs/woff2/brotli/tools/rfc-format.py,
+ libs/woff2/brotli/tools/version.h:
+ removed redundant files
+
* CMakeLists.txt, cmake-config.h, cmake/CodeCoverage.cmake,
cmake/GetTriple.cmake, libs/CMakeLists.txt, libs/clipper/CMakeLists.txt,
libs/ff-woff/CMakeLists.txt, libs/woff2/CMakeLists.txt,
@@ -1152,31 +1209,27 @@ $srcdir/data may be
tests/CMakeLists.txt, tests/gtest/CMakeLists.txt:
improved cmake build environment (works with ninja)
- * libs/woff2/brotli/tools/bro.cc, libs/woff2/brotli/tools/rfc-format.py,
- libs/woff2/brotli/tools/version.h:
- removed redundant files
-
2017-02-20 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS:
- updated NEWS
-
* .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp:
set version to 2.1.3
+ * NEWS:
+ updated NEWS
+
2017-02-18 Martin Gieseking <martin.gieseking@uos.de>
- * tests/BezierTest.cpp, tests/CRC32Test.cpp, tests/ToUnicodeMapTest.cpp,
- tests/UnicodeTest.cpp, tests/VectorIteratorTest.cpp,
- tests/XMLNodeTest.cpp:
- minor additions to some tests
+ * libs/ff-woff/inc/ffintl.h:
+ ff-woff: removed redundant defines and prototypes to fix build failure
+ on Solaris
* tests/genhashcheck.py:
reformatted genhashcheck
- * libs/ff-woff/inc/ffintl.h:
- ff-woff: removed redundant defines and prototypes to fix build failure
- on Solaris
+ * tests/BezierTest.cpp, tests/CRC32Test.cpp, tests/ToUnicodeMapTest.cpp,
+ tests/UnicodeTest.cpp, tests/VectorIteratorTest.cpp,
+ tests/XMLNodeTest.cpp:
+ minor additions to some tests
2017-02-15 Martin Gieseking <martin.gieseking@uos.de>
@@ -1188,23 +1241,23 @@ $srcdir/data may be
2017-02-14 Martin Gieseking <martin.gieseking@uos.de>
- * tests/genhashcheck.py:
- made genhashcheck.py compatible with Python 3 (plus few minor changes)
-
* README, README.md:
added information on required C++11 compiler to README
+ * tests/genhashcheck.py:
+ made genhashcheck.py compatible with Python 3 (plus few minor changes)
+
2017-02-13 Martin Gieseking <martin.gieseking@uos.de>
- * src/Color.cpp, src/Matrix.cpp, src/utility.hpp:
- replaced local copies of deg2rad with global function
+ * src/MapLine.hpp:
+ removed 'expicit' keyword from default constructor to make gcc 4.8 happy
* src/Color.cpp, src/Matrix.cpp, src/TpicSpecialHandler.cpp,
src/utility.hpp:
replaced non-standard constant M_PI with own definition
- * src/MapLine.hpp:
- removed 'expicit' keyword from default constructor to make gcc 4.8 happy
+ * src/Color.cpp, src/Matrix.cpp, src/utility.hpp:
+ replaced local copies of deg2rad with global function
2017-02-11 Martin Gieseking <martin.gieseking@uos.de>
@@ -1213,32 +1266,19 @@ $srcdir/data may be
2017-02-10 Martin Gieseking <martin.gieseking@uos.de>
- * .travis.yml, appveyor.yml, configure.ac, src/Doxyfile, src/version.hpp:
- set version to 2.1.2
-
- * libs/xxHash/xxhash.c, libs/xxHash/xxhash.h:
- removed 'restrict' keyword from xxHash
-
- * tests/StreamReaderTest.cpp:
- clear istream flags to prevent failure of StreamReaderTest
-
* src/Calculator.cpp:
fixed number parsing in Calculator class (failed on Mac)
-2017-02-09 Martin Gieseking <martin.gieseking@uos.de>
-
- * src/CLCommandLine.cpp:
- reset status flags before changing the sstream source
+ * tests/StreamReaderTest.cpp:
+ clear istream flags to prevent failure of StreamReaderTest
- * src/GFReader.cpp, src/StreamReader.cpp, tests/GFReaderTest.cpp,
- tests/StreamReaderTest.cpp:
- improved implementation of getString()
+ * libs/xxHash/xxhash.c, libs/xxHash/xxhash.h:
+ removed 'restrict' keyword from xxHash
- * src/VectorStream.hpp:
- don't access first vector component if the vector is empty
+ * .travis.yml, appveyor.yml, configure.ac, src/Doxyfile, src/version.hpp:
+ set version to 2.1.2
- * src/Directory.cpp, tests/DirectoryTest.cpp:
- prevent calling closedir() with null pointer argument
+2017-02-09 Martin Gieseking <martin.gieseking@uos.de>
* .gitignore, .travis.yml, Makefile.am, configure.ac, tests/Makefile.am,
tests/create-makefile, tests/gtest/LICENSE,
@@ -1273,38 +1313,51 @@ $srcdir/data may be
tests/gtest/src/gtest.cc, tests/gtest/src/gtest_main.cc:
bundle gtest with the sources to simplify building and running the tests
+ * src/Directory.cpp, tests/DirectoryTest.cpp:
+ prevent calling closedir() with null pointer argument
+
+ * src/VectorStream.hpp:
+ don't access first vector component if the vector is empty
+
+ * src/GFReader.cpp, src/StreamReader.cpp, tests/GFReaderTest.cpp,
+ tests/StreamReaderTest.cpp:
+ improved implementation of getString()
+
+ * src/CLCommandLine.cpp:
+ reset status flags before changing the sstream source
+
2017-02-08 Martin Gieseking <martin.gieseking@uos.de>
- * src/XMLNode.cpp:
- fixed memory leak in class XMLElementNode
+ * tests/CommandLineTest.cpp:
+ removed redundant function
- * src/Subfont.cpp:
- fixed memory leak in Subfont class
+ * src/XMLString.cpp, tests/EmSpecialTest.cpp, tests/GFGlyphTracerTest.cpp:
+ avoid negative zeros (-0) in SVG output
- * tests/CMapReaderTest.cpp:
- fixed memory leak in CMapReaderTest
+ * src/BoundingBox.cpp:
+ fixed memory issue in BoundingBox class
* src/CMapReader.cpp, src/InputReader.cpp, src/InputReader.hpp,
tests/SplittedCharInputBufferTest.cpp, tests/StreamInputBufferTest.cpp:
fixed potential number overflow issue
- * src/BoundingBox.cpp:
- fixed memory issue in BoundingBox class
+ * tests/CMapReaderTest.cpp:
+ fixed memory leak in CMapReaderTest
- * src/XMLString.cpp, tests/EmSpecialTest.cpp, tests/GFGlyphTracerTest.cpp:
- avoid negative zeros (-0) in SVG output
+ * src/Subfont.cpp:
+ fixed memory leak in Subfont class
- * tests/CommandLineTest.cpp:
- removed redundant function
+ * src/XMLNode.cpp:
+ fixed memory leak in class XMLElementNode
2017-02-07 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS:
- updated NEWS
-
* configure.ac:
replaced deprecated AC_CONFIG_HEADER
+ * NEWS:
+ updated NEWS
+
2017-02-06 Martin Gieseking <martin.gieseking@uos.de>
* .travis.yml, appveyor.yml, configure.ac, src/Doxyfile, src/version.hpp:
@@ -1317,23 +1370,23 @@ $srcdir/data may be
2017-02-03 Martin Gieseking <martin.gieseking@uos.de>
- * configure.ac, libs/ff-woff/fontforge/splinefont.h:
- include xlocale.h in ff-woff if available (fixes #65)
-
* src/Color.cpp, src/Color.hpp, src/VectorIterator.hpp,
tests/ColorTest.cpp, tests/VectorIteratorTest.cpp:
increased coverage of ColorTest
+ * configure.ac, libs/ff-woff/fontforge/splinefont.h:
+ include xlocale.h in ff-woff if available (fixes #65)
+
2017-02-02 Martin Gieseking <martin.gieseking@uos.de>
- * src/Font.cpp, src/Font.hpp:
- report Metafont failures only once for each font
+ * src/Makefile.am:
+ removed spurious colon from src/Makefile.am
* configure.ac:
allow C++11 language extensions if necessary
- * src/Makefile.am:
- removed spurious colon from src/Makefile.am
+ * src/Font.cpp, src/Font.hpp:
+ report Metafont failures only once for each font
2017-01-31 Martin Gieseking <martin.gieseking@uos.de>
@@ -1358,15 +1411,9 @@ $srcdir/data may be
2017-01-25 Martin Gieseking <martin.gieseking@uos.de>
- * m4/ax_code_coverage.m4, m4/ax_cxx_compile_stdcxx.m4:
- updated m4 scripts to latest versions
-
- * tests/Makefile.am, tests/create-makefile:
- removed redundant linker flag from tests
-
- * src/FontCache.cpp, src/FontCache.hpp, tests/FontCacheTest.cpp,
- tests/Makefile.am:
- added FontCacheTest
+ * src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.hpp,
+ tests/Makefile.am, tests/PapersizeSpecialTest.cpp, tests/create-makefile:
+ added PapersizeSpecialTest
* tests/CMapManagerTest.cpp, tests/CMapReaderTest.cpp,
tests/DvisvgmSpecialTest.cpp, tests/EmSpecialTest.cpp,
@@ -1375,9 +1422,15 @@ $srcdir/data may be
tests/TFMReaderTest.cpp, tests/TensorProductPatchTest.cpp:
added 'override' specifier to gtest methods
- * src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.hpp,
- tests/Makefile.am, tests/PapersizeSpecialTest.cpp, tests/create-makefile:
- added PapersizeSpecialTest
+ * src/FontCache.cpp, src/FontCache.hpp, tests/FontCacheTest.cpp,
+ tests/Makefile.am:
+ added FontCacheTest
+
+ * tests/Makefile.am, tests/create-makefile:
+ removed redundant linker flag from tests
+
+ * m4/ax_code_coverage.m4, m4/ax_cxx_compile_stdcxx.m4:
+ updated m4 scripts to latest versions
2017-01-23 Martin Gieseking <martin.gieseking@uos.de>
@@ -1386,14 +1439,14 @@ $srcdir/data may be
2017-01-22 Martin Gieseking <martin.gieseking@uos.de>
+ * src/options.xml:
+ get name of options.xml from command-line; fixed indentation
+
* src/genhashmap.cpp, src/genhashmap.py, src/glyphlist/Makefile,
src/glyphlist/glyphlist.dtd, src/glyphlist/glyphlist.xsl,
src/glyphlist/xmlify.py:
improved generation of AGLTable.hpp
- * src/options.xml:
- get name of options.xml from command-line; fixed indentation
-
2017-01-20 Martin Gieseking <martin.gieseking@uos.de>
* libs/ff-woff/Makefile.am, libs/ff-woff/fontforge/fontforge.h,
@@ -1409,16 +1462,6 @@ exit()
2017-01-18 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS:
- updated NEWS
-
- * .travis.yml, configure.ac, src/Doxyfile, src/version.hpp:
- set version to 2.1
-
- * src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, src/EPSToSVG.cpp:
- get program name and version from version.hpp, avoid using macros from
- config.h
-
* src/BoundingBox.cpp, src/Color.cpp, src/DVIToSVGActions.cpp,
src/FilePath.cpp, src/FileSystem.cpp, src/FontWriter.cpp,
src/Makefile.am, src/PageSize.cpp, src/SVGOutput.cpp, src/utility.cpp,
@@ -1426,14 +1469,17 @@ exit()
moved common utility functions to separate compilation unit and
namespace
-2017-01-17 Martin Gieseking <martin.gieseking@uos.de>
+ * src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, src/EPSToSVG.cpp:
+ get program name and version from version.hpp, avoid using macros from
+ config.h
- * src/FontWriter.cpp, src/FontWriter.hpp:
- print error message if FontWriter can't write temporary files
+ * .travis.yml, configure.ac, src/Doxyfile, src/version.hpp:
+ set version to 2.1
- * doc/dvisvgm.txt.in, src/CommandLine.hpp, src/dvisvgm.cpp,
- src/options.xml:
- added option --tmpdir to select a different temp folder
+ * NEWS:
+ updated NEWS
+
+2017-01-17 Martin Gieseking <martin.gieseking@uos.de>
* libs/ff-woff/fontforge/utils.c, src/FileSystem.cpp, src/FileSystem.hpp,
src/Font.cpp, src/FontWriter.cpp, src/GlyphTracerMessages.hpp,
@@ -1442,18 +1488,25 @@ exit()
create temp files in the system's temp folder rather than in cwd (closes
#63)
-2017-01-12 Martin Gieseking <martin.gieseking@uos.de>
+ * doc/dvisvgm.txt.in, src/CommandLine.hpp, src/dvisvgm.cpp,
+ src/options.xml:
+ added option --tmpdir to select a different temp folder
- * tests/GhostscriptTest.cpp:
- disable GS banner in GhostscriptTest
+ * src/FontWriter.cpp, src/FontWriter.hpp:
+ print error message if FontWriter can't write temporary files
- * src/DVIToSVG.cpp, src/EPSToSVG.cpp, src/SVGTree.hpp:
- print warning message if output file could not be written
+2017-01-12 Martin Gieseking <martin.gieseking@uos.de>
* src/FilePath.cpp, src/FilePath.hpp, tests/FilePathTest.cpp,
tests/SVGOutputTest.cpp:
retain letter case of filenames (Windows)
+ * src/DVIToSVG.cpp, src/EPSToSVG.cpp, src/SVGTree.hpp:
+ print warning message if output file could not be written
+
+ * tests/GhostscriptTest.cpp:
+ disable GS banner in GhostscriptTest
+
2017-01-10 Martin Gieseking <martin.gieseking@uos.de>
* src/PsSpecialHandler.cpp, src/dvisvgm.cpp:
@@ -1578,19 +1631,19 @@ exit()
2016-12-16 Martin Gieseking <martin.gieseking@uos.de>
- * doc/conf-dblatex-pdf.xsl, doc/tweak-dblatex-pdf.xsl:
- manpage: use mixed case titles in pdf output
-
- * doc/db2html.xsl:
- manpage: replace icon of Author section
+ * doc/conf-dblatex-man.xsl, doc/conf-dblatex-pdf.xsl, doc/db2html.xsl,
+ doc/tweak-dblatex-pdf.xsl:
+ added missing email address to copyright headers
* doc/conf-dblatex-man.xsl, doc/conf-dblatex-pdf.xsl,
doc/tweak-dblatex-pdf.xsl:
indent with tabs rather than spaces
- * doc/conf-dblatex-man.xsl, doc/conf-dblatex-pdf.xsl, doc/db2html.xsl,
- doc/tweak-dblatex-pdf.xsl:
- added missing email address to copyright headers
+ * doc/db2html.xsl:
+ manpage: replace icon of Author section
+
+ * doc/conf-dblatex-pdf.xsl, doc/tweak-dblatex-pdf.xsl:
+ manpage: use mixed case titles in pdf output
2016-12-15 Martin Gieseking <martin.gieseking@uos.de>
@@ -1609,14 +1662,8 @@ exit()
2016-11-12 Martin Gieseking <martin.gieseking@uos.de>
- * .travis.yml, configure.ac, src/Doxyfile, src/version.hpp:
- set version to 2.0.4
-
- * configure.ac, libs/Makefile.am, libs/clipper/Makefile.am,
- libs/ff-woff/Makefile.am, libs/woff2/Makefile.am,
- libs/woff2/brotli/Makefile.am, libs/woff2/brotli/enc/Makefile.am,
- libs/woff2/src/Makefile.am, src/Makefile.am:
- added license files of bundled libraries; relocated Makefiles
+ * doc/dvisvgm.txt.in:
+ minor changes in manpage
* README, README.md, configure.ac, libs/Makefile.am, libs/ff-woff/LICENSE,
libs/ff-woff/Makefile.am, libs/ff-woff/README.md,
@@ -1666,18 +1713,24 @@ exit()
libs/ff-woff/inc/ustring.h, libs/ff-woff/inc/utype.h, src/Makefile.am:
bundle reduced fontforge library (ff-woff)
- * doc/dvisvgm.txt.in:
- minor changes in manpage
+ * configure.ac, libs/Makefile.am, libs/clipper/Makefile.am,
+ libs/ff-woff/Makefile.am, libs/woff2/Makefile.am,
+ libs/woff2/brotli/Makefile.am, libs/woff2/brotli/enc/Makefile.am,
+ libs/woff2/src/Makefile.am, src/Makefile.am:
+ added license files of bundled libraries; relocated Makefiles
+
+ * .travis.yml, configure.ac, src/Doxyfile, src/version.hpp:
+ set version to 2.0.4
2016-11-07 Martin Gieseking <martin.gieseking@uos.de>
+ * src/CommandLine.hpp, src/options.xml:
+ fixed a typo in the --help output
+
* src/BasicDVIReader.cpp, src/BasicDVIReader.hpp, src/DVIReader.cpp,
src/DVIReader.hpp:
use const variables for DVI opcodes rather than the values directly
- * src/CommandLine.hpp, src/options.xml:
- fixed a typo in the --help output
-
2016-11-01 Martin Gieseking <martin.gieseking@uos.de>
* src/FontWriter.cpp:
@@ -1685,21 +1738,21 @@ exit()
2016-09-27 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, README, README.md:
- updated NEWS and README
-
* .travis.yml, configure.ac, src/Doxyfile, src/version.hpp:
set version to 2.0.3
-2016-09-23 Martin Gieseking <martin.gieseking@uos.de>
+ * NEWS, README, README.md:
+ updated NEWS and README
- * src/DVIReader.cpp:
- fixed positioning of rules
+2016-09-23 Martin Gieseking <martin.gieseking@uos.de>
* src/DVIReader.cpp, src/DVIReader.hpp, src/DVIToSVG.cpp,
src/DVIToSVG.hpp:
dropped tracking of previous DVI state from DVIReader
+ * src/DVIReader.cpp:
+ fixed positioning of rules
+
2016-09-22 Martin Gieseking <martin.gieseking@uos.de>
* src/DVIReader.cpp, src/DVIReader.hpp, src/DVIToSVG.cpp:
@@ -1707,35 +1760,35 @@ exit()
2016-09-18 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, README.md:
- updated NEWS and README
-
- * .travis.yml, configure.ac, src/Doxyfile, src/version.hpp:
- set version to 2.0.2
+ * src/DVIReader.cpp:
+ fixed type regression in computation of DVI positions (closes #61)
* src/RangeMap.cpp:
don't decrement iterator if it points to begin()
- * src/DVIReader.cpp:
- fixed type regression in computation of DVI positions (closes #61)
-
-2016-09-03 Martin Gieseking <martin.gieseking@uos.de>
+ * .travis.yml, configure.ac, src/Doxyfile, src/version.hpp:
+ set version to 2.0.2
- * NEWS, README, README.md:
+ * NEWS, README.md:
updated NEWS and README
+2016-09-03 Martin Gieseking <martin.gieseking@uos.de>
+
* .travis.yml, configure.ac, src/Doxyfile, src/version.hpp:
set version to 2.0.1
+ * NEWS, README, README.md:
+ updated NEWS and README
+
2016-08-31 Martin Gieseking <martin.gieseking@uos.de>
+ * README, README.md:
+ added link to reduced FF library to README
+
* doc/dvisvgm.txt.in, src/FontWriter.cpp, src/FontWriter.hpp,
src/SVGTree.cpp, src/SVGTree.hpp, src/ffwrapper.c:
added option to autohint fonts created by the FontForge library
- * README, README.md:
- added link to reduced FF library to README
-
2016-08-30 Martin Gieseking <martin.gieseking@uos.de>
* src/DVIToSVGActions.hpp, src/FontManager.hpp, src/MetafontWrapper.hpp:
@@ -1743,20 +1796,20 @@ exit()
2016-08-28 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS:
- updated NEWS
+ * src/FileFinder.cpp, src/FileFinder.hpp:
+ removed unused variable
- * README, README.md:
- updated README files
+ * src/CLCommandLine.cpp:
+ added missing cast to avoid compiler warning
* .travis.yml, configure.ac, src/Doxyfile, src/version.hpp:
set version to 2.0
- * src/CLCommandLine.cpp:
- added missing cast to avoid compiler warning
+ * README, README.md:
+ updated README files
- * src/FileFinder.cpp, src/FileFinder.hpp:
- removed unused variable
+ * NEWS:
+ updated NEWS
2016-08-27 Martin Gieseking <martin.gieseking@uos.de>
@@ -1766,6 +1819,17 @@ exit()
2016-08-25 Martin Gieseking <martin.gieseking@uos.de>
+ * Makefile.am, clipper/License.txt, clipper/Makefile.am,
+ clipper/clipper.cpp, clipper/clipper.hpp, configure.ac, libs/Makefile.am,
+ libs/clipper/License.txt, libs/clipper/Makefile.am,
+ libs/clipper/clipper.cpp, libs/clipper/clipper.hpp, libs/xxHash/LICENSE,
+ libs/xxHash/Makefile.am, libs/xxHash/xxhash-fileno.patch,
+ libs/xxHash/xxhash.c, libs/xxHash/xxhash.h, libs/xxHash/xxhsum.c,
+ src/Makefile.am, tests/Makefile.am, tests/create-makefile,
+ xxHash/LICENSE, xxHash/Makefile.am, xxHash/xxhash-fileno.patch,
+ xxHash/xxhash.c, xxHash/xxhash.h, xxHash/xxhsum.c:
+ moved bundled libraries (clipper, xxHash) to subfolder 'libs'
+
* configure.ac, doc/dvisvgm.txt.in, libs/Makefile.am, libs/woff2/LICENSE,
libs/woff2/brotli/LICENSE, libs/woff2/brotli/enc/Makefile.am,
libs/woff2/brotli/enc/backward_references.cc,
@@ -1818,17 +1882,6 @@ exit()
src/FontWriter.cpp, src/FontWriter.hpp, src/Makefile.am:
added support for embedding WOFF2 fonts
- * Makefile.am, clipper/License.txt, clipper/Makefile.am,
- clipper/clipper.cpp, clipper/clipper.hpp, configure.ac, libs/Makefile.am,
- libs/clipper/License.txt, libs/clipper/Makefile.am,
- libs/clipper/clipper.cpp, libs/clipper/clipper.hpp, libs/xxHash/LICENSE,
- libs/xxHash/Makefile.am, libs/xxHash/xxhash-fileno.patch,
- libs/xxHash/xxhash.c, libs/xxHash/xxhash.h, libs/xxHash/xxhsum.c,
- src/Makefile.am, tests/Makefile.am, tests/create-makefile,
- xxHash/LICENSE, xxHash/Makefile.am, xxHash/xxhash-fileno.patch,
- xxHash/xxhash.c, xxHash/xxhash.h, xxHash/xxhsum.c:
- moved bundled libraries (clipper, xxHash) to subfolder 'libs'
-
2016-08-24 Martin Gieseking <martin.gieseking@uos.de>
* src/XMLNode.hpp:
@@ -1836,6 +1889,9 @@ exit()
2016-08-23 Martin Gieseking <martin.gieseking@uos.de>
+ * src/FontEngine.cpp:
+ fixed sign of the font descender
+
* configure.ac, doc/dvisvgm.txt.in, src/CommandLine.hpp,
src/FontWriter.cpp, src/FontWriter.hpp, src/GraphicsPath.hpp,
src/Makefile.am, src/SVGTree.cpp, src/SVGTree.hpp, src/XMLNode.cpp,
@@ -1843,9 +1899,6 @@ exit()
src/options.xml:
added option --font-format to select the file format used to embed fonts
- * src/FontEngine.cpp:
- fixed sign of the font descender
-
2016-08-22 Martin Gieseking <martin.gieseking@uos.de>
* xxHash/xxhash.c, xxHash/xxhash.h, xxHash/xxhsum.c:
@@ -1859,12 +1912,12 @@ exit()
2016-08-14 Martin Gieseking <martin.gieseking@uos.de>
- * src/PathClipper.cpp:
- added missing initializers
-
* src/Ghostscript.hpp:
removed copy constructor of class Ghostscript
+ * src/PathClipper.cpp:
+ added missing initializers
+
2016-08-13 Martin Gieseking <martin.gieseking@uos.de>
* CMakeLists.txt, configure.ac, src/CLCommandLine.cpp,
@@ -1881,12 +1934,6 @@ exit()
2016-08-08 Martin Gieseking <martin.gieseking@uos.de>
- * src/Ghostscript.cpp, src/MiKTeXCom.cpp:
- replaced __WIN64__ with pre-defined _WIN64
-
- * src/System.cpp, src/dvisvgm.cpp:
- minor refactorings of dvisvgm.cpp
-
* src/DVIReader.cpp, src/DVIReader.hpp, src/Directory.cpp,
src/Directory.hpp, src/FilePath.cpp, src/FilePath.hpp, src/Font.cpp,
src/Font.hpp, src/FontManager.cpp, src/FontManager.hpp, src/GFReader.hpp,
@@ -1895,8 +1942,21 @@ exit()
src/VFActions.hpp, src/VFReader.cpp:
pass string parameters by reference if possible
+ * src/System.cpp, src/dvisvgm.cpp:
+ minor refactorings of dvisvgm.cpp
+
+ * src/Ghostscript.cpp, src/MiKTeXCom.cpp:
+ replaced __WIN64__ with pre-defined _WIN64
+
2016-08-02 Martin Gieseking <martin.gieseking@uos.de>
+ * CMakeLists.txt, src/CLCommandLine.cpp, src/CLCommandLine.hpp,
+ src/CLOption.hpp, src/CmdLineParserBase.cpp, src/CmdLineParserBase.hpp,
+ src/CommandLine.cpp, src/CommandLine.hpp, src/Makefile.am,
+ src/dvisvgm.cpp, src/options.dtd, src/options.xml,
+ tests/CommandLineTest.cpp:
+ reimplemented the CommandLine parser class
+
* src/CMap.cpp, src/CMapManager.cpp, src/CMapReader.cpp, src/EncFile.cpp,
src/FileFinder.cpp, src/FileFinder.hpp, src/Font.cpp,
src/FontEncoding.cpp, src/FontManager.cpp, src/FontMap.cpp,
@@ -1906,13 +1966,6 @@ exit()
tests/MapLineTest.cpp, tests/SubfontTest.cpp:
made FileFinder a singleton again
- * CMakeLists.txt, src/CLCommandLine.cpp, src/CLCommandLine.hpp,
- src/CLOption.hpp, src/CmdLineParserBase.cpp, src/CmdLineParserBase.hpp,
- src/CommandLine.cpp, src/CommandLine.hpp, src/Makefile.am,
- src/dvisvgm.cpp, src/options.dtd, src/options.xml,
- tests/CommandLineTest.cpp:
- reimplemented the CommandLine parser class
-
2016-07-27 Martin Gieseking <martin.gieseking@uos.de>
* src/BgColorSpecialHandler.cpp, src/BoundingBox.cpp,
@@ -1926,21 +1979,21 @@ exit()
2016-07-23 Martin Gieseking <martin.gieseking@uos.de>
- * src/CMapReader.cpp:
- minor refactoring of class CMapReader
-
* src/PathClipper.cpp:
some minor refactorings of class PathClipper
+ * src/CMapReader.cpp:
+ minor refactoring of class CMapReader
+
2016-07-22 Martin Gieseking <martin.gieseking@uos.de>
+ * src/FontMap.cpp, src/FontMap.hpp:
+ some syntactic refactorings of class FontMap
+
* src/FontManager.cpp, src/FontManager.hpp:
use unique_ptr to automatically release Font objects in class
FontManager
- * src/FontMap.cpp, src/FontMap.hpp:
- some syntactic refactorings of class FontMap
-
2016-07-21 Martin Gieseking <martin.gieseking@uos.de>
* src/AGLTable.h, src/AGLTable.hpp, src/BasicDVIReader.cpp,
@@ -2069,16 +2122,16 @@ exit()
2016-07-20 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIToSVGActions.cpp, src/DVIToSVGActions.h:
- create BoxMap object directly, avoid new/delete
+ * src/genhashmap.cpp, src/glyphlist.txt:
+ added genhashmap (generates AGLTable.h from glyphlist.txt)
* src/CMapManager.cpp, src/CMapManager.h, src/FileFinder.cpp,
src/Font.cpp, src/Font.h, src/XMLDocument.cpp, src/XMLDocument.h,
src/XMLNode.cpp, src/XMLNode.h, tests/XMLNodeTest.cpp:
use smart pointers to release heap memory
- * src/genhashmap.cpp, src/glyphlist.txt:
- added genhashmap (generates AGLTable.h from glyphlist.txt)
+ * src/DVIToSVGActions.cpp, src/DVIToSVGActions.h:
+ create BoxMap object directly, avoid new/delete
2016-07-19 Martin Gieseking <martin.gieseking@uos.de>
@@ -2098,35 +2151,38 @@ exit()
2016-07-04 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, README.md:
- updated NEWS and README
-
- * .travis.yml, configure.ac, src/Doxyfile:
- set version to 1.16
+ * src/TFM.cpp:
+ added missing initializers
* src/dvisvgm.cpp:
catch exception in set_cache_dir()
- * src/TFM.cpp:
- added missing initializers
+ * .travis.yml, configure.ac, src/Doxyfile:
+ set version to 1.16
+
+ * NEWS, README.md:
+ updated NEWS and README
2016-07-03 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIReader.cpp, src/DVIReader.h, src/Font.cpp, src/Font.h,
- src/FontManager.cpp, src/FontManager.h, src/VFActions.h,
+ * configure.ac, m4/ax_cxx_compile_stdcxx.m4:
+ switch from C++03 to C++11
+
+ * src/NumericRanges.h, src/PapersizeSpecialHandler.cpp, src/Unicode.cpp,
src/VFReader.cpp:
- transfer DVI snippet of a VF char by move semantics rather than by heap
- pointer
+ replaced static callback functions with lambdas
- * AUTHORS, LGPL-2.1.txt, Makefile.am, gzstream/COPYING.LIB,
- gzstream/Makefile, gzstream/README, gzstream/gzstream.cpp,
- gzstream/gzstream.h, gzstream/index.html, gzstream/logo.gif,
- gzstream/test_gunzip.C, gzstream/test_gzip.C, gzstream/version,
- src/Makefile.am, src/SVGOutput.cpp, src/SVGOutput.h,
- src/ZLibOutputStream.h, src/dvisvgm.cpp, src/gzstream.cpp,
- src/gzstream.h, tests/Makefile.am, tests/SVGOutputTest.cpp,
- tests/create-makefile:
- replaced old gzstream classes
+ * src/CMapReader.cpp, src/CMapReader.h, src/CmdLineParserBase.cpp,
+ src/CmdLineParserBase.h, src/Color.cpp, src/Color.h, src/CommandLine.cpp,
+ src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp,
+ src/EmSpecialHandler.cpp, src/Font.cpp, src/Font.h, src/FontManager.cpp,
+ src/GraphicsPath.h, src/HtmlSpecialHandler.cpp, src/HtmlSpecialHandler.h,
+ src/Length.cpp, src/Length.h, src/PathClipper.cpp,
+ src/PsSpecialHandler.cpp, src/SVGTree.cpp, src/ShadingPatch.cpp,
+ src/TensorProductPatch.h, tests/BoundingBoxTest.cpp,
+ tests/LengthTest.cpp, tests/ShadingPatchTest.cpp,
+ tests/TensorProductPatchTest.cpp, tests/TriangularPatchTest.cpp:
+ replaced some enums with enum classes
* clipper/clipper.hpp, src/AGLTable.h, src/BasicDVIReader.cpp,
src/Bitmap.cpp, src/Bitmap.h, src/BoundingBox.h, src/CMap.cpp,
@@ -2161,39 +2217,37 @@ exit()
tests/UnicodeTest.cpp:
replaced own fixed-sized integer types with types from cstdint
- * src/CMapReader.cpp, src/CMapReader.h, src/CmdLineParserBase.cpp,
- src/CmdLineParserBase.h, src/Color.cpp, src/Color.h, src/CommandLine.cpp,
- src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp,
- src/EmSpecialHandler.cpp, src/Font.cpp, src/Font.h, src/FontManager.cpp,
- src/GraphicsPath.h, src/HtmlSpecialHandler.cpp, src/HtmlSpecialHandler.h,
- src/Length.cpp, src/Length.h, src/PathClipper.cpp,
- src/PsSpecialHandler.cpp, src/SVGTree.cpp, src/ShadingPatch.cpp,
- src/TensorProductPatch.h, tests/BoundingBoxTest.cpp,
- tests/LengthTest.cpp, tests/ShadingPatchTest.cpp,
- tests/TensorProductPatchTest.cpp, tests/TriangularPatchTest.cpp:
- replaced some enums with enum classes
+ * AUTHORS, LGPL-2.1.txt, Makefile.am, gzstream/COPYING.LIB,
+ gzstream/Makefile, gzstream/README, gzstream/gzstream.cpp,
+ gzstream/gzstream.h, gzstream/index.html, gzstream/logo.gif,
+ gzstream/test_gunzip.C, gzstream/test_gzip.C, gzstream/version,
+ src/Makefile.am, src/SVGOutput.cpp, src/SVGOutput.h,
+ src/ZLibOutputStream.h, src/dvisvgm.cpp, src/gzstream.cpp,
+ src/gzstream.h, tests/Makefile.am, tests/SVGOutputTest.cpp,
+ tests/create-makefile:
+ replaced old gzstream classes
- * src/NumericRanges.h, src/PapersizeSpecialHandler.cpp, src/Unicode.cpp,
+ * src/DVIReader.cpp, src/DVIReader.h, src/Font.cpp, src/Font.h,
+ src/FontManager.cpp, src/FontManager.h, src/VFActions.h,
src/VFReader.cpp:
- replaced static callback functions with lambdas
-
- * configure.ac, m4/ax_cxx_compile_stdcxx.m4:
- switch from C++03 to C++11
+ transfer DVI snippet of a VF char by move semantics rather than by heap
+ pointer
2016-07-02 Martin Gieseking <martin.gieseking@uos.de>
- * src/BasicDVIReader.h, src/Bitmap.h, src/CMap.h, src/CmdLineParserBase.h,
- src/DVIActions.h, src/Font.h, src/FontEncoding.h, src/FontMetrics.h,
- src/GFGlyphTracer.h, src/GFReader.h, src/GFTracer.h, src/GraphicsPath.h,
- src/InputBuffer.h, src/InputReader.h, src/MessageException.h,
- src/PSFilter.h, src/PSInterpreter.h, src/PSPattern.h,
- src/SVGCharHandler.h, src/SVGOutput.h, src/ShadingPatch.h,
- src/SpecialActions.h, src/SpecialHandler.h, src/StreamReader.h,
- src/StreamWriter.h, src/Subfont.h, src/VFActions.h, src/XMLNode.h:
- replaced empty virtual destructors with default ones
-
- * src/PsSpecialHandler.cpp:
- use unique_ptr rather than deprecated auto_ptr
+ * src/Bitmap.cpp, src/BoundingBox.h, src/CMapManager.cpp,
+ src/CmdLineParserBase.cpp, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp,
+ src/DVIToSVGActions.h, src/DependencyGraph.h,
+ src/DvisvgmSpecialHandler.cpp, src/EmSpecialHandler.cpp,
+ src/FileFinder.cpp, src/FilePath.cpp, src/FilePath.h, src/Font.cpp,
+ src/FontCache.cpp, src/FontEncoding.cpp, src/FontManager.cpp,
+ src/FontMap.cpp, src/FontMap.h, src/GFReader.cpp, src/GFReader.h,
+ src/GraphicsPath.h, src/HtmlSpecialHandler.cpp, src/NumericRanges.h,
+ src/PSPattern.cpp, src/PsSpecialHandler.cpp, src/SVGTree.cpp,
+ src/SVGTree.h, src/SpecialManager.cpp, src/SpecialManager.h,
+ src/Subfont.cpp, src/Subfont.h, src/TpicSpecialHandler.cpp,
+ src/XMLDocument.cpp, src/XMLNode.cpp, src/XMLString.cpp, src/macros.h:
+ use range-based 'for' loop to iterate over containers; drop FORALL macro
* clipper/clipper.hpp, src/BgColorSpecialHandler.h, src/Bitmap.cpp,
src/CMap.h, src/CmdLineParserBase.h, src/ColorSpecialHandler.h,
@@ -2214,19 +2268,18 @@ exit()
src/TriangularPatch.h, src/VectorStream.h, src/XMLNode.h:
mark overridden methods with 'override' keyword
- * src/Bitmap.cpp, src/BoundingBox.h, src/CMapManager.cpp,
- src/CmdLineParserBase.cpp, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp,
- src/DVIToSVGActions.h, src/DependencyGraph.h,
- src/DvisvgmSpecialHandler.cpp, src/EmSpecialHandler.cpp,
- src/FileFinder.cpp, src/FilePath.cpp, src/FilePath.h, src/Font.cpp,
- src/FontCache.cpp, src/FontEncoding.cpp, src/FontManager.cpp,
- src/FontMap.cpp, src/FontMap.h, src/GFReader.cpp, src/GFReader.h,
- src/GraphicsPath.h, src/HtmlSpecialHandler.cpp, src/NumericRanges.h,
- src/PSPattern.cpp, src/PsSpecialHandler.cpp, src/SVGTree.cpp,
- src/SVGTree.h, src/SpecialManager.cpp, src/SpecialManager.h,
- src/Subfont.cpp, src/Subfont.h, src/TpicSpecialHandler.cpp,
- src/XMLDocument.cpp, src/XMLNode.cpp, src/XMLString.cpp, src/macros.h:
- use range-based 'for' loop to iterate over containers; drop FORALL macro
+ * src/PsSpecialHandler.cpp:
+ use unique_ptr rather than deprecated auto_ptr
+
+ * src/BasicDVIReader.h, src/Bitmap.h, src/CMap.h, src/CmdLineParserBase.h,
+ src/DVIActions.h, src/Font.h, src/FontEncoding.h, src/FontMetrics.h,
+ src/GFGlyphTracer.h, src/GFReader.h, src/GFTracer.h, src/GraphicsPath.h,
+ src/InputBuffer.h, src/InputReader.h, src/MessageException.h,
+ src/PSFilter.h, src/PSInterpreter.h, src/PSPattern.h,
+ src/SVGCharHandler.h, src/SVGOutput.h, src/ShadingPatch.h,
+ src/SpecialActions.h, src/SpecialHandler.h, src/StreamReader.h,
+ src/StreamWriter.h, src/Subfont.h, src/VFActions.h, src/XMLNode.h:
+ replaced empty virtual destructors with default ones
2016-07-01 Martin Gieseking <martin.gieseking@uos.de>
@@ -2242,13 +2295,13 @@ exit()
2016-06-29 Martin Gieseking <martin.gieseking@uos.de>
- * xxHash/xxhash.c, xxHash/xxhash.h, xxHash/xxhsum.c:
- updated xxHash to version 0.6.1
-
* src/BoundingBox.cpp, src/BoundingBox.h, src/DVIToSVG.cpp,
src/dvisvgm.cpp:
fixed computation of bounding boxes modified by relative --bbox argument
+ * xxHash/xxhash.c, xxHash/xxhash.h, xxHash/xxhsum.c:
+ updated xxHash to version 0.6.1
+
2016-06-17 Martin Gieseking <martin.gieseking@uos.de>
* src/TFM.cpp, tests/JFMReaderTest.cpp, tests/TFMReaderTest.cpp:
@@ -2256,26 +2309,26 @@ exit()
2016-06-16 Martin Gieseking <martin.gieseking@uos.de>
- * src/GFReader.cpp:
- ensure validity of postpost command in GFReader::executePostamble()
-
* src/DVIReader.cpp, src/VectorStream.h, tests/VectorStreamTest.cpp:
refactored VectorStreamBuffer to keep constness of assigned vector
+ * src/GFReader.cpp:
+ ensure validity of postpost command in GFReader::executePostamble()
+
2016-06-14 Martin Gieseking <martin.gieseking@uos.de>
- * src/BoundingBox.cpp, src/BoundingBox.h, tests/BoundingBoxTest.cpp:
- fixed unit conversion in BoundingBox class
+ * src/DvisvgmSpecialHandler.cpp, src/TFM.cpp, src/VFReader.cpp:
+ replaced local definitions of pt2bp with Length::pt2bp
+
+ * src/XMLNode.h:
+ added ouput operators for the XML node objects
* src/EmSpecialHandler.cpp, src/EmSpecialHandler.h,
tests/EmSpecialTest.cpp, tests/Makefile.am:
improved the emTeX special handler; added EmSpecialTest
- * src/XMLNode.h:
- added ouput operators for the XML node objects
-
- * src/DvisvgmSpecialHandler.cpp, src/TFM.cpp, src/VFReader.cpp:
- replaced local definitions of pt2bp with Length::pt2bp
+ * src/BoundingBox.cpp, src/BoundingBox.h, tests/BoundingBoxTest.cpp:
+ fixed unit conversion in BoundingBox class
2016-06-13 Martin Gieseking <martin.gieseking@uos.de>
@@ -2284,8 +2337,8 @@ exit()
2016-06-12 Martin Gieseking <martin.gieseking@uos.de>
- * xxHash/xxhash-fileno.patch, xxHash/xxhsum.c:
- added xxHash test utility 'xxhsum'
+ * xxHash/xxhash.c, xxHash/xxhash.h:
+ updated xxHash to version 0.6.0
* src/DLLoader.cpp, src/DLLoader.h, src/Directory.cpp, src/Directory.h,
src/FilePath.cpp, src/FilePath.h, src/FileSystem.cpp, src/GFTracer.cpp,
@@ -2294,21 +2347,18 @@ exit()
src/Terminal.h, src/dvisvgm.cpp:
cleaned up Windows-related #defines
- * xxHash/xxhash.c, xxHash/xxhash.h:
- updated xxHash to version 0.6.0
+ * xxHash/xxhash-fileno.patch, xxHash/xxhsum.c:
+ added xxHash test utility 'xxhsum'
2016-06-10 Martin Gieseking <martin.gieseking@uos.de>
- * src/Length.cpp, src/Length.h, tests/LengthTest.cpp:
- added functions to convert between Length::Unit and std::string
-
* src/CommandLine.cpp:
removed redundant #includes
-2016-06-07 Martin Gieseking <martin.gieseking@uos.de>
+ * src/Length.cpp, src/Length.h, tests/LengthTest.cpp:
+ added functions to convert between Length::Unit and std::string
- * src/SVGCharHandler.h:
- added missing initializer to class SVGCharHandler
+2016-06-07 Martin Gieseking <martin.gieseking@uos.de>
* src/CMapManager.cpp, src/CMapManager.h, src/DVIActions.h,
src/DVIToSVGActions.h, src/DvisvgmSpecialHandler.h, src/Font.h,
@@ -2322,20 +2372,10 @@ exit()
changed some structs to classes and replaced #includes with forward
declarations
-2016-06-03 Martin Gieseking <martin.gieseking@uos.de>
-
- * CMakeLists.txt:
- updated CMakeLists.txt
-
- * doc/dvisvgm.txt.in, src/DVIToSVG.cpp, src/Makefile.am,
- src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.h,
- src/PsSpecialHandler.cpp, src/dvisvgm.cpp:
- added evaluation of PS special 'papersize='
+ * src/SVGCharHandler.h:
+ added missing initializer to class SVGCharHandler
- * src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h,
- src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/SVGTree.cpp,
- src/SVGTree.h:
- refactored processing of end-of-page (eop) commands
+2016-06-03 Martin Gieseking <martin.gieseking@uos.de>
* src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h,
src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, src/DVIToSVG.cpp,
@@ -2351,6 +2391,19 @@ exit()
tests/DvisvgmSpecialTest.cpp:
refactored handling of SpecialAction objects
+ * src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h,
+ src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/SVGTree.cpp,
+ src/SVGTree.h:
+ refactored processing of end-of-page (eop) commands
+
+ * doc/dvisvgm.txt.in, src/DVIToSVG.cpp, src/Makefile.am,
+ src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.h,
+ src/PsSpecialHandler.cpp, src/dvisvgm.cpp:
+ added evaluation of PS special 'papersize='
+
+ * CMakeLists.txt:
+ updated CMakeLists.txt
+
2016-06-02 Martin Gieseking <martin.gieseking@uos.de>
* src/DVIToSVG.cpp:
@@ -2363,10 +2416,6 @@ exit()
2016-05-30 Martin Gieseking <martin.gieseking@uos.de>
- * src/BasicDVIReader.cpp, src/BasicDVIReader.h, src/Bezier.h,
- src/TensorProductPatch.h, src/TriangularPatch.h:
- replaced leading spaces with tabs
-
* src/DVIToSVGActions.cpp, src/Font.cpp, src/Makefile.am,
src/SVGCharHandler.cpp, src/SVGCharHandler.h,
src/SVGCharHandlerFactory.cpp, src/SVGCharHandlerFactory.h,
@@ -2376,6 +2425,10 @@ exit()
src/SVGTree.cpp, src/SVGTree.h, src/dvisvgm.cpp:
replaced static SVG text backend by specialized handler classes
+ * src/BasicDVIReader.cpp, src/BasicDVIReader.h, src/Bezier.h,
+ src/TensorProductPatch.h, src/TriangularPatch.h:
+ replaced leading spaces with tabs
+
2016-05-29 Martin Gieseking <martin.gieseking@uos.de>
* src/BasicDVIReader.cpp, src/DVIReader.cpp:
@@ -2400,14 +2453,14 @@ exit()
2016-05-24 Martin Gieseking <martin.gieseking@uos.de>
- * src/TFM.cpp, tests/JFMReaderTest.cpp, tests/TFMReaderTest.cpp:
- fixed calculation of character dimensions in TFM class
+ * src/JFM.cpp, src/JFM.h, src/TFM.cpp, src/TFM.h:
+ TFM: store design size in bp units rather than as fixword
* src/FontMetrics.h, src/JFM.cpp, src/TFM.cpp, src/TFM.h:
added methods to query space-related parameters from TFM/JFM files
- * src/JFM.cpp, src/JFM.h, src/TFM.cpp, src/TFM.h:
- TFM: store design size in bp units rather than as fixword
+ * src/TFM.cpp, tests/JFMReaderTest.cpp, tests/TFMReaderTest.cpp:
+ fixed calculation of character dimensions in TFM class
2016-04-22 Martin Gieseking <martin.gieseking@uos.de>
@@ -2422,23 +2475,23 @@ exit()
2016-04-19 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, README, README.md:
- updated NEWS and README
-
* .travis.yml, configure.ac, src/Doxyfile:
set version to 1.15.1
+ * NEWS, README, README.md:
+ updated NEWS and README
+
2016-04-18 Martin Gieseking <martin.gieseking@uos.de>
- * tests/CMapReaderTest.cpp:
- improved CMapReaderTest
+ * src/Calculator.cpp, src/Matrix.cpp:
+ use std::ws to skip whitespace in istreams
* src/Matrix.cpp:
avoid adding trailing EOF characters when parsing parameters of
transformation commands
- * src/Calculator.cpp, src/Matrix.cpp:
- use std::ws to skip whitespace in istreams
+ * tests/CMapReaderTest.cpp:
+ improved CMapReaderTest
2016-04-11 Martin Gieseking <martin.gieseking@uos.de>
@@ -2448,12 +2501,12 @@ exit()
2016-04-07 Martin Gieseking <martin.gieseking@uos.de>
- * src/Unicode.cpp, tests/UnicodeTest.cpp:
- added support for the AGL character names 'uniFOO' and 'uFOO'
-
* src/XMLDocument.cpp:
explicitly specify UTF-8 encoding in XML declaration (closes #54)
+ * src/Unicode.cpp, tests/UnicodeTest.cpp:
+ added support for the AGL character names 'uniFOO' and 'uFOO'
+
2016-03-17 Martin Gieseking <martin.gieseking@uos.de>
* src/GraphicsPath.h:
@@ -2461,19 +2514,19 @@ exit()
2016-03-14 Martin Gieseking <martin.gieseking@uos.de>
- * src/SVGTree.cpp, src/SVGTree.h:
- split text and path section of SVGTree::appendChar() into seperate
- methods
+ * transfer-cs:
+ remove patch files after they've been transferred
+
+ * doc/db2html.xsl:
+ adapted db2html to insert anchors for each option entry
* src/DVIActions.h, src/DVIReader.cpp, src/DVIToSVGActions.cpp,
src/DVIToSVGActions.h, src/SVGTree.cpp, src/SVGTree.h:
changed font parameter of setFont() methods from pointer to reference
- * doc/db2html.xsl:
- adapted db2html to insert anchors for each option entry
-
- * transfer-cs:
- remove patch files after they've been transferred
+ * src/SVGTree.cpp, src/SVGTree.h:
+ split text and path section of SVGTree::appendChar() into seperate
+ methods
2016-02-27 Martin Gieseking <martin.gieseking@uos.de>
@@ -2482,24 +2535,30 @@ exit()
2016-02-26 Martin Gieseking <martin.gieseking@uos.de>
- * .travis.yml, configure.ac, src/Doxyfile:
- set version to 1.15
-
- * src/FileFinder.cpp, src/FilePath.cpp, src/FileSystem.cpp,
- src/FileSystem.h, src/Font.cpp, src/MetafontWrapper.cpp, src/dvisvgm.cpp:
- changed string parameters of FileSystem functions to type std::string
-
- * src/Font.cpp, src/Unicode.cpp, src/Unicode.h, tests/UnicodeTest.cpp:
- renamed Unicode::psNameToCodepoint() to Unicode::aglNameToCodepoint
-
* doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h,
src/Font.cpp, src/Font.h, src/SVGTree.cpp, src/SVGTree.h,
src/dvisvgm.cpp, src/options.xml:
added option --comments (adds comments with additional information to
the SVG file
+ * src/Font.cpp, src/Unicode.cpp, src/Unicode.h, tests/UnicodeTest.cpp:
+ renamed Unicode::psNameToCodepoint() to Unicode::aglNameToCodepoint
+
+ * src/FileFinder.cpp, src/FilePath.cpp, src/FileSystem.cpp,
+ src/FileSystem.h, src/Font.cpp, src/MetafontWrapper.cpp, src/dvisvgm.cpp:
+ changed string parameters of FileSystem functions to type std::string
+
+ * .travis.yml, configure.ac, src/Doxyfile:
+ set version to 1.15
+
2016-02-23 Martin Gieseking <martin.gieseking@uos.de>
+ * src/FontEngine.cpp:
+ reworded error messages of class FontEngine
+
+ * src/MetafontWrapper.cpp, src/Process.cpp:
+ avoid reading Metafont logfiles to extract the GF filename
+
* configure.ac, src/FileFinder.cpp, src/FileFinder.h,
tests/FileFinderTest.cpp, tests/GFGlyphTracerTest.cpp,
tests/GFReaderTest.cpp, tests/JFMReaderTest.cpp, tests/Makefile.am,
@@ -2516,23 +2575,17 @@ exit()
tests/sample.sfd:
moved test data files to subfolder
- * src/MetafontWrapper.cpp, src/Process.cpp:
- avoid reading Metafont logfiles to extract the GF filename
-
- * src/FontEngine.cpp:
- reworded error messages of class FontEngine
-
2016-02-22 Martin Gieseking <martin.gieseking@uos.de>
- * src/FontEngine.cpp, src/FontEngine.h:
- removed redundant code from class FontEngine
+ * src/CmdLineParserBase.cpp, src/CmdLineParserBase.h,
+ tests/CommandLineTest.cpp:
+ minor improvements of class CommandLineTest
* src/XMLNode.cpp, tests/DvisvgmSpecialTest.cpp:
improved DvisvgmSpecialTest
- * src/CmdLineParserBase.cpp, src/CmdLineParserBase.h,
- tests/CommandLineTest.cpp:
- minor improvements of class CommandLineTest
+ * src/FontEngine.cpp, src/FontEngine.h:
+ removed redundant code from class FontEngine
2016-02-05 Martin Gieseking <martin.gieseking@uos.de>
@@ -2559,36 +2612,36 @@ exit()
2016-01-21 Martin Gieseking <martin.gieseking@uos.de>
+ * m4/ax_code_coverage.m4:
+ updated m4 code coverage script to latest version
+
* src/JFM.h, tests/JFMReaderTest.cpp, tests/Makefile.am,
tests/TFMReaderTest.cpp, tests/cidjmgr0-h.tfm, tests/cmr10.tfm,
tests/create-makefile:
added tests for the TFM and JFM classes
- * m4/ax_code_coverage.m4:
- updated m4 code coverage script to latest version
-
2016-01-19 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, README.md:
- updated NEWS
+ * src/GraphicsPath.h, tests/GraphicsPathTest.cpp:
+ fixed access of invalid iterator
* .travis.yml, configure.ac, src/Doxyfile:
set version to 1.14.2
- * src/GraphicsPath.h, tests/GraphicsPathTest.cpp:
- fixed access of invalid iterator
+ * NEWS, README.md:
+ updated NEWS
2016-01-18 Martin Gieseking <martin.gieseking@uos.de>
- * tests/Makefile.am, tests/create-makefile, tests/genhashcheck.py:
- added test to check the validity of the char name hashes used in
- Unicode.cpp
+ * doc/db2html.xsl:
+ updated links to Bootstrap and Font Awesome in stylesheet db2html.xsl
* src/dvisvgm.cpp, xxHash/xxhash.c, xxHash/xxhash.h:
updated xxHash to version 0.5.0
- * doc/db2html.xsl:
- updated links to Bootstrap and Font Awesome in stylesheet db2html.xsl
+ * tests/Makefile.am, tests/create-makefile, tests/genhashcheck.py:
+ added test to check the validity of the char name hashes used in
+ Unicode.cpp
2016-01-15 Martin Gieseking <martin.gieseking@uos.de>
@@ -2598,30 +2651,24 @@ exit()
2016-01-13 Martin Gieseking <martin.gieseking@uos.de>
+ * src/DVIReader.h, src/FontStyle.h, src/SVGTree.cpp,
+ src/TriangularPatch.cpp:
+ updated/fixed some comments
+
* src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h,
src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, src/DVIToSVG.cpp,
src/SpecialHandler.h, src/SpecialManager.cpp, src/SpecialManager.h:
corrected handling of background color special across DVI pages
- * src/DVIReader.h, src/FontStyle.h, src/SVGTree.cpp,
- src/TriangularPatch.cpp:
- updated/fixed some comments
-
2016-01-05 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS:
- updated NEWS
-
* src/GFReader.cpp, src/GFReader.h:
added checks for misplaced GF commands
-2016-01-04 Martin Gieseking <martin.gieseking@uos.de>
-
- * .travis.yml:
- force Travis to use legacy builds due to an issue with clang and gtest
+ * NEWS:
+ updated NEWS
- * .travis.yml, configure.ac, src/Doxyfile:
- set version to 1.14.1
+2016-01-04 Martin Gieseking <martin.gieseking@uos.de>
* Makefile.am, README, README.md, configure.ac, doc/Makefile.am,
doc/conf-dblatex-man.xsl, doc/conf-dblatex-pdf.xsl, doc/db2html.xsl,
@@ -2706,6 +2753,12 @@ exit()
tests/normalize.xsl:
updated year in copyright statements to 2016
+ * .travis.yml, configure.ac, src/Doxyfile:
+ set version to 1.14.1
+
+ * .travis.yml:
+ force Travis to use legacy builds due to an issue with clang and gtest
+
2015-12-31 Martin Gieseking <martin.gieseking@uos.de>
* src/PsSpecialHandler.cpp, src/PsSpecialHandler.h:
@@ -2713,12 +2766,12 @@ exit()
2015-12-28 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS:
- updated NEWS
-
* .travis.yml, configure.ac, src/Doxyfile:
set version to 1.14
+ * NEWS:
+ updated NEWS
+
2015-12-27 Martin Gieseking <martin.gieseking@uos.de>
* src/PsSpecialHandler.cpp:
@@ -2726,13 +2779,13 @@ exit()
2015-12-26 Martin Gieseking <martin.gieseking@uos.de>
- * src/GraphicsPath.h, tests/GraphicsPathTest.cpp:
- fixed memory issue in class GraphicsPath<T>
-
* src/FileFinder.cpp:
lookup files in the current working directory before searching the texmf
tree
+ * src/GraphicsPath.h, tests/GraphicsPathTest.cpp:
+ fixed memory issue in class GraphicsPath<T>
+
2015-12-17 Martin Gieseking <martin.gieseking@uos.de>
* doc/dvisvgm.txt.in, src/DVIToSVG.cpp, src/DVIToSVG.h,
@@ -2743,23 +2796,23 @@ exit()
2015-12-09 Martin Gieseking <martin.gieseking@uos.de>
- * tests/GhostscriptTest.cpp:
- prevent opening a graphics window when running GhostscriptTest
-
* src/FileFinder.cpp:
return entire kpathsea version string if it doesn't start with
'kpathsea'
+ * tests/GhostscriptTest.cpp:
+ prevent opening a graphics window when running GhostscriptTest
+
2015-12-08 Martin Gieseking <martin.gieseking@uos.de>
- * clipper/clipper.cpp, clipper/clipper.hpp:
- replaced DOS line endings of the Clipper sources to Unix ones
+ * .travis.yml, configure.ac, src/Doxyfile:
+ set version to 1.13
* NEWS:
updated NEWS
- * .travis.yml, configure.ac, src/Doxyfile:
- set version to 1.13
+ * clipper/clipper.cpp, clipper/clipper.hpp:
+ replaced DOS line endings of the Clipper sources to Unix ones
2015-12-02 Martin Gieseking <martin.gieseking@uos.de>
@@ -2775,12 +2828,12 @@ exit()
2015-11-30 Martin Gieseking <martin.gieseking@uos.de>
- * src/GraphicPath.h, src/PsSpecialHandler.cpp:
- remove redundant moveto commands from graphics paths
-
* doc/dvisvgm.txt.in:
added a couple of links to the manpage
+ * src/GraphicPath.h, src/PsSpecialHandler.cpp:
+ remove redundant moveto commands from graphics paths
+
2015-11-27 Martin Gieseking <martin.gieseking@uos.de>
* .gitignore, CMakeLists.txt, cmake/FindGhostscript.cmake,
@@ -2789,48 +2842,48 @@ exit()
2015-11-25 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIToSVGActions.cpp, src/DVIToSVGActions.h:
- removed redundant methods
-
* src/DVIToSVGActions.cpp, src/EPSToSVG.cpp:
remove progress message before printing a PS error message
-2015-11-24 Martin Gieseking <martin.gieseking@uos.de>
+ * src/DVIToSVGActions.cpp, src/DVIToSVGActions.h:
+ removed redundant methods
- * xxHash/xxhash.c:
- updated xxHash to version r42
+2015-11-24 Martin Gieseking <martin.gieseking@uos.de>
* src/psdefs.cpp, src/psdefs.ps:
added evaluation of PS operators ashow, awidthshow, and widthshow (fixes
#49)
+ * xxHash/xxhash.c:
+ updated xxHash to version r42
+
2015-11-23 Martin Gieseking <martin.gieseking@uos.de>
- * src/psdefs.cpp, src/psdefs.ps:
- propagate call of PS operator 'setcolor' to the PS handler
+ * src/PsSpecialHandler.cpp, src/psdefs.cpp, src/psdefs.ps:
+ minor code cleanup and reordering
* src/psdefs.cpp, src/psdefs.ps:
reduce rounding errors produced by PS operator 'charpath'
- * src/PsSpecialHandler.cpp, src/psdefs.cpp, src/psdefs.ps:
- minor code cleanup and reordering
+ * src/psdefs.cpp, src/psdefs.ps:
+ propagate call of PS operator 'setcolor' to the PS handler
2015-11-18 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS:
- updated NEWS
-
* .travis.yml, configure.ac, src/Doxyfile:
set version to 1.12
-2015-11-16 Martin Gieseking <martin.gieseking@uos.de>
+ * NEWS:
+ updated NEWS
- * src/FontEngine.cpp:
- treat character code as character index if no font mapping is set
+2015-11-16 Martin Gieseking <martin.gieseking@uos.de>
* src/FontManager.cpp:
removed redundant #include
+ * src/FontEngine.cpp:
+ treat character code as character index if no font mapping is set
+
2015-11-12 Martin Gieseking <martin.gieseking@uos.de>
* README, README.md:
@@ -2838,6 +2891,13 @@ exit()
2015-11-09 Martin Gieseking <martin.gieseking@uos.de>
+ * src/Color.cpp, src/Color.h, src/ColorSpecialHandler.cpp,
+ src/HtmlSpecialHandler.cpp, tests/ColorTest.cpp:
+ renamed Color::setName() to Color::setPSName()
+
+ * tests/Makefile.am, tests/ShadingPatch.cpp, tests/ShadingPatchTest.cpp:
+ renamed ShadingPatchTest
+
* doc/dvisvgm.txt.in, src/Color.cpp, src/Color.h, src/CommandLine.cpp,
src/CommandLine.h, src/DVIToSVGActions.cpp,
src/DvisvgmSpecialHandler.cpp, src/EmSpecialHandler.cpp,
@@ -2847,13 +2907,6 @@ exit()
added option --colornames to replace RGB color values with SVG color
names
- * tests/Makefile.am, tests/ShadingPatch.cpp, tests/ShadingPatchTest.cpp:
- renamed ShadingPatchTest
-
- * src/Color.cpp, src/Color.h, src/ColorSpecialHandler.cpp,
- src/HtmlSpecialHandler.cpp, tests/ColorTest.cpp:
- renamed Color::setName() to Color::setPSName()
-
2015-10-27 Martin Gieseking <martin.gieseking@uos.de>
* src/Process.cpp, src/Process.h:
@@ -2871,21 +2924,21 @@ exit()
2015-09-14 Martin Gieseking <martin.gieseking@uos.de>
- * src/Font.cpp, src/Unicode.cpp, src/Unicode.h, tests/UnicodeTest.cpp:
- renamed Unicode::psName2Codepoint to Unicode::psNameToCodepoint
-
* src/Font.cpp, src/ToUnicodeMap.cpp, src/Unicode.cpp, src/Unicode.h,
tests/UnicodeTest.cpp:
improved handling of invalid Unicode points
-2015-09-10 Martin Gieseking <martin.gieseking@uos.de>
+ * src/Font.cpp, src/Unicode.cpp, src/Unicode.h, tests/UnicodeTest.cpp:
+ renamed Unicode::psName2Codepoint to Unicode::psNameToCodepoint
- * src/HtmlSpecialHandler.cpp:
- quote XML metacharacters in xlink:title attributes
+2015-09-10 Martin Gieseking <martin.gieseking@uos.de>
* src/Font.cpp:
prevent creating 0x00 codepoints if PS character name is unknown
+ * src/HtmlSpecialHandler.cpp:
+ quote XML metacharacters in xlink:title attributes
+
2015-09-09 Martin Gieseking <martin.gieseking@uos.de>
* src/SVGTree.cpp:
@@ -2899,14 +2952,14 @@ exit()
2015-07-29 Martin Gieseking <martin.gieseking@uos.de>
- * tests/CommandLineTest.cpp, tests/MessageExceptionTest.cpp:
- use ASSERT_STREQ in tests
+ * tests/GhostscriptTest.cpp, tests/Makefile.am:
+ added GhostscriptTest
* tests/UnicodeTest.cpp:
improved UnicodeTest
- * tests/GhostscriptTest.cpp, tests/Makefile.am:
- added GhostscriptTest
+ * tests/CommandLineTest.cpp, tests/MessageExceptionTest.cpp:
+ use ASSERT_STREQ in tests
2015-07-22 Martin Gieseking <martin.gieseking@uos.de>
@@ -2921,12 +2974,12 @@ exit()
2015-07-14 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS:
- updated NEWS
-
* .travis.yml, configure.ac, src/Doxyfile:
set version to 1.10
+ * NEWS:
+ updated NEWS
+
2015-07-12 Martin Gieseking <martin.gieseking@uos.de>
* README.md, doc/dvisvgm.txt.in, src/BasicDVIReader.cpp,
@@ -2941,35 +2994,35 @@ exit()
2015-07-03 Martin Gieseking <martin.gieseking@uos.de>
- * src/MiKTeXCom.cpp:
- added some comments to MiKTeXCom.cpp
-
* src/dvisvgm.cpp:
check for option --help before initializing the FileFinder
+ * src/MiKTeXCom.cpp:
+ added some comments to MiKTeXCom.cpp
+
2015-07-02 Martin Gieseking <martin.gieseking@uos.de>
- * src/Font.cpp, src/Makefile.am, src/Unicode.cpp, src/Unicode.h,
- tests/Makefile.am, tests/create-makefile:
- added mapping from character names to unicode for PostScript fonts
+ * tests/BezierTest.cpp:
+ removed #include "debug.h" from test
* Makefile.am, configure.ac, xxHash/LICENSE, xxHash/Makefile.am,
xxHash/xxhash.c, xxHash/xxhash.h:
added xxHash library (https://github.com/Cyan4973/xxHash)
- * tests/BezierTest.cpp:
- removed #include "debug.h" from test
+ * src/Font.cpp, src/Makefile.am, src/Unicode.cpp, src/Unicode.h,
+ tests/Makefile.am, tests/create-makefile:
+ added mapping from character names to unicode for PostScript fonts
2015-04-07 Martin Gieseking <martin.gieseking@uos.de>
- * src/SVGTree.cpp:
- apply --precision settings to font-size attributes too
+ * .travis.yml, configure.ac, src/Doxyfile:
+ set version to 1.9.2
* NEWS, README.md:
updated NEWS and README.md
- * .travis.yml, configure.ac, src/Doxyfile:
- set version to 1.9.2
+ * src/SVGTree.cpp:
+ apply --precision settings to font-size attributes too
2015-04-04 Martin Gieseking <martin.gieseking@uos.de>
@@ -2983,30 +3036,30 @@ exit()
2015-03-26 Martin Gieseking <martin.gieseking@uos.de>
- * src/GFReader.cpp, src/GFReader.h, tests/GFReaderTest.cpp:
- improved GFReaderTest
-
* src/GlyphTracerMessages.h:
always skip tracer message if no glyphs have been traced
-2015-03-25 Martin Gieseking <martin.gieseking@uos.de>
+ * src/GFReader.cpp, src/GFReader.h, tests/GFReaderTest.cpp:
+ improved GFReaderTest
- * src/DVIToSVG.cpp:
- avoid retracing of fonts if option --no-fonts is given
+2015-03-25 Martin Gieseking <martin.gieseking@uos.de>
* src/GFGlyphTracer.cpp, src/GFTracer.h, tests/GFGlyphTracerTest.cpp,
tests/Makefile.am:
ensure GFGlyphTracer::executeChar() returns the correct status; added
GFGlyphtracerTest
-2015-03-22 Martin Gieseking <martin.gieseking@uos.de>
+ * src/DVIToSVG.cpp:
+ avoid retracing of fonts if option --no-fonts is given
- * tests/SVGOutputTest.cpp:
- improved SVGOutputTest
+2015-03-22 Martin Gieseking <martin.gieseking@uos.de>
* tests/StreamWriterTest.cpp:
fixed StreamWriterTest
+ * tests/SVGOutputTest.cpp:
+ improved SVGOutputTest
+
2015-03-19 Martin Gieseking <martin.gieseking@uos.de>
* tests/Makefile.am, tests/ShadingPatch.cpp:
@@ -3014,8 +3067,10 @@ exit()
2015-03-18 Martin Gieseking <martin.gieseking@uos.de>
- * src/TensorProductPatch.h, tests/TensorProductPatchTest.cpp:
- improved TensorProductPatchTest
+ * src/ShadingPatch.h, src/TensorProductPatch.cpp,
+ src/TensorProductPatch.h, src/TriangularPatch.cpp, src/TriangularPatch.h,
+ tests/Makefile.am, tests/TriangularPatchTest.cpp:
+ added test for class TriangularPatch
* src/Bezier.cpp, src/Bezier.h, src/TensorProductPatch.cpp,
src/TriangularPatch.cpp, src/TriangularPatch.h,
@@ -3023,10 +3078,8 @@ exit()
renamed method pointAt() of class Bezier and TriangularPatch to
valueAt()
- * src/ShadingPatch.h, src/TensorProductPatch.cpp,
- src/TensorProductPatch.h, src/TriangularPatch.cpp, src/TriangularPatch.h,
- tests/Makefile.am, tests/TriangularPatchTest.cpp:
- added test for class TriangularPatch
+ * src/TensorProductPatch.h, tests/TensorProductPatchTest.cpp:
+ improved TensorProductPatchTest
2015-03-17 Martin Gieseking <martin.gieseking@uos.de>
@@ -3035,16 +3088,16 @@ exit()
2015-03-15 Martin Gieseking <martin.gieseking@uos.de>
- * tests/Makefile.am, tests/VectorIteratorTest.cpp:
- added VectorIteratorTest
+ * src/XMLNode.cpp, src/XMLNode.h, tests/Makefile.am,
+ tests/XMLNodeTest.cpp:
+ fixed a few issues in class XMLElementNode; added XMLNodeTest
* Makefile.am, clipper/Makefile.am, configure.ac, m4/ax_code_coverage.m4,
src/Makefile.am, tests/Makefile.am, tests/create-makefile:
extended build system to generate coverage reports
- * src/XMLNode.cpp, src/XMLNode.h, tests/Makefile.am,
- tests/XMLNodeTest.cpp:
- fixed a few issues in class XMLElementNode; added XMLNodeTest
+ * tests/Makefile.am, tests/VectorIteratorTest.cpp:
+ added VectorIteratorTest
2015-03-13 Martin Gieseking <martin.gieseking@uos.de>
@@ -3053,12 +3106,12 @@ exit()
2015-03-09 Martin Gieseking <martin.gieseking@uos.de>
- * tests/GraphicPathTest.cpp:
- extended tests of class GraphicPath
-
* tests/CRC32Test.cpp:
added test for 'compute' methods of class CRC32
+ * tests/GraphicPathTest.cpp:
+ extended tests of class GraphicPath
+
2015-03-08 Martin Gieseking <martin.gieseking@uos.de>
* tests/StreamReaderTest.cpp:
@@ -3066,30 +3119,30 @@ exit()
2015-03-07 Martin Gieseking <martin.gieseking@uos.de>
- * .gitignore:
- added .gitignore
-
* src/XMLString.cpp, tests/Makefile.am, tests/XMLStringTest.cpp:
fixed conversion from C and C++ strings to XMLString; added
XMLStringTest
-2015-03-06 Martin Gieseking <martin.gieseking@uos.de>
+ * .gitignore:
+ added .gitignore
- * src/BoundingBox.cpp, src/BoundingBox.h, tests/BoundingBoxTest.cpp:
- improved BoundingBox tests
+2015-03-06 Martin Gieseking <martin.gieseking@uos.de>
* src/Bitmap.cpp, src/Bitmap.h, tests/BitmapTest.cpp,
tests/GFReaderTest.cpp, tests/Makefile.am:
small refactorings of class Bitmap; added tests for class Bitmap
-2015-03-01 Martin Gieseking <martin.gieseking@uos.de>
+ * src/BoundingBox.cpp, src/BoundingBox.h, tests/BoundingBoxTest.cpp:
+ improved BoundingBox tests
- * README.md:
- added license badge to README.md
+2015-03-01 Martin Gieseking <martin.gieseking@uos.de>
* .travis.yml:
Travis conf: added configuration data for Coverity Scan
+ * README.md:
+ added license badge to README.md
+
2015-02-28 Martin Gieseking <martin.gieseking@uos.de>
* NEWS, README.md:
@@ -3112,39 +3165,39 @@ exit()
2015-02-20 Martin Gieseking <martin.gieseking@uos.de>
- * doc/Makefile.am, doc/db2html.xsl, doc/dvisvgm.css:
- create html manpage with a separate stylesheet matching the new website
- theme
+ * doc/dvisvgm.txt.in, src/SVGOutput.cpp, src/SVGOutput.h,
+ tests/Makefile.am, tests/SVGOutputTest.cpp, tests/create-makefile:
+ added width specifiers and exression evaluation to --output patterns
+
+ * doc/dvisvgm.txt.in:
+ minor additions and formatting changes of the manpage
* doc/Makefile.am, doc/conf-dblatex-man.xsl, doc/conf-dblatex-pdf.xsl,
doc/dvisvgm.sty, doc/dvisvgm.xpr, doc/tweak-dblatex-pdf.xsl:
improved the layout of the pdf manpage
- * doc/dvisvgm.txt.in:
- minor additions and formatting changes of the manpage
-
- * doc/dvisvgm.txt.in, src/SVGOutput.cpp, src/SVGOutput.h,
- tests/Makefile.am, tests/SVGOutputTest.cpp, tests/create-makefile:
- added width specifiers and exression evaluation to --output patterns
+ * doc/Makefile.am, doc/db2html.xsl, doc/dvisvgm.css:
+ create html manpage with a separate stylesheet matching the new website
+ theme
2015-02-19 Martin Gieseking <martin.gieseking@uos.de>
* .travis.yml:
- Travis conf: build gtest libraries since Ubuntu doesn't provide the
- binaries
+ added configuration file for Travis CI
* .travis.yml:
- Travis conf: added missing call of 'configure'
+ added dependency 'python-lxml' to Travis configuration
* .travis.yml:
added dependency 'libgtest-dev' to Travis configuration; ensure call of
'make check'
* .travis.yml:
- added dependency 'python-lxml' to Travis configuration
+ Travis conf: added missing call of 'configure'
* .travis.yml:
- added configuration file for Travis CI
+ Travis conf: build gtest libraries since Ubuntu doesn't provide the
+ binaries
2015-02-18 Martin Gieseking <martin.gieseking@uos.de>
@@ -3252,22 +3305,6 @@ exit()
2014-12-28 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS:
- updated NEWS
-
- * configure.ac, src/Doxyfile:
- set version to 1.9
-
- * src/dvisvgm.cpp:
- clear line before printing the message about user interruption to avoid
- trailing text fragments
-
- * src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/EPSToSVG.cpp,
- src/EPSToSVG.h, src/SpecialActions.h, src/SpecialManager.cpp,
- src/dvisvgm.cpp:
- show PS instruction counter when processing EPS files with option
- --progress
-
* doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h,
src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/ShadingPatch.h,
src/TensorProductPatch.cpp, src/TensorProductPatch.h,
@@ -3276,6 +3313,22 @@ exit()
added command-line options --grad-overlap, --grad-segments, and
--grad-simplify
+ * src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/EPSToSVG.cpp,
+ src/EPSToSVG.h, src/SpecialActions.h, src/SpecialManager.cpp,
+ src/dvisvgm.cpp:
+ show PS instruction counter when processing EPS files with option
+ --progress
+
+ * src/dvisvgm.cpp:
+ clear line before printing the message about user interruption to avoid
+ trailing text fragments
+
+ * configure.ac, src/Doxyfile:
+ set version to 1.9
+
+ * NEWS:
+ updated NEWS
+
2014-12-20 Martin Gieseking <martin.gieseking@uos.de>
* src/DVIReader.cpp:
@@ -3283,17 +3336,17 @@ exit()
2014-12-18 Martin Gieseking <martin.gieseking@uos.de>
- * src/Color.cpp, src/Color.h, src/Makefile.am, src/PsSpecialHandler.cpp,
- src/PsSpecialHandler.h, src/VectorIterator.h, src/psdefs.cpp,
- src/psdefs.ps:
- extended PS operator 'shfill' to support triangular patch meshes
+ * src/Makefile.am, src/TriangularPatch.cpp, src/TriangularPatch.h:
+ added class to compute triangular shading patches
* src/Makefile.am, src/PsSpecialHandler.cpp, src/ShadingPatch.cpp,
src/ShadingPatch.h, src/TensorProductPatch.cpp, src/TensorProductPatch.h:
extracted common interface class ShadingPatch from TensorProductPatch
- * src/Makefile.am, src/TriangularPatch.cpp, src/TriangularPatch.h:
- added class to compute triangular shading patches
+ * src/Color.cpp, src/Color.h, src/Makefile.am, src/PsSpecialHandler.cpp,
+ src/PsSpecialHandler.h, src/VectorIterator.h, src/psdefs.cpp,
+ src/psdefs.ps:
+ extended PS operator 'shfill' to support triangular patch meshes
2014-12-16 Martin Gieseking <martin.gieseking@uos.de>
@@ -3302,13 +3355,13 @@ exit()
2014-12-03 Martin Gieseking <martin.gieseking@uos.de>
- * src/Color.cpp, tests/ColorSpecialTest.cpp, tests/ColorTest.cpp:
- fixed CMYK to RGB approximation
-
* src/CommandLine.cpp, src/CommandLine.h, src/dvisvgm.cpp,
src/options.xml:
disable option --clipjoin if PS support is disabled
+ * src/Color.cpp, tests/ColorSpecialTest.cpp, tests/ColorTest.cpp:
+ fixed CMYK to RGB approximation
+
2014-11-27 Martin Gieseking <martin.gieseking@uos.de>
* src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp,
@@ -3346,39 +3399,39 @@ exit()
2014-10-23 Martin Gieseking <martin.gieseking@uos.de>
- * src/Color.cpp, src/Color.h, tests/ColorTest.cpp:
- added deltaE and L*a*b* color space methods to class Color
-
- * src/Color.cpp, src/Color.h:
- replaced vectors with valarrays in class Color
+ * src/Color.cpp, src/Color.h, src/ColorSpecialHandler.cpp,
+ src/PsSpecialHandler.cpp, tests/ColorTest.cpp:
+ replaced float by double in class Color
* src/Color.cpp, src/Color.h, src/ColorSpecialHandler.cpp,
src/DVIReader.cpp, src/HtmlSpecialHandler.cpp, src/PsSpecialHandler.cpp,
tests/ColorTest.cpp:
renamed RGB setters/getters of class Color
- * src/Color.cpp, src/Color.h, src/ColorSpecialHandler.cpp,
- src/PsSpecialHandler.cpp, tests/ColorTest.cpp:
- replaced float by double in class Color
+ * src/Color.cpp, src/Color.h:
+ replaced vectors with valarrays in class Color
+
+ * src/Color.cpp, src/Color.h, tests/ColorTest.cpp:
+ added deltaE and L*a*b* color space methods to class Color
2014-10-17 Martin Gieseking <martin.gieseking@uos.de>
+ * clipper/clipper.cpp, clipper/clipper.hpp:
+ updated clipper library to version 6.2.0
+
* src/GraphicPath.h, src/PathClipper.cpp, src/PathClipper.h,
src/XMLNode.h:
fixed a couple of doxygen comments; removed redundant
PathClipperException
- * clipper/clipper.cpp, clipper/clipper.hpp:
- updated clipper library to version 6.2.0
-
2014-10-08 Martin Gieseking <martin.gieseking@uos.de>
- * src/Ghostscript.cpp:
- try to lookup the location of the GS DLL in the Windows registry
-
* src/CommandLine.cpp:
updated CommandLine.cpp with description of option --no-merge
+ * src/Ghostscript.cpp:
+ try to lookup the location of the GS DLL in the Windows registry
+
2014-10-01 Martin Gieseking <martin.gieseking@uos.de>
* doc/dvisvgm.txt.in, src/options.xml:
@@ -3407,17 +3460,17 @@ opt2cpp XSLT.
2014-08-29 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS:
- updated NEWS
-
- * configure.ac, src/Doxyfile:
- set version to 1.8.1
+ * src/PsSpecialHandler.cpp:
+ added missing whitespace boundaries in PS code
* src/FontEngine.cpp, tests/PageRagesTest.cpp:
removed unused static functions
- * src/PsSpecialHandler.cpp:
- added missing whitespace boundaries in PS code
+ * configure.ac, src/Doxyfile:
+ set version to 1.8.1
+
+ * NEWS:
+ updated NEWS
2014-08-20 Khaled Hosny <khaled.hosny@hindawi.com>
@@ -3450,10 +3503,7 @@ Makes post processing the SVG
2014-08-10 Khaled Hosny <khaledhosny@eglug.org>
* configure.ac, src/Makefile.am:
- Don't override CPPFLAGS and LDFLAGS in configure
-
-For the same reasons
- as the previous commit
+ EXTRA_LIBS is not used anymore
* configure.ac, src/Makefile.am:
Don't override CXXFLAGS in configure script
@@ -3464,7 +3514,10 @@ Breaks standard things
make CXXFLAGS="-g -O0 -pg"
* configure.ac, src/Makefile.am:
- EXTRA_LIBS is not used anymore
+ Don't override CPPFLAGS and LDFLAGS in configure
+
+For the same reasons
+ as the previous commit
2014-08-07 Martin Gieseking <martin.gieseking@uos.de>
@@ -3488,15 +3541,15 @@ Breaks standard things
2014-07-28 Martin Gieseking <martin.gieseking@uos.de>
- * configure.ac, src/Doxyfile:
- set version to 1.8
-
* src/GraphicPath.h, src/PSInterpreter.cpp, src/PSInterpreter.h,
src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/psdefs.cpp,
src/psdefs.ps, tests/PSInterpreterTest.cpp:
added evaluation of PS operator 'clippath' (copies clipping path into
graphics path)
+ * configure.ac, src/Doxyfile:
+ set version to 1.8
+
2014-07-26 Martin Gieseking <martin.gieseking@uos.de>
* src/Font.cpp, src/GFGlyphTracer.cpp, src/GraphicPath.h,
@@ -3511,26 +3564,26 @@ Breaks standard things
2014-07-22 Martin Gieseking <martin.gieseking@uos.de>
- * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h,
- src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/dvisvgm.cpp,
- src/options.xml:
- added option --clippath to compute the intersection of clipping paths
-
- * README, README.md, src/Bezier.cpp, src/Bezier.h, src/GraphicPath.h,
- src/Makefile.am, src/PathClipper.cpp, src/PathClipper.h, src/dvisvgm.cpp:
- added class PathClipper to compute intersections of closed curved
- graphics paths
-
- * src/GraphicPath.h:
- added field to store the winding rule to class GraphicPath
+ * src/DVIToSVG.h, src/dvisvgm.cpp:
+ prevent throwing a DVIException when option -l is present
* Makefile.am, clipper/License.txt, clipper/Makefile.am,
clipper/clipper.cpp, clipper/clipper.hpp, configure.ac, src/Makefile.am:
added slightly modified sources of clipper library (computes boolops on
polygons)
- * src/DVIToSVG.h, src/dvisvgm.cpp:
- prevent throwing a DVIException when option -l is present
+ * src/GraphicPath.h:
+ added field to store the winding rule to class GraphicPath
+
+ * README, README.md, src/Bezier.cpp, src/Bezier.h, src/GraphicPath.h,
+ src/Makefile.am, src/PathClipper.cpp, src/PathClipper.h, src/dvisvgm.cpp:
+ added class PathClipper to compute intersections of closed curved
+ graphics paths
+
+ * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h,
+ src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/dvisvgm.cpp,
+ src/options.xml:
+ added option --clippath to compute the intersection of clipping paths
2014-07-20 Khaled Hosny <khaledhosny@eglug.org>
@@ -3539,15 +3592,15 @@ Breaks standard things
2014-07-18 Martin Gieseking <martin.gieseking@uos.de>
- * src/TpicSpecialHandler.cpp:
- TPIC handler: use class GraphicPath to create SVG path commands
-
* doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h,
src/GraphicPath.h, src/PsSpecialHandler.cpp, src/SVGTree.cpp,
src/SVGTree.h, src/dvisvgm.cpp, src/options.xml,
tests/GraphicPathTest.cpp:
added option to create relative rather than absolute path commands
+ * src/TpicSpecialHandler.cpp:
+ TPIC handler: use class GraphicPath to create SVG path commands
+
2014-07-07 Martin Gieseking <martin.gieseking@uos.de>
* src/DVIToSVGActions.h, src/Doxyfile, src/HtmlSpecialHandler.h,
@@ -3572,22 +3625,22 @@ Breaks standard things
2014-06-17 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS:
- updated NEWS
-
- * configure.ac, src/Doxyfile:
- set version to 1.7
-
- * src/InputReader.cpp:
- added missing include
+ * src/SpecialManager.cpp, src/SpecialManager.h:
+ removed redundant method SpecialManager::leavePSHeaderSection()
* doc/dvisvgm.txt.in, src/DVIToSVGActions.cpp,
src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h,
tests/DvisvgmSpecialTest.cpp, tests/Makefile.am:
added/improved dvisvgm::raw* specials
- * src/SpecialManager.cpp, src/SpecialManager.h:
- removed redundant method SpecialManager::leavePSHeaderSection()
+ * src/InputReader.cpp:
+ added missing include
+
+ * configure.ac, src/Doxyfile:
+ set version to 1.7
+
+ * NEWS:
+ updated NEWS
2014-06-12 Martin Gieseking <martin.gieseking@uos.de>
@@ -3596,14 +3649,14 @@ Breaks standard things
2014-06-11 Martin Gieseking <martin.gieseking@uos.de>
+ * src/InputReader.cpp, src/InputReader.h:
+ added InputReader::getLine()
+
* src/DVIToSVG.cpp, src/SpecialHandler.h, src/SpecialManager.cpp,
src/SpecialManager.h:
added listener to allow SpecialHandlers being notified when
pre-processing has finished
- * src/InputReader.cpp, src/InputReader.h:
- added InputReader::getLine()
-
2014-06-10 Martin Gieseking <martin.gieseking@uos.de>
* src/SpecialActions.h, tests/ColorSpecialTest.cpp:
@@ -3611,15 +3664,49 @@ Breaks standard things
2014-06-09 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIToSVG.h, src/SpecialManager.h:
- removed redundant definition of assignment operators
-
* src/DVIReader.cpp, src/Ghostscript.cpp:
removed unused variable; call Ghostscript::exit() with explicitely given
object
+ * src/DVIToSVG.h, src/SpecialManager.h:
+ removed redundant definition of assignment operators
+
2014-06-05 Martin Gieseking <martin.gieseking@uos.de>
+ * src/BasicDVIReader.cpp, src/BasicDVIReader.h, src/DVIReader.cpp,
+ src/DVIReader.h, src/Makefile.am:
+ moved basic funtionality of DVIReader to base class BasicDVIReader
+
+ * src/BasicDVIReader.h, src/DVIReader.cpp, src/DVIToSVG.cpp,
+ src/DVIToSVG.h, src/dvisvgm.cpp:
+ moved call of executePreamble() and executePostamble() from DVIToSVG to
+ DVIReader
+
+ * src/DVIActions.h, src/DVIReader.cpp, src/DVIToSVG.cpp, src/DVIToSVG.h,
+ src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Makefile.am,
+ src/PreScanDVIReader.cpp, src/PreScanDVIReader.h,
+ src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/SpecialHandler.h,
+ src/SpecialManager.cpp, src/SpecialManager.h, src/StreamReader.cpp,
+ src/StreamReader.h:
+ pre-process DVI file to collect required data not present in the page
+ ranges to be converted
+
+ * src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp,
+ src/SpecialManager.cpp, src/SpecialManager.h, src/dvisvgm.cpp:
+ made class SpecialManager a singleton
+
+ * src/BasicDVIReader.h, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp,
+ src/DVIToSVGActions.h:
+ allow to replace the DVI reader assigned to an instance of
+ DVIToSVGActions
+
+ * doc/dvisvgm.txt.in, src/BasicDVIReader.h, src/DVIToSVG.cpp,
+ src/DVIToSVG.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h,
+ src/EPSToSVG.cpp, src/EPSToSVG.h, src/HtmlSpecialHandler.cpp,
+ src/HtmlSpecialHandler.h, src/PreScanDVIReader.cpp,
+ src/PreScanDVIReader.h, src/SpecialActions.h:
+ process hyperref anchors and links across pages
+
* src/BasicDVIReader.cpp, src/BasicDVIReader.h, src/Bitmap.h,
src/BoundingBox.h, src/CMap.h, src/CMapManager.cpp, src/CMapManager.h,
src/CMapReader.h, src/CRC32.h, src/Calculator.cpp, src/Calculator.h,
@@ -3649,115 +3736,81 @@ Breaks standard things
src/XMLString.h, src/dvisvgm.cpp, src/types.h:
replaced leading spaces by tabs; removed trailing whitespace
- * doc/dvisvgm.txt.in, src/BasicDVIReader.h, src/DVIToSVG.cpp,
- src/DVIToSVG.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h,
- src/EPSToSVG.cpp, src/EPSToSVG.h, src/HtmlSpecialHandler.cpp,
- src/HtmlSpecialHandler.h, src/PreScanDVIReader.cpp,
- src/PreScanDVIReader.h, src/SpecialActions.h:
- process hyperref anchors and links across pages
-
- * src/BasicDVIReader.h, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp,
- src/DVIToSVGActions.h:
- allow to replace the DVI reader assigned to an instance of
- DVIToSVGActions
-
- * src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp,
- src/SpecialManager.cpp, src/SpecialManager.h, src/dvisvgm.cpp:
- made class SpecialManager a singleton
-
- * src/DVIActions.h, src/DVIReader.cpp, src/DVIToSVG.cpp, src/DVIToSVG.h,
- src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Makefile.am,
- src/PreScanDVIReader.cpp, src/PreScanDVIReader.h,
- src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/SpecialHandler.h,
- src/SpecialManager.cpp, src/SpecialManager.h, src/StreamReader.cpp,
- src/StreamReader.h:
- pre-process DVI file to collect required data not present in the page
- ranges to be converted
-
- * src/BasicDVIReader.h, src/DVIReader.cpp, src/DVIToSVG.cpp,
- src/DVIToSVG.h, src/dvisvgm.cpp:
- moved call of executePreamble() and executePostamble() from DVIToSVG to
- DVIReader
-
- * src/BasicDVIReader.cpp, src/BasicDVIReader.h, src/DVIReader.cpp,
- src/DVIReader.h, src/Makefile.am:
- moved basic funtionality of DVIReader to base class BasicDVIReader
-
2014-06-03 Martin Gieseking <martin.gieseking@uos.de>
- * src/PsSpecialHandler.cpp:
- fixed incorrect extent values shown when applying a preview bbox
- (bp->pt)
+ * src/DVIReader.cpp, src/DVIReader.h:
+ removed redundant variable DVIReader::_prevBop
* rpm/Makefile.am:
removed outdated project folder 'rpm'
- * src/DVIReader.cpp, src/DVIReader.h:
- removed redundant variable DVIReader::_prevBop
+ * src/PsSpecialHandler.cpp:
+ fixed incorrect extent values shown when applying a preview bbox
+ (bp->pt)
2014-06-01 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIReader.cpp, src/DVIReader.h:
- removed redundant code from DVIReader::evalCommand()
-
* src/EPSFile.cpp, src/GFReader.cpp:
replaced relative variant of seekg() by absolute one where possible
+ * src/DVIReader.cpp, src/DVIReader.h:
+ removed redundant code from DVIReader::evalCommand()
+
2014-05-31 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIReader.cpp, src/StreamReader.h, src/VFReader.cpp:
- renamed some methods of class StreamReader
+ * src/DVIReader.cpp, src/VFReader.cpp:
+ few code adjustments
* src/DVIReader.cpp, src/StreamReader.cpp, src/StreamReader.h,
src/VFReader.cpp:
removed StreamReader::in()
- * src/DVIReader.cpp, src/VFReader.cpp:
- few code adjustments
+ * src/DVIReader.cpp, src/StreamReader.h, src/VFReader.cpp:
+ renamed some methods of class StreamReader
2014-05-29 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIReader.cpp, src/DVIReader.h:
- simplified DVIReader::executePage; removed DVIReader::executePages
-
- * src/DVIReader.cpp, src/DVIReader.h, src/dvisvgm.cpp:
- simplified computation of progress ratio
+ * src/DVIReader.cpp, src/DVIReader.h, src/StreamReader.h:
+ collect all DVI BOP offsets to reach them quickly
* src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h:
removed DVIReader::_totalPages; use number of BOP offsets instead
- * src/DVIReader.cpp, src/DVIReader.h, src/StreamReader.h:
- collect all DVI BOP offsets to reach them quickly
+ * src/DVIReader.cpp, src/DVIReader.h, src/dvisvgm.cpp:
+ simplified computation of progress ratio
+
+ * src/DVIReader.cpp, src/DVIReader.h:
+ simplified DVIReader::executePage; removed DVIReader::executePages
2014-05-22 Martin Gieseking <martin.gieseking@uos.de>
- * src/Makefile.am:
- Makefiles: put source files on separate lines
+ * src/CharMap.cpp, src/CharMap.h, src/Font.cpp, src/FontEngine.cpp,
+ src/FontEngine.h:
+ removed redundant method CharMap::invert()
- * src/Makefile.am, src/RangeMap.h, src/ToUnicodeMap.cpp,
- src/ToUnicodeMap.h, tests/Makefile.am, tests/ToUnicodeMapTest.cpp:
- added class ToUnicodeMap to handle mappings from character indexes to
- unicode points
+ * src/CMap.cpp, src/CMap.h, src/Makefile.am, src/RangeMap.cpp,
+ src/RangeMap.h, tests/Makefile.am, tests/RangeMapTest.cpp:
+ extracted class RangeMap previously implemented as part of SegmentedCMap
- * src/DVIToSVG.cpp, src/Makefile.am, src/NumericRanges.h,
- src/PageRanges.cpp, src/PageRanges.h, tests/PageRagesTest.cpp:
- extracted functionality of class PageRanges to separate class
- NumericRanges
+ * src/RangeMap.cpp:
+ fixed right joins of touching ranges in a RangeMap
* src/CharMap.cpp, src/CharMap.h, src/Font.cpp, src/Font.h,
src/FontEngine.cpp, src/FontEngine.h, src/Makefile.am:
replaced class CharMap with more generic class RangeMap
- * src/RangeMap.cpp:
- fixed right joins of touching ranges in a RangeMap
+ * src/DVIToSVG.cpp, src/Makefile.am, src/NumericRanges.h,
+ src/PageRanges.cpp, src/PageRanges.h, tests/PageRagesTest.cpp:
+ extracted functionality of class PageRanges to separate class
+ NumericRanges
- * src/CMap.cpp, src/CMap.h, src/Makefile.am, src/RangeMap.cpp,
- src/RangeMap.h, tests/Makefile.am, tests/RangeMapTest.cpp:
- extracted class RangeMap previously implemented as part of SegmentedCMap
+ * src/Makefile.am, src/RangeMap.h, src/ToUnicodeMap.cpp,
+ src/ToUnicodeMap.h, tests/Makefile.am, tests/ToUnicodeMapTest.cpp:
+ added class ToUnicodeMap to handle mappings from character indexes to
+ unicode points
- * src/CharMap.cpp, src/CharMap.h, src/Font.cpp, src/FontEngine.cpp,
- src/FontEngine.h:
- removed redundant method CharMap::invert()
+ * src/Makefile.am:
+ Makefiles: put source files on separate lines
2014-04-30 Martin Gieseking <martin.gieseking@uos.de>
@@ -3793,39 +3846,33 @@ Breaks standard things
2014-04-17 Martin Gieseking <martin.gieseking@uos.de>
- * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/options.xml:
- changed default argument of option --linkmark to 'box'
+ * src/CommandLine.h, src/DVIToSVG.cpp, src/EPSToSVG.cpp:
+ don't link GS messages unnecessarily if HAVE_LIBGS is defined
* src/DVIReader.h, src/DVIToSVGActions.h, src/HtmlSpecialHandler.cpp,
src/HtmlSpecialHandler.h, src/SpecialActions.h:
only split hyperlink boxes on line breaks
- * src/CommandLine.h, src/DVIToSVG.cpp, src/EPSToSVG.cpp:
- don't link GS messages unnecessarily if HAVE_LIBGS is defined
+ * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/options.xml:
+ changed default argument of option --linkmark to 'box'
2014-04-16 Martin Gieseking <martin.gieseking@uos.de>
- * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h,
- src/SVGTree.cpp, src/SVGTree.h, src/dvisvgm.cpp, src/options.xml:
- added command-line option --zoom
-
- * src/Ghostscript.cpp, src/dvisvgm.cpp:
- moved lookup of MiKTeX's GS DLL to get_libgs()
+ * src/DLLoader.cpp:
+ prevent calling dlopen() if the length of the string argument is 0
* doc/dvisvgm.txt.in, src/Ghostscript.cpp:
if libgs is loaded during runtime, look for libgs.so.X instead of
libgs.so
- * src/DLLoader.cpp:
- prevent calling dlopen() if the length of the string argument is 0
-
-2014-04-11 Martin Gieseking <martin.gieseking@uos.de>
+ * src/Ghostscript.cpp, src/dvisvgm.cpp:
+ moved lookup of MiKTeX's GS DLL to get_libgs()
- * NEWS:
- updated NEWS
+ * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h,
+ src/SVGTree.cpp, src/SVGTree.h, src/dvisvgm.cpp, src/options.xml:
+ added command-line option --zoom
- * configure.ac, src/Doxyfile:
- set version to 1.5.3
+2014-04-11 Martin Gieseking <martin.gieseking@uos.de>
* src/CMap.cpp, src/CmdLineParserBase.cpp, src/ColorSpecialHandler.cpp,
src/DVIReader.cpp, src/DVIToSVGActions.cpp, src/Doxyfile,
@@ -3839,8 +3886,17 @@ Breaks standard things
src/XMLNode.cpp, src/dvisvgm.cpp:
fixed issues in the doxygen documentation
+ * configure.ac, src/Doxyfile:
+ set version to 1.5.3
+
+ * NEWS:
+ updated NEWS
+
2014-04-09 Martin Gieseking <martin.gieseking@uos.de>
+ * src/DVIToSVGActions.cpp:
+ equalize implementations of moveToX and moveToY
+
* src/BoundingBox.h, src/DVIActions.cpp, src/DVIActions.h,
src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp,
src/DVIToSVGActions.cpp, src/DVIToSVGActions.h,
@@ -3856,9 +3912,6 @@ Breaks standard things
src/VFReader.cpp:
switched internal computations from TeX points (pt) to PS points (bp)
- * src/DVIToSVGActions.cpp:
- equalize implementations of moveToX and moveToY
-
2014-02-05 Martin Gieseking <martin.gieseking@uos.de>
* src/DVIReader.cpp, src/DVIReader.h:
@@ -3877,17 +3930,17 @@ Breaks standard things
2014-01-03 Martin Gieseking <martin.gieseking@uos.de>
- * configure.ac, src/Doxyfile:
- set version to 1.5.2
-
* src/FileFinder.cpp:
- return 'unknown' if MiKTeX version can't be retrieved
+ catch exceptions thrown by MiKTeXCom object
* src/Directory.cpp:
initialize Directory member variables (Win only)
* src/FileFinder.cpp:
- catch exceptions thrown by MiKTeXCom object
+ return 'unknown' if MiKTeX version can't be retrieved
+
+ * configure.ac, src/Doxyfile:
+ set version to 1.5.2
2014-01-02 Martin Gieseking <martin.gieseking@uos.de>
@@ -3959,38 +4012,38 @@ Breaks standard things
2013-12-29 Martin Gieseking <martin.gieseking@uos.de>
- * src/FontCache.cpp:
- catch potential StreamReaderException
+ * src/Font.cpp:
+ check if units per EM are not 0 to prevent divisions by zero
* src/Directory.cpp, src/Directory.h, src/FontMap.cpp,
tests/DirectoryTest.cpp:
changed directory entry types from char to enums
- * src/Font.cpp:
- check if units per EM are not 0 to prevent divisions by zero
+ * src/FontCache.cpp:
+ catch potential StreamReaderException
2013-12-18 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIReader.cpp, src/Directory.cpp, src/GFReader.cpp:
- added missing initializations of member variables
+ * src/BoundingBox.cpp:
+ explicitely initialize BoundingBox fields
- * src/FontCache.cpp, src/SpecialManager.cpp:
- restore stream format flags
+ * src/FontCache.cpp:
+ avoid accessing strings constructed from temporaries
- * src/DvisvgmSpecialHandler.cpp, src/FontCache.cpp:
- ensure null pointer checks before dereferencing
+ * src/Matrix.cpp:
+ ensure return value of istream::get() is assigned to int vars
* src/DVIReader.cpp:
check if denominator of DVI unit is non-zero
- * src/Matrix.cpp:
- ensure return value of istream::get() is assigned to int vars
+ * src/DvisvgmSpecialHandler.cpp, src/FontCache.cpp:
+ ensure null pointer checks before dereferencing
- * src/FontCache.cpp:
- avoid accessing strings constructed from temporaries
+ * src/FontCache.cpp, src/SpecialManager.cpp:
+ restore stream format flags
- * src/BoundingBox.cpp:
- explicitely initialize BoundingBox fields
+ * src/DVIReader.cpp, src/Directory.cpp, src/GFReader.cpp:
+ added missing initializations of member variables
2013-11-16 Martin Gieseking <martin.gieseking@uos.de>
@@ -4004,18 +4057,18 @@ Breaks standard things
2013-10-28 Martin Gieseking <martin.gieseking@uos.de>
- * configure.ac, src/Doxyfile:
- set version to 1.5.1
+ * src/Bitmap.cpp, src/Color.cpp, src/JFM.cpp, src/Matrix.cpp:
+ added missing #includes of header file <algorithm>
+
+ * src/FileSystem.cpp, src/MetafontWrapper.cpp:
+ added explicit casts from ifstream to bool
* src/DVIReader.cpp:
temporarily reactivated processing of font definitions located in the
postamble
- * src/FileSystem.cpp, src/MetafontWrapper.cpp:
- added explicit casts from ifstream to bool
-
- * src/Bitmap.cpp, src/Color.cpp, src/JFM.cpp, src/Matrix.cpp:
- added missing #includes of header file <algorithm>
+ * configure.ac, src/Doxyfile:
+ set version to 1.5.1
2013-10-27 Martin Gieseking <martin.gieseking@uos.de>
@@ -4030,36 +4083,27 @@ Breaks standard things
2013-10-12 Martin Gieseking <martin.gieseking@uos.de>
- * src/Color.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h:
- added 'const' to read-only methods
-
* src/InputBuffer.h:
don't check unsigned variables for negative values
+ * src/Color.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h:
+ added 'const' to read-only methods
+
2013-09-21 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIToSVG.cpp:
- changed warning message that appears if PS support has been disabled
- permanently
+ * src/FontCache.cpp, src/FontCache.h:
+ renamed FontCache::VERSION to FontCache::FORMAT_VERSION
* src/DVIToSVG.cpp, src/Ghostscript.h, src/dvisvgm.cpp:
added missing guards and functions to prevent compilation errors if
DISABLE_GS is set
- * src/FontCache.cpp, src/FontCache.h:
- renamed FontCache::VERSION to FontCache::FORMAT_VERSION
+ * src/DVIToSVG.cpp:
+ changed warning message that appears if PS support has been disabled
+ permanently
2013-09-01 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS:
- updated NEWS
-
- * configure.ac, src/Doxyfile:
- set version to 1.5
-
- * src/DLLoader.h, src/Directory.h:
- moved #define NOMINMAX to Windows config.h
-
* src/BgColorSpecialHandler.cpp, src/Bitmap.cpp, src/BoundingBox.cpp,
src/CMap.cpp, src/CMapManager.cpp, src/CMapReader.cpp, src/CRC32.cpp,
src/Calculator.cpp, src/CharMap.cpp, src/CmdLineParserBase.cpp,
@@ -4085,19 +4129,19 @@ Breaks standard things
src/XMLDocument.cpp, src/XMLNode.cpp, src/XMLString.cpp, src/dvisvgm.cpp:
include config.h at the top of every translation unit
-2013-08-30 Martin Gieseking <martin.gieseking@uos.de>
+ * src/DLLoader.h, src/Directory.h:
+ moved #define NOMINMAX to Windows config.h
- * doc/dvisvgm.txt.in:
- updated manpage
+ * configure.ac, src/Doxyfile:
+ set version to 1.5
- * src/Font.cpp, src/Font.h, src/XMLString.cpp:
- replaced entity references by corresponding UTF-8 characters; use
- correct unicode points rather than DVI charcodes
+ * NEWS:
+ updated NEWS
- * src/DVIReader.cpp, src/DVIReader.h, src/Font.cpp, src/Font.h,
- src/FontEngine.cpp, src/FontEngine.h, src/FontManager.cpp,
- src/FontManager.h, src/FontStyle.h, src/SVGTree.cpp, src/dvisvgm.cpp:
- added support for XDV (DVI format 5) files
+2013-08-30 Martin Gieseking <martin.gieseking@uos.de>
+
+ * src/FontMetrics.h, src/JFM.cpp, src/JFM.h, src/TFM.h:
+ added retrieval of vertical mode flag to class FontMetrics
* src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h,
src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Font.cpp, src/Font.h,
@@ -4105,8 +4149,17 @@ Breaks standard things
src/SVGTree.cpp, src/SVGTree.h, src/TFM.h, src/dvisvgm.cpp:
added support for DVI format 3 (pTeX, vertical mode)
- * src/FontMetrics.h, src/JFM.cpp, src/JFM.h, src/TFM.h:
- added retrieval of vertical mode flag to class FontMetrics
+ * src/DVIReader.cpp, src/DVIReader.h, src/Font.cpp, src/Font.h,
+ src/FontEngine.cpp, src/FontEngine.h, src/FontManager.cpp,
+ src/FontManager.h, src/FontStyle.h, src/SVGTree.cpp, src/dvisvgm.cpp:
+ added support for XDV (DVI format 5) files
+
+ * src/Font.cpp, src/Font.h, src/XMLString.cpp:
+ replaced entity references by corresponding UTF-8 characters; use
+ correct unicode points rather than DVI charcodes
+
+ * doc/dvisvgm.txt.in:
+ updated manpage
2013-08-29 Martin Gieseking <martin.gieseking@uos.de>
@@ -4128,23 +4181,23 @@ Breaks standard things
2013-08-13 Martin Gieseking <martin.gieseking@uos.de>
- * src/Font.cpp, src/Font.h, src/FontEncoding.cpp, src/FontEncoding.h,
- src/FontManager.cpp, src/FontMap.cpp, src/FontMap.h:
- moved assignment of base font map to Font class
-
* src/CMap.cpp, src/CMap.h, src/CMapManager.cpp, src/CMapManager.h,
src/EncFile.h, src/Font.cpp, src/Font.h, src/FontEncoding.cpp,
src/FontEncoding.h, src/FontManager.cpp, src/FontMap.cpp, src/FontMap.h:
derive EncodingPair from FontEncoding
-2013-08-11 Martin Gieseking <martin.gieseking@uos.de>
+ * src/Font.cpp, src/Font.h, src/FontEncoding.cpp, src/FontEncoding.h,
+ src/FontManager.cpp, src/FontMap.cpp, src/FontMap.h:
+ moved assignment of base font map to Font class
- * src/dvisvgm.cpp:
- fix number of dashes printed by -V1
+2013-08-11 Martin Gieseking <martin.gieseking@uos.de>
* configure.ac, src/FileFinder.cpp:
check if the kpathsea library is C++-safe (patch by Peter Breitenlohner)
+ * src/dvisvgm.cpp:
+ fix number of dashes printed by -V1
+
2013-08-08 Martin Gieseking <martin.gieseking@uos.de>
* src/Matrix.cpp, src/Matrix.h:
@@ -4152,14 +4205,14 @@ Breaks standard things
2013-08-04 Martin Gieseking <martin.gieseking@uos.de>
- * src/Ghostscript.h, src/PSPreviewFilter.cpp, src/PsSpecialHandler.cpp:
- added missing variable initializations
-
* src/Font.cpp, src/Font.h, src/FontEngine.cpp, src/FontManager.cpp,
src/FontMap.cpp, src/FontMap.h, src/FontStyle.h, src/Makefile.am:
store pointers to font map and encoding in Font objects to speed up
looking them up
+ * src/Ghostscript.h, src/PSPreviewFilter.cpp, src/PsSpecialHandler.cpp:
+ added missing variable initializations
+
2013-08-03 Martin Gieseking <martin.gieseking@uos.de>
* src/CMapManager.cpp, src/CMapManager.h, src/FontManager.cpp:
@@ -4167,61 +4220,42 @@ Breaks standard things
2013-08-02 Martin Gieseking <martin.gieseking@uos.de>
- * src/CMap.h, src/CMapManager.cpp:
- properly handle 'unicode' encoding entries set in font map
-
* src/DVIActions.h, src/DVIReader.cpp, src/DVIToSVG.cpp:
disable font processing while scanning PS header specials
-2013-08-01 Martin Gieseking <martin.gieseking@uos.de>
-
- * configure.ac, src/Doxyfile:
- set version to 1.4
-
- * NEWS:
- updated NEWS
+ * src/CMap.h, src/CMapManager.cpp:
+ properly handle 'unicode' encoding entries set in font map
- * src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.h, src/EPSToSVG.h,
- src/Matrix.cpp, src/Matrix.h, src/PsSpecialHandler.cpp,
- src/SpecialActions.h, src/dvisvgm.cpp:
- apply page transformations to width, height, and depth of preview bbox
+2013-08-01 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIToSVG.cpp:
- removed redundant #include statements
+ * src/XMLDocument.cpp, src/XMLString.cpp:
+ changed encoding of SVG files from ISO-8859-1 to UTF-8
* src/DVIToSVG.cpp, src/Makefile.am, src/SVGTree.cpp,
src/XMLDocTypeNode.h:
removed DOCTYPE declaration from generated files as suggested by the SVG
specification
- * src/XMLDocument.cpp, src/XMLString.cpp:
- changed encoding of SVG files from ISO-8859-1 to UTF-8
-
-2013-07-31 Martin Gieseking <martin.gieseking@uos.de>
+ * src/DVIToSVG.cpp:
+ removed redundant #include statements
- * src/CMap.h, src/CMapManager.cpp, src/CMapManager.h, src/CMapReader.cpp,
- src/CharMapID.cpp, src/CharMapID.h, src/Font.cpp, src/Font.h,
- src/FontEngine.cpp, src/FontEngine.h, src/FontManager.cpp,
- src/FontMap.cpp, src/FontMap.h, src/Makefile.am:
- try to decode characters of non-CID fonts that have a CMap assigned in
- the fontmap
+ * src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.h, src/EPSToSVG.h,
+ src/Matrix.cpp, src/Matrix.h, src/PsSpecialHandler.cpp,
+ src/SpecialActions.h, src/dvisvgm.cpp:
+ apply page transformations to width, height, and depth of preview bbox
- * src/CMap.cpp, src/CMap.h, src/CMapReader.cpp, src/CMapReader.h,
- tests/CMapReaderTest.cpp, tests/CMapTest.cpp, tests/Makefile.am:
- added evaluation of base font (bf) sections in CMap files
+ * NEWS:
+ updated NEWS
- * src/Font.cpp, src/Font.h, src/FontMetric.cpp, src/FontMetric.h,
- src/FontMetrics.cpp, src/FontMetrics.h, src/Makefile.am, src/TFM.h:
- renamed class FontMetric to FontMetrics
+ * configure.ac, src/Doxyfile:
+ set version to 1.4
- * src/FileFinder.cpp, src/Font.cpp, src/Font.h, src/FontManager.cpp:
- added support for OTF fonts
+2013-07-31 Martin Gieseking <martin.gieseking@uos.de>
- * src/CMap.cpp, src/CMap.h, src/Character.h, src/EncFile.h, src/Font.cpp,
- src/Font.h, src/FontEncoding.h, src/FontEngine.cpp, src/FontEngine.h,
- src/Makefile.am, tests/CMapTest.cpp:
- added Character class to handle character names, codes, and indexes
- consistently
+ * src/CMap.cpp, src/CMap.h, src/CMapManager.cpp, src/CMapManager.h,
+ src/CMapReader.cpp, src/CMapReader.h, src/FontManager.cpp,
+ src/Makefile.am, tests/CMapTest.cpp, tests/Makefile.am:
+ added classes to handle CMap files
* src/CMap.cpp, src/CMap.h, src/CMapManager.h, src/EncFile.cpp,
src/EncFile.h, src/FileFinder.cpp, src/Font.cpp, src/Font.h,
@@ -4231,23 +4265,35 @@ Breaks standard things
derive .enc encoding vectors and CMaps from common base class
FontEncoding
- * src/CMap.cpp, src/CMap.h, src/CMapManager.cpp, src/CMapManager.h,
- src/CMapReader.cpp, src/CMapReader.h, src/FontManager.cpp,
- src/Makefile.am, tests/CMapTest.cpp, tests/Makefile.am:
- added classes to handle CMap files
+ * src/CMap.cpp, src/CMap.h, src/Character.h, src/EncFile.h, src/Font.cpp,
+ src/Font.h, src/FontEncoding.h, src/FontEngine.cpp, src/FontEngine.h,
+ src/Makefile.am, tests/CMapTest.cpp:
+ added Character class to handle character names, codes, and indexes
+ consistently
-2013-07-27 Martin Gieseking <martin.gieseking@uos.de>
+ * src/FileFinder.cpp, src/Font.cpp, src/Font.h, src/FontManager.cpp:
+ added support for OTF fonts
- * doc/dvisvgm.txt.in, src/DVIActions.h, src/DVIReader.cpp,
- src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h,
- src/EPSToSVG.cpp, src/Makefile.am, src/PSFilter.h, src/PSInterpreter.cpp,
- src/PSInterpreter.h, src/PSPreviewFilter.cpp, src/PSPreviewFilter.h,
- src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/SpecialActions.h,
- src/SpecialHandler.h, src/SpecialManager.cpp, src/SpecialManager.h:
- added evaluation of bounding box information created by preview package
+ * src/Font.cpp, src/Font.h, src/FontMetric.cpp, src/FontMetric.h,
+ src/FontMetrics.cpp, src/FontMetrics.h, src/Makefile.am, src/TFM.h:
+ renamed class FontMetric to FontMetrics
- * src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp:
- added funtion to execute PS code snippets and retrieve their results
+ * src/CMap.cpp, src/CMap.h, src/CMapReader.cpp, src/CMapReader.h,
+ tests/CMapReaderTest.cpp, tests/CMapTest.cpp, tests/Makefile.am:
+ added evaluation of base font (bf) sections in CMap files
+
+ * src/CMap.h, src/CMapManager.cpp, src/CMapManager.h, src/CMapReader.cpp,
+ src/CharMapID.cpp, src/CharMapID.h, src/Font.cpp, src/Font.h,
+ src/FontEngine.cpp, src/FontEngine.h, src/FontManager.cpp,
+ src/FontMap.cpp, src/FontMap.h, src/Makefile.am:
+ try to decode characters of non-CID fonts that have a CMap assigned in
+ the fontmap
+
+2013-07-27 Martin Gieseking <martin.gieseking@uos.de>
+
+ * src/JFM.cpp:
+ fixed retrieval of char indexes if a JFM contains entries of chartype 0
+ only
* src/BgColorSpecialHandler.h, src/DVIToSVG.cpp, src/PSInterpreter.cpp,
src/PSInterpreter.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h,
@@ -4255,20 +4301,27 @@ Breaks standard things
ensure that PS header code is evaluated before the page/body code; also
execute bop-hook and eop-hook
- * src/JFM.cpp:
- fixed retrieval of char indexes if a JFM contains entries of chartype 0
- only
+ * src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp:
+ added funtion to execute PS code snippets and retrieve their results
+
+ * doc/dvisvgm.txt.in, src/DVIActions.h, src/DVIReader.cpp,
+ src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h,
+ src/EPSToSVG.cpp, src/Makefile.am, src/PSFilter.h, src/PSInterpreter.cpp,
+ src/PSInterpreter.h, src/PSPreviewFilter.cpp, src/PSPreviewFilter.h,
+ src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/SpecialActions.h,
+ src/SpecialHandler.h, src/SpecialManager.cpp, src/SpecialManager.h:
+ added evaluation of bounding box information created by preview package
2013-07-23 Martin Gieseking <martin.gieseking@uos.de>
- * src/FontMap.cpp:
- check for EOF prior to try to parse another mapline
+ * src/EPSToSVG.cpp:
+ print warning message if height or width of EPS bbox is 0
* src/psdefs.cpp, src/psdefs.ps:
PS handler: call newpath before executing charpath in operator show
- * src/EPSToSVG.cpp:
- print warning message if height or width of EPS bbox is 0
+ * src/FontMap.cpp:
+ check for EOF prior to try to parse another mapline
2013-07-18 Martin Gieseking <martin.gieseking@uos.de>
@@ -4277,21 +4330,21 @@ Breaks standard things
2013-07-17 Martin Gieseking <martin.gieseking@uos.de>
- * src/psdefs.cpp, src/psdefs.ps:
- properly store PS operator applyscalevals in systemdict
-
* src/DVIToSVG.cpp:
ensure catching PSExceptions while processing PS header specials to
prevent segfaults
-2013-07-14 Martin Gieseking <martin.gieseking@uos.de>
+ * src/psdefs.cpp, src/psdefs.ps:
+ properly store PS operator applyscalevals in systemdict
- * src/FileFinder.cpp, src/FileFinder.h:
- FileFinder: added lookup of cmap files
+2013-07-14 Martin Gieseking <martin.gieseking@uos.de>
* src/Process.cpp, src/Process.h:
extended Process::run() to grab the output written to stdout
+ * src/FileFinder.cpp, src/FileFinder.h:
+ FileFinder: added lookup of cmap files
+
2013-07-08 Martin Gieseking <martin.gieseking@uos.de>
* src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/CommandLine.cpp:
@@ -4324,66 +4377,66 @@ Breaks standard things
2013-05-13 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS:
- updated NEWS
+ * src/Font.cpp, src/Font.h, src/FontManager.h, src/FontMetric.cpp,
+ src/FontMetric.h, src/Makefile.am, src/TFM.cpp, src/TFM.h:
+ handle invalid TFM files properly
- * configure.ac, src/Doxyfile:
- set version to 1.3
+ * src/Font.cpp, src/FontMetric.cpp, src/FontMetric.h, src/JFM.cpp,
+ src/JFM.h, src/Makefile.am, src/StreamReader.h, src/TFM.cpp, src/TFM.h:
+ added support for Japanese font metric (JFM) files
- * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h,
- src/HtmlSpecialHandler.cpp, src/dvisvgm.cpp, src/options.xml:
- added option --linkmark to select the highlighing variant for hyperlinks
+ * src/FileFinder.cpp, src/MiKTeXCom.cpp, src/MiKTeXCom.h, src/dvisvgm.cpp:
+ try to load the Ghostscript library that comes with MiKTeX
* doc/dvisvgm.txt.in, src/DVIToSVG.cpp, src/HtmlSpecialHandler.cpp,
src/HtmlSpecialHandler.h, src/Makefile.am, src/SpecialManager.cpp:
added support of hyperref specials
- * src/FileFinder.cpp, src/MiKTeXCom.cpp, src/MiKTeXCom.h, src/dvisvgm.cpp:
- try to load the Ghostscript library that comes with MiKTeX
+ * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h,
+ src/HtmlSpecialHandler.cpp, src/dvisvgm.cpp, src/options.xml:
+ added option --linkmark to select the highlighing variant for hyperlinks
- * src/Font.cpp, src/FontMetric.cpp, src/FontMetric.h, src/JFM.cpp,
- src/JFM.h, src/Makefile.am, src/StreamReader.h, src/TFM.cpp, src/TFM.h:
- added support for Japanese font metric (JFM) files
+ * configure.ac, src/Doxyfile:
+ set version to 1.3
- * src/Font.cpp, src/Font.h, src/FontManager.h, src/FontMetric.cpp,
- src/FontMetric.h, src/Makefile.am, src/TFM.cpp, src/TFM.h:
- handle invalid TFM files properly
+ * NEWS:
+ updated NEWS
2013-05-02 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp,
- src/DVIToSVG.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h,
- src/EmSpecialHandler.cpp, src/EmSpecialHandler.h,
- src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.h,
- src/SpecialHandler.h, src/SpecialManager.cpp, src/SpecialManager.h,
- src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h:
- added page number parameter to DVIEndPageListener::dviEndPage()
+ * AUTHORS, Makefile.am, README, configure.ac, potracelib/Makefile.am,
+ potracelib/auxiliary.h, potracelib/bitmap.h, potracelib/curve.c,
+ potracelib/curve.h, potracelib/decompose.c, potracelib/decompose.h,
+ potracelib/lists.h, potracelib/potracelib.c, potracelib/potracelib.h,
+ potracelib/progress.h, potracelib/trace.c, potracelib/trace.h:
+ removed bundled potrace library
- * src/EmSpecialHandler.h, src/NoPsSpecialHandler.h, src/SpecialHandler.h,
- src/SpecialManager.cpp, src/SpecialManager.h, src/TpicSpecialHandler.h:
- moved DVI listener methods to dedicated listener interface classes
+ * src/SVGTree.cpp, src/SVGTree.h:
+ added methods to push and pop 'context elements' to a page that wrap
+ parts of the page contents
- * src/HtmlSpecialHandler.h:
- dropped old HtmlSpecialHandler.h that should had been removed long time
- ago
+ * src/DVIToSVGActions.h, src/EPSToSVG.h, src/SpecialActions.h:
+ provide the context push/pop methods of class SVGTree to special
+ handlers
* src/InputReader.cpp, src/InputReader.h:
added optional parameter 'quotechar' to InputReader::parseAttributes()
- * src/DVIToSVGActions.h, src/EPSToSVG.h, src/SpecialActions.h:
- provide the context push/pop methods of class SVGTree to special
- handlers
+ * src/HtmlSpecialHandler.h:
+ dropped old HtmlSpecialHandler.h that should had been removed long time
+ ago
- * src/SVGTree.cpp, src/SVGTree.h:
- added methods to push and pop 'context elements' to a page that wrap
- parts of the page contents
+ * src/EmSpecialHandler.h, src/NoPsSpecialHandler.h, src/SpecialHandler.h,
+ src/SpecialManager.cpp, src/SpecialManager.h, src/TpicSpecialHandler.h:
+ moved DVI listener methods to dedicated listener interface classes
- * AUTHORS, Makefile.am, README, configure.ac, potracelib/Makefile.am,
- potracelib/auxiliary.h, potracelib/bitmap.h, potracelib/curve.c,
- potracelib/curve.h, potracelib/decompose.c, potracelib/decompose.h,
- potracelib/lists.h, potracelib/potracelib.c, potracelib/potracelib.h,
- potracelib/progress.h, potracelib/trace.c, potracelib/trace.h:
- removed bundled potrace library
+ * src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp,
+ src/DVIToSVG.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h,
+ src/EmSpecialHandler.cpp, src/EmSpecialHandler.h,
+ src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.h,
+ src/SpecialHandler.h, src/SpecialManager.cpp, src/SpecialManager.h,
+ src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h:
+ added page number parameter to DVIEndPageListener::dviEndPage()
2013-05-01 Martin Gieseking <martin.gieseking@uos.de>
@@ -4402,12 +4455,6 @@ Breaks standard things
2013-04-24 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS:
- updated NEWS
-
- * configure.ac, src/Doxyfile:
- set version to 1.2.2
-
* src/BoundingBox.cpp, src/BoundingBox.h, src/Calculator.cpp,
src/Calculator.h, src/Matrix.cpp, src/Matrix.h, src/MessageException.h,
src/PageSize.cpp, src/PageSize.h, src/StreamReader.cpp,
@@ -4415,16 +4462,22 @@ Breaks standard things
src/XMLDocument.cpp, src/XMLDocument.h:
added missing underscores to private member variables
+ * configure.ac, src/Doxyfile:
+ set version to 1.2.2
+
+ * NEWS:
+ updated NEWS
+
2013-04-23 Martin Gieseking <martin.gieseking@uos.de>
+ * src/DVIToSVG.cpp, src/EPSToSVG.cpp, src/dvisvgm.cpp:
+ avoid output of empty parentheses if TARGET_SYSTEM is not set
+
* src/BoundingBox.cpp, src/BoundingBox.h, src/Calculator.h,
src/CmdLineParserBase.h, src/DVIToSVGActions.cpp, src/Message.cpp,
src/VFReader.cpp:
added missing member initializations to some classes
- * src/DVIToSVG.cpp, src/EPSToSVG.cpp, src/dvisvgm.cpp:
- avoid output of empty parentheses if TARGET_SYSTEM is not set
-
2013-04-20 Martin Gieseking <martin.gieseking@uos.de>
* src/DVIToSVG.cpp, src/Makefile.am, src/NoPsSpecialHandler.cpp,
@@ -4438,25 +4491,25 @@ Breaks standard things
2013-04-09 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS:
- updated NEWS
+ * tests/Makefile.am, tests/create-makefile:
+ updated tests/Makefile.am to honor system potracelib if present
* configure.ac, src/Doxyfile:
set version to 1.2.1
- * tests/Makefile.am, tests/create-makefile:
- updated tests/Makefile.am to honor system potracelib if present
+ * NEWS:
+ updated NEWS
2013-04-08 Martin Gieseking <martin.gieseking@uos.de>
- * src/PageRanges.h:
- dropped unused variable PageRanges::_max
+ * doc/dvisvgm.txt.in, src/Color.cpp, src/Color.h, src/DVIToSVGActions.cpp:
+ allow the background color special to insert white rectancles
* src/CmdLineParserBase.h, src/InputReader.h:
changed 'struct InputReader' to 'class InputReader'
- * doc/dvisvgm.txt.in, src/Color.cpp, src/Color.h, src/DVIToSVGActions.cpp:
- allow the background color special to insert white rectancles
+ * src/PageRanges.h:
+ dropped unused variable PageRanges::_max
2013-04-04 Martin Gieseking <martin.gieseking@uos.de>
@@ -4488,27 +4541,27 @@ Breaks standard things
2013-02-28 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS:
- updated NEWS
-
- * configure.ac, src/Doxyfile:
- set version to 1.2
+ * src/Makefile.am, src/PSInterpreter.cpp, src/PSInterpreter.h,
+ src/PSPattern.cpp, src/PSPattern.h, src/PsSpecialHandler.cpp,
+ src/PsSpecialHandler.h, src/psdefs.ps, src/psdefs.psc,
+ tests/PSInterpreterTest.cpp:
+ PS handler: added support of tiling patterns
- * src/psdefs.cpp, src/psdefs.ps:
- improved processing of PS operator "show"
+ * src/Makefile.am, src/PSInterpreter.cpp, src/psdefs.cpp, src/psdefs.ps,
+ src/psdefs.psc:
+ make psdefs a separate compilation unit
* tests/MapLineTest.cpp:
prevent MapLineTest from failing if file UGBK.sfd is not available
- * src/Makefile.am, src/PSInterpreter.cpp, src/psdefs.cpp, src/psdefs.ps,
- src/psdefs.psc:
- make psdefs a separate compilation unit
+ * src/psdefs.cpp, src/psdefs.ps:
+ improved processing of PS operator "show"
- * src/Makefile.am, src/PSInterpreter.cpp, src/PSInterpreter.h,
- src/PSPattern.cpp, src/PSPattern.h, src/PsSpecialHandler.cpp,
- src/PsSpecialHandler.h, src/psdefs.ps, src/psdefs.psc,
- tests/PSInterpreterTest.cpp:
- PS handler: added support of tiling patterns
+ * configure.ac, src/Doxyfile:
+ set version to 1.2
+
+ * NEWS:
+ updated NEWS
2013-02-21 Martin Gieseking <martin.gieseking@uos.de>
@@ -4518,13 +4571,13 @@ Breaks standard things
2013-02-19 Martin Gieseking <martin.gieseking@uos.de>
- * src/FilePath.cpp:
- adapt path separators on Windows systems to get the correct output path
-
* src/PSInterpreter.cpp, src/PSInterpreter.h:
added PSInterpreter::limit() to limit the number of bytes to be
processed
+ * src/FilePath.cpp:
+ adapt path separators on Windows systems to get the correct output path
+
2013-02-11 Martin Gieseking <martin.gieseking@uos.de>
* src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/CommandLine.cpp,
@@ -4553,28 +4606,28 @@ Breaks standard things
2013-01-21 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, README:
- updated NEWS and README
+ * src/DVIReader.cpp, src/DVIToSVG.cpp, src/FileFinder.cpp, src/Font.cpp,
+ src/Font.h, src/FontEncoding.cpp, src/FontEngine.cpp, src/FontEngine.h,
+ src/FontManager.cpp, src/FontMap.cpp, src/FontMap.h, src/Makefile.am,
+ src/MapLine.cpp, src/MapLine.h, src/Subfont.cpp, src/Subfont.h,
+ tests/FontMapTest.cpp, tests/Makefile.am, tests/MapLineTest.cpp,
+ tests/SubfontTest.cpp, tests/create-makefile, tests/sample.sfd:
+ added support for subfont definitions and multi-font (.ttc) files
- * configure.ac, src/Doxyfile:
- set version to 1.1
+ * src/FontManager.cpp, src/FontMap.cpp, src/FontMap.h, src/MapLine.h:
+ replaced FontMap entries by pointers; initialize entries with MapLine
+ objects
* src/CommandLine.cpp, src/Font.cpp, src/Font.h, src/FontEngine.cpp,
src/FontEngine.h, src/FontManager.cpp, src/FontMap.cpp, src/FontMap.h,
src/MapLine.cpp, src/MapLine.h, tests/MapLineTest.cpp:
implemented evaluation of font style options given in a mapline
- * src/FontManager.cpp, src/FontMap.cpp, src/FontMap.h, src/MapLine.h:
- replaced FontMap entries by pointers; initialize entries with MapLine
- objects
+ * configure.ac, src/Doxyfile:
+ set version to 1.1
- * src/DVIReader.cpp, src/DVIToSVG.cpp, src/FileFinder.cpp, src/Font.cpp,
- src/Font.h, src/FontEncoding.cpp, src/FontEngine.cpp, src/FontEngine.h,
- src/FontManager.cpp, src/FontMap.cpp, src/FontMap.h, src/Makefile.am,
- src/MapLine.cpp, src/MapLine.h, src/Subfont.cpp, src/Subfont.h,
- tests/FontMapTest.cpp, tests/Makefile.am, tests/MapLineTest.cpp,
- tests/SubfontTest.cpp, tests/create-makefile, tests/sample.sfd:
- added support for subfont definitions and multi-font (.ttc) files
+ * NEWS, README:
+ updated NEWS and README
2013-01-20 Martin Gieseking <martin.gieseking@uos.de>
@@ -4583,15 +4636,15 @@ Breaks standard things
2013-01-16 Martin Gieseking <martin.gieseking@uos.de>
- * doc/dvisvgm.txt.in, src/DVIToSVG.cpp, src/FontMap.cpp, src/FontMap.h,
- src/Makefile.am, src/PdfSpecialHandler.cpp, src/PdfSpecialHandler.h:
- added PdfSpecialHandler to evaluate pdf:mapline and pdf:mapfile specials
-
* doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h,
src/FontMap.cpp, src/FontMap.h, src/dvisvgm.cpp, src/options.xml:
renamed option --map-file to --fontmap; allow multiple mapfiles and
modes
+ * doc/dvisvgm.txt.in, src/DVIToSVG.cpp, src/FontMap.cpp, src/FontMap.h,
+ src/Makefile.am, src/PdfSpecialHandler.cpp, src/PdfSpecialHandler.h:
+ added PdfSpecialHandler to evaluate pdf:mapline and pdf:mapfile specials
+
2013-01-10 Martin Gieseking <martin.gieseking@uos.de>
* src/Font.cpp, src/FontEncoding.cpp:
@@ -4661,28 +4714,28 @@ Breaks standard things
2012-12-23 Martin Gieseking <martin.gieseking@uos.de>
- * src/FileFinder.cpp, src/Message.cpp, src/dvisvgm.cpp:
- reduced scope of some variables
+ * src/FontCache.cpp, src/PsSpecialHandler.cpp, src/TpicSpecialHandler.cpp:
+ check emptiness of containers with empty() instead of size()
+
+ * src/FileFinder.cpp, src/MiKTeXCom.cpp, src/Process.cpp:
+ avoid creating copies of exception objects
* src/CmdLineParserBase.h, src/Directory.cpp, src/GFReader.cpp,
src/PsSpecialHandler.cpp:
initialize uninitialized member variables
- * src/FileFinder.cpp, src/MiKTeXCom.cpp, src/Process.cpp:
- avoid creating copies of exception objects
-
- * src/FontCache.cpp, src/PsSpecialHandler.cpp, src/TpicSpecialHandler.cpp:
- check emptiness of containers with empty() instead of size()
+ * src/FileFinder.cpp, src/Message.cpp, src/dvisvgm.cpp:
+ reduced scope of some variables
2012-12-12 Martin Gieseking <martin.gieseking@uos.de>
+ * src/FontCache.cpp:
+ replaced 'char' with 'glyph' in font cache listing
+
* src/SpecialManager.cpp:
clear all corresponding containers when calling
SpecialHandler::unregisterHandlers()
- * src/FontCache.cpp:
- replaced 'char' with 'glyph' in font cache listing
-
2012-12-03 Martin Gieseking <martin.gieseking@uos.de>
* src/Ghostscript.cpp:
@@ -4690,35 +4743,35 @@ Breaks standard things
2012-12-02 Martin Gieseking <martin.gieseking@uos.de>
- * doc/dvisvgm.txt.in, src/Ghostscript.cpp:
- use gsdll64.dll for 64-bit builds; added info about gsdll64.dll to
- manpage
-
- * src/FileFinder.cpp, src/FontEngine.cpp, src/Makefile.am,
- src/MiKTeXCom.cpp, src/MiKTeXCom.h:
- moved MiKTeX COM code to separate class
+ * src/FilePath.cpp, tests/FilePathTest.cpp:
+ strip drive letter if it's not set (Windows only)
- * src/MiKTeX209-session_i.c:
- add additiona files required to build dvisvgm with MinGW
+ * tests/FileSystemTest.cpp, tests/GFReaderTest.cpp:
+ ensure that tests work properly on Windows
* src/macros.h:
removed SHOW() from macros.h
- * tests/FileSystemTest.cpp, tests/GFReaderTest.cpp:
- ensure that tests work properly on Windows
+ * src/MiKTeX209-session_i.c:
+ add additiona files required to build dvisvgm with MinGW
- * src/FilePath.cpp, tests/FilePathTest.cpp:
- strip drive letter if it's not set (Windows only)
+ * src/FileFinder.cpp, src/FontEngine.cpp, src/Makefile.am,
+ src/MiKTeXCom.cpp, src/MiKTeXCom.h:
+ moved MiKTeX COM code to separate class
-2012-11-23 Martin Gieseking <martin.gieseking@uos.de>
+ * doc/dvisvgm.txt.in, src/Ghostscript.cpp:
+ use gsdll64.dll for 64-bit builds; added info about gsdll64.dll to
+ manpage
- * src/PSInterpreter.cpp, src/psdefs.ps, src/psdefs.psc:
- print operand stack in case of a PS error
+2012-11-23 Martin Gieseking <martin.gieseking@uos.de>
* src/Ghostscript.cpp, src/Ghostscript.h, src/PSInterpreter.cpp,
src/PSInterpreter.h, src/dvisvgm.cpp:
print an error message if the execution of PS code fails
+ * src/PSInterpreter.cpp, src/psdefs.ps, src/psdefs.psc:
+ print operand stack in case of a PS error
+
2012-11-22 Martin Gieseking <martin.gieseking@uos.de>
* src/Message.cpp:
@@ -4731,12 +4784,12 @@ Breaks standard things
2012-11-19 Martin Gieseking <martin.gieseking@uos.de>
- * src/Font.cpp, src/Font.h, src/FontManager.cpp:
- print warning if font checksums don't match
-
* src/FontEngine.cpp, src/FontEngine.h:
renamed FontEngine::fname to FontEngine::_fontname
+ * src/Font.cpp, src/Font.h, src/FontManager.cpp:
+ print warning if font checksums don't match
+
2012-11-16 Martin Gieseking <martin.gieseking@uos.de>
* src/Directory.h:
@@ -4744,35 +4797,35 @@ Breaks standard things
2012-11-15 Martin Gieseking <martin.gieseking@uos.de>
- * src/FileFinder.cpp, src/FontManager.cpp, src/FontMap.cpp, src/FontMap.h,
+ * src/FileFinder.cpp, src/FileFinder.h, src/FontMap.cpp, src/FontMap.h,
tests/FontMapTest.cpp:
- adapted code to use new MapLine class; introduced support of map line
- modes
+ made class FontMap a singleton
+
+ * src/FileFinder.cpp, src/FileFinder.h, src/dvisvgm.cpp:
+ moved initialization of FontMap from FileFinder to dvisvgm.cpp
* src/Makefile.am, src/MapLine.cpp, src/MapLine.h, tests/Makefile.am,
tests/MapLineTest.cpp:
added new class MapLine to parse and evaluate a single line of a map
file
- * src/FileFinder.cpp, src/FileFinder.h, src/dvisvgm.cpp:
- moved initialization of FontMap from FileFinder to dvisvgm.cpp
-
- * src/FileFinder.cpp, src/FileFinder.h, src/FontMap.cpp, src/FontMap.h,
+ * src/FileFinder.cpp, src/FontManager.cpp, src/FontMap.cpp, src/FontMap.h,
tests/FontMapTest.cpp:
- made class FontMap a singleton
+ adapted code to use new MapLine class; introduced support of map line
+ modes
2012-11-14 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIToSVG.cpp:
- prevent compilation error when using a C++11 compiler (patch by Peter
+ * src/FileFinder.cpp:
+ initialize Ghostscript when compiled for TeX Live Win32 (patch by Peter
Breitenlohner)
* src/FileFinder.cpp, src/FileFinder.h, src/dvisvgm.cpp,
tests/FileFinderTest.cpp, tests/FontManagerTest.cpp:
initialize second parameter of kpse_set_program_name() correctly
- * src/FileFinder.cpp:
- initialize Ghostscript when compiled for TeX Live Win32 (patch by Peter
+ * src/DVIToSVG.cpp:
+ prevent compilation error when using a C++11 compiler (patch by Peter
Breitenlohner)
2012-11-11 Martin Gieseking <martin.gieseking@uos.de>
@@ -4789,23 +4842,23 @@ Breaks standard things
2012-09-27 Martin Gieseking <martin.gieseking@uos.de>
- * doc/Makefile.am:
- remove manpage when calling 'make distclean'
+ * configure.ac, src/Doxyfile:
+ set version to 1.0.12
* NEWS:
updated NEWS
- * configure.ac, src/Doxyfile:
- set version to 1.0.12
+ * doc/Makefile.am:
+ remove manpage when calling 'make distclean'
2012-09-20 Martin Gieseking <martin.gieseking@uos.de>
- * src/PsSpecialHandler.cpp, src/PsSpecialHandler.h:
- removed Ghostscript info from ps entry in list of special handlers
-
* src/DVIToSVG.cpp:
show warning if processing of PS specials is disabled
+ * src/PsSpecialHandler.cpp, src/PsSpecialHandler.h:
+ removed Ghostscript info from ps entry in list of special handlers
+
2012-06-06 Martin Gieseking <martin.gieseking@uos.de>
* src/gfprint.mak:
@@ -4840,15 +4893,15 @@ Breaks standard things
2012-03-09 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS:
- updated NEWS
+ * src/Ghostscript.cpp, src/Ghostscript.h:
+ added optional parameter to Ghostscript::revision() to retrieve the
+ revision number only
* src/dvisvgm.cpp:
added Ghostscript to library list printed by --version=yes
- * src/Ghostscript.cpp, src/Ghostscript.h:
- added optional parameter to Ghostscript::revision() to retrieve the
- revision number only
+ * NEWS:
+ updated NEWS
2012-03-08 Martin Gieseking <martin.gieseking@uos.de>
@@ -4881,13 +4934,13 @@ Breaks standard things
2012-01-09 Martin Gieseking <martin.gieseking@uos.de>
- * src/TpicSpecialHandler.cpp:
- added some more comments to methods of class TpicSpecialHandler
-
* src/InputReader.cpp, tests/StreamInputBufferTest.cpp:
fixed parsing of negative floating point numbers starting with '-0.' (SF
bug #3471097)
+ * src/TpicSpecialHandler.cpp:
+ added some more comments to methods of class TpicSpecialHandler
+
2012-01-06 Martin Gieseking <martin.gieseking@uos.de>
* Makefile.am, README, configure.ac, doc/Makefile.am, doc/dvisvgm.txt.in,
@@ -4946,25 +4999,25 @@ Breaks standard things
2011-12-18 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS:
- updated NEWS
+ * tests/Makefile.am, tests/create-makefile:
+ link tests with -lpthread (required by gtest on Ubuntu)
* configure.ac, src/Doxyfile:
set version to 1.0.10
- * tests/Makefile.am, tests/create-makefile:
- link tests with -lpthread (required by gtest on Ubuntu)
+ * NEWS:
+ updated NEWS
2011-12-17 Martin Gieseking <martin.gieseking@uos.de>
- * doc/dvisvgm.txt.in:
- added documentation on environment variable DVISVGM_COLORS to manpage
-
* src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, src/GlyphTracerMessages.h,
src/Message.cpp, src/Message.h, src/MetafontWrapper.cpp,
src/Terminal.cpp, src/Terminal.h, src/dvisvgm.cpp:
allow users to customize the message colors
+ * doc/dvisvgm.txt.in:
+ added documentation on environment variable DVISVGM_COLORS to manpage
+
2011-11-22 Martin Gieseking <martin.gieseking@uos.de>
* src/GraphicPath.h:
@@ -4978,63 +5031,39 @@ Breaks standard things
2011-10-28 Martin Gieseking <martin.gieseking@uos.de>
- * src/SVGTree.cpp:
- avoid possible collisions of glyph IDs
-
* src/FontMap.cpp:
removed unused variable eval_prefix in helper function read_entry()
+ * src/SVGTree.cpp:
+ avoid possible collisions of glyph IDs
+
2011-10-13 Martin Gieseking <martin.gieseking@uos.de>
* NEWS:
updated NEWS
-2011-10-10 Martin Gieseking <martin.gieseking@uos.de>
-
- * src/Font.cpp, src/Font.h, src/FontManager.cpp, src/FontManager.h:
- extended class FontManager to handle external fonts
-
- * src/ExternalFont.cpp, src/ExternalFont.h, src/Makefile.am:
- added class ExternalFont
-
2011-10-09 Martin Gieseking <martin.gieseking@uos.de>
- * configure.ac, src/FontDB.cpp, src/FontDB.h, src/Makefile.am:
- added class FontDB
-
- * src/DirectoryTree.cpp, src/DirectoryTree.h, src/Makefile.am,
- tests/DirectoryTreeTest.cpp, tests/Makefile.am:
- added class DirectoryTree
+ * src/FilePath.cpp:
+ added some missing comments to methods of class FilePath
* src/Directory.h:
dropped method Directory::getEntry()
- * src/FilePath.cpp:
- added some missing comments to methods of class FilePath
-
2011-10-07 Martin Gieseking <martin.gieseking@uos.de>
* src/Process.cpp:
- exclude definition of split_paramstr() from Windows builds as it's not
- used there
+ added missing include <signal.h> to Process.cpp
* src/Process.cpp:
- added missing include <signal.h> to Process.cpp
+ exclude definition of split_paramstr() from Windows builds as it's not
+ used there
2011-10-03 Martin Gieseking <martin.gieseking@uos.de>
* doc/Makefile.am:
add metadata/pdfmarks to pdf version of manpage
-2011-09-30 Martin Gieseking <martin.gieseking@uos.de>
-
- * src/InputReader.cpp, src/InputReader.h, tests/StreamInputBufferTest.cpp:
- added InputReader::getUntil() to simplify parsing of an input stream
-
- * src/CommandLine.cpp, src/CommandLine.h, src/dvisvgm.cpp,
- src/options.xml:
- added command-line option --query
-
2011-09-06 Martin Gieseking <martin.gieseking@uos.de>
* potracelib/auxiliary.h, potracelib/bitmap.h, potracelib/curve.c,
@@ -5045,21 +5074,21 @@ Breaks standard things
2011-06-04 Martin Gieseking <martin.gieseking@uos.de>
+ * configure.ac, src/Doxyfile:
+ set version to 1.0.9dev
+
* src/FileFinder.cpp, src/MetafontWrapper.cpp:
fixed segfault occured in TeX Live Win32 caused by mf.exe being
unavailable (SF bug #3308473)
- * configure.ac, src/Doxyfile:
- set version to 1.0.9dev
-
2011-05-31 Martin Gieseking <martin.gieseking@uos.de>
- * src/PsSpecialHandler.cpp:
- explicitly cast double to int in call of ClippingStack::dup()/pop()
-
* NEWS, configure.ac, src/Doxyfile:
set version to 1.0.8; updated NEWS
+ * src/PsSpecialHandler.cpp:
+ explicitly cast double to int in call of ClippingStack::dup()/pop()
+
2011-05-27 Martin Gieseking <martin.gieseking@uos.de>
* tests/check-conv, tests/sample-nf-cmp.svg, tests/sample-wf-cmp.svg:
@@ -5075,14 +5104,14 @@ Breaks standard things
2011-05-22 Martin Gieseking <martin.gieseking@uos.de>
- * src/MetafontWrapper.cpp:
- dropped '--halt-on-error' in Metafont call to process buggy mf files
- completely
-
* src/FileFinder.cpp:
MiKTeX: maketfm and makemf have been renamed to miktex-maketfm and
miktex-makemf
+ * src/MetafontWrapper.cpp:
+ dropped '--halt-on-error' in Metafont call to process buggy mf files
+ completely
+
2011-05-19 Martin Gieseking <martin.gieseking@uos.de>
* src/DLLoader.h:
@@ -5097,67 +5126,58 @@ Breaks standard things
2011-05-07 Martin Gieseking <martin.gieseking@uos.de>
- * src/PsSpecialHandler.cpp:
- fixed potential segfault caused by invisible zero-length paths
-
- * src/PsSpecialHandler.cpp:
- add definitions in literal PS headers to dictionary TeXDict
+ * configure.ac, src/Doxyfile:
+ set version to 1.0.8dev
* src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVGActions.h,
src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/SpecialActions.h:
fixed interaction between PS and DVI drawing position
- * configure.ac, src/Doxyfile:
- set version to 1.0.8dev
+ * src/PsSpecialHandler.cpp:
+ add definitions in literal PS headers to dictionary TeXDict
+
+ * src/PsSpecialHandler.cpp:
+ fixed potential segfault caused by invisible zero-length paths
2011-05-06 Martin Gieseking <martin.gieseking@uos.de>
+ * NEWS, README, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
+ set version to 1.0.7; updated NEWS and README
+
* fedora/dvisvgm-gs.patch, fedora/dvisvgm-potrace.patch,
fedora/dvisvgm.spec:
removed directories 'fedora' and 'homepage'
- * NEWS, README, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
- set version to 1.0.7; updated NEWS and README
-
2011-05-05 Martin Gieseking <martin.gieseking@uos.de>
- * doc/dvisvgm.txt.in:
- added info about dvips rounding issues to manpage
+ * src/PSInterpreter.cpp, src/PsSpecialHandler.cpp:
+ separate PS snippets by newline characters to leave preceding comments
+
+ * src/PsSpecialHandler.h:
+ corrected scaling formula applied to PS line properties
* src/DVIToSVGActions.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h,
src/psdefs.ps, src/psdefs.psc:
PS handler: added missing unit conversions (pt vs. bp)
- * src/PsSpecialHandler.h:
- corrected scaling formula applied to PS line properties
-
- * src/PSInterpreter.cpp, src/PsSpecialHandler.cpp:
- separate PS snippets by newline characters to leave preceding comments
+ * doc/dvisvgm.txt.in:
+ added info about dvips rounding issues to manpage
2011-05-04 Martin Gieseking <martin.gieseking@uos.de>
- * src/Length.h:
- undefine macro IN
+ * src/PsSpecialHandler.cpp:
+ don't call Ghostscript::revision() in initialization of static variable
* src/Ghostscript.cpp, src/Ghostscript.h, src/PSInterpreter.cpp,
src/PSInterpreter.h:
avoid 'this' pointer in initialazation list of
PSInterpreter::PSInterpreter()
- * src/PsSpecialHandler.cpp:
- don't call Ghostscript::revision() in initialization of static variable
+ * src/Length.h:
+ undefine macro IN
2011-05-03 Martin Gieseking <martin.gieseking@uos.de>
- * src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h:
- tpic special 'ip' must not draw the outline of the polygon but only fill
- its interior
-
- * src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp,
- src/PsSpecialHandler.h, src/macros.h, src/psdefs.ps, src/psdefs.psc,
- tests/PSInterpreterTest.cpp:
- improved handling of pure PostScript specials
-
* src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVGActions.cpp,
src/DVIToSVGActions.h, src/EmSpecialHandler.cpp, src/EmSpecialHandler.h,
src/PSInterpreter.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h,
@@ -5166,6 +5186,15 @@ Breaks standard things
src/TpicSpecialHandler.h:
replaced methods for DVI position alterations with translation semantics
+ * src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp,
+ src/PsSpecialHandler.h, src/macros.h, src/psdefs.ps, src/psdefs.psc,
+ tests/PSInterpreterTest.cpp:
+ improved handling of pure PostScript specials
+
+ * src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h:
+ tpic special 'ip' must not draw the outline of the polygon but only fill
+ its interior
+
2011-05-02 Martin Gieseking <martin.gieseking@uos.de>
* src/psdefs.ps, src/psdefs.psc:
@@ -5173,14 +5202,14 @@ Breaks standard things
2011-04-30 Martin Gieseking <martin.gieseking@uos.de>
- * src/psdefs.ps, src/psdefs.psc:
- catch PS error /nocurrentpoint in operator 'setpos' properly
+ * configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
+ set version to 1.0.7dev
* src/SpecialManager.cpp:
register special prefix ps:: properly
- * configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
- set version to 1.0.7dev
+ * src/psdefs.ps, src/psdefs.psc:
+ catch PS error /nocurrentpoint in operator 'setpos' properly
2011-04-16 Martin Gieseking <martin.gieseking@uos.de>
@@ -5189,16 +5218,16 @@ Breaks standard things
2011-04-14 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIReader.cpp, src/Font.cpp, src/GFReader.cpp, src/Makefile.am,
- src/MetafontWrapper.cpp, src/PSInterpreter.cpp, src/SignalHandler.cpp,
- src/SignalHandler.h, src/TFM.cpp, src/dvisvgm.cpp:
- added class SignalHandler for CTRL-C signals
-
* src/DVIToSVGActions.cpp, src/MessageException.h, src/dvisvgm.cpp,
tests/Makefile.am, tests/MessageExceptionTest.cpp:
derived MessageException from std::exception and replaced getMessage()
with what()
+ * src/DVIReader.cpp, src/Font.cpp, src/GFReader.cpp, src/Makefile.am,
+ src/MetafontWrapper.cpp, src/PSInterpreter.cpp, src/SignalHandler.cpp,
+ src/SignalHandler.h, src/TFM.cpp, src/dvisvgm.cpp:
+ added class SignalHandler for CTRL-C signals
+
2011-04-13 Martin Gieseking <martin.gieseking@uos.de>
* src/XMLNode.cpp, src/XMLNode.h:
@@ -5223,41 +5252,41 @@ Breaks standard things
2011-03-04 Martin Gieseking <martin.gieseking@uos.de>
- * src/CRC32.cpp, src/StreamWriter.cpp:
- added missing 'const' to type casts (Peter Breitenlohner)
+ * configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
+ set version to 1.0.6dev
* potracelib/potracelib.c, potracelib/potracelib.h:
changed return type of potrace_version() to 'const char *' in order to
avoid compiler warning
- * configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
- set version to 1.0.6dev
+ * src/CRC32.cpp, src/StreamWriter.cpp:
+ added missing 'const' to type casts (Peter Breitenlohner)
2011-02-28 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
- set version to 1.0.5, updated NEWS
+ * doc/dvisvgm.txt.in, src/FontCache.cpp, src/FontCache.h, src/dvisvgm.cpp:
+ added code to remove outdated and corrupted cache files
* src/Ghostscript.cpp:
fixed formatting of GS version number
- * doc/dvisvgm.txt.in, src/FontCache.cpp, src/FontCache.h, src/dvisvgm.cpp:
- added code to remove outdated and corrupted cache files
+ * NEWS, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
+ set version to 1.0.5, updated NEWS
2011-02-21 Martin Gieseking <martin.gieseking@uos.de>
- * tests/frktest-nf-cmp.svg, tests/frktest-wf-cmp.svg,
- tests/sample-nf-cmp.svg, tests/sample-wf-cmp.svg:
- updated conversion test files
-
- * src/SVGTree.cpp:
- added missing unit in height/width attribute of svg root element
-
* doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h,
src/GraphicPath.h, src/SVGTree.cpp, src/SVGTree.h, src/dvisvgm.cpp,
src/options.xml, tests/CommandLineTest.cpp:
added option to replace use elements with paths
+ * src/SVGTree.cpp:
+ added missing unit in height/width attribute of svg root element
+
+ * tests/frktest-nf-cmp.svg, tests/frktest-wf-cmp.svg,
+ tests/sample-nf-cmp.svg, tests/sample-wf-cmp.svg:
+ updated conversion test files
+
2011-02-16 Martin Gieseking <martin.gieseking@uos.de>
* src/InputBuffer.h:
@@ -5265,21 +5294,21 @@ Breaks standard things
2011-02-10 Martin Gieseking <martin.gieseking@uos.de>
- * src/FontCache.cpp, src/FontCache.h:
- added CRC32 checks to cache files
+ * src/FileSystem.cpp, src/FileSystem.h, src/dvisvgm.cpp,
+ tests/FileSystemTest.cpp:
+ merged FileSystem::move() into FileSystem::copy()
+
+ * src/CRC32.cpp, src/CRC32.h, src/Makefile.am, tests/CRC32Test.cpp,
+ tests/Makefile.am:
+ added class CRC32 and corresponding tests
* src/StreamReader.cpp, src/StreamReader.h, src/StreamWriter.cpp,
src/StreamWriter.h, tests/Makefile.am, tests/StreamReaderTest.cpp,
tests/StreamWriterTest.cpp:
added CRC32 computation methods to StreamReader and StreamWriter
- * src/CRC32.cpp, src/CRC32.h, src/Makefile.am, tests/CRC32Test.cpp,
- tests/Makefile.am:
- added class CRC32 and corresponding tests
-
- * src/FileSystem.cpp, src/FileSystem.h, src/dvisvgm.cpp,
- tests/FileSystemTest.cpp:
- merged FileSystem::move() into FileSystem::copy()
+ * src/FontCache.cpp, src/FontCache.h:
+ added CRC32 checks to cache files
2011-01-31 Martin Gieseking <martin.gieseking@uos.de>
@@ -5308,9 +5337,6 @@ Breaks standard things
2011-01-04 Martin Gieseking <martin.gieseking@uos.de>
- * tests/Makefile.am, tests/PSInterpreterTest.cpp:
- added basic tests for class PSInterpreter
-
* Makefile.am, README, configure.ac, doc/Makefile.am, doc/dvisvgm.txt.in,
src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h,
src/Bitmap.cpp, src/Bitmap.h, src/BoundingBox.cpp, src/BoundingBox.h,
@@ -5360,20 +5386,23 @@ Breaks standard things
tests/create-makefile:
updated year in copyright info
-2010-12-18 Martin Gieseking <martin.gieseking@uos.de>
+ * tests/Makefile.am, tests/PSInterpreterTest.cpp:
+ added basic tests for class PSInterpreter
- * doc/dvisvgm.txt.in:
- minor update to the manpage
+2010-12-18 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
- set version to 1.0.4; updated NEWS
+ * src/PsSpecialHandler.cpp:
+ fixed scaling issue in PS positioning
* src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp,
src/PsSpecialHandler.h, src/psdefs.ps, src/psdefs.psc:
PS handler: added missing scaling of linewidths and dash distances
- * src/PsSpecialHandler.cpp:
- fixed scaling issue in PS positioning
+ * NEWS, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
+ set version to 1.0.4; updated NEWS
+
+ * doc/dvisvgm.txt.in:
+ minor update to the manpage
2010-12-16 Martin Gieseking <martin.gieseking@uos.de>
@@ -5382,12 +5411,12 @@ Breaks standard things
2010-08-18 Martin Gieseking <martin.gieseking@uos.de>
- * configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
- set version to 1.0.4dev
-
* src/FontEngine.cpp:
fixed FreeType version check (patch by Paul Vojta)
+ * configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
+ set version to 1.0.4dev
+
2010-08-11 Martin Gieseking <martin.gieseking@uos.de>
* tests/Makefile.am, tests/PairTest.cpp:
@@ -5395,12 +5424,12 @@ Breaks standard things
2010-08-05 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, doc/dvisvgm.txt.in:
- updated manpage and NEWS
-
* configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
set version to 1.0.3
+ * NEWS, doc/dvisvgm.txt.in:
+ updated manpage and NEWS
+
2010-08-04 Martin Gieseking <martin.gieseking@uos.de>
* src/BoundingBox.cpp, src/BoundingBox.h, src/Matrix.cpp, src/Matrix.h,
@@ -5420,29 +5449,29 @@ Breaks standard things
2010-07-13 Martin Gieseking <martin.gieseking@uos.de>
- * src/Directory.cpp, src/Directory.h, src/GFReader.cpp, src/GFReader.h:
- added leading underscore to variables of GFReader
+ * configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
+ set version to 1.0.3dev
- * src/GraphicPath.h, src/PsSpecialHandler.h:
- fixed missing initialization of GraphicPath iterator
+ * src/InputBuffer.h:
+ added missing namespace prefix
* src/Terminal.cpp:
replaced \e with \x1B
- * src/InputBuffer.h:
- added missing namespace prefix
+ * src/GraphicPath.h, src/PsSpecialHandler.h:
+ fixed missing initialization of GraphicPath iterator
- * configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
- set version to 1.0.3dev
+ * src/Directory.cpp, src/Directory.h, src/GFReader.cpp, src/GFReader.h:
+ added leading underscore to variables of GFReader
2010-06-22 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
- set version to 1.0.2
-
* src/gzstream.cpp, src/gzstream.h:
fixed class variable issue introduced by previous AIX patch
+ * NEWS, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
+ set version to 1.0.2
+
2010-06-18 Martin Gieseking <martin.gieseking@uos.de>
* src/Bitmap.cpp, tests/DirectoryTest.cpp, tests/GFReaderTest.cpp,
@@ -5451,13 +5480,6 @@ Breaks standard things
2010-06-17 Martin Gieseking <martin.gieseking@uos.de>
- * src/types.h, tests/Makefile.am, tests/TypesTest.cpp:
- added TypesTest
-
- * src/Message.cpp, src/Message.h:
- renamed MessageStream::putchar() to MessageStream::putChar() to avoid
- name clashes
-
* src/Bitmap.cpp, src/Calculator.cpp, src/CmdLineParserBase.cpp,
src/Color.cpp, src/ColorSpecialHandler.cpp, src/DVIReader.cpp,
src/DVIReader.h, src/DVIToSVGActions.cpp, src/DvisvgmSpecialHandler.cpp,
@@ -5466,11 +5488,14 @@ Breaks standard things
src/PsSpecialHandler.h, src/TFM.cpp, src/TFM.h:
fixed some type conversion warnings
-2010-06-16 Martin Gieseking <martin.gieseking@uos.de>
+ * src/Message.cpp, src/Message.h:
+ renamed MessageStream::putchar() to MessageStream::putChar() to avoid
+ name clashes
- * potracelib/curve.c, potracelib/curve.h, potracelib/decompose.c:
- renamed internal potrace functions path_new() and path_free() to prevent
- linker conflicts on OS X
+ * src/types.h, tests/Makefile.am, tests/TypesTest.cpp:
+ added TypesTest
+
+2010-06-16 Martin Gieseking <martin.gieseking@uos.de>
* configure.ac, src/CmdLineParserBase.h, src/FileFinder.h,
src/FontCache.cpp, src/FontCache.h, src/FontEncoding.cpp,
@@ -5478,6 +5503,10 @@ Breaks standard things
src/gzstream.cpp:
applied latest TL patches from Peter Breitenlohner and Karl Berry
+ * potracelib/curve.c, potracelib/curve.h, potracelib/decompose.c:
+ renamed internal potrace functions path_new() and path_free() to prevent
+ linker conflicts on OS X
+
2010-06-14 Martin Gieseking <martin.gieseking@uos.de>
* configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
@@ -5485,56 +5514,41 @@ Breaks standard things
2010-06-11 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
- set version to 1.0.1
-
* src/Message.cpp:
suppress ANSI color code by default
-2010-06-09 Martin Gieseking <martin.gieseking@uos.de>
+ * NEWS, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
+ set version to 1.0.1
- * src/psdefs.ps, src/psdefs.psc:
- fixed recursion issue in PS operator charpath
+2010-06-09 Martin Gieseking <martin.gieseking@uos.de>
* configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
set version to 1.0.1dev
-2010-06-08 Martin Gieseking <martin.gieseking@uos.de>
-
- * src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp,
- src/PsSpecialHandler.h:
- fixed PS destructor issue (SF bug #3013392)
-
- * NEWS, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
- set version to 1.0
+ * src/psdefs.ps, src/psdefs.psc:
+ fixed recursion issue in PS operator charpath
- * doc/Makefile.am, doc/dvisvgm.txt.in:
- documented option --help and --version in manpage
+2010-06-08 Martin Gieseking <martin.gieseking@uos.de>
- * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h,
- src/DVIActions.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h,
- src/Makefile.am, src/Message.cpp, src/Message.h, src/PSInterpreter.cpp,
- src/PSInterpreter.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h,
- src/SpecialActions.h, src/System.cpp, src/System.h, src/dvisvgm.cpp,
- src/options.xml:
- added percentage-based progress indicator
+ * configure.ac, doc/Makefile.am, src/Makefile.am:
+ cleaned up configuration scripts
- * src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h:
- added method to compute length of DVI command
+ * configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
+ set version to 1.0dev
- * src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp,
- src/PsSpecialHandler.h, src/psdefs.ps, src/psdefs.psc:
- evaluate Ghostscript operator .setopacityalpha
+ * doc/dvisvgm.txt.in, src/BoundingBox.cpp, src/DVIToSVGActions.cpp,
+ src/DVIToSVGActions.h, src/DvisvgmSpecialHandler.cpp,
+ src/EmSpecialHandler.cpp, src/PsSpecialHandler.cpp, src/SpecialActions.h,
+ src/SpecialManager.cpp, src/TpicSpecialHandler.cpp:
+ added special for creating local bounding boxes
- * src/Font.cpp:
- print error message if Metafont failed
+ * src/FilePath.cpp, src/FilePath.h, src/FileSystem.cpp, src/FileSystem.h,
+ src/Makefile.am, tests/FilePathTest.cpp, tests/Makefile.am:
+ added class FilePath
- * configure.ac, doc/Makefile.am, doc/dvisvgm.txt.in, src/CommandLine.cpp,
- src/CommandLine.h, src/DVIActions.h, src/DVIToSVG.cpp, src/GFTracer.cpp,
- src/GlyphTracerMessages.h, src/Makefile.am, src/Message.cpp,
- src/Message.h, src/MetafontWrapper.cpp, src/Terminal.cpp, src/Terminal.h,
- src/dvisvgm.cpp, src/options.xml:
- improved output of messages including optional colorization
+ * src/InputBuffer.h, tests/ColorSpecialTest.cpp,
+ tests/StreamInputBufferTest.cpp:
+ added InputBuffer::invalidate()
* doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h,
src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h,
@@ -5545,25 +5559,40 @@ Breaks standard things
tests/StreamCounterTest.cpp:
added conversion of multiple pages
- * src/InputBuffer.h, tests/ColorSpecialTest.cpp,
- tests/StreamInputBufferTest.cpp:
- added InputBuffer::invalidate()
+ * configure.ac, doc/Makefile.am, doc/dvisvgm.txt.in, src/CommandLine.cpp,
+ src/CommandLine.h, src/DVIActions.h, src/DVIToSVG.cpp, src/GFTracer.cpp,
+ src/GlyphTracerMessages.h, src/Makefile.am, src/Message.cpp,
+ src/Message.h, src/MetafontWrapper.cpp, src/Terminal.cpp, src/Terminal.h,
+ src/dvisvgm.cpp, src/options.xml:
+ improved output of messages including optional colorization
- * src/FilePath.cpp, src/FilePath.h, src/FileSystem.cpp, src/FileSystem.h,
- src/Makefile.am, tests/FilePathTest.cpp, tests/Makefile.am:
- added class FilePath
+ * src/Font.cpp:
+ print error message if Metafont failed
- * doc/dvisvgm.txt.in, src/BoundingBox.cpp, src/DVIToSVGActions.cpp,
- src/DVIToSVGActions.h, src/DvisvgmSpecialHandler.cpp,
- src/EmSpecialHandler.cpp, src/PsSpecialHandler.cpp, src/SpecialActions.h,
- src/SpecialManager.cpp, src/TpicSpecialHandler.cpp:
- added special for creating local bounding boxes
+ * src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp,
+ src/PsSpecialHandler.h, src/psdefs.ps, src/psdefs.psc:
+ evaluate Ghostscript operator .setopacityalpha
- * configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
- set version to 1.0dev
+ * src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h:
+ added method to compute length of DVI command
- * configure.ac, doc/Makefile.am, src/Makefile.am:
- cleaned up configuration scripts
+ * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h,
+ src/DVIActions.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h,
+ src/Makefile.am, src/Message.cpp, src/Message.h, src/PSInterpreter.cpp,
+ src/PSInterpreter.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h,
+ src/SpecialActions.h, src/System.cpp, src/System.h, src/dvisvgm.cpp,
+ src/options.xml:
+ added percentage-based progress indicator
+
+ * doc/Makefile.am, doc/dvisvgm.txt.in:
+ documented option --help and --version in manpage
+
+ * NEWS, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
+ set version to 1.0
+
+ * src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp,
+ src/PsSpecialHandler.h:
+ fixed PS destructor issue (SF bug #3013392)
2010-05-09 Martin Gieseking <martin.gieseking@uos.de>
@@ -5572,33 +5601,33 @@ Breaks standard things
2010-05-04 Martin Gieseking <martin.gieseking@uos.de>
- * tests/FileFinderTest.cpp, tests/FontManagerTest.cpp, tests/check-conv:
- fixed segfaults in tests
-
* configure.ac:
fixed kpathsea check; use pkg-config to check freetype availability
+ * tests/FileFinderTest.cpp, tests/FontManagerTest.cpp, tests/check-conv:
+ fixed segfaults in tests
+
2010-04-22 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
- set version to 0.9.1
+ * src/CommandLine.cpp, src/options.xml:
+ output of option --help: replaced '(default: FOO)' by '[FOO]'
- * tests/check-conv, tests/frktest-wf-cmp.svg, tests/sample-wf-cmp.svg:
- adapted conversion tests to new output format
+ * src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h,
+ src/SVGTree.cpp, src/SVGTree.h, src/XMLNode.cpp, src/XMLNode.h:
+ ignore unused fonts in CSS styles list
+
+ * src/SVGTree.cpp:
+ fixed broken validity when using SVG fonts
* src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp,
src/DVIToSVG.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h:
print page count and page number of DVI page being processed
- * src/SVGTree.cpp:
- fixed broken validity when using SVG fonts
-
- * src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h,
- src/SVGTree.cpp, src/SVGTree.h, src/XMLNode.cpp, src/XMLNode.h:
- ignore unused fonts in CSS styles list
+ * tests/check-conv, tests/frktest-wf-cmp.svg, tests/sample-wf-cmp.svg:
+ adapted conversion tests to new output format
- * src/CommandLine.cpp, src/options.xml:
- output of option --help: replaced '(default: FOO)' by '[FOO]'
+ * NEWS, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
+ set version to 0.9.1
2010-04-20 Martin Gieseking <martin.gieseking@uos.de>
@@ -5607,12 +5636,12 @@ Breaks standard things
2010-04-11 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIToSVGActions.cpp:
- replaced wrong font pointer that could lead to segfaults
-
* configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
set version to 0.9.1dev
+ * src/DVIToSVGActions.cpp:
+ replaced wrong font pointer that could lead to segfaults
+
2010-03-25 Martin Gieseking <martin.gieseking@uos.de>
* fedora/dvisvgm.spec:
@@ -5620,81 +5649,74 @@ Breaks standard things
2010-03-24 Martin Gieseking <martin.gieseking@uos.de>
- * transfer-cs:
- added extension .patch to exported changesets
-
- * tests/frktest-nf-cmp.svg, tests/frktest-wf-cmp.svg,
- tests/sample-nf-cmp.svg, tests/sample-wf-cmp.svg:
- updated conversion tests
+ * src/Font.cpp, src/Font.h, src/dvisvgm.cpp:
+ moved some methods from PhysicalFontImpl to PysicalFont
- * NEWS, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
- set version to 0.9
+ * doc/dvisvgm.txt.in, src/BoundingBox.cpp, src/BoundingBox.h,
+ src/CommandLine.cpp, src/CommandLine.h, src/DVIToSVG.cpp,
+ src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Font.cpp, src/Font.h,
+ src/GlyphTracerMessages.h, src/Makefile.am, src/dvisvgm.cpp,
+ src/options.xml:
+ added command-line option --exact
- * src/FontCache.cpp, src/GFGlyphTracer.cpp, src/GFReader.cpp:
- variable _fontname is now correctly set in class FontCache
+ * src/FontCache.cpp, src/Makefile.am, src/StreamWriter.cpp,
+ src/StreamWriter.h, src/TFM.cpp:
+ replaced local stream IO functions by StreamReader/StreamWriter methods
* src/CmdLineParserBase.cpp, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp,
src/FontEngine.cpp, src/GlyphTracerMessages.h, src/Message.cpp,
src/Message.h, src/MetafontWrapper.cpp, src/dvisvgm.cpp:
added class MessageStream, updated message output
- * src/FontCache.cpp, src/Makefile.am, src/StreamWriter.cpp,
- src/StreamWriter.h, src/TFM.cpp:
- replaced local stream IO functions by StreamReader/StreamWriter methods
+ * src/FontCache.cpp, src/GFGlyphTracer.cpp, src/GFReader.cpp:
+ variable _fontname is now correctly set in class FontCache
- * doc/dvisvgm.txt.in, src/BoundingBox.cpp, src/BoundingBox.h,
- src/CommandLine.cpp, src/CommandLine.h, src/DVIToSVG.cpp,
- src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Font.cpp, src/Font.h,
- src/GlyphTracerMessages.h, src/Makefile.am, src/dvisvgm.cpp,
- src/options.xml:
- added command-line option --exact
+ * NEWS, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
+ set version to 0.9
- * src/Font.cpp, src/Font.h, src/dvisvgm.cpp:
- moved some methods from PhysicalFontImpl to PysicalFont
+ * tests/frktest-nf-cmp.svg, tests/frktest-wf-cmp.svg,
+ tests/sample-nf-cmp.svg, tests/sample-wf-cmp.svg:
+ updated conversion tests
+
+ * transfer-cs:
+ added extension .patch to exported changesets
2010-03-18 Martin Gieseking <martin.gieseking@uos.de>
- * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h,
- src/Font.cpp, src/Font.h, src/dvisvgm.cpp, src/options.xml:
- added command-line option --keep
+ * src/DVIToSVG.cpp, src/SVGTree.cpp:
+ moved creation of SVG 'use' elements from class DVIToSVG to class
+ SVGTree
- * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h,
- src/DVIToSVG.cpp, src/DVIToSVG.h, src/Font.cpp, src/Font.h,
- src/dvisvgm.cpp, src/options.xml, tests/CommandLineTest.cpp:
- reactivated option --trace-all, and added optional argument 'retrace' to
- it
+ * src/DVIToSVG.cpp, src/Font.cpp, src/Font.h, src/GFGlyphTracer.cpp,
+ src/GFGlyphTracer.h, src/SVGTree.cpp, src/SVGTree.h:
+ added class GFGlyphTracer::Callback providing an interface used to print
+ status information about the tracer
* src/CmdLineParserBase.cpp, src/CmdLineParserBase.h:
added evaluation of boolean and char arguments to the command-line
parser
- * src/DVIToSVG.cpp, src/Font.cpp, src/Font.h, src/GFGlyphTracer.cpp,
- src/GFGlyphTracer.h, src/SVGTree.cpp, src/SVGTree.h:
- added class GFGlyphTracer::Callback providing an interface used to print
- status information about the tracer
+ * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h,
+ src/DVIToSVG.cpp, src/DVIToSVG.h, src/Font.cpp, src/Font.h,
+ src/dvisvgm.cpp, src/options.xml, tests/CommandLineTest.cpp:
+ reactivated option --trace-all, and added optional argument 'retrace' to
+ it
- * src/DVIToSVG.cpp, src/SVGTree.cpp:
- moved creation of SVG 'use' elements from class DVIToSVG to class
- SVGTree
+ * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h,
+ src/Font.cpp, src/Font.h, src/dvisvgm.cpp, src/options.xml:
+ added command-line option --keep
2010-03-17 Martin Gieseking <martin.gieseking@uos.de>
- * src/BoundingBox.cpp, src/Calculator.cpp, src/Matrix.cpp,
- src/PSInterpreter.cpp, src/PSInterpreter.h:
- fixed a couple of comments
+ * src/GFReader.cpp, src/GFReader.h:
+ replaced GFReader messages by exceptions
- * src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp, src/Font.cpp,
- src/Font.h, src/FontEmitter.h, src/GFGlyphTracer.h, src/Makefile.am,
- src/SVGFontEmitter.cpp, src/SVGFontEmitter.h,
+ * src/CharmapTranslator.cpp, src/CharmapTranslator.h, src/DVIToSVG.cpp,
+ src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Font.cpp, src/Font.h,
+ src/Makefile.am, src/SVGFontEmitter.cpp, src/SVGFontEmitter.h,
src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, src/SVGTree.cpp,
- src/SVGTree.h, src/dvisvgm.cpp, tests/Makefile.am, tests/check-conv,
- tests/create-makefile:
- removed emitter classes; incorporated their functionality into SVGTree
- and PhysicalFontImpl
-
- * src/FontCache.cpp, src/FontCache.h:
- added method FontCache::write(const char *dir) that updates the cache
- file of the current font
+ src/SVGTree.h:
+ removed class CharmapTranslator
* src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp,
src/DVIToSVGActions.cpp, src/FontManager.cpp, src/FontManager.h,
@@ -5703,15 +5725,22 @@ Breaks standard things
src/SVGTree.h, src/VFReader.h, tests/FontManagerTest.cpp:
made FontManager a singleton
- * src/CharmapTranslator.cpp, src/CharmapTranslator.h, src/DVIToSVG.cpp,
- src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Font.cpp, src/Font.h,
- src/Makefile.am, src/SVGFontEmitter.cpp, src/SVGFontEmitter.h,
+ * src/FontCache.cpp, src/FontCache.h:
+ added method FontCache::write(const char *dir) that updates the cache
+ file of the current font
+
+ * src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp, src/Font.cpp,
+ src/Font.h, src/FontEmitter.h, src/GFGlyphTracer.h, src/Makefile.am,
+ src/SVGFontEmitter.cpp, src/SVGFontEmitter.h,
src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, src/SVGTree.cpp,
- src/SVGTree.h:
- removed class CharmapTranslator
+ src/SVGTree.h, src/dvisvgm.cpp, tests/Makefile.am, tests/check-conv,
+ tests/create-makefile:
+ removed emitter classes; incorporated their functionality into SVGTree
+ and PhysicalFontImpl
- * src/GFReader.cpp, src/GFReader.h:
- replaced GFReader messages by exceptions
+ * src/BoundingBox.cpp, src/Calculator.cpp, src/Matrix.cpp,
+ src/PSInterpreter.cpp, src/PSInterpreter.h:
+ fixed a couple of comments
2010-02-26 Martin Gieseking <martin.gieseking@uos.de>
@@ -5740,12 +5769,12 @@ Breaks standard things
2010-02-02 Martin Gieseking <martin.gieseking@uos.de>
- * fedora/dvisvgm.spec:
- updated homepage and spec file
-
* NEWS, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
version updated to 0.8.8
+ * fedora/dvisvgm.spec:
+ updated homepage and spec file
+
2010-02-01 Martin Gieseking <martin.gieseking@uos.de>
* tests/check-conv:
@@ -5753,24 +5782,24 @@ Breaks standard things
2010-01-31 Martin Gieseking <martin.gieseking@uos.de>
- * tests/normalize.xsl:
- some improvements to normalize.xsl
-
* tests/Makefile.am, tests/check-conv, tests/create-makefile,
tests/frktest-nf-cmp.svg, tests/frktest-wf-cmp.svg, tests/frktest.dvi,
tests/normalize.xsl, tests/sample-nf-cmp.svg, tests/sample-wf-cmp.svg,
tests/sample.dvi:
added tests to check conversion results
-2010-01-29 Martin Gieseking <martin.gieseking@uos.de>
+ * tests/normalize.xsl:
+ some improvements to normalize.xsl
- * src/GraphicPath.h:
- fixed scaling bug in computation of glyph paths when using -n
+2010-01-29 Martin Gieseking <martin.gieseking@uos.de>
* src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/CommandLine.cpp,
src/CommandLine.h:
removed CmdLineParserBase::numOptions()
+ * src/GraphicPath.h:
+ fixed scaling bug in computation of glyph paths when using -n
+
2010-01-24 Martin Gieseking <martin.gieseking@uos.de>
* doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h,
@@ -5784,16 +5813,12 @@ Breaks standard things
2010-01-17 Martin Gieseking <martin.gieseking@uos.de>
- * src/Ghostscript.cpp:
- fixed typo in variable name
-
- * NEWS:
- updated NEWS
+ * configure.ac:
+ updated type of kpathsea_version_string (patch by lomov_vl)
- * doc/dvisvgm.txt.in, src/FileFinder.cpp, src/Ghostscript.cpp,
- src/Ghostscript.h, src/dvisvgm.cpp:
- environment variable LIBGS can now be used to set the name of the GS
- shared library
+ * doc/dvisvgm.txt.in, src/BoundingBox.cpp, src/BoundingBox.h,
+ src/DVIToSVG.cpp, tests/BoundingBoxTest.cpp, tests/Makefile.am:
+ added support for enlarging the minimal bbox by a given amount.
* Makefile.am, README, configure.ac, doc/dvisvgm.txt.in,
src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h,
@@ -5844,12 +5869,16 @@ Breaks standard things
tests/create-makefile:
updated boilerplates
- * doc/dvisvgm.txt.in, src/BoundingBox.cpp, src/BoundingBox.h,
- src/DVIToSVG.cpp, tests/BoundingBoxTest.cpp, tests/Makefile.am:
- added support for enlarging the minimal bbox by a given amount.
+ * doc/dvisvgm.txt.in, src/FileFinder.cpp, src/Ghostscript.cpp,
+ src/Ghostscript.h, src/dvisvgm.cpp:
+ environment variable LIBGS can now be used to set the name of the GS
+ shared library
- * configure.ac:
- updated type of kpathsea_version_string (patch by lomov_vl)
+ * NEWS:
+ updated NEWS
+
+ * src/Ghostscript.cpp:
+ fixed typo in variable name
2009-12-16 Martin Gieseking <martin.gieseking@uos.de>
@@ -5890,42 +5919,42 @@ Breaks standard things
2009-11-18 Martin Gieseking <martin.gieseking@uos.de>
- * src/DLLoader.cpp, src/DLLoader.h:
- fixed line endings
-
- * src/Ghostscript.cpp, src/Ghostscript.h:
- replaced #if HAVE_LIBGS by #if defined(HAVE_LIBGS)
-
* src/DVIToSVG.cpp, src/Ghostscript.cpp, src/Ghostscript.h:
replaced #if !DISABLE_GS by #if !defined(DISABLE_GS) (Peter
Breitenlohner)
-2009-11-17 Martin Gieseking <martin.gieseking@uos.de>
+ * src/Ghostscript.cpp, src/Ghostscript.h:
+ replaced #if HAVE_LIBGS by #if defined(HAVE_LIBGS)
- * NEWS:
- updated NEWS
+ * src/DLLoader.cpp, src/DLLoader.h:
+ fixed line endings
- * src/dvisvgm.cpp:
- don't use email adress PACKAGE_BUGREPORT for copyright notice
+2009-11-17 Martin Gieseking <martin.gieseking@uos.de>
- * src/CmdLineParserBase.h, src/GraphicPath.h, src/InputReader.h,
- src/Makefile.am, src/PSInterpreter.h, src/SpecialManager.h:
- added missing virtual destructors to avoid warnings
+ * configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
+ set version to 0.8.8dev
- * src/InputReader.cpp:
- added missing initialization value (Peter Breitenlohner)
+ * potracelib/potracelib.c, potracelib/potracelib.h:
+ replaced outdated string constant type char* by const char* in
+ potrace_version()
* src/Color.cpp, src/ColorSpecialHandler.cpp, src/FontManager.cpp,
src/PsSpecialHandler.cpp, src/PsSpecialHandler.h,
src/TpicSpecialHandler.cpp:
added explicit casts to avoid compiler warnings (Peter Breitenlohner)
- * potracelib/potracelib.c, potracelib/potracelib.h:
- replaced outdated string constant type char* by const char* in
- potrace_version()
+ * src/InputReader.cpp:
+ added missing initialization value (Peter Breitenlohner)
- * configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
- set version to 0.8.8dev
+ * src/CmdLineParserBase.h, src/GraphicPath.h, src/InputReader.h,
+ src/Makefile.am, src/PSInterpreter.h, src/SpecialManager.h:
+ added missing virtual destructors to avoid warnings
+
+ * src/dvisvgm.cpp:
+ don't use email adress PACKAGE_BUGREPORT for copyright notice
+
+ * NEWS:
+ updated NEWS
2009-11-10 Martin Gieseking <martin.gieseking@uos.de>
@@ -5934,26 +5963,26 @@ Breaks standard things
2009-11-09 Martin Gieseking <martin.gieseking@uos.de>
- * configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
- set version to 0.8.7
+ * src/DVIToSVG.cpp, src/dvisvgm.cpp:
+ added total number of pages to message text
* NEWS, src/Color.cpp, src/Color.h, src/PsSpecialHandler.cpp,
src/PsSpecialHandler.h, src/SVGTree.cpp:
PS handler: colors set by color specials are now considered properly
- * src/DVIToSVG.cpp, src/dvisvgm.cpp:
- added total number of pages to message text
+ * configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
+ set version to 0.8.7
2009-11-06 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, src/PsSpecialHandler.cpp:
- fixed path scaling issue in PS handler
+ * src/GraphicPath.h, src/PsSpecialHandler.cpp:
+ PS handler: replace zero-length paths by dots
* NEWS, doc/dvisvgm.txt.in:
updated NEWS and manpage
- * src/GraphicPath.h, src/PsSpecialHandler.cpp:
- PS handler: replace zero-length paths by dots
+ * NEWS, src/PsSpecialHandler.cpp:
+ fixed path scaling issue in PS handler
2009-10-29 Martin Gieseking <martin.gieseking@uos.de>
@@ -5967,14 +5996,23 @@ Breaks standard things
2009-10-16 Martin Gieseking <martin.gieseking@uos.de>
- * configure.ac, src/Doxyfile:
- increased version to 0.8.7dev
-
* tests/Makefile.am, tests/create-makefile:
added script to create tests/Makefile.am
+ * configure.ac, src/Doxyfile:
+ increased version to 0.8.7dev
+
2009-10-13 Martin Gieseking <martin.gieseking@uos.de>
+ * doc/Makefile.am, doc/dvisvgm.txt.in:
+ removed outdated post-processing of manpage
+
+ * fedora/dvisvgm.spec:
+ updated spec file
+
+ * doc/Makefile.am:
+ added missing dvi suffix in Makefile target dvi-pdf
+
* README, tests/CalculatorTest.cpp, tests/CalculatorTest.h,
tests/ColorSpecialTest.cpp, tests/ColorSpecialTest.h,
tests/CommandLineTest.cpp, tests/CommandLineTest.h,
@@ -5991,22 +6029,8 @@ Breaks standard things
tests/VectorStreamTest.h:
replaced cxxtest by googletest
- * doc/Makefile.am:
- added missing dvi suffix in Makefile target dvi-pdf
-
- * fedora/dvisvgm.spec:
- updated spec file
-
- * doc/Makefile.am, doc/dvisvgm.txt.in:
- removed outdated post-processing of manpage
-
2009-10-12 Martin Gieseking <martin.gieseking@uos.de>
- * src/FontInfo.cpp, src/FontInfo.h, src/FontTracer.h, src/PSObject.cpp,
- src/PSObject.h, src/PSState.cpp, src/PSState.h, src/global.cpp,
- src/global.h:
- removed unused source files
-
* src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h,
src/Bitmap.cpp, src/Bitmap.h, src/BoundingBox.cpp, src/BoundingBox.h,
src/Calculator.cpp, src/Calculator.h, src/CharmapTranslator.cpp,
@@ -6041,18 +6065,23 @@ Breaks standard things
src/XMLString.cpp, src/XMLString.h, src/macros.h, src/types.h:
code cleanup
+ * src/FontInfo.cpp, src/FontInfo.h, src/FontTracer.h, src/PSObject.cpp,
+ src/PSObject.h, src/PSState.cpp, src/PSState.h, src/global.cpp,
+ src/global.h:
+ removed unused source files
+
2009-10-11 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS:
- NEWS updated
+ * transfer-cs:
+ improved transfer-cs
* src/DVIToSVG.cpp, src/DvisvgmSpecialHandler.cpp,
src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/SVGTree.cpp,
src/SVGTree.h:
suppress empty style and transformation elements
- * transfer-cs:
- improved transfer-cs
+ * NEWS:
+ NEWS updated
2009-10-10 Martin Gieseking <martin.gieseking@uos.de>
@@ -6061,35 +6090,25 @@ Breaks standard things
2009-10-09 Martin Gieseking <martin.gieseking@uos.de>
- * src/Makefile.am:
- fixed Makefile
-
- * src/Length.cpp, src/Length.h, tests/LengthTest.h:
- fixed unit conversion bug
-
- * doc/dvisvgm.txt.in:
- fixed formatting of manual page
-
- * transfer-cs:
- added script to transfer changesets to dvisvgm-pub
+ * src/Bitmap.h:
+ fixed bit shift overflow in Bitmap class occured on 64-bit systems
* autogen.sh, prepare:
prepare script replaced by autogen.sh
- * src/Bitmap.h:
- fixed bit shift overflow in Bitmap class occured on 64-bit systems
+ * transfer-cs:
+ added script to transfer changesets to dvisvgm-pub
-2009-10-08 Martin Gieseking <martin.gieseking@uos.de>
+ * doc/dvisvgm.txt.in:
+ fixed formatting of manual page
- * src/dvisvgm.cpp:
- fixed uncaught PageSizeException
+ * src/Length.cpp, src/Length.h, tests/LengthTest.h:
+ fixed unit conversion bug
- * src/MetafontWrapper.cpp:
- fixed file permissions
+ * src/Makefile.am:
+ fixed Makefile
- * NEWS, src/GraphicPath.h, src/PsSpecialHandler.cpp,
- src/PsSpecialHandler.h:
- PS clipping path sequences and intersections are now handled correctly
+2009-10-08 Martin Gieseking <martin.gieseking@uos.de>
* NEWS, doc/dvisvgm.txt.in, src/BoundingBox.cpp, src/CommandLine.cpp,
src/CommandLine.h, src/DVIToSVG.cpp, src/DVIToSVG.h, src/dvisvgm.cpp,
@@ -6097,20 +6116,27 @@ Breaks standard things
cmdline parameter --bbox can now be used to set the absolute bounding
box
-2009-10-07 Martin Gieseking <martin.gieseking@uos.de>
+ * NEWS, src/GraphicPath.h, src/PsSpecialHandler.cpp,
+ src/PsSpecialHandler.h:
+ PS clipping path sequences and intersections are now handled correctly
- * src/BoundingBox.cpp, src/BoundingBox.h, src/Length.cpp, src/Length.h,
- src/Makefile.am, tests/LengthTest.h:
- class Length provides length unit calculations
+ * src/MetafontWrapper.cpp:
+ fixed file permissions
+
+ * src/dvisvgm.cpp:
+ fixed uncaught PageSizeException
+
+2009-10-07 Martin Gieseking <martin.gieseking@uos.de>
* NEWS, doc/dvisvgm.txt.in, src/BoundingBox.cpp, src/BoundingBox.h,
src/DvisvgmSpecialHandler.cpp:
added the special variant 'dvisvgm:bbox abs' and 'dvisvgm:bbox fix'
-2009-10-06 Martin Gieseking <martin.gieseking@uos.de>
+ * src/BoundingBox.cpp, src/BoundingBox.h, src/Length.cpp, src/Length.h,
+ src/Makefile.am, tests/LengthTest.h:
+ class Length provides length unit calculations
- * NEWS, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
- set version to 0.8.6
+2009-10-06 Martin Gieseking <martin.gieseking@uos.de>
* src/BoundingBox.cpp, src/BoundingBox.h, src/GraphicPath.h,
src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp,
@@ -6118,14 +6144,17 @@ Breaks standard things
fixed some PS bounding box and positioning issues introduced by previous
changesets
-2009-10-05 Martin Gieseking <martin.gieseking@uos.de>
+ * NEWS, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
+ set version to 0.8.6
- * NEWS, src/PsSpecialHandler.cpp:
- fixed another positioning bug reported by John Bowman
+2009-10-05 Martin Gieseking <martin.gieseking@uos.de>
* src/PsSpecialHandler.cpp:
convert PS path coordinated to TeX point units
+ * NEWS, src/PsSpecialHandler.cpp:
+ fixed another positioning bug reported by John Bowman
+
2009-10-04 Martin Gieseking <martin.gieseking@uos.de>
* src/GraphicPath.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h:
@@ -6144,54 +6173,46 @@ Breaks standard things
2009-09-30 Martin Gieseking <martin.gieseking@uos.de>
- * Makefile.am, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
- increased version number to 0.8.5
+ * doc/dvisvgm.txt.in:
+ added dvisvgm:raw example to man page
* LGPL-2.1.txt, NEWS, README:
updated README and NEWS, and added file with LGPL license text
- * doc/dvisvgm.txt.in:
- added dvisvgm:raw example to man page
+ * Makefile.am, configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
+ increased version number to 0.8.5
2009-09-17 Martin Gieseking <martin.gieseking@uos.de>
- * doc/dvisvgm.txt.in:
- minor changes of the documentation
-
- * fedora/dvisvgm.spec:
- updated spec file and fixed typo on website
+ * NEWS:
+ added cretdit to John Bowman for sending a patch for the already fixed
+ clipping bug
* src/PsSpecialHandler.h:
increased the default linewidth to 0.5
- * NEWS:
- added cretdit to John Bowman for sending a patch for the already fixed
- clipping bug
+ * fedora/dvisvgm.spec:
+ updated spec file and fixed typo on website
+
+ * doc/dvisvgm.txt.in:
+ minor changes of the documentation
2009-09-11 Martin Gieseking <martin.gieseking@uos.de>
- * src/FileSystem.cpp, src/MetafontWrapper.cpp:
- Windows: Metafont is now called via CreateProcess()
+ * NEWS, src/CmdLineParserBase.cpp, src/FontCache.cpp,
+ src/SVGFontTraceEmitter.cpp:
+ fixed memory bug in tracer module (issue #21)
* NEWS, doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h,
src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/SpecialManager.cpp,
src/SpecialManager.h, src/dvisvgm.cpp, src/options.xml:
added option --progress for enabling a progress indicator (feature #22)
- * NEWS, src/CmdLineParserBase.cpp, src/FontCache.cpp,
- src/SVGFontTraceEmitter.cpp:
- fixed memory bug in tracer module (issue #21)
+ * src/FileSystem.cpp, src/MetafontWrapper.cpp:
+ Windows: Metafont is now called via CreateProcess()
2009-09-10 Martin Gieseking <martin.gieseking@uos.de>
- * src/FileSystem.cpp, src/FontCache.cpp:
- fixed Windows-related bug in FileSystem::collect
-
- * NEWS, doc/dvisvgm.txt.in, src/FileSystem.cpp, src/FileSystem.h,
- src/FontCache.cpp, src/FontCache.h, src/dvisvgm.cpp:
- option --cache prints additional information about the cached fonts
- (feature #7)
-
* src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h,
src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, src/DVIToSVG.cpp,
src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h,
@@ -6201,6 +6222,14 @@ Breaks standard things
src/TpicSpecialHandler.h:
refactored prefixes methods of the SpecialHandlers (ticket #20)
+ * NEWS, doc/dvisvgm.txt.in, src/FileSystem.cpp, src/FileSystem.h,
+ src/FontCache.cpp, src/FontCache.h, src/dvisvgm.cpp:
+ option --cache prints additional information about the cached fonts
+ (feature #7)
+
+ * src/FileSystem.cpp, src/FontCache.cpp:
+ fixed Windows-related bug in FileSystem::collect
+
2009-09-06 Martin Gieseking <martin.gieseking@uos.de>
* NEWS, README:
@@ -6208,21 +6237,21 @@ Breaks standard things
2009-09-04 Martin Gieseking <martin.gieseking@uos.de>
- * src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/CommandLine.cpp,
- src/InputBuffer.h, src/InputReader.h, src/psdefs.psc,
- tests/CommandLineTest.h:
- improved the command line parser to make it more POSIX-compliant
- (feature #17)
-
- * src/dvisvgm.cpp:
- fixed evaluation of option --help
+ * configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
+ increased version number to 0.8.4
* src/BoundingBox.cpp, src/BoundingBox.h, src/PsSpecialHandler.cpp:
linewidths are now considered properly in computation of bounding box
(issue #13)
- * configure.ac, fedora/dvisvgm.spec, src/Doxyfile:
- increased version number to 0.8.4
+ * src/dvisvgm.cpp:
+ fixed evaluation of option --help
+
+ * src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/CommandLine.cpp,
+ src/InputBuffer.h, src/InputReader.h, src/psdefs.psc,
+ tests/CommandLineTest.h:
+ improved the command line parser to make it more POSIX-compliant
+ (feature #17)
2009-09-01 Martin Gieseking <martin.gieseking@uos.de>
@@ -6251,19 +6280,19 @@ Breaks standard things
2009-08-26 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, configure.ac, src/DVIToSVG.cpp, src/DVIToSVG.h,
- src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/PsSpecialHandler.cpp,
- src/SpecialManager.cpp, src/SpecialManager.h:
- PS prologue files referenced in first page are now always loaded
+ * fedora/dvisvgm-0.8.1-potrace.patch, fedora/dvisvgm-gs.patch,
+ fedora/dvisvgm-potrace.patch, fedora/dvisvgm.spec:
+ updated Fedora files
* configure.ac, fedora/dvisvgm.spec, src/Ghostscript.cpp,
src/Ghostscript.h, src/Makefile.am:
improved Ghostscript and potrace linking checks to simplify usage of
external devel files
- * fedora/dvisvgm-0.8.1-potrace.patch, fedora/dvisvgm-gs.patch,
- fedora/dvisvgm-potrace.patch, fedora/dvisvgm.spec:
- updated Fedora files
+ * NEWS, configure.ac, src/DVIToSVG.cpp, src/DVIToSVG.h,
+ src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/PsSpecialHandler.cpp,
+ src/SpecialManager.cpp, src/SpecialManager.h:
+ PS prologue files referenced in first page are now always loaded
2009-08-24 Martin Gieseking <martin.gieseking@uos.de>
@@ -6272,34 +6301,37 @@ Breaks standard things
2009-08-21 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, configure.ac, src/CmdLineParserBase.cpp, src/CmdLineParserBase.h,
- src/Doxyfile:
- increased version number to 0.8.2
+ * src/FontMap.cpp:
+ fixed memory bug in FontMap
* src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/Makefile.am,
src/dvisvgm.cpp, src/options.xml, tests/CommandLineTest.h,
tests/Makefile.am:
improved CmdLineParserBase and replaced gengetopt-based parser
- * src/FontMap.cpp:
- fixed memory bug in FontMap
+ * NEWS, configure.ac, src/CmdLineParserBase.cpp, src/CmdLineParserBase.h,
+ src/Doxyfile:
+ increased version number to 0.8.2
2009-08-20 Martin Gieseking <martin.gieseking@uos.de>
- * COPYING:
- added copy of file COPYING
-
- * src/CmdLineParserBase.cpp, src/CmdLineParserBase.h:
- finished cmdline parser
+ * src/InputReader.cpp, src/InputReader.h:
+ added method parseUInt()
* src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/options.xml:
added files for replacement of gengetopt (not active yet)
- * src/InputReader.cpp, src/InputReader.h:
- added method parseUInt()
+ * src/CmdLineParserBase.cpp, src/CmdLineParserBase.h:
+ finished cmdline parser
+
+ * COPYING:
+ added copy of file COPYING
2009-08-17 Martin Gieseking <martin.gieseking@uos.de>
+ * tests/Makefile.am:
+ added include path to fix broken distcheck
+
* COPYING, LICENSE, Makefile.am, README, doc/dvisvgm.txt.in,
src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h,
src/Bitmap.cpp, src/Bitmap.h, src/BoundingBox.cpp, src/BoundingBox.h,
@@ -6346,13 +6378,11 @@ Breaks standard things
tests/StreamInputBufferTest.h, tests/VectorStreamTest.h:
changed license to GPL version 3 or later
- * tests/Makefile.am:
- added include path to fix broken distcheck
-
2009-08-10 Martin Gieseking <martin.gieseking@uos.de>
- * tests/Makefile.am:
- added generated file test-all.cpp to CLEANFILES
+ * fedora/dvisvgm-0.8.1-potrace.patch, fedora/dvisvgm.spec,
+ rpm/dvisvgm.spec:
+ added spec file and patch for Fedora builds
* Makefile.am, configure.ac, src/Makefile.am, src/tests/CalculatorTest.h,
src/tests/ColorSpecialTest.h, src/tests/DirectoryTest.h,
@@ -6370,9 +6400,8 @@ Breaks standard things
tests/VectorStreamTest.h, tests/dvipdfm_test.map, tests/dvips_test.map:
moved tests from src/tests to ./tests
- * fedora/dvisvgm-0.8.1-potrace.patch, fedora/dvisvgm.spec,
- rpm/dvisvgm.spec:
- added spec file and patch for Fedora builds
+ * tests/Makefile.am:
+ added generated file test-all.cpp to CLEANFILES
2009-08-02 Martin Gieseking <martin.gieseking@uos.de>
@@ -6382,13 +6411,13 @@ Breaks standard things
2009-07-30 Martin Gieseking <martin.gieseking@uos.de>
+ * configure.ac, src/DVIToSVG.cpp:
+ added target triplet to version string in SVG output
+
* src/DVIToSVGActions.cpp, src/Ghostscript.cpp, src/Ghostscript.h,
src/PsSpecialHandler.cpp, src/PsSpecialHandler.h:
added Ghostscript revision info to output of dvisvgm -l
- * configure.ac, src/DVIToSVG.cpp:
- added target triplet to version string in SVG output
-
2009-07-29 Martin Gieseking <martin.gieseking@uos.de>
* src/psdefs.psc:
@@ -6396,33 +6425,33 @@ Breaks standard things
2009-07-28 Martin Gieseking <martin.gieseking@uos.de>
- * src/psdefs.psc:
- cleaned up VC++ build files; added batch file to generate cmdline.c;
- added generated file psdefs.psc for convenience
+ * src/PsSpecialHandler.cpp:
+ added evaluation of more psfile parameters; fixed psfile bounding box
+ bug
+
+ * NEWS, configure.ac, src/Doxyfile:
+ updated version number to 0.8.1
* NEWS, src/FileSystem.cpp, src/FontEngine.cpp, src/FontManager.cpp,
src/Ghostscript.cpp, src/PageSize.cpp, src/dvisvgm.cpp:
fixed bug related to unsigned/size_t mismatch on x64 systems
- * NEWS, configure.ac, src/Doxyfile:
- updated version number to 0.8.1
-
- * src/PsSpecialHandler.cpp:
- added evaluation of more psfile parameters; fixed psfile bounding box
- bug
+ * src/psdefs.psc:
+ cleaned up VC++ build files; added batch file to generate cmdline.c;
+ added generated file psdefs.psc for convenience
2009-07-27 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIReader.h, src/InputBuffer.cpp, src/InputBuffer.h,
- src/InputReader.cpp, src/InputReader.h, src/Matrix.cpp, src/Matrix.h,
- src/PSInterpreter.h:
- replaced size_t parameters by unsigned
+ * src/DLLoader.cpp, src/InputReader.cpp, src/PSInterpreter.cpp:
+ changes to make VC happy; fixed potential memory bug
* NEWS, README:
fixed typos; updated homepage/manpage
- * src/DLLoader.cpp, src/InputReader.cpp, src/PSInterpreter.cpp:
- changes to make VC happy; fixed potential memory bug
+ * src/DVIReader.h, src/InputBuffer.cpp, src/InputBuffer.h,
+ src/InputReader.cpp, src/InputReader.h, src/Matrix.cpp, src/Matrix.h,
+ src/PSInterpreter.h:
+ replaced size_t parameters by unsigned
2009-07-23 Martin Gieseking <martin.gieseking@uos.de>
@@ -6431,64 +6460,64 @@ Breaks standard things
2009-07-22 Martin Gieseking <martin.gieseking@uos.de>
- * src/TpicSpecialHandler.cpp:
- fixed reintroduced bug in TPIC handler
-
* NEWS, README, doc/dvisvgm.txt.in, src/BoundingBox.cpp,
src/BoundingBox.h, src/GraphicPath.h, src/PSInterpreter.cpp,
src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/psdefs.ps:
fixed clipping bug; updated homepage, README, NEWS
-2009-07-20 Martin Gieseking <martin.gieseking@uos.de>
+ * src/TpicSpecialHandler.cpp:
+ fixed reintroduced bug in TPIC handler
- * src/PsSpecialHandler.cpp, src/SVGTree.cpp:
- fixed bbox bug; added missing file
+2009-07-20 Martin Gieseking <martin.gieseking@uos.de>
* src/DvisvgmSpecialHandler.cpp, src/InputBuffer.cpp, src/InputReader.cpp,
src/InputReader.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h,
src/psdefs.ps, src/tests/StreamInputBufferTest.h:
implemented psfile special; fixed some bugs
+ * src/PsSpecialHandler.cpp, src/SVGTree.cpp:
+ fixed bbox bug; added missing file
+
2009-06-01 Martin Gieseking <martin.gieseking@uos.de>
- * src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h,
- src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h,
- src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h,
- src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, src/SpecialHandler.h,
- src/SpecialManager.cpp, src/SpecialManager.h, src/TpicSpecialHandler.cpp,
- src/TpicSpecialHandler.h:
- transplanted changes to SpecialHandlers from branch 'pages'
+ * src/InputBuffer.cpp, src/InputBuffer.h, src/Makefile.am:
+ transplanted changes to InputBuffer from branch 'pages'
- * src/GFTracer.cpp:
- transplanted changes to GFTracer from branch 'pages'
+ * src/Bitmap.cpp, src/Bitmap.h:
+ transplanted changes to Bitmap from branch 'pages'
- * src/VFReader.cpp:
- transplanted changes to VFReader from branch 'pages'
+ * src/DVIReader.cpp, src/DVIReader.h:
+ transplanted changes to DVIReader from branch 'pages'
* src/FileSystem.cpp, src/FileSystem.h:
transplanted changes to FileSystem from branch 'pages'
- * src/DVIReader.cpp, src/DVIReader.h:
- transplanted changes to DVIReader from branch 'pages'
+ * src/VFReader.cpp:
+ transplanted changes to VFReader from branch 'pages'
- * src/Bitmap.cpp, src/Bitmap.h:
- transplanted changes to Bitmap from branch 'pages'
+ * src/GFTracer.cpp:
+ transplanted changes to GFTracer from branch 'pages'
- * src/InputBuffer.cpp, src/InputBuffer.h, src/Makefile.am:
- transplanted changes to InputBuffer from branch 'pages'
+ * src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h,
+ src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h,
+ src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h,
+ src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, src/SpecialHandler.h,
+ src/SpecialManager.cpp, src/SpecialManager.h, src/TpicSpecialHandler.cpp,
+ src/TpicSpecialHandler.h:
+ transplanted changes to SpecialHandlers from branch 'pages'
2009-04-24 Martin Gieseking <martin.gieseking@uos.de>
- * src/FontCache.h:
- increased version of font cache files to ensure their recreation due to
- the previously fixed shorthand path command bug
+ * src/TpicSpecialHandler.cpp:
+ fixed TPIC handler bug that could caused unwanted color fills of
+ ellipses due to a missing call of reset()
* NEWS, configure.ac, src/Doxyfile:
increased version number to 0.7.3
- * src/TpicSpecialHandler.cpp:
- fixed TPIC handler bug that could caused unwanted color fills of
- ellipses due to a missing call of reset()
+ * src/FontCache.h:
+ increased version of font cache files to ensure their recreation due to
+ the previously fixed shorthand path command bug
2009-04-02 Martin Gieseking <martin.gieseking@uos.de>
@@ -6499,25 +6528,25 @@ Breaks standard things
2009-03-25 Martin Gieseking <martin.gieseking@uos.de>
- * src/Doxyfile:
- added doxygen files
-
* src/DVIToSVG.cpp, src/DVIToSVG.h, src/FontGlyph.cpp,
src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, src/dvisvgm.cpp:
replaced Metafont magnification variable and its setters by a public
class variable
+ * src/Doxyfile:
+ added doxygen files
+
2009-03-24 Martin Gieseking <martin.gieseking@uos.de>
- * src/FontGlyph.cpp:
- fixed memory bug in Glyph::optimizeCommands()
+ * NEWS, src/FontCache.cpp, src/FontGlyph.cpp, src/FontGlyph.h,
+ src/GFGlyphTracer.cpp, src/Pair.h, src/SVGFontEmitter.cpp:
+ use of shorthand path commands has been implemented
* src/FontGlyph.cpp:
fixed potential bug in Glyph::optimizeCommands()
- * NEWS, src/FontCache.cpp, src/FontGlyph.cpp, src/FontGlyph.h,
- src/GFGlyphTracer.cpp, src/Pair.h, src/SVGFontEmitter.cpp:
- use of shorthand path commands has been implemented
+ * src/FontGlyph.cpp:
+ fixed memory bug in Glyph::optimizeCommands()
2009-03-20 Martin Gieseking <martin.gieseking@uos.de>
@@ -6526,10 +6555,6 @@ Breaks standard things
2009-03-19 Martin Gieseking <martin.gieseking@uos.de>
- * src/FontCache.cpp, src/SVGFontTraceEmitter.cpp:
- don't read existing cache file if --trace-all is given (trace complete
- font and then write cache file instead)
-
* NEWS, doc/dvisvgm.txt.in, src/FontEmitter.h, src/GFGlyphTracer.cpp,
src/SVGFontEmitter.cpp, src/SVGFontEmitter.h,
src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, src/dvisvgm.cpp,
@@ -6537,29 +6562,33 @@ Breaks standard things
added option --trace-all that forces tracing of all glyphs of all
currently used bitmap fonts
+ * src/FontCache.cpp, src/SVGFontTraceEmitter.cpp:
+ don't read existing cache file if --trace-all is given (trace complete
+ font and then write cache file instead)
+
2009-03-18 Martin Gieseking <martin.gieseking@uos.de>
+ * src/FontCache.cpp:
+ fixed bug in read/write functions of FontCache
+
* src/DVIToSVG.cpp, src/TFM.cpp, src/TFM.h:
added firstChar()/lastChar() to TFM class, removed unnecessary mag
member variable and its setter
- * src/FontCache.cpp:
- fixed bug in read/write functions of FontCache
-
2009-03-17 Martin Gieseking <martin.gieseking@uos.de>
- * src/FontCache.cpp:
- reduced size of cache file format by using variable integer sizes
-
- * doc/dvisvgm.txt.in, src/dvisvgm.cpp:
- added option variant --cache=? to display the default cache directory
-
* doc/dvisvgm.txt.in, src/DVIToSVG.cpp, src/FileSystem.cpp,
src/FileSystem.h, src/FontCache.cpp, src/FontCache.h, src/FontGlyph.h,
src/GFGlyphTracer.cpp, src/GFGlyphTracer.h, src/Makefile.am,
src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, src/dvisvgm.cpp:
completed font caching support
+ * doc/dvisvgm.txt.in, src/dvisvgm.cpp:
+ added option variant --cache=? to display the default cache directory
+
+ * src/FontCache.cpp:
+ reduced size of cache file format by using variable integer sizes
+
2009-03-16 Martin Gieseking <martin.gieseking@uos.de>
* NEWS, configure.ac, doc/dvisvgm.txt.in, src/DVIToSVG.cpp,
@@ -6586,49 +6615,39 @@ Breaks standard things
2009-03-09 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h,
- src/DVIToSVGActions.cpp:
- fixed transformation bug (transformations are now applied properly to
- the page)
+ * src/BgColorSpecialHandler.cpp, src/SpecialManager.cpp,
+ src/TpicSpecialHandler.cpp:
+ adapted Code to make VC happy
* src/types.h:
minor changes to homepage and .hgignore
- * src/BgColorSpecialHandler.cpp, src/SpecialManager.cpp,
- src/TpicSpecialHandler.cpp:
- adapted Code to make VC happy
+ * src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h,
+ src/DVIToSVGActions.cpp:
+ fixed transformation bug (transformations are now applied properly to
+ the page)
2009-03-08 Martin Gieseking <martin.gieseking@uos.de>
- * src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h:
- added missing background color handler
-
* NEWS, README, src/Color.cpp, src/Color.h, src/ColorSpecialHandler.cpp,
src/DVIToSVGActions.cpp, src/DVIToSVGActions.h,
src/DvisvgmSpecialHandler.cpp, src/EmSpecialHandler.cpp, src/Makefile.am,
src/TpicSpecialHandler.cpp:
added bgcolor support, updated homepage, fixed color handler bug
+ * src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h:
+ added missing background color handler
+
2009-03-06 Martin Gieseking <martin.gieseking@uos.de>
* src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h:
- implemented splines of tpic specials
+ implemented arc drawing of tpic special set
* src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h:
- implemented arc drawing of tpic special set
+ implemented splines of tpic specials
2009-03-03 Martin Gieseking <martin.gieseking@uos.de>
- * doc/dvisvgm.txt.in, src/DvisvgmSpecialHandler.cpp,
- src/DvisvgmSpecialHandler.h:
- minor code improvements; comments added
-
- * doc/Makefile.am, doc/dvisvgm.txt.in, src/DVIToSVGActions.cpp,
- src/DVIToSVGActions.h, src/DvisvgmSpecialHandler.cpp,
- src/DvisvgmSpecialHandler.h, src/InputBuffer.cpp, src/InputBuffer.h,
- src/SpecialActions.h:
- implemented the dvisvgm specials raw, image, and bbox
-
* src/BoundingBox.cpp, src/BoundingBox.h, src/Color.cpp,
src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, src/DVIActions.h,
src/DVIBBoxActions.h, src/DVIToSVG.cpp, src/DVIToSVG.h,
@@ -6638,14 +6657,24 @@ Breaks standard things
improved computation of the bounding box (works with specials now);
added dummy function for background color assignments
-2009-02-26 Martin Gieseking <martin.gieseking@uos.de>
+ * doc/Makefile.am, doc/dvisvgm.txt.in, src/DVIToSVGActions.cpp,
+ src/DVIToSVGActions.h, src/DvisvgmSpecialHandler.cpp,
+ src/DvisvgmSpecialHandler.h, src/InputBuffer.cpp, src/InputBuffer.h,
+ src/SpecialActions.h:
+ implemented the dvisvgm specials raw, image, and bbox
- * doc/Makefile.am, doc/dvisvgm.txt.in:
- improved manpage
+ * doc/dvisvgm.txt.in, src/DvisvgmSpecialHandler.cpp,
+ src/DvisvgmSpecialHandler.h:
+ minor code improvements; comments added
+
+2009-02-26 Martin Gieseking <martin.gieseking@uos.de>
* doc/Makefile.am, doc/dvisvgm.txt, doc/dvisvgm.txt.in:
removed generated file, added dvisvgm.txt.in
+ * doc/Makefile.am, doc/dvisvgm.txt.in:
+ improved manpage
+
2009-02-25 Martin Gieseking <martin.gieseking@uos.de>
* src/DVIToSVGActions.cpp, src/DVIToSVGActions.h,
@@ -6655,15 +6684,6 @@ Breaks standard things
2009-02-24 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, doc/dvisvgm.1.in, src/TpicSpecialHandler.cpp:
- few additions to tpic handler
-
- * NEWS, src/Color.cpp, src/Color.h, src/DVIToSVGActions.cpp,
- src/Makefile.am, src/Pair.h, src/SpecialHandler.h,
- src/SpecialManager.cpp, src/SpecialManager.h, src/TpicSpecialHandler.cpp,
- src/TpicSpecialHandler.h:
- first tpic implementations; not complete yet
-
* src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h,
src/DVIToSVGActions.cpp, src/DvisvgmSpecialHandler.cpp,
src/DvisvgmSpecialHandler.h, src/EmSpecialHandler.cpp,
@@ -6675,6 +6695,15 @@ Breaks standard things
src/tests/ColorSpecialTest.h:
improved SpecialHandler is now able to handle unprefixed specials
+ * NEWS, src/Color.cpp, src/Color.h, src/DVIToSVGActions.cpp,
+ src/Makefile.am, src/Pair.h, src/SpecialHandler.h,
+ src/SpecialManager.cpp, src/SpecialManager.h, src/TpicSpecialHandler.cpp,
+ src/TpicSpecialHandler.h:
+ first tpic implementations; not complete yet
+
+ * NEWS, doc/dvisvgm.1.in, src/TpicSpecialHandler.cpp:
+ few additions to tpic handler
+
2009-02-23 Martin Gieseking <martin.gieseking@uos.de>
* NEWS, configure.ac, doc/dvisvgm.1.in, src/DVIBBoxActions.h,
@@ -6701,14 +6730,14 @@ Breaks standard things
2009-02-18 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, src/SpecialActions.h, src/tests/ColorSpecialTest.h:
- adapted color test to new interface, added emtex info
-
* src/Color.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h,
src/Makefile.am, src/SpecialActions.h, src/SpecialColorHandler.cpp,
src/SpecialEmHandler.cpp:
added color support to emTeX specials, removed Color class
+ * NEWS, src/SpecialActions.h, src/tests/ColorSpecialTest.h:
+ adapted color test to new interface, added emtex info
+
2009-02-17 Martin Gieseking <martin.gieseking@uos.de>
* src/DVIReader.cpp:
@@ -6724,30 +6753,35 @@ Breaks standard things
2009-02-14 Martin Gieseking <martin.gieseking@uos.de>
+ * src/Color.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h:
+ finished color support
+
+ * src/dvisvgm.cpp:
+ fixed incorrect behavior of option -V/--version
+
* NEWS, configure.ac:
- prepared release of version 0.7
+ increased version number to 0.6.2, updated NEWS
* doc/dvisvgm.1.in, src/DVIToSVG.cpp, src/DVIToSVG.h,
src/DVIToSVGActions.cpp, src/dvisvgm.cpp, src/options.ggo:
added option --no-style
* NEWS, configure.ac:
- increased version number to 0.6.2, updated NEWS
+ prepared release of version 0.7
- * src/dvisvgm.cpp:
- fixed incorrect behavior of option -V/--version
+2009-02-13 Martin Gieseking <martin.gieseking@uos.de>
- * src/Color.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h:
- finished color support
+ * src/types.h:
+ replaced static definition of sized integers by template program
-2009-02-13 Martin Gieseking <martin.gieseking@uos.de>
+ * Makefile.am, configure.ac, src/tests/DirectoryTest.h:
+ removed rpm support
- * src/ColorSpecialHandler.cpp, src/Makefile.am,
- src/tests/ColorSpecialTest.h:
- added tests for ColorSpecialHandler
+ * hgauthors, prepare:
+ added administrative files
- * prepare:
- updated administrative files
+ * src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h:
+ reverted to previous version, removed dependency on Color class
* src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Makefile.am,
src/SpecialActions.h, src/SpecialHandler.h, src/SpecialManager.cpp,
@@ -6755,17 +6789,12 @@ Breaks standard things
color specials are now processed by DVIToSVGActions, but don't create
any results yet
- * src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h:
- reverted to previous version, removed dependency on Color class
-
- * hgauthors, prepare:
- added administrative files
-
- * Makefile.am, configure.ac, src/tests/DirectoryTest.h:
- removed rpm support
+ * prepare:
+ updated administrative files
- * src/types.h:
- replaced static definition of sized integers by template program
+ * src/ColorSpecialHandler.cpp, src/Makefile.am,
+ src/tests/ColorSpecialTest.h:
+ added tests for ColorSpecialHandler
2009-02-10 Martin Gieseking <martin.gieseking@uos.de>
@@ -6780,69 +6809,69 @@ Breaks standard things
2009-02-06 Martin Gieseking <martin.gieseking@uos.de>
- * src/FileFinder.cpp:
- changed lookup order of font maps
-
* doc/dvisvgm.1.in, src/ColorSpecialHandler.h, src/DVIToSVG.cpp,
src/DVIToSVG.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h,
src/SpecialHandler.h, src/SpecialManager.cpp, src/SpecialManager.h,
src/dvisvgm.cpp, src/options.ggo:
added option --list-specials that lists all registered special handlers
+ * src/FileFinder.cpp:
+ changed lookup order of font maps
+
2009-02-05 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIToSVGActions.cpp:
- replaced special ignore list evaluation algorithm
+ * src/extract-colors.php:
+ added php-script that extracts color definitions from color.pro
* src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp,
src/DVIToSVGActions.h, src/dvisvgm.cpp, src/options.ggo:
added optional prefix list to commandline option --no-specials
- * src/extract-colors.php:
- added php-script that extracts color definitions from color.pro
+ * src/DVIToSVGActions.cpp:
+ replaced special ignore list evaluation algorithm
2009-02-04 Martin Gieseking <martin.gieseking@uos.de>
- * src/FontMap.cpp:
- added output of font encoding in write method
-
* src/FileFinder.cpp:
added option for additional loading of user maps
-2009-02-03 Martin Gieseking <martin.gieseking@uos.de>
-
- * map/cork-lm.map:
- removed deprecated map subdirectory
+ * src/FontMap.cpp:
+ added output of font encoding in write method
- * src/FileFinder.cpp, src/FileFinder.h, src/dvisvgm.cpp:
- option -m/--map-file is now evaluated properly
+2009-02-03 Martin Gieseking <martin.gieseking@uos.de>
* src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h,
src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/SpecialHandler.h,
src/SpecialManager.cpp, src/SpecialManager.h, src/options.ggo:
more color special implementation (color constants), still not ready
+ * src/FileFinder.cpp, src/FileFinder.h, src/dvisvgm.cpp:
+ option -m/--map-file is now evaluated properly
+
+ * map/cork-lm.map:
+ removed deprecated map subdirectory
+
2009-02-02 Martin Gieseking <martin.gieseking@uos.de>
- * src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h:
- some refactorings in color handler
+ * NEWS, src/FileFinder.cpp:
+ fixed buggy call of maketfm/makemf in Windows version
* src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, src/Makefile.am,
src/SpecialHandler.h, src/SpecialManager.cpp, src/SpecialManager.h:
added special support skeletons; not working yet
- * NEWS, src/FileFinder.cpp:
- fixed buggy call of maketfm/makemf in Windows version
+ * src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h:
+ some refactorings in color handler
2009-01-30 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, src/DVIReader.cpp, src/DVIReader.h:
- fixed magnification bug
-
* src/dvisvgm.cpp:
prevented writing zero-length svg files; simplified main code by using
auto pointers
+ * NEWS, src/DVIReader.cpp, src/DVIReader.h:
+ fixed magnification bug
+
2009-01-29 Martin Gieseking <martin.gieseking@uos.de>
* src/FileFinder.cpp:
@@ -6850,31 +6879,31 @@ Breaks standard things
2009-01-28 Martin Gieseking <martin.gieseking@uos.de>
- * NEWS, configure.ac, doc/dvisvgm.1.in:
- adapted configuration and documentation to new dvips map file support
+ * src/FileFinder.cpp, src/FileFinder.h, src/Makefile.am,
+ src/tests/DirectoryTest.h, src/tests/FileFinderTest.h,
+ src/tests/FontManagerTest.h, src/tests/KPSFileFinderTest.h:
+ refactored FileFinder (implementation as singleton)
- * src/FileFinder.cpp, src/FontMap.cpp, src/FontMap.h,
- src/tests/FontMapTest.h, src/tests/dvips_test.map:
- FontMap now supports dvips and dvipdfm maps
+ * src/dvisvgm.cpp:
+ use new initialisation of FileFinder
- * src/Calculator.cpp, src/DVIToSVG.cpp, src/FontEncoding.cpp,
- src/FontMap.cpp, src/SVGFontEmitter.cpp, src/SVGFontTraceEmitter.cpp:
- replaced comparisions with "" with calls of empty()
+ * src/GFReader.h, src/GFTracer.cpp, src/GFTracer.h:
+ improved GFTracer to support unscaled results
* src/FontMap.cpp, src/Makefile.am, src/tests/FontMapTest.h,
src/tests/dvipdfm_test.map, src/tests/dvips_test.map:
extensions to FontMap almost complete but not finished yet
- * src/GFReader.h, src/GFTracer.cpp, src/GFTracer.h:
- improved GFTracer to support unscaled results
+ * src/Calculator.cpp, src/DVIToSVG.cpp, src/FontEncoding.cpp,
+ src/FontMap.cpp, src/SVGFontEmitter.cpp, src/SVGFontTraceEmitter.cpp:
+ replaced comparisions with "" with calls of empty()
- * src/dvisvgm.cpp:
- use new initialisation of FileFinder
+ * src/FileFinder.cpp, src/FontMap.cpp, src/FontMap.h,
+ src/tests/FontMapTest.h, src/tests/dvips_test.map:
+ FontMap now supports dvips and dvipdfm maps
- * src/FileFinder.cpp, src/FileFinder.h, src/Makefile.am,
- src/tests/DirectoryTest.h, src/tests/FileFinderTest.h,
- src/tests/FontManagerTest.h, src/tests/KPSFileFinderTest.h:
- refactored FileFinder (implementation as singleton)
+ * NEWS, configure.ac, doc/dvisvgm.1.in:
+ adapted configuration and documentation to new dvips map file support
2009-01-27 Martin Gieseking <martin.gieseking@uos.de>
@@ -6885,17 +6914,20 @@ Breaks standard things
2009-01-26 Martin Gieseking <martin.gieseking@uos.de>
- * src/InputBuffer.h:
- fixed incompatible types bug
-
* src/Bitmap.cpp, src/Bitmap.h, src/GFReader.cpp, src/GFReader.h,
src/GFTracer.cpp, src/Makefile.am:
improvements to GF handling, first skeletton of gf->metapost (gfprint)
+ * src/InputBuffer.h:
+ fixed incompatible types bug
+
2009-01-25 Martin Gieseking <martin.gieseking@uos.de>
- * src/FontMap.cpp:
- basic dvips font map support, not complete yet
+ * src/InputBuffer.cpp, src/InputBuffer.h:
+ added missing include
+
+ * src/FontMap.cpp, src/FontMap.h:
+ started redesign of FontMap, not complete yet
* src/CharmapTranslator.cpp, src/DVIToSVG.cpp, src/FileFinder.cpp,
src/FileFinder.h, src/Font.cpp, src/FontEncoding.cpp,
@@ -6903,11 +6935,8 @@ Breaks standard things
src/Makefile.am, src/MetafontWrapper.cpp, src/TFM.cpp, src/dvisvgm.cpp:
renamed KPSFileFinder to FileFinder
- * src/FontMap.cpp, src/FontMap.h:
- started redesign of FontMap, not complete yet
-
- * src/InputBuffer.cpp, src/InputBuffer.h:
- added missing include
+ * src/FontMap.cpp:
+ basic dvips font map support, not complete yet
2009-01-23 Martin Gieseking <martin.gieseking@uos.de>
@@ -6916,8 +6945,26 @@ Breaks standard things
2009-01-22 Martin Gieseking <martin.gieseking@uos.de>
- * configure.ac:
- added test whether dvipdfm.map is available
+ * src/FontMap.cpp:
+ forgot to remove address operator
+
+ * src/KPSFileFinder.cpp, src/KPSFileFinder.h, src/dvisvgm.cpp:
+ added support for MiKTeX' new COM interface
+
+ * src/DVIReader.cpp, src/FontManager.cpp, src/KPSFileFinder.cpp:
+ memory leak fixed
+
+ * src/KPSFileFinder.cpp:
+ fixed throwing of COM exception
+
+ * Makefile.am, NEWS, README, configure.ac, potracelib/Makefile.am:
+ updated version info to 0.6
+
+ * src/tests/CalculatorTest.h, src/tests/DirectoryTest.h,
+ src/tests/FontManagerTest.h, src/tests/FontMapTest.h,
+ src/tests/KPSFileFinderTest.h, src/tests/PageSizeTest.h,
+ src/tests/StreamCounterTest.h, src/tests/VectorStreamTest.h:
+ updated tests
* doc/dvisvgm.1.in, rpm/dvisvgm.spec.in, src/Bitmap.cpp, src/Bitmap.h,
src/BoundingBox.cpp, src/BoundingBox.h, src/Calculator.cpp,
@@ -6949,29 +6996,15 @@ Breaks standard things
src/global.h, src/macros.h, src/options.ggo, src/types.h:
updated file header comments
- * src/tests/CalculatorTest.h, src/tests/DirectoryTest.h,
- src/tests/FontManagerTest.h, src/tests/FontMapTest.h,
- src/tests/KPSFileFinderTest.h, src/tests/PageSizeTest.h,
- src/tests/StreamCounterTest.h, src/tests/VectorStreamTest.h:
- updated tests
-
- * Makefile.am, NEWS, README, configure.ac, potracelib/Makefile.am:
- updated version info to 0.6
-
- * src/KPSFileFinder.cpp:
- fixed throwing of COM exception
-
- * src/DVIReader.cpp, src/FontManager.cpp, src/KPSFileFinder.cpp:
- memory leak fixed
-
- * src/KPSFileFinder.cpp, src/KPSFileFinder.h, src/dvisvgm.cpp:
- added support for MiKTeX' new COM interface
-
- * src/FontMap.cpp:
- forgot to remove address operator
+ * configure.ac:
+ added test whether dvipdfm.map is available
2009-01-21 Martin Gieseking <martin.gieseking@uos.de>
+ * src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp,
+ src/FontEncoding.cpp, src/FontGlyph.cpp:
+ fixed bugs in handling of font encodings and virtual fonts
+
* src/Calculator.cpp, src/DVIReader.cpp, src/DVIToSVGActions.cpp,
src/Directory.cpp, src/FontEncoding.cpp, src/FontEngine.cpp,
src/FontManager.cpp, src/FontMap.cpp, src/KPSFileFinder.cpp,
@@ -6980,18 +7013,8 @@ Breaks standard things
src/XMLDocument.cpp, src/XMLNode.cpp:
added in/out attributes to parameter documentation
- * src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp,
- src/FontEncoding.cpp, src/FontGlyph.cpp:
- fixed bugs in handling of font encodings and virtual fonts
-
2009-01-20 Martin Gieseking <martin.gieseking@uos.de>
- * src/SVGFontEmitter.cpp:
- fixed memory bug
-
- * src/FontEngine.cpp, src/FontEngine.h, src/SVGFontEmitter.cpp:
- fixed glyph positioning bug occured in conjunction with font encoding
-
* src/DVIReader.cpp, src/DVIToSVG.cpp, src/Font.h, src/FontEncoding.cpp,
src/FontEncoding.h, src/FontEngine.cpp, src/FontEngine.h,
src/FontGlyph.cpp, src/FontGlyph.h, src/FontManager.cpp,
@@ -6999,12 +7022,13 @@ Breaks standard things
src/SVGFontEmitter.cpp, src/SVGFontEmitter.h:
first working version with font encoding support
-2009-01-19 Martin Gieseking <martin.gieseking@uos.de>
+ * src/FontEngine.cpp, src/FontEngine.h, src/SVGFontEmitter.cpp:
+ fixed glyph positioning bug occured in conjunction with font encoding
- * src/DVIReader.cpp, src/FontEncoding.cpp, src/FontEncoding.h,
- src/FontEngine.cpp, src/FontEngine.h, src/FontManager.cpp,
- src/FontManager.h, src/FontMap.cpp:
- partly working mapping support, but yet too slow
+ * src/SVGFontEmitter.cpp:
+ fixed memory bug
+
+2009-01-19 Martin Gieseking <martin.gieseking@uos.de>
* src/FontEncoding.cpp, src/FontEncoding.h, src/FontEngine.cpp,
src/FontEngine.h, src/FontManager.cpp, src/FontManager.h,
@@ -7012,6 +7036,11 @@ Breaks standard things
src/KPSFileFinder.h:
more encoding implementations, not complete yet
+ * src/DVIReader.cpp, src/FontEncoding.cpp, src/FontEncoding.h,
+ src/FontEngine.cpp, src/FontEngine.h, src/FontManager.cpp,
+ src/FontManager.h, src/FontMap.cpp:
+ partly working mapping support, but yet too slow
+
2009-01-16 Martin Gieseking <martin.gieseking@uos.de>
* src/TransformationMatrix.cpp:
@@ -7024,24 +7053,24 @@ Breaks standard things
2009-01-14 Martin Gieseking <martin.gieseking@uos.de>
- * src/KPSFileFinder.cpp:
- added enc-file support
+ * potracelib/auxiliary.h, potracelib/bitmap.h, potracelib/curve.c,
+ potracelib/curve.h, potracelib/decompose.c, potracelib/decompose.h,
+ potracelib/lists.h, potracelib/potracelib.c, potracelib/potracelib.h,
+ potracelib/progress.h, potracelib/trace.c, potracelib/trace.h:
+ updated libpotrace to version 1.8
- * src/dvisvgm.cpp:
- updated copyright string
+ * src/FontEncoding.cpp, src/FontEncoding.h, src/InputBuffer.cpp,
+ src/InputBuffer.h, src/Makefile.am:
+ added basic skeleton for handling of font encodings
* src/FileSystem.cpp, src/FileSystem.h:
const string parameters
- * src/FontEncoding.cpp, src/FontEncoding.h, src/InputBuffer.cpp,
- src/InputBuffer.h, src/Makefile.am:
- added basic skeleton for handling of font encodings
+ * src/dvisvgm.cpp:
+ updated copyright string
- * potracelib/auxiliary.h, potracelib/bitmap.h, potracelib/curve.c,
- potracelib/curve.h, potracelib/decompose.c, potracelib/decompose.h,
- potracelib/lists.h, potracelib/potracelib.c, potracelib/potracelib.h,
- potracelib/progress.h, potracelib/trace.c, potracelib/trace.h:
- updated libpotrace to version 1.8
+ * src/KPSFileFinder.cpp:
+ added enc-file support
2009-01-13 Martin Gieseking <martin.gieseking@uos.de>
@@ -7060,10 +7089,6 @@ Breaks standard things
2007-03-26 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIActions.cpp, src/DVIReader.cpp, src/DVIReader.h,
- src/FontManager.cpp, src/tests/FontManagerTest.h:
- few minor changes
-
* NEWS, src/CharmapTranslator.cpp, src/CharmapTranslator.h,
src/DVIActions.h, src/DVIReader.cpp, src/DVIToSVG.cpp,
src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Font.h,
@@ -7071,10 +7096,11 @@ Breaks standard things
src/SVGFontTraceEmitter.h:
redesigned DVIActions and CharmapTranslator
-2007-03-25 Martin Gieseking <martin.gieseking@uos.de>
+ * src/DVIActions.cpp, src/DVIReader.cpp, src/DVIReader.h,
+ src/FontManager.cpp, src/tests/FontManagerTest.h:
+ few minor changes
- * src/DVIReader.cpp, src/DVIReader.h, src/VFActions.h:
- minor fixes
+2007-03-25 Martin Gieseking <martin.gieseking@uos.de>
* src/DVIActions.cpp, src/DVIActions.h, src/DVIBBoxActions.h,
src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp,
@@ -7084,6 +7110,9 @@ Breaks standard things
src/VectorStream.h:
first working version 0.5, release candidate 1
+ * src/DVIReader.cpp, src/DVIReader.h, src/VFActions.h:
+ minor fixes
+
2007-03-23 Martin Gieseking <martin.gieseking@uos.de>
* src/DVIReader.cpp, src/FontManager.cpp, src/FontManager.h,
@@ -7092,10 +7121,6 @@ Breaks standard things
2007-03-22 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIReader.cpp, src/Font.cpp, src/Font.h, src/FontManager.cpp,
- src/VFActions.h, src/VFReader.cpp, src/VFReader.h:
- more vf implementations
-
* NEWS, doc/Makefile.in, src/DVIReader.cpp, src/DVIReader.h,
src/DVIToSVG.cpp, src/DVIToSVG.h, src/FileSystem.cpp, src/FileSystem.h,
src/KPSFileFinder.cpp, src/KPSFileFinder.h, src/Makefile.am,
@@ -7103,14 +7128,17 @@ Breaks standard things
reintegrated font map initialization into KPSFileFinderm adapted some
tests
-2007-03-21 Martin Gieseking <martin.gieseking@uos.de>
+ * src/DVIReader.cpp, src/Font.cpp, src/Font.h, src/FontManager.cpp,
+ src/VFActions.h, src/VFReader.cpp, src/VFReader.h:
+ more vf implementations
- * src/KPSFileFinder.cpp, src/KPSFileFinder.h, src/dvisvgm.cpp:
- implemented options -n and -m
+2007-03-21 Martin Gieseking <martin.gieseking@uos.de>
- * src/Directory.cpp, src/Directory.h, src/KPSFileFinder.cpp,
- src/KPSFileFinder.h, src/dvisvgm.cpp:
- completed MiKTeX font map file look-up, fixed bug in Directory class
+ * AUTHORS, Makefile.am, README, potracelib/Makefile.am,
+ rpm/dvisvgm.spec.in, src/Directory.cpp, src/Directory.h,
+ src/KPSFileFinder.cpp, src/Makefile, src/Makefile.am, src/Makefile.in,
+ src/SVGFontTraceEmitter.cpp, src/test-all.cpp, src/tests/DirectoryTest.h:
+ implemented Directory class for Linux, added DirectoryTest
* src/Calculator.cpp, src/DVIReader.cpp, src/Directory.cpp, src/Font.h,
src/FontManager.cpp, src/Makefile, src/Makefile.am, src/Makefile.in,
@@ -7119,17 +7147,14 @@ Breaks standard things
removed redundant code and commented code fragments, added
VectorInputStream class
- * AUTHORS, Makefile.am, README, potracelib/Makefile.am,
- rpm/dvisvgm.spec.in, src/Directory.cpp, src/Directory.h,
- src/KPSFileFinder.cpp, src/Makefile, src/Makefile.am, src/Makefile.in,
- src/SVGFontTraceEmitter.cpp, src/test-all.cpp, src/tests/DirectoryTest.h:
- implemented Directory class for Linux, added DirectoryTest
+ * src/Directory.cpp, src/Directory.h, src/KPSFileFinder.cpp,
+ src/KPSFileFinder.h, src/dvisvgm.cpp:
+ completed MiKTeX font map file look-up, fixed bug in Directory class
-2007-03-20 Martin Gieseking <martin.gieseking@uos.de>
+ * src/KPSFileFinder.cpp, src/KPSFileFinder.h, src/dvisvgm.cpp:
+ implemented options -n and -m
- * src/Directory.cpp, src/Directory.h, src/FileSystem.cpp, src/FontMap.cpp,
- src/FontMap.h, src/KPSFileFinder.cpp:
- more changes for MiKTeX support
+2007-03-20 Martin Gieseking <martin.gieseking@uos.de>
* NEWS, doc/Makefile, doc/Makefile.in, doc/dvisvgm.1.in,
src/DVIReader.cpp, src/DVIToSVG.cpp, src/Font.cpp, src/Font.h,
@@ -7138,20 +7163,24 @@ Breaks standard things
src/test-all.cpp, src/tests/KPSFileFinderTest.h:
added KPSFileFinderTest, added EmptyFont, fixed compilation error
-2007-03-19 Martin Gieseking <martin.gieseking@uos.de>
-
- * src/Font.cpp, src/Font.h, src/FontManager.cpp, src/FontMap.cpp,
+ * src/Directory.cpp, src/Directory.h, src/FileSystem.cpp, src/FontMap.cpp,
src/FontMap.h, src/KPSFileFinder.cpp:
- made sources comaptible with MikTeX
+ more changes for MiKTeX support
- * src/KPSFileFinder.cpp:
- bug fixed, font maps work now
+2007-03-19 Martin Gieseking <martin.gieseking@uos.de>
* src/CharmapTranslator.cpp, src/DVIToSVG.cpp, src/FontManager.cpp,
src/KPSFileFinder.cpp, src/KPSFileFinder.h, src/Makefile,
src/Makefile.am, src/Makefile.in, src/MetafontWrapper.cpp, src/TFM.cpp:
added mktexFOO support and font map lookups to KPSFileFinder
+ * src/KPSFileFinder.cpp:
+ bug fixed, font maps work now
+
+ * src/Font.cpp, src/Font.h, src/FontManager.cpp, src/FontMap.cpp,
+ src/FontMap.h, src/KPSFileFinder.cpp:
+ made sources comaptible with MikTeX
+
2007-03-16 Martin Gieseking <martin.gieseking@uos.de>
* src/Font.cpp, src/Font.h, src/FontManager.cpp, src/FontMap.cpp,
@@ -7176,18 +7205,13 @@ Breaks standard things
2007-03-08 Martin Gieseking <martin.gieseking@uos.de>
- * src/DVIReader.cpp, src/DVIToSVGActions.cpp, src/Font.h, src/Makefile,
- src/Makefile.am, src/Makefile.in, src/Makefile.orig, src/VFActions.h,
- src/VFReader.cpp, src/VFReader.h, src/dvisvgm.cpp:
- plugged VFReader and its actions into the code (not usable yet)
-
- * src/DVIBBoxReader.cpp, src/DVIBBoxReader.h, src/Font.cpp, src/Font.h,
- src/Makefile.orig, src/StreamCounter.h, src/dvisvgm.cpp:
- fixed memory bug
-
- * doc/dvisvgm.1, src/FontEngine.h, src/Makefile.orig, src/dvisvgm.cpp,
- src/tests/FontManagerTest.h:
- minor changes
+ * src/DVIActions.h, src/DVIBBoxActions.h, src/DVIReader.cpp,
+ src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp,
+ src/DVIToSVGActions.h, src/Font.cpp, src/Font.h, src/FontManager.cpp,
+ src/FontManager.h, src/KPSFileFinder.cpp, src/KPSFileFinder.h,
+ src/Makefile, src/Makefile.am, src/Makefile.in, src/Message.cpp,
+ src/dvisvgm.cpp, src/macros.h, src/test-all.cpp:
+ first unstable version with redesigned font handling
* COPYING, Makefile, Makefile.am, Makefile.in, Martins_svg_neu.svg, NEWS,
aclocal.m4, cmdline.c, config.guess, config.h, config.h.in,
@@ -7197,13 +7221,18 @@ Breaks standard things
src/VFReader.cpp, src/tests/FontManagerTest.h, stamp-h1, table.txt:
removed some garbage from the repository, added initial FontManagerTest
- * src/DVIActions.h, src/DVIBBoxActions.h, src/DVIReader.cpp,
- src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp,
- src/DVIToSVGActions.h, src/Font.cpp, src/Font.h, src/FontManager.cpp,
- src/FontManager.h, src/KPSFileFinder.cpp, src/KPSFileFinder.h,
- src/Makefile, src/Makefile.am, src/Makefile.in, src/Message.cpp,
- src/dvisvgm.cpp, src/macros.h, src/test-all.cpp:
- first unstable version with redesigned font handling
+ * doc/dvisvgm.1, src/FontEngine.h, src/Makefile.orig, src/dvisvgm.cpp,
+ src/tests/FontManagerTest.h:
+ minor changes
+
+ * src/DVIBBoxReader.cpp, src/DVIBBoxReader.h, src/Font.cpp, src/Font.h,
+ src/Makefile.orig, src/StreamCounter.h, src/dvisvgm.cpp:
+ fixed memory bug
+
+ * src/DVIReader.cpp, src/DVIToSVGActions.cpp, src/Font.h, src/Makefile,
+ src/Makefile.am, src/Makefile.in, src/Makefile.orig, src/VFActions.h,
+ src/VFReader.cpp, src/VFReader.h, src/dvisvgm.cpp:
+ plugged VFReader and its actions into the code (not usable yet)
2007-03-07 Martin Gieseking <martin.gieseking@uos.de>
@@ -7245,10 +7274,6 @@ Breaks standard things
2007-01-09 Martin Gieseking <martin.gieseking@uos.de>
- * map/cork-lm.map, rpm/Makefile, rpm/Makefile.am, rpm/Makefile.in,
- rpm/dvisvgm.spec, rpm/dvisvgm.spec.in:
- moved files to trunk
-
* INSTALL, Makefile.am, NEWS, README, configure.ac, doc/Makefile,
doc/Makefile.am, doc/Makefile.in, doc/dvisvgm.1, doc/dvisvgm.1.in,
gzstream/COPYING.LIB, gzstream/Makefile, gzstream/README,
@@ -7291,6 +7316,10 @@ Breaks standard things
src/tests/StreamCounterTest.h, src/types.h:
moved files to trunk subfolder
+ * map/cork-lm.map, rpm/Makefile, rpm/Makefile.am, rpm/Makefile.in,
+ rpm/dvisvgm.spec, rpm/dvisvgm.spec.in:
+ moved files to trunk
+
2007-01-05 Martin Gieseking <martin.gieseking@uos.de>
* Makefile, Makefile.am, Makefile.in, README, config.status, configure.ac,
@@ -7323,8 +7352,8 @@ Breaks standard things
2007-01-03 Martin Gieseking <martin.gieseking@uos.de>
- * configure:
- removed configure from repository
+ * NEWS, mkwindist.pl, src/KPSFileFinder.cpp:
+ updated homepage
* Makefile, Makefile.am, Makefile.in, config.h, config.h.in,
config.status, configure, configure.ac, doc/Makefile,
@@ -7336,30 +7365,27 @@ Breaks standard things
potracelib/trace.h, src/Makefile, src/Makefile.am, src/Makefile.in:
added potracelib to distribution
- * NEWS, mkwindist.pl, src/KPSFileFinder.cpp:
- updated homepage
+ * configure:
+ removed configure from repository
2006-12-31 Martin Gieseking <martin.gieseking@uos.de>
- * src/KPSFileFinder.cpp:
- fixed namepsace bug
+ * NEWS, configure.ac, src/DVIToSVG.cpp, src/FileSystem.cpp,
+ src/FontEngine.cpp, src/GFTracer.cpp, src/KPSFileFinder.cpp,
+ src/Makefile.orig, src/Matrix.h, src/Message.cpp, src/PageSize.cpp,
+ src/TransformationMatrix.cpp, src/dvisvgm.cpp:
+ updated to MikTeX 2.5 support
* Makefile, config.status, configure, configure.ac, doc/Makefile,
doc/dvisvgm.1, src/FileSystem.cpp, src/FontEngine.cpp,
src/KPSFileFinder.cpp, src/Makefile, src/dvisvgm.cpp, src/test-all.cpp:
some minor fixes
- * NEWS, configure.ac, src/DVIToSVG.cpp, src/FileSystem.cpp,
- src/FontEngine.cpp, src/GFTracer.cpp, src/KPSFileFinder.cpp,
- src/Makefile.orig, src/Matrix.h, src/Message.cpp, src/PageSize.cpp,
- src/TransformationMatrix.cpp, src/dvisvgm.cpp:
- updated to MikTeX 2.5 support
+ * src/KPSFileFinder.cpp:
+ fixed namepsace bug
2006-08-01 Martin Gieseking <martin.gieseking@uos.de>
- * configure.ac:
- enabled svn keyword expansion
-
* Makefile, Makefile.in, NEWS, aclocal.m4, autom4te.cache/output.0,
autom4te.cache/requests, autom4te.cache/traces.0, config.h, config.log,
config.status, configure, configure.ac, doc/Makefile, doc/Makefile.in,
@@ -7367,36 +7393,10 @@ Breaks standard things
src/cmdline.c, src/cmdline.h, src/dvisvgm.cpp:
added support for freetype version >= 2.1.1
-2006-04-12 Martin Gieseking <martin.gieseking@uos.de>
-
- * src/lshort-cm.dvi, src/lshort-cm.svg, src/lshort-cm.svgz,
- src/lshort.dvi, src/lshort.svg, src/lshort.svgz:
- removed files that need not be version controlled
+ * configure.ac:
+ enabled svn keyword expansion
- * src/Bitmap.cpp, src/Bitmap.h, src/BoundingBox.cpp, src/BoundingBox.h,
- src/Calculator.cpp, src/Calculator.h, src/CharmapTranslator.cpp,
- src/CharmapTranslator.h, src/DVIActions.h, src/DVIBBoxActions.h,
- src/DVIBBoxReader.cpp, src/DVIBBoxReader.h, src/DVIReader.cpp,
- src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h,
- src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/FileFinder.cpp,
- src/FileFinder.h, src/FileSystem.cpp, src/FileSystem.h,
- src/FontEmitter.h, src/FontEngine.cpp, src/FontEngine.h,
- src/FontGlyph.cpp, src/FontGlyph.h, src/FontInfo.cpp, src/FontInfo.h,
- src/FontMap.cpp, src/FontMap.h, src/FontTracer.h, src/GFReader.cpp,
- src/GFReader.h, src/GFTracer.cpp, src/GFTracer.h, src/KPSFileFinder.cpp,
- src/KPSFileFinder.h, src/Message.cpp, src/Message.h,
- src/MessageException.h, src/MetafontWrapper.cpp, src/MetafontWrapper.h,
- src/PSObject.cpp, src/PSObject.h, src/PageSize.cpp, src/PageSize.h,
- src/Pair.h, src/SVGFontEmitter.cpp, src/SVGFontEmitter.h,
- src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h,
- src/StreamCounter.h, src/TFM.cpp, src/TFM.h,
- src/TransformationMatrix.cpp, src/TransformationMatrix.h,
- src/XMLDocTypeNode.h, src/XMLDocument.cpp, src/XMLDocument.h,
- src/XMLNode.cpp, src/XMLNode.h, src/XMLString.cpp, src/XMLString.h,
- src/dvisvgm.cpp, src/global.cpp, src/global.h, src/macros.h,
- src/test-all.cpp, src/tests/CalculatorTest.h, src/tests/PageSizeTest.h,
- src/tests/StreamCounterTest.h, src/types.h:
- changed keyword tags
+2006-04-12 Martin Gieseking <martin.gieseking@uos.de>
* COPYING, INSTALL, Makefile, Makefile.am, Makefile.in,
Martins_svg_neu.svg, NEWS, README, aclocal.m4, autom4te.cache/output.0,
@@ -7440,3 +7440,32 @@ Breaks standard things
stamp-h1, table.txt:
initial import
+ * src/Bitmap.cpp, src/Bitmap.h, src/BoundingBox.cpp, src/BoundingBox.h,
+ src/Calculator.cpp, src/Calculator.h, src/CharmapTranslator.cpp,
+ src/CharmapTranslator.h, src/DVIActions.h, src/DVIBBoxActions.h,
+ src/DVIBBoxReader.cpp, src/DVIBBoxReader.h, src/DVIReader.cpp,
+ src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h,
+ src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/FileFinder.cpp,
+ src/FileFinder.h, src/FileSystem.cpp, src/FileSystem.h,
+ src/FontEmitter.h, src/FontEngine.cpp, src/FontEngine.h,
+ src/FontGlyph.cpp, src/FontGlyph.h, src/FontInfo.cpp, src/FontInfo.h,
+ src/FontMap.cpp, src/FontMap.h, src/FontTracer.h, src/GFReader.cpp,
+ src/GFReader.h, src/GFTracer.cpp, src/GFTracer.h, src/KPSFileFinder.cpp,
+ src/KPSFileFinder.h, src/Message.cpp, src/Message.h,
+ src/MessageException.h, src/MetafontWrapper.cpp, src/MetafontWrapper.h,
+ src/PSObject.cpp, src/PSObject.h, src/PageSize.cpp, src/PageSize.h,
+ src/Pair.h, src/SVGFontEmitter.cpp, src/SVGFontEmitter.h,
+ src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h,
+ src/StreamCounter.h, src/TFM.cpp, src/TFM.h,
+ src/TransformationMatrix.cpp, src/TransformationMatrix.h,
+ src/XMLDocTypeNode.h, src/XMLDocument.cpp, src/XMLDocument.h,
+ src/XMLNode.cpp, src/XMLNode.h, src/XMLString.cpp, src/XMLString.h,
+ src/dvisvgm.cpp, src/global.cpp, src/global.h, src/macros.h,
+ src/test-all.cpp, src/tests/CalculatorTest.h, src/tests/PageSizeTest.h,
+ src/tests/StreamCounterTest.h, src/types.h:
+ changed keyword tags
+
+ * src/lshort-cm.dvi, src/lshort-cm.svg, src/lshort-cm.svgz,
+ src/lshort.dvi, src/lshort.svg, src/lshort.svgz:
+ removed files that need not be version controlled
+
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/NEWS b/Build/source/texk/dvisvgm/dvisvgm-src/NEWS
index f663135f750..cabef9a1cf0 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/NEWS
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/NEWS
@@ -1,3 +1,9 @@
+dvisvgm-2.3.4 (2018-03-14)
+- fixed error message printed when addding a single '-' on the command-line
+- added missing data file that lead to failing tests (GH bug #87)
+- updated brotli library to version 1.0.3
+- some code refactorings
+
dvisvgm-2.3.3 (2018-02-20)
- fixed wrong behavior when requiring both default mapfiles and
pdf:mapline or pdf:mapfile specials
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac b/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac
index 61e3ff8dabd..fce8a90baf7 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.59)
-AC_INIT([dvisvgm],[2.3.3],[martin.gieseking@uos.de])
-DATE="February 2018"
+AC_INIT([dvisvgm],[2.3.4],[martin.gieseking@uos.de])
+DATE="March 2018"
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 5634ca4713e..c45dd449d6b 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 <martin.gieseking@uos.de>
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 02/20/2018
+.\" Date: 03/14/2018
.\" Manual: dvisvgm Manual
-.\" Source: dvisvgm 2.3.3
+.\" Source: dvisvgm 2.3.4
.\" Language: English
.\"
-.TH "DVISVGM" "1" "02/20/2018" "dvisvgm 2\&.3\&.3" "dvisvgm Manual"
+.TH "DVISVGM" "1" "03/14/2018" "dvisvgm 2\&.3\&.4" "dvisvgm Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/Makefile.am b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/Makefile.am
index 92f337d7edf..bb1abc712a1 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/Makefile.am
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/Makefile.am
@@ -1,8 +1,11 @@
noinst_LIBRARIES = libbrotli.a
libbrotli_a_SOURCES = \
common/constants.h \
+ common/context.h \
common/dictionary.c \
common/dictionary.h \
+ common/platform.h \
+ common/transform.h \
common/version.h \
enc/backward_references.c \
enc/backward_references.h \
@@ -30,6 +33,8 @@ libbrotli_a_SOURCES = \
enc/dictionary_hash.c \
enc/dictionary_hash.h \
enc/encode.c \
+ enc/encoder_dict.c \
+ enc/encoder_dict.h \
enc/entropy_encode.c \
enc/entropy_encode.h \
enc/entropy_encode_static.h \
@@ -51,6 +56,7 @@ libbrotli_a_SOURCES = \
enc/metablock.c \
enc/metablock.h \
enc/metablock_inc.h \
+ enc/params.h \
enc/port.h \
enc/prefix.h \
enc/quality.h \
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/Makefile.in
index 14ac6274d5e..01005633007 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/Makefile.in
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/Makefile.in
@@ -128,10 +128,10 @@ am_libbrotli_a_OBJECTS = common/dictionary.$(OBJEXT) \
enc/cluster.$(OBJEXT) enc/compress_fragment.$(OBJEXT) \
enc/compress_fragment_two_pass.$(OBJEXT) \
enc/dictionary_hash.$(OBJEXT) enc/encode.$(OBJEXT) \
- enc/entropy_encode.$(OBJEXT) enc/histogram.$(OBJEXT) \
- enc/literal_cost.$(OBJEXT) enc/memory.$(OBJEXT) \
- enc/metablock.$(OBJEXT) enc/static_dict.$(OBJEXT) \
- enc/utf8_util.$(OBJEXT)
+ enc/encoder_dict.$(OBJEXT) enc/entropy_encode.$(OBJEXT) \
+ enc/histogram.$(OBJEXT) enc/literal_cost.$(OBJEXT) \
+ enc/memory.$(OBJEXT) enc/metablock.$(OBJEXT) \
+ enc/static_dict.$(OBJEXT) enc/utf8_util.$(OBJEXT)
libbrotli_a_OBJECTS = $(am_libbrotli_a_OBJECTS)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
@@ -347,8 +347,11 @@ top_srcdir = @top_srcdir@
noinst_LIBRARIES = libbrotli.a
libbrotli_a_SOURCES = \
common/constants.h \
+ common/context.h \
common/dictionary.c \
common/dictionary.h \
+ common/platform.h \
+ common/transform.h \
common/version.h \
enc/backward_references.c \
enc/backward_references.h \
@@ -376,6 +379,8 @@ libbrotli_a_SOURCES = \
enc/dictionary_hash.c \
enc/dictionary_hash.h \
enc/encode.c \
+ enc/encoder_dict.c \
+ enc/encoder_dict.h \
enc/entropy_encode.c \
enc/entropy_encode.h \
enc/entropy_encode_static.h \
@@ -397,6 +402,7 @@ libbrotli_a_SOURCES = \
enc/metablock.c \
enc/metablock.h \
enc/metablock_inc.h \
+ enc/params.h \
enc/port.h \
enc/prefix.h \
enc/quality.h \
@@ -485,6 +491,8 @@ enc/dictionary_hash.$(OBJEXT): enc/$(am__dirstamp) \
enc/$(DEPDIR)/$(am__dirstamp)
enc/encode.$(OBJEXT): enc/$(am__dirstamp) \
enc/$(DEPDIR)/$(am__dirstamp)
+enc/encoder_dict.$(OBJEXT): enc/$(am__dirstamp) \
+ enc/$(DEPDIR)/$(am__dirstamp)
enc/entropy_encode.$(OBJEXT): enc/$(am__dirstamp) \
enc/$(DEPDIR)/$(am__dirstamp)
enc/histogram.$(OBJEXT): enc/$(am__dirstamp) \
@@ -524,6 +532,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@enc/$(DEPDIR)/compress_fragment_two_pass.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@enc/$(DEPDIR)/dictionary_hash.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@enc/$(DEPDIR)/encode.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@enc/$(DEPDIR)/encoder_dict.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@enc/$(DEPDIR)/entropy_encode.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@enc/$(DEPDIR)/histogram.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@enc/$(DEPDIR)/literal_cost.Po@am__quote@
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/constants.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/constants.h
index 416ec5596ee..26edcd59218 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/constants.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/constants.h
@@ -28,18 +28,25 @@
/* "code length of 8 is repeated" */
#define BROTLI_INITIAL_REPEATED_CODE_LENGTH 8
+/* "Large Window Brotli" */
+#define BROTLI_LARGE_MAX_DISTANCE_BITS 62U
+#define BROTLI_LARGE_MIN_WBITS 10
+#define BROTLI_LARGE_MAX_WBITS 30
+
/* Specification: 4. Encoding of distances */
#define BROTLI_NUM_DISTANCE_SHORT_CODES 16
#define BROTLI_MAX_NPOSTFIX 3
#define BROTLI_MAX_NDIRECT 120
#define BROTLI_MAX_DISTANCE_BITS 24U
-/* BROTLI_NUM_DISTANCE_SYMBOLS == 520 */
-#define BROTLI_NUM_DISTANCE_SYMBOLS (BROTLI_NUM_DISTANCE_SHORT_CODES + \
- BROTLI_MAX_NDIRECT + \
- (BROTLI_MAX_DISTANCE_BITS << \
- (BROTLI_MAX_NPOSTFIX + 1)))
-/* Distance that is guaranteed to be representable in any stream. */
+#define BROTLI_DISTANCE_ALPHABET_SIZE(NDIRECT, NPOSTFIX, MAXNBITS) ( \
+ BROTLI_NUM_DISTANCE_SHORT_CODES + (NDIRECT) + \
+ ((MAXNBITS) << ((NPOSTFIX) + 1)))
+/* BROTLI_NUM_DISTANCE_SYMBOLS == 1128 */
+#define BROTLI_NUM_DISTANCE_SYMBOLS \
+ BROTLI_DISTANCE_ALPHABET_SIZE( \
+ BROTLI_MAX_NDIRECT, BROTLI_MAX_NPOSTFIX, BROTLI_LARGE_MAX_DISTANCE_BITS)
#define BROTLI_MAX_DISTANCE 0x3FFFFFC
+#define BROTLI_MAX_ALLOWED_DISTANCE 0x7FFFFFFC
/* 7.1. Context modes and context ID lookup for literals */
/* "context IDs for literals are in the range of 0..63" */
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/context.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/context.h
new file mode 100644
index 00000000000..24b3eb48f53
--- /dev/null
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/context.h
@@ -0,0 +1,261 @@
+/* Copyright 2013 Google Inc. All Rights Reserved.
+
+ Distributed under MIT license.
+ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
+*/
+
+/* Lookup table to map the previous two bytes to a context id.
+
+ There are four different context modeling modes defined here:
+ CONTEXT_LSB6: context id is the least significant 6 bits of the last byte,
+ CONTEXT_MSB6: context id is the most significant 6 bits of the last byte,
+ CONTEXT_UTF8: second-order context model tuned for UTF8-encoded text,
+ CONTEXT_SIGNED: second-order context model tuned for signed integers.
+
+ If |p1| and |p2| are the previous two bytes, and |mode| is current context
+ mode, we calculate the context as:
+
+ context = ContextLut(mode)[p1] | ContextLut(mode)[p2 + 256].
+
+ For CONTEXT_UTF8 mode, if the previous two bytes are ASCII characters
+ (i.e. < 128), this will be equivalent to
+
+ context = 4 * context1(p1) + context2(p2),
+
+ where context1 is based on the previous byte in the following way:
+
+ 0 : non-ASCII control
+ 1 : \t, \n, \r
+ 2 : space
+ 3 : other punctuation
+ 4 : " '
+ 5 : %
+ 6 : ( < [ {
+ 7 : ) > ] }
+ 8 : , ; :
+ 9 : .
+ 10 : =
+ 11 : number
+ 12 : upper-case vowel
+ 13 : upper-case consonant
+ 14 : lower-case vowel
+ 15 : lower-case consonant
+
+ and context2 is based on the second last byte:
+
+ 0 : control, space
+ 1 : punctuation
+ 2 : upper-case letter, number
+ 3 : lower-case letter
+
+ If the last byte is ASCII, and the second last byte is not (in a valid UTF8
+ stream it will be a continuation byte, value between 128 and 191), the
+ context is the same as if the second last byte was an ASCII control or space.
+
+ If the last byte is a UTF8 lead byte (value >= 192), then the next byte will
+ be a continuation byte and the context id is 2 or 3 depending on the LSB of
+ the last byte and to a lesser extent on the second last byte if it is ASCII.
+
+ If the last byte is a UTF8 continuation byte, the second last byte can be:
+ - continuation byte: the next byte is probably ASCII or lead byte (assuming
+ 4-byte UTF8 characters are rare) and the context id is 0 or 1.
+ - lead byte (192 - 207): next byte is ASCII or lead byte, context is 0 or 1
+ - lead byte (208 - 255): next byte is continuation byte, context is 2 or 3
+
+ The possible value combinations of the previous two bytes, the range of
+ context ids and the type of the next byte is summarized in the table below:
+
+ |--------\-----------------------------------------------------------------|
+ | \ Last byte |
+ | Second \---------------------------------------------------------------|
+ | last byte \ ASCII | cont. byte | lead byte |
+ | \ (0-127) | (128-191) | (192-) |
+ |=============|===================|=====================|==================|
+ | ASCII | next: ASCII/lead | not valid | next: cont. |
+ | (0-127) | context: 4 - 63 | | context: 2 - 3 |
+ |-------------|-------------------|---------------------|------------------|
+ | cont. byte | next: ASCII/lead | next: ASCII/lead | next: cont. |
+ | (128-191) | context: 4 - 63 | context: 0 - 1 | context: 2 - 3 |
+ |-------------|-------------------|---------------------|------------------|
+ | lead byte | not valid | next: ASCII/lead | not valid |
+ | (192-207) | | context: 0 - 1 | |
+ |-------------|-------------------|---------------------|------------------|
+ | lead byte | not valid | next: cont. | not valid |
+ | (208-) | | context: 2 - 3 | |
+ |-------------|-------------------|---------------------|------------------|
+*/
+
+#ifndef BROTLI_COMMON_CONTEXT_H_
+#define BROTLI_COMMON_CONTEXT_H_
+
+#include <brotli/types.h>
+
+typedef enum ContextType {
+ CONTEXT_LSB6 = 0,
+ CONTEXT_MSB6 = 1,
+ CONTEXT_UTF8 = 2,
+ CONTEXT_SIGNED = 3
+} ContextType;
+
+/* Common context lookup table for all context modes. */
+static const uint8_t kContextLookup[2048] = {
+ /* CONTEXT_LSB6, last byte. */
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+
+ /* CONTEXT_LSB6, second last byte, */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ /* CONTEXT_MSB6, last byte. */
+ 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3,
+ 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
+ 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11,
+ 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15,
+ 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19,
+ 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23,
+ 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26, 27, 27, 27, 27,
+ 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31,
+ 32, 32, 32, 32, 33, 33, 33, 33, 34, 34, 34, 34, 35, 35, 35, 35,
+ 36, 36, 36, 36, 37, 37, 37, 37, 38, 38, 38, 38, 39, 39, 39, 39,
+ 40, 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 43, 43, 43, 43,
+ 44, 44, 44, 44, 45, 45, 45, 45, 46, 46, 46, 46, 47, 47, 47, 47,
+ 48, 48, 48, 48, 49, 49, 49, 49, 50, 50, 50, 50, 51, 51, 51, 51,
+ 52, 52, 52, 52, 53, 53, 53, 53, 54, 54, 54, 54, 55, 55, 55, 55,
+ 56, 56, 56, 56, 57, 57, 57, 57, 58, 58, 58, 58, 59, 59, 59, 59,
+ 60, 60, 60, 60, 61, 61, 61, 61, 62, 62, 62, 62, 63, 63, 63, 63,
+
+ /* CONTEXT_MSB6, second last byte, */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ /* CONTEXT_UTF8, last byte. */
+ /* ASCII range. */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 4, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 12, 16, 12, 12, 20, 12, 16, 24, 28, 12, 12, 32, 12, 36, 12,
+ 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 32, 32, 24, 40, 28, 12,
+ 12, 48, 52, 52, 52, 48, 52, 52, 52, 48, 52, 52, 52, 52, 52, 48,
+ 52, 52, 52, 52, 52, 48, 52, 52, 52, 52, 52, 24, 12, 28, 12, 12,
+ 12, 56, 60, 60, 60, 56, 60, 60, 60, 56, 60, 60, 60, 60, 60, 56,
+ 60, 60, 60, 60, 60, 56, 60, 60, 60, 60, 60, 24, 12, 28, 12, 0,
+ /* UTF8 continuation byte range. */
+ 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
+ 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
+ 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
+ 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
+ /* UTF8 lead byte range. */
+ 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,
+ 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,
+ 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,
+ 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,
+
+ /* CONTEXT_UTF8 second last byte. */
+ /* ASCII range. */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,
+ 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 0,
+ /* UTF8 continuation byte range. */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ /* UTF8 lead byte range. */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+
+ /* CONTEXT_SIGNED, last byte, same as the above values shifted by 3 bits. */
+ 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56,
+
+ /* CONTEXT_SIGNED, second last byte. */
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7,
+};
+
+typedef const uint8_t* ContextLut;
+
+/* typeof(MODE) == ContextType; returns ContextLut */
+#define BROTLI_CONTEXT_LUT(MODE) (&kContextLookup[(MODE) << 9])
+
+/* typeof(LUT) == ContextLut */
+#define BROTLI_CONTEXT(P1, P2, LUT) ((LUT)[P1] | ((LUT) + 256)[P2])
+
+#endif /* BROTLI_COMMON_CONTEXT_H_ */
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/dictionary.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/dictionary.h
index 3fa33916d93..b1c6f7f580e 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/dictionary.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/dictionary.h
@@ -41,7 +41,7 @@ typedef struct BrotliDictionary {
const uint8_t* data;
} BrotliDictionary;
-BROTLI_COMMON_API extern const BrotliDictionary* BrotliGetDictionary(void);
+BROTLI_COMMON_API const BrotliDictionary* BrotliGetDictionary(void);
/**
* Sets dictionary data.
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/platform.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/platform.h
new file mode 100644
index 00000000000..d6fd3ee90e9
--- /dev/null
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/platform.h
@@ -0,0 +1,436 @@
+/* Copyright 2016 Google Inc. All Rights Reserved.
+
+ Distributed under MIT license.
+ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
+*/
+
+/* Macros for compiler / platform specific features and build options. */
+
+#ifndef BROTLI_COMMON_PLATFORM_H_
+#define BROTLI_COMMON_PLATFORM_H_
+
+#include <string.h> /* memcpy */
+#include <stdlib.h> /* malloc, free */
+
+#include <brotli/port.h>
+#include <brotli/types.h>
+
+#if defined OS_LINUX || defined OS_CYGWIN
+#include <endian.h>
+#elif defined OS_FREEBSD
+#include <machine/endian.h>
+#elif defined OS_MACOSX
+#include <machine/endian.h>
+/* Let's try and follow the Linux convention */
+#define BROTLI_X_BYTE_ORDER BYTE_ORDER
+#define BROTLI_X_LITTLE_ENDIAN LITTLE_ENDIAN
+#define BROTLI_X_BIG_ENDIAN BIG_ENDIAN
+#endif
+
+#if defined(BROTLI_ENABLE_LOG) || defined(BROTLI_DEBUG)
+#include <assert.h>
+#include <stdio.h>
+#endif
+
+/* Macros for compiler / platform specific features and build options.
+
+ Build options are:
+ * BROTLI_BUILD_32_BIT disables 64-bit optimizations
+ * BROTLI_BUILD_64_BIT forces to use 64-bit optimizations
+ * BROTLI_BUILD_BIG_ENDIAN forces to use big-endian optimizations
+ * BROTLI_BUILD_ENDIAN_NEUTRAL disables endian-aware optimizations
+ * BROTLI_BUILD_LITTLE_ENDIAN forces to use little-endian optimizations
+ * BROTLI_BUILD_PORTABLE disables dangerous optimizations, like unaligned
+ read and overlapping memcpy; this reduces decompression speed by 5%
+ * BROTLI_BUILD_NO_RBIT disables "rbit" optimization for ARM CPUs
+ * BROTLI_DEBUG dumps file name and line number when decoder detects stream
+ or memory error
+ * BROTLI_ENABLE_LOG enables asserts and dumps various state information
+*/
+
+#if BROTLI_MODERN_COMPILER || __has_attribute(always_inline)
+#define BROTLI_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((always_inline))
+#else
+#define BROTLI_ATTRIBUTE_ALWAYS_INLINE
+#endif
+
+#if defined(_WIN32) || defined(__CYGWIN__)
+#define BROTLI_ATTRIBUTE_VISIBILITY_HIDDEN
+#elif BROTLI_MODERN_COMPILER || __has_attribute(visibility)
+#define BROTLI_ATTRIBUTE_VISIBILITY_HIDDEN \
+ __attribute__ ((visibility ("hidden")))
+#else
+#define BROTLI_ATTRIBUTE_VISIBILITY_HIDDEN
+#endif
+
+#ifndef BROTLI_INTERNAL
+#define BROTLI_INTERNAL BROTLI_ATTRIBUTE_VISIBILITY_HIDDEN
+#endif
+
+#ifndef _MSC_VER
+#if defined(__cplusplus) || !defined(__STRICT_ANSI__) || \
+ (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L)
+#define BROTLI_INLINE inline BROTLI_ATTRIBUTE_ALWAYS_INLINE
+#else
+#define BROTLI_INLINE
+#endif
+#else /* _MSC_VER */
+#define BROTLI_INLINE __forceinline
+#endif /* _MSC_VER */
+
+#if BROTLI_MODERN_COMPILER || __has_attribute(unused)
+#define BROTLI_UNUSED_FUNCTION static BROTLI_INLINE __attribute__ ((unused))
+#else
+#define BROTLI_UNUSED_FUNCTION static BROTLI_INLINE
+#endif
+
+#if !defined(__cplusplus) && !defined(c_plusplus) && \
+ (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L)
+#define BROTLI_RESTRICT restrict
+#elif BROTLI_GCC_VERSION > 295 || defined(__llvm__)
+#define BROTLI_RESTRICT __restrict
+#else
+#define BROTLI_RESTRICT
+#endif
+
+#if BROTLI_MODERN_COMPILER || __has_attribute(noinline)
+#define BROTLI_NOINLINE __attribute__((noinline))
+#else
+#define BROTLI_NOINLINE
+#endif
+
+#if defined(__arm__) || defined(__thumb__) || \
+ defined(_M_ARM) || defined(_M_ARMT) || defined(__ARM64_ARCH_8__)
+#define BROTLI_TARGET_ARM
+#if (defined(__ARM_ARCH) && (__ARM_ARCH == 7)) || \
+ (defined(M_ARM) && (M_ARM == 7))
+#define BROTLI_TARGET_ARMV7
+#endif /* ARMv7 */
+#if defined(__aarch64__) || defined(__ARM64_ARCH_8__)
+#define BROTLI_TARGET_ARMV8
+#endif /* ARMv8 */
+#endif /* ARM */
+
+#if defined(__i386) || defined(_M_IX86)
+#define BROTLI_TARGET_X86
+#endif
+
+#if defined(__x86_64__) || defined(_M_X64)
+#define BROTLI_TARGET_X64
+#endif
+
+#if defined(__PPC64__)
+#define BROTLI_TARGET_POWERPC64
+#endif
+
+#if defined(BROTLI_BUILD_64_BIT)
+#define BROTLI_64_BITS 1
+#elif defined(BROTLI_BUILD_32_BIT)
+#define BROTLI_64_BITS 0
+#elif defined(BROTLI_TARGET_X64) || defined(BROTLI_TARGET_ARMV8) || \
+ defined(BROTLI_TARGET_POWERPC64)
+#define BROTLI_64_BITS 1
+#else
+#define BROTLI_64_BITS 0
+#endif
+
+#if (BROTLI_64_BITS)
+#define brotli_reg_t uint64_t
+#else
+#define brotli_reg_t uint32_t
+#endif
+
+#if defined(BROTLI_BUILD_BIG_ENDIAN)
+#define BROTLI_BIG_ENDIAN 1
+#elif defined(BROTLI_BUILD_LITTLE_ENDIAN)
+#define BROTLI_LITTLE_ENDIAN 1
+#elif defined(BROTLI_BUILD_ENDIAN_NEUTRAL)
+/* Just break elif chain. */
+#elif defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+#define BROTLI_LITTLE_ENDIAN 1
+#elif defined(_WIN32) || defined(BROTLI_TARGET_X64)
+/* Win32 & x64 can currently always be assumed to be little endian */
+#define BROTLI_LITTLE_ENDIAN 1
+#elif defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
+#define BROTLI_BIG_ENDIAN 1
+#elif defined(BROTLI_X_BYTE_ORDER)
+#if BROTLI_X_BYTE_ORDER == BROTLI_X_LITTLE_ENDIAN
+#define BROTLI_LITTLE_ENDIAN 1
+#elif BROTLI_X_BYTE_ORDER == BROTLI_X_BIG_ENDIAN
+#define BROTLI_BIG_ENDIAN 1
+#endif
+#endif /* BROTLI_X_BYTE_ORDER */
+
+#if !defined(BROTLI_LITTLE_ENDIAN)
+#define BROTLI_LITTLE_ENDIAN 0
+#endif
+
+#if !defined(BROTLI_BIG_ENDIAN)
+#define BROTLI_BIG_ENDIAN 0
+#endif
+
+#ifdef BROTLI_X_BYTE_ORDER
+#undef BROTLI_X_BYTE_ORDER
+#undef BROTLI_X_LITTLE_ENDIAN
+#undef BROTLI_X_BIG_ENDIAN
+#endif
+
+#ifdef BROTLI_BUILD_PORTABLE
+#define BROTLI_ALIGNED_READ (!!1)
+#elif defined(BROTLI_TARGET_X86) || defined(BROTLI_TARGET_X64) || \
+ defined(BROTLI_TARGET_ARMV7) || defined(BROTLI_TARGET_ARMV8)
+/* Allow unaligned read only for white-listed CPUs. */
+#define BROTLI_ALIGNED_READ (!!0)
+#else
+#define BROTLI_ALIGNED_READ (!!1)
+#endif
+
+#if BROTLI_ALIGNED_READ
+/* Portable unaligned memory access: read / write values via memcpy. */
+static BROTLI_INLINE uint16_t BrotliUnalignedRead16(const void* p) {
+ uint16_t t;
+ memcpy(&t, p, sizeof t);
+ return t;
+}
+static BROTLI_INLINE uint32_t BrotliUnalignedRead32(const void* p) {
+ uint32_t t;
+ memcpy(&t, p, sizeof t);
+ return t;
+}
+static BROTLI_INLINE uint64_t BrotliUnalignedRead64(const void* p) {
+ uint64_t t;
+ memcpy(&t, p, sizeof t);
+ return t;
+}
+static BROTLI_INLINE void BrotliUnalignedWrite64(void* p, uint64_t v) {
+ memcpy(p, &v, sizeof v);
+}
+#else /* BROTLI_ALIGNED_READ */
+/* Unaligned memory access is allowed: just cast pointer to requested type. */
+static BROTLI_INLINE uint16_t BrotliUnalignedRead16(const void* p) {
+ return *(const uint16_t*)p;
+}
+static BROTLI_INLINE uint32_t BrotliUnalignedRead32(const void* p) {
+ return *(const uint32_t*)p;
+}
+static BROTLI_INLINE uint64_t BrotliUnalignedRead64(const void* p) {
+ return *(const uint64_t*)p;
+}
+static BROTLI_INLINE void BrotliUnalignedWrite64(void* p, uint64_t v) {
+ *(uint64_t*)p = v;
+}
+#endif /* BROTLI_ALIGNED_READ */
+
+#if BROTLI_LITTLE_ENDIAN
+/* Straight endianness. Just read / write values. */
+#define BROTLI_UNALIGNED_LOAD16LE BrotliUnalignedRead16
+#define BROTLI_UNALIGNED_LOAD32LE BrotliUnalignedRead32
+#define BROTLI_UNALIGNED_LOAD64LE BrotliUnalignedRead64
+#define BROTLI_UNALIGNED_STORE64LE BrotliUnalignedWrite64
+#elif BROTLI_BIG_ENDIAN /* BROTLI_LITTLE_ENDIAN */
+/* Explain compiler to byte-swap values. */
+#define BROTLI_BSWAP16_(V) ((uint16_t)( \
+ (((V) & 0xFFU) << 8) | \
+ (((V) >> 8) & 0xFFU)))
+static BROTLI_INLINE uint16_t BROTLI_UNALIGNED_LOAD16LE(const void* p) {
+ uint16_t value = BrotliUnalignedRead16(p);
+ return BROTLI_BSWAP16_(value);
+}
+#define BROTLI_BSWAP32_(V) ( \
+ (((V) & 0xFFU) << 24) | (((V) & 0xFF00U) << 8) | \
+ (((V) >> 8) & 0xFF00U) | (((V) >> 24) & 0xFFU))
+static BROTLI_INLINE uint32_t BROTLI_UNALIGNED_LOAD32LE(const void* p) {
+ uint32_t value = BrotliUnalignedRead32(p);
+ return BROTLI_BSWAP32_(value);
+}
+#define BROTLI_BSWAP64_(V) ( \
+ (((V) & 0xFFU) << 56) | (((V) & 0xFF00U) << 40) | \
+ (((V) & 0xFF0000U) << 24) | (((V) & 0xFF000000U) << 8) | \
+ (((V) >> 8) & 0xFF000000U) | (((V) >> 24) & 0xFF0000U) | \
+ (((V) >> 40) & 0xFF00U) | (((V) >> 56) & 0xFFU))
+static BROTLI_INLINE uint64_t BROTLI_UNALIGNED_LOAD64LE(const void* p) {
+ uint64_t value = BrotliUnalignedRead64(p);
+ return BROTLI_BSWAP64_(value);
+}
+static BROTLI_INLINE void BROTLI_UNALIGNED_STORE64LE(void* p, uint64_t v) {
+ uint64_t value = BROTLI_BSWAP64_(v);
+ BrotliUnalignedWrite64(p, value);
+}
+#else /* BROTLI_LITTLE_ENDIAN */
+/* Read / store values byte-wise; hopefully compiler will understand. */
+static BROTLI_INLINE uint16_t BROTLI_UNALIGNED_LOAD16LE(const void* p) {
+ const uint8_t* in = (const uint8_t*)p;
+ return (uint16_t)(in[0] | (in[1] << 8));
+}
+static BROTLI_INLINE uint32_t BROTLI_UNALIGNED_LOAD32LE(const void* p) {
+ const uint8_t* in = (const uint8_t*)p;
+ uint32_t value = (uint32_t)(in[0]);
+ value |= (uint32_t)(in[1]) << 8;
+ value |= (uint32_t)(in[2]) << 16;
+ value |= (uint32_t)(in[3]) << 24;
+ return value;
+}
+static BROTLI_INLINE uint64_t BROTLI_UNALIGNED_LOAD64LE(const void* p) {
+ const uint8_t* in = (const uint8_t*)p;
+ uint64_t value = (uint64_t)(in[0]);
+ value |= (uint64_t)(in[1]) << 8;
+ value |= (uint64_t)(in[2]) << 16;
+ value |= (uint64_t)(in[3]) << 24;
+ value |= (uint64_t)(in[4]) << 32;
+ value |= (uint64_t)(in[5]) << 40;
+ value |= (uint64_t)(in[6]) << 48;
+ value |= (uint64_t)(in[7]) << 56;
+ return value;
+}
+static BROTLI_INLINE void BROTLI_UNALIGNED_STORE64LE(void* p, uint64_t v) {
+ uint8_t* out = (uint8_t*)p;
+ out[0] = (uint8_t)v;
+ out[1] = (uint8_t)(v >> 8);
+ out[2] = (uint8_t)(v >> 16);
+ out[3] = (uint8_t)(v >> 24);
+ out[4] = (uint8_t)(v >> 32);
+ out[5] = (uint8_t)(v >> 40);
+ out[6] = (uint8_t)(v >> 48);
+ out[7] = (uint8_t)(v >> 56);
+}
+#endif /* BROTLI_LITTLE_ENDIAN */
+
+/* Define "BROTLI_PREDICT_TRUE" and "BROTLI_PREDICT_FALSE" macros for capable
+ compilers.
+
+To apply compiler hint, enclose the branching condition into macros, like this:
+
+ if (BROTLI_PREDICT_TRUE(zero == 0)) {
+ // main execution path
+ } else {
+ // compiler should place this code outside of main execution path
+ }
+
+OR:
+
+ if (BROTLI_PREDICT_FALSE(something_rare_or_unexpected_happens)) {
+ // compiler should place this code outside of main execution path
+ }
+
+*/
+#if BROTLI_MODERN_COMPILER || __has_builtin(__builtin_expect)
+#define BROTLI_PREDICT_TRUE(x) (__builtin_expect(!!(x), 1))
+#define BROTLI_PREDICT_FALSE(x) (__builtin_expect(x, 0))
+#else
+#define BROTLI_PREDICT_FALSE(x) (x)
+#define BROTLI_PREDICT_TRUE(x) (x)
+#endif
+
+/* BROTLI_IS_CONSTANT macros returns true for compile-time constants. */
+#if BROTLI_MODERN_COMPILER || __has_builtin(__builtin_constant_p)
+#define BROTLI_IS_CONSTANT(x) (!!__builtin_constant_p(x))
+#else
+#define BROTLI_IS_CONSTANT(x) (!!0)
+#endif
+
+#if defined(BROTLI_TARGET_ARM)
+#define BROTLI_HAS_UBFX (!!1)
+#else
+#define BROTLI_HAS_UBFX (!!0)
+#endif
+
+#ifdef BROTLI_ENABLE_LOG
+#define BROTLI_DCHECK(x) assert(x)
+#define BROTLI_LOG(x) printf x
+#else
+#define BROTLI_DCHECK(x)
+#define BROTLI_LOG(x)
+#endif
+
+#if defined(BROTLI_DEBUG) || defined(BROTLI_ENABLE_LOG)
+static BROTLI_INLINE void BrotliDump(const char* f, int l, const char* fn) {
+ fprintf(stderr, "%s:%d (%s)\n", f, l, fn);
+ fflush(stderr);
+}
+#define BROTLI_DUMP() BrotliDump(__FILE__, __LINE__, __FUNCTION__)
+#else
+#define BROTLI_DUMP() (void)(0)
+#endif
+
+#if (BROTLI_MODERN_COMPILER || defined(__llvm__)) && \
+ !defined(BROTLI_BUILD_NO_RBIT)
+#if defined(BROTLI_TARGET_ARMV7) || defined(BROTLI_TARGET_ARMV8)
+/* TODO: detect ARMv6T2 and enable this code for it. */
+static BROTLI_INLINE brotli_reg_t BrotliRBit(brotli_reg_t input) {
+ brotli_reg_t output;
+ __asm__("rbit %0, %1\n" : "=r"(output) : "r"(input));
+ return output;
+}
+#define BROTLI_RBIT(x) BrotliRBit(x)
+#endif /* armv7 */
+#endif /* gcc || clang */
+#if !defined(BROTLI_RBIT)
+static BROTLI_INLINE void BrotliRBit(void) { /* Should break build if used. */ }
+#endif /* BROTLI_RBIT */
+
+#define BROTLI_REPEAT(N, X) { \
+ if ((N & 1) != 0) {X;} \
+ if ((N & 2) != 0) {X; X;} \
+ if ((N & 4) != 0) {X; X; X; X;} \
+}
+
+#define BROTLI_UNUSED(X) (void)(X)
+
+#define BROTLI_MIN_MAX(T) \
+ static BROTLI_INLINE T brotli_min_ ## T (T a, T b) { return a < b ? a : b; } \
+ static BROTLI_INLINE T brotli_max_ ## T (T a, T b) { return a > b ? a : b; }
+BROTLI_MIN_MAX(double) BROTLI_MIN_MAX(float) BROTLI_MIN_MAX(int)
+BROTLI_MIN_MAX(size_t) BROTLI_MIN_MAX(uint32_t) BROTLI_MIN_MAX(uint8_t)
+#undef BROTLI_MIN_MAX
+#define BROTLI_MIN(T, A, B) (brotli_min_ ## T((A), (B)))
+#define BROTLI_MAX(T, A, B) (brotli_max_ ## T((A), (B)))
+
+#define BROTLI_SWAP(T, A, I, J) { \
+ T __brotli_swap_tmp = (A)[(I)]; \
+ (A)[(I)] = (A)[(J)]; \
+ (A)[(J)] = __brotli_swap_tmp; \
+}
+
+/* Default brotli_alloc_func */
+static void* BrotliDefaultAllocFunc(void* opaque, size_t size) {
+ BROTLI_UNUSED(opaque);
+ return malloc(size);
+}
+
+/* Default brotli_free_func */
+static void BrotliDefaultFreeFunc(void* opaque, void* address) {
+ BROTLI_UNUSED(opaque);
+ free(address);
+}
+
+BROTLI_UNUSED_FUNCTION void BrotliSuppressUnusedFunctions(void) {
+ BROTLI_UNUSED(BrotliSuppressUnusedFunctions);
+ BROTLI_UNUSED(BrotliUnalignedRead16);
+ BROTLI_UNUSED(BrotliUnalignedRead32);
+ BROTLI_UNUSED(BrotliUnalignedRead64);
+ BROTLI_UNUSED(BrotliUnalignedWrite64);
+ BROTLI_UNUSED(BROTLI_UNALIGNED_LOAD16LE);
+ BROTLI_UNUSED(BROTLI_UNALIGNED_LOAD32LE);
+ BROTLI_UNUSED(BROTLI_UNALIGNED_LOAD64LE);
+ BROTLI_UNUSED(BROTLI_UNALIGNED_STORE64LE);
+ BROTLI_UNUSED(BrotliRBit);
+ BROTLI_UNUSED(brotli_min_double);
+ BROTLI_UNUSED(brotli_max_double);
+ BROTLI_UNUSED(brotli_min_float);
+ BROTLI_UNUSED(brotli_max_float);
+ BROTLI_UNUSED(brotli_min_int);
+ BROTLI_UNUSED(brotli_max_int);
+ BROTLI_UNUSED(brotli_min_size_t);
+ BROTLI_UNUSED(brotli_max_size_t);
+ BROTLI_UNUSED(brotli_min_uint32_t);
+ BROTLI_UNUSED(brotli_max_uint32_t);
+ BROTLI_UNUSED(brotli_min_uint8_t);
+ BROTLI_UNUSED(brotli_max_uint8_t);
+ BROTLI_UNUSED(BrotliDefaultAllocFunc);
+ BROTLI_UNUSED(BrotliDefaultFreeFunc);
+#if defined(BROTLI_DEBUG) || defined(BROTLI_ENABLE_LOG)
+ BROTLI_UNUSED(BrotliDump);
+#endif
+}
+
+#endif /* BROTLI_COMMON_PLATFORM_H_ */
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/transform.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/transform.h
new file mode 100644
index 00000000000..456c12db9b2
--- /dev/null
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/transform.h
@@ -0,0 +1,80 @@
+/* transforms is a part of ABI, but not API.
+
+ It means that there are some functions that are supposed to be in "common"
+ library, but header itself is not placed into include/brotli. This way,
+ aforementioned functions will be available only to brotli internals.
+ */
+
+#ifndef BROTLI_COMMON_TRANSFORM_H_
+#define BROTLI_COMMON_TRANSFORM_H_
+
+#include <brotli/port.h>
+#include <brotli/types.h>
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+enum BrotliWordTransformType {
+ BROTLI_TRANSFORM_IDENTITY = 0,
+ BROTLI_TRANSFORM_OMIT_LAST_1 = 1,
+ BROTLI_TRANSFORM_OMIT_LAST_2 = 2,
+ BROTLI_TRANSFORM_OMIT_LAST_3 = 3,
+ BROTLI_TRANSFORM_OMIT_LAST_4 = 4,
+ BROTLI_TRANSFORM_OMIT_LAST_5 = 5,
+ BROTLI_TRANSFORM_OMIT_LAST_6 = 6,
+ BROTLI_TRANSFORM_OMIT_LAST_7 = 7,
+ BROTLI_TRANSFORM_OMIT_LAST_8 = 8,
+ BROTLI_TRANSFORM_OMIT_LAST_9 = 9,
+ BROTLI_TRANSFORM_UPPERCASE_FIRST = 10,
+ BROTLI_TRANSFORM_UPPERCASE_ALL = 11,
+ BROTLI_TRANSFORM_OMIT_FIRST_1 = 12,
+ BROTLI_TRANSFORM_OMIT_FIRST_2 = 13,
+ BROTLI_TRANSFORM_OMIT_FIRST_3 = 14,
+ BROTLI_TRANSFORM_OMIT_FIRST_4 = 15,
+ BROTLI_TRANSFORM_OMIT_FIRST_5 = 16,
+ BROTLI_TRANSFORM_OMIT_FIRST_6 = 17,
+ BROTLI_TRANSFORM_OMIT_FIRST_7 = 18,
+ BROTLI_TRANSFORM_OMIT_FIRST_8 = 19,
+ BROTLI_TRANSFORM_OMIT_FIRST_9 = 20,
+ BROTLI_NUM_TRANSFORM_TYPES /* Counts transforms, not a transform itself. */
+};
+
+#define BROTLI_TRANSFORMS_MAX_CUT_OFF BROTLI_TRANSFORM_OMIT_LAST_9
+
+typedef struct BrotliTransforms {
+ uint16_t prefix_suffix_size;
+ /* Last character must be null, so prefix_suffix_size must be at least 1. */
+ const uint8_t* prefix_suffix;
+ const uint16_t* prefix_suffix_map;
+ uint32_t num_transforms;
+ /* Each entry is a [prefix_id, transform, suffix_id] triplet. */
+ const uint8_t* transforms;
+ /* Indices of transforms like ["", BROTLI_TRANSFORM_OMIT_LAST_#, ""].
+ 0-th element corresponds to ["", BROTLI_TRANSFORM_IDENTITY, ""].
+ -1, if cut-off transform does not exist. */
+ int16_t cutOffTransforms[BROTLI_TRANSFORMS_MAX_CUT_OFF + 1];
+} BrotliTransforms;
+
+/* T is BrotliTransforms*; result is uint8_t. */
+#define BROTLI_TRANSFORM_PREFIX_ID(T, I) ((T)->transforms[((I) * 3) + 0])
+#define BROTLI_TRANSFORM_TYPE(T, I) ((T)->transforms[((I) * 3) + 1])
+#define BROTLI_TRANSFORM_SUFFIX_ID(T, I) ((T)->transforms[((I) * 3) + 2])
+
+/* T is BrotliTransforms*; result is const uint8_t*. */
+#define BROTLI_TRANSFORM_PREFIX(T, I) (&(T)->prefix_suffix[ \
+ (T)->prefix_suffix_map[BROTLI_TRANSFORM_PREFIX_ID(T, I)]])
+#define BROTLI_TRANSFORM_SUFFIX(T, I) (&(T)->prefix_suffix[ \
+ (T)->prefix_suffix_map[BROTLI_TRANSFORM_SUFFIX_ID(T, I)]])
+
+BROTLI_COMMON_API const BrotliTransforms* BrotliGetTransforms(void);
+
+BROTLI_COMMON_API int BrotliTransformDictionaryWord(
+ uint8_t* dst, const uint8_t* word, int len,
+ const BrotliTransforms* transforms, int transform_idx);
+
+#if defined(__cplusplus) || defined(c_plusplus)
+} /* extern "C" */
+#endif
+
+#endif /* BROTLI_COMMON_TRANSFORM_H_ */
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/version.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/version.h
index 38946e6147b..435371c2d8d 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/version.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/common/version.h
@@ -14,13 +14,13 @@
BrotliEncoderVersion methods. */
/* Semantic version, calculated as (MAJOR << 24) | (MINOR << 12) | PATCH */
-#define BROTLI_VERSION 0x1000002
+#define BROTLI_VERSION 0x1000003
/* This macro is used by build system to produce Libtool-friendly soname. See
https://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html
*/
/* ABI version, calculated as (CURRENT << 24) | (REVISION << 12) | AGE */
-#define BROTLI_ABI_VERSION 0x1002000
+#define BROTLI_ABI_VERSION 0x1003000
#endif /* BROTLI_COMMON_VERSION_H_ */
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references.c
index 3ac7f2f36a5..62ecea75dfb 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references.c
@@ -10,11 +10,11 @@
#include "../common/constants.h"
#include "../common/dictionary.h"
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./command.h"
#include "./dictionary_hash.h"
#include "./memory.h"
-#include "./port.h"
#include "./quality.h"
#if defined(__cplusplus) || defined(c_plusplus)
@@ -102,23 +102,16 @@ static BROTLI_INLINE size_t ComputeDistanceCode(size_t distance,
#undef CAT
#undef EXPAND_CAT
-void BrotliCreateBackwardReferences(const BrotliDictionary* dictionary,
- size_t num_bytes,
- size_t position,
- const uint8_t* ringbuffer,
- size_t ringbuffer_mask,
- const BrotliEncoderParams* params,
- HasherHandle hasher,
- int* dist_cache,
- size_t* last_insert_len,
- Command* commands,
- size_t* num_commands,
- size_t* num_literals) {
+void BrotliCreateBackwardReferences(
+ size_t num_bytes, size_t position, const uint8_t* ringbuffer,
+ size_t ringbuffer_mask, const BrotliEncoderParams* params,
+ HasherHandle hasher, int* dist_cache, size_t* last_insert_len,
+ Command* commands, size_t* num_commands, size_t* num_literals) {
switch (params->hasher.type) {
#define CASE_(N) \
case N: \
- CreateBackwardReferencesNH ## N(dictionary, \
- kStaticDictionaryHash, num_bytes, position, ringbuffer, \
+ CreateBackwardReferencesNH ## N( \
+ num_bytes, position, ringbuffer, \
ringbuffer_mask, params, hasher, dist_cache, \
last_insert_len, commands, num_commands, num_literals); \
return;
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references.h
index 7ad98813254..3a4146647c4 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references.h
@@ -11,10 +11,10 @@
#include "../common/constants.h"
#include "../common/dictionary.h"
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./command.h"
#include "./hash.h"
-#include "./port.h"
#include "./quality.h"
#if defined(__cplusplus) || defined(c_plusplus)
@@ -26,11 +26,10 @@ extern "C" {
CreateBackwardReferences calls, and must be incremented by the amount written
by this call. */
BROTLI_INTERNAL void BrotliCreateBackwardReferences(
- const BrotliDictionary* dictionary, size_t num_bytes, size_t position,
- const uint8_t* ringbuffer, size_t ringbuffer_mask,
- const BrotliEncoderParams* params, HasherHandle hasher, int* dist_cache,
- size_t* last_insert_len, Command* commands, size_t* num_commands,
- size_t* num_literals);
+ size_t num_bytes, size_t position, const uint8_t* ringbuffer,
+ size_t ringbuffer_mask, const BrotliEncoderParams* params,
+ HasherHandle hasher, int* dist_cache, size_t* last_insert_len,
+ Command* commands, size_t* num_commands, size_t* num_literals);
#if defined(__cplusplus) || defined(c_plusplus)
} /* extern "C" */
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references_hq.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references_hq.c
index 92ce8fbad70..62c6ba24a7b 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references_hq.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references_hq.c
@@ -11,13 +11,14 @@
#include <string.h> /* memcpy, memset */
#include "../common/constants.h"
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./command.h"
#include "./fast_log.h"
#include "./find_match_length.h"
#include "./literal_cost.h"
#include "./memory.h"
-#include "./port.h"
+#include "./params.h"
#include "./prefix.h"
#include "./quality.h"
@@ -25,6 +26,8 @@
extern "C" {
#endif
+#define BROTLI_MAX_EFFECTIVE_DISTANCE_ALPHABET_SIZE 544
+
static const float kInfinity = 1.7e38f; /* ~= 2 ^ 127 */
static const uint32_t kDistanceCacheIndex[] = {
@@ -39,40 +42,41 @@ void BrotliInitZopfliNodes(ZopfliNode* array, size_t length) {
size_t i;
stub.length = 1;
stub.distance = 0;
- stub.insert_length = 0;
+ stub.dcode_insert_length = 0;
stub.u.cost = kInfinity;
for (i = 0; i < length; ++i) array[i] = stub;
}
static BROTLI_INLINE uint32_t ZopfliNodeCopyLength(const ZopfliNode* self) {
- return self->length & 0xffffff;
+ return self->length & 0x1FFFFFF;
}
static BROTLI_INLINE uint32_t ZopfliNodeLengthCode(const ZopfliNode* self) {
- const uint32_t modifier = self->length >> 24;
+ const uint32_t modifier = self->length >> 25;
return ZopfliNodeCopyLength(self) + 9u - modifier;
}
static BROTLI_INLINE uint32_t ZopfliNodeCopyDistance(const ZopfliNode* self) {
- return self->distance & 0x7ffffff;
+ return self->distance;
}
static BROTLI_INLINE uint32_t ZopfliNodeDistanceCode(const ZopfliNode* self) {
- const uint32_t short_code = self->distance >> 27;
+ const uint32_t short_code = self->dcode_insert_length >> 27;
return short_code == 0 ?
ZopfliNodeCopyDistance(self) + BROTLI_NUM_DISTANCE_SHORT_CODES - 1 :
short_code - 1;
}
static BROTLI_INLINE uint32_t ZopfliNodeCommandLength(const ZopfliNode* self) {
- return ZopfliNodeCopyLength(self) + self->insert_length;
+ return ZopfliNodeCopyLength(self) + (self->dcode_insert_length & 0x7FFFFFF);
}
/* Histogram based cost model for zopflification. */
typedef struct ZopfliCostModel {
/* The insert and copy length symbols. */
float cost_cmd_[BROTLI_NUM_COMMAND_SYMBOLS];
- float cost_dist_[BROTLI_NUM_DISTANCE_SYMBOLS];
+ float* cost_dist_;
+ uint32_t distance_alphabet_size;
/* Cumulative costs of literals per position in the stream. */
float* literal_costs_;
float min_cost_cmd_;
@@ -80,28 +84,41 @@ typedef struct ZopfliCostModel {
} ZopfliCostModel;
static void InitZopfliCostModel(
- MemoryManager* m, ZopfliCostModel* self, size_t num_bytes) {
+ MemoryManager* m, ZopfliCostModel* self, const BrotliDistanceParams* dist,
+ size_t num_bytes) {
self->num_bytes_ = num_bytes;
self->literal_costs_ = BROTLI_ALLOC(m, float, num_bytes + 2);
+ self->cost_dist_ = BROTLI_ALLOC(m, float, dist->alphabet_size);
+ self->distance_alphabet_size = dist->alphabet_size;
if (BROTLI_IS_OOM(m)) return;
}
static void CleanupZopfliCostModel(MemoryManager* m, ZopfliCostModel* self) {
BROTLI_FREE(m, self->literal_costs_);
+ BROTLI_FREE(m, self->cost_dist_);
}
static void SetCost(const uint32_t* histogram, size_t histogram_size,
- float* cost) {
+ BROTLI_BOOL literal_histogram, float* cost) {
size_t sum = 0;
+ size_t missing_symbol_sum;
float log2sum;
+ float missing_symbol_cost;
size_t i;
for (i = 0; i < histogram_size; i++) {
sum += histogram[i];
}
log2sum = (float)FastLog2(sum);
+ missing_symbol_sum = sum;
+ if (!literal_histogram) {
+ for (i = 0; i < histogram_size; i++) {
+ if (histogram[i] == 0) missing_symbol_sum++;
+ }
+ }
+ missing_symbol_cost = (float)FastLog2(missing_symbol_sum) + 2;
for (i = 0; i < histogram_size; i++) {
if (histogram[i] == 0) {
- cost[i] = log2sum + 2;
+ cost[i] = missing_symbol_cost;
continue;
}
@@ -122,7 +139,7 @@ static void ZopfliCostModelSetFromCommands(ZopfliCostModel* self,
size_t last_insert_len) {
uint32_t histogram_literal[BROTLI_NUM_LITERAL_SYMBOLS];
uint32_t histogram_cmd[BROTLI_NUM_COMMAND_SYMBOLS];
- uint32_t histogram_dist[BROTLI_NUM_DISTANCE_SYMBOLS];
+ uint32_t histogram_dist[BROTLI_MAX_EFFECTIVE_DISTANCE_ALPHABET_SIZE];
float cost_literal[BROTLI_NUM_LITERAL_SYMBOLS];
size_t pos = position - last_insert_len;
float min_cost_cmd = kInfinity;
@@ -136,7 +153,7 @@ static void ZopfliCostModelSetFromCommands(ZopfliCostModel* self,
for (i = 0; i < num_commands; i++) {
size_t inslength = commands[i].insert_len_;
size_t copylength = CommandCopyLen(&commands[i]);
- size_t distcode = commands[i].dist_prefix_;
+ size_t distcode = commands[i].dist_prefix_ & 0x3FF;
size_t cmdcode = commands[i].cmd_prefix_;
size_t j;
@@ -150,9 +167,12 @@ static void ZopfliCostModelSetFromCommands(ZopfliCostModel* self,
pos += inslength + copylength;
}
- SetCost(histogram_literal, BROTLI_NUM_LITERAL_SYMBOLS, cost_literal);
- SetCost(histogram_cmd, BROTLI_NUM_COMMAND_SYMBOLS, cost_cmd);
- SetCost(histogram_dist, BROTLI_NUM_DISTANCE_SYMBOLS, self->cost_dist_);
+ SetCost(histogram_literal, BROTLI_NUM_LITERAL_SYMBOLS, BROTLI_TRUE,
+ cost_literal);
+ SetCost(histogram_cmd, BROTLI_NUM_COMMAND_SYMBOLS, BROTLI_FALSE,
+ cost_cmd);
+ SetCost(histogram_dist, self->distance_alphabet_size, BROTLI_FALSE,
+ self->cost_dist_);
for (i = 0; i < BROTLI_NUM_COMMAND_SYMBOLS; ++i) {
min_cost_cmd = BROTLI_MIN(float, min_cost_cmd, cost_cmd[i]);
@@ -161,11 +181,14 @@ static void ZopfliCostModelSetFromCommands(ZopfliCostModel* self,
{
float* literal_costs = self->literal_costs_;
+ float literal_carry = 0.0;
size_t num_bytes = self->num_bytes_;
literal_costs[0] = 0.0;
for (i = 0; i < num_bytes; ++i) {
- literal_costs[i + 1] = literal_costs[i] +
+ literal_carry +=
cost_literal[ringbuffer[(position + i) & ringbuffer_mask]];
+ literal_costs[i + 1] = literal_costs[i] + literal_carry;
+ literal_carry -= literal_costs[i + 1] - literal_costs[i];
}
}
}
@@ -175,6 +198,7 @@ static void ZopfliCostModelSetFromLiteralCosts(ZopfliCostModel* self,
const uint8_t* ringbuffer,
size_t ringbuffer_mask) {
float* literal_costs = self->literal_costs_;
+ float literal_carry = 0.0;
float* cost_dist = self->cost_dist_;
float* cost_cmd = self->cost_cmd_;
size_t num_bytes = self->num_bytes_;
@@ -183,12 +207,14 @@ static void ZopfliCostModelSetFromLiteralCosts(ZopfliCostModel* self,
ringbuffer, &literal_costs[1]);
literal_costs[0] = 0.0;
for (i = 0; i < num_bytes; ++i) {
- literal_costs[i + 1] += literal_costs[i];
+ literal_carry += literal_costs[i + 1];
+ literal_costs[i + 1] = literal_costs[i] + literal_carry;
+ literal_carry -= literal_costs[i + 1] - literal_costs[i];
}
for (i = 0; i < BROTLI_NUM_COMMAND_SYMBOLS; ++i) {
cost_cmd[i] = (float)FastLog2(11 + (uint32_t)i);
}
- for (i = 0; i < BROTLI_NUM_DISTANCE_SYMBOLS; ++i) {
+ for (i = 0; i < self->distance_alphabet_size; ++i) {
cost_dist[i] = (float)FastLog2(20 + (uint32_t)i);
}
self->min_cost_cmd_ = (float)FastLog2(11);
@@ -221,9 +247,10 @@ static BROTLI_INLINE void UpdateZopfliNode(ZopfliNode* nodes, size_t pos,
size_t start_pos, size_t len, size_t len_code, size_t dist,
size_t short_code, float cost) {
ZopfliNode* next = &nodes[pos + len];
- next->length = (uint32_t)(len | ((len + 9u - len_code) << 24));
- next->distance = (uint32_t)(dist | (short_code << 27));
- next->insert_length = (uint32_t)(pos - start_pos);
+ next->length = (uint32_t)(len | ((len + 9u - len_code) << 25));
+ next->distance = (uint32_t)dist;
+ next->dcode_insert_length = (uint32_t)(
+ (short_code << 27) | (pos - start_pos));
next->u.cost = cost;
}
@@ -303,7 +330,7 @@ static uint32_t ComputeDistanceShortcut(const size_t block_start,
const size_t gap,
const ZopfliNode* nodes) {
const size_t clen = ZopfliNodeCopyLength(&nodes[pos]);
- const size_t ilen = nodes[pos].insert_length;
+ const size_t ilen = nodes[pos].dcode_insert_length & 0x7FFFFFF;
const size_t dist = ZopfliNodeCopyDistance(&nodes[pos]);
/* Since |block_start + pos| is the end position of the command, the copy part
starts from |block_start + pos - clen|. Distances that are greater than
@@ -335,7 +362,7 @@ static void ComputeDistanceCache(const size_t pos,
int idx = 0;
size_t p = nodes[pos].u.shortcut;
while (idx < 4 && p > 0) {
- const size_t ilen = nodes[p].insert_length;
+ const size_t ilen = nodes[p].dcode_insert_length & 0x7FFFFFF;
const size_t clen = ZopfliNodeCopyLength(&nodes[p]);
const size_t dist = ZopfliNodeCopyDistance(&nodes[p]);
dist_cache[idx++] = (int)dist;
@@ -482,10 +509,12 @@ static size_t UpdateNodes(
uint32_t distnumextra;
float dist_cost;
size_t max_match_len;
- PrefixEncodeCopyDistance(dist_code, 0, 0, &dist_symbol, &distextra);
- distnumextra = distextra >> 24;
+ PrefixEncodeCopyDistance(
+ dist_code, params->dist.num_direct_distance_codes,
+ params->dist.distance_postfix_bits, &dist_symbol, &distextra);
+ distnumextra = dist_symbol >> 10;
dist_cost = base_cost + (float)distnumextra +
- ZopfliCostModelGetDistanceCost(model, dist_symbol);
+ ZopfliCostModelGetDistanceCost(model, dist_symbol & 0x3FF);
/* Try all copy lengths up until the maximum copy length corresponding
to this distance. If the distance refers to the static dictionary, or
@@ -517,7 +546,8 @@ static size_t ComputeShortestPathFromNodes(size_t num_bytes,
ZopfliNode* nodes) {
size_t index = num_bytes;
size_t num_commands = 0;
- while (nodes[index].insert_length == 0 && nodes[index].length == 1) --index;
+ while ((nodes[index].dcode_insert_length & 0x7FFFFFF) == 0 &&
+ nodes[index].length == 1) --index;
nodes[index].u.next = BROTLI_UINT32_MAX;
while (index != 0) {
size_t len = ZopfliNodeCommandLength(&nodes[index]);
@@ -542,11 +572,10 @@ void BrotliZopfliCreateCommands(const size_t num_bytes,
uint32_t offset = nodes[0].u.next;
size_t i;
size_t gap = 0;
- BROTLI_UNUSED(params);
for (i = 0; offset != BROTLI_UINT32_MAX; i++) {
const ZopfliNode* next = &nodes[pos + offset];
size_t copy_length = ZopfliNodeCopyLength(next);
- size_t insert_length = next->insert_length;
+ size_t insert_length = next->dcode_insert_length & 0x7FFFFFF;
pos += insert_length;
offset = next->u.next;
if (i == 0) {
@@ -560,7 +589,7 @@ void BrotliZopfliCreateCommands(const size_t num_bytes,
BROTLI_MIN(size_t, block_start + pos, max_backward_limit);
BROTLI_BOOL is_dictionary = TO_BROTLI_BOOL(distance > max_distance + gap);
size_t dist_code = ZopfliNodeDistanceCode(next);
- InitCommand(&commands[i], insert_length,
+ InitCommand(&commands[i], &params->dist, insert_length,
copy_length, (int)len_code - (int)copy_length, dist_code);
if (!is_dictionary && dist_code > 0) {
@@ -624,16 +653,10 @@ static size_t ZopfliIterate(size_t num_bytes,
/* REQUIRES: nodes != NULL and len(nodes) >= num_bytes + 1 */
size_t BrotliZopfliComputeShortestPath(MemoryManager* m,
- const BrotliDictionary* dictionary,
- size_t num_bytes,
- size_t position,
- const uint8_t* ringbuffer,
- size_t ringbuffer_mask,
- const BrotliEncoderParams* params,
- const size_t max_backward_limit,
- const int* dist_cache,
- HasherHandle hasher,
- ZopfliNode* nodes) {
+ size_t num_bytes, size_t position, const uint8_t* ringbuffer,
+ size_t ringbuffer_mask, const BrotliEncoderParams* params,
+ const size_t max_backward_limit, const int* dist_cache, HasherHandle hasher,
+ ZopfliNode* nodes) {
const size_t max_zopfli_len = MaxZopfliLen(params);
ZopfliCostModel model;
StartPosQueue queue;
@@ -645,7 +668,7 @@ size_t BrotliZopfliComputeShortestPath(MemoryManager* m,
size_t lz_matches_offset = 0;
nodes[0].length = 0;
nodes[0].u.cost = 0;
- InitZopfliCostModel(m, &model, num_bytes);
+ InitZopfliCostModel(m, &model, &params->dist, num_bytes);
if (BROTLI_IS_OOM(m)) return 0;
ZopfliCostModelSetFromLiteralCosts(
&model, position, ringbuffer, ringbuffer_mask);
@@ -653,10 +676,10 @@ size_t BrotliZopfliComputeShortestPath(MemoryManager* m,
for (i = 0; i + HashTypeLengthH10() - 1 < num_bytes; i++) {
const size_t pos = position + i;
const size_t max_distance = BROTLI_MIN(size_t, pos, max_backward_limit);
- size_t num_matches = FindAllMatchesH10(hasher, dictionary, ringbuffer,
- ringbuffer_mask, pos, num_bytes - i, max_distance, gap, params,
- &matches[lz_matches_offset]);
size_t skip;
+ size_t num_matches = FindAllMatchesH10(hasher, &params->dictionary,
+ ringbuffer, ringbuffer_mask, pos, num_bytes - i, max_distance, gap,
+ params, &matches[lz_matches_offset]);
if (num_matches > 0 &&
BackwardMatchLength(&matches[num_matches - 1]) > max_zopfli_len) {
matches[0] = matches[num_matches - 1];
@@ -687,32 +710,30 @@ size_t BrotliZopfliComputeShortestPath(MemoryManager* m,
return ComputeShortestPathFromNodes(num_bytes, nodes);
}
-void BrotliCreateZopfliBackwardReferences(
- MemoryManager* m, const BrotliDictionary* dictionary, size_t num_bytes,
- size_t position, const uint8_t* ringbuffer, size_t ringbuffer_mask,
- const BrotliEncoderParams* params, HasherHandle hasher, int* dist_cache,
- size_t* last_insert_len, Command* commands, size_t* num_commands,
- size_t* num_literals) {
+void BrotliCreateZopfliBackwardReferences(MemoryManager* m,
+ size_t num_bytes, size_t position, const uint8_t* ringbuffer,
+ size_t ringbuffer_mask, const BrotliEncoderParams* params,
+ HasherHandle hasher, int* dist_cache, size_t* last_insert_len,
+ Command* commands, size_t* num_commands, size_t* num_literals) {
const size_t max_backward_limit = BROTLI_MAX_BACKWARD_LIMIT(params->lgwin);
ZopfliNode* nodes;
nodes = BROTLI_ALLOC(m, ZopfliNode, num_bytes + 1);
if (BROTLI_IS_OOM(m)) return;
BrotliInitZopfliNodes(nodes, num_bytes + 1);
- *num_commands += BrotliZopfliComputeShortestPath(m, dictionary, num_bytes,
- position, ringbuffer, ringbuffer_mask, params, max_backward_limit,
- dist_cache, hasher, nodes);
+ *num_commands += BrotliZopfliComputeShortestPath(m,
+ num_bytes, position, ringbuffer, ringbuffer_mask,
+ params, max_backward_limit, dist_cache, hasher, nodes);
if (BROTLI_IS_OOM(m)) return;
BrotliZopfliCreateCommands(num_bytes, position, max_backward_limit, nodes,
dist_cache, last_insert_len, params, commands, num_literals);
BROTLI_FREE(m, nodes);
}
-void BrotliCreateHqZopfliBackwardReferences(
- MemoryManager* m, const BrotliDictionary* dictionary, size_t num_bytes,
- size_t position, const uint8_t* ringbuffer, size_t ringbuffer_mask,
- const BrotliEncoderParams* params, HasherHandle hasher, int* dist_cache,
- size_t* last_insert_len, Command* commands, size_t* num_commands,
- size_t* num_literals) {
+void BrotliCreateHqZopfliBackwardReferences(MemoryManager* m,
+ size_t num_bytes, size_t position, const uint8_t* ringbuffer,
+ size_t ringbuffer_mask, const BrotliEncoderParams* params,
+ HasherHandle hasher, int* dist_cache, size_t* last_insert_len,
+ Command* commands, size_t* num_commands, size_t* num_literals) {
const size_t max_backward_limit = BROTLI_MAX_BACKWARD_LIMIT(params->lgwin);
uint32_t* num_matches = BROTLI_ALLOC(m, uint32_t, num_bytes);
size_t matches_size = 4 * num_bytes;
@@ -741,12 +762,12 @@ void BrotliCreateHqZopfliBackwardReferences(
BROTLI_ENSURE_CAPACITY(m, BackwardMatch, matches, matches_size,
cur_match_pos + MAX_NUM_MATCHES_H10 + shadow_matches);
if (BROTLI_IS_OOM(m)) return;
- num_found_matches = FindAllMatchesH10(hasher, dictionary, ringbuffer,
- ringbuffer_mask, pos, max_length, max_distance, gap, params,
- &matches[cur_match_pos + shadow_matches]);
+ num_found_matches = FindAllMatchesH10(hasher,
+ &params->dictionary, ringbuffer, ringbuffer_mask, pos, max_length,
+ max_distance, gap, params, &matches[cur_match_pos + shadow_matches]);
cur_match_end = cur_match_pos + num_found_matches;
for (j = cur_match_pos; j + 1 < cur_match_end; ++j) {
- assert(BackwardMatchLength(&matches[j]) <=
+ BROTLI_DCHECK(BackwardMatchLength(&matches[j]) <=
BackwardMatchLength(&matches[j + 1]));
}
num_matches[i] = (uint32_t)num_found_matches;
@@ -772,7 +793,7 @@ void BrotliCreateHqZopfliBackwardReferences(
orig_num_commands = *num_commands;
nodes = BROTLI_ALLOC(m, ZopfliNode, num_bytes + 1);
if (BROTLI_IS_OOM(m)) return;
- InitZopfliCostModel(m, &model, num_bytes);
+ InitZopfliCostModel(m, &model, &params->dist, num_bytes);
if (BROTLI_IS_OOM(m)) return;
for (i = 0; i < 2; i++) {
BrotliInitZopfliNodes(nodes, num_bytes + 1);
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references_hq.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references_hq.h
index 02bb2783db1..7c38bd61ad8 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references_hq.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references_hq.h
@@ -11,41 +11,38 @@
#include "../common/constants.h"
#include "../common/dictionary.h"
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./command.h"
#include "./hash.h"
#include "./memory.h"
-#include "./port.h"
#include "./quality.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
-BROTLI_INTERNAL void BrotliCreateZopfliBackwardReferences(
- MemoryManager* m, const BrotliDictionary* dictionary, size_t num_bytes,
- size_t position, const uint8_t* ringbuffer, size_t ringbuffer_mask,
- const BrotliEncoderParams* params, HasherHandle hasher, int* dist_cache,
- size_t* last_insert_len, Command* commands, size_t* num_commands,
- size_t* num_literals);
+BROTLI_INTERNAL void BrotliCreateZopfliBackwardReferences(MemoryManager* m,
+ size_t num_bytes, size_t position, const uint8_t* ringbuffer,
+ size_t ringbuffer_mask, const BrotliEncoderParams* params,
+ HasherHandle hasher, int* dist_cache, size_t* last_insert_len,
+ Command* commands, size_t* num_commands, size_t* num_literals);
-BROTLI_INTERNAL void BrotliCreateHqZopfliBackwardReferences(
- MemoryManager* m, const BrotliDictionary* dictionary, size_t num_bytes,
- size_t position, const uint8_t* ringbuffer, size_t ringbuffer_mask,
- const BrotliEncoderParams* params, HasherHandle hasher, int* dist_cache,
- size_t* last_insert_len, Command* commands, size_t* num_commands,
- size_t* num_literals);
+BROTLI_INTERNAL void BrotliCreateHqZopfliBackwardReferences(MemoryManager* m,
+ size_t num_bytes, size_t position, const uint8_t* ringbuffer,
+ size_t ringbuffer_mask, const BrotliEncoderParams* params,
+ HasherHandle hasher, int* dist_cache, size_t* last_insert_len,
+ Command* commands, size_t* num_commands, size_t* num_literals);
typedef struct ZopfliNode {
- /* best length to get up to this byte (not including this byte itself)
- highest 8 bit is used to reconstruct the length code */
+ /* Best length to get up to this byte (not including this byte itself)
+ highest 7 bit is used to reconstruct the length code. */
uint32_t length;
- /* distance associated with the length; highest 5 bits contain distance
- short code + 1 (or zero if no short code); this way only distances shorter
- than 128MiB are allowed here */
+ /* Distance associated with the length. */
uint32_t distance;
- /* number of literal inserts before this copy */
- uint32_t insert_length;
+ /* Number of literal inserts before this copy; highest 5 bits contain
+ distance short code + 1 (or zero if no short code). */
+ uint32_t dcode_insert_length;
/* This union holds information used by dynamic-programming. During forward
pass |cost| it used to store the goal function. When node is processed its
@@ -77,11 +74,11 @@ BROTLI_INTERNAL void BrotliInitZopfliNodes(ZopfliNode* array, size_t length);
(1) nodes[i].copy_length() >= 2
(2) nodes[i].command_length() <= i and
(3) nodes[i - nodes[i].command_length()].cost < kInfinity */
-BROTLI_INTERNAL size_t BrotliZopfliComputeShortestPath(
- MemoryManager* m, const BrotliDictionary* dictionary, size_t num_bytes,
- size_t position, const uint8_t* ringbuffer, size_t ringbuffer_mask,
- const BrotliEncoderParams* params, const size_t max_backward_limit,
- const int* dist_cache, HasherHandle hasher, ZopfliNode* nodes);
+BROTLI_INTERNAL size_t BrotliZopfliComputeShortestPath(MemoryManager* m,
+ size_t num_bytes, size_t position, const uint8_t* ringbuffer,
+ size_t ringbuffer_mask, const BrotliEncoderParams* params,
+ const size_t max_backward_limit, const int* dist_cache, HasherHandle hasher,
+ ZopfliNode* nodes);
BROTLI_INTERNAL void BrotliZopfliCreateCommands(
const size_t num_bytes, const size_t block_start,
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references_inc.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references_inc.h
index 81c783c00b6..38a48d39900 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references_inc.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/backward_references_inc.h
@@ -8,8 +8,7 @@
/* template parameters: EXPORT_FN, FN */
static BROTLI_NOINLINE void EXPORT_FN(CreateBackwardReferences)(
- const BrotliDictionary* dictionary,
- const uint16_t* dictionary_hash, size_t num_bytes, size_t position,
+ size_t num_bytes, size_t position,
const uint8_t* ringbuffer, size_t ringbuffer_mask,
const BrotliEncoderParams* params, HasherHandle hasher, int* dist_cache,
size_t* last_insert_len, Command* commands, size_t* num_commands,
@@ -42,9 +41,10 @@ static BROTLI_NOINLINE void EXPORT_FN(CreateBackwardReferences)(
sr.len_code_delta = 0;
sr.distance = 0;
sr.score = kMinScore;
- FN(FindLongestMatch)(hasher, dictionary, dictionary_hash, ringbuffer,
- ringbuffer_mask, dist_cache, position,
- max_length, max_distance, gap, &sr);
+ FN(FindLongestMatch)(hasher, &params->dictionary,
+ ringbuffer, ringbuffer_mask, dist_cache, position,
+ max_length, max_distance, gap,
+ params->dist.max_distance, &sr);
if (sr.score > kMinScore) {
/* Found a match. Let's look for something even better ahead. */
int delayed_backward_references_in_row = 0;
@@ -58,9 +58,9 @@ static BROTLI_NOINLINE void EXPORT_FN(CreateBackwardReferences)(
sr2.distance = 0;
sr2.score = kMinScore;
max_distance = BROTLI_MIN(size_t, position + 1, max_backward_limit);
- FN(FindLongestMatch)(hasher, dictionary, dictionary_hash, ringbuffer,
- ringbuffer_mask, dist_cache, position + 1,
- max_length, max_distance, gap, &sr2);
+ FN(FindLongestMatch)(hasher, &params->dictionary,
+ ringbuffer, ringbuffer_mask, dist_cache, position + 1, max_length,
+ max_distance, gap, params->dist.max_distance, &sr2);
if (sr2.score >= sr.score + cost_diff_lazy) {
/* Ok, let's just write one byte for now and start a match from the
next byte. */
@@ -89,8 +89,8 @@ static BROTLI_NOINLINE void EXPORT_FN(CreateBackwardReferences)(
dist_cache[0] = (int)sr.distance;
FN(PrepareDistanceCache)(hasher, dist_cache);
}
- InitCommand(commands++, insert_length, sr.len, sr.len_code_delta,
- distance_code);
+ InitCommand(commands++, &params->dist, insert_length,
+ sr.len, sr.len_code_delta, distance_code);
}
*num_literals += insert_length;
insert_length = 0;
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/bit_cost.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/bit_cost.c
index 01e30f6d5ff..1f3f7ad5c90 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/bit_cost.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/bit_cost.c
@@ -9,10 +9,10 @@
#include "./bit_cost.h"
#include "../common/constants.h"
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./fast_log.h"
#include "./histogram.h"
-#include "./port.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/bit_cost.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/bit_cost.h
index e69ee04a187..6586469e62f 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/bit_cost.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/bit_cost.h
@@ -9,20 +9,20 @@
#ifndef BROTLI_ENC_BIT_COST_H_
#define BROTLI_ENC_BIT_COST_H_
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./fast_log.h"
#include "./histogram.h"
-#include "./port.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
-static BROTLI_INLINE double ShannonEntropy(const uint32_t *population,
- size_t size, size_t *total) {
+static BROTLI_INLINE double ShannonEntropy(
+ const uint32_t* population, size_t size, size_t* total) {
size_t sum = 0;
double retval = 0;
- const uint32_t *population_end = population + size;
+ const uint32_t* population_end = population + size;
size_t p;
if (size & 1) {
goto odd_number_of_elements_left;
@@ -42,7 +42,7 @@ static BROTLI_INLINE double ShannonEntropy(const uint32_t *population,
}
static BROTLI_INLINE double BitsEntropy(
- const uint32_t *population, size_t size) {
+ const uint32_t* population, size_t size) {
size_t sum;
double retval = ShannonEntropy(population, size, &sum);
if (retval < sum) {
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/block_encoder_inc.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/block_encoder_inc.h
index 2a08f904fd6..8cbd5eac67b 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/block_encoder_inc.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/block_encoder_inc.h
@@ -13,9 +13,9 @@
stream. */
static void FN(BuildAndStoreEntropyCodes)(MemoryManager* m, BlockEncoder* self,
const HistogramType* histograms, const size_t histograms_size,
- HuffmanTree* tree, size_t* storage_ix, uint8_t* storage) {
- const size_t alphabet_size = self->alphabet_size_;
- const size_t table_size = histograms_size * alphabet_size;
+ const size_t alphabet_size, HuffmanTree* tree,
+ size_t* storage_ix, uint8_t* storage) {
+ const size_t table_size = histograms_size * self->histogram_length_;
self->depths_ = BROTLI_ALLOC(m, uint8_t, table_size);
self->bits_ = BROTLI_ALLOC(m, uint16_t, table_size);
if (BROTLI_IS_OOM(m)) return;
@@ -23,9 +23,10 @@ static void FN(BuildAndStoreEntropyCodes)(MemoryManager* m, BlockEncoder* self,
{
size_t i;
for (i = 0; i < histograms_size; ++i) {
- size_t ix = i * alphabet_size;
- BuildAndStoreHuffmanTree(&histograms[i].data_[0], alphabet_size, tree,
- &self->depths_[ix], &self->bits_[ix], storage_ix, storage);
+ size_t ix = i * self->histogram_length_;
+ BuildAndStoreHuffmanTree(&histograms[i].data_[0], self->histogram_length_,
+ alphabet_size, tree, &self->depths_[ix], &self->bits_[ix],
+ storage_ix, storage);
}
}
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/block_splitter.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/block_splitter.c
index 0331146cf58..d308eca59d3 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/block_splitter.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/block_splitter.c
@@ -8,16 +8,15 @@
#include "./block_splitter.h"
-#include <assert.h>
#include <string.h> /* memcpy, memset */
+#include "../common/platform.h"
#include "./bit_cost.h"
#include "./cluster.h"
#include "./command.h"
#include "./fast_log.h"
#include "./histogram.h"
#include "./memory.h"
-#include "./port.h"
#include "./quality.h"
#if defined(__cplusplus) || defined(c_plusplus)
@@ -175,7 +174,7 @@ void BrotliSplitBlock(MemoryManager* m,
for (i = 0; i < num_commands; ++i) {
const Command* cmd = &cmds[i];
if (CommandCopyLen(cmd) && cmd->cmd_prefix_ >= 128) {
- distance_prefixes[j++] = cmd->dist_prefix_;
+ distance_prefixes[j++] = cmd->dist_prefix_ & 0x3FF;
}
}
/* Create the block split on the array of distance prefixes. */
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/block_splitter.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/block_splitter.h
index 6abac08d295..a5e006c4b30 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/block_splitter.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/block_splitter.h
@@ -9,10 +9,10 @@
#ifndef BROTLI_ENC_BLOCK_SPLITTER_H_
#define BROTLI_ENC_BLOCK_SPLITTER_H_
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./command.h"
#include "./memory.h"
-#include "./port.h"
#include "./quality.h"
#if defined(__cplusplus) || defined(c_plusplus)
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/block_splitter_inc.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/block_splitter_inc.h
index 48844787878..023712b84d3 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/block_splitter_inc.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/block_splitter_inc.h
@@ -70,13 +70,13 @@ static size_t FN(FindBlocks)(const DataType* data, const size_t length,
double* insert_cost,
double* cost,
uint8_t* switch_signal,
- uint8_t *block_id) {
+ uint8_t* block_id) {
const size_t data_size = FN(HistogramDataSize)();
const size_t bitmaplen = (num_histograms + 7) >> 3;
size_t num_blocks = 1;
size_t i;
size_t j;
- assert(num_histograms <= 256);
+ BROTLI_DCHECK(num_histograms <= 256);
if (num_histograms <= 1) {
for (i = 0; i < length; ++i) {
block_id[i] = 0;
@@ -126,7 +126,7 @@ static size_t FN(FindBlocks)(const DataType* data, const size_t length,
if (cost[k] >= block_switch_cost) {
const uint8_t mask = (uint8_t)(1u << (k & 7));
cost[k] = block_switch_cost;
- assert((k >> 3) < bitmaplen);
+ BROTLI_DCHECK((k >> 3) < bitmaplen);
switch_signal[ix + (k >> 3)] |= mask;
}
}
@@ -137,7 +137,7 @@ static size_t FN(FindBlocks)(const DataType* data, const size_t length,
uint8_t cur_id = block_id[byte_ix];
while (byte_ix > 0) {
const uint8_t mask = (uint8_t)(1u << (cur_id & 7));
- assert(((size_t)cur_id >> 3) < bitmaplen);
+ BROTLI_DCHECK(((size_t)cur_id >> 3) < bitmaplen);
--byte_ix;
ix -= bitmaplen;
if (switch_signal[ix + (cur_id >> 3)] & mask) {
@@ -161,16 +161,16 @@ static size_t FN(RemapBlockIds)(uint8_t* block_ids, const size_t length,
new_id[i] = kInvalidId;
}
for (i = 0; i < length; ++i) {
- assert(block_ids[i] < num_histograms);
+ BROTLI_DCHECK(block_ids[i] < num_histograms);
if (new_id[block_ids[i]] == kInvalidId) {
new_id[block_ids[i]] = next_id++;
}
}
for (i = 0; i < length; ++i) {
block_ids[i] = (uint8_t)new_id[block_ids[i]];
- assert(block_ids[i] < num_histograms);
+ BROTLI_DCHECK(block_ids[i] < num_histograms);
}
- assert(next_id <= num_histograms);
+ BROTLI_DCHECK(next_id <= num_histograms);
return next_id;
}
@@ -226,13 +226,13 @@ static void FN(ClusterBlocks)(MemoryManager* m,
{
size_t block_idx = 0;
for (i = 0; i < length; ++i) {
- assert(block_idx < num_blocks);
+ BROTLI_DCHECK(block_idx < num_blocks);
++block_lengths[block_idx];
if (i + 1 == length || block_ids[i] != block_ids[i + 1]) {
++block_idx;
}
}
- assert(block_idx == num_blocks);
+ BROTLI_DCHECK(block_idx == num_blocks);
}
for (i = 0; i < num_blocks; i += HISTOGRAMS_PER_BATCH) {
@@ -268,8 +268,8 @@ static void FN(ClusterBlocks)(MemoryManager* m,
histogram_symbols[i + j] = (uint32_t)num_clusters + remap[symbols[j]];
}
num_clusters += num_new_clusters;
- assert(num_clusters == cluster_size_size);
- assert(num_clusters == all_histograms_size);
+ BROTLI_DCHECK(num_clusters == cluster_size_size);
+ BROTLI_DCHECK(num_clusters == all_histograms_size);
}
BROTLI_FREE(m, histograms);
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/brotli_bit_stream.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/brotli_bit_stream.c
index 2907510b714..aaf2dad7dbd 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/brotli_bit_stream.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/brotli_bit_stream.c
@@ -13,13 +13,14 @@
#include <string.h> /* memcpy, memset */
#include "../common/constants.h"
+#include "../common/context.h"
+#include "../common/platform.h"
#include <brotli/types.h>
-#include "./context.h"
#include "./entropy_encode.h"
#include "./entropy_encode_static.h"
#include "./fast_log.h"
+#include "./histogram.h"
#include "./memory.h"
-#include "./port.h"
#include "./write_bits.h"
#if defined(__cplusplus) || defined(c_plusplus)
@@ -27,12 +28,11 @@ extern "C" {
#endif
#define MAX_HUFFMAN_TREE_SIZE (2 * BROTLI_NUM_COMMAND_SYMBOLS + 1)
-/* The size of Huffman dictionary for distances assuming that NPOSTFIX = 0 and
- NDIRECT = 0. */
-#define SIMPLE_DISTANCE_ALPHABET_SIZE (BROTLI_NUM_DISTANCE_SHORT_CODES + \
- (2 * BROTLI_MAX_DISTANCE_BITS))
-/* SIMPLE_DISTANCE_ALPHABET_SIZE == 64 */
-#define SIMPLE_DISTANCE_ALPHABET_BITS 6
+/* The maximum size of Huffman dictionary for distances assuming that
+ NPOSTFIX = 0 and NDIRECT = 0. */
+#define MAX_SIMPLE_DISTANCE_ALPHABET_SIZE \
+ BROTLI_DISTANCE_ALPHABET_SIZE(0, 0, BROTLI_LARGE_MAX_DISTANCE_BITS)
+/* MAX_SIMPLE_DISTANCE_ALPHABET_SIZE == 140 */
/* Represents the range of values belonging to a prefix code:
[offset, offset + 2^nbits) */
@@ -89,9 +89,9 @@ static void BrotliEncodeMlen(size_t length, uint64_t* bits,
size_t* numbits, uint64_t* nibblesbits) {
size_t lg = (length == 1) ? 1 : Log2FloorNonZero((uint32_t)(length - 1)) + 1;
size_t mnibbles = (lg < 16 ? 16 : (lg + 3)) / 4;
- assert(length > 0);
- assert(length <= (1 << 24));
- assert(lg <= 24);
+ BROTLI_DCHECK(length > 0);
+ BROTLI_DCHECK(length <= (1 << 24));
+ BROTLI_DCHECK(lg <= 24);
*nibblesbits = mnibbles - 4;
*numbits = mnibbles * 4;
*bits = length - 1;
@@ -258,7 +258,7 @@ static void StoreSimpleHuffmanTree(const uint8_t* depths,
size_t symbols[4],
size_t num_symbols,
size_t max_bits,
- size_t *storage_ix, uint8_t *storage) {
+ size_t* storage_ix, uint8_t* storage) {
/* value of 1 indicates a simple Huffman code */
BrotliWriteBits(2, 1, storage_ix, storage);
BrotliWriteBits(2, num_symbols - 1, storage_ix, storage); /* NSYM - 1 */
@@ -297,7 +297,7 @@ static void StoreSimpleHuffmanTree(const uint8_t* depths,
depths = symbol depths */
void BrotliStoreHuffmanTree(const uint8_t* depths, size_t num,
HuffmanTree* tree,
- size_t *storage_ix, uint8_t *storage) {
+ size_t* storage_ix, uint8_t* storage) {
/* Write the Huffman tree into the brotli-representation.
The command alphabet is the largest, so this allocation will fit all
alphabets. */
@@ -311,7 +311,7 @@ void BrotliStoreHuffmanTree(const uint8_t* depths, size_t num,
int num_codes = 0;
size_t code = 0;
- assert(num <= BROTLI_NUM_COMMAND_SYMBOLS);
+ BROTLI_DCHECK(num <= BROTLI_NUM_COMMAND_SYMBOLS);
BrotliWriteHuffmanTree(depths, num, &huffman_tree_size, huffman_tree,
huffman_tree_extra_bits);
@@ -360,8 +360,9 @@ void BrotliStoreHuffmanTree(const uint8_t* depths, size_t num,
/* Builds a Huffman tree from histogram[0:length] into depth[0:length] and
bits[0:length] and stores the encoded tree to the bit stream. */
-static void BuildAndStoreHuffmanTree(const uint32_t *histogram,
- const size_t length,
+static void BuildAndStoreHuffmanTree(const uint32_t* histogram,
+ const size_t histogram_length,
+ const size_t alphabet_size,
HuffmanTree* tree,
uint8_t* depth,
uint16_t* bits,
@@ -371,7 +372,7 @@ static void BuildAndStoreHuffmanTree(const uint32_t *histogram,
size_t s4[4] = { 0 };
size_t i;
size_t max_bits = 0;
- for (i = 0; i < length; i++) {
+ for (i = 0; i < histogram_length; i++) {
if (histogram[i]) {
if (count < 4) {
s4[count] = i;
@@ -383,7 +384,7 @@ static void BuildAndStoreHuffmanTree(const uint32_t *histogram,
}
{
- size_t max_bits_counter = length - 1;
+ size_t max_bits_counter = alphabet_size - 1;
while (max_bits_counter) {
max_bits_counter >>= 1;
++max_bits;
@@ -398,14 +399,14 @@ static void BuildAndStoreHuffmanTree(const uint32_t *histogram,
return;
}
- memset(depth, 0, length * sizeof(depth[0]));
- BrotliCreateHuffmanTree(histogram, length, 15, tree, depth);
- BrotliConvertBitDepthsToSymbols(depth, length, bits);
+ memset(depth, 0, histogram_length * sizeof(depth[0]));
+ BrotliCreateHuffmanTree(histogram, histogram_length, 15, tree, depth);
+ BrotliConvertBitDepthsToSymbols(depth, histogram_length, bits);
if (count <= 4) {
StoreSimpleHuffmanTree(depth, s4, count, max_bits, storage_ix, storage);
} else {
- BrotliStoreHuffmanTree(depth, length, tree, storage_ix, storage);
+ BrotliStoreHuffmanTree(depth, histogram_length, tree, storage_ix, storage);
}
}
@@ -619,7 +620,7 @@ static void MoveToFrontTransform(const uint32_t* BROTLI_RESTRICT v_in,
for (i = 1; i < v_size; ++i) {
if (v_in[i] > max_value) max_value = v_in[i];
}
- assert(max_value < 256u);
+ BROTLI_DCHECK(max_value < 256u);
for (i = 0; i <= max_value; ++i) {
mtf[i] = (uint8_t)i;
}
@@ -627,7 +628,7 @@ static void MoveToFrontTransform(const uint32_t* BROTLI_RESTRICT v_in,
size_t mtf_size = max_value + 1;
for (i = 0; i < v_size; ++i) {
size_t index = IndexOf(mtf, mtf_size, (uint8_t)v_in[i]);
- assert(index < mtf_size);
+ BROTLI_DCHECK(index < mtf_size);
v_out[i] = (uint32_t)index;
MoveToFront(mtf, index);
}
@@ -659,7 +660,7 @@ static void RunLengthCodeZeros(const size_t in_size,
*max_run_length_prefix = max_prefix;
*out_size = 0;
for (i = 0; i < in_size;) {
- assert(*out_size <= i);
+ BROTLI_DCHECK(*out_size <= i);
if (v[i] != 0) {
v[*out_size] = v[i] + *max_run_length_prefix;
++i;
@@ -729,6 +730,7 @@ static void EncodeContextMap(MemoryManager* m,
}
}
BuildAndStoreHuffmanTree(histogram, num_clusters + max_run_length_prefix,
+ num_clusters + max_run_length_prefix,
tree, depths, bits, storage_ix, storage);
for (i = 0; i < num_rle_symbols; ++i) {
const uint32_t rle_symbol = rle_symbols[i] & kSymbolMask;
@@ -788,10 +790,11 @@ static void BuildAndStoreBlockSplitCode(const uint8_t* types,
}
StoreVarLenUint8(num_types - 1, storage_ix, storage);
if (num_types > 1) { /* TODO: else? could StoreBlockSwitch occur? */
- BuildAndStoreHuffmanTree(&type_histo[0], num_types + 2, tree,
+ BuildAndStoreHuffmanTree(&type_histo[0], num_types + 2, num_types + 2, tree,
&code->type_depths[0], &code->type_bits[0],
storage_ix, storage);
BuildAndStoreHuffmanTree(&length_histo[0], BROTLI_NUM_BLOCK_LEN_SYMBOLS,
+ BROTLI_NUM_BLOCK_LEN_SYMBOLS,
tree, &code->length_depths[0],
&code->length_bits[0], storage_ix, storage);
StoreBlockSwitch(code, lengths[0], types[0], 1, storage_ix, storage);
@@ -822,8 +825,8 @@ static void StoreTrivialContextMap(size_t num_types,
for (i = context_bits; i < alphabet_size; ++i) {
histogram[i] = 1;
}
- BuildAndStoreHuffmanTree(histogram, alphabet_size, tree,
- depths, bits, storage_ix, storage);
+ BuildAndStoreHuffmanTree(histogram, alphabet_size, alphabet_size,
+ tree, depths, bits, storage_ix, storage);
for (i = 0; i < num_types; ++i) {
size_t code = (i == 0 ? 0 : i + context_bits - 1);
BrotliWriteBits(depths[code], bits[code], storage_ix, storage);
@@ -838,7 +841,7 @@ static void StoreTrivialContextMap(size_t num_types,
/* Manages the encoding of one block category (literal, command or distance). */
typedef struct BlockEncoder {
- size_t alphabet_size_;
+ size_t histogram_length_;
size_t num_block_types_;
const uint8_t* block_types_; /* Not owned. */
const uint32_t* block_lengths_; /* Not owned. */
@@ -851,10 +854,10 @@ typedef struct BlockEncoder {
uint16_t* bits_;
} BlockEncoder;
-static void InitBlockEncoder(BlockEncoder* self, size_t alphabet_size,
+static void InitBlockEncoder(BlockEncoder* self, size_t histogram_length,
size_t num_block_types, const uint8_t* block_types,
const uint32_t* block_lengths, const size_t num_blocks) {
- self->alphabet_size_ = alphabet_size;
+ self->histogram_length_ = histogram_length;
self->num_block_types_ = num_block_types;
self->block_types_ = block_types;
self->block_lengths_ = block_lengths;
@@ -890,7 +893,7 @@ static void StoreSymbol(BlockEncoder* self, size_t symbol, size_t* storage_ix,
uint32_t block_len = self->block_lengths_[block_ix];
uint8_t block_type = self->block_types_[block_ix];
self->block_len_ = block_len;
- self->entropy_ix_ = block_type * self->alphabet_size_;
+ self->entropy_ix_ = block_type * self->histogram_length_;
StoreBlockSwitch(&self->block_split_code_, block_len, block_type, 0,
storage_ix, storage);
}
@@ -919,7 +922,7 @@ static void StoreSymbolWithContext(BlockEncoder* self, size_t symbol,
--self->block_len_;
{
size_t histo_ix = context_map[self->entropy_ix_ + context];
- size_t ix = histo_ix * self->alphabet_size_ + symbol;
+ size_t ix = histo_ix * self->histogram_length_ + symbol;
BrotliWriteBits(self->depths_[ix], self->bits_[ix], storage_ix, storage);
}
}
@@ -945,42 +948,38 @@ static void JumpToByteBoundary(size_t* storage_ix, uint8_t* storage) {
}
void BrotliStoreMetaBlock(MemoryManager* m,
- const uint8_t* input,
- size_t start_pos,
- size_t length,
- size_t mask,
- uint8_t prev_byte,
- uint8_t prev_byte2,
- BROTLI_BOOL is_last,
- uint32_t num_direct_distance_codes,
- uint32_t distance_postfix_bits,
- ContextType literal_context_mode,
- const Command *commands,
- size_t n_commands,
- const MetaBlockSplit* mb,
- size_t *storage_ix,
- uint8_t *storage) {
+ const uint8_t* input, size_t start_pos, size_t length, size_t mask,
+ uint8_t prev_byte, uint8_t prev_byte2, BROTLI_BOOL is_last,
+ const BrotliEncoderParams* params, ContextType literal_context_mode,
+ const Command* commands, size_t n_commands, const MetaBlockSplit* mb,
+ size_t* storage_ix, uint8_t* storage) {
+
size_t pos = start_pos;
size_t i;
- size_t num_distance_codes =
- BROTLI_NUM_DISTANCE_SHORT_CODES + num_direct_distance_codes +
- (48u << distance_postfix_bits);
+ uint32_t num_distance_symbols = params->dist.alphabet_size;
+ uint32_t num_effective_distance_symbols = num_distance_symbols;
HuffmanTree* tree;
+ ContextLut literal_context_lut = BROTLI_CONTEXT_LUT(literal_context_mode);
BlockEncoder literal_enc;
BlockEncoder command_enc;
BlockEncoder distance_enc;
+ const BrotliDistanceParams* dist = &params->dist;
+ if (params->large_window &&
+ num_effective_distance_symbols > BROTLI_NUM_HISTOGRAM_DISTANCE_SYMBOLS) {
+ num_effective_distance_symbols = BROTLI_NUM_HISTOGRAM_DISTANCE_SYMBOLS;
+ }
StoreCompressedMetaBlockHeader(is_last, length, storage_ix, storage);
tree = BROTLI_ALLOC(m, HuffmanTree, MAX_HUFFMAN_TREE_SIZE);
if (BROTLI_IS_OOM(m)) return;
- InitBlockEncoder(&literal_enc, 256, mb->literal_split.num_types,
- mb->literal_split.types, mb->literal_split.lengths,
- mb->literal_split.num_blocks);
+ InitBlockEncoder(&literal_enc, BROTLI_NUM_LITERAL_SYMBOLS,
+ mb->literal_split.num_types, mb->literal_split.types,
+ mb->literal_split.lengths, mb->literal_split.num_blocks);
InitBlockEncoder(&command_enc, BROTLI_NUM_COMMAND_SYMBOLS,
mb->command_split.num_types, mb->command_split.types,
mb->command_split.lengths, mb->command_split.num_blocks);
- InitBlockEncoder(&distance_enc, num_distance_codes,
+ InitBlockEncoder(&distance_enc, num_effective_distance_symbols,
mb->distance_split.num_types, mb->distance_split.types,
mb->distance_split.lengths, mb->distance_split.num_blocks);
@@ -989,9 +988,10 @@ void BrotliStoreMetaBlock(MemoryManager* m,
BuildAndStoreBlockSwitchEntropyCodes(
&distance_enc, tree, storage_ix, storage);
- BrotliWriteBits(2, distance_postfix_bits, storage_ix, storage);
- BrotliWriteBits(4, num_direct_distance_codes >> distance_postfix_bits,
- storage_ix, storage);
+ BrotliWriteBits(2, dist->distance_postfix_bits, storage_ix, storage);
+ BrotliWriteBits(
+ 4, dist->num_direct_distance_codes >> dist->distance_postfix_bits,
+ storage_ix, storage);
for (i = 0; i < mb->literal_split.num_types; ++i) {
BrotliWriteBits(2, literal_context_mode, storage_ix, storage);
}
@@ -1017,13 +1017,16 @@ void BrotliStoreMetaBlock(MemoryManager* m,
}
BuildAndStoreEntropyCodesLiteral(m, &literal_enc, mb->literal_histograms,
- mb->literal_histograms_size, tree, storage_ix, storage);
+ mb->literal_histograms_size, BROTLI_NUM_LITERAL_SYMBOLS, tree,
+ storage_ix, storage);
if (BROTLI_IS_OOM(m)) return;
BuildAndStoreEntropyCodesCommand(m, &command_enc, mb->command_histograms,
- mb->command_histograms_size, tree, storage_ix, storage);
+ mb->command_histograms_size, BROTLI_NUM_COMMAND_SYMBOLS, tree,
+ storage_ix, storage);
if (BROTLI_IS_OOM(m)) return;
BuildAndStoreEntropyCodesDistance(m, &distance_enc, mb->distance_histograms,
- mb->distance_histograms_size, tree, storage_ix, storage);
+ mb->distance_histograms_size, num_distance_symbols, tree,
+ storage_ix, storage);
if (BROTLI_IS_OOM(m)) return;
BROTLI_FREE(m, tree);
@@ -1041,7 +1044,8 @@ void BrotliStoreMetaBlock(MemoryManager* m,
} else {
size_t j;
for (j = cmd.insert_len_; j != 0; --j) {
- size_t context = Context(prev_byte, prev_byte2, literal_context_mode);
+ size_t context =
+ BROTLI_CONTEXT(prev_byte, prev_byte2, literal_context_lut);
uint8_t literal = input[pos & mask];
StoreSymbolWithContext(&literal_enc, literal, context,
mb->literal_context_map, storage_ix, storage,
@@ -1056,9 +1060,9 @@ void BrotliStoreMetaBlock(MemoryManager* m,
prev_byte2 = input[(pos - 2) & mask];
prev_byte = input[(pos - 1) & mask];
if (cmd.cmd_prefix_ >= 128) {
- size_t dist_code = cmd.dist_prefix_;
- uint32_t distnumextra = cmd.dist_extra_ >> 24;
- uint64_t distextra = cmd.dist_extra_ & 0xffffff;
+ size_t dist_code = cmd.dist_prefix_ & 0x3FF;
+ uint32_t distnumextra = cmd.dist_prefix_ >> 10;
+ uint64_t distextra = cmd.dist_extra_;
if (mb->distance_context_map_size == 0) {
StoreSymbol(&distance_enc, dist_code, storage_ix, storage);
} else {
@@ -1082,7 +1086,7 @@ void BrotliStoreMetaBlock(MemoryManager* m,
static void BuildHistograms(const uint8_t* input,
size_t start_pos,
size_t mask,
- const Command *commands,
+ const Command* commands,
size_t n_commands,
HistogramLiteral* lit_histo,
HistogramCommand* cmd_histo,
@@ -1099,7 +1103,7 @@ static void BuildHistograms(const uint8_t* input,
}
pos += CommandCopyLen(&cmd);
if (CommandCopyLen(&cmd) && cmd.cmd_prefix_ >= 128) {
- HistogramAddDistance(dist_histo, cmd.dist_prefix_);
+ HistogramAddDistance(dist_histo, cmd.dist_prefix_ & 0x3FF);
}
}
}
@@ -1107,7 +1111,7 @@ static void BuildHistograms(const uint8_t* input,
static void StoreDataWithHuffmanCodes(const uint8_t* input,
size_t start_pos,
size_t mask,
- const Command *commands,
+ const Command* commands,
size_t n_commands,
const uint8_t* lit_depth,
const uint16_t* lit_bits,
@@ -1134,9 +1138,9 @@ static void StoreDataWithHuffmanCodes(const uint8_t* input,
}
pos += CommandCopyLen(&cmd);
if (CommandCopyLen(&cmd) && cmd.cmd_prefix_ >= 128) {
- const size_t dist_code = cmd.dist_prefix_;
- const uint32_t distnumextra = cmd.dist_extra_ >> 24;
- const uint32_t distextra = cmd.dist_extra_ & 0xffffff;
+ const size_t dist_code = cmd.dist_prefix_ & 0x3FF;
+ const uint32_t distnumextra = cmd.dist_prefix_ >> 10;
+ const uint32_t distextra = cmd.dist_extra_;
BrotliWriteBits(dist_depth[dist_code], dist_bits[dist_code],
storage_ix, storage);
BrotliWriteBits(distnumextra, distextra, storage_ix, storage);
@@ -1145,15 +1149,10 @@ static void StoreDataWithHuffmanCodes(const uint8_t* input,
}
void BrotliStoreMetaBlockTrivial(MemoryManager* m,
- const uint8_t* input,
- size_t start_pos,
- size_t length,
- size_t mask,
- BROTLI_BOOL is_last,
- const Command *commands,
- size_t n_commands,
- size_t *storage_ix,
- uint8_t *storage) {
+ const uint8_t* input, size_t start_pos, size_t length, size_t mask,
+ BROTLI_BOOL is_last, const BrotliEncoderParams* params,
+ const Command* commands, size_t n_commands,
+ size_t* storage_ix, uint8_t* storage) {
HistogramLiteral lit_histo;
HistogramCommand cmd_histo;
HistogramDistance dist_histo;
@@ -1161,9 +1160,10 @@ void BrotliStoreMetaBlockTrivial(MemoryManager* m,
uint16_t lit_bits[BROTLI_NUM_LITERAL_SYMBOLS];
uint8_t cmd_depth[BROTLI_NUM_COMMAND_SYMBOLS];
uint16_t cmd_bits[BROTLI_NUM_COMMAND_SYMBOLS];
- uint8_t dist_depth[SIMPLE_DISTANCE_ALPHABET_SIZE];
- uint16_t dist_bits[SIMPLE_DISTANCE_ALPHABET_SIZE];
+ uint8_t dist_depth[MAX_SIMPLE_DISTANCE_ALPHABET_SIZE];
+ uint16_t dist_bits[MAX_SIMPLE_DISTANCE_ALPHABET_SIZE];
HuffmanTree* tree;
+ uint32_t num_distance_symbols = params->dist.alphabet_size;
StoreCompressedMetaBlockHeader(is_last, length, storage_ix, storage);
@@ -1178,14 +1178,16 @@ void BrotliStoreMetaBlockTrivial(MemoryManager* m,
tree = BROTLI_ALLOC(m, HuffmanTree, MAX_HUFFMAN_TREE_SIZE);
if (BROTLI_IS_OOM(m)) return;
- BuildAndStoreHuffmanTree(lit_histo.data_, BROTLI_NUM_LITERAL_SYMBOLS, tree,
+ BuildAndStoreHuffmanTree(lit_histo.data_, BROTLI_NUM_LITERAL_SYMBOLS,
+ BROTLI_NUM_LITERAL_SYMBOLS, tree,
lit_depth, lit_bits,
storage_ix, storage);
- BuildAndStoreHuffmanTree(cmd_histo.data_, BROTLI_NUM_COMMAND_SYMBOLS, tree,
+ BuildAndStoreHuffmanTree(cmd_histo.data_, BROTLI_NUM_COMMAND_SYMBOLS,
+ BROTLI_NUM_COMMAND_SYMBOLS, tree,
cmd_depth, cmd_bits,
storage_ix, storage);
- BuildAndStoreHuffmanTree(dist_histo.data_, SIMPLE_DISTANCE_ALPHABET_SIZE,
- tree,
+ BuildAndStoreHuffmanTree(dist_histo.data_, MAX_SIMPLE_DISTANCE_ALPHABET_SIZE,
+ num_distance_symbols, tree,
dist_depth, dist_bits,
storage_ix, storage);
BROTLI_FREE(m, tree);
@@ -1200,15 +1202,14 @@ void BrotliStoreMetaBlockTrivial(MemoryManager* m,
}
void BrotliStoreMetaBlockFast(MemoryManager* m,
- const uint8_t* input,
- size_t start_pos,
- size_t length,
- size_t mask,
- BROTLI_BOOL is_last,
- const Command *commands,
- size_t n_commands,
- size_t *storage_ix,
- uint8_t *storage) {
+ const uint8_t* input, size_t start_pos, size_t length, size_t mask,
+ BROTLI_BOOL is_last, const BrotliEncoderParams* params,
+ const Command* commands, size_t n_commands,
+ size_t* storage_ix, uint8_t* storage) {
+ uint32_t num_distance_symbols = params->dist.alphabet_size;
+ uint32_t distance_alphabet_bits =
+ Log2FloorNonZero(num_distance_symbols - 1) + 1;
+
StoreCompressedMetaBlockHeader(is_last, length, storage_ix, storage);
BrotliWriteBits(13, 0, storage_ix, storage);
@@ -1252,8 +1253,8 @@ void BrotliStoreMetaBlockFast(MemoryManager* m,
uint16_t lit_bits[BROTLI_NUM_LITERAL_SYMBOLS];
uint8_t cmd_depth[BROTLI_NUM_COMMAND_SYMBOLS];
uint16_t cmd_bits[BROTLI_NUM_COMMAND_SYMBOLS];
- uint8_t dist_depth[SIMPLE_DISTANCE_ALPHABET_SIZE];
- uint16_t dist_bits[SIMPLE_DISTANCE_ALPHABET_SIZE];
+ uint8_t dist_depth[MAX_SIMPLE_DISTANCE_ALPHABET_SIZE];
+ uint16_t dist_bits[MAX_SIMPLE_DISTANCE_ALPHABET_SIZE];
HistogramClearLiteral(&lit_histo);
HistogramClearCommand(&cmd_histo);
HistogramClearDistance(&dist_histo);
@@ -1274,7 +1275,7 @@ void BrotliStoreMetaBlockFast(MemoryManager* m,
BrotliBuildAndStoreHuffmanTreeFast(m, dist_histo.data_,
dist_histo.total_count_,
/* max_bits = */
- SIMPLE_DISTANCE_ALPHABET_BITS,
+ distance_alphabet_bits,
dist_depth, dist_bits,
storage_ix, storage);
if (BROTLI_IS_OOM(m)) return;
@@ -1293,11 +1294,11 @@ void BrotliStoreMetaBlockFast(MemoryManager* m,
/* This is for storing uncompressed blocks (simple raw storage of
bytes-as-bytes). */
void BrotliStoreUncompressedMetaBlock(BROTLI_BOOL is_final_block,
- const uint8_t * BROTLI_RESTRICT input,
+ const uint8_t* BROTLI_RESTRICT input,
size_t position, size_t mask,
size_t len,
- size_t * BROTLI_RESTRICT storage_ix,
- uint8_t * BROTLI_RESTRICT storage) {
+ size_t* BROTLI_RESTRICT storage_ix,
+ uint8_t* BROTLI_RESTRICT storage) {
size_t masked_pos = position & mask;
BrotliStoreUncompressedMetaBlockHeader(len, storage_ix, storage);
JumpToByteBoundary(storage_ix, storage);
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/brotli_bit_stream.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/brotli_bit_stream.h
index 2c8bfedc777..9089b1dbafe 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/brotli_bit_stream.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/brotli_bit_stream.h
@@ -16,13 +16,13 @@
#ifndef BROTLI_ENC_BROTLI_BIT_STREAM_H_
#define BROTLI_ENC_BROTLI_BIT_STREAM_H_
+#include "../common/context.h"
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./command.h"
-#include "./context.h"
#include "./entropy_encode.h"
#include "./memory.h"
#include "./metablock.h"
-#include "./port.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
@@ -32,7 +32,7 @@ extern "C" {
position for the current storage. */
BROTLI_INTERNAL void BrotliStoreHuffmanTree(const uint8_t* depths, size_t num,
- HuffmanTree* tree, size_t *storage_ix, uint8_t *storage);
+ HuffmanTree* tree, size_t* storage_ix, uint8_t* storage);
BROTLI_INTERNAL void BrotliBuildAndStoreHuffmanTreeFast(
MemoryManager* m, const uint32_t* histogram, const size_t histogram_total,
@@ -42,51 +42,31 @@ BROTLI_INTERNAL void BrotliBuildAndStoreHuffmanTreeFast(
/* REQUIRES: length > 0 */
/* REQUIRES: length <= (1 << 24) */
BROTLI_INTERNAL void BrotliStoreMetaBlock(MemoryManager* m,
- const uint8_t* input,
- size_t start_pos,
- size_t length,
- size_t mask,
- uint8_t prev_byte,
- uint8_t prev_byte2,
- BROTLI_BOOL is_final_block,
- uint32_t num_direct_distance_codes,
- uint32_t distance_postfix_bits,
- ContextType literal_context_mode,
- const Command* commands,
- size_t n_commands,
- const MetaBlockSplit* mb,
- size_t* storage_ix,
- uint8_t* storage);
+ const uint8_t* input, size_t start_pos, size_t length, size_t mask,
+ uint8_t prev_byte, uint8_t prev_byte2, BROTLI_BOOL is_last,
+ const BrotliEncoderParams* params, ContextType literal_context_mode,
+ const Command* commands, size_t n_commands, const MetaBlockSplit* mb,
+ size_t* storage_ix, uint8_t* storage);
/* Stores the meta-block without doing any block splitting, just collects
one histogram per block category and uses that for entropy coding.
REQUIRES: length > 0
REQUIRES: length <= (1 << 24) */
BROTLI_INTERNAL void BrotliStoreMetaBlockTrivial(MemoryManager* m,
- const uint8_t* input,
- size_t start_pos,
- size_t length,
- size_t mask,
- BROTLI_BOOL is_last,
- const Command *commands,
- size_t n_commands,
- size_t* storage_ix,
- uint8_t* storage);
+ const uint8_t* input, size_t start_pos, size_t length, size_t mask,
+ BROTLI_BOOL is_last, const BrotliEncoderParams* params,
+ const Command* commands, size_t n_commands,
+ size_t* storage_ix, uint8_t* storage);
/* Same as above, but uses static prefix codes for histograms with a only a few
symbols, and uses static code length prefix codes for all other histograms.
REQUIRES: length > 0
REQUIRES: length <= (1 << 24) */
BROTLI_INTERNAL void BrotliStoreMetaBlockFast(MemoryManager* m,
- const uint8_t* input,
- size_t start_pos,
- size_t length,
- size_t mask,
- BROTLI_BOOL is_last,
- const Command *commands,
- size_t n_commands,
- size_t* storage_ix,
- uint8_t* storage);
+ const uint8_t* input, size_t start_pos, size_t length, size_t mask,
+ BROTLI_BOOL is_last, const BrotliEncoderParams* params,
+ const Command* commands, size_t n_commands,
+ size_t* storage_ix, uint8_t* storage);
/* This is for storing uncompressed blocks (simple raw storage of
bytes-as-bytes).
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/cluster.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/cluster.c
index bb663278470..a20dfd385ff 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/cluster.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/cluster.c
@@ -8,12 +8,12 @@
#include "./cluster.h"
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./bit_cost.h" /* BrotliPopulationCost */
#include "./fast_log.h"
#include "./histogram.h"
#include "./memory.h"
-#include "./port.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/cluster.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/cluster.h
index be58614b7ac..bb26124d24d 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/cluster.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/cluster.h
@@ -9,10 +9,10 @@
#ifndef BROTLI_ENC_CLUSTER_H_
#define BROTLI_ENC_CLUSTER_H_
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./histogram.h"
#include "./memory.h"
-#include "./port.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/command.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/command.h
index 632318e8451..6075dfe5b18 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/command.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/command.h
@@ -10,9 +10,10 @@
#define BROTLI_ENC_COMMAND_H_
#include "../common/constants.h"
-#include <brotli/port.h>
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./fast_log.h"
+#include "./params.h"
#include "./prefix.h"
#if defined(__cplusplus) || defined(c_plusplus)
@@ -105,53 +106,61 @@ static BROTLI_INLINE uint32_t GetCopyExtra(uint16_t copycode) {
typedef struct Command {
uint32_t insert_len_;
- /* Stores copy_len in low 24 bits and copy_len XOR copy_code in high 8 bit. */
+ /* Stores copy_len in low 25 bits and copy_code - copy_len in high 7 bit. */
uint32_t copy_len_;
+ /* Stores distance extra bits. */
uint32_t dist_extra_;
uint16_t cmd_prefix_;
+ /* Stores distance code in low 10 bits
+ and number of extra bits in high 6 bits. */
uint16_t dist_prefix_;
} Command;
/* distance_code is e.g. 0 for same-as-last short code, or 16 for offset 1. */
-static BROTLI_INLINE void InitCommand(Command* self, size_t insertlen,
+static BROTLI_INLINE void InitCommand(Command* self,
+ const BrotliDistanceParams* dist, size_t insertlen,
size_t copylen, int copylen_code_delta, size_t distance_code) {
/* Don't rely on signed int representation, use honest casts. */
uint32_t delta = (uint8_t)((int8_t)copylen_code_delta);
self->insert_len_ = (uint32_t)insertlen;
- self->copy_len_ = (uint32_t)(copylen | (delta << 24));
+ self->copy_len_ = (uint32_t)(copylen | (delta << 25));
/* The distance prefix and extra bits are stored in this Command as if
npostfix and ndirect were 0, they are only recomputed later after the
clustering if needed. */
PrefixEncodeCopyDistance(
- distance_code, 0, 0, &self->dist_prefix_, &self->dist_extra_);
+ distance_code, dist->num_direct_distance_codes,
+ dist->distance_postfix_bits, &self->dist_prefix_, &self->dist_extra_);
GetLengthCode(
insertlen, (size_t)((int)copylen + copylen_code_delta),
- TO_BROTLI_BOOL(self->dist_prefix_ == 0), &self->cmd_prefix_);
+ TO_BROTLI_BOOL((self->dist_prefix_ & 0x3FF) == 0), &self->cmd_prefix_);
}
static BROTLI_INLINE void InitInsertCommand(Command* self, size_t insertlen) {
self->insert_len_ = (uint32_t)insertlen;
- self->copy_len_ = 4 << 24;
+ self->copy_len_ = 4 << 25;
self->dist_extra_ = 0;
self->dist_prefix_ = BROTLI_NUM_DISTANCE_SHORT_CODES;
GetLengthCode(insertlen, 4, BROTLI_FALSE, &self->cmd_prefix_);
}
-static BROTLI_INLINE uint32_t CommandRestoreDistanceCode(const Command* self) {
- if (self->dist_prefix_ < BROTLI_NUM_DISTANCE_SHORT_CODES) {
- return self->dist_prefix_;
+static BROTLI_INLINE uint32_t CommandRestoreDistanceCode(
+ const Command* self, const BrotliDistanceParams* dist) {
+ if ((self->dist_prefix_ & 0x3FF) <
+ BROTLI_NUM_DISTANCE_SHORT_CODES + dist->num_direct_distance_codes) {
+ return self->dist_prefix_ & 0x3FF;
} else {
- uint32_t nbits = self->dist_extra_ >> 24;
- uint32_t extra = self->dist_extra_ & 0xffffff;
- /* It is assumed that the distance was first encoded with NPOSTFIX = 0 and
- NDIRECT = 0, so the code itself is of this form:
- BROTLI_NUM_DISTANCE_SHORT_CODES + 2 * (nbits - 1) + prefix_bit
- Therefore, the following expression results in (2 + prefix_bit). */
- uint32_t prefix =
- self->dist_prefix_ + 4u - BROTLI_NUM_DISTANCE_SHORT_CODES - 2u * nbits;
- /* Subtract 4 for offset (Chapter 4.) and
- increase by BROTLI_NUM_DISTANCE_SHORT_CODES - 1 */
- return (prefix << nbits) + extra + BROTLI_NUM_DISTANCE_SHORT_CODES - 4u;
+ uint32_t dcode = self->dist_prefix_ & 0x3FF;
+ uint32_t nbits = self->dist_prefix_ >> 10;
+ uint32_t extra = self->dist_extra_;
+ uint32_t postfix_mask = (1U << dist->distance_postfix_bits) - 1U;
+ uint32_t hcode = (dcode - dist->num_direct_distance_codes -
+ BROTLI_NUM_DISTANCE_SHORT_CODES) >>
+ dist->distance_postfix_bits;
+ uint32_t lcode = (dcode - dist->num_direct_distance_codes -
+ BROTLI_NUM_DISTANCE_SHORT_CODES) & postfix_mask;
+ uint32_t offset = ((2U + (hcode & 1U)) << nbits) - 4U;
+ return ((offset + extra) << dist->distance_postfix_bits) + lcode +
+ dist->num_direct_distance_codes + BROTLI_NUM_DISTANCE_SHORT_CODES;
}
}
@@ -165,12 +174,13 @@ static BROTLI_INLINE uint32_t CommandDistanceContext(const Command* self) {
}
static BROTLI_INLINE uint32_t CommandCopyLen(const Command* self) {
- return self->copy_len_ & 0xFFFFFF;
+ return self->copy_len_ & 0x1FFFFFF;
}
static BROTLI_INLINE uint32_t CommandCopyLenCode(const Command* self) {
- int32_t delta = (int8_t)((uint8_t)(self->copy_len_ >> 24));
- return (uint32_t)((int32_t)(self->copy_len_ & 0xFFFFFF) + delta);
+ uint32_t modifier = self->copy_len_ >> 25;
+ int32_t delta = (int8_t)((uint8_t)(modifier | ((modifier & 0x40) << 1)));
+ return (uint32_t)((int32_t)(self->copy_len_ & 0x1FFFFFF) + delta);
}
#if defined(__cplusplus) || defined(c_plusplus)
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/compress_fragment.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/compress_fragment.c
index b4ca81017a3..f75069bf3f5 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/compress_fragment.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/compress_fragment.c
@@ -17,16 +17,15 @@
#include <string.h> /* memcmp, memcpy, memset */
#include "../common/constants.h"
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./brotli_bit_stream.h"
#include "./entropy_encode.h"
#include "./fast_log.h"
#include "./find_match_length.h"
#include "./memory.h"
-#include "./port.h"
#include "./write_bits.h"
-
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
@@ -39,7 +38,7 @@ extern "C" {
* There is no effort to ensure that it is a prime, the oddity is enough
for this use.
* The number has been tuned heuristically against compression benchmarks. */
-static const uint32_t kHashMul32 = 0x1e35a7bd;
+static const uint32_t kHashMul32 = 0x1E35A7BD;
static BROTLI_INLINE uint32_t Hash(const uint8_t* p, size_t shift) {
const uint64_t h = (BROTLI_UNALIGNED_LOAD64LE(p) << 24) * kHashMul32;
@@ -48,8 +47,8 @@ static BROTLI_INLINE uint32_t Hash(const uint8_t* p, size_t shift) {
static BROTLI_INLINE uint32_t HashBytesAtOffset(
uint64_t v, int offset, size_t shift) {
- assert(offset >= 0);
- assert(offset <= 3);
+ BROTLI_DCHECK(offset >= 0);
+ BROTLI_DCHECK(offset <= 3);
{
const uint64_t h = ((v >> (8 * offset)) << 24) * kHashMul32;
return (uint32_t)(h >> shift);
@@ -58,7 +57,7 @@ static BROTLI_INLINE uint32_t HashBytesAtOffset(
static BROTLI_INLINE BROTLI_BOOL IsMatch(const uint8_t* p1, const uint8_t* p2) {
return TO_BROTLI_BOOL(
- BROTLI_UNALIGNED_LOAD32(p1) == BROTLI_UNALIGNED_LOAD32(p2) &&
+ BrotliUnalignedRead32(p1) == BrotliUnalignedRead32(p2) &&
p1[4] == p2[4]);
}
@@ -344,7 +343,7 @@ static void BrotliStoreMetaBlockHeader(
}
static void UpdateBits(size_t n_bits, uint32_t bits, size_t pos,
- uint8_t *array) {
+ uint8_t* array) {
while (n_bits > 0) {
size_t byte_pos = pos >> 3;
size_t n_unchanged_bits = pos & 7;
@@ -522,12 +521,12 @@ static BROTLI_INLINE void BrotliCompressFragmentFastImpl(
const uint8_t* next_ip = ip;
const uint8_t* candidate;
- assert(next_emit < ip);
+ BROTLI_DCHECK(next_emit < ip);
trawl:
do {
uint32_t hash = next_hash;
uint32_t bytes_between_hash_lookups = skip++ >> 5;
- assert(hash == Hash(next_ip, shift));
+ BROTLI_DCHECK(hash == Hash(next_ip, shift));
ip = next_ip;
next_ip = ip + bytes_between_hash_lookups;
if (BROTLI_PREDICT_FALSE(next_ip > ip_limit)) {
@@ -542,8 +541,8 @@ trawl:
}
}
candidate = base_ip + table[hash];
- assert(candidate >= base_ip);
- assert(candidate < ip);
+ BROTLI_DCHECK(candidate >= base_ip);
+ BROTLI_DCHECK(candidate < ip);
table[hash] = (int)(ip - base_ip);
} while (BROTLI_PREDICT_TRUE(!IsMatch(ip, candidate)));
@@ -566,7 +565,7 @@ trawl:
int distance = (int)(base - candidate); /* > 0 */
size_t insert = (size_t)(base - next_emit);
ip += matched;
- assert(0 == memcmp(base, candidate, matched));
+ BROTLI_DCHECK(0 == memcmp(base, candidate, matched));
if (BROTLI_PREDICT_TRUE(insert < 6210)) {
EmitInsertLen(insert, cmd_depth, cmd_bits, cmd_histo,
storage_ix, storage);
@@ -626,7 +625,7 @@ trawl:
if (ip - candidate > MAX_DISTANCE) break;
ip += matched;
last_distance = (int)(base - candidate); /* > 0 */
- assert(0 == memcmp(base, candidate, matched));
+ BROTLI_DCHECK(0 == memcmp(base, candidate, matched));
EmitCopyLen(matched, cmd_depth, cmd_bits, cmd_histo,
storage_ix, storage);
EmitDistance((size_t)last_distance, cmd_depth, cmd_bits,
@@ -659,7 +658,7 @@ trawl:
}
emit_remainder:
- assert(next_emit <= ip_end);
+ BROTLI_DCHECK(next_emit <= ip_end);
input += block_size;
input_size -= block_size;
block_size = BROTLI_MIN(size_t, input_size, kMergeBlockSize);
@@ -669,7 +668,7 @@ trawl:
if (input_size > 0 &&
total_block_size + block_size <= (1 << 20) &&
ShouldMergeBlock(input, block_size, lit_depth)) {
- assert(total_block_size > (1 << 16));
+ BROTLI_DCHECK(total_block_size > (1 << 16));
/* Update the size of the current meta-block and continue emitting commands.
We can do this because the current size and the new size both have 5
nibbles. */
@@ -752,7 +751,7 @@ void BrotliCompressFragmentFast(
const size_t table_bits = Log2FloorNonZero(table_size);
if (input_size == 0) {
- assert(is_last);
+ BROTLI_DCHECK(is_last);
BrotliWriteBits(1, 1, storage_ix, storage); /* islast */
BrotliWriteBits(1, 1, storage_ix, storage); /* isempty */
*storage_ix = (*storage_ix + 7u) & ~7u;
@@ -768,7 +767,7 @@ void BrotliCompressFragmentFast(
break;
FOR_TABLE_BITS_(CASE_)
#undef CASE_
- default: assert(0); break;
+ default: BROTLI_DCHECK(0); break;
}
/* If output is larger than single uncompressed block, rewrite it. */
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/compress_fragment.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/compress_fragment.h
index d221266515a..80007f5dcad 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/compress_fragment.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/compress_fragment.h
@@ -12,9 +12,9 @@
#ifndef BROTLI_ENC_COMPRESS_FRAGMENT_H_
#define BROTLI_ENC_COMPRESS_FRAGMENT_H_
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./memory.h"
-#include "./port.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/compress_fragment_two_pass.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/compress_fragment_two_pass.c
index e6611a00c54..b8bd6e838e9 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/compress_fragment_two_pass.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/compress_fragment_two_pass.c
@@ -15,6 +15,7 @@
#include <string.h> /* memcmp, memcpy, memset */
#include "../common/constants.h"
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./bit_cost.h"
#include "./brotli_bit_stream.h"
@@ -22,10 +23,8 @@
#include "./fast_log.h"
#include "./find_match_length.h"
#include "./memory.h"
-#include "./port.h"
#include "./write_bits.h"
-
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
@@ -38,7 +37,7 @@ extern "C" {
* There is no effort to ensure that it is a prime, the oddity is enough
for this use.
* The number has been tuned heuristically against compression benchmarks. */
-static const uint32_t kHashMul32 = 0x1e35a7bd;
+static const uint32_t kHashMul32 = 0x1E35A7BD;
static BROTLI_INLINE uint32_t Hash(const uint8_t* p, size_t shift) {
const uint64_t h = (BROTLI_UNALIGNED_LOAD64LE(p) << 16) * kHashMul32;
@@ -47,8 +46,8 @@ static BROTLI_INLINE uint32_t Hash(const uint8_t* p, size_t shift) {
static BROTLI_INLINE uint32_t HashBytesAtOffset(
uint64_t v, int offset, size_t shift) {
- assert(offset >= 0);
- assert(offset <= 2);
+ BROTLI_DCHECK(offset >= 0);
+ BROTLI_DCHECK(offset <= 2);
{
const uint64_t h = ((v >> (8 * offset)) << 16) * kHashMul32;
return (uint32_t)(h >> shift);
@@ -57,7 +56,7 @@ static BROTLI_INLINE uint32_t HashBytesAtOffset(
static BROTLI_INLINE BROTLI_BOOL IsMatch(const uint8_t* p1, const uint8_t* p2) {
return TO_BROTLI_BOOL(
- BROTLI_UNALIGNED_LOAD32(p1) == BROTLI_UNALIGNED_LOAD32(p2) &&
+ BrotliUnalignedRead32(p1) == BrotliUnalignedRead32(p2) &&
p1[4] == p2[4] &&
p1[5] == p2[5]);
}
@@ -281,13 +280,13 @@ static BROTLI_INLINE void CreateCommands(const uint8_t* input,
const uint8_t* next_ip = ip;
const uint8_t* candidate;
- assert(next_emit < ip);
+ BROTLI_DCHECK(next_emit < ip);
trawl:
do {
uint32_t hash = next_hash;
uint32_t bytes_between_hash_lookups = skip++ >> 5;
ip = next_ip;
- assert(hash == Hash(ip, shift));
+ BROTLI_DCHECK(hash == Hash(ip, shift));
next_ip = ip + bytes_between_hash_lookups;
if (BROTLI_PREDICT_FALSE(next_ip > ip_limit)) {
goto emit_remainder;
@@ -301,8 +300,8 @@ trawl:
}
}
candidate = base_ip + table[hash];
- assert(candidate >= base_ip);
- assert(candidate < ip);
+ BROTLI_DCHECK(candidate >= base_ip);
+ BROTLI_DCHECK(candidate < ip);
table[hash] = (int)(ip - base_ip);
} while (BROTLI_PREDICT_TRUE(!IsMatch(ip, candidate)));
@@ -325,7 +324,7 @@ trawl:
int distance = (int)(base - candidate); /* > 0 */
int insert = (int)(base - next_emit);
ip += matched;
- assert(0 == memcmp(base, candidate, matched));
+ BROTLI_DCHECK(0 == memcmp(base, candidate, matched));
EmitInsertLen((uint32_t)insert, commands);
memcpy(*literals, next_emit, (size_t)insert);
*literals += insert;
@@ -374,7 +373,7 @@ trawl:
candidate + 6, ip + 6, (size_t)(ip_end - ip) - 6);
ip += matched;
last_distance = (int)(base - candidate); /* > 0 */
- assert(0 == memcmp(base, candidate, matched));
+ BROTLI_DCHECK(0 == memcmp(base, candidate, matched));
EmitCopyLen(matched, commands);
EmitDistance((uint32_t)last_distance, commands);
@@ -411,7 +410,7 @@ trawl:
}
emit_remainder:
- assert(next_emit <= ip_end);
+ BROTLI_DCHECK(next_emit <= ip_end);
/* Emit the remaining bytes as literals. */
if (next_emit < ip_end) {
const uint32_t insert = (uint32_t)(ip_end - next_emit);
@@ -457,7 +456,7 @@ static void StoreCommands(MemoryManager* m,
for (i = 0; i < num_commands; ++i) {
const uint32_t code = commands[i] & 0xFF;
- assert(code < 128);
+ BROTLI_DCHECK(code < 128);
++cmd_histo[code];
}
cmd_histo[1] += 1;
@@ -471,7 +470,7 @@ static void StoreCommands(MemoryManager* m,
const uint32_t cmd = commands[i];
const uint32_t code = cmd & 0xFF;
const uint32_t extra = cmd >> 8;
- assert(code < 128);
+ BROTLI_DCHECK(code < 128);
BrotliWriteBits(cmd_depths[code], cmd_bits[code], storage_ix, storage);
BrotliWriteBits(kNumExtraBits[code], extra, storage_ix, storage);
if (code < 24) {
@@ -589,7 +588,7 @@ void BrotliCompressFragmentTwoPass(
break;
FOR_TABLE_BITS_(CASE_)
#undef CASE_
- default: assert(0); break;
+ default: BROTLI_DCHECK(0); break;
}
/* If output is larger than single uncompressed block, rewrite it. */
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/compress_fragment_two_pass.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/compress_fragment_two_pass.h
index ed91942fd2a..928677df426 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/compress_fragment_two_pass.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/compress_fragment_two_pass.h
@@ -13,9 +13,9 @@
#ifndef BROTLI_ENC_COMPRESS_FRAGMENT_TWO_PASS_H_
#define BROTLI_ENC_COMPRESS_FRAGMENT_TWO_PASS_H_
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./memory.h"
-#include "./port.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/dictionary_hash.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/dictionary_hash.c
index 40187840c65..3677d7ddb4e 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/dictionary_hash.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/dictionary_hash.c
@@ -6,7 +6,7 @@
/* Hash table on the 4-byte prefixes of static dictionary words. */
-#include <brotli/port.h>
+#include "../common/platform.h"
#include "./dictionary_hash.h"
#if defined(__cplusplus) || defined(c_plusplus)
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/encode.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/encode.c
index 069521014ec..563c8270a61 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/encode.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/encode.c
@@ -11,6 +11,9 @@
#include <stdlib.h> /* free, malloc */
#include <string.h> /* memcpy, memset */
+#include "../common/constants.h"
+#include "../common/context.h"
+#include "../common/platform.h"
#include "../common/version.h"
#include "./backward_references.h"
#include "./backward_references_hq.h"
@@ -18,14 +21,13 @@
#include "./brotli_bit_stream.h"
#include "./compress_fragment.h"
#include "./compress_fragment_two_pass.h"
-#include "./context.h"
+#include "./encoder_dict.h"
#include "./entropy_encode.h"
#include "./fast_log.h"
#include "./hash.h"
#include "./histogram.h"
#include "./memory.h"
#include "./metablock.h"
-#include "./port.h"
#include "./prefix.h"
#include "./quality.h"
#include "./ringbuffer.h"
@@ -69,8 +71,8 @@ typedef struct BrotliEncoderStateStruct {
uint64_t last_processed_pos_;
int dist_cache_[BROTLI_NUM_DISTANCE_SHORT_CODES];
int saved_dist_cache_[4];
- uint8_t last_byte_;
- uint8_t last_byte_bits_;
+ uint16_t last_bytes_;
+ uint8_t last_bytes_bits_;
uint8_t prev_byte_;
uint8_t prev_byte2_;
size_t storage_size_;
@@ -161,27 +163,11 @@ BROTLI_BOOL BrotliEncoderSetParameter(
state->params.size_hint = value;
return BROTLI_TRUE;
- default: return BROTLI_FALSE;
- }
-}
+ case BROTLI_PARAM_LARGE_WINDOW:
+ state->params.large_window = TO_BROTLI_BOOL(!!value);
+ return BROTLI_TRUE;
-static void RecomputeDistancePrefixes(Command* cmds,
- size_t num_commands,
- uint32_t num_direct_distance_codes,
- uint32_t distance_postfix_bits) {
- size_t i;
- if (num_direct_distance_codes == 0 && distance_postfix_bits == 0) {
- return;
- }
- for (i = 0; i < num_commands; ++i) {
- Command* cmd = &cmds[i];
- if (CommandCopyLen(cmd) && cmd->cmd_prefix_ >= 128) {
- PrefixEncodeCopyDistance(CommandRestoreDistanceCode(cmd),
- num_direct_distance_codes,
- distance_postfix_bits,
- &cmd->dist_prefix_,
- &cmd->dist_extra_);
- }
+ default: return BROTLI_FALSE;
}
}
@@ -226,7 +212,7 @@ static int* GetHashTable(BrotliEncoderState* s, int quality,
const size_t max_table_size = MaxHashTableSize(quality);
size_t htsize = HashTableSize(max_table_size, input_size);
int* table;
- assert(max_table_size >= 256);
+ BROTLI_DCHECK(max_table_size >= 256);
if (quality == FAST_ONE_PASS_COMPRESSION_QUALITY) {
/* Only odd shifts are supported by fast-one-pass. */
if ((htsize & 0xAAAAA) == 0) {
@@ -251,20 +237,25 @@ static int* GetHashTable(BrotliEncoderState* s, int quality,
return table;
}
-static void EncodeWindowBits(int lgwin, uint8_t* last_byte,
- uint8_t* last_byte_bits) {
- if (lgwin == 16) {
- *last_byte = 0;
- *last_byte_bits = 1;
- } else if (lgwin == 17) {
- *last_byte = 1;
- *last_byte_bits = 7;
- } else if (lgwin > 17) {
- *last_byte = (uint8_t)(((lgwin - 17) << 1) | 1);
- *last_byte_bits = 4;
+static void EncodeWindowBits(int lgwin, BROTLI_BOOL large_window,
+ uint16_t* last_bytes, uint8_t* last_bytes_bits) {
+ if (large_window) {
+ *last_bytes = (uint16_t)(((lgwin & 0x3F) << 8) | 0x11);
+ *last_bytes_bits = 14;
} else {
- *last_byte = (uint8_t)(((lgwin - 8) << 4) | 1);
- *last_byte_bits = 7;
+ if (lgwin == 16) {
+ *last_bytes = 0;
+ *last_bytes_bits = 1;
+ } else if (lgwin == 17) {
+ *last_bytes = 1;
+ *last_bytes_bits = 7;
+ } else if (lgwin > 17) {
+ *last_bytes = (uint16_t)(((lgwin - 17) << 1) | 0x01);
+ *last_bytes_bits = 4;
+ } else {
+ *last_bytes = (uint16_t)(((lgwin - 8) << 4) | 0x01);
+ *last_bytes_bits = 7;
+ }
}
}
@@ -357,7 +348,7 @@ static void ChooseContextMap(int quality,
}
total = monogram_histo[0] + monogram_histo[1] + monogram_histo[2];
- assert(total != 0);
+ BROTLI_DCHECK(total != 0);
entropy[0] = 1.0 / (double)total;
entropy[1] *= entropy[0];
entropy[2] *= entropy[0];
@@ -420,6 +411,7 @@ static BROTLI_BOOL ShouldUseComplexStaticContextMap(const uint8_t* input,
double entropy[3];
size_t dummy;
size_t i;
+ ContextLut utf8_lut = BROTLI_CONTEXT_LUT(CONTEXT_UTF8);
for (; start_pos + 64 <= end_pos; start_pos += 4096) {
const size_t stride_end_pos = start_pos + 64;
uint8_t prev2 = input[start_pos & mask];
@@ -430,7 +422,7 @@ static BROTLI_BOOL ShouldUseComplexStaticContextMap(const uint8_t* input,
for (pos = start_pos + 2; pos < stride_end_pos; ++pos) {
const uint8_t literal = input[pos & mask];
const uint8_t context = (uint8_t)kStaticContextMapComplexUTF8[
- Context(prev1, prev2, CONTEXT_UTF8)];
+ BROTLI_CONTEXT(prev1, prev2, utf8_lut)];
++total;
++combined_histo[literal >> 3];
++context_histo[context][literal >> 3];
@@ -519,12 +511,26 @@ static BROTLI_BOOL ShouldCompress(
return BROTLI_TRUE;
}
+/* Chooses the literal context mode for a metablock */
+static ContextType ChooseContextMode(const BrotliEncoderParams* params,
+ const uint8_t* data, const size_t pos, const size_t mask,
+ const size_t length) {
+ /* We only do the computation for the option of something else than
+ CONTEXT_UTF8 for the highest qualities */
+ if (params->quality >= MIN_QUALITY_FOR_HQ_BLOCK_SPLITTING &&
+ !BrotliIsMostlyUTF8(data, pos, mask, length, kMinUTF8Ratio)) {
+ return CONTEXT_SIGNED;
+ }
+ return CONTEXT_UTF8;
+}
+
static void WriteMetaBlockInternal(MemoryManager* m,
const uint8_t* data,
const size_t mask,
const uint64_t last_flush_pos,
const size_t bytes,
const BROTLI_BOOL is_last,
+ ContextType literal_context_mode,
const BrotliEncoderParams* params,
const uint8_t prev_byte,
const uint8_t prev_byte2,
@@ -536,10 +542,9 @@ static void WriteMetaBlockInternal(MemoryManager* m,
size_t* storage_ix,
uint8_t* storage) {
const uint32_t wrapped_last_flush_pos = WrapPosition(last_flush_pos);
- uint8_t last_byte;
- uint8_t last_byte_bits;
- uint32_t num_direct_distance_codes = 0;
- uint32_t distance_postfix_bits = 0;
+ uint16_t last_bytes;
+ uint8_t last_bytes_bits;
+ ContextLut literal_context_lut = BROTLI_CONTEXT_LUT(literal_context_mode);
if (bytes == 0) {
/* Write the ISLAST and ISEMPTY bits. */
@@ -559,31 +564,22 @@ static void WriteMetaBlockInternal(MemoryManager* m,
return;
}
- last_byte = storage[0];
- last_byte_bits = (uint8_t)(*storage_ix & 0xff);
- if (params->quality >= MIN_QUALITY_FOR_RECOMPUTE_DISTANCE_PREFIXES &&
- params->mode == BROTLI_MODE_FONT) {
- num_direct_distance_codes = 12;
- distance_postfix_bits = 1;
- RecomputeDistancePrefixes(commands,
- num_commands,
- num_direct_distance_codes,
- distance_postfix_bits);
- }
+ BROTLI_DCHECK(*storage_ix <= 14);
+ last_bytes = (uint16_t)((storage[1] << 8) | storage[0]);
+ last_bytes_bits = (uint8_t)(*storage_ix);
if (params->quality <= MAX_QUALITY_FOR_STATIC_ENTROPY_CODES) {
BrotliStoreMetaBlockFast(m, data, wrapped_last_flush_pos,
- bytes, mask, is_last,
+ bytes, mask, is_last, params,
commands, num_commands,
storage_ix, storage);
if (BROTLI_IS_OOM(m)) return;
} else if (params->quality < MIN_QUALITY_FOR_BLOCK_SPLIT) {
BrotliStoreMetaBlockTrivial(m, data, wrapped_last_flush_pos,
- bytes, mask, is_last,
+ bytes, mask, is_last, params,
commands, num_commands,
storage_ix, storage);
if (BROTLI_IS_OOM(m)) return;
} else {
- ContextType literal_context_mode = CONTEXT_UTF8;
MetaBlockSplit mb;
InitMetaBlockSplit(&mb);
if (params->quality < MIN_QUALITY_FOR_HQ_BLOCK_SPLITTING) {
@@ -596,14 +592,10 @@ static void WriteMetaBlockInternal(MemoryManager* m,
&literal_context_map);
}
BrotliBuildMetaBlockGreedy(m, data, wrapped_last_flush_pos, mask,
- prev_byte, prev_byte2, literal_context_mode, num_literal_contexts,
+ prev_byte, prev_byte2, literal_context_lut, num_literal_contexts,
literal_context_map, commands, num_commands, &mb);
if (BROTLI_IS_OOM(m)) return;
} else {
- if (!BrotliIsMostlyUTF8(data, wrapped_last_flush_pos, mask, bytes,
- kMinUTF8Ratio)) {
- literal_context_mode = CONTEXT_SIGNED;
- }
BrotliBuildMetaBlock(m, data, wrapped_last_flush_pos, mask, params,
prev_byte, prev_byte2,
commands, num_commands,
@@ -612,15 +604,18 @@ static void WriteMetaBlockInternal(MemoryManager* m,
if (BROTLI_IS_OOM(m)) return;
}
if (params->quality >= MIN_QUALITY_FOR_OPTIMIZE_HISTOGRAMS) {
- BrotliOptimizeHistograms(num_direct_distance_codes,
- distance_postfix_bits,
- &mb);
+ /* The number of distance symbols effectively used by
+ "Large Window Brotli" (32-bit). */
+ uint32_t num_effective_dist_codes = params->dist.alphabet_size;
+ if (num_effective_dist_codes > BROTLI_NUM_HISTOGRAM_DISTANCE_SYMBOLS) {
+ num_effective_dist_codes = BROTLI_NUM_HISTOGRAM_DISTANCE_SYMBOLS;
+ }
+ BrotliOptimizeHistograms(num_effective_dist_codes, &mb);
}
BrotliStoreMetaBlock(m, data, wrapped_last_flush_pos, bytes, mask,
prev_byte, prev_byte2,
is_last,
- num_direct_distance_codes,
- distance_postfix_bits,
+ params,
literal_context_mode,
commands, num_commands,
&mb,
@@ -631,20 +626,56 @@ static void WriteMetaBlockInternal(MemoryManager* m,
if (bytes + 4 < (*storage_ix >> 3)) {
/* Restore the distance cache and last byte. */
memcpy(dist_cache, saved_dist_cache, 4 * sizeof(dist_cache[0]));
- storage[0] = last_byte;
- *storage_ix = last_byte_bits;
+ storage[0] = (uint8_t)last_bytes;
+ storage[1] = (uint8_t)(last_bytes >> 8);
+ *storage_ix = last_bytes_bits;
BrotliStoreUncompressedMetaBlock(is_last, data,
wrapped_last_flush_pos, mask,
bytes, storage_ix, storage);
}
}
+static void ChooseDistanceParams(BrotliEncoderParams* params) {
+ /* NDIRECT, NPOSTFIX must be both zero for qualities
+ up to MIN_QUALITY_FOR_BLOCK_SPLIT == 3. */
+ uint32_t num_direct_distance_codes = 0;
+ uint32_t distance_postfix_bits = 0;
+ uint32_t alphabet_size;
+ size_t max_distance = BROTLI_MAX_DISTANCE;
+
+ if (params->quality >= MIN_QUALITY_FOR_RECOMPUTE_DISTANCE_PREFIXES &&
+ params->mode == BROTLI_MODE_FONT) {
+ num_direct_distance_codes = 12;
+ distance_postfix_bits = 1;
+ max_distance = (1U << 27) + 4;
+ }
+
+ alphabet_size = BROTLI_DISTANCE_ALPHABET_SIZE(
+ num_direct_distance_codes, distance_postfix_bits,
+ BROTLI_MAX_DISTANCE_BITS);
+ if (params->large_window) {
+ max_distance = BROTLI_MAX_ALLOWED_DISTANCE;
+ if (num_direct_distance_codes != 0 || distance_postfix_bits != 0) {
+ max_distance = (3U << 29) - 4;
+ }
+ alphabet_size = BROTLI_DISTANCE_ALPHABET_SIZE(
+ num_direct_distance_codes, distance_postfix_bits,
+ BROTLI_LARGE_MAX_DISTANCE_BITS);
+ }
+
+ params->dist.num_direct_distance_codes = num_direct_distance_codes;
+ params->dist.distance_postfix_bits = distance_postfix_bits;
+ params->dist.alphabet_size = alphabet_size;
+ params->dist.max_distance = max_distance;
+}
+
static BROTLI_BOOL EnsureInitialized(BrotliEncoderState* s) {
if (BROTLI_IS_OOM(&s->memory_manager_)) return BROTLI_FALSE;
if (s->is_initialized_) return BROTLI_TRUE;
SanitizeParams(&s->params);
s->params.lgblock = ComputeLgBlock(&s->params);
+ ChooseDistanceParams(&s->params);
s->remaining_metadata_bytes_ = BROTLI_UINT32_MAX;
@@ -657,7 +688,8 @@ static BROTLI_BOOL EnsureInitialized(BrotliEncoderState* s) {
s->params.quality == FAST_TWO_PASS_COMPRESSION_QUALITY) {
lgwin = BROTLI_MAX(int, lgwin, 18);
}
- EncodeWindowBits(lgwin, &s->last_byte_, &s->last_byte_bits_);
+ EncodeWindowBits(lgwin, s->params.large_window,
+ &s->last_bytes_, &s->last_bytes_bits_);
}
if (s->params.quality == FAST_ONE_PASS_COMPRESSION_QUALITY) {
@@ -671,11 +703,18 @@ static BROTLI_BOOL EnsureInitialized(BrotliEncoderState* s) {
static void BrotliEncoderInitParams(BrotliEncoderParams* params) {
params->mode = BROTLI_DEFAULT_MODE;
+ params->large_window = BROTLI_FALSE;
params->quality = BROTLI_DEFAULT_QUALITY;
params->lgwin = BROTLI_DEFAULT_WINDOW;
params->lgblock = 0;
params->size_hint = 0;
params->disable_literal_context_modeling = BROTLI_FALSE;
+ BrotliInitEncoderDictionary(&params->dictionary);
+ params->dist.num_direct_distance_codes = 0;
+ params->dist.distance_postfix_bits = 0;
+ params->dist.alphabet_size =
+ BROTLI_DISTANCE_ALPHABET_SIZE(0, 0, BROTLI_MAX_DISTANCE_BITS);
+ params->dist.max_distance = BROTLI_MAX_DISTANCE;
}
static void BrotliEncoderInitState(BrotliEncoderState* s) {
@@ -718,9 +757,8 @@ static void BrotliEncoderInitState(BrotliEncoderState* s) {
memcpy(s->saved_dist_cache_, s->dist_cache_, sizeof(s->saved_dist_cache_));
}
-BrotliEncoderState* BrotliEncoderCreateInstance(brotli_alloc_func alloc_func,
- brotli_free_func free_func,
- void* opaque) {
+BrotliEncoderState* BrotliEncoderCreateInstance(
+ brotli_alloc_func alloc_func, brotli_free_func free_func, void* opaque) {
BrotliEncoderState* state = 0;
if (!alloc_func && !free_func) {
state = (BrotliEncoderState*)malloc(sizeof(BrotliEncoderState));
@@ -837,6 +875,38 @@ static BROTLI_BOOL UpdateLastProcessedPos(BrotliEncoderState* s) {
return TO_BROTLI_BOOL(wrapped_input_pos < wrapped_last_processed_pos);
}
+static void ExtendLastCommand(BrotliEncoderState* s, uint32_t* bytes,
+ uint32_t* wrapped_last_processed_pos) {
+ Command* last_command = &s->commands_[s->num_commands_ - 1];
+ const uint8_t* data = s->ringbuffer_.buffer_;
+ const uint32_t mask = s->ringbuffer_.mask_;
+ uint64_t max_backward_distance = (1u << s->params.lgwin) - BROTLI_WINDOW_GAP;
+ uint64_t last_copy_len = last_command->copy_len_ & 0x1FFFFFF;
+ uint64_t last_processed_pos = s->last_processed_pos_ - last_copy_len;
+ uint64_t max_distance = last_processed_pos < max_backward_distance ?
+ last_processed_pos : max_backward_distance;
+ uint64_t cmd_dist = (uint64_t)s->dist_cache_[0];
+ uint32_t distance_code = CommandRestoreDistanceCode(last_command,
+ &s->params.dist);
+ if (distance_code < BROTLI_NUM_DISTANCE_SHORT_CODES ||
+ distance_code - (BROTLI_NUM_DISTANCE_SHORT_CODES - 1) == cmd_dist) {
+ if (cmd_dist <= max_distance) {
+ while (*bytes != 0 && data[*wrapped_last_processed_pos & mask] ==
+ data[(*wrapped_last_processed_pos - cmd_dist) & mask]) {
+ last_command->copy_len_++;
+ (*bytes)--;
+ (*wrapped_last_processed_pos)++;
+ }
+ }
+ /* The copy length is at most the metablock size, and thus expressible. */
+ GetLengthCode(last_command->insert_len_,
+ (size_t)((int)(last_command->copy_len_ & 0x1FFFFFF) +
+ (int)(last_command->copy_len_ >> 25)),
+ TO_BROTLI_BOOL((last_command->dist_prefix_ & 0x3FF) == 0),
+ &last_command->cmd_prefix_);
+ }
+}
+
/*
Processes the accumulated input data and sets |*out_size| to the length of
the new output meta-block, or to zero if no new output meta-block has been
@@ -853,13 +923,12 @@ static BROTLI_BOOL EncodeData(
BrotliEncoderState* s, const BROTLI_BOOL is_last,
const BROTLI_BOOL force_flush, size_t* out_size, uint8_t** output) {
const uint64_t delta = UnprocessedInputSize(s);
- const uint32_t bytes = (uint32_t)delta;
- const uint32_t wrapped_last_processed_pos =
- WrapPosition(s->last_processed_pos_);
+ uint32_t bytes = (uint32_t)delta;
+ uint32_t wrapped_last_processed_pos = WrapPosition(s->last_processed_pos_);
uint8_t* data;
uint32_t mask;
MemoryManager* m = &s->memory_manager_;
- const BrotliDictionary* dictionary = BrotliGetDictionary();
+ ContextType literal_context_mode;
if (!EnsureInitialized(s)) return BROTLI_FALSE;
data = s->ringbuffer_.buffer_;
@@ -884,7 +953,7 @@ static BROTLI_BOOL EncodeData(
if (s->params.quality == FAST_ONE_PASS_COMPRESSION_QUALITY ||
s->params.quality == FAST_TWO_PASS_COMPRESSION_QUALITY) {
uint8_t* storage;
- size_t storage_ix = s->last_byte_bits_;
+ size_t storage_ix = s->last_bytes_bits_;
size_t table_size;
int* table;
@@ -894,9 +963,10 @@ static BROTLI_BOOL EncodeData(
*out_size = 0;
return BROTLI_TRUE;
}
- storage = GetBrotliStorage(s, 2 * bytes + 502);
+ storage = GetBrotliStorage(s, 2 * bytes + 503);
if (BROTLI_IS_OOM(m)) return BROTLI_FALSE;
- storage[0] = s->last_byte_;
+ storage[0] = (uint8_t)s->last_bytes_;
+ storage[1] = (uint8_t)(s->last_bytes_ >> 8);
table = GetHashTable(s, s->params.quality, bytes, &table_size);
if (BROTLI_IS_OOM(m)) return BROTLI_FALSE;
if (s->params.quality == FAST_ONE_PASS_COMPRESSION_QUALITY) {
@@ -917,8 +987,8 @@ static BROTLI_BOOL EncodeData(
&storage_ix, storage);
if (BROTLI_IS_OOM(m)) return BROTLI_FALSE;
}
- s->last_byte_ = storage[storage_ix >> 3];
- s->last_byte_bits_ = storage_ix & 7u;
+ s->last_bytes_ = (uint16_t)(storage[storage_ix >> 3]);
+ s->last_bytes_bits_ = storage_ix & 7u;
UpdateLastProcessedPos(s);
*output = &storage[0];
*out_size = storage_ix >> 3;
@@ -946,27 +1016,39 @@ static BROTLI_BOOL EncodeData(
InitOrStitchToPreviousBlock(m, &s->hasher_, data, mask, &s->params,
wrapped_last_processed_pos, bytes, is_last);
+
+ literal_context_mode = ChooseContextMode(
+ &s->params, data, WrapPosition(s->last_flush_pos_),
+ mask, (size_t)(s->input_pos_ - s->last_flush_pos_));
+
if (BROTLI_IS_OOM(m)) return BROTLI_FALSE;
+ if (s->num_commands_ && s->last_insert_len_ == 0) {
+ ExtendLastCommand(s, &bytes, &wrapped_last_processed_pos);
+ }
+
if (s->params.quality == ZOPFLIFICATION_QUALITY) {
- assert(s->params.hasher.type == 10);
- BrotliCreateZopfliBackwardReferences(
- m, dictionary, bytes, wrapped_last_processed_pos, data, mask,
- &s->params, s->hasher_, s->dist_cache_, &s->last_insert_len_,
- &s->commands_[s->num_commands_], &s->num_commands_, &s->num_literals_);
+ BROTLI_DCHECK(s->params.hasher.type == 10);
+ BrotliCreateZopfliBackwardReferences(m,
+ bytes, wrapped_last_processed_pos,
+ data, mask, &s->params, s->hasher_, s->dist_cache_,
+ &s->last_insert_len_, &s->commands_[s->num_commands_],
+ &s->num_commands_, &s->num_literals_);
if (BROTLI_IS_OOM(m)) return BROTLI_FALSE;
} else if (s->params.quality == HQ_ZOPFLIFICATION_QUALITY) {
- assert(s->params.hasher.type == 10);
- BrotliCreateHqZopfliBackwardReferences(
- m, dictionary, bytes, wrapped_last_processed_pos, data, mask,
- &s->params, s->hasher_, s->dist_cache_, &s->last_insert_len_,
- &s->commands_[s->num_commands_], &s->num_commands_, &s->num_literals_);
+ BROTLI_DCHECK(s->params.hasher.type == 10);
+ BrotliCreateHqZopfliBackwardReferences(m,
+ bytes, wrapped_last_processed_pos,
+ data, mask, &s->params, s->hasher_, s->dist_cache_,
+ &s->last_insert_len_, &s->commands_[s->num_commands_],
+ &s->num_commands_, &s->num_literals_);
if (BROTLI_IS_OOM(m)) return BROTLI_FALSE;
} else {
BrotliCreateBackwardReferences(
- dictionary, bytes, wrapped_last_processed_pos, data, mask,
- &s->params, s->hasher_, s->dist_cache_, &s->last_insert_len_,
- &s->commands_[s->num_commands_], &s->num_commands_, &s->num_literals_);
+ bytes, wrapped_last_processed_pos,
+ data, mask, &s->params, s->hasher_, s->dist_cache_,
+ &s->last_insert_len_, &s->commands_[s->num_commands_],
+ &s->num_commands_, &s->num_literals_);
}
{
@@ -1009,24 +1091,25 @@ static BROTLI_BOOL EncodeData(
*out_size = 0;
return BROTLI_TRUE;
}
- assert(s->input_pos_ >= s->last_flush_pos_);
- assert(s->input_pos_ > s->last_flush_pos_ || is_last);
- assert(s->input_pos_ - s->last_flush_pos_ <= 1u << 24);
+ BROTLI_DCHECK(s->input_pos_ >= s->last_flush_pos_);
+ BROTLI_DCHECK(s->input_pos_ > s->last_flush_pos_ || is_last);
+ BROTLI_DCHECK(s->input_pos_ - s->last_flush_pos_ <= 1u << 24);
{
const uint32_t metablock_size =
(uint32_t)(s->input_pos_ - s->last_flush_pos_);
- uint8_t* storage = GetBrotliStorage(s, 2 * metablock_size + 502);
- size_t storage_ix = s->last_byte_bits_;
+ uint8_t* storage = GetBrotliStorage(s, 2 * metablock_size + 503);
+ size_t storage_ix = s->last_bytes_bits_;
if (BROTLI_IS_OOM(m)) return BROTLI_FALSE;
- storage[0] = s->last_byte_;
+ storage[0] = (uint8_t)s->last_bytes_;
+ storage[1] = (uint8_t)(s->last_bytes_ >> 8);
WriteMetaBlockInternal(
m, data, mask, s->last_flush_pos_, metablock_size, is_last,
- &s->params, s->prev_byte_, s->prev_byte2_,
+ literal_context_mode, &s->params, s->prev_byte_, s->prev_byte2_,
s->num_literals_, s->num_commands_, s->commands_, s->saved_dist_cache_,
s->dist_cache_, &storage_ix, storage);
if (BROTLI_IS_OOM(m)) return BROTLI_FALSE;
- s->last_byte_ = storage[storage_ix >> 3];
- s->last_byte_bits_ = storage_ix & 7u;
+ s->last_bytes_ = (uint16_t)(storage[storage_ix >> 3]);
+ s->last_bytes_bits_ = storage_ix & 7u;
s->last_flush_pos_ = s->input_pos_;
if (UpdateLastProcessedPos(s)) {
HasherReset(s->hasher_);
@@ -1055,10 +1138,11 @@ static BROTLI_BOOL EncodeData(
static size_t WriteMetadataHeader(
BrotliEncoderState* s, const size_t block_size, uint8_t* header) {
size_t storage_ix;
- storage_ix = s->last_byte_bits_;
- header[0] = s->last_byte_;
- s->last_byte_ = 0;
- s->last_byte_bits_ = 0;
+ storage_ix = s->last_bytes_bits_;
+ header[0] = (uint8_t)s->last_bytes_;
+ header[1] = (uint8_t)(s->last_bytes_ >> 8);
+ s->last_bytes_ = 0;
+ s->last_bytes_bits_ = 0;
BrotliWriteBits(1, 0, &storage_ix, header);
BrotliWriteBits(2, 3, &storage_ix, header);
@@ -1088,15 +1172,14 @@ static BROTLI_BOOL BrotliCompressBufferQuality10(
BROTLI_BOOL ok = BROTLI_TRUE;
const size_t max_out_size = *encoded_size;
size_t total_out_size = 0;
- uint8_t last_byte;
- uint8_t last_byte_bits;
+ uint16_t last_bytes;
+ uint8_t last_bytes_bits;
HasherHandle hasher = NULL;
const size_t hasher_eff_size =
BROTLI_MIN(size_t, input_size, max_backward_limit + BROTLI_WINDOW_GAP);
BrotliEncoderParams params;
- const BrotliDictionary* dictionary = BrotliGetDictionary();
const int lgmetablock = BROTLI_MIN(int, 24, lgwin + 1);
size_t max_block_size;
@@ -1110,14 +1193,18 @@ static BROTLI_BOOL BrotliCompressBufferQuality10(
BrotliEncoderInitParams(&params);
params.quality = 10;
params.lgwin = lgwin;
+ if (lgwin > BROTLI_MAX_WINDOW_BITS) {
+ params.large_window = BROTLI_TRUE;
+ }
SanitizeParams(&params);
params.lgblock = ComputeLgBlock(&params);
+ ChooseDistanceParams(&params);
max_block_size = (size_t)1 << params.lgblock;
BrotliInitMemoryManager(m, 0, 0, 0);
- assert(input_size <= mask + 1);
- EncodeWindowBits(lgwin, &last_byte, &last_byte_bits);
+ BROTLI_DCHECK(input_size <= mask + 1);
+ EncodeWindowBits(lgwin, params.large_window, &last_bytes, &last_bytes_bits);
InitOrStitchToPreviousBlock(m, &hasher, input_buffer, mask, &params,
0, hasher_eff_size, BROTLI_TRUE);
if (BROTLI_IS_OOM(m)) goto oom;
@@ -1137,6 +1224,9 @@ static BROTLI_BOOL BrotliCompressBufferQuality10(
uint8_t* storage;
size_t storage_ix;
+ ContextType literal_context_mode = ChooseContextMode(&params,
+ input_buffer, metablock_start, mask, metablock_end - metablock_start);
+
size_t block_start;
for (block_start = metablock_start; block_start < metablock_end; ) {
size_t block_size =
@@ -1148,8 +1238,8 @@ static BROTLI_BOOL BrotliCompressBufferQuality10(
BrotliInitZopfliNodes(nodes, block_size + 1);
StitchToPreviousBlockH10(hasher, block_size, block_start,
input_buffer, mask);
- path_size = BrotliZopfliComputeShortestPath(
- m, dictionary, block_size, block_start, input_buffer, mask, &params,
+ path_size = BrotliZopfliComputeShortestPath(m,
+ block_size, block_start, input_buffer, mask, &params,
max_backward_limit, dist_cache, hasher, nodes);
if (BROTLI_IS_OOM(m)) goto oom;
/* We allocate a command buffer in the first iteration of this loop that
@@ -1193,13 +1283,14 @@ static BROTLI_BOOL BrotliCompressBufferQuality10(
is_last = TO_BROTLI_BOOL(metablock_start + metablock_size == input_size);
storage = NULL;
- storage_ix = last_byte_bits;
+ storage_ix = last_bytes_bits;
if (metablock_size == 0) {
/* Write the ISLAST and ISEMPTY bits. */
storage = BROTLI_ALLOC(m, uint8_t, 16);
if (BROTLI_IS_OOM(m)) goto oom;
- storage[0] = last_byte;
+ storage[0] = (uint8_t)last_bytes;
+ storage[1] = (uint8_t)(last_bytes >> 8);
BrotliWriteBits(2, 3, &storage_ix, storage);
storage_ix = (storage_ix + 7u) & ~7u;
} else if (!ShouldCompress(input_buffer, mask, metablock_start,
@@ -1209,37 +1300,35 @@ static BROTLI_BOOL BrotliCompressBufferQuality10(
memcpy(dist_cache, saved_dist_cache, 4 * sizeof(dist_cache[0]));
storage = BROTLI_ALLOC(m, uint8_t, metablock_size + 16);
if (BROTLI_IS_OOM(m)) goto oom;
- storage[0] = last_byte;
+ storage[0] = (uint8_t)last_bytes;
+ storage[1] = (uint8_t)(last_bytes >> 8);
BrotliStoreUncompressedMetaBlock(is_last, input_buffer,
metablock_start, mask, metablock_size,
&storage_ix, storage);
} else {
- uint32_t num_direct_distance_codes = 0;
- uint32_t distance_postfix_bits = 0;
- ContextType literal_context_mode = CONTEXT_UTF8;
MetaBlockSplit mb;
- InitMetaBlockSplit(&mb);
- if (!BrotliIsMostlyUTF8(input_buffer, metablock_start, mask,
- metablock_size, kMinUTF8Ratio)) {
- literal_context_mode = CONTEXT_SIGNED;
+ /* The number of distance symbols effectively used by
+ "Large Window Brotli" (32-bit). */
+ uint32_t num_effective_dist_codes = params.dist.alphabet_size;
+ if (num_effective_dist_codes > BROTLI_NUM_HISTOGRAM_DISTANCE_SYMBOLS) {
+ num_effective_dist_codes = BROTLI_NUM_HISTOGRAM_DISTANCE_SYMBOLS;
}
+ InitMetaBlockSplit(&mb);
BrotliBuildMetaBlock(m, input_buffer, metablock_start, mask, &params,
prev_byte, prev_byte2,
commands, num_commands,
literal_context_mode,
&mb);
if (BROTLI_IS_OOM(m)) goto oom;
- BrotliOptimizeHistograms(num_direct_distance_codes,
- distance_postfix_bits,
- &mb);
- storage = BROTLI_ALLOC(m, uint8_t, 2 * metablock_size + 502);
+ BrotliOptimizeHistograms(num_effective_dist_codes, &mb);
+ storage = BROTLI_ALLOC(m, uint8_t, 2 * metablock_size + 503);
if (BROTLI_IS_OOM(m)) goto oom;
- storage[0] = last_byte;
+ storage[0] = (uint8_t)last_bytes;
+ storage[1] = (uint8_t)(last_bytes >> 8);
BrotliStoreMetaBlock(m, input_buffer, metablock_start, metablock_size,
mask, prev_byte, prev_byte2,
is_last,
- num_direct_distance_codes,
- distance_postfix_bits,
+ &params,
literal_context_mode,
commands, num_commands,
&mb,
@@ -1248,19 +1337,22 @@ static BROTLI_BOOL BrotliCompressBufferQuality10(
if (metablock_size + 4 < (storage_ix >> 3)) {
/* Restore the distance cache and last byte. */
memcpy(dist_cache, saved_dist_cache, 4 * sizeof(dist_cache[0]));
- storage[0] = last_byte;
- storage_ix = last_byte_bits;
+ storage[0] = (uint8_t)last_bytes;
+ storage[1] = (uint8_t)(last_bytes >> 8);
+ storage_ix = last_bytes_bits;
BrotliStoreUncompressedMetaBlock(is_last, input_buffer,
metablock_start, mask,
metablock_size, &storage_ix, storage);
}
DestroyMetaBlockSplit(m, &mb);
}
- last_byte = storage[storage_ix >> 3];
- last_byte_bits = storage_ix & 7u;
+ last_bytes = (uint16_t)(storage[storage_ix >> 3]);
+ last_bytes_bits = storage_ix & 7u;
metablock_start += metablock_size;
- prev_byte = input_buffer[metablock_start - 1];
- prev_byte2 = input_buffer[metablock_start - 2];
+ if (metablock_start < input_size) {
+ prev_byte = input_buffer[metablock_start - 1];
+ prev_byte2 = input_buffer[metablock_start - 2];
+ }
/* Save the state of the distance cache in case we need to restore it for
emitting an uncompressed block. */
memcpy(saved_dist_cache, dist_cache, 4 * sizeof(dist_cache[0]));
@@ -1290,12 +1382,10 @@ oom:
size_t BrotliEncoderMaxCompressedSize(size_t input_size) {
/* [window bits / empty metadata] + N * [uncompressed] + [last empty] */
- size_t num_large_blocks = input_size >> 24;
- size_t tail = input_size - (num_large_blocks << 24);
- size_t tail_overhead = (tail > (1 << 20)) ? 4 : 3;
- size_t overhead = 2 + (4 * num_large_blocks) + tail_overhead + 1;
+ size_t num_large_blocks = input_size >> 14;
+ size_t overhead = 2 + (4 * num_large_blocks) + 3 + 1;
size_t result = input_size + overhead;
- if (input_size == 0) return 1;
+ if (input_size == 0) return 2;
return (result < input_size) ? 0 : result;
}
@@ -1356,7 +1446,7 @@ BROTLI_BOOL BrotliEncoderCompress(
}
if (quality == 10) {
/* TODO: Implement this direct path for all quality levels. */
- const int lg_win = BROTLI_MIN(int, BROTLI_MAX_WINDOW_BITS,
+ const int lg_win = BROTLI_MIN(int, BROTLI_LARGE_MAX_WINDOW_BITS,
BROTLI_MAX(int, 16, lgwin));
int ok = BrotliCompressBufferQuality10(lg_win, input_size, input_buffer,
encoded_size, encoded_buffer);
@@ -1380,6 +1470,9 @@ BROTLI_BOOL BrotliEncoderCompress(
BrotliEncoderSetParameter(s, BROTLI_PARAM_LGWIN, (uint32_t)lgwin);
BrotliEncoderSetParameter(s, BROTLI_PARAM_MODE, (uint32_t)mode);
BrotliEncoderSetParameter(s, BROTLI_PARAM_SIZE_HINT, (uint32_t)input_size);
+ if (lgwin > BROTLI_MAX_WINDOW_BITS) {
+ BrotliEncoderSetParameter(s, BROTLI_PARAM_LARGE_WINDOW, BROTLI_TRUE);
+ }
result = BrotliEncoderCompressStream(s, BROTLI_OPERATION_FINISH,
&available_in, &next_in, &available_out, &next_out, &total_out);
if (!BrotliEncoderIsFinished(s)) result = 0;
@@ -1402,11 +1495,11 @@ fallback:
}
static void InjectBytePaddingBlock(BrotliEncoderState* s) {
- uint32_t seal = s->last_byte_;
- size_t seal_bits = s->last_byte_bits_;
+ uint32_t seal = s->last_bytes_;
+ size_t seal_bits = s->last_bytes_bits_;
uint8_t* destination;
- s->last_byte_ = 0;
- s->last_byte_bits_ = 0;
+ s->last_bytes_ = 0;
+ s->last_bytes_bits_ = 0;
/* is_last = 0, data_nibbles = 11, reserved = 0, meta_nibbles = 00 */
seal |= 0x6u << seal_bits;
seal_bits += 6;
@@ -1420,6 +1513,7 @@ static void InjectBytePaddingBlock(BrotliEncoderState* s) {
}
destination[0] = (uint8_t)seal;
if (seal_bits > 8) destination[1] = (uint8_t)(seal >> 8);
+ if (seal_bits > 16) destination[2] = (uint8_t)(seal >> 16);
s->available_out_ += (seal_bits + 7) >> 3;
}
@@ -1428,7 +1522,7 @@ static void InjectBytePaddingBlock(BrotliEncoderState* s) {
static BROTLI_BOOL InjectFlushOrPushOutput(BrotliEncoderState* s,
size_t* available_out, uint8_t** next_out, size_t* total_out) {
if (s->stream_state_ == BROTLI_STREAM_FLUSH_REQUESTED &&
- s->last_byte_bits_ != 0) {
+ s->last_bytes_bits_ != 0) {
InjectBytePaddingBlock(s);
return BROTLI_TRUE;
}
@@ -1509,10 +1603,10 @@ static BROTLI_BOOL BrotliEncoderCompressStreamFast(
(*available_in == block_size) && (op == BROTLI_OPERATION_FINISH);
BROTLI_BOOL force_flush =
(*available_in == block_size) && (op == BROTLI_OPERATION_FLUSH);
- size_t max_out_size = 2 * block_size + 502;
+ size_t max_out_size = 2 * block_size + 503;
BROTLI_BOOL inplace = BROTLI_TRUE;
uint8_t* storage = NULL;
- size_t storage_ix = s->last_byte_bits_;
+ size_t storage_ix = s->last_bytes_bits_;
size_t table_size;
int* table;
@@ -1527,7 +1621,8 @@ static BROTLI_BOOL BrotliEncoderCompressStreamFast(
storage = GetBrotliStorage(s, max_out_size);
if (BROTLI_IS_OOM(m)) return BROTLI_FALSE;
}
- storage[0] = s->last_byte_;
+ storage[0] = (uint8_t)s->last_bytes_;
+ storage[1] = (uint8_t)(s->last_bytes_ >> 8);
table = GetHashTable(s, s->params.quality, block_size, &table_size);
if (BROTLI_IS_OOM(m)) return BROTLI_FALSE;
@@ -1546,8 +1641,8 @@ static BROTLI_BOOL BrotliEncoderCompressStreamFast(
*available_in -= block_size;
if (inplace) {
size_t out_bytes = storage_ix >> 3;
- assert(out_bytes <= *available_out);
- assert((storage_ix & 7) == 0 || out_bytes < *available_out);
+ BROTLI_DCHECK(out_bytes <= *available_out);
+ BROTLI_DCHECK((storage_ix & 7) == 0 || out_bytes < *available_out);
*next_out += out_bytes;
*available_out -= out_bytes;
s->total_out_ += out_bytes;
@@ -1557,8 +1652,8 @@ static BROTLI_BOOL BrotliEncoderCompressStreamFast(
s->next_out_ = storage;
s->available_out_ = out_bytes;
}
- s->last_byte_ = storage[storage_ix >> 3];
- s->last_byte_bits_ = storage_ix & 7u;
+ s->last_bytes_ = (uint16_t)(storage[storage_ix >> 3]);
+ s->last_bytes_bits_ = storage_ix & 7u;
if (force_flush) s->stream_state_ = BROTLI_STREAM_FLUSH_REQUESTED;
if (is_last) s->stream_state_ = BROTLI_STREAM_FINISHED;
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/encoder_dict.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/encoder_dict.c
new file mode 100644
index 00000000000..8b2f6ad4a47
--- /dev/null
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/encoder_dict.c
@@ -0,0 +1,32 @@
+/* Copyright 2017 Google Inc. All Rights Reserved.
+
+ Distributed under MIT license.
+ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
+*/
+
+#include "./encoder_dict.h"
+
+#include "../common/dictionary.h"
+#include "../common/transform.h"
+#include "./dictionary_hash.h"
+#include "./hash.h"
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+void BrotliInitEncoderDictionary(BrotliEncoderDictionary* dict) {
+ dict->words = BrotliGetDictionary();
+
+ dict->hash_table = kStaticDictionaryHash;
+ dict->buckets = kStaticDictionaryBuckets;
+ dict->dict_words = kStaticDictionaryWords;
+
+ dict->cutoffTransformsCount = kCutoffTransformsCount;
+ dict->cutoffTransforms = kCutoffTransforms;
+
+}
+
+#if defined(__cplusplus) || defined(c_plusplus)
+} /* extern "C" */
+#endif
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/encoder_dict.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/encoder_dict.h
new file mode 100644
index 00000000000..9ac8b4a38e4
--- /dev/null
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/encoder_dict.h
@@ -0,0 +1,42 @@
+/* Copyright 2017 Google Inc. All Rights Reserved.
+
+ Distributed under MIT license.
+ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
+*/
+
+#ifndef BROTLI_ENC_ENCODER_DICT_H_
+#define BROTLI_ENC_ENCODER_DICT_H_
+
+#include "../common/dictionary.h"
+#include "../common/platform.h"
+#include <brotli/types.h>
+#include "./static_dict_lut.h"
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+/* Dictionary data (words and transforms) for 1 possible context */
+typedef struct BrotliEncoderDictionary {
+ const BrotliDictionary* words;
+
+ /* cut off for fast encoder */
+ uint32_t cutoffTransformsCount;
+ uint64_t cutoffTransforms;
+
+ /* from dictionary_hash.h, for fast encoder */
+ const uint16_t* hash_table;
+
+ /* from static_dict_lut.h, for slow encoder */
+ const uint16_t* buckets;
+ const DictWord* dict_words;
+} BrotliEncoderDictionary;
+
+BROTLI_INTERNAL void BrotliInitEncoderDictionary(BrotliEncoderDictionary* dict);
+
+
+#if defined(__cplusplus) || defined(c_plusplus)
+} /* extern "C" */
+#endif
+
+#endif /* BROTLI_ENC_ENCODER_DICT_H_ */
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/entropy_encode.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/entropy_encode.c
index 41ea9483d19..97f9dfb82aa 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/entropy_encode.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/entropy_encode.c
@@ -11,8 +11,8 @@
#include <string.h> /* memset */
#include "../common/constants.h"
+#include "../common/platform.h"
#include <brotli/types.h>
-#include "./port.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
@@ -23,7 +23,7 @@ BROTLI_BOOL BrotliSetDepth(
int stack[16];
int level = 0;
int p = p0;
- assert(max_depth <= 15);
+ BROTLI_DCHECK(max_depth <= 15);
stack[0] = -1;
while (BROTLI_TRUE) {
if (pool[p].index_left_ >= 0) {
@@ -66,11 +66,11 @@ static BROTLI_INLINE BROTLI_BOOL SortHuffmanTree(
we are not planning to use this with extremely long blocks.
See http://en.wikipedia.org/wiki/Huffman_coding */
-void BrotliCreateHuffmanTree(const uint32_t *data,
+void BrotliCreateHuffmanTree(const uint32_t* data,
const size_t length,
const int tree_limit,
HuffmanTree* tree,
- uint8_t *depth) {
+ uint8_t* depth) {
uint32_t count_limit;
HuffmanTree sentinel;
InitHuffmanTree(&sentinel, BROTLI_UINT32_MAX, -1, -1);
@@ -165,7 +165,7 @@ static void BrotliWriteHuffmanTreeRepetitions(
size_t* tree_size,
uint8_t* tree,
uint8_t* extra_bits_data) {
- assert(repetitions > 0);
+ BROTLI_DCHECK(repetitions > 0);
if (previous_value != value) {
tree[*tree_size] = value;
extra_bits_data[*tree_size] = 0;
@@ -371,8 +371,8 @@ void BrotliOptimizeHuffmanCountsForRle(size_t length, uint32_t* counts,
}
static void DecideOverRleUse(const uint8_t* depth, const size_t length,
- BROTLI_BOOL *use_rle_for_non_zero,
- BROTLI_BOOL *use_rle_for_zero) {
+ BROTLI_BOOL* use_rle_for_non_zero,
+ BROTLI_BOOL* use_rle_for_zero) {
size_t total_reps_zero = 0;
size_t total_reps_non_zero = 0;
size_t count_reps_zero = 1;
@@ -454,26 +454,26 @@ void BrotliWriteHuffmanTree(const uint8_t* depth,
static uint16_t BrotliReverseBits(size_t num_bits, uint16_t bits) {
static const size_t kLut[16] = { /* Pre-reversed 4-bit values. */
- 0x0, 0x8, 0x4, 0xc, 0x2, 0xa, 0x6, 0xe,
- 0x1, 0x9, 0x5, 0xd, 0x3, 0xb, 0x7, 0xf
+ 0x00, 0x08, 0x04, 0x0C, 0x02, 0x0A, 0x06, 0x0E,
+ 0x01, 0x09, 0x05, 0x0D, 0x03, 0x0B, 0x07, 0x0F
};
- size_t retval = kLut[bits & 0xf];
+ size_t retval = kLut[bits & 0x0F];
size_t i;
for (i = 4; i < num_bits; i += 4) {
retval <<= 4;
bits = (uint16_t)(bits >> 4);
- retval |= kLut[bits & 0xf];
+ retval |= kLut[bits & 0x0F];
}
- retval >>= ((0 - num_bits) & 0x3);
+ retval >>= ((0 - num_bits) & 0x03);
return (uint16_t)retval;
}
/* 0..15 are values for bits */
#define MAX_HUFFMAN_BITS 16
-void BrotliConvertBitDepthsToSymbols(const uint8_t *depth,
+void BrotliConvertBitDepthsToSymbols(const uint8_t* depth,
size_t len,
- uint16_t *bits) {
+ uint16_t* bits) {
/* In Brotli, all bit depths are [1..15]
0 bit depth means that the symbol does not exist. */
uint16_t bl_count[MAX_HUFFMAN_BITS] = { 0 };
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/entropy_encode.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/entropy_encode.h
index 812d0094f86..f23d9c379d0 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/entropy_encode.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/entropy_encode.h
@@ -9,8 +9,8 @@
#ifndef BROTLI_ENC_ENTROPY_ENCODE_H_
#define BROTLI_ENC_ENTROPY_ENCODE_H_
+#include "../common/platform.h"
#include <brotli/types.h>
-#include "./port.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
@@ -46,11 +46,11 @@ BROTLI_INTERNAL BROTLI_BOOL BrotliSetDepth(
be at least 2 * length + 1 long.
See http://en.wikipedia.org/wiki/Huffman_coding */
-BROTLI_INTERNAL void BrotliCreateHuffmanTree(const uint32_t *data,
+BROTLI_INTERNAL void BrotliCreateHuffmanTree(const uint32_t* data,
const size_t length,
const int tree_limit,
HuffmanTree* tree,
- uint8_t *depth);
+ uint8_t* depth);
/* Change the population counts in a way that the consequent
Huffman tree compression, especially its RLE-part will be more
@@ -72,9 +72,9 @@ BROTLI_INTERNAL void BrotliWriteHuffmanTree(const uint8_t* depth,
uint8_t* extra_bits_data);
/* Get the actual bit values for a tree of bit depths. */
-BROTLI_INTERNAL void BrotliConvertBitDepthsToSymbols(const uint8_t *depth,
+BROTLI_INTERNAL void BrotliConvertBitDepthsToSymbols(const uint8_t* depth,
size_t len,
- uint16_t *bits);
+ uint16_t* bits);
/* Input size optimized Shell sort. */
typedef BROTLI_BOOL (*HuffmanTreeComparator)(
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/entropy_encode_static.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/entropy_encode_static.h
index bc0ee53c56b..62b99a954c5 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/entropy_encode_static.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/entropy_encode_static.h
@@ -10,7 +10,7 @@
#define BROTLI_ENC_ENTROPY_ENCODE_STATIC_H_
#include "../common/constants.h"
-#include <brotli/port.h>
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./write_bits.h"
@@ -83,7 +83,7 @@ static const uint32_t kCodeLengthBits[18] = {
static BROTLI_INLINE void StoreStaticCodeLengthCode(
size_t* storage_ix, uint8_t* storage) {
BrotliWriteBits(
- 40, BROTLI_MAKE_UINT64_T(0x0000ffU, 0x55555554U), storage_ix, storage);
+ 40, BROTLI_MAKE_UINT64_T(0x0000FFu, 0x55555554u), storage_ix, storage);
}
static const uint64_t kZeroRepsBits[BROTLI_NUM_COMMAND_SYMBOLS] = {
@@ -529,7 +529,7 @@ static const uint16_t kStaticDistanceCodeBits[64] = {
static BROTLI_INLINE void StoreStaticDistanceHuffmanTree(
size_t* storage_ix, uint8_t* storage) {
- BrotliWriteBits(28, 0x0369dc03U, storage_ix, storage);
+ BrotliWriteBits(28, 0x0369DC03u, storage_ix, storage);
}
#if defined(__cplusplus) || defined(c_plusplus)
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/fast_log.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/fast_log.h
index 49c1af31d06..d45a5280c87 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/fast_log.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/fast_log.h
@@ -11,8 +11,8 @@
#include <math.h>
+#include "../common/platform.h"
#include <brotli/types.h>
-#include <brotli/port.h>
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/find_match_length.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/find_match_length.h
index 41845312c45..bc428cffdaf 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/find_match_length.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/find_match_length.h
@@ -9,8 +9,8 @@
#ifndef BROTLI_ENC_FIND_MATCH_LENGTH_H_
#define BROTLI_ENC_FIND_MATCH_LENGTH_H_
+#include "../common/platform.h"
#include <brotli/types.h>
-#include "./port.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
@@ -60,8 +60,8 @@ static BROTLI_INLINE size_t FindMatchLengthWithLimit(const uint8_t* s1,
the first non-matching bit and use that to calculate the total
length of the match. */
while (s2_ptr <= s2_limit - 4 &&
- BROTLI_UNALIGNED_LOAD32(s2_ptr) ==
- BROTLI_UNALIGNED_LOAD32(s1 + matched)) {
+ BrotliUnalignedRead32(s2_ptr) ==
+ BrotliUnalignedRead32(s1 + matched)) {
s2_ptr += 4;
matched += 4;
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash.h
index c94edd3300e..1827ce6019a 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash.h
@@ -14,11 +14,12 @@
#include "../common/constants.h"
#include "../common/dictionary.h"
+#include "../common/platform.h"
#include <brotli/types.h>
+#include "./encoder_dict.h"
#include "./fast_log.h"
#include "./find_match_length.h"
#include "./memory.h"
-#include "./port.h"
#include "./quality.h"
#include "./static_dict.h"
@@ -73,13 +74,13 @@ typedef struct HasherSearchResult {
* There is no effort to ensure that it is a prime, the oddity is enough
for this use.
* The number has been tuned heuristically against compression benchmarks. */
-static const uint32_t kHashMul32 = 0x1e35a7bd;
-static const uint64_t kHashMul64 = BROTLI_MAKE_UINT64_T(0x1e35a7bd, 0x1e35a7bd);
+static const uint32_t kHashMul32 = 0x1E35A7BD;
+static const uint64_t kHashMul64 = BROTLI_MAKE_UINT64_T(0x1E35A7BD, 0x1E35A7BD);
static const uint64_t kHashMul64Long =
- BROTLI_MAKE_UINT64_T(0x1fe35a7bU, 0xd3579bd3U);
+ BROTLI_MAKE_UINT64_T(0x1FE35A7Bu, 0xD3579BD3u);
static BROTLI_INLINE uint32_t Hash14(const uint8_t* data) {
- uint32_t h = BROTLI_UNALIGNED_LOAD32(data) * kHashMul32;
+ uint32_t h = BROTLI_UNALIGNED_LOAD32LE(data) * kHashMul32;
/* The higher bits contain more mixture from the multiplication,
so we take our results from there. */
return h >> (32 - 14);
@@ -146,8 +147,9 @@ static BROTLI_INLINE score_t BackwardReferencePenaltyUsingLastDistance(
}
static BROTLI_INLINE BROTLI_BOOL TestStaticDictionaryItem(
- const BrotliDictionary* dictionary, size_t item, const uint8_t* data,
- size_t max_length, size_t max_backward, HasherSearchResult* out) {
+ const BrotliEncoderDictionary* dictionary, size_t item, const uint8_t* data,
+ size_t max_length, size_t max_backward, size_t max_distance,
+ HasherSearchResult* out) {
size_t len;
size_t dist;
size_t offset;
@@ -156,24 +158,24 @@ static BROTLI_INLINE BROTLI_BOOL TestStaticDictionaryItem(
score_t score;
len = item & 0x1F;
dist = item >> 5;
- offset = dictionary->offsets_by_length[len] + len * dist;
+ offset = dictionary->words->offsets_by_length[len] + len * dist;
if (len > max_length) {
return BROTLI_FALSE;
}
matchlen =
- FindMatchLengthWithLimit(data, &dictionary->data[offset], len);
- if (matchlen + kCutoffTransformsCount <= len || matchlen == 0) {
+ FindMatchLengthWithLimit(data, &dictionary->words->data[offset], len);
+ if (matchlen + dictionary->cutoffTransformsCount <= len || matchlen == 0) {
return BROTLI_FALSE;
}
{
size_t cut = len - matchlen;
- size_t transform_id =
- (cut << 2) + (size_t)((kCutoffTransforms >> (cut * 6)) & 0x3F);
+ size_t transform_id = (cut << 2) +
+ (size_t)((dictionary->cutoffTransforms >> (cut * 6)) & 0x3F);
backward = max_backward + dist + 1 +
- (transform_id << dictionary->size_bits_by_length[len]);
+ (transform_id << dictionary->words->size_bits_by_length[len]);
}
- if (backward >= BROTLI_MAX_DISTANCE) {
+ if (backward > max_distance) {
return BROTLI_FALSE;
}
score = BackwardReferenceScore(matchlen, backward);
@@ -188,9 +190,10 @@ static BROTLI_INLINE BROTLI_BOOL TestStaticDictionaryItem(
}
static BROTLI_INLINE void SearchInStaticDictionary(
- const BrotliDictionary* dictionary, const uint16_t* dictionary_hash,
+ const BrotliEncoderDictionary* dictionary,
HasherHandle handle, const uint8_t* data, size_t max_length,
- size_t max_backward, HasherSearchResult* out, BROTLI_BOOL shallow) {
+ size_t max_backward, size_t max_distance,
+ HasherSearchResult* out, BROTLI_BOOL shallow) {
size_t key;
size_t i;
HasherCommon* self = GetHasherCommon(handle);
@@ -199,11 +202,11 @@ static BROTLI_INLINE void SearchInStaticDictionary(
}
key = Hash14(data) << 1;
for (i = 0; i < (shallow ? 1u : 2u); ++i, ++key) {
- size_t item = dictionary_hash[key];
+ size_t item = dictionary->hash_table[key];
self->dict_num_lookups++;
if (item != 0) {
BROTLI_BOOL item_matches = TestStaticDictionaryItem(
- dictionary, item, data, max_length, max_backward, out);
+ dictionary, item, data, max_length, max_backward, max_distance, out);
if (item_matches) {
self->dict_num_matches++;
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_forgetful_chain_inc.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_forgetful_chain_inc.h
index 8f9ee7330de..41cb3ff03ac 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_forgetful_chain_inc.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_forgetful_chain_inc.h
@@ -28,8 +28,8 @@ static BROTLI_INLINE size_t FN(HashTypeLength)(void) { return 4; }
static BROTLI_INLINE size_t FN(StoreLookahead)(void) { return 4; }
/* HashBytes is the function that chooses the bucket to place the address in.*/
-static BROTLI_INLINE size_t FN(HashBytes)(const uint8_t *data) {
- const uint32_t h = BROTLI_UNALIGNED_LOAD32(data) * kHashMul32;
+static BROTLI_INLINE size_t FN(HashBytes)(const uint8_t* data) {
+ const uint32_t h = BROTLI_UNALIGNED_LOAD32LE(data) * kHashMul32;
/* The higher bits contain more mixture from the multiplication,
so we take our results from there. */
return h >> (32 - BUCKET_BITS);
@@ -115,7 +115,7 @@ static BROTLI_INLINE void FN(Store)(HasherHandle BROTLI_RESTRICT handle,
}
static BROTLI_INLINE void FN(StoreRange)(HasherHandle handle,
- const uint8_t *data, const size_t mask, const size_t ix_start,
+ const uint8_t* data, const size_t mask, const size_t ix_start,
const size_t ix_end) {
size_t i;
for (i = ix_start; i < ix_end; ++i) {
@@ -154,11 +154,12 @@ static BROTLI_INLINE void FN(PrepareDistanceCache)(
Writes the best match into |out|.
|out|->score is updated only if a better match is found. */
static BROTLI_INLINE void FN(FindLongestMatch)(HasherHandle handle,
- const BrotliDictionary* dictionary, const uint16_t* dictionary_hash,
+ const BrotliEncoderDictionary* dictionary,
const uint8_t* BROTLI_RESTRICT data, const size_t ring_buffer_mask,
const int* BROTLI_RESTRICT distance_cache,
const size_t cur_ix, const size_t max_length, const size_t max_backward,
- const size_t gap, HasherSearchResult* BROTLI_RESTRICT out) {
+ const size_t gap, const size_t max_distance,
+ HasherSearchResult* BROTLI_RESTRICT out) {
HashForgetfulChain* self = FN(Self)(handle);
const size_t cur_ix_masked = cur_ix & ring_buffer_mask;
/* Don't accept a short copy from far away. */
@@ -240,9 +241,9 @@ static BROTLI_INLINE void FN(FindLongestMatch)(HasherHandle handle,
FN(Store)(handle, data, ring_buffer_mask, cur_ix);
}
if (out->score == min_score) {
- SearchInStaticDictionary(dictionary, dictionary_hash,
- handle, &data[cur_ix_masked], max_length, max_backward + gap, out,
- BROTLI_FALSE);
+ SearchInStaticDictionary(dictionary,
+ handle, &data[cur_ix_masked], max_length, max_backward + gap,
+ max_distance, out, BROTLI_FALSE);
}
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_longest_match64_inc.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_longest_match64_inc.h
index 6b0697b2675..e099edf610c 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_longest_match64_inc.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_longest_match64_inc.h
@@ -20,7 +20,7 @@ static BROTLI_INLINE size_t FN(HashTypeLength)(void) { return 8; }
static BROTLI_INLINE size_t FN(StoreLookahead)(void) { return 8; }
/* HashBytes is the function that chooses the bucket to place the address in. */
-static BROTLI_INLINE uint32_t FN(HashBytes)(const uint8_t *data,
+static BROTLI_INLINE uint32_t FN(HashBytes)(const uint8_t* data,
const uint64_t mask,
const int shift) {
const uint64_t h = (BROTLI_UNALIGNED_LOAD64LE(data) & mask) * kHashMul64Long;
@@ -105,7 +105,7 @@ static BROTLI_INLINE size_t FN(HashMemAllocInBytes)(
/* Look at 4 bytes at &data[ix & mask].
Compute a hash from these, and store the value of ix at that position. */
-static BROTLI_INLINE void FN(Store)(HasherHandle handle, const uint8_t *data,
+static BROTLI_INLINE void FN(Store)(HasherHandle handle, const uint8_t* data,
const size_t mask, const size_t ix) {
HashLongestMatch* self = FN(Self)(handle);
uint16_t* num = FN(Num)(self);
@@ -119,7 +119,7 @@ static BROTLI_INLINE void FN(Store)(HasherHandle handle, const uint8_t *data,
}
static BROTLI_INLINE void FN(StoreRange)(HasherHandle handle,
- const uint8_t *data, const size_t mask, const size_t ix_start,
+ const uint8_t* data, const size_t mask, const size_t ix_start,
const size_t ix_end) {
size_t i;
for (i = ix_start; i < ix_end; ++i) {
@@ -158,11 +158,11 @@ static BROTLI_INLINE void FN(PrepareDistanceCache)(
Writes the best match into |out|.
|out|->score is updated only if a better match is found. */
static BROTLI_INLINE void FN(FindLongestMatch)(HasherHandle handle,
- const BrotliDictionary* dictionary, const uint16_t* dictionary_hash,
+ const BrotliEncoderDictionary* dictionary,
const uint8_t* BROTLI_RESTRICT data, const size_t ring_buffer_mask,
const int* BROTLI_RESTRICT distance_cache, const size_t cur_ix,
const size_t max_length, const size_t max_backward, const size_t gap,
- HasherSearchResult* BROTLI_RESTRICT out) {
+ const size_t max_distance, HasherSearchResult* BROTLI_RESTRICT out) {
HasherCommon* common = GetHasherCommon(handle);
HashLongestMatch* self = FN(Self)(handle);
uint16_t* num = FN(Num)(self);
@@ -257,9 +257,9 @@ static BROTLI_INLINE void FN(FindLongestMatch)(HasherHandle handle,
++num[key];
}
if (min_score == out->score) {
- SearchInStaticDictionary(dictionary, dictionary_hash,
- handle, &data[cur_ix_masked], max_length, max_backward + gap, out,
- BROTLI_FALSE);
+ SearchInStaticDictionary(dictionary,
+ handle, &data[cur_ix_masked], max_length, max_backward + gap,
+ max_distance, out, BROTLI_FALSE);
}
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_longest_match_inc.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_longest_match_inc.h
index dc5335f8edb..951d7a4b5a2 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_longest_match_inc.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_longest_match_inc.h
@@ -20,8 +20,8 @@ static BROTLI_INLINE size_t FN(HashTypeLength)(void) { return 4; }
static BROTLI_INLINE size_t FN(StoreLookahead)(void) { return 4; }
/* HashBytes is the function that chooses the bucket to place the address in. */
-static uint32_t FN(HashBytes)(const uint8_t *data, const int shift) {
- uint32_t h = BROTLI_UNALIGNED_LOAD32(data) * kHashMul32;
+static uint32_t FN(HashBytes)(const uint8_t* data, const int shift) {
+ uint32_t h = BROTLI_UNALIGNED_LOAD32LE(data) * kHashMul32;
/* The higher bits contain more mixture from the multiplication,
so we take our results from there. */
return (uint32_t)(h >> shift);
@@ -112,7 +112,7 @@ static BROTLI_INLINE void FN(Store)(HasherHandle handle, const uint8_t* data,
}
static BROTLI_INLINE void FN(StoreRange)(HasherHandle handle,
- const uint8_t *data, const size_t mask, const size_t ix_start,
+ const uint8_t* data, const size_t mask, const size_t ix_start,
const size_t ix_end) {
size_t i;
for (i = ix_start; i < ix_end; ++i) {
@@ -151,11 +151,11 @@ static BROTLI_INLINE void FN(PrepareDistanceCache)(
Writes the best match into |out|.
|out|->score is updated only if a better match is found. */
static BROTLI_INLINE void FN(FindLongestMatch)(HasherHandle handle,
- const BrotliDictionary* dictionary, const uint16_t* dictionary_hash,
+ const BrotliEncoderDictionary* dictionary,
const uint8_t* BROTLI_RESTRICT data, const size_t ring_buffer_mask,
const int* BROTLI_RESTRICT distance_cache, const size_t cur_ix,
const size_t max_length, const size_t max_backward, const size_t gap,
- HasherSearchResult* BROTLI_RESTRICT out) {
+ const size_t max_distance, HasherSearchResult* BROTLI_RESTRICT out) {
HasherCommon* common = GetHasherCommon(handle);
HashLongestMatch* self = FN(Self)(handle);
uint16_t* num = FN(Num)(self);
@@ -249,9 +249,9 @@ static BROTLI_INLINE void FN(FindLongestMatch)(HasherHandle handle,
++num[key];
}
if (min_score == out->score) {
- SearchInStaticDictionary(dictionary, dictionary_hash,
- handle, &data[cur_ix_masked], max_length, max_backward + gap, out,
- BROTLI_FALSE);
+ SearchInStaticDictionary(dictionary,
+ handle, &data[cur_ix_masked], max_length, max_backward + gap,
+ max_distance, out, BROTLI_FALSE);
}
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_longest_match_quickly_inc.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_longest_match_quickly_inc.h
index 2c78351112a..a7b9639febf 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_longest_match_quickly_inc.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_longest_match_quickly_inc.h
@@ -81,7 +81,7 @@ static BROTLI_INLINE size_t FN(HashMemAllocInBytes)(
Compute a hash from these, and store the value somewhere within
[ix .. ix+3]. */
static BROTLI_INLINE void FN(Store)(HasherHandle handle,
- const uint8_t *data, const size_t mask, const size_t ix) {
+ const uint8_t* data, const size_t mask, const size_t ix) {
const uint32_t key = FN(HashBytes)(&data[ix & mask]);
/* Wiggle the value with the bucket sweep range. */
const uint32_t off = (ix >> 3) % BUCKET_SWEEP;
@@ -89,7 +89,7 @@ static BROTLI_INLINE void FN(Store)(HasherHandle handle,
}
static BROTLI_INLINE void FN(StoreRange)(HasherHandle handle,
- const uint8_t *data, const size_t mask, const size_t ix_start,
+ const uint8_t* data, const size_t mask, const size_t ix_start,
const size_t ix_end) {
size_t i;
for (i = ix_start; i < ix_end; ++i) {
@@ -125,11 +125,12 @@ static BROTLI_INLINE void FN(PrepareDistanceCache)(
Writes the best match into |out|.
|out|->score is updated only if a better match is found. */
static BROTLI_INLINE void FN(FindLongestMatch)(
- HasherHandle handle, const BrotliDictionary* dictionary,
- const uint16_t* dictionary_hash, const uint8_t* BROTLI_RESTRICT data,
+ HasherHandle handle, const BrotliEncoderDictionary* dictionary,
+ const uint8_t* BROTLI_RESTRICT data,
const size_t ring_buffer_mask, const int* BROTLI_RESTRICT distance_cache,
const size_t cur_ix, const size_t max_length, const size_t max_backward,
- const size_t gap, HasherSearchResult* BROTLI_RESTRICT out) {
+ const size_t gap, const size_t max_distance,
+ HasherSearchResult* BROTLI_RESTRICT out) {
HashLongestMatchQuickly* self = FN(Self)(handle);
const size_t best_len_in = out->len;
const size_t cur_ix_masked = cur_ix & ring_buffer_mask;
@@ -191,7 +192,7 @@ static BROTLI_INLINE void FN(FindLongestMatch)(
}
}
} else {
- uint32_t *bucket = self->buckets_ + key;
+ uint32_t* bucket = self->buckets_ + key;
int i;
prev_ix = *bucket++;
for (i = 0; i < BUCKET_SWEEP; ++i, prev_ix = *bucket++) {
@@ -221,9 +222,9 @@ static BROTLI_INLINE void FN(FindLongestMatch)(
}
}
if (USE_DICTIONARY && min_score == out->score) {
- SearchInStaticDictionary(dictionary, dictionary_hash,
- handle, &data[cur_ix_masked], max_length, max_backward + gap, out,
- BROTLI_TRUE);
+ SearchInStaticDictionary(dictionary,
+ handle, &data[cur_ix_masked], max_length, max_backward + gap,
+ max_distance, out, BROTLI_TRUE);
}
self->buckets_[key + ((cur_ix >> 3) % BUCKET_SWEEP)] = (uint32_t)cur_ix;
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_to_binary_tree_inc.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_to_binary_tree_inc.h
index 30c71b52f88..48097b178f5 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_to_binary_tree_inc.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/hash_to_binary_tree_inc.h
@@ -24,8 +24,8 @@ static BROTLI_INLINE size_t FN(StoreLookahead)(void) {
return MAX_TREE_COMP_LENGTH;
}
-static uint32_t FN(HashBytes)(const uint8_t *data) {
- uint32_t h = BROTLI_UNALIGNED_LOAD32(data) * kHashMul32;
+static uint32_t FN(HashBytes)(const uint8_t* data) {
+ uint32_t h = BROTLI_UNALIGNED_LOAD32LE(data) * kHashMul32;
/* The higher bits contain more mixture from the multiplication,
so we take our results from there. */
return h >> (32 - BUCKET_BITS);
@@ -154,12 +154,13 @@ static BROTLI_INLINE BackwardMatch* FN(StoreAndFindMatches)(
{
const size_t cur_len = BROTLI_MIN(size_t, best_len_left, best_len_right);
size_t len;
- assert(cur_len <= MAX_TREE_COMP_LENGTH);
+ BROTLI_DCHECK(cur_len <= MAX_TREE_COMP_LENGTH);
len = cur_len +
FindMatchLengthWithLimit(&data[cur_ix_masked + cur_len],
&data[prev_ix_masked + cur_len],
max_length - cur_len);
- assert(0 == memcmp(&data[cur_ix_masked], &data[prev_ix_masked], len));
+ BROTLI_DCHECK(
+ 0 == memcmp(&data[cur_ix_masked], &data[prev_ix_masked], len));
if (matches && len > *best_len) {
*best_len = len;
InitBackwardMatch(matches++, backward, len);
@@ -199,7 +200,7 @@ static BROTLI_INLINE BackwardMatch* FN(StoreAndFindMatches)(
sorted by strictly increasing length and (non-strictly) increasing
distance. */
static BROTLI_INLINE size_t FN(FindAllMatches)(HasherHandle handle,
- const BrotliDictionary* dictionary, const uint8_t* data,
+ const BrotliEncoderDictionary* dictionary, const uint8_t* data,
const size_t ring_buffer_mask, const size_t cur_ix,
const size_t max_length, const size_t max_backward, const size_t gap,
const BrotliEncoderParams* params, BackwardMatch* matches) {
@@ -251,7 +252,7 @@ static BROTLI_INLINE size_t FN(FindAllMatches)(HasherHandle handle,
uint32_t dict_id = dict_matches[l];
if (dict_id < kInvalidMatch) {
size_t distance = max_backward + gap + (dict_id >> 5) + 1;
- if (distance < BROTLI_MAX_DISTANCE) {
+ if (distance <= params->dist.max_distance) {
InitDictionaryBackwardMatch(matches++, distance, l, dict_id & 31);
}
}
@@ -264,7 +265,7 @@ static BROTLI_INLINE size_t FN(FindAllMatches)(HasherHandle handle,
/* Stores the hash of the next 4 bytes and re-roots the binary tree at the
current sequence, without returning any matches.
REQUIRES: ix + MAX_TREE_COMP_LENGTH <= end-of-current-block */
-static BROTLI_INLINE void FN(Store)(HasherHandle handle, const uint8_t *data,
+static BROTLI_INLINE void FN(Store)(HasherHandle handle, const uint8_t* data,
const size_t mask, const size_t ix) {
HashToBinaryTree* self = FN(Self)(handle);
/* Maximum distance is window size - 16, see section 9.1. of the spec. */
@@ -274,7 +275,7 @@ static BROTLI_INLINE void FN(Store)(HasherHandle handle, const uint8_t *data,
}
static BROTLI_INLINE void FN(StoreRange)(HasherHandle handle,
- const uint8_t *data, const size_t mask, const size_t ix_start,
+ const uint8_t* data, const size_t mask, const size_t ix_start,
const size_t ix_end) {
size_t i = ix_start;
size_t j = ix_start;
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/histogram.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/histogram.c
index bb7b4c53626..6da2ff6bb43 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/histogram.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/histogram.c
@@ -8,9 +8,9 @@
#include "./histogram.h"
+#include "../common/context.h"
#include "./block_splitter.h"
#include "./command.h"
-#include "./context.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
@@ -63,13 +63,16 @@ void BrotliBuildHistogramsWithContext(
BlockSplitIteratorNext(&insert_and_copy_it);
HistogramAddCommand(&insert_and_copy_histograms[insert_and_copy_it.type_],
cmd->cmd_prefix_);
+ /* TODO: unwrap iterator blocks. */
for (j = cmd->insert_len_; j != 0; --j) {
size_t context;
BlockSplitIteratorNext(&literal_it);
- context = context_modes ?
- ((literal_it.type_ << BROTLI_LITERAL_CONTEXT_BITS) +
- Context(prev_byte, prev_byte2, context_modes[literal_it.type_])) :
- literal_it.type_;
+ context = literal_it.type_;
+ if (context_modes) {
+ ContextLut lut = BROTLI_CONTEXT_LUT(context_modes[context]);
+ context = (context << BROTLI_LITERAL_CONTEXT_BITS) +
+ BROTLI_CONTEXT(prev_byte, prev_byte2, lut);
+ }
HistogramAddLiteral(&literal_histograms[context],
ringbuffer[pos & mask]);
prev_byte2 = prev_byte;
@@ -86,7 +89,7 @@ void BrotliBuildHistogramsWithContext(
context = (dist_it.type_ << BROTLI_DISTANCE_CONTEXT_BITS) +
CommandDistanceContext(cmd);
HistogramAddDistance(&copy_dist_histograms[context],
- cmd->dist_prefix_);
+ cmd->dist_prefix_ & 0x3FF);
}
}
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/histogram.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/histogram.h
index 2161574b3bb..42af3c3f9d1 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/histogram.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/histogram.h
@@ -12,16 +12,19 @@
#include <string.h> /* memset */
#include "../common/constants.h"
+#include "../common/context.h"
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./block_splitter.h"
#include "./command.h"
-#include "./context.h"
-#include "./port.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
+/* The distance symbols effectively used by "Large Window Brotli" (32-bit). */
+#define BROTLI_NUM_HISTOGRAM_DISTANCE_SYMBOLS 544
+
#define FN(X) X ## Literal
#define DATA_SIZE BROTLI_NUM_LITERAL_SYMBOLS
#define DataType uint8_t
@@ -38,7 +41,7 @@ extern "C" {
#undef FN
#define FN(X) X ## Distance
-#define DATA_SIZE BROTLI_NUM_DISTANCE_SYMBOLS
+#define DATA_SIZE BROTLI_NUM_HISTOGRAM_DISTANCE_SYMBOLS
#include "./histogram_inc.h" /* NOLINT(build/include) */
#undef DataType
#undef DATA_SIZE
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/histogram_inc.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/histogram_inc.h
index 78070368c5e..50eaf7468da 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/histogram_inc.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/histogram_inc.h
@@ -33,7 +33,7 @@ static BROTLI_INLINE void FN(HistogramAdd)(FN(Histogram)* self, size_t val) {
}
static BROTLI_INLINE void FN(HistogramAddVector)(FN(Histogram)* self,
- const DataType *p, size_t n) {
+ const DataType* p, size_t n) {
self->total_count_ += n;
n += 1;
while (--n) ++self->data_[*p++];
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/literal_cost.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/literal_cost.c
index 91c691cd437..c231100e341 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/literal_cost.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/literal_cost.c
@@ -9,9 +9,9 @@
#include "./literal_cost.h"
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./fast_log.h"
-#include "./port.h"
#include "./utf8_util.h"
#if defined(__cplusplus) || defined(c_plusplus)
@@ -25,7 +25,7 @@ static size_t UTF8Position(size_t last, size_t c, size_t clamp) {
return BROTLI_MIN(size_t, 1, clamp);
} else {
/* Let's decide over the last byte if this ends the sequence. */
- if (last < 0xe0) {
+ if (last < 0xE0) {
return 0; /* Completed two or three byte coding. */
} else { /* Next one is the 'Byte 3' of utf-8 encoding. */
return BROTLI_MIN(size_t, 2, clamp);
@@ -34,7 +34,7 @@ static size_t UTF8Position(size_t last, size_t c, size_t clamp) {
}
static size_t DecideMultiByteStatsLevel(size_t pos, size_t len, size_t mask,
- const uint8_t *data) {
+ const uint8_t* data) {
size_t counts[3] = { 0 };
size_t max_utf8 = 1; /* should be 2, but 1 compresses better. */
size_t last_c = 0;
@@ -54,7 +54,7 @@ static size_t DecideMultiByteStatsLevel(size_t pos, size_t len, size_t mask,
}
static void EstimateBitCostsForLiteralsUTF8(size_t pos, size_t len, size_t mask,
- const uint8_t *data, float *cost) {
+ const uint8_t* data, float* cost) {
/* max_utf8 is 0 (normal ASCII single byte modeling),
1 (for 2-byte UTF-8 modeling), or 2 (for 3-byte UTF-8 modeling). */
const size_t max_utf8 = DecideMultiByteStatsLevel(pos, len, mask, data);
@@ -125,7 +125,7 @@ static void EstimateBitCostsForLiteralsUTF8(size_t pos, size_t len, size_t mask,
}
void BrotliEstimateBitCostsForLiterals(size_t pos, size_t len, size_t mask,
- const uint8_t *data, float *cost) {
+ const uint8_t* data, float* cost) {
if (BrotliIsMostlyUTF8(data, pos, mask, len, kMinUTF8Ratio)) {
EstimateBitCostsForLiteralsUTF8(pos, len, mask, data, cost);
return;
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/literal_cost.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/literal_cost.h
index 7b3d030d2ee..8f53f39d3f2 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/literal_cost.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/literal_cost.h
@@ -10,8 +10,8 @@
#ifndef BROTLI_ENC_LITERAL_COST_H_
#define BROTLI_ENC_LITERAL_COST_H_
+#include "../common/platform.h"
#include <brotli/types.h>
-#include "./port.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
@@ -21,7 +21,7 @@ extern "C" {
ring-buffer (data, mask) will take entropy coded and writes these estimates
to the cost[0..len) array. */
BROTLI_INTERNAL void BrotliEstimateBitCostsForLiterals(
- size_t pos, size_t len, size_t mask, const uint8_t *data, float *cost);
+ size_t pos, size_t len, size_t mask, const uint8_t* data, float* cost);
#if defined(__cplusplus) || defined(c_plusplus)
} /* extern "C" */
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/memory.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/memory.c
index 5aa5a2246b3..f6ed7e3cb75 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/memory.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/memory.c
@@ -9,12 +9,11 @@
#include "./memory.h"
-#include <assert.h>
#include <stdlib.h> /* exit, free, malloc */
#include <string.h> /* memcpy */
+#include "../common/platform.h"
#include <brotli/types.h>
-#include "./port.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
@@ -28,22 +27,12 @@ extern "C" {
#define NEW_ALLOCATED_OFFSET MAX_PERM_ALLOCATED
#define NEW_FREED_OFFSET (MAX_PERM_ALLOCATED + MAX_NEW_ALLOCATED)
-static void* DefaultAllocFunc(void* opaque, size_t size) {
- BROTLI_UNUSED(opaque);
- return malloc(size);
-}
-
-static void DefaultFreeFunc(void* opaque, void* address) {
- BROTLI_UNUSED(opaque);
- free(address);
-}
-
void BrotliInitMemoryManager(
MemoryManager* m, brotli_alloc_func alloc_func, brotli_free_func free_func,
void* opaque) {
if (!alloc_func) {
- m->alloc_func = DefaultAllocFunc;
- m->free_func = DefaultFreeFunc;
+ m->alloc_func = BrotliDefaultAllocFunc;
+ m->free_func = BrotliDefaultFreeFunc;
m->opaque = 0;
} else {
m->alloc_func = alloc_func;
@@ -132,11 +121,11 @@ static void CollectGarbagePointers(MemoryManager* m) {
m->pointers + NEW_FREED_OFFSET, m->new_freed);
m->perm_allocated -= annihilated;
m->new_freed -= annihilated;
- assert(m->new_freed == 0);
+ BROTLI_DCHECK(m->new_freed == 0);
}
if (m->new_allocated != 0) {
- assert(m->perm_allocated + m->new_allocated <= MAX_PERM_ALLOCATED);
+ BROTLI_DCHECK(m->perm_allocated + m->new_allocated <= MAX_PERM_ALLOCATED);
memcpy(m->pointers + PERM_ALLOCATED_OFFSET + m->perm_allocated,
m->pointers + NEW_ALLOCATED_OFFSET,
sizeof(void*) * m->new_allocated);
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/memory.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/memory.h
index babf1f80b19..2d56e97961a 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/memory.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/memory.h
@@ -9,8 +9,10 @@
#ifndef BROTLI_ENC_MEMORY_H_
#define BROTLI_ENC_MEMORY_H_
+#include <string.h> /* memcpy */
+
+#include "../common/platform.h"
#include <brotli/types.h>
-#include "./port.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
@@ -56,6 +58,28 @@ BROTLI_INTERNAL void BrotliFree(MemoryManager* m, void* p);
BROTLI_INTERNAL void BrotliWipeOutMemoryManager(MemoryManager* m);
+/*
+Dynamically grows array capacity to at least the requested size
+M: MemoryManager
+T: data type
+A: array
+C: capacity
+R: requested size
+*/
+#define BROTLI_ENSURE_CAPACITY(M, T, A, C, R) { \
+ if (C < (R)) { \
+ size_t _new_size = (C == 0) ? (R) : C; \
+ T* new_array; \
+ while (_new_size < (R)) _new_size *= 2; \
+ new_array = BROTLI_ALLOC((M), T, _new_size); \
+ if (!BROTLI_IS_OOM(M) && C != 0) \
+ memcpy(new_array, A, C * sizeof(T)); \
+ BROTLI_FREE((M), A); \
+ A = new_array; \
+ C = _new_size; \
+ } \
+}
+
#if defined(__cplusplus) || defined(c_plusplus)
} /* extern "C" */
#endif
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/metablock.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/metablock.c
index 1db76da0067..621929291f4 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/metablock.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/metablock.c
@@ -10,15 +10,15 @@
#include "./metablock.h"
#include "../common/constants.h"
+#include "../common/context.h"
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./bit_cost.h"
#include "./block_splitter.h"
#include "./cluster.h"
-#include "./context.h"
#include "./entropy_encode.h"
#include "./histogram.h"
#include "./memory.h"
-#include "./port.h"
#include "./quality.h"
#if defined(__cplusplus) || defined(c_plusplus)
@@ -77,7 +77,7 @@ void BrotliBuildMetaBlock(MemoryManager* m,
if (BROTLI_IS_OOM(m)) return;
ClearHistogramsDistance(distance_histograms, distance_histograms_size);
- assert(mb->command_histograms == 0);
+ BROTLI_DCHECK(mb->command_histograms == 0);
mb->command_histograms_size = mb->command_split.num_types;
mb->command_histograms =
BROTLI_ALLOC(m, HistogramCommand, mb->command_histograms_size);
@@ -90,14 +90,14 @@ void BrotliBuildMetaBlock(MemoryManager* m,
literal_histograms, mb->command_histograms, distance_histograms);
BROTLI_FREE(m, literal_context_modes);
- assert(mb->literal_context_map == 0);
+ BROTLI_DCHECK(mb->literal_context_map == 0);
mb->literal_context_map_size =
mb->literal_split.num_types << BROTLI_LITERAL_CONTEXT_BITS;
mb->literal_context_map =
BROTLI_ALLOC(m, uint32_t, mb->literal_context_map_size);
if (BROTLI_IS_OOM(m)) return;
- assert(mb->literal_histograms == 0);
+ BROTLI_DCHECK(mb->literal_histograms == 0);
mb->literal_histograms_size = mb->literal_context_map_size;
mb->literal_histograms =
BROTLI_ALLOC(m, HistogramLiteral, mb->literal_histograms_size);
@@ -121,14 +121,14 @@ void BrotliBuildMetaBlock(MemoryManager* m,
}
}
- assert(mb->distance_context_map == 0);
+ BROTLI_DCHECK(mb->distance_context_map == 0);
mb->distance_context_map_size =
mb->distance_split.num_types << BROTLI_DISTANCE_CONTEXT_BITS;
mb->distance_context_map =
BROTLI_ALLOC(m, uint32_t, mb->distance_context_map_size);
if (BROTLI_IS_OOM(m)) return;
- assert(mb->distance_histograms == 0);
+ BROTLI_DCHECK(mb->distance_histograms == 0);
mb->distance_histograms_size = mb->distance_context_map_size;
mb->distance_histograms =
BROTLI_ALLOC(m, HistogramDistance, mb->distance_histograms_size);
@@ -200,7 +200,7 @@ static void InitContextBlockSplitter(
size_t* histograms_size) {
size_t max_num_blocks = num_symbols / min_block_size + 1;
size_t max_num_types;
- assert(num_contexts <= BROTLI_MAX_STATIC_CONTEXTS);
+ BROTLI_DCHECK(num_contexts <= BROTLI_MAX_STATIC_CONTEXTS);
self->alphabet_size_ = alphabet_size;
self->num_contexts_ = num_contexts;
@@ -226,7 +226,7 @@ static void InitContextBlockSplitter(
if (BROTLI_IS_OOM(m)) return;
split->num_blocks = max_num_blocks;
if (BROTLI_IS_OOM(m)) return;
- assert(*histograms == 0);
+ BROTLI_DCHECK(*histograms == 0);
*histograms_size = max_num_types * num_contexts;
*histograms = BROTLI_ALLOC(m, HistogramLiteral, *histograms_size);
self->histograms_ = *histograms;
@@ -379,7 +379,7 @@ static void MapStaticContexts(MemoryManager* m,
const uint32_t* static_context_map,
MetaBlockSplit* mb) {
size_t i;
- assert(mb->literal_context_map == 0);
+ BROTLI_DCHECK(mb->literal_context_map == 0);
mb->literal_context_map_size =
mb->literal_split.num_types << BROTLI_LITERAL_CONTEXT_BITS;
mb->literal_context_map =
@@ -398,9 +398,9 @@ static void MapStaticContexts(MemoryManager* m,
static BROTLI_INLINE void BrotliBuildMetaBlockGreedyInternal(
MemoryManager* m, const uint8_t* ringbuffer, size_t pos, size_t mask,
- uint8_t prev_byte, uint8_t prev_byte2, ContextType literal_context_mode,
+ uint8_t prev_byte, uint8_t prev_byte2, ContextLut literal_context_lut,
const size_t num_contexts, const uint32_t* static_context_map,
- const Command *commands, size_t n_commands, MetaBlockSplit* mb) {
+ const Command* commands, size_t n_commands, MetaBlockSplit* mb) {
union {
BlockSplitterLiteral plain;
ContextBlockSplitter ctx;
@@ -441,7 +441,8 @@ static BROTLI_INLINE void BrotliBuildMetaBlockGreedyInternal(
if (num_contexts == 1) {
BlockSplitterAddSymbolLiteral(&lit_blocks.plain, literal);
} else {
- size_t context = Context(prev_byte, prev_byte2, literal_context_mode);
+ size_t context =
+ BROTLI_CONTEXT(prev_byte, prev_byte2, literal_context_lut);
ContextBlockSplitterAddSymbol(&lit_blocks.ctx, m, literal,
static_context_map[context]);
if (BROTLI_IS_OOM(m)) return;
@@ -455,7 +456,7 @@ static BROTLI_INLINE void BrotliBuildMetaBlockGreedyInternal(
prev_byte2 = ringbuffer[(pos - 2) & mask];
prev_byte = ringbuffer[(pos - 1) & mask];
if (cmd.cmd_prefix_ >= 128) {
- BlockSplitterAddSymbolDistance(&dist_blocks, cmd.dist_prefix_);
+ BlockSplitterAddSymbolDistance(&dist_blocks, cmd.dist_prefix_ & 0x3FF);
}
}
}
@@ -482,7 +483,7 @@ void BrotliBuildMetaBlockGreedy(MemoryManager* m,
size_t mask,
uint8_t prev_byte,
uint8_t prev_byte2,
- ContextType literal_context_mode,
+ ContextLut literal_context_lut,
size_t num_contexts,
const uint32_t* static_context_map,
const Command* commands,
@@ -490,19 +491,17 @@ void BrotliBuildMetaBlockGreedy(MemoryManager* m,
MetaBlockSplit* mb) {
if (num_contexts == 1) {
BrotliBuildMetaBlockGreedyInternal(m, ringbuffer, pos, mask, prev_byte,
- prev_byte2, literal_context_mode, 1, NULL, commands, n_commands, mb);
+ prev_byte2, literal_context_lut, 1, NULL, commands, n_commands, mb);
} else {
BrotliBuildMetaBlockGreedyInternal(m, ringbuffer, pos, mask, prev_byte,
- prev_byte2, literal_context_mode, num_contexts, static_context_map,
+ prev_byte2, literal_context_lut, num_contexts, static_context_map,
commands, n_commands, mb);
}
}
-void BrotliOptimizeHistograms(size_t num_direct_distance_codes,
- size_t distance_postfix_bits,
+void BrotliOptimizeHistograms(uint32_t num_distance_codes,
MetaBlockSplit* mb) {
uint8_t good_for_rle[BROTLI_NUM_COMMAND_SYMBOLS];
- size_t num_distance_codes;
size_t i;
for (i = 0; i < mb->literal_histograms_size; ++i) {
BrotliOptimizeHuffmanCountsForRle(256, mb->literal_histograms[i].data_,
@@ -513,9 +512,6 @@ void BrotliOptimizeHistograms(size_t num_direct_distance_codes,
mb->command_histograms[i].data_,
good_for_rle);
}
- num_distance_codes = BROTLI_NUM_DISTANCE_SHORT_CODES +
- num_direct_distance_codes +
- ((2 * BROTLI_MAX_DISTANCE_BITS) << distance_postfix_bits);
for (i = 0; i < mb->distance_histograms_size; ++i) {
BrotliOptimizeHuffmanCountsForRle(num_distance_codes,
mb->distance_histograms[i].data_,
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/metablock.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/metablock.h
index cc523999cda..76a65940a92 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/metablock.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/metablock.h
@@ -10,13 +10,13 @@
#ifndef BROTLI_ENC_METABLOCK_H_
#define BROTLI_ENC_METABLOCK_H_
+#include "../common/context.h"
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./block_splitter.h"
#include "./command.h"
-#include "./context.h"
#include "./histogram.h"
#include "./memory.h"
-#include "./port.h"
#include "./quality.h"
#if defined(__cplusplus) || defined(c_plusplus)
@@ -85,12 +85,11 @@ BROTLI_INTERNAL void BrotliBuildMetaBlock(MemoryManager* m,
is the same for all block types. */
BROTLI_INTERNAL void BrotliBuildMetaBlockGreedy(
MemoryManager* m, const uint8_t* ringbuffer, size_t pos, size_t mask,
- uint8_t prev_byte, uint8_t prev_byte2, ContextType literal_context_mode,
+ uint8_t prev_byte, uint8_t prev_byte2, ContextLut literal_context_lut,
size_t num_contexts, const uint32_t* static_context_map,
const Command* commands, size_t n_commands, MetaBlockSplit* mb);
-BROTLI_INTERNAL void BrotliOptimizeHistograms(size_t num_direct_distance_codes,
- size_t distance_postfix_bits,
+BROTLI_INTERNAL void BrotliOptimizeHistograms(uint32_t num_distance_codes,
MetaBlockSplit* mb);
#if defined(__cplusplus) || defined(c_plusplus)
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/metablock_inc.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/metablock_inc.h
index c8bfb81281c..dcc9d3c4a64 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/metablock_inc.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/metablock_inc.h
@@ -67,7 +67,7 @@ static void FN(InitBlockSplitter)(
split->lengths, split->lengths_alloc_size, max_num_blocks);
if (BROTLI_IS_OOM(m)) return;
self->split_->num_blocks = max_num_blocks;
- assert(*histograms == 0);
+ BROTLI_DCHECK(*histograms == 0);
*histograms_size = max_num_types;
*histograms = BROTLI_ALLOC(m, HistogramType, *histograms_size);
self->histograms_ = *histograms;
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/params.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/params.h
new file mode 100644
index 00000000000..9bcf2361219
--- /dev/null
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/params.h
@@ -0,0 +1,44 @@
+/* Copyright 2017 Google Inc. All Rights Reserved.
+
+ Distributed under MIT license.
+ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
+*/
+
+/* Parameters for the Brotli encoder with chosen quality levels. */
+
+#ifndef BROTLI_ENC_PARAMS_H_
+#define BROTLI_ENC_PARAMS_H_
+
+#include <brotli/encode.h>
+#include "./encoder_dict.h"
+
+typedef struct BrotliHasherParams {
+ int type;
+ int bucket_bits;
+ int block_bits;
+ int hash_len;
+ int num_last_distances_to_check;
+} BrotliHasherParams;
+
+typedef struct BrotliDistanceParams {
+ uint32_t num_direct_distance_codes;
+ uint32_t distance_postfix_bits;
+ uint32_t alphabet_size;
+ size_t max_distance;
+} BrotliDistanceParams;
+
+/* Encoding parameters */
+typedef struct BrotliEncoderParams {
+ BrotliEncoderMode mode;
+ int quality;
+ int lgwin;
+ int lgblock;
+ size_t size_hint;
+ BROTLI_BOOL disable_literal_context_modeling;
+ BROTLI_BOOL large_window;
+ BrotliHasherParams hasher;
+ BrotliDistanceParams dist;
+ BrotliEncoderDictionary dictionary;
+} BrotliEncoderParams;
+
+#endif /* BROTLI_ENC_PARAMS_H_ */
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/prefix.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/prefix.h
index e279ffe7f88..fd359a478d4 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/prefix.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/prefix.h
@@ -11,7 +11,7 @@
#define BROTLI_ENC_PREFIX_H_
#include "../common/constants.h"
-#include <brotli/port.h>
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./fast_log.h"
@@ -39,11 +39,10 @@ static BROTLI_INLINE void PrefixEncodeCopyDistance(size_t distance_code,
size_t prefix = (dist >> bucket) & 1;
size_t offset = (2 + prefix) << bucket;
size_t nbits = bucket - postfix_bits;
- *code = (uint16_t)(
+ *code = (uint16_t)((nbits << 10) |
(BROTLI_NUM_DISTANCE_SHORT_CODES + num_direct_codes +
((2 * (nbits - 1) + prefix) << postfix_bits) + postfix));
- *extra_bits = (uint32_t)(
- (nbits << 24) | ((dist - offset) >> postfix_bits));
+ *extra_bits = (uint32_t)((dist - offset) >> postfix_bits);
}
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/quality.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/quality.h
index 5791470510f..f9b11117381 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/quality.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/quality.h
@@ -10,8 +10,9 @@
#ifndef BROTLI_ENC_QUALITY_H_
#define BROTLI_ENC_QUALITY_H_
+#include "../common/platform.h"
#include <brotli/encode.h>
-#include "./port.h"
+#include "./params.h"
#define FAST_ONE_PASS_COMPRESSION_QUALITY 0
#define FAST_TWO_PASS_COMPRESSION_QUALITY 1
@@ -30,26 +31,7 @@
/* For quality below MIN_QUALITY_FOR_BLOCK_SPLIT there is no block splitting,
so we buffer at most this much literals and commands. */
-#define MAX_NUM_DELAYED_SYMBOLS 0x2fff
-
-typedef struct BrotliHasherParams {
- int type;
- int bucket_bits;
- int block_bits;
- int hash_len;
- int num_last_distances_to_check;
-} BrotliHasherParams;
-
-/* Encoding parameters */
-typedef struct BrotliEncoderParams {
- BrotliEncoderMode mode;
- int quality;
- int lgwin;
- int lgblock;
- size_t size_hint;
- BROTLI_BOOL disable_literal_context_modeling;
- BrotliHasherParams hasher;
-} BrotliEncoderParams;
+#define MAX_NUM_DELAYED_SYMBOLS 0x2FFF
/* Returns hash-table size for quality levels 0 and 1. */
static BROTLI_INLINE size_t MaxHashTableSize(int quality) {
@@ -78,10 +60,15 @@ static BROTLI_INLINE size_t MaxZopfliCandidates(
static BROTLI_INLINE void SanitizeParams(BrotliEncoderParams* params) {
params->quality = BROTLI_MIN(int, BROTLI_MAX_QUALITY,
BROTLI_MAX(int, BROTLI_MIN_QUALITY, params->quality));
+ if (params->quality <= MAX_QUALITY_FOR_STATIC_ENTROPY_CODES) {
+ params->large_window = BROTLI_FALSE;
+ }
if (params->lgwin < BROTLI_MIN_WINDOW_BITS) {
params->lgwin = BROTLI_MIN_WINDOW_BITS;
- } else if (params->lgwin > BROTLI_MAX_WINDOW_BITS) {
- params->lgwin = BROTLI_MAX_WINDOW_BITS;
+ } else {
+ int max_lgwin = params->large_window ? BROTLI_LARGE_MAX_WINDOW_BITS :
+ BROTLI_MAX_WINDOW_BITS;
+ if (params->lgwin > max_lgwin) params->lgwin = max_lgwin;
}
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/ringbuffer.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/ringbuffer.h
index 0e7ef977a44..86079a89d35 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/ringbuffer.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/ringbuffer.h
@@ -11,9 +11,9 @@
#include <string.h> /* memcpy */
+#include "../common/platform.h"
#include <brotli/types.h>
#include "./memory.h"
-#include "./port.h"
#include "./quality.h"
#if defined(__cplusplus) || defined(c_plusplus)
@@ -41,9 +41,9 @@ typedef struct RingBuffer {
uint32_t pos_;
/* The actual ring buffer containing the copy of the last two bytes, the data,
and the copy of the beginning as a tail. */
- uint8_t *data_;
+ uint8_t* data_;
/* The start of the ring-buffer. */
- uint8_t *buffer_;
+ uint8_t* buffer_;
} RingBuffer;
static BROTLI_INLINE void RingBufferInit(RingBuffer* rb) {
@@ -91,7 +91,7 @@ static BROTLI_INLINE void RingBufferInitBuffer(
}
static BROTLI_INLINE void RingBufferWriteTail(
- const uint8_t *bytes, size_t n, RingBuffer* rb) {
+ const uint8_t* bytes, size_t n, RingBuffer* rb) {
const size_t masked_pos = rb->pos_ & rb->mask_;
if (BROTLI_PREDICT_FALSE(masked_pos < rb->tail_size_)) {
/* Just fill the tail buffer with the beginning data. */
@@ -103,7 +103,7 @@ static BROTLI_INLINE void RingBufferWriteTail(
/* Push bytes into the ring buffer. */
static BROTLI_INLINE void RingBufferWrite(
- MemoryManager* m, const uint8_t *bytes, size_t n, RingBuffer* rb) {
+ MemoryManager* m, const uint8_t* bytes, size_t n, RingBuffer* rb) {
if (rb->pos_ == 0 && n < rb->tail_size_) {
/* Special case for the first write: to process the first block, we don't
need to allocate the whole ring-buffer and we don't need the tail
@@ -144,12 +144,16 @@ static BROTLI_INLINE void RingBufferWrite(
n - (rb->size_ - masked_pos));
}
}
- rb->buffer_[-2] = rb->buffer_[rb->size_ - 2];
- rb->buffer_[-1] = rb->buffer_[rb->size_ - 1];
- rb->pos_ += (uint32_t)n;
- if (rb->pos_ > (1u << 30)) {
- /* Wrap, but preserve not-a-first-lap feature. */
- rb->pos_ = (rb->pos_ & ((1u << 30) - 1)) | (1u << 30);
+ {
+ BROTLI_BOOL not_first_lap = (rb->pos_ & (1u << 31)) != 0;
+ uint32_t rb_pos_mask = (1u << 31) - 1;
+ rb->buffer_[-2] = rb->buffer_[rb->size_ - 2];
+ rb->buffer_[-1] = rb->buffer_[rb->size_ - 1];
+ rb->pos_ = (rb->pos_ & rb_pos_mask) + (uint32_t)(n & rb_pos_mask);
+ if (not_first_lap) {
+ /* Wrap, but preserve not-a-first-lap feature. */
+ rb->pos_ |= 1u << 31;
+ }
}
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/static_dict.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/static_dict.c
index b98ee8becdd..758ef80edde 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/static_dict.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/static_dict.c
@@ -7,21 +7,22 @@
#include "./static_dict.h"
#include "../common/dictionary.h"
+#include "../common/platform.h"
+#include "../common/transform.h"
+#include "./encoder_dict.h"
#include "./find_match_length.h"
-#include "./port.h"
-#include "./static_dict_lut.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
-static const uint8_t kUppercaseFirst = 10;
+/* TODO: use BrotliTransforms.cutOffTransforms instead. */
static const uint8_t kOmitLastNTransforms[10] = {
0, 12, 27, 23, 42, 63, 56, 48, 59, 64,
};
-static BROTLI_INLINE uint32_t Hash(const uint8_t *data) {
- uint32_t h = BROTLI_UNALIGNED_LOAD32(data) * kDictHashMul32;
+static BROTLI_INLINE uint32_t Hash(const uint8_t* data) {
+ uint32_t h = BROTLI_UNALIGNED_LOAD32LE(data) * kDictHashMul32;
/* The higher bits contain more mixture from the multiplication,
so we take our results from there. */
return h >> (32 - kDictNumBits);
@@ -79,32 +80,33 @@ static BROTLI_INLINE BROTLI_BOOL IsMatch(const BrotliDictionary* dictionary,
}
BROTLI_BOOL BrotliFindAllStaticDictionaryMatches(
- const BrotliDictionary* dictionary, const uint8_t* data, size_t min_length,
- size_t max_length, uint32_t* matches) {
+ const BrotliEncoderDictionary* dictionary, const uint8_t* data,
+ size_t min_length, size_t max_length, uint32_t* matches) {
BROTLI_BOOL has_found_match = BROTLI_FALSE;
{
- size_t offset = kStaticDictionaryBuckets[Hash(data)];
+ size_t offset = dictionary->buckets[Hash(data)];
BROTLI_BOOL end = !offset;
while (!end) {
- DictWord w = kStaticDictionaryWords[offset++];
+ DictWord w = dictionary->dict_words[offset++];
const size_t l = w.len & 0x1F;
- const size_t n = (size_t)1 << dictionary->size_bits_by_length[l];
+ const size_t n = (size_t)1 << dictionary->words->size_bits_by_length[l];
const size_t id = w.idx;
end = !!(w.len & 0x80);
w.len = (uint8_t)l;
if (w.transform == 0) {
const size_t matchlen =
- DictMatchLength(dictionary, data, id, l, max_length);
+ DictMatchLength(dictionary->words, data, id, l, max_length);
const uint8_t* s;
size_t minlen;
size_t maxlen;
size_t len;
- /* Transform "" + kIdentity + "" */
+ /* Transform "" + BROTLI_TRANSFORM_IDENTITY + "" */
if (matchlen == l) {
AddMatch(id, l, l, matches);
has_found_match = BROTLI_TRUE;
}
- /* Transforms "" + kOmitLast1 + "" and "" + kOmitLast1 + "ing " */
+ /* Transforms "" + BROTLI_TRANSFORM_OMIT_LAST_1 + "" and
+ "" + BROTLI_TRANSFORM_OMIT_LAST_1 + "ing " */
if (matchlen >= l - 1) {
AddMatch(id + 12 * n, l - 1, l, matches);
if (l + 2 < max_length &&
@@ -114,7 +116,7 @@ BROTLI_BOOL BrotliFindAllStaticDictionaryMatches(
}
has_found_match = BROTLI_TRUE;
}
- /* Transform "" + kOmitLastN + "" (N = 2 .. 9) */
+ /* Transform "" + BROTLI_TRANSFORM_OMIT_LAST_# + "" (# = 2 .. 9) */
minlen = min_length;
if (l > 9) minlen = BROTLI_MAX(size_t, minlen, l - 9);
maxlen = BROTLI_MIN(size_t, matchlen, l - 2);
@@ -126,7 +128,7 @@ BROTLI_BOOL BrotliFindAllStaticDictionaryMatches(
continue;
}
s = &data[l];
- /* Transforms "" + kIdentity + <suffix> */
+ /* Transforms "" + BROTLI_TRANSFORM_IDENTITY + <suffix> */
if (s[0] == ' ') {
AddMatch(id + n, l + 1, l, matches);
if (s[1] == 'a') {
@@ -273,12 +275,13 @@ BROTLI_BOOL BrotliFindAllStaticDictionaryMatches(
}
}
} else {
- /* Set is_all_caps=0 for kUppercaseFirst and
- is_all_caps=1 otherwise (kUppercaseAll) transform. */
+ /* Set is_all_caps=0 for BROTLI_TRANSFORM_UPPERCASE_FIRST and
+ is_all_caps=1 otherwise (BROTLI_TRANSFORM_UPPERCASE_ALL)
+ transform. */
const BROTLI_BOOL is_all_caps =
- TO_BROTLI_BOOL(w.transform != kUppercaseFirst);
+ TO_BROTLI_BOOL(w.transform != BROTLI_TRANSFORM_UPPERCASE_FIRST);
const uint8_t* s;
- if (!IsMatch(dictionary, w, data, max_length)) {
+ if (!IsMatch(dictionary->words, w, data, max_length)) {
continue;
}
/* Transform "" + kUppercase{First,All} + "" */
@@ -323,27 +326,29 @@ BROTLI_BOOL BrotliFindAllStaticDictionaryMatches(
/* Transforms with prefixes " " and "." */
if (max_length >= 5 && (data[0] == ' ' || data[0] == '.')) {
BROTLI_BOOL is_space = TO_BROTLI_BOOL(data[0] == ' ');
- size_t offset = kStaticDictionaryBuckets[Hash(&data[1])];
+ size_t offset = dictionary->buckets[Hash(&data[1])];
BROTLI_BOOL end = !offset;
while (!end) {
- DictWord w = kStaticDictionaryWords[offset++];
+ DictWord w = dictionary->dict_words[offset++];
const size_t l = w.len & 0x1F;
- const size_t n = (size_t)1 << dictionary->size_bits_by_length[l];
+ const size_t n = (size_t)1 << dictionary->words->size_bits_by_length[l];
const size_t id = w.idx;
end = !!(w.len & 0x80);
w.len = (uint8_t)l;
if (w.transform == 0) {
const uint8_t* s;
- if (!IsMatch(dictionary, w, &data[1], max_length - 1)) {
+ if (!IsMatch(dictionary->words, w, &data[1], max_length - 1)) {
continue;
}
- /* Transforms " " + kIdentity + "" and "." + kIdentity + "" */
+ /* Transforms " " + BROTLI_TRANSFORM_IDENTITY + "" and
+ "." + BROTLI_TRANSFORM_IDENTITY + "" */
AddMatch(id + (is_space ? 6 : 32) * n, l + 1, l, matches);
has_found_match = BROTLI_TRUE;
if (l + 2 >= max_length) {
continue;
}
- /* Transforms " " + kIdentity + <suffix> and "." + kIdentity + <suffix>
+ /* Transforms " " + BROTLI_TRANSFORM_IDENTITY + <suffix> and
+ "." + BROTLI_TRANSFORM_IDENTITY + <suffix>
*/
s = &data[l + 1];
if (s[0] == ' ') {
@@ -370,12 +375,13 @@ BROTLI_BOOL BrotliFindAllStaticDictionaryMatches(
}
}
} else if (is_space) {
- /* Set is_all_caps=0 for kUppercaseFirst and
- is_all_caps=1 otherwise (kUppercaseAll) transform. */
+ /* Set is_all_caps=0 for BROTLI_TRANSFORM_UPPERCASE_FIRST and
+ is_all_caps=1 otherwise (BROTLI_TRANSFORM_UPPERCASE_ALL)
+ transform. */
const BROTLI_BOOL is_all_caps =
- TO_BROTLI_BOOL(w.transform != kUppercaseFirst);
+ TO_BROTLI_BOOL(w.transform != BROTLI_TRANSFORM_UPPERCASE_FIRST);
const uint8_t* s;
- if (!IsMatch(dictionary, w, &data[1], max_length - 1)) {
+ if (!IsMatch(dictionary->words, w, &data[1], max_length - 1)) {
continue;
}
/* Transforms " " + kUppercase{First,All} + "" */
@@ -411,22 +417,22 @@ BROTLI_BOOL BrotliFindAllStaticDictionaryMatches(
}
}
if (max_length >= 6) {
- /* Transforms with prefixes "e ", "s ", ", " and "\xc2\xa0" */
+ /* Transforms with prefixes "e ", "s ", ", " and "\xC2\xA0" */
if ((data[1] == ' ' &&
(data[0] == 'e' || data[0] == 's' || data[0] == ',')) ||
- (data[0] == 0xc2 && data[1] == 0xa0)) {
- size_t offset = kStaticDictionaryBuckets[Hash(&data[2])];
+ (data[0] == 0xC2 && data[1] == 0xA0)) {
+ size_t offset = dictionary->buckets[Hash(&data[2])];
BROTLI_BOOL end = !offset;
while (!end) {
- DictWord w = kStaticDictionaryWords[offset++];
+ DictWord w = dictionary->dict_words[offset++];
const size_t l = w.len & 0x1F;
- const size_t n = (size_t)1 << dictionary->size_bits_by_length[l];
+ const size_t n = (size_t)1 << dictionary->words->size_bits_by_length[l];
const size_t id = w.idx;
end = !!(w.len & 0x80);
w.len = (uint8_t)l;
if (w.transform == 0 &&
- IsMatch(dictionary, w, &data[2], max_length - 2)) {
- if (data[0] == 0xc2) {
+ IsMatch(dictionary->words, w, &data[2], max_length - 2)) {
+ if (data[0] == 0xC2) {
AddMatch(id + 102 * n, l + 2, l, matches);
has_found_match = BROTLI_TRUE;
} else if (l + 2 < max_length && data[l + 2] == ' ') {
@@ -444,17 +450,17 @@ BROTLI_BOOL BrotliFindAllStaticDictionaryMatches(
data[3] == 'e' && data[4] == ' ') ||
(data[0] == '.' && data[1] == 'c' && data[2] == 'o' &&
data[3] == 'm' && data[4] == '/')) {
- size_t offset = kStaticDictionaryBuckets[Hash(&data[5])];
+ size_t offset = dictionary->buckets[Hash(&data[5])];
BROTLI_BOOL end = !offset;
while (!end) {
- DictWord w = kStaticDictionaryWords[offset++];
+ DictWord w = dictionary->dict_words[offset++];
const size_t l = w.len & 0x1F;
- const size_t n = (size_t)1 << dictionary->size_bits_by_length[l];
+ const size_t n = (size_t)1 << dictionary->words->size_bits_by_length[l];
const size_t id = w.idx;
end = !!(w.len & 0x80);
w.len = (uint8_t)l;
if (w.transform == 0 &&
- IsMatch(dictionary, w, &data[5], max_length - 5)) {
+ IsMatch(dictionary->words, w, &data[5], max_length - 5)) {
AddMatch(id + (data[0] == ' ' ? 41 : 72) * n, l + 5, l, matches);
has_found_match = BROTLI_TRUE;
if (l + 5 < max_length) {
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/static_dict.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/static_dict.h
index fb74b13368c..6b5d4eb0c98 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/static_dict.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/static_dict.h
@@ -10,15 +10,16 @@
#define BROTLI_ENC_STATIC_DICT_H_
#include "../common/dictionary.h"
+#include "../common/platform.h"
#include <brotli/types.h>
-#include "./port.h"
+#include "./encoder_dict.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#define BROTLI_MAX_STATIC_DICTIONARY_MATCH_LEN 37
-static const uint32_t kInvalidMatch = 0xfffffff;
+static const uint32_t kInvalidMatch = 0xFFFFFFF;
/* Matches data against static dictionary words, and for each length l,
for which a match is found, updates matches[l] to be the minimum possible
@@ -28,7 +29,7 @@ static const uint32_t kInvalidMatch = 0xfffffff;
matches array is at least BROTLI_MAX_STATIC_DICTIONARY_MATCH_LEN + 1 long
all elements are initialized to kInvalidMatch */
BROTLI_INTERNAL BROTLI_BOOL BrotliFindAllStaticDictionaryMatches(
- const BrotliDictionary* dictionary,
+ const BrotliEncoderDictionary* dictionary,
const uint8_t* data, size_t min_length, size_t max_length,
uint32_t* matches);
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/static_dict_lut.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/static_dict_lut.h
index ba94f76b28c..e299cda6d82 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/static_dict_lut.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/static_dict_lut.h
@@ -23,7 +23,7 @@ typedef struct DictWord {
} DictWord;
static const int kDictNumBits = 15;
-static const uint32_t kDictHashMul32 = 0x1e35a7bd;
+static const uint32_t kDictHashMul32 = 0x1E35A7BD;
static const uint16_t kStaticDictionaryBuckets[32768] = {
1,0,0,0,0,0,0,0,0,3,6,0,0,0,0,0,20,0,0,0,21,0,22,0,0,0,0,0,0,0,0,23,0,0,25,0,29,
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/utf8_util.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/utf8_util.c
index a334927f369..04a7805161b 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/utf8_util.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/utf8_util.c
@@ -25,37 +25,37 @@ static size_t BrotliParseAsUTF8(
}
/* 2-byte UTF8 */
if (size > 1u &&
- (input[0] & 0xe0) == 0xc0 &&
- (input[1] & 0xc0) == 0x80) {
- *symbol = (((input[0] & 0x1f) << 6) |
- (input[1] & 0x3f));
- if (*symbol > 0x7f) {
+ (input[0] & 0xE0) == 0xC0 &&
+ (input[1] & 0xC0) == 0x80) {
+ *symbol = (((input[0] & 0x1F) << 6) |
+ (input[1] & 0x3F));
+ if (*symbol > 0x7F) {
return 2;
}
}
/* 3-byte UFT8 */
if (size > 2u &&
- (input[0] & 0xf0) == 0xe0 &&
- (input[1] & 0xc0) == 0x80 &&
- (input[2] & 0xc0) == 0x80) {
- *symbol = (((input[0] & 0x0f) << 12) |
- ((input[1] & 0x3f) << 6) |
- (input[2] & 0x3f));
- if (*symbol > 0x7ff) {
+ (input[0] & 0xF0) == 0xE0 &&
+ (input[1] & 0xC0) == 0x80 &&
+ (input[2] & 0xC0) == 0x80) {
+ *symbol = (((input[0] & 0x0F) << 12) |
+ ((input[1] & 0x3F) << 6) |
+ (input[2] & 0x3F));
+ if (*symbol > 0x7FF) {
return 3;
}
}
/* 4-byte UFT8 */
if (size > 3u &&
- (input[0] & 0xf8) == 0xf0 &&
- (input[1] & 0xc0) == 0x80 &&
- (input[2] & 0xc0) == 0x80 &&
- (input[3] & 0xc0) == 0x80) {
+ (input[0] & 0xF8) == 0xF0 &&
+ (input[1] & 0xC0) == 0x80 &&
+ (input[2] & 0xC0) == 0x80 &&
+ (input[3] & 0xC0) == 0x80) {
*symbol = (((input[0] & 0x07) << 18) |
- ((input[1] & 0x3f) << 12) |
- ((input[2] & 0x3f) << 6) |
- (input[3] & 0x3f));
- if (*symbol > 0xffff && *symbol <= 0x10ffff) {
+ ((input[1] & 0x3F) << 12) |
+ ((input[2] & 0x3F) << 6) |
+ (input[3] & 0x3F));
+ if (*symbol > 0xFFFF && *symbol <= 0x10FFFF) {
return 4;
}
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/utf8_util.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/utf8_util.h
index 2ede131ed30..8fda80c2203 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/utf8_util.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/utf8_util.h
@@ -9,8 +9,8 @@
#ifndef BROTLI_ENC_UTF8_UTIL_H_
#define BROTLI_ENC_UTF8_UTIL_H_
+#include "../common/platform.h"
#include <brotli/types.h>
-#include "./port.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/write_bits.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/write_bits.h
index 83fdddc26f6..7733d925b1c 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/write_bits.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/enc/write_bits.h
@@ -9,11 +9,8 @@
#ifndef BROTLI_ENC_WRITE_BITS_H_
#define BROTLI_ENC_WRITE_BITS_H_
-#include <assert.h>
-#include <stdio.h> /* printf */
-
+#include "../common/platform.h"
#include <brotli/types.h>
-#include "./port.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
@@ -38,27 +35,27 @@ extern "C" {
and locate the rest in BYTE+1, BYTE+2, etc. */
static BROTLI_INLINE void BrotliWriteBits(size_t n_bits,
uint64_t bits,
- size_t * BROTLI_RESTRICT pos,
- uint8_t * BROTLI_RESTRICT array) {
+ size_t* BROTLI_RESTRICT pos,
+ uint8_t* BROTLI_RESTRICT array) {
#ifdef BROTLI_LITTLE_ENDIAN
/* This branch of the code can write up to 56 bits at a time,
7 bits are lost by being perhaps already in *p and at least
1 bit is needed to initialize the bit-stream ahead (i.e. if 7
bits are in *p and we write 57 bits, then the next write will
access a byte that was never initialized). */
- uint8_t *p = &array[*pos >> 3];
+ uint8_t* p = &array[*pos >> 3];
uint64_t v = *p;
-#ifdef BIT_WRITER_DEBUG
- printf("WriteBits %2d 0x%016llx %10d\n", n_bits, bits, *pos);
-#endif
- assert((bits >> n_bits) == 0);
- assert(n_bits <= 56);
+ BROTLI_LOG(("WriteBits %2d 0x%08x%08x %10d\n", (int)n_bits,
+ (uint32_t)(bits >> 32), (uint32_t)(bits & 0xFFFFFFFF),
+ (int)*pos));
+ BROTLI_DCHECK((bits >> n_bits) == 0);
+ BROTLI_DCHECK(n_bits <= 56);
v |= bits << (*pos & 7);
BROTLI_UNALIGNED_STORE64LE(p, v); /* Set some bits. */
*pos += n_bits;
#else
- /* implicit & 0xff is assumed for uint8_t arithmetics */
- uint8_t *array_pos = &array[*pos >> 3];
+ /* implicit & 0xFF is assumed for uint8_t arithmetics */
+ uint8_t* array_pos = &array[*pos >> 3];
const size_t bits_reserved_in_first_byte = (*pos & 7);
size_t bits_left_to_write;
bits <<= bits_reserved_in_first_byte;
@@ -75,11 +72,9 @@ static BROTLI_INLINE void BrotliWriteBits(size_t n_bits,
}
static BROTLI_INLINE void BrotliWriteBitsPrepareStorage(
- size_t pos, uint8_t *array) {
-#ifdef BIT_WRITER_DEBUG
- printf("WriteBitsPrepareStorage %10d\n", pos);
-#endif
- assert((pos & 7) == 0);
+ size_t pos, uint8_t* array) {
+ BROTLI_LOG(("WriteBitsPrepareStorage %10d\n", (int)pos));
+ BROTLI_DCHECK((pos & 7) == 0);
array[pos >> 3] = 0;
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/include/brotli/decode.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/include/brotli/decode.h
index ac4fe905a2b..61a4326c1ac 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/include/brotli/decode.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/include/brotli/decode.h
@@ -34,11 +34,11 @@ typedef struct BrotliDecoderStateStruct BrotliDecoderState;
typedef enum {
/** Decoding error, e.g. corrupted input or memory allocation problem. */
BROTLI_DECODER_RESULT_ERROR = 0,
- /** Decoding successfully completed */
+ /** Decoding successfully completed. */
BROTLI_DECODER_RESULT_SUCCESS = 1,
- /** Partially done; should be called again with more input */
+ /** Partially done; should be called again with more input. */
BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT = 2,
- /** Partially done; should be called again with more output */
+ /** Partially done; should be called again with more output. */
BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT = 3
} BrotliDecoderResult;
@@ -83,8 +83,9 @@ typedef enum {
BROTLI_ERROR_CODE(_ERROR_FORMAT_, WINDOW_BITS, -13) SEPARATOR \
BROTLI_ERROR_CODE(_ERROR_FORMAT_, PADDING_1, -14) SEPARATOR \
BROTLI_ERROR_CODE(_ERROR_FORMAT_, PADDING_2, -15) SEPARATOR \
+ BROTLI_ERROR_CODE(_ERROR_FORMAT_, DISTANCE, -16) SEPARATOR \
\
- /* -16..-17 codes are reserved */ \
+ /* -17 code is reserved */ \
\
BROTLI_ERROR_CODE(_ERROR_, COMPOUND_DICTIONARY, -18) SEPARATOR \
BROTLI_ERROR_CODE(_ERROR_, DICTIONARY_NOT_SET, -19) SEPARATOR \
@@ -135,7 +136,11 @@ typedef enum BrotliDecoderParameter {
* Ring buffer is allocated according to window size, despite the real size of
* the content.
*/
- BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION = 0
+ BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION = 0,
+ /**
+ * Flag that determines if "Large Window Brotli" is used.
+ */
+ BROTLI_DECODER_PARAM_LARGE_WINDOW = 1
} BrotliDecoderParameter;
/**
@@ -160,7 +165,7 @@ BROTLI_DEC_API BROTLI_BOOL BrotliDecoderSetParameter(
* @p alloc_func and @p free_func @b MUST be both zero or both non-zero. In the
* case they are both zero, default memory allocators are used. @p opaque is
* passed to @p alloc_func and @p free_func when they are called. @p free_func
- * should return without doing anything when asked to free a NULL pointer.
+ * has to return without doing anything when asked to free a NULL pointer.
*
* @param alloc_func custom memory allocation function
* @param free_func custom memory free function
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/include/brotli/encode.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/include/brotli/encode.h
index 8849de2fbd6..0b5c8c7d2f5 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/include/brotli/encode.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/include/brotli/encode.h
@@ -27,6 +27,11 @@ extern "C" {
* @note equal to @c BROTLI_MAX_DISTANCE_BITS constant.
*/
#define BROTLI_MAX_WINDOW_BITS 24
+/**
+ * Maximal value for ::BROTLI_PARAM_LGWIN parameter
+ * in "Large Window Brotli" (32-bit).
+ */
+#define BROTLI_LARGE_MAX_WINDOW_BITS 30
/** Minimal value for ::BROTLI_PARAM_LGBLOCK parameter. */
#define BROTLI_MIN_INPUT_BLOCK_BITS 16
/** Maximal value for ::BROTLI_PARAM_LGBLOCK parameter. */
@@ -176,7 +181,11 @@ typedef enum BrotliEncoderParameter {
*
* The default value is 0, which means that the total input size is unknown.
*/
- BROTLI_PARAM_SIZE_HINT = 5
+ BROTLI_PARAM_SIZE_HINT = 5,
+ /**
+ * Flag that determines if "Large Window Brotli" is used.
+ */
+ BROTLI_PARAM_LARGE_WINDOW = 6
} BrotliEncoderParameter;
/**
@@ -210,7 +219,7 @@ BROTLI_ENC_API BROTLI_BOOL BrotliEncoderSetParameter(
* @p alloc_func and @p free_func @b MUST be both zero or both non-zero. In the
* case they are both zero, default memory allocators are used. @p opaque is
* passed to @p alloc_func and @p free_func when they are called. @p free_func
- * should return without doing anything when asked to free a NULL pointer.
+ * has to return without doing anything when asked to free a NULL pointer.
*
* @param alloc_func custom memory allocation function
* @param free_func custom memory free function
@@ -231,10 +240,9 @@ BROTLI_ENC_API void BrotliEncoderDestroyInstance(BrotliEncoderState* state);
/**
* Calculates the output size bound for the given @p input_size.
*
- * @warning Result is not applicable to ::BrotliEncoderCompressStream output,
- * because every "flush" adds extra overhead bytes, and some encoder
- * settings (e.g. quality @c 0 and @c 1) might imply a "soft flush"
- * after every chunk of input.
+ * @warning Result is only valid if quality is at least @c 2 and, in
+ * case ::BrotliEncoderCompressStream was used, no flushes
+ * (::BROTLI_OPERATION_FLUSH) were performed.
*
* @param input_size size of projected input
* @returns @c 0 if result does not fit @c size_t
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/include/brotli/port.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/include/brotli/port.h
index 16c31d426d7..88cdbf459f4 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/include/brotli/port.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/include/brotli/port.h
@@ -4,7 +4,12 @@
See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
*/
-/* Macros for compiler / platform specific features and build options. */
+/* Macros for compiler / platform specific features and build options.
+
+ Build options are:
+ * BROTLI_BUILD_MODERN_COMPILER forces to use modern compilers built-ins,
+ features and attributes
+ */
#ifndef BROTLI_COMMON_PORT_H_
#define BROTLI_COMMON_PORT_H_
@@ -42,51 +47,6 @@
#define BROTLI_MODERN_COMPILER 0
#endif
-/* Define "BROTLI_PREDICT_TRUE" and "BROTLI_PREDICT_FALSE" macros for capable
- compilers.
-
-To apply compiler hint, enclose the branching condition into macros, like this:
-
- if (BROTLI_PREDICT_TRUE(zero == 0)) {
- // main execution path
- } else {
- // compiler should place this code outside of main execution path
- }
-
-OR:
-
- if (BROTLI_PREDICT_FALSE(something_rare_or_unexpected_happens)) {
- // compiler should place this code outside of main execution path
- }
-
-*/
-#if BROTLI_MODERN_COMPILER || __has_builtin(__builtin_expect)
-#define BROTLI_PREDICT_TRUE(x) (__builtin_expect(!!(x), 1))
-#define BROTLI_PREDICT_FALSE(x) (__builtin_expect(x, 0))
-#else
-#define BROTLI_PREDICT_FALSE(x) (x)
-#define BROTLI_PREDICT_TRUE(x) (x)
-#endif
-
-#if BROTLI_MODERN_COMPILER || __has_attribute(always_inline)
-#define BROTLI_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((always_inline))
-#else
-#define BROTLI_ATTRIBUTE_ALWAYS_INLINE
-#endif
-
-#if defined(_WIN32) || defined(__CYGWIN__)
-#define BROTLI_ATTRIBUTE_VISIBILITY_HIDDEN
-#elif BROTLI_MODERN_COMPILER || __has_attribute(visibility)
-#define BROTLI_ATTRIBUTE_VISIBILITY_HIDDEN \
- __attribute__ ((visibility ("hidden")))
-#else
-#define BROTLI_ATTRIBUTE_VISIBILITY_HIDDEN
-#endif
-
-#ifndef BROTLI_INTERNAL
-#define BROTLI_INTERNAL BROTLI_ATTRIBUTE_VISIBILITY_HIDDEN
-#endif
-
#if defined(BROTLI_SHARED_COMPILATION) && defined(_WIN32)
#if defined(BROTLICOMMON_SHARED_COMPILATION)
#define BROTLI_COMMON_API __declspec(dllexport)
@@ -109,38 +69,10 @@ OR:
#define BROTLI_ENC_API
#endif
-#ifndef _MSC_VER
-#if defined(__cplusplus) || !defined(__STRICT_ANSI__) || \
- (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L)
-#define BROTLI_INLINE inline BROTLI_ATTRIBUTE_ALWAYS_INLINE
-#else
-#define BROTLI_INLINE
-#endif
-#else /* _MSC_VER */
-#define BROTLI_INLINE __forceinline
-#endif /* _MSC_VER */
-
-#if !defined(__cplusplus) && !defined(c_plusplus) && \
- (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L)
-#define BROTLI_RESTRICT restrict
-#elif BROTLI_GCC_VERSION > 295 || defined(__llvm__)
-#define BROTLI_RESTRICT __restrict
-#else
-#define BROTLI_RESTRICT
-#endif
-
-#if BROTLI_MODERN_COMPILER || __has_attribute(noinline)
-#define BROTLI_NOINLINE __attribute__((noinline))
-#else
-#define BROTLI_NOINLINE
-#endif
-
#if BROTLI_MODERN_COMPILER || __has_attribute(deprecated)
#define BROTLI_DEPRECATED __attribute__((deprecated))
#else
#define BROTLI_DEPRECATED
#endif
-#define BROTLI_UNUSED(X) (void)(X)
-
#endif /* BROTLI_COMMON_PORT_H_ */
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/CLCommandLine.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/CLCommandLine.cpp
index 1127fa0531b..851737628fb 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/src/CLCommandLine.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/CLCommandLine.cpp
@@ -94,6 +94,8 @@ static void type_error (const Option &option, bool shortname) {
void CommandLine::parseShortOption (istringstream &iss, int argc, char **argv, int &argn) {
bool combined = false;
do {
+ if (iss.peek() < 0)
+ throw CommandLineException("missing character after '-'");
char shortname = static_cast<char>(iss.get());
if (!isalnum(shortname))
throw CommandLineException(string("syntax error: -")+shortname);
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/EmSpecialHandler.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/EmSpecialHandler.hpp
index 5a86b1322ce..36990ce17ba 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/src/EmSpecialHandler.hpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/EmSpecialHandler.hpp
@@ -21,16 +21,15 @@
#ifndef EMSPECIALHANDLER_HPP
#define EMSPECIALHANDLER_HPP
-#include <list>
#include <unordered_map>
+#include <vector>
#include "Pair.hpp"
#include "SpecialHandler.hpp"
class InputReader;
class SpecialActions;
-class EmSpecialHandler : public SpecialHandler, public DVIEndPageListener
-{
+class EmSpecialHandler : public SpecialHandler, public DVIEndPageListener {
struct Line {
Line (int pp1, int pp2, char cc1, char cc2, double w) : p1(pp1), p2(pp2), c1(cc1), c2(cc2), width(w) {}
int p1, p2; ///< point numbers of line ends
@@ -55,7 +54,7 @@ class EmSpecialHandler : public SpecialHandler, public DVIEndPageListener
private:
std::unordered_map<int, DPair> _points; ///< points defined by special em:point
- std::list<Line> _lines; ///< list of lines with undefined end points
+ std::vector<Line> _lines; ///< list of lines with undefined end points
double _linewidth; ///< global line width
DPair _pos; ///< current position of "graphic cursor"
};
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/MiKTeXCom.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/MiKTeXCom.cpp
index bce560c1dee..d22cc45f690 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/src/MiKTeXCom.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/MiKTeXCom.cpp
@@ -18,6 +18,7 @@
** along with this program; if not, see <http://www.gnu.org/licenses/>. **
*************************************************************************/
+#include <stdio.h>
#include <comdef.h>
#include <string>
#include "MessageException.hpp"
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/RangeMap.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/RangeMap.cpp
index c96aa1029bf..ea5f8d64a6e 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/src/RangeMap.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/RangeMap.cpp
@@ -125,11 +125,11 @@ void RangeMap::addRange (uint32_t cmin, uint32_t cmax, uint32_t vmin) {
void RangeMap::adaptNeighbors (Ranges::iterator it) {
if (it != _ranges.end()) {
// adapt left neighbor
- Ranges::iterator lit = it-1; // points to left neighbor
- if (it != _ranges.begin() && it->min() <= lit->max()) {
+ if (it != _ranges.begin() && it->min() <= (it-1)->max()) {
+ Ranges::iterator lit = it-1; // points to left neighbor
bool left_neighbor_valid = (it->min() > 0 && it->min()-1 >= lit->min());
- if (left_neighbor_valid) // is adapted left neighbor valid?
- lit->max(it->min()-1); // => assign new max value
+ if (left_neighbor_valid) // is adapted left neighbor valid?
+ lit->max(it->min()-1); // => assign new max value
if (!left_neighbor_valid || it->join(*lit))
it = _ranges.erase(lit);
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/XMLDocument.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/XMLDocument.hpp
index 90e1cd23cfb..c184336424c 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/src/XMLDocument.hpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/XMLDocument.hpp
@@ -22,6 +22,7 @@
#define XMLDOCUMENT_HPP
#include <memory>
+#include <vector>
#include "XMLNode.hpp"
class XMLDocument {
@@ -36,7 +37,7 @@ class XMLDocument {
std::ostream& write (std::ostream &os) const;
private:
- std::list<std::unique_ptr<XMLNode>> _nodes;
+ std::vector<std::unique_ptr<XMLNode>> _nodes;
std::unique_ptr<XMLElementNode> _rootElement;
};
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/XMLNode.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/XMLNode.cpp
index bfdbbe476ea..76b489e4d26 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/src/XMLNode.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/XMLNode.cpp
@@ -18,6 +18,7 @@
** along with this program; if not, see <http://www.gnu.org/licenses/>. **
*************************************************************************/
+#include <algorithm>
#include <map>
#include <list>
#include <sstream>
@@ -148,9 +149,11 @@ bool XMLElementNode::insertAfter (unique_ptr<XMLNode> &&child, XMLNode *sibling)
/** Removes a given child from the element. */
void XMLElementNode::remove (const XMLNode *child) {
- _children.remove_if([=](const unique_ptr<XMLNode> &ptr) {
+ auto it = find_if(_children.begin(), _children.end(), [=](const unique_ptr<XMLNode> &ptr) {
return ptr.get() == child;
});
+ if (it != _children.end())
+ _children.erase(it);
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/XMLNode.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/XMLNode.hpp
index faaab0b5322..b02bf1bb571 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/src/XMLNode.hpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/XMLNode.hpp
@@ -21,7 +21,7 @@
#ifndef XMLNODE_HPP
#define XMLNODE_HPP
-#include <list>
+#include <deque>
#include <map>
#include <memory>
#include <ostream>
@@ -42,7 +42,7 @@ class XMLNode {
class XMLElementNode : public XMLNode {
public:
using AttribMap = std::map<std::string,std::string>;
- using ChildList = std::list<std::unique_ptr<XMLNode>>;
+ using ChildList = std::deque<std::unique_ptr<XMLNode>>;
public:
XMLElementNode (const std::string &name);
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/dvisvgm.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/dvisvgm.cpp
index 89f698d3f37..f333cbbdb90 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/src/dvisvgm.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/dvisvgm.cpp
@@ -19,12 +19,13 @@
*************************************************************************/
#include <config.h>
+#include <algorithm>
#include <clipper.hpp>
#include <fstream>
#include <iostream>
-#include <list>
#include <potracelib.h>
#include <sstream>
+#include <vector>
#include <xxhash.h>
#include <zlib.h>
#include "CommandLine.hpp"
@@ -215,7 +216,7 @@ class VersionInfo {
/** Writes the version information to the given output stream. */
void write (ostream &os) {
using Entry = pair<string,string>;
- _versionPairs.sort([](const Entry &e1, const Entry &e2) {
+ sort(_versionPairs.begin(), _versionPairs.end(), [](const Entry &e1, const Entry &e2) {
return util::tolower(e1.first) < util::tolower(e2.first);
});
size_t maxNameLength=0;
@@ -234,7 +235,7 @@ class VersionInfo {
}
private:
- list<pair<string,string>> _versionPairs;
+ vector<pair<string,string>> _versionPairs;
};
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/options.xml b/Build/source/texk/dvisvgm/dvisvgm-src/src/options.xml
index 7613f44fb30..39659844307 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/src/options.xml
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/options.xml
@@ -24,7 +24,7 @@
<program>
<usage>[options] dvifile</usage>
<usage>-E [options] epsfile</usage>
- <description>This program converts DVI files, as created by TeX/LaTeX, to\nthe XML-based scalable vector graphics format SVG.</description>
+ <description>This program converts DVI files, as created by TeX/LaTeX, to\nthe XML-based scalable vector graphics format SVG.</description>
<copyright>Copyright (C) 2005-2018 Martin Gieseking &lt;martin.gieseking@uos.de></copyright>
</program>
<options>
@@ -134,13 +134,13 @@
<arg type="string" name="dir" optional="yes"/>
<description>set/print path of cache directory</description>
</option>
- <option long="exact" short="e">
- <description>compute exact glyph boxes</description>
- </option>
- <option long="keep">
- <description>keep temporary files</description>
- </option>
- <option long="libgs" if="!defined(HAVE_LIBGS) &amp;&amp; !defined(DISABLE_GS)">
+ <option long="exact" short="e">
+ <description>compute exact glyph boxes</description>
+ </option>
+ <option long="keep">
+ <description>keep temporary files</description>
+ </option>
+ <option long="libgs" if="!defined(HAVE_LIBGS) &amp;&amp; !defined(DISABLE_GS)">
<arg name="filename" type="string"/>
<description>set name of Ghostscript shared library</description>
</option>
@@ -156,7 +156,7 @@
<description>don't process [selected] specials</description>
</option>
<option long="trace-all" short="a">
- <arg name="retrace" type="bool" optional="yes" default="false"/>
+ <arg name="retrace" type="bool" optional="yes" default="false"/>
<description>trace all glyphs of bitmap fonts</description>
</option>
</section>
@@ -172,7 +172,7 @@
<description>print supported special sets and exit</description>
</option>
<option long="progress" short="P">
- <arg name="delay" type="double" optional="yes" default="0.5"/>
+ <arg name="delay" type="double" optional="yes" default="0.5"/>
<description>enable progress indicator</description>
</option>
<option long="verbosity" short="v">
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/version.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/version.hpp
index 56a02cfc718..38a8e51c3f9 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/src/version.hpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/version.hpp
@@ -22,7 +22,7 @@
#define VERSION_HPP
constexpr const char *PROGRAM_NAME = "dvisvgm";
-constexpr const char *PROGRAM_VERSION = "2.3.3";
+constexpr const char *PROGRAM_VERSION = "2.3.4";
#endif
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/tests/data/Makefile.am b/Build/source/texk/dvisvgm/dvisvgm-src/tests/data/Makefile.am
index 1c63b79d3dc..83e50e63015 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/tests/data/Makefile.am
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/tests/data/Makefile.am
@@ -6,6 +6,7 @@
EXTRA_DIST = \
cidjmgr0-h.tfm \
cmr10.600gf \
+ cmr10.pfb \
cmr10.tfm \
dvipdfm_test.map \
dvips_test.map \
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/tests/data/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/tests/data/Makefile.in
index 018be0f9950..de2af54091a 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/tests/data/Makefile.in
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/tests/data/Makefile.in
@@ -275,6 +275,7 @@ top_srcdir = @top_srcdir@
EXTRA_DIST = \
cidjmgr0-h.tfm \
cmr10.600gf \
+ cmr10.pfb \
cmr10.tfm \
dvipdfm_test.map \
dvips_test.map \
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/tests/data/cmr10.pfb b/Build/source/texk/dvisvgm/dvisvgm-src/tests/data/cmr10.pfb
new file mode 100644
index 00000000000..fa8c833d374
--- /dev/null
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/tests/data/cmr10.pfb
Binary files differ
diff --git a/Build/source/texk/dvisvgm/version.ac b/Build/source/texk/dvisvgm/version.ac
index 1544b8d542e..8775e274216 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], [2.3.3])
+m4_define([dvisvgm_version], [2.3.4])