diff options
Diffstat (limited to 'dviware')
90 files changed, 1307 insertions, 11504 deletions
diff --git a/dviware/dvisvgm/ChangeLog b/dviware/dvisvgm/ChangeLog deleted file mode 100644 index 2533c9a1e0..0000000000 --- a/dviware/dvisvgm/ChangeLog +++ /dev/null @@ -1,11166 +0,0 @@ -2022-08-11 Martin Gieseking <martin.gieseking@uos.de> - - * src/FontWriter.cpp, src/HashFunction.hpp, src/HyperlinkManager.hpp, - src/Opacity.hpp, src/SVGElement.hpp, src/TFM.cpp, - src/optimizer/Makefile.am, src/utility.hpp: - fixed indentations - -2022-08-09 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, configure.ac, doc/dvisvgm.1, src/Doxyfile, - src/version.hpp: - set version to 2.14 - - * configure.ac: - removed redundant macros from configure.ac - -2022-07-28 Martin Gieseking <martin.gieseking@uos.de> - - * src/CLCommandLine.cpp, src/CMap.cpp, src/DVIReader.cpp, - src/DvisvgmSpecialHandler.cpp, src/FileFinder.cpp, src/FilePath.cpp, - src/Font.cpp, src/FontMap.cpp, src/HyperlinkManager.cpp, src/MapLine.cpp, - src/MetafontWrapper.cpp, src/PDFParser.cpp, src/PageSize.cpp, - src/PapersizeSpecialHandler.cpp, src/PsSpecialHandler.cpp, - src/SVGOutput.cpp, src/SVGTree.cpp, src/Unicode.cpp, src/XMLNode.cpp, - src/XMLParser.cpp, src/XMLString.cpp, src/dvisvgm.cpp, src/utility.cpp: - adapted types of variables used for string positions - - * src/DvisvgmSpecialHandler.cpp: - reordered if/else statement - - * src/MiKTeXCom.cpp: - replaced C-style cast - -2022-07-22 Martin Gieseking <martin.gieseking@uos.de> - - * src/GraphicsPathParser.hpp: - updated year in copyright statement - - * src/XMLParser.cpp: - handle GraphicsPathParserExceptions in XMLParser - - * src/GraphicsPathParser.hpp: - improved position information of GraphicsPathParserException - -2022-07-18 Martin Gieseking <martin.gieseking@uos.de> - - * libs/woff2/include/woff2/encode.h, libs/woff2/include/woff2/output.h, - libs/woff2/src/font.cc, libs/woff2/src/glyph.cc, libs/woff2/src/glyph.h, - libs/woff2/src/normalize.cc, libs/woff2/src/transform.cc, - libs/woff2/src/woff2_enc.cc, libs/woff2/src/woff2_out.cc: - applied latest upstream changes to woff2 - library -https://github.com/google/woff2/commit/62ae7a4c1ec7fb38adbf1294924db5924489889a - - * libs/woff2/src/normalize.cc, libs/woff2/src/woff2_enc.cc: - woff2: removed unused variables to prevent compiler warnings - - * libs/woff2/src/font.cc, libs/woff2/src/normalize.cc: - woff2: adapted variable types to prevent warnings - - * src/dvisvgm.cpp: - added prefix to XML error messages - -2022-07-17 Martin Gieseking <martin.gieseking@uos.de> - - * src/MiKTeXCom.cpp: - updated output of MiKTeX version number - - * src/PDFParser.cpp: - prevent warning about [[nodiscard]] return value - -2022-07-11 Martin Gieseking <martin.gieseking@uos.de> - - * src/GraphicsPathParser.hpp: - minor code tweaks in GraphicsPathParser - - * src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.hpp, - src/Makefile.am, src/XMLParser.cpp, src/XMLParser.hpp, - tests/DvisvgmSpecialTest.cpp: - moved XMLParser from DvisvgmSpecialHandler to separate class - - * src/XMLParser.cpp: - parse and reformat definitions of raw graphics paths - -2022-06-30 Martin Gieseking <martin.gieseking@uos.de> - - * src/XMLNode.cpp, src/XMLNode.hpp, src/optimizer/GroupCollapser.cpp: - optimizer: improved removal of redundant group elements - - * src/XMLNode.cpp, src/XMLNode.hpp, src/optimizer/AttributeExtractor.cpp, - src/optimizer/AttributeExtractor.hpp, src/optimizer/GroupCollapser.cpp, - src/optimizer/TextSimplifier.cpp: - moved inheritability check of attributes to Attribute struct - -2022-06-29 Martin Gieseking <martin.gieseking@uos.de> - - * src/FontWriter.cpp: - ensure proper representation of empty glyphs in SFD files - -2022-06-25 Martin Gieseking <martin.gieseking@uos.de> - - * src/FileFinder.cpp, src/FontManager.cpp: - ignore letter case when looking up file suffixes - - * src/FileFinder.cpp: - MiKTeX: handle lookup of TrueType files similar to kpathsea -Look for - .ttf, .ttc, and .dfont suffixes - - * src/FontManager.cpp: - XFontDef: lookup font formats rather than specific suffixes - -2022-06-24 Martin Gieseking <martin.gieseking@uos.de> - - * src/FontManager.cpp: - XFontDef: added support for font filenames without suffix - -2022-05-18 Martin Gieseking <martin.gieseking@uos.de> - - * README.md: - Removed paragraph about Ghostscript's new PDF interpreter - -because the - old interpreter is still available in recent GS releases and can be - reactivated by dvisvgm. - -2022-04-20 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, configure.ac, doc/dvisvgm.1, src/Doxyfile, - src/version.hpp: - set version to 2.13.4 - - * NEWS: - updated NEWS - -2022-04-18 Martin Gieseking <martin.gieseking@uos.de> - - * src/PSInterpreter.cpp: - updated URL to GS documentation of -dNEWPDF - -2022-04-01 Martin Gieseking <martin.gieseking@uos.de> - - * m4/ax_cxx_compile_stdcxx.m4: - updated ax_cxx_compile_stdcxx.m4 to version 14 - -2022-03-31 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml: - updated FreeType to version 2.12 - -2022-03-30 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml: - updated zlib to version 1.2.12 - - * src/PSInterpreter.cpp: - disable new PDF interpreter when using GS >= 9.56.0 - -2022-03-14 Martin Gieseking <martin.gieseking@uos.de> - - * src/ImageToSVG.cpp: - reset bounding box before converting next PDF page -closes #182 - -2022-02-27 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, configure.ac, doc/dvisvgm.1, src/Doxyfile, - src/version.hpp: - set version to 2.13.3 - - * NEWS: - updated NEWS - -2022-02-26 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.1, doc/dvisvgm.txt.in, src/optimizer/ClipPathReassigner.cpp, - src/optimizer/ClipPathReassigner.hpp, src/optimizer/Makefile.am, - src/optimizer/SVGOptimizer.cpp: - added optimizer module to remove identical clipPath elements - - * doc/dvisvgm.1, doc/dvisvgm.txt.in, src/optimizer/SVGOptimizer.cpp: - renamed optimizer module 'remove-clippath' to 'remove-clippaths' - - * src/optimizer/Makefile.am: - added missing include path - -2022-02-25 Martin Gieseking <martin.gieseking@uos.de> - - * src/BoundingBox.cpp, src/BoundingBox.hpp, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.hpp: - avoid adding clip-path attributes to all elements created from EPS/PDF - files - -2022-02-24 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp: - moved 'transform' attribute of 'svg' element to wrapping group -closes - #178 - - * src/PsSpecialHandler.cpp: - properly wrap 'svg' element with group - -2022-02-22 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, configure.ac, doc/dvisvgm.1, src/Doxyfile, - src/version.hpp: - set version to 2.13.2 - - * NEWS: - updated NEWS - -2022-02-21 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp: - removed redundant space is PS code - - * src/BoundingBox.cpp, src/BoundingBox.hpp, src/DvisvgmSpecialHandler.cpp, - src/PSPattern.cpp, src/PsSpecialHandler.cpp, src/SVGTree.cpp, - tests/BoundingBoxTest.cpp, tests/DvisvgmSpecialTest.cpp, - tests/EmSpecialTest.cpp, tests/PapersizeSpecialTest.cpp: - renamed BoundingBox::toSVGViewBox to BoundingBox::svgViewBoxString - -2022-02-18 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp: - use overflow='hidden' to clip included EPS/PDF graphics - -2022-01-26 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, configure.ac, doc/dvisvgm.1, src/Doxyfile, - src/version.hpp: - set version to 2.13.1 - - * NEWS: - updated NEWS - - * README.md: - added Copr status badge to README - -2022-01-25 Martin Gieseking <martin.gieseking@uos.de> - - * src/PSPattern.cpp: - added explicit std::move to fix build issues with older compilers -closes - #173 - -2022-01-24 Martin Gieseking <martin.gieseking@uos.de> - - * README.md: - removed Travis badge from README - - * libs/xxHash/xxhash.h: - do no longer depend on <assert.h> for - XXH_STATIC_ASSERT -https://github.com/Cyan4973/xxHash/commit/6189ecd3d44a693460f86280ccf49d33cb4b18e1 - -2022-01-23 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp: - apply bounding box parameters given with pdffile special -closes #174 - - * src/DvisvgmSpecialHandler.cpp: - added evaluation of {?(...)} to dvisvgm:rawdef special -closes #175 - -2022-01-19 Martin Gieseking <martin.gieseking@uos.de> - - * .github/workflows/c-cpp.yml: - CI: ensure latest package updates are installed - - * README.md: - updated README - -2022-01-18 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.1, doc/dvisvgm.txt.in: - reworded some sentences of the manual page -closes #159 - - * .appveyor.yml, configure.ac, doc/dvisvgm.1, src/Doxyfile, - src/version.hpp: - set version to 2.13 - -2022-01-17 Martin Gieseking <martin.gieseking@uos.de> - - * NEWS: - updated NEWS - -2022-01-11 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, - doc/dvisvgm.txt.in, doc/tweak-db-article.xsl, doc/tweak-db-refentry.xsl, - doc/tweak-dblatex-pdf.xsl, libs/Makefile.am, - libs/ff-woff/fontforge/tmpfile2.cpp, src/AGLTable.hpp, - src/BasicDVIReader.cpp, src/BasicDVIReader.hpp, src/Bezier.cpp, - src/Bezier.hpp, src/BgColorSpecialHandler.cpp, - src/BgColorSpecialHandler.hpp, src/Bitmap.cpp, src/Bitmap.hpp, - src/BoundingBox.cpp, src/BoundingBox.hpp, src/CLCommandLine.cpp, - src/CLCommandLine.hpp, src/CLOption.hpp, src/CMap.cpp, src/CMap.hpp, - src/CMapManager.cpp, src/CMapManager.hpp, src/CMapReader.cpp, - src/CMapReader.hpp, src/Calculator.cpp, src/Calculator.hpp, - src/CharMapID.cpp, src/CharMapID.hpp, src/Character.hpp, src/Color.cpp, - src/Color.hpp, src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.hpp, - src/CommandLine.hpp, src/DLLoader.cpp, src/DLLoader.hpp, - src/DVIActions.hpp, src/DVIReader.cpp, src/DVIReader.hpp, - src/DVIToSVG.cpp, src/DVIToSVG.hpp, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.hpp, src/Directory.cpp, src/Directory.hpp, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.hpp, - src/EPSFile.cpp, src/EPSFile.hpp, src/EPSToSVG.hpp, - src/EllipticalArc.cpp, src/EllipticalArc.hpp, src/EmSpecialHandler.cpp, - src/EmSpecialHandler.hpp, src/EncFile.cpp, src/EncFile.hpp, - src/FileFinder.cpp, src/FileFinder.hpp, src/FilePath.cpp, - src/FilePath.hpp, src/FileSystem.cpp, src/FileSystem.hpp, - src/FixWord.hpp, src/Font.cpp, src/Font.hpp, src/FontCache.cpp, - src/FontCache.hpp, src/FontEncoding.cpp, src/FontEncoding.hpp, - src/FontEngine.cpp, src/FontEngine.hpp, src/FontManager.cpp, - src/FontManager.hpp, src/FontMap.cpp, src/FontMap.hpp, - src/FontMetrics.cpp, src/FontMetrics.hpp, src/FontStyle.hpp, - src/FontWriter.cpp, src/FontWriter.hpp, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.hpp, src/GFReader.cpp, src/GFReader.hpp, - src/GFTracer.cpp, src/GFTracer.hpp, src/Ghostscript.cpp, - src/Ghostscript.hpp, src/Glyph.hpp, src/GlyphTracerMessages.hpp, - src/GraphicsPath.hpp, src/HashFunction.cpp, src/HashFunction.hpp, - src/HtmlSpecialHandler.cpp, src/HtmlSpecialHandler.hpp, - src/HyperlinkManager.cpp, src/HyperlinkManager.hpp, src/ImageToSVG.cpp, - src/ImageToSVG.hpp, src/InputBuffer.cpp, src/InputBuffer.hpp, - src/InputReader.cpp, src/InputReader.hpp, src/JFM.cpp, src/JFM.hpp, - src/Length.cpp, src/Length.hpp, src/MD5HashFunction.hpp, src/Makefile.am, - src/MapLine.cpp, src/MapLine.hpp, src/Matrix.cpp, src/Matrix.hpp, - src/Message.cpp, src/Message.hpp, src/MessageException.hpp, - src/MetafontWrapper.cpp, src/MetafontWrapper.hpp, src/MiKTeXCom.cpp, - src/MiKTeXCom.hpp, src/NoPsSpecialHandler.cpp, - src/NoPsSpecialHandler.hpp, src/NumericRanges.hpp, src/Opacity.cpp, - src/Opacity.hpp, src/PDFParser.cpp, src/PDFParser.hpp, src/PDFToSVG.hpp, - src/PSFilter.hpp, src/PSInterpreter.cpp, src/PSInterpreter.hpp, - src/PSPattern.cpp, src/PSPattern.hpp, src/PSPreviewFilter.cpp, - src/PSPreviewFilter.hpp, src/PageRanges.cpp, src/PageRanges.hpp, - src/PageSize.cpp, src/PageSize.hpp, src/Pair.hpp, - src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.hpp, - src/PathClipper.cpp, src/PathClipper.hpp, src/PdfSpecialHandler.cpp, - src/PdfSpecialHandler.hpp, src/PreScanDVIReader.cpp, - src/PreScanDVIReader.hpp, src/Process.cpp, src/Process.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, src/RangeMap.cpp, - src/RangeMap.hpp, src/SVGCharHandler.cpp, src/SVGCharHandler.hpp, - src/SVGCharHandlerFactory.cpp, src/SVGCharHandlerFactory.hpp, - src/SVGCharPathHandler.cpp, src/SVGCharPathHandler.hpp, - src/SVGCharTspanTextHandler.cpp, src/SVGCharTspanTextHandler.hpp, - src/SVGElement.cpp, src/SVGElement.hpp, src/SVGOutput.cpp, - src/SVGOutput.hpp, src/SVGSingleCharTextHandler.cpp, - src/SVGSingleCharTextHandler.hpp, src/SVGTree.cpp, src/SVGTree.hpp, - src/ShadingPatch.cpp, src/ShadingPatch.hpp, src/SignalHandler.cpp, - src/SignalHandler.hpp, src/SourceInput.cpp, src/SourceInput.hpp, - src/SpecialActions.hpp, src/SpecialHandler.hpp, src/SpecialManager.cpp, - src/SpecialManager.hpp, src/StreamReader.cpp, src/StreamReader.hpp, - src/StreamWriter.cpp, src/StreamWriter.hpp, src/Subfont.cpp, - src/Subfont.hpp, src/System.cpp, src/System.hpp, src/TFM.cpp, - src/TFM.hpp, src/TTFAutohint.cpp, src/TTFAutohint.hpp, - src/TensorProductPatch.cpp, src/TensorProductPatch.hpp, src/Terminal.cpp, - src/Terminal.hpp, src/ToUnicodeMap.cpp, src/ToUnicodeMap.hpp, - src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.hpp, - src/TriangularPatch.cpp, src/TriangularPatch.hpp, src/TrueTypeFont.cpp, - src/TrueTypeFont.hpp, src/Unicode.cpp, src/Unicode.hpp, - src/VFActions.hpp, src/VFReader.cpp, src/VFReader.hpp, - src/VectorIterator.hpp, src/VectorStream.hpp, src/XMLDocument.cpp, - src/XMLDocument.hpp, src/XMLNode.cpp, src/XMLNode.hpp, src/XMLString.cpp, - src/XMLString.hpp, src/XXHashFunction.hpp, src/ZLibOutputStream.hpp, - src/dvisvgm.cpp, src/ffwrapper.c, src/ffwrapper.h, src/macros.hpp, - src/optimizer/AttributeExtractor.cpp, - src/optimizer/AttributeExtractor.hpp, src/optimizer/DependencyGraph.hpp, - src/optimizer/GroupCollapser.cpp, src/optimizer/GroupCollapser.hpp, - src/optimizer/OptimizerModule.hpp, - src/optimizer/RedundantElementRemover.cpp, - src/optimizer/RedundantElementRemover.hpp, - src/optimizer/SVGOptimizer.cpp, src/optimizer/SVGOptimizer.hpp, - src/optimizer/TextSimplifier.cpp, src/optimizer/TextSimplifier.hpp, - src/optimizer/TransformSimplifier.cpp, - src/optimizer/TransformSimplifier.hpp, src/optimizer/WSNodeRemover.cpp, - src/optimizer/WSNodeRemover.hpp, src/options.dtd, src/options.xml, - src/psdefs.cpp, src/utility.cpp, src/utility.hpp, src/version.hpp.in, - src/windows.hpp, tests/BezierTest.cpp, tests/BitmapTest.cpp, - tests/BoundingBoxTest.cpp, tests/CMapManagerTest.cpp, - tests/CMapReaderTest.cpp, tests/CMapTest.cpp, tests/CalculatorTest.cpp, - tests/ColorSpecialTest.cpp, tests/ColorTest.cpp, - tests/CommandLineTest.cpp, tests/DVIReaderTest.cpp, - tests/DependencyGraphTest.cpp, tests/DirectoryTest.cpp, - tests/DvisvgmSpecialTest.cpp, tests/EllipticalArcTest.cpp, - tests/EmSpecialTest.cpp, tests/FileFinderTest.cpp, - tests/FilePathTest.cpp, tests/FileSystemTest.cpp, - tests/FontCacheTest.cpp, tests/FontManagerTest.cpp, - tests/FontMapTest.cpp, tests/GFGlyphTracerTest.cpp, - tests/GFReaderTest.cpp, tests/GhostscriptTest.cpp, - tests/GraphicsPathTest.cpp, tests/HashFunctionTest.cpp, - tests/JFMReaderTest.cpp, tests/LengthTest.cpp, tests/Makefile.am, - tests/MapLineTest.cpp, tests/MatrixTest.cpp, - tests/MessageExceptionTest.cpp, tests/PDFParserTest.cpp, - tests/PSInterpreterTest.cpp, tests/PageRagesTest.cpp, - tests/PageSizeTest.cpp, tests/PairTest.cpp, - tests/PapersizeSpecialTest.cpp, tests/RangeMapTest.cpp, - tests/SVGOutputTest.cpp, tests/ShadingPatchTest.cpp, - tests/SpecialManagerTest.cpp, tests/SplittedCharInputBufferTest.cpp, - tests/StreamInputBufferTest.cpp, tests/StreamReaderTest.cpp, - tests/StreamWriterTest.cpp, tests/StringMatcherTest.cpp, - tests/SubfontTest.cpp, tests/TFMReaderTest.cpp, - tests/TensorProductPatchTest.cpp, tests/ToUnicodeMapTest.cpp, - tests/TpicSpecialTest.cpp, tests/TriangularPatchTest.cpp, - tests/UnicodeTest.cpp, tests/UtilityTest.cpp, - tests/VectorIteratorTest.cpp, tests/VectorStreamTest.cpp, - tests/XMLNodeTest.cpp, tests/XMLStringTest.cpp, tests/check-conv, - tests/create-makefile, tests/data/Makefile.am, tests/genhashcheck.py, - tests/normalize.xsl, tests/testmain.cpp: - updated year in copyright statements to 2022 - -2022-01-10 Martin Gieseking <martin.gieseking@uos.de> - - * doc/Makefile.am: - don't build manpage in parallel -closes #171 - -2021-12-05 Martin Gieseking <martin.gieseking@uos.de> - - * libs/brotli/enc/encode.c: - fixed parameter type warning in Brotli library - -2021-12-04 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml: - updated Windows platform toolset to version 143 - -2021-12-03 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.1, doc/dvisvgm.txt.in, src/dvisvgm.cpp: - allow for conversion of multiple given EPS files - - * src/DVIToSVG.cpp: - fixed setting of hash algorithm given on command-line - - * doc/dvisvgm.1, doc/dvisvgm.txt.in, src/SVGOutput.cpp, src/SVGOutput.hpp, - src/dvisvgm.cpp: - added variables n and N to option --output - -2021-12-01 Martin Gieseking <martin.gieseking@uos.de> - - * src/InputReader.cpp: - replaced deprecated std::ptr_fun - -2021-11-30 Martin Gieseking <martin.gieseking@uos.de> - - * libs/xxHash/xxh3.h, libs/xxHash/xxhash.h: - updated xxHash to version 0.8.1 - - * doc/dvisvgm.1, doc/dvisvgm.txt.in: - manpage: extended introduction of section 'supported specials' - -2021-11-28 Martin Gieseking <martin.gieseking@uos.de> - - * src/Font.cpp, src/FontEngine.cpp, src/FontEngine.hpp: - use glyph metrics from font file to compute height and depth - - * doc/dvisvgm.1, doc/dvisvgm.txt.in: - manpage: slightly changed wording regarding the bgcolor handler - -2021-11-02 Martin Gieseking <martin.gieseking@uos.de> - - * .travis.yml: - removed Travis configuration - -2021-10-30 Naveen M K <naveen521kk@gmail.com> - - * src/FileSystem.cpp: - mingw: fix for gcc 11 - -2021-09-26 Martin Gieseking <martin.gieseking@uos.de> - - * src/optimizer/GroupCollapser.cpp, src/optimizer/GroupCollapser.hpp, - src/optimizer/SVGOptimizer.cpp: - simplify transform attributes only if 'simplify-transform' is given - -2021-09-12 Martin Gieseking <martin.gieseking@uos.de> - - * tests/UtilityTest.cpp: - prevent creating temporaries in test loop - -2021-09-07 Martin Gieseking <martin.gieseking@uos.de> - - * tests/gtest/include/gtest/gtest-death-test.h, - tests/gtest/include/gtest/gtest-matchers.h, - tests/gtest/include/gtest/gtest-message.h, - tests/gtest/include/gtest/gtest-param-test.h, - tests/gtest/include/gtest/gtest-printers.h, - tests/gtest/include/gtest/gtest-spi.h, - tests/gtest/include/gtest/gtest-test-part.h, - tests/gtest/include/gtest/gtest-typed-test.h, - tests/gtest/include/gtest/gtest.h, - tests/gtest/include/gtest/gtest_pred_impl.h, - tests/gtest/include/gtest/gtest_prod.h, - tests/gtest/include/gtest/internal/custom/gtest-port.h, - tests/gtest/include/gtest/internal/custom/gtest-printers.h, - tests/gtest/include/gtest/internal/custom/gtest.h, - tests/gtest/include/gtest/internal/gtest-death-test-internal.h, - tests/gtest/include/gtest/internal/gtest-filepath.h, - tests/gtest/include/gtest/internal/gtest-internal.h, - tests/gtest/include/gtest/internal/gtest-param-util.h, - tests/gtest/include/gtest/internal/gtest-port-arch.h, - tests/gtest/include/gtest/internal/gtest-port.h, - tests/gtest/include/gtest/internal/gtest-string.h, - tests/gtest/include/gtest/internal/gtest-type-util.h, - tests/gtest/src/gtest-death-test.cc, tests/gtest/src/gtest-filepath.cc, - tests/gtest/src/gtest-internal-inl.h, tests/gtest/src/gtest-matchers.cc, - tests/gtest/src/gtest-port.cc, tests/gtest/src/gtest-printers.cc, - tests/gtest/src/gtest-test-part.cc, tests/gtest/src/gtest-typed-test.cc, - tests/gtest/src/gtest.cc, tests/gtest/src/gtest_main.cc, - tests/testutil.hpp: - updated gtest to version 1.11 - -2021-08-26 Martin Gieseking <martin.gieseking@uos.de> - - * src/optimizer/GroupCollapser.cpp, src/optimizer/GroupCollapser.hpp: - GroupCollapser: simplify transform attributes after combining them - -2021-08-16 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, .travis.yml, configure.ac, doc/dvisvgm.1, src/Doxyfile, - src/version.hpp: - set version to 2.12 - - * NEWS: - updated NEWS - -2021-08-15 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp: - skip fill actions if colorspace with unsupported pattern type is active - -2021-08-13 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp: - ensure adding color attribute to tiling patterns -(closes #158) - -2021-07-19 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml: - updated FreeType to version 2.11 - -2021-07-04 Martin Gieseking <martin.gieseking@uos.de> - - * src/FilePath.cpp: - prevent out-of-bounds access - - * src/InputBuffer.hpp: - delete unused assignment operator - -2021-06-15 Martin Gieseking <martin.gieseking@uos.de> - - * .gitattributes: - Update .gitattributes - -marked all files in libs and its subfolders as - vendored code - -2021-06-13 Martin Gieseking <martin.gieseking@uos.de> - - * src/FilePath.cpp: - fixed handling of root directories in file paths - - * src/FilePath.cpp, src/FileSystem.cpp, tests/FilePathTest.cpp: - improved handling of drive letters on Windows - -2021-06-11 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp: - fixed displaced graphics if PDF MediaBox isn't located at origin - - * tests/data/Makefile.am: - added missing test data file to Makefile - -2021-06-10 Martin Gieseking <martin.gieseking@uos.de> - - * m4/ax_cxx_compile_stdcxx.m4: - ax_cxx_compile_stdcxx.m4 to version 12 - -2021-05-30 Martin Gieseking <martin.gieseking@uos.de> - - * src/Font.hpp: - simplified boolean expression - - * src/Font.hpp, src/SVGCharPathHandler.cpp: - removed default parameter from virtual methods - -2021-05-25 Martin Gieseking <martin.gieseking@uos.de> - - * src/PSPattern.hpp, src/PsSpecialHandler.cpp: - removed dynamic casting in processing of PS patterns - - * src/PdfSpecialHandler.cpp: - replaced dynamic_cast with static_cast as type is unambiguous - - * src/TensorProductPatch.cpp, src/TriangularPatch.cpp: - replaced dynamic casts of shading patches with PS type comparisons - - * src/CMapManager.cpp: - replaced dynamic cast of CMap type test with existing method - mapsToUnicode() - -2021-05-24 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIReader.cpp, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, - src/Font.cpp, src/Font.hpp, src/FontEngine.cpp, src/FontManager.cpp, - src/SVGCharHandler.cpp, src/SVGCharPathHandler.cpp, - src/SVGCharTspanTextHandler.cpp, src/SVGTree.cpp, src/utility.hpp, - tests/FontManagerTest.cpp, tests/data/lmmono12-regular.otf: - added font_cast to replace dynamic casts of Font pointers - -2021-05-20 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIReader.cpp, src/FontMetrics.hpp, src/JFM.hpp: - replaced dynamic cast to test for JFM with dedicated method - -2021-04-23 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.cpp: - fixed PS error thrown when trying to set a shading pattern - - * src/PsSpecialHandler.cpp, src/SVGElement.cpp, src/SVGElement.hpp: - always add fill attribute to pattern paths - -2021-04-10 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.1, doc/dvisvgm.txt.in: - reworded few parts of the manual page - -2021-04-01 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp: - restore proper context node at end of pattern definition - -2021-03-22 Martin Gieseking <martin.gieseking@uos.de> - - * src/GraphicsPath.hpp: - use std::equal to check equality of GraphicsPaths - - * src/EllipticalArc.cpp, src/Matrix.cpp, src/Matrix.hpp, - tests/MatrixTest.cpp: - Matrix: added default constructor; explicit init list constructor - - * src/GFReader.cpp, src/Message.cpp, src/VectorIterator.hpp: - removed redundant index checks - - * src/DVIToSVG.cpp, src/DVIToSVG.hpp: - initialize basic members outside constructor body - - * src/DvisvgmSpecialHandler.cpp: - two small code improvements - - * src/FontManager.cpp: - removed redundant check - - * src/GFGlyphTracer.cpp, src/GFGlyphTracer.hpp, src/HyperlinkManager.hpp, - src/PSInterpreter.cpp, src/PsSpecialHandler.cpp: - added missing const to reference parameters - - * src/InputBuffer.hpp: - prevent unwanted copying of input buffers - -2021-03-15 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.1: - fixed typo in manual - - * src/PSInterpreter.cpp: - fixed expression to check current GS running mode - - * src/SVGSingleCharTextHandler.cpp: - reset change flag of color and opacity properties unconditionally - - * src/SVGCharTspanTextHandler.cpp: - create initial tspan if opacity values differ from defaults - - * src/Ghostscript.cpp, src/Ghostscript.hpp, src/PSInterpreter.cpp, - src/PSInterpreter.hpp, src/psdefs.cpp, tests/PSInterpreterTest.cpp: - update opacity settings on grestore -Requires GS >= 9.52 because earlier - versions only provide operators to set the -opacity/blendmode values and - none to retrieve them. - - * src/PSInterpreter.cpp, src/PSInterpreter.hpp, src/PsSpecialHandler.hpp, - src/psdefs.cpp, tests/PSInterpreterTest.cpp: - renamed PS operator setisshapealpha - - * src/dvisvgm.cpp: - added missing parenthesis in info message - -2021-03-14 Martin Gieseking <martin.gieseking@uos.de> - - * src/optimizer/GroupCollapser.cpp, src/optimizer/TextSimplifier.cpp: - minor loop optimizations - - * src/XMLNode.cpp: - don't create newlines inside text elements -since they may lead to - additional whitespace, e.g. between tspans that lack absolute coordinates - - * src/SVGCharPathHandler.cpp, src/SVGElement.cpp, src/SVGElement.hpp: - don't add style attributes to groups because they're not inheritable - -2021-03-13 Martin Gieseking <martin.gieseking@uos.de> - - * src/Makefile.am, src/Opacity.cpp, src/Opacity.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp: - combined alpha and blendmode values into dedicated class - - * src/SVGCharHandler.hpp: - added default and move constructor to CharProperty - - * src/DVIToSVGActions.hpp, src/ImageToSVG.hpp, src/Opacity.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, - src/SVGCharHandler.hpp, src/SVGCharPathHandler.cpp, - src/SVGCharTspanTextHandler.cpp, src/SVGSingleCharTextHandler.cpp, - src/SVGTree.hpp, src/SpecialActions.hpp: - added opacity properties to text elements - - * src/SVGCharHandler.cpp, src/SVGCharHandler.hpp, - src/SVGCharPathHandler.cpp, src/SVGCharTspanTextHandler.cpp, - src/SVGSingleCharTextHandler.cpp: - added shorthand operator for CharProperty::get() - - * src/Opacity.hpp, src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp: - PS handler: replaced isolated opacity variables with Opacity class - - * src/Makefile.am, src/Opacity.hpp, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.hpp, src/SVGElement.cpp, src/SVGElement.hpp, - src/XMLNode.hpp: - added class to handle SVG attributes in a uniform manner - - * src/DVIToSVGActions.cpp, src/DVIToSVGActions.hpp, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.hpp, - src/EmSpecialHandler.cpp, src/HyperlinkManager.cpp, src/ImageToSVG.hpp, - src/PSPattern.cpp, src/PsSpecialHandler.cpp, src/SVGCharHandler.cpp, - src/SVGCharHandler.hpp, src/SVGCharPathHandler.cpp, - src/SVGCharPathHandler.hpp, src/SVGCharTspanTextHandler.cpp, - src/SVGCharTspanTextHandler.hpp, src/SVGElement.cpp, src/SVGElement.hpp, - src/SVGSingleCharTextHandler.cpp, src/SVGTree.cpp, src/SVGTree.hpp, - src/SpecialActions.hpp, src/TpicSpecialHandler.cpp, - tests/TpicSpecialTest.cpp: - added opacity properties to graphics elements created outside the PS - handler -(closes #148) - - * src/EmSpecialHandler.cpp, src/SVGElement.cpp, src/SVGElement.hpp, - src/TpicSpecialHandler.cpp, tests/EmSpecialTest.cpp, - tests/TpicSpecialTest.cpp: - unified handling of "point" attributes - - * src/EmSpecialHandler.cpp, src/SVGCharHandler.cpp, - src/SVGCharPathHandler.cpp, src/SVGElement.cpp, src/SVGTree.cpp, - src/TpicSpecialHandler.cpp: - removed redundant casts to XMLString - -2021-03-05 Martin Gieseking <martin.gieseking@uos.de> - - * .github/workflows/c-cpp.yml: - added GitHub CI configuration - - * .github/workflows/c-cpp.yml: - removed distcheck from CI - - * README.md: - added GitHub CI badge; removed Copr badge - -2021-03-04 Martin Gieseking <martin.gieseking@uos.de> - - * src/BgColorSpecialHandler.cpp, src/BoundingBox.cpp, - src/DvisvgmSpecialHandler.cpp, src/EllipticalArc.cpp, - src/EmSpecialHandler.cpp, src/FontCache.cpp, src/FontEngine.cpp, - src/FontManager.cpp, src/FontWriter.cpp, src/PSInterpreter.cpp, - src/PapersizeSpecialHandler.cpp, src/RangeMap.cpp, src/Subfont.cpp, - src/TpicSpecialHandler.cpp, src/TrueTypeFont.cpp, src/XMLDocument.cpp, - src/XMLNode.cpp, src/dvisvgm.cpp, src/utility.cpp: - avoid copying objects in emplace methods - -2021-02-15 Martin Gieseking <martin.gieseking@uos.de> - - * .gitignore: - added .pyc to ignored file suffixes - -2021-02-09 Martin Gieseking <martin.gieseking@uos.de> - - * src/FilePath.cpp, src/FileSystem.cpp, src/FileSystem.hpp: - improved handling of differing drive letters in Windows file paths - -2021-01-27 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in: - fixed typo in manual - -2021-01-26 Martin Gieseking <martin.gieseking@uos.de> - - * doc/tweak-dblatex-tex.py: - updated tweak-dblatex-tex to Python 3 - -2021-01-21 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, .travis.yml, configure.ac, doc/dvisvgm.1, src/Doxyfile, - src/version.hpp: - set version to 2.11.1 - - * NEWS: - updated NEWS - -2021-01-03 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, - doc/dvisvgm.1, doc/dvisvgm.txt.in, doc/tweak-db-article.xsl, - doc/tweak-db-refentry.xsl, doc/tweak-dblatex-pdf.xsl, libs/Makefile.am, - libs/ff-woff/fontforge/tmpfile2.cpp, src/AGLTable.hpp, - src/BasicDVIReader.cpp, src/BasicDVIReader.hpp, src/Bezier.cpp, - src/Bezier.hpp, src/BgColorSpecialHandler.cpp, - src/BgColorSpecialHandler.hpp, src/Bitmap.cpp, src/Bitmap.hpp, - src/BoundingBox.cpp, src/BoundingBox.hpp, src/CLCommandLine.cpp, - src/CLCommandLine.hpp, src/CLOption.hpp, src/CMap.cpp, src/CMap.hpp, - src/CMapManager.cpp, src/CMapManager.hpp, src/CMapReader.cpp, - src/CMapReader.hpp, src/Calculator.cpp, src/Calculator.hpp, - src/CharMapID.cpp, src/CharMapID.hpp, src/Character.hpp, src/Color.cpp, - src/Color.hpp, src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.hpp, - src/CommandLine.hpp, src/DLLoader.cpp, src/DLLoader.hpp, - src/DVIActions.hpp, src/DVIReader.cpp, src/DVIReader.hpp, - src/DVIToSVG.cpp, src/DVIToSVG.hpp, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.hpp, src/Directory.cpp, src/Directory.hpp, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.hpp, - src/EPSFile.cpp, src/EPSFile.hpp, src/EPSToSVG.hpp, - src/EllipticalArc.cpp, src/EllipticalArc.hpp, src/EmSpecialHandler.cpp, - src/EmSpecialHandler.hpp, src/EncFile.cpp, src/EncFile.hpp, - src/FileFinder.cpp, src/FileFinder.hpp, src/FilePath.cpp, - src/FilePath.hpp, src/FileSystem.cpp, src/FileSystem.hpp, - src/FixWord.hpp, src/Font.cpp, src/Font.hpp, src/FontCache.cpp, - src/FontCache.hpp, src/FontEncoding.cpp, src/FontEncoding.hpp, - src/FontEngine.cpp, src/FontEngine.hpp, src/FontManager.cpp, - src/FontManager.hpp, src/FontMap.cpp, src/FontMap.hpp, - src/FontMetrics.cpp, src/FontMetrics.hpp, src/FontStyle.hpp, - src/FontWriter.cpp, src/FontWriter.hpp, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.hpp, src/GFReader.cpp, src/GFReader.hpp, - src/GFTracer.cpp, src/GFTracer.hpp, src/Ghostscript.cpp, - src/Ghostscript.hpp, src/Glyph.hpp, src/GlyphTracerMessages.hpp, - src/GraphicsPath.hpp, src/HashFunction.cpp, src/HashFunction.hpp, - src/HtmlSpecialHandler.cpp, src/HtmlSpecialHandler.hpp, - src/HyperlinkManager.cpp, src/HyperlinkManager.hpp, src/ImageToSVG.cpp, - src/ImageToSVG.hpp, src/InputBuffer.cpp, src/InputBuffer.hpp, - src/InputReader.cpp, src/InputReader.hpp, src/JFM.cpp, src/JFM.hpp, - src/Length.cpp, src/Length.hpp, src/MD5HashFunction.hpp, src/Makefile.am, - src/MapLine.cpp, src/MapLine.hpp, src/Matrix.cpp, src/Matrix.hpp, - src/Message.cpp, src/Message.hpp, src/MessageException.hpp, - src/MetafontWrapper.cpp, src/MetafontWrapper.hpp, src/MiKTeXCom.cpp, - src/MiKTeXCom.hpp, src/NoPsSpecialHandler.cpp, - src/NoPsSpecialHandler.hpp, src/NumericRanges.hpp, src/PDFParser.cpp, - src/PDFParser.hpp, src/PDFToSVG.hpp, src/PSFilter.hpp, - src/PSInterpreter.cpp, src/PSInterpreter.hpp, src/PSPattern.cpp, - src/PSPattern.hpp, src/PSPreviewFilter.cpp, src/PSPreviewFilter.hpp, - src/PageRanges.cpp, src/PageRanges.hpp, src/PageSize.cpp, - src/PageSize.hpp, src/Pair.hpp, src/PapersizeSpecialHandler.cpp, - src/PapersizeSpecialHandler.hpp, src/PathClipper.cpp, - src/PathClipper.hpp, src/PdfSpecialHandler.cpp, - src/PdfSpecialHandler.hpp, src/PreScanDVIReader.cpp, - src/PreScanDVIReader.hpp, src/Process.cpp, src/Process.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, src/RangeMap.cpp, - src/RangeMap.hpp, src/SVGCharHandler.cpp, src/SVGCharHandler.hpp, - src/SVGCharHandlerFactory.cpp, src/SVGCharHandlerFactory.hpp, - src/SVGCharPathHandler.cpp, src/SVGCharPathHandler.hpp, - src/SVGCharTspanTextHandler.cpp, src/SVGCharTspanTextHandler.hpp, - src/SVGOutput.cpp, src/SVGOutput.hpp, src/SVGSingleCharTextHandler.cpp, - src/SVGSingleCharTextHandler.hpp, src/SVGTree.cpp, src/SVGTree.hpp, - src/ShadingPatch.cpp, src/ShadingPatch.hpp, src/SignalHandler.cpp, - src/SignalHandler.hpp, src/SourceInput.cpp, src/SourceInput.hpp, - src/SpecialActions.hpp, src/SpecialHandler.hpp, src/SpecialManager.cpp, - src/SpecialManager.hpp, src/StreamReader.cpp, src/StreamReader.hpp, - src/StreamWriter.cpp, src/StreamWriter.hpp, src/Subfont.cpp, - src/Subfont.hpp, src/System.cpp, src/System.hpp, src/TFM.cpp, - src/TFM.hpp, src/TTFAutohint.cpp, src/TTFAutohint.hpp, - src/TensorProductPatch.cpp, src/TensorProductPatch.hpp, src/Terminal.cpp, - src/Terminal.hpp, src/ToUnicodeMap.cpp, src/ToUnicodeMap.hpp, - src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.hpp, - src/TriangularPatch.cpp, src/TriangularPatch.hpp, src/TrueTypeFont.cpp, - src/TrueTypeFont.hpp, src/Unicode.cpp, src/Unicode.hpp, - src/VFActions.hpp, src/VFReader.cpp, src/VFReader.hpp, - src/VectorIterator.hpp, src/VectorStream.hpp, src/XMLDocument.cpp, - src/XMLDocument.hpp, src/XMLNode.cpp, src/XMLNode.hpp, src/XMLString.cpp, - src/XMLString.hpp, src/XXHashFunction.hpp, src/ZLibOutputStream.hpp, - src/dvisvgm.cpp, src/ffwrapper.c, src/ffwrapper.h, src/macros.hpp, - src/optimizer/AttributeExtractor.cpp, - src/optimizer/AttributeExtractor.hpp, src/optimizer/DependencyGraph.hpp, - src/optimizer/GroupCollapser.cpp, src/optimizer/GroupCollapser.hpp, - src/optimizer/OptimizerModule.hpp, - src/optimizer/RedundantElementRemover.cpp, - src/optimizer/RedundantElementRemover.hpp, - src/optimizer/SVGOptimizer.cpp, src/optimizer/SVGOptimizer.hpp, - src/optimizer/TextSimplifier.cpp, src/optimizer/TextSimplifier.hpp, - src/optimizer/TransformSimplifier.cpp, - src/optimizer/TransformSimplifier.hpp, src/optimizer/WSNodeRemover.cpp, - src/optimizer/WSNodeRemover.hpp, src/options.dtd, src/options.xml, - src/psdefs.cpp, src/utility.cpp, src/utility.hpp, src/version.hpp, - src/version.hpp.in, src/windows.hpp, tests/BezierTest.cpp, - tests/BitmapTest.cpp, tests/BoundingBoxTest.cpp, - tests/CMapManagerTest.cpp, tests/CMapReaderTest.cpp, tests/CMapTest.cpp, - tests/CalculatorTest.cpp, tests/ColorSpecialTest.cpp, - tests/ColorTest.cpp, tests/CommandLineTest.cpp, tests/DVIReaderTest.cpp, - tests/DependencyGraphTest.cpp, tests/DirectoryTest.cpp, - tests/DvisvgmSpecialTest.cpp, tests/EllipticalArcTest.cpp, - tests/EmSpecialTest.cpp, tests/FileFinderTest.cpp, - tests/FilePathTest.cpp, tests/FileSystemTest.cpp, - tests/FontCacheTest.cpp, tests/FontManagerTest.cpp, - tests/FontMapTest.cpp, tests/GFGlyphTracerTest.cpp, - tests/GFReaderTest.cpp, tests/GhostscriptTest.cpp, - tests/GraphicsPathTest.cpp, tests/HashFunctionTest.cpp, - tests/JFMReaderTest.cpp, tests/LengthTest.cpp, tests/Makefile.am, - tests/MapLineTest.cpp, tests/MatrixTest.cpp, - tests/MessageExceptionTest.cpp, tests/PDFParserTest.cpp, - tests/PSInterpreterTest.cpp, tests/PageRagesTest.cpp, - tests/PageSizeTest.cpp, tests/PairTest.cpp, - tests/PapersizeSpecialTest.cpp, tests/RangeMapTest.cpp, - tests/SVGOutputTest.cpp, tests/ShadingPatchTest.cpp, - tests/SpecialManagerTest.cpp, tests/SplittedCharInputBufferTest.cpp, - tests/StreamInputBufferTest.cpp, tests/StreamReaderTest.cpp, - tests/StreamWriterTest.cpp, tests/StringMatcherTest.cpp, - tests/SubfontTest.cpp, tests/TFMReaderTest.cpp, - tests/TensorProductPatchTest.cpp, tests/ToUnicodeMapTest.cpp, - tests/TpicSpecialTest.cpp, tests/TriangularPatchTest.cpp, - tests/UnicodeTest.cpp, tests/UtilityTest.cpp, - tests/VectorIteratorTest.cpp, tests/VectorStreamTest.cpp, - tests/XMLNodeTest.cpp, tests/XMLStringTest.cpp, tests/check-conv, - tests/create-makefile, tests/data/Makefile.am, tests/genhashcheck.py, - tests/normalize.xsl, tests/testmain.cpp: - updated year in copyright statements to 2021 - -2020-12-30 Martin Gieseking <martin.gieseking@uos.de> - - * src/Calculator.cpp, tests/CalculatorTest.cpp: - fixed a comment and added minor calculator tests - - * src/Calculator.cpp, src/Calculator.hpp, tests/CalculatorTest.cpp: - use variant type for token objects in class Calculator - -2020-12-29 Martin Gieseking <martin.gieseking@uos.de> - - * src/FontEngine.cpp: - renamed some local variables - -2020-12-21 Martin Gieseking <martin.gieseking@uos.de> - - * src/FontEngine.cpp: - ensure unambiguity of GID to charcode mappings -(fixes #147) - - * src/Font.cpp, src/FontEngine.cpp, src/FontEngine.hpp: - Renamed FontEngine::buildCharMap() - -2020-11-28 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, .travis.yml, configure.ac, doc/dvisvgm.1, src/Doxyfile, - src/version.hpp: - set version to 2.11 - - * NEWS: - updated NEWS - -2020-11-20 Martin Gieseking <martin.gieseking@uos.de> - - * src/BasicDVIReader.cpp, src/BasicDVIReader.hpp, src/DVIReader.cpp, - src/DVIReader.hpp: - moved low-level DVIReader functions to BasicDVIReader -and some code - cleanup - - * src/BasicDVIReader.cpp, src/BasicDVIReader.hpp, src/DVIReader.cpp, - src/DVIToSVG.cpp, src/PdfSpecialHandler.cpp, src/PdfSpecialHandler.hpp: - process mapline specials before fontdefs -to ensure all mapline - definitions are present when registering fonts - -2020-11-19 Martin Gieseking <martin.gieseking@uos.de> - - * src/FontMap.cpp, src/Subfont.cpp, src/Subfont.hpp, - tests/SubfontTest.cpp: - SubfontDefinition: replaced reference parameter with return value - -2020-11-18 Martin Gieseking <martin.gieseking@uos.de> - - * src/CMap.cpp, src/CMap.hpp, src/Font.cpp, src/FontEncoding.cpp, - src/FontEncoding.hpp: - keep selected Unicode fontmap if assigned CMap maps to Unicode - - * src/DVIReader.cpp, src/FontManager.cpp, src/FontManager.hpp: - added fallback for missing characters in JFM-based virtual fonts -(closes - #144) - -2020-11-17 Martin Gieseking <martin.gieseking@uos.de> - - * src/Unicode.cpp, src/Unicode.hpp, tests/UnicodeTest.cpp: - added functions to convert surrogate pairs - - * src/CMap.cpp, src/CMap.hpp, src/CMapReader.cpp: - consider surrogates when reading CMap files - -2020-10-21 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml: - updated FreeType to version 2.10.4 - -2020-10-10 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml: - updated FreeType to version 2.10.3 - -2020-09-22 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, .travis.yml, configure.ac, doc/dvisvgm.1, src/Doxyfile, - src/version.hpp: - set version to 2.10.1 - - * NEWS: - updated NEWS - -2020-09-11 Martin Gieseking <martin.gieseking@uos.de> - - * src/PSInterpreter.cpp, src/PSInterpreter.hpp, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.hpp, src/psdefs.cpp, tests/PSInterpreterTest.cpp: - added support for new GS transparency operators -.setfillconstantalpha - and .setstrokeconstantalpha - -2020-09-04 Martin Gieseking <martin.gieseking@uos.de> - - * src/XMLNode.cpp: - renamed local variable - -2020-08-27 Martin Gieseking <martin.gieseking@uos.de> - - * libs/brotli/common/version.h: - updated brotli to version 1.0.9 -the encoder is not affected by this - update so the bundled subset -only bumps the version number. - -2020-08-26 Martin Gieseking <martin.gieseking@uos.de> - - * libs/brotli/Makefile.am, libs/brotli/common/constants.c, - libs/brotli/common/constants.h, libs/brotli/common/context.c, - libs/brotli/common/context.h, libs/brotli/common/dictionary.c, - libs/brotli/common/platform.c, libs/brotli/common/platform.h, - libs/brotli/common/transform.c, libs/brotli/common/transform.h, - libs/brotli/common/version.h, libs/brotli/enc/backward_references.c, - libs/brotli/enc/backward_references.h, - libs/brotli/enc/backward_references_hq.c, - libs/brotli/enc/backward_references_hq.h, - libs/brotli/enc/backward_references_inc.h, - libs/brotli/enc/block_splitter.c, libs/brotli/enc/block_splitter_inc.h, - libs/brotli/enc/brotli_bit_stream.c, libs/brotli/enc/cluster_inc.h, - libs/brotli/enc/command.c, libs/brotli/enc/command.h, - libs/brotli/enc/compress_fragment_two_pass.c, - libs/brotli/enc/dictionary_hash.c, libs/brotli/enc/dictionary_hash.h, - libs/brotli/enc/encode.c, libs/brotli/enc/encoder_dict.c, - libs/brotli/enc/encoder_dict.h, libs/brotli/enc/entropy_encode.c, - libs/brotli/enc/entropy_encode.h, libs/brotli/enc/fast_log.c, - libs/brotli/enc/fast_log.h, libs/brotli/enc/find_match_length.h, - libs/brotli/enc/hash.h, libs/brotli/enc/hash_composite_inc.h, - libs/brotli/enc/hash_forgetful_chain_inc.h, - libs/brotli/enc/hash_longest_match64_inc.h, - libs/brotli/enc/hash_longest_match_inc.h, - libs/brotli/enc/hash_longest_match_quickly_inc.h, - libs/brotli/enc/hash_rolling_inc.h, - libs/brotli/enc/hash_to_binary_tree_inc.h, libs/brotli/enc/memory.h, - libs/brotli/enc/metablock.c, libs/brotli/enc/metablock_inc.h, - libs/brotli/enc/params.h, libs/brotli/enc/ringbuffer.h, - libs/brotli/enc/utf8_util.c, libs/brotli/enc/write_bits.h, - libs/brotli/include/brotli/encode.h, libs/brotli/include/brotli/port.h: - updated brotli to version 1.0.8 - -2020-08-23 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.1, doc/dvisvgm.txt.in: - manpage: few additions to --bbox and --font-format - -2020-08-22 Martin Gieseking <martin.gieseking@uos.de> - - * .mailmap: - removed redundant file - -2020-08-21 Martin Gieseking <martin.gieseking@uos.de> - - * src/Ghostscript.cpp: - updated GS versioning scheme introduced with GS - 9.53.0 -http://git.ghostscript.com/?p=ghostpdl.git;a=commit;h=0e98e2a27ed19fcc138215afe17ab1a173aeed7b - -2020-08-12 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, .travis.yml, configure.ac, doc/dvisvgm.1, src/Doxyfile, - src/version.hpp: - set version to 2.10 - - * NEWS: - updated NEWS - -2020-07-27 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.1, doc/dvisvgm.txt.in, libs/xxHash/xxh3.h, - libs/xxHash/xxhash.h: - updated xxHash to version 0.8 - -2020-07-24 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.cpp: - redefine internal GS operators .fillstroke and .eofillstroke -They are - used to implement PDF operators B and B*. -(closes #139) - -2020-07-16 Martin Gieseking <martin.gieseking@uos.de> - - * src/optimizer/TransformSimplifier.cpp: - don't unwind transform attributes of image elements - - * src/optimizer/GroupCollapser.cpp: - collapse groups w/o attributes first -in order to recurse into their - descendants. - - * src/optimizer/TransformSimplifier.cpp: - optimizer: unwind transform attributes of image elements -if it consists - only of scaling and translations. Merge the scaled translation -into x and - y, and simplify the remaining matrix(...) expression to scale(...) - -2020-07-15 Martin Gieseking <martin.gieseking@uos.de> - - * src/XMLNode.cpp, src/XMLNode.hpp, src/optimizer/GroupCollapser.cpp, - src/optimizer/RedundantElementRemover.cpp, - src/optimizer/WSNodeRemover.cpp: - renamed XMLNode::remove to XMLNode::detach - -2020-07-14 Martin Gieseking <martin.gieseking@uos.de> - - * src/optimizer/GroupCollapser.cpp: - don't move inner transforms to outer clipping paths - - * src/XMLNode.cpp: - fixed XMLElement::unwrap - - * src/optimizer/GroupCollapser.cpp: - improved optimizer module GroupCollapser - -2020-07-13 Martin Gieseking <martin.gieseking@uos.de> - - * src/optimizer/SVGOptimizer.cpp: - simplify transforms before optimizing groups - - * src/DvisvgmSpecialHandler.cpp: - fixed error message about invalid closing tags - - * src/DVIToSVGActions.cpp: - handle XML parser errors thrown in EOP - - * src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.hpp: - reduced number of successive XML error messages - - * src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.hpp: - renamed XMLParser::flush to XMLParser::finish - -2020-07-07 Martin Gieseking <martin.gieseking@uos.de> - - * src/FontCache.cpp, src/HashFunction.cpp, src/HashFunction.hpp, - src/MD5HashFunction.hpp, src/XXHashFunction.hpp, - tests/HashFunctionTest.cpp: - renamed HashFunction::digestValue() to HashFunction::digestBytes() - - * src/XXHashFunction.hpp: - added XXHashFunction::digestValue() to get the value as encoded by - xxhash - - * src/FileSystem.cpp, src/FileSystem.hpp: - create dedicated temp folders with each call of dvisvgm - -2020-06-25 Martin Gieseking <martin.gieseking@uos.de> - - * libs/xxHash/xxh3.h, libs/xxHash/xxhash.c, libs/xxHash/xxhash.h: - updated xxHash to version 0.7.4 - -2020-06-23 Martin Gieseking <martin.gieseking@uos.de> - - * src/DvisvgmSpecialHandler.cpp, tests/DvisvgmSpecialTest.cpp: - fixed computation of string boundaries after expanding {?(...)} -(closes - #136) - -2020-05-09 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml: - updated FreeType to version 2.10.2 - -2020-05-03 Martin Gieseking <martin.gieseking@uos.de> - - * src/dvisvgm.cpp: - fixed indentation - -2020-04-24 John Bowman <bowman@ualberta.ca> - - * src/dvisvgm.cpp: - Fix indentation. - -2020-04-23 John Bowman <bowman@ualberta.ca> - - * src/dvisvgm.cpp: - Return error codes to shell. - -2020-04-13 Martin Gieseking <martin.gieseking@uos.de> - - * src/PathClipper.cpp, src/PathClipper.hpp, src/PsSpecialHandler.cpp: - changed signature of PathClipper::intersect() - - * src/PathClipper.cpp, src/PathClipper.hpp: - added unite operation to PathClipper - - * src/GraphicsPath.hpp, src/PsSpecialHandler.cpp: - fixed handling of clippath/eoclip combinations - -2020-04-11 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIToSVGActions.cpp: - fixed bbox debug rectangles - - * src/Font.cpp, src/Font.hpp: - added italic correction for fake slant - - * src/DVIReader.cpp, src/DVIReader.hpp, src/FontManager.cpp: - added evaluation of LuaTeX native font definitions - - * src/DVIReader.cpp: - minor code improvements - -2020-04-10 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.cpp: - fixed PS operator 'eoclip' - -2020-03-30 Martin Gieseking <martin.gieseking@uos.de> - - * src/optimizer/TransformSimplifier.cpp: - optimizer: fixed omission of second scale() parameter - -2020-03-21 Martin Gieseking <martin.gieseking@uos.de> - - * src/Matrix.cpp: - fixed parsing of "scale(s)" -fixes #131 - - * .appveyor.yml, .travis.yml, configure.ac, doc/dvisvgm.1, src/Doxyfile, - src/version.hpp: - set version to 2.9.1 - - * NEWS: - updated NEWS - -2020-03-20 Martin Gieseking <martin.gieseking@uos.de> - - * src/Calculator.cpp, tests/CalculatorTest.cpp: - calculator: allow to omit '*' before '(' - -2020-03-19 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.1, doc/dvisvgm.txt.in, src/DvisvgmSpecialHandler.cpp, - tests/DvisvgmSpecialTest.cpp: - added macro {?(expr)} to enable math expressions in raw specials -closes - #130 - -2020-03-17 Martin Gieseking <martin.gieseking@uos.de> - - * doc/Makefile.am, doc/conf-dblatex-pdf.xsl, doc/dvisvgm.txt.in, - doc/generate-dvisvgm-sty.xsl, doc/tweak-dblatex-tex.py: - optimize line breaks and code blocks in pdf manpage - -2020-03-16 Martin Gieseking <martin.gieseking@uos.de> - - * doc/conf-dblatex-pdf.xsl: - small font changes in pdf version of manual page -- changed body font to - Source Serif Pro -- scaled monospace font by 0.9 - - * src/PageRanges.cpp, src/PageRanges.hpp: - removed redundant #includes - - * src/NumericRanges.hpp: - replaced explicit iterator type with auto - -2020-03-13 Martin Gieseking <martin.gieseking@uos.de> - - * NEWS: - updated NEWS and vc/README - -2020-03-12 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.1: - added generated man page to repo - -2020-03-11 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.cpp: - fixed xshow, yshow, and xyshow for multi-byte characters - -2020-03-10 Martin Gieseking <martin.gieseking@uos.de> - - * src/Matrix.cpp: - replaced istream::ignore() with istream::get() -to make gcc on NetBSD - happy - - * .travis.yml: - travis: added packages required to build man page - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.9 - -2020-03-09 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp: - create image files in tmpdir instead of cwd - - * src/PsSpecialHandler.cpp: - fixed mime type of JPEG images - - * src/utility.hpp: - base64_copy: added parameter to set line length - - * src/XMLNode.cpp: - wrap lines with base64 image data (200 chars/line) - - * doc/Makefile.am: - make install: use existing dvisvgm.1 if it can't be rebuilt -However, - "make dist" and "make distcheck" should still fail if the man page -can't - be built in order to ensure the tarball always contains a recent version. - - * src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp: - some code cleanup - -2020-03-08 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in, src/PSInterpreter.cpp: - added bitmap format 'none' to disable image processing - -2020-03-07 Martin Gieseking <martin.gieseking@uos.de> - - * src/PSInterpreter.cpp, src/PSInterpreter.hpp, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.hpp, src/psdefs.cpp: - added image support for various JPEG and PNG variants - - * doc/dvisvgm.txt.in, src/CommandLine.hpp, src/dvisvgm.cpp, - src/options.xml: - added command-line option --bitmap-format - - * doc/generate-dvisvgm-sty.xsl: - manual page: reduce distance of table rows - -2020-03-05 Martin Gieseking <martin.gieseking@uos.de> - - * libs/xxHash/xxh3.h, libs/xxHash/xxhash.c, libs/xxHash/xxhash.h, - tests/HashFunctionTest.cpp: - updated xxhash to version 0.7.3 - -2020-03-02 Martin Gieseking <martin.gieseking@uos.de> - - * src/GlyphTracerMessages.hpp: - suppress tracer messages if no font info available - - * src/MetafontWrapper.cpp, src/MetafontWrapper.hpp: - added fallback method to get GF resolution applied by Metafont - -2020-02-29 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp: - fixed potential segfault - - * src/Bezier.cpp, src/BoundingBox.cpp, src/Font.cpp, src/FontWriter.cpp, - src/Matrix.cpp, src/TensorProductPatch.cpp, src/TriangularPatch.cpp: - replaced fabs() with std::abs() - -2020-02-26 Martin Gieseking <martin.gieseking@uos.de> - - * src/XMLNode.cpp: - fixed copy constructor of XMLElement - - * src/PSInterpreter.cpp, src/PSInterpreter.hpp, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.hpp, src/psdefs.cpp, tests/PSInterpreterTest.cpp: - fixed broken handling of PS tiling patterns - - * src/PSPattern.cpp: - simplified loop expression - - * src/XMLNode.cpp, src/optimizer/RedundantElementRemover.cpp: - don't remove clipPath elements if referenced in patterns - - * src/PsSpecialHandler.cpp: - don't add clip path to path elements in pattern definitions - -2020-02-25 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.cpp: - store image counter in globaldict - - * src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, src/XMLNode.cpp, - src/XMLNode.hpp, src/dvisvgm.cpp: - don't keep encoded image data in memory -To prevent memory issues, add - the base64-encoded image data when serializing -the XML tree. - - * src/PsSpecialHandler.cpp: - prevent access to invalid vector component - - * src/XMLNode.cpp, src/XMLNode.hpp: - prevent deep destructor recursion of XML nodes - - * src/psdefs.cpp: - PS handler: prevent write access to protected pattern dictionary - -2020-02-21 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.cpp: - don't access DataSource for shading types < 4 - -2020-02-20 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp: - apply clip path to image if present - - * src/optimizer/TransformSimplifier.cpp: - TransformSimplifier: prevent width/height from getting negative - - * src/Font.cpp, src/GraphicsPath.hpp, src/PsSpecialHandler.cpp, - tests/GraphicsPathTest.cpp: - changed signature of GraphicsPath::computeBBox() - -2020-02-18 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.cpp: - image operator: reset output device correctly - -2020-02-17 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp, src/psdefs.cpp: - stop image processing if PNG devices are unavailable -Handling of PS - operator 'image' relies on the GS output devices 'png16m' and -'pnggray' - (depending on the current color space). If they are unavailable, - the -image processing is stopped now instead of leaving GS with an - internal error. - - * src/PsSpecialHandler.cpp: - adapt bounding box to enclose embedded bitmaps - -2020-02-16 Martin Gieseking <martin.gieseking@uos.de> - - * src/EPSToSVG.hpp, src/ImageToSVG.cpp, src/ImageToSVG.hpp, - src/PDFToSVG.hpp: - fixed getCurrentPageNumber() for EPS and PDF files - - * src/FilePath.cpp, src/FilePath.hpp, tests/FilePathTest.cpp: - FilePath::suffix("") now removes the suffix if present - - * src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, src/psdefs.cpp: - sync location and base name of temporary PNG files with SVG file - - * src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, src/dvisvgm.cpp, - src/psdefs.cpp: - remove temporary PNG files if --keep is not given - -2020-02-15 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.cpp: - added evaluation of PS Level 1 image operators - -2020-02-14 Martin Gieseking <martin.gieseking@uos.de> - - * src/Matrix.cpp, tests/MatrixTest.cpp: - fixed row/column issue in Matrix::invert() - - * src/FontWriter.cpp, src/utility.hpp: - added wrapper function for util::base64_copy() - - * src/PSInterpreter.cpp, src/PSInterpreter.hpp, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.hpp, src/psdefs.cpp, tests/PSInterpreterTest.cpp: - added processing of PS image operator - -2020-02-12 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in: - manpage: added info on default values listed by --help - -2020-01-19 Martin Gieseking <martin.gieseking@uos.de> - - * src/GraphicsPathParser.hpp, src/Makefile.am, - tests/GraphicsPathParserTest.cpp, tests/Makefile.am: - added class to parse SVG path commands - -2020-01-17 Martin Gieseking <martin.gieseking@uos.de> - - * src/GraphicsPath.hpp: - arcto: use template type for rx and ry instead of double - -2020-01-14 Martin Gieseking <martin.gieseking@uos.de> - - * src/PageSize.cpp: - replaced floor(x+0.5) with round(x) - -2020-01-06 Martin Gieseking <martin.gieseking@uos.de> - - * src/Ghostscript.cpp: - added check for libgs.dylib.N (Mac only) - -2020-01-02 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, - doc/dvisvgm.txt.in, doc/tweak-db-article.xsl, doc/tweak-db-refentry.xsl, - doc/tweak-dblatex-pdf.xsl, libs/Makefile.am, - libs/ff-woff/fontforge/tmpfile2.cpp, src/AGLTable.hpp, - src/BasicDVIReader.cpp, src/BasicDVIReader.hpp, src/Bezier.cpp, - src/Bezier.hpp, src/BgColorSpecialHandler.cpp, - src/BgColorSpecialHandler.hpp, src/Bitmap.cpp, src/Bitmap.hpp, - src/BoundingBox.cpp, src/BoundingBox.hpp, src/CLCommandLine.cpp, - src/CLCommandLine.hpp, src/CLOption.hpp, src/CMap.cpp, src/CMap.hpp, - src/CMapManager.cpp, src/CMapManager.hpp, src/CMapReader.cpp, - src/CMapReader.hpp, src/Calculator.cpp, src/Calculator.hpp, - src/CharMapID.cpp, src/CharMapID.hpp, src/Character.hpp, src/Color.cpp, - src/Color.hpp, src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.hpp, - src/CommandLine.hpp, src/DLLoader.cpp, src/DLLoader.hpp, - src/DVIActions.hpp, src/DVIReader.cpp, src/DVIReader.hpp, - src/DVIToSVG.cpp, src/DVIToSVG.hpp, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.hpp, src/Directory.cpp, src/Directory.hpp, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.hpp, - src/EPSFile.cpp, src/EPSFile.hpp, src/EPSToSVG.hpp, - src/EllipticalArc.cpp, src/EllipticalArc.hpp, src/EmSpecialHandler.cpp, - src/EmSpecialHandler.hpp, src/EncFile.cpp, src/EncFile.hpp, - src/FileFinder.cpp, src/FileFinder.hpp, src/FilePath.cpp, - src/FilePath.hpp, src/FileSystem.cpp, src/FileSystem.hpp, - src/FixWord.hpp, src/Font.cpp, src/Font.hpp, src/FontCache.cpp, - src/FontCache.hpp, src/FontEncoding.cpp, src/FontEncoding.hpp, - src/FontEngine.cpp, src/FontEngine.hpp, src/FontManager.cpp, - src/FontManager.hpp, src/FontMap.cpp, src/FontMap.hpp, - src/FontMetrics.cpp, src/FontMetrics.hpp, src/FontStyle.hpp, - src/FontWriter.cpp, src/FontWriter.hpp, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.hpp, src/GFReader.cpp, src/GFReader.hpp, - src/GFTracer.cpp, src/GFTracer.hpp, src/Ghostscript.cpp, - src/Ghostscript.hpp, src/Glyph.hpp, src/GlyphTracerMessages.hpp, - src/GraphicsPath.hpp, src/HashFunction.cpp, src/HashFunction.hpp, - src/HtmlSpecialHandler.cpp, src/HtmlSpecialHandler.hpp, - src/HyperlinkManager.cpp, src/HyperlinkManager.hpp, src/ImageToSVG.cpp, - src/ImageToSVG.hpp, src/InputBuffer.cpp, src/InputBuffer.hpp, - src/InputReader.cpp, src/InputReader.hpp, src/JFM.cpp, src/JFM.hpp, - src/Length.cpp, src/Length.hpp, src/MD5HashFunction.hpp, src/Makefile.am, - src/MapLine.cpp, src/MapLine.hpp, src/Matrix.cpp, src/Matrix.hpp, - src/Message.cpp, src/Message.hpp, src/MessageException.hpp, - src/MetafontWrapper.cpp, src/MetafontWrapper.hpp, src/MiKTeXCom.cpp, - src/MiKTeXCom.hpp, src/NoPsSpecialHandler.cpp, - src/NoPsSpecialHandler.hpp, src/NumericRanges.hpp, src/PDFParser.cpp, - src/PDFParser.hpp, src/PDFToSVG.hpp, src/PSFilter.hpp, - src/PSInterpreter.cpp, src/PSInterpreter.hpp, src/PSPattern.cpp, - src/PSPattern.hpp, src/PSPreviewFilter.cpp, src/PSPreviewFilter.hpp, - src/PageRanges.cpp, src/PageRanges.hpp, src/PageSize.cpp, - src/PageSize.hpp, src/Pair.hpp, src/PapersizeSpecialHandler.cpp, - src/PapersizeSpecialHandler.hpp, src/PathClipper.cpp, - src/PathClipper.hpp, src/PdfSpecialHandler.cpp, - src/PdfSpecialHandler.hpp, src/PreScanDVIReader.cpp, - src/PreScanDVIReader.hpp, src/Process.cpp, src/Process.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, src/RangeMap.cpp, - src/RangeMap.hpp, src/SVGCharHandler.cpp, src/SVGCharHandler.hpp, - src/SVGCharHandlerFactory.cpp, src/SVGCharHandlerFactory.hpp, - src/SVGCharPathHandler.cpp, src/SVGCharPathHandler.hpp, - src/SVGCharTspanTextHandler.cpp, src/SVGCharTspanTextHandler.hpp, - src/SVGOutput.cpp, src/SVGOutput.hpp, src/SVGSingleCharTextHandler.cpp, - src/SVGSingleCharTextHandler.hpp, src/SVGTree.cpp, src/SVGTree.hpp, - src/ShadingPatch.cpp, src/ShadingPatch.hpp, src/SignalHandler.cpp, - src/SignalHandler.hpp, src/SourceInput.cpp, src/SourceInput.hpp, - src/SpecialActions.hpp, src/SpecialHandler.hpp, src/SpecialManager.cpp, - src/SpecialManager.hpp, src/StreamReader.cpp, src/StreamReader.hpp, - src/StreamWriter.cpp, src/StreamWriter.hpp, src/Subfont.cpp, - src/Subfont.hpp, src/System.cpp, src/System.hpp, src/TFM.cpp, - src/TFM.hpp, src/TTFAutohint.cpp, src/TTFAutohint.hpp, - src/TensorProductPatch.cpp, src/TensorProductPatch.hpp, src/Terminal.cpp, - src/Terminal.hpp, src/ToUnicodeMap.cpp, src/ToUnicodeMap.hpp, - src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.hpp, - src/TriangularPatch.cpp, src/TriangularPatch.hpp, src/TrueTypeFont.cpp, - src/TrueTypeFont.hpp, src/Unicode.cpp, src/Unicode.hpp, - src/VFActions.hpp, src/VFReader.cpp, src/VFReader.hpp, - src/VectorIterator.hpp, src/VectorStream.hpp, src/XMLDocument.cpp, - src/XMLDocument.hpp, src/XMLNode.cpp, src/XMLNode.hpp, src/XMLString.cpp, - src/XMLString.hpp, src/XXHashFunction.hpp, src/ZLibOutputStream.hpp, - src/dvisvgm.cpp, src/ffwrapper.c, src/ffwrapper.h, src/macros.hpp, - src/optimizer/AttributeExtractor.cpp, - src/optimizer/AttributeExtractor.hpp, src/optimizer/DependencyGraph.hpp, - src/optimizer/GroupCollapser.cpp, src/optimizer/GroupCollapser.hpp, - src/optimizer/OptimizerModule.hpp, - src/optimizer/RedundantElementRemover.cpp, - src/optimizer/RedundantElementRemover.hpp, - src/optimizer/SVGOptimizer.cpp, src/optimizer/SVGOptimizer.hpp, - src/optimizer/TextSimplifier.cpp, src/optimizer/TextSimplifier.hpp, - src/optimizer/TransformSimplifier.cpp, - src/optimizer/TransformSimplifier.hpp, src/optimizer/WSNodeRemover.cpp, - src/optimizer/WSNodeRemover.hpp, src/options.dtd, src/options.xml, - src/psdefs.cpp, src/utility.cpp, src/utility.hpp, src/version.hpp, - src/version.hpp.in, src/windows.hpp, tests/BezierTest.cpp, - tests/BitmapTest.cpp, tests/BoundingBoxTest.cpp, - tests/CMapManagerTest.cpp, tests/CMapReaderTest.cpp, tests/CMapTest.cpp, - tests/CalculatorTest.cpp, tests/ColorSpecialTest.cpp, - tests/ColorTest.cpp, tests/CommandLineTest.cpp, tests/DVIReaderTest.cpp, - tests/DependencyGraphTest.cpp, tests/DirectoryTest.cpp, - tests/DvisvgmSpecialTest.cpp, tests/EllipticalArcTest.cpp, - tests/EmSpecialTest.cpp, tests/FileFinderTest.cpp, - tests/FilePathTest.cpp, tests/FileSystemTest.cpp, - tests/FontCacheTest.cpp, tests/FontManagerTest.cpp, - tests/FontMapTest.cpp, tests/GFGlyphTracerTest.cpp, - tests/GFReaderTest.cpp, tests/GhostscriptTest.cpp, - tests/GraphicsPathTest.cpp, tests/HashFunctionTest.cpp, - tests/JFMReaderTest.cpp, tests/LengthTest.cpp, tests/Makefile.am, - tests/MapLineTest.cpp, tests/MatrixTest.cpp, - tests/MessageExceptionTest.cpp, tests/PDFParserTest.cpp, - tests/PSInterpreterTest.cpp, tests/PageRagesTest.cpp, - tests/PageSizeTest.cpp, tests/PairTest.cpp, - tests/PapersizeSpecialTest.cpp, tests/RangeMapTest.cpp, - tests/SVGOutputTest.cpp, tests/ShadingPatchTest.cpp, - tests/SpecialManagerTest.cpp, tests/SplittedCharInputBufferTest.cpp, - tests/StreamInputBufferTest.cpp, tests/StreamReaderTest.cpp, - tests/StreamWriterTest.cpp, tests/StringMatcherTest.cpp, - tests/SubfontTest.cpp, tests/TFMReaderTest.cpp, - tests/TensorProductPatchTest.cpp, tests/ToUnicodeMapTest.cpp, - tests/TpicSpecialTest.cpp, tests/TriangularPatchTest.cpp, - tests/UnicodeTest.cpp, tests/UtilityTest.cpp, - tests/VectorIteratorTest.cpp, tests/VectorStreamTest.cpp, - tests/XMLNodeTest.cpp, tests/XMLStringTest.cpp, tests/check-conv, - tests/create-makefile, tests/data/Makefile.am, tests/genhashcheck.py, - tests/normalize.xsl, tests/testmain.cpp: - updated year in copyright statements to 2020 - -2019-12-23 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in: - few additions to the manual page - -2019-12-07 Martin Gieseking <martin.gieseking@uos.de> - - * NEWS: - updated NEWS - -2019-12-06 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.8.2 - -2019-12-05 Martin Gieseking <martin.gieseking@uos.de> - - * src/FileSystem.cpp: - convert path separators only in Windows binaries - - * src/Process.cpp: - Subprocess: handle absolute path to executable correctly - - * src/FileFinder.cpp, src/FileFinder.hpp: - added FileFinder::lookupExecutable() - - * src/MetafontWrapper.cpp: - call 'mf-nowin' instead of 'mf' if available (closes #121) - -2019-12-04 Martin Gieseking <martin.gieseking@uos.de> - - * src/PSInterpreter.cpp: - adapt path separators before passing them to Ghostscript -closes #123 - - * src/FilePath.cpp, src/FileSystem.cpp, src/FileSystem.hpp, - src/PSInterpreter.cpp, src/PsSpecialHandler.cpp, src/dvisvgm.cpp: - renamed adaptPathSeperators() to ensureForwardSlashes() - - * src/Calculator.hpp, src/CharMapID.hpp, src/Color.hpp, src/Directory.cpp, - src/Directory.hpp, src/FixWord.hpp, src/FontStyle.hpp, - src/GFGlyphTracer.cpp, src/GFGlyphTracer.hpp, src/GFReader.cpp, - src/GFReader.hpp, src/GFTracer.cpp, src/GFTracer.hpp, - src/GlyphTracerMessages.hpp, src/HtmlSpecialHandler.hpp, - src/HyperlinkManager.hpp, src/Length.hpp, src/NoPsSpecialHandler.hpp, - src/PSPreviewFilter.cpp, src/PSPreviewFilter.hpp, src/PathClipper.hpp, - src/PreScanDVIReader.cpp, src/PreScanDVIReader.hpp, src/Process.cpp, - src/PsSpecialHandler.hpp, src/RangeMap.hpp, src/SVGOutput.cpp, - src/SVGOutput.hpp, src/SignalHandler.cpp, src/SignalHandler.hpp, - src/TFM.hpp, src/VFReader.cpp, src/VFReader.hpp, src/VectorStream.hpp: - simplified constructors, avoid constant initializers - - * src/FileSystem.cpp, src/FileSystem.hpp: - removed redundant class variable - - * src/MiKTeXCom.cpp: - fixed type mismatch of FindFile expression - -2019-12-03 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.cpp: - fixed handling of 'nulldevice' in PS operator 'restore' -closes #122 - -2019-11-23 Martin Gieseking <martin.gieseking@uos.de> - - * src/GraphicsPath.hpp: - added missing namespace prefix to pow() - -2019-11-14 Martin Gieseking <martin.gieseking@uos.de> - - * NEWS, README.md: - updated NEWS and README - -2019-11-12 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.8.1 - - * doc/dvisvgm.txt.in: - some minor changes of the manual page - -2019-11-11 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.cpp: - added newline at end of file - -2019-11-08 Martin Gieseking <martin.gieseking@uos.de> - - * src/optimizer/GroupCollapser.hpp: - made GroupCollapser::moveAttributes() static - - * doc/dvisvgm.txt.in, src/optimizer/Makefile.am, - src/optimizer/SVGOptimizer.cpp, src/optimizer/TextSimplifier.cpp, - src/optimizer/TextSimplifier.hpp: - added optimizer module TextSimplifier - - * doc/dvisvgm.txt.in, src/XMLNode.hpp, - src/optimizer/AttributeExtractor.hpp, src/optimizer/TextSimplifier.cpp: - extended functionality of optimizer module 'simplify-text' -- common - attributes of tspans are moved to the enclosing text element -- tspans - without attributes are unwrapped - -2019-11-05 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIToSVGActions.cpp, src/DVIToSVGActions.hpp, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.hpp: - removed some constant initializers from constructors - - * src/DVIToSVGActions.cpp, src/DVIToSVGActions.hpp, - src/EmSpecialHandler.cpp, src/PSInterpreter.cpp, src/PSInterpreter.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, - src/SpecialActions.hpp, src/TpicSpecialHandler.cpp, src/psdefs.cpp, - tests/PSInterpreterTest.cpp: - added support for PS operator 'nulldevice' - -2019-10-30 Martin Gieseking <martin.gieseking@uos.de> - - * src/FileFinder.cpp: - added PNG, JPEG, and SVG to supported formats of FileFinder - - * src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp: - psfile: create absolute or relative paths to reference images -depending - on the file location and the file path given by the user - -2019-10-29 Martin Gieseking <martin.gieseking@uos.de> - - * src/FilePath.cpp, src/FilePath.hpp: - added method to check if a path is absolute or relative - -2019-10-27 Martin Gieseking <martin.gieseking@uos.de> - - * src/CMapReader.cpp, src/CMapReader.hpp, tests/CMapReaderTest.cpp: - CMapReader: extracted common code; added test for 'begincidchar' - -2019-10-25 Martin Gieseking <martin.gieseking@uos.de> - - * tests/Makefile.am, tests/create-makefile: - added missing gtest file to distribution - - * tests/FontCacheTest.cpp: - remove temporary files created by FontCacheTest - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.8 - - * NEWS: - updated NEWS - -2019-10-23 Martin Gieseking <martin.gieseking@uos.de> - - * src/CMapReader.cpp, src/CMapReader.hpp: - CMapReader: added support for operator 'begincidchar' (patch by Akira - Kakuto) - -2019-10-20 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIToSVG.cpp, src/DVIToSVG.hpp, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.hpp, src/FilePath.cpp, src/FilePath.hpp, - src/HyperlinkManager.cpp, src/ImageToSVG.cpp, src/ImageToSVG.hpp, - src/PDFToSVG.hpp, src/SVGOutput.cpp, src/SVGOutput.hpp, - src/SpecialActions.hpp, tests/FilePathTest.cpp, tests/SVGOutputTest.cpp: - SVGOutput: renamed 'filename' to 'filepath'; changed return type to - FilePath - -2019-10-18 Martin Gieseking <martin.gieseking@uos.de> - - * tests/gtest/include/gtest/gtest-death-test.h, - tests/gtest/include/gtest/gtest-matchers.h, - tests/gtest/include/gtest/gtest-message.h, - tests/gtest/include/gtest/gtest-param-test.h, - tests/gtest/include/gtest/gtest-printers.h, - tests/gtest/include/gtest/gtest-spi.h, - tests/gtest/include/gtest/gtest-test-part.h, - tests/gtest/include/gtest/gtest-typed-test.h, - tests/gtest/include/gtest/gtest.h, - tests/gtest/include/gtest/gtest_pred_impl.h, - tests/gtest/include/gtest/internal/gtest-death-test-internal.h, - tests/gtest/include/gtest/internal/gtest-filepath.h, - tests/gtest/include/gtest/internal/gtest-internal.h, - tests/gtest/include/gtest/internal/gtest-param-util.h, - tests/gtest/include/gtest/internal/gtest-port-arch.h, - tests/gtest/include/gtest/internal/gtest-port.h, - tests/gtest/include/gtest/internal/gtest-string.h, - tests/gtest/include/gtest/internal/gtest-type-util.h, - tests/gtest/src/gtest-all.cc, tests/gtest/src/gtest-death-test.cc, - tests/gtest/src/gtest-filepath.cc, tests/gtest/src/gtest-internal-inl.h, - tests/gtest/src/gtest-matchers.cc, tests/gtest/src/gtest-port.cc, - tests/gtest/src/gtest-printers.cc, tests/gtest/src/gtest-test-part.cc, - tests/gtest/src/gtest-typed-test.cc, tests/gtest/src/gtest.cc, - tests/gtest/src/gtest_main.cc, tests/testutil.hpp: - updated gtest to version 1.10 - - * src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp: - psfile: added support for PDF, JPG, PNG, and SVG files - - * src/optimizer/TransformSimplifier.cpp, - src/optimizer/TransformSimplifier.hpp: - try to incorporate transformations into positional and size attributes - - * src/PsSpecialHandler.cpp: - PS handler: minor code enhancements - -2019-10-17 Martin Gieseking <martin.gieseking@uos.de> - - * src/PSInterpreter.cpp: - call GS with -dDELAYSAFER if GS version >= 9.50 -Ghostscript 9.50 - introduced incompatible changes regarding SAFER which is now -active by - default. This conflicts with DELAYBIND and WRITESYSTEMDICT, which - are -necessary for dvisvgm to work - correctly. -https://www.ghostscript.com/doc/9.50/Use.htm#Safer - - * tests/HashFunctionTest.cpp: - adapted XXH128 tests to changes in xxhash 0.7.2 - -2019-10-08 Martin Gieseking <martin.gieseking@uos.de> - - * libs/xxHash/xxh3.h, libs/xxHash/xxhash.c, libs/xxHash/xxhash.h: - updated xxhash to version 0.7.2 - -2019-10-06 Martin Gieseking <martin.gieseking@uos.de> - - * src/EllipticalArc.cpp: - minor changes in EllipticalArc.cpp - -2019-09-19 Martin Gieseking <martin.gieseking@uos.de> - - * src/PathClipper.cpp: - prevent warnings about uninitialized variables - -2019-09-17 Martin Gieseking <martin.gieseking@uos.de> - - * libs/potrace/auxiliary.h, libs/potrace/bitmap.h, libs/potrace/config.h, - libs/potrace/curve.c, libs/potrace/curve.h, libs/potrace/decompose.c, - libs/potrace/decompose.h, libs/potrace/lists.h, - libs/potrace/potracelib.c, libs/potrace/potracelib.h, - libs/potrace/progress.h, libs/potrace/trace.c, libs/potrace/trace.h: - updated potrace to version 1.16 - - * src/Bitmap.cpp, src/Bitmap.hpp: - minor code cleanup of Bitmap class - -2019-09-12 Martin Gieseking <martin.gieseking@uos.de> - - * src/GraphicsPath.hpp: - renamed misspelled variables 'largeArgFlag' to 'largeArcFlag' - - * src/EllipticalArc.cpp: - removed #include "debug.h" - -2019-09-03 Martin Gieseking <martin.gieseking@uos.de> - - * libs/woff2/src/glyph.cc, libs/woff2/src/normalize.cc: - fixed two compiler warnings in libwoff2 -regarding signed/unsigned - comparison - -2019-08-27 Martin Gieseking <martin.gieseking@uos.de> - - * src/XXHashFunction.hpp, tests/HashFunctionTest.cpp: - simplified implementation of XXHashFunction::digestValue() and tests - -2019-08-26 Martin Gieseking <martin.gieseking@uos.de> - - * src/StreamReader.cpp, src/StreamReader.hpp, src/VFReader.cpp, - tests/StreamReaderTest.cpp: - removed vector reference from StreamReader::readBytes() - - * src/CRC32.cpp, src/CRC32.hpp, src/FontCache.cpp, src/FontCache.hpp, - src/HashFunction.cpp, src/HashFunction.hpp, src/Makefile.am, - src/StreamReader.cpp, src/StreamReader.hpp, src/StreamWriter.cpp, - src/StreamWriter.hpp, src/XXHashFunction.hpp, src/utility.hpp, - tests/CRC32Test.cpp, tests/FontCacheTest.cpp, tests/Makefile.am, - tests/StreamReaderTest.cpp, tests/StreamWriterTest.cpp: - replaced CRC32 cache checksums with XXH32 hashes - -2019-08-25 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in, libs/xxHash/xxhash.h, src/HashFunction.cpp, - src/XXHashFunction.hpp, tests/HashFunctionTest.cpp: - added support for the experimental 128-bit XXH3 algorithm - -2019-08-24 Martin Gieseking <martin.gieseking@uos.de> - - * src/GraphicsPath.hpp: - avoid redundant sequences of closepath (z/Z) commands - -2019-08-19 Martin Gieseking <martin.gieseking@uos.de> - - * src/GraphicsPath.hpp, tests/GraphicsPathTest.cpp: - added short versions of 'quadto' and 'cubicto' to GraphicsPath - -2019-08-18 Martin Gieseking <martin.gieseking@uos.de> - - * src/TpicSpecialHandler.cpp, tests/TpicSpecialTest.cpp: - use class EllipticalArc to process arcs in tpic handler - -2019-08-15 Martin Gieseking <martin.gieseking@uos.de> - - * libs/xxHash/Makefile.am, libs/xxHash/xxh3.h, libs/xxHash/xxhash.c, - libs/xxHash/xxhash.h: - updated xxhash to version 0.7.1 - - * src/DVIToSVG.cpp: - print error message on wrong page hash arguments - -2019-08-14 Martin Gieseking <martin.gieseking@uos.de> - - * src/EllipticalArc.cpp, src/EllipticalArc.hpp, src/GraphicsPath.hpp, - tests/EllipticalArcTest.cpp, tests/GraphicsPathTest.cpp: - added GraphicsPath::approximateArcs() - -2019-08-13 Martin Gieseking <martin.gieseking@uos.de> - - * src/Bezier.cpp, src/Bezier.hpp, src/EllipticalArc.cpp, - src/EllipticalArc.hpp, src/GraphicsPath.hpp, src/Makefile.am, - src/Pair.hpp, src/utility.cpp, src/utility.hpp, - tests/EllipticalArcTest.cpp, tests/Makefile.am: - added support of 'arcto' command to class GraphicsPath - -2019-08-08 Martin Gieseking <martin.gieseking@uos.de> - - * src/Bezier.cpp, src/Bezier.hpp, src/PsSpecialHandler.cpp, - src/ShadingPatch.hpp, src/TensorProductPatch.cpp, - src/TensorProductPatch.hpp, src/TriangularPatch.cpp, - src/TriangularPatch.hpp, tests/BezierTest.cpp, - tests/TensorProductPatchTest.cpp, tests/TriangularPatchTest.cpp: - getBBox(): replaced reference parameter with return value - - * src/PsSpecialHandler.cpp, src/ShadingPatch.hpp, - src/TensorProductPatch.cpp, src/TensorProductPatch.hpp, - src/TriangularPatch.cpp, src/TriangularPatch.hpp, - tests/TensorProductPatchTest.cpp, tests/TriangularPatchTest.cpp: - getBoundaryPath(): replaced reference parameter with return value - -2019-08-04 Martin Gieseking <martin.gieseking@uos.de> - - * src/Color.cpp, src/Pair.hpp: - use std::hypot() to compute length of vector - -2019-08-01 Martin Gieseking <martin.gieseking@uos.de> - - * src/MD5HashFunction.hpp: - removed 'explicit' from default constructor -Work around for C++11 bug in - GCC 4.8: -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58255 - - * src/FontCache.cpp, src/FontEngine.cpp, src/FontWriter.cpp, - src/GraphicsPath.hpp, src/Pair.hpp, src/PathClipper.cpp, - src/TpicSpecialHandler.cpp, src/optimizer/CMakeLists.txt, - src/optimizer/Makefile.am, tests/FontCacheTest.cpp, - tests/GraphicsPathTest.cpp: - redesigned implementation of class GraphicsPath -- use variant instances - to store path commands instead of plain structs -- process commands in - visitor objects -- removed GraphicsPath::Actions::draw() that exposed - implemenation details -- simplify iterate() method - -2019-07-29 Martin Gieseking <martin.gieseking@uos.de> - - * src/FontCache.cpp: - use direct string concatenation instead of temporary string stream - -2019-07-28 Martin Gieseking <martin.gieseking@uos.de> - - * doc/Makefile.am: - added missing dependency to Makefile rule - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.7.4 - - * NEWS: - updated NEWS - -2019-07-27 Martin Gieseking <martin.gieseking@uos.de> - - * doc/Makefile.am: - moved generation of dvisvgm.sty to separate rule - -2019-07-26 Martin Gieseking <martin.gieseking@uos.de> - - * src/Color.cpp: - use std::round to round color value (fixes #116) - - * doc/Makefile.am, doc/dvisvgm.sty, doc/dvisvgm.txt.in, - doc/generate-dvisvgm-sty.xsl, doc/tweak-db-article.xsl, - doc/tweak-db-refentry.xsl: - show revision date given in doc/dvisvgm.txt on manual page -rather than - the build date - -2019-07-25 Martin Gieseking <martin.gieseking@uos.de> - - * src/TrueTypeFont.cpp: - call ofstream constructor with std::string instead of C string - -2019-07-23 Martin Gieseking <martin.gieseking@uos.de> - - * src/MetafontWrapper.cpp: - replaced atoi() with stoi() - -2019-07-16 Martin Gieseking <martin.gieseking@uos.de> - - * src/MetafontWrapper.cpp: - don't access moved string - - * doc/dvisvgm.txt.in, src/dvisvgm.cpp: - changed cache location to $XDG_CACHE_HOME/dvisvgm -or ~/.cache/dvisvgm if - $XDG_CACHE_HOME is not set (closes #112) - -2019-07-12 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.7.3 - - * NEWS: - updated NEWS - -2019-07-09 Martin Gieseking <martin.gieseking@uos.de> - - * src/XMLString.cpp, src/utility.cpp, src/utility.hpp, - tests/UtilityTest.cpp: - added util::to_string(double) that strips trailing zeros -(in contrast to - std::to_string) - - * src/CMapManager.cpp, src/CMapReader.cpp, src/DVIReader.cpp, - src/GFReader.cpp, src/JFM.cpp, src/Length.cpp, src/MapLine.cpp, - src/Matrix.cpp, src/PDFParser.cpp, src/SVGOutput.cpp, src/VFReader.cpp: - replaced some string streams with plain strings - -2019-07-08 Martin Gieseking <martin.gieseking@uos.de> - - * README.md: - updated badges in README - - * src/Font.cpp, src/Font.hpp, src/dvisvgm.cpp: - changed type of CACHE_PATH to std::string - -2019-07-07 Martin Gieseking <martin.gieseking@uos.de> - - * .github/FUNDING.yml: - added funding.yml - -2019-07-06 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIToSVG.cpp: - properly assign collected chars to unique fonts (fixes #110) - -2019-06-18 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in: - manpage: updated \special example - -2019-06-17 Martin Gieseking <martin.gieseking@uos.de> - - * src/BasicDVIReader.cpp: - replaced string streams with plain strings - -2019-06-11 Martin Gieseking <martin.gieseking@uos.de> - - * tests/genhashcheck.py: - use range-based loop to iterate over C array - -2019-06-07 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.7.2 - - * NEWS: - updated NEWS - -2019-05-29 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.cpp: - 'GS_PDF_ProcSet' and 'pdfdict' are private as of GS 9.27 -As a workaround - 'runpdfbegin' and 'runpdfend' can be used to enter/leave the - dictionaries. - -2019-05-20 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.7.1 - - * NEWS: - updated NEWS - -2019-05-10 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, .gitignore, src/MiKTeXCom.hpp: - added files required to access the MiKTeX session object - -2019-05-06 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.cpp: - pop unused operand in PS operator 'setmatrix' (closes #106) - -2019-04-18 Martin Gieseking <martin.gieseking@uos.de> - - * src/optimizer/AttributeExtractor.cpp, src/optimizer/GroupCollapser.cpp, - src/utility.hpp: - removed util::make_array() due to compatibility - issues -https://trac.macports.org/ticket/58347 - -2019-04-17 Martin Gieseking <martin.gieseking@uos.de> - - * README, README.md: - updated URL of FontForge website - -2019-04-15 Martin Gieseking <martin.gieseking@uos.de> - - * README.md: - removed Coverity badge as the service seems to be dead - -2019-04-14 Martin Gieseking <martin.gieseking@uos.de> - - * src/Makefile.am: - add file windows.hpp to source tarball - -2019-04-13 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.7 - - * NEWS: - updated NEWS - -2019-04-12 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in, src/DvisvgmSpecialHandler.cpp: - added specials "bbox lock" and "bbox unlock" to lock/unlock the page - bbox -(closes #105) - - * doc/dvisvgm.txt.in, src/DvisvgmSpecialHandler.cpp: - added optional modifier 'transform' to the dvisvgm:bbox specials - - * doc/dvisvgm.txt.in, src/DvisvgmSpecialHandler.cpp: - added macro {?matrix} to raw specials - -2019-04-11 Martin Gieseking <martin.gieseking@uos.de> - - * src/Bezier.cpp, src/BoundingBox.hpp, src/CMap.hpp, src/CMapReader.hpp, - src/Character.hpp, src/Color.hpp, src/DLLoader.hpp, src/Directory.cpp, - src/Directory.hpp, src/DvisvgmSpecialHandler.cpp, src/EPSFile.hpp, - src/EncFile.hpp, src/FilePath.hpp, src/Font.hpp, src/FontEncoding.hpp, - src/FontMap.hpp, src/FontWriter.cpp, src/FontWriter.hpp, - src/GFTracer.hpp, src/GlyphTracerMessages.hpp, src/GraphicsPath.hpp, - src/InputBuffer.hpp, src/InputReader.hpp, src/JFM.hpp, src/Length.hpp, - src/MD5HashFunction.hpp, src/MapLine.hpp, src/Matrix.cpp, src/Matrix.hpp, - src/Message.hpp, src/PDFParser.cpp, src/PDFParser.hpp, src/PSPattern.hpp, - src/PSPreviewFilter.hpp, src/PageSize.hpp, src/Pair.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, - src/SVGCharHandler.hpp, src/SVGCharTspanTextHandler.hpp, - src/SVGOutput.hpp, src/SVGSingleCharTextHandler.hpp, - src/ShadingPatch.hpp, src/SourceInput.hpp, src/StreamReader.hpp, - src/StreamWriter.hpp, src/TFM.hpp, src/TensorProductPatch.hpp, - src/TriangularPatch.hpp, src/TrueTypeFont.hpp, src/VFReader.cpp, - src/VFReader.hpp, src/VectorIterator.hpp, src/VectorStream.hpp, - src/XMLDocument.hpp, src/XMLString.hpp, src/XXHashFunction.hpp, - src/optimizer/DependencyGraph.hpp: - marked most constructors 'explicit' if they may be called with a single - parameter - - * src/DVIReader.cpp, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, - src/Font.cpp, src/FontEngine.cpp, src/FontManager.cpp, - src/HyperlinkManager.cpp, src/ImageToSVG.cpp, src/PDFParser.hpp, - src/PSInterpreter.cpp, src/PdfSpecialHandler.cpp, - src/PsSpecialHandler.cpp, src/SVGCharHandler.cpp, - src/SVGCharPathHandler.cpp, src/SVGCharTspanTextHandler.cpp, - src/SVGTree.cpp, src/TensorProductPatch.cpp, src/TriangularPatch.cpp, - src/TrueTypeFont.cpp: - use automatic type deduction in conjunction with casts - - * src/EPSFile.cpp, src/EmSpecialHandler.cpp, src/EncFile.cpp, - src/InputReader.cpp, src/PSInterpreter.cpp, src/PsSpecialHandler.cpp, - src/SpecialManager.cpp, src/StreamReader.cpp, src/Subfont.cpp, - src/Unicode.cpp, src/dvisvgm.cpp: - explicitly cast integers representing characeters to char - - * src/CLCommandLine.hpp, src/DvisvgmSpecialHandler.cpp, - src/DvisvgmSpecialHandler.hpp, src/EncFile.cpp, src/Font.cpp, - src/Font.hpp, src/MetafontWrapper.cpp, src/MetafontWrapper.hpp, - src/Process.cpp, src/Process.hpp, src/SVGOutput.cpp, src/SVGOutput.hpp, - src/Subfont.cpp, src/Subfont.hpp: - if possible, move string parameters instead of copying them - - * src/Color.cpp, src/FontEngine.cpp, src/PathClipper.cpp: - use std::lround() rather than truncation - - * src/DVIActions.hpp, src/DVIToSVGActions.hpp, src/Font.hpp, - src/PSInterpreter.cpp, src/SignalHandler.cpp, src/System.cpp: - replaced 0 and NULL with nullptr - - * src/Message.cpp, src/Message.hpp: - drop 'const' from char parameter - - * src/EPSFile.cpp: - replaced C array with std::array - - * src/SpecialManager.hpp, src/ZLibOutputStream.hpp: - made deleted constructor public; use 'default' with default constructor - - * src/PageSize.cpp: - removed redundant semicolons - -2019-04-10 Martin Gieseking <martin.gieseking@uos.de> - - * src/RangeMap.cpp, tests/RangeMapTest.cpp: - use std::accumulate() to compute the number of values mapped by a - RangeMap - -2019-04-09 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in: - reworded some paragraphs on the manpage - -2019-04-05 Martin Gieseking <martin.gieseking@uos.de> - - * src/DvisvgmSpecialHandler.cpp, src/HtmlSpecialHandler.cpp, - src/InputReader.cpp, src/InputReader.hpp, src/PsSpecialHandler.cpp, - tests/StreamInputBufferTest.cpp: - optionally allow 'flags' (attributes w/o values) in attribute lists - - * src/PsSpecialHandler.cpp: - psfile/pdffile: evaluate boolean attribute 'clip' -If given, the drawing - region is clipped to the bounding box of the -EPS/PDF page being - processed. -(closes #104) - - * .appveyor.yml: - AppVeyor: switched build image to VS 2019 Preview - -2019-04-04 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml: - AppVeyor: updated release number of ttfautohint-dll - - * m4/ax_cxx_compile_stdcxx.m4: - updated ax_cxx_compile_stdcxx.m4 to version 11 - -2019-04-03 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml: - AppVeyor: set freetype version to 2.10.0; use current image of VS 2017 - again - - * src/SVGTree.cpp: - fixed gcc 5 failure regarding initializer lists - - * src/FileFinder.cpp: - pdffile special: look for pdf files in texmf tree too (closes #103) - -2019-04-01 Martin Gieseking <martin.gieseking@uos.de> - - * src/optimizer/GroupCollapser.cpp: - group collapser: unwrap groups without attributes - - * src/DVIToSVGActions.hpp, src/DvisvgmSpecialHandler.cpp, - src/DvisvgmSpecialHandler.hpp, src/EmSpecialHandler.cpp, - src/HyperlinkManager.cpp, src/ImageToSVG.hpp, src/PSPattern.cpp, - src/PsSpecialHandler.cpp, src/SpecialActions.hpp, - src/TpicSpecialHandler.cpp, tests/DvisvgmSpecialTest.cpp, - tests/EmSpecialTest.cpp, tests/TpicSpecialTest.cpp: - reduced interface of SpecialActions -- removed append/prepend and context - functions -- added direct access to the SVGTree object - -2019-03-31 Martin Gieseking <martin.gieseking@uos.de> - - * src/XMLNode.cpp, src/XMLNode.hpp, src/optimizer/AttributeExtractor.cpp, - src/optimizer/AttributeExtractor.hpp, src/optimizer/GroupCollapser.cpp, - src/optimizer/RedundantElementRemover.cpp, - src/optimizer/TransformSimplifier.cpp, src/optimizer/WSNodeRemover.cpp, - tests/BoundingBoxTest.cpp, tests/TpicSpecialTest.cpp, - tests/XMLNodeTest.cpp: - refactored the implementation of the XML node classes -for easier - modifications of the XML tree - -2019-03-30 Martin Gieseking <martin.gieseking@uos.de> - - * libs/ff-woff/Makefile.am: - added missing zlib include path to ff-woff - - * src/CMapReader.cpp: - properly release memory if CMap throws an exception - -2019-03-28 Martin Gieseking <martin.gieseking@uos.de> - - * src/GraphicsPath.hpp: - skip redundant line drawing commands in path elements - -2019-03-27 Martin Gieseking <martin.gieseking@uos.de> - - * src/XMLString.cpp, tests/DVIReaderTest.cpp, tests/GFGlyphTracerTest.cpp, - tests/MatrixTest.cpp: - replace "0." by "." in floating point numbers |x| < 1 - - * src/GraphicsPath.hpp, tests/GFGlyphTracerTest.cpp: - avoid redundant space characters in SVG paths - - * src/GraphicsPath.hpp, tests/TpicSpecialTest.cpp: - take precision into account when checking for reflection points - -2019-03-25 Martin Gieseking <martin.gieseking@uos.de> - - * src/Matrix.cpp, src/Matrix.hpp, tests/MatrixTest.cpp: - made Matrix::parse() a static member - - * configure.ac, doc/dvisvgm.txt.in, src/CommandLine.hpp, src/DVIToSVG.cpp, - src/DependencyGraph.hpp, src/ImageToSVG.cpp, src/Makefile.am, - src/SVGOptimizer.cpp, src/SVGOptimizer.hpp, src/SVGTree.cpp, - src/XMLNode.cpp, src/dvisvgm.cpp, src/optimizer/AttributeExtractor.cpp, - src/optimizer/AttributeExtractor.hpp, src/optimizer/CMakeLists.txt, - src/optimizer/DependencyGraph.hpp, src/optimizer/GroupCollapser.cpp, - src/optimizer/GroupCollapser.hpp, src/optimizer/Makefile.am, - src/optimizer/OptimizerModule.hpp, - src/optimizer/RedundantElementRemover.cpp, - src/optimizer/RedundantElementRemover.hpp, - src/optimizer/SVGOptimizer.cpp, src/optimizer/SVGOptimizer.hpp, - src/optimizer/TransformSimplifier.cpp, - src/optimizer/TransformSimplifier.hpp, src/optimizer/WSNodeRemover.cpp, - src/optimizer/WSNodeRemover.hpp, src/options.xml, - tests/DependencyGraphTest.cpp, tests/Makefile.am, tests/create-makefile: - moved optimizer classes to subdirectory - -2019-03-24 Martin Gieseking <martin.gieseking@uos.de> - - * src/Matrix.cpp, src/Matrix.hpp, src/PsSpecialHandler.cpp, - tests/MatrixTest.cpp: - swapped Matrix::lmultiply and Matrix::rmultiply - - * src/Matrix.cpp, src/Matrix.hpp, src/SVGOptimizer.cpp, - src/SVGOptimizer.hpp, src/utility.hpp, tests/MatrixTest.cpp: - added optimizer to simplify 'transform' attributes - -2019-03-23 Martin Gieseking <martin.gieseking@uos.de> - - * src/SVGOptimizer.cpp, src/SVGOptimizer.hpp, src/XMLNode.cpp, - src/XMLNode.hpp: - remove whitespace nodes before collapsing group elements - -2019-03-22 Martin Gieseking <martin.gieseking@uos.de> - - * src/InputBuffer.hpp: - added StringInputBuffer::assign() to assign a different string - - * src/InputReader.cpp, tests/StreamInputBufferTest.cpp: - replaced constraints for attribute names -- must start with a letter -- - may contain selected non-alphanumeric characters, like '-', '_', and '.' - - * doc/dvisvgm.txt.in, src/DvisvgmSpecialHandler.cpp, - src/DvisvgmSpecialHandler.hpp, src/SVGTree.cpp, src/XMLNode.cpp, - tests/DvisvgmSpecialTest.cpp: - allow split tags distributed over several dvisvgm:raw specials - -2019-03-21 Martin Gieseking <martin.gieseking@uos.de> - - * src/BgColorSpecialHandler.cpp, src/PSPattern.cpp, src/PageRanges.cpp, - src/PathClipper.cpp, src/RangeMap.cpp: - use type 'auto' for local iterator variables - - * src/FilePath.hpp, src/Font.hpp, src/ImageToSVG.hpp, src/PDFParser.hpp, - src/SVGOutput.hpp, src/Subfont.hpp, src/XMLNode.cpp, src/XMLNode.hpp: - use move semantics to initialize string members - -2019-03-20 Martin Gieseking <martin.gieseking@uos.de> - - * src/BasicDVIReader.hpp, src/DVIToSVG.hpp, src/Subfont.hpp: - deleted constructors should be public - - * src/Bezier.cpp, src/Bezier.hpp, src/CMap.hpp, src/CMapReader.cpp, - src/Color.cpp, src/DVIToSVG.hpp, src/DVIToSVGActions.cpp, - src/EmSpecialHandler.cpp, src/EncFile.cpp, src/FileFinder.cpp, - src/FileFinder.hpp, src/FileSystem.cpp, src/Font.cpp, src/FontCache.cpp, - src/FontEncoding.cpp, src/FontEncoding.hpp, src/FontEngine.cpp, - src/FontEngine.hpp, src/FontManager.cpp, src/FontManager.hpp, - src/FontWriter.hpp, src/GFGlyphTracer.cpp, src/GFGlyphTracer.hpp, - src/Ghostscript.cpp, src/Ghostscript.hpp, src/ImageToSVG.cpp, - src/MapLine.cpp, src/MapLine.hpp, src/Message.cpp, src/Message.hpp, - src/NoPsSpecialHandler.hpp, src/PDFParser.cpp, src/PSInterpreter.cpp, - src/PSInterpreter.hpp, src/PathClipper.cpp, src/Process.hpp, - src/SVGCharHandler.hpp, src/SVGCharPathHandler.cpp, - src/SVGCharPathHandler.hpp, src/SVGCharTspanTextHandler.cpp, - src/SVGTree.hpp, src/VFReader.cpp, src/VFReader.hpp, src/XMLNode.cpp, - src/dvisvgm.cpp: - use nullptr instead of 0 - - * src/BoundingBox.hpp, src/CLCommandLine.hpp, src/CMapReader.hpp, - src/Calculator.hpp, src/Font.hpp, src/FontMetrics.hpp, - src/FontWriter.hpp, src/GFReader.hpp, src/Length.hpp, src/MapLine.hpp, - src/Matrix.hpp, src/MessageException.hpp, src/PDFParser.hpp, - src/PSInterpreter.hpp, src/PageSize.hpp, src/ShadingPatch.hpp, - src/SpecialHandler.hpp, src/StreamReader.hpp, src/TrueTypeFont.hpp, - src/VFReader.hpp, src/VectorIterator.hpp, src/ZLibOutputStream.hpp: - made constructors of exception classes explicit - - * src/ZLibOutputStream.hpp: - few modifications of class ZLibOutputStream - - * src/CharMapID.hpp, src/Color.hpp, src/FontCache.hpp, src/Message.cpp, - src/Message.hpp: - ensure initializations of static members don't throw exceptions - - * src/BoundingBox.cpp, src/CMapManager.cpp, src/ColorSpecialHandler.cpp, - src/DvisvgmSpecialHandler.cpp, src/PathClipper.cpp, src/RangeMap.cpp: - replaced some index-based loops with range-based ones - - * src/FilePath.cpp, src/FilePath.hpp: - fixed type used to store directories in class FilePath - - * src/CLCommandLine.cpp: - use emplace_back() instead of push_back() - - * src/FileFinder.cpp, src/Font.hpp, src/TensorProductPatch.hpp, - src/dvisvgm.cpp: - removed redundant 'virtual' modifiers and calls of c_str() - - * src/FontManager.cpp, src/HyperlinkManager.cpp, src/PageSize.cpp: - use spezialized string::find() to look for single characters - - * doc/dvisvgm.txt.in, src/CommandLine.hpp, src/dvisvgm.cpp, - src/options.xml, tests/CommandLineTest.cpp: - renamed option --exact to --exact-bbox -This change is downward - compatible due to partial matching of long options. - - * src/DVIToSVGActions.cpp, src/DvisvgmSpecialHandler.cpp, src/Matrix.cpp, - src/Matrix.hpp, src/PSPattern.cpp, src/PsSpecialHandler.cpp, - src/SVGCharHandler.cpp, src/SVGCharPathHandler.cpp, src/SVGTree.cpp, - tests/MatrixTest.cpp: - renamed and slightly refactored Matrix::getSVG() - -2019-03-19 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in, src/DVIToSVGActions.hpp, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.hpp, - src/HyperlinkManager.cpp, src/ImageToSVG.hpp, src/SVGTree.cpp, - src/SVGTree.hpp, src/SpecialActions.hpp, tests/DvisvgmSpecialTest.cpp: - added context stack for SVG defs section - - * src/DVIToSVG.cpp, src/ImageToSVG.cpp, src/SVGOptimizer.cpp, - src/SVGOptimizer.hpp, src/SVGTree.cpp, src/SVGTree.hpp: - moved removal of redundant clipPath elements to SVGOptimizer - - * doc/dvisvgm.txt.in, src/CommandLine.hpp, src/SVGOptimizer.cpp, - src/SVGOptimizer.hpp, src/dvisvgm.cpp, src/options.xml: - added command-line option --group-attributes - -2019-03-18 Martin Gieseking <martin.gieseking@uos.de> - - * src/Makefile.am: - reformatted file list in Makefile - -2019-03-16 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.cpp: - added processing of PS operators xshow, yshow, and xyshow - -2019-03-15 Martin Gieseking <martin.gieseking@uos.de> - - * libs/xxHash/xxhash.c, libs/xxHash/xxhash.h: - updated xxhash to version 0.7.0 - -2019-03-14 Martin Gieseking <martin.gieseking@uos.de> - - * src/Makefile.am, src/SVGOptimizer.cpp, src/SVGOptimizer.hpp, - src/SVGTree.cpp, src/XMLNode.cpp, src/XMLNode.hpp, src/utility.hpp: - added algorithms to move common attributes to group elements - -2019-03-13 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIToSVGActions.hpp, src/ImageToSVG.hpp, src/PSPattern.cpp, - src/PSPattern.hpp, src/SVGCharHandler.cpp, src/SVGCharHandler.hpp, - src/SVGTree.cpp, src/SVGTree.hpp, src/SpecialActions.hpp, - src/SpecialManager.cpp, src/SpecialManager.hpp, src/XMLDocument.cpp, - src/XMLDocument.hpp, src/XMLNode.cpp, src/XMLNode.hpp, - tests/DvisvgmSpecialTest.cpp, tests/EmSpecialTest.cpp, - tests/TpicSpecialTest.cpp: - take unique_ptrs by value instead of rvalue reference - -2019-03-12 Martin Gieseking <martin.gieseking@uos.de> - - * src/BoundingBox.cpp, src/BoundingBox.hpp, src/DVIToSVG.cpp, - src/DVIToSVG.hpp, src/DVIToSVGActions.cpp, src/DVIToSVGActions.hpp, - src/DvisvgmSpecialHandler.cpp, src/EmSpecialHandler.cpp, - src/HyperlinkManager.cpp, src/ImageToSVG.cpp, src/ImageToSVG.hpp, - src/PSPattern.cpp, src/PSPattern.hpp, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.hpp, src/SVGCharHandler.cpp, src/SVGCharHandler.hpp, - src/SVGCharPathHandler.cpp, src/SVGCharPathHandler.hpp, - src/SVGCharTspanTextHandler.cpp, src/SVGCharTspanTextHandler.hpp, - src/SVGTree.cpp, src/SVGTree.hpp, src/SpecialActions.hpp, - src/TpicSpecialHandler.cpp, src/XMLDocument.cpp, src/XMLDocument.hpp, - src/XMLNode.cpp, src/XMLNode.hpp, tests/DvisvgmSpecialTest.cpp, - tests/EmSpecialTest.cpp, tests/TpicSpecialTest.cpp, - tests/XMLNodeTest.cpp: - renamed XML node classes - - * src/XMLDocument.cpp, src/XMLNode.cpp, src/XMLNode.hpp, - tests/XMLNodeTest.cpp: - replaced dynamic casts of XML nodes with dedicated cast methods - -2019-03-11 Martin Gieseking <martin.gieseking@uos.de> - - * doc/Makefile.am: - rebuild manpage if configure.ac was updated -A potential change of the - version number should be propagated to the manpage. - - * doc/dvisvgm.txt.in: - manpage: added link to SVG color names - -2019-03-09 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp: - imgfile: improved and simplifed code -- compute transformation matrix - only once (for image and bbox) -- compute and update bbox only if - necessary - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.6.3 - - * NEWS: - updated NEWS - -2019-03-07 Martin Gieseking <martin.gieseking@uos.de> - - * src/dvisvgm.cpp: - option --bbox: check validity of paper format arguments corretcly - - * src/PsSpecialHandler.cpp: - ensure forward slashes in file paths passed to PS oparator 'run' - - * src/PsSpecialHandler.cpp, src/psdefs.cpp: - psfile/pdffile: adapt opposite orientation of y-coordinates properly - -2019-02-28 Martin Gieseking <martin.gieseking@uos.de> - - * src/InputReader.cpp, src/InputReader.hpp, - tests/StreamInputBufferTest.cpp, tests/StringMatcherTest.cpp: - added StringMatcher::read() - - * src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.hpp, - src/InputReader.cpp, tests/DvisvgmSpecialTest.cpp: - parse raw specials and create proper XML nodes - -2019-02-26 Martin Gieseking <martin.gieseking@uos.de> - - * src/DvisvgmSpecialHandler.cpp, src/FontWriter.cpp: - replaced lookup loops with std::find_if - -2019-02-25 Martin Gieseking <martin.gieseking@uos.de> - - * m4/Makefile.am: - add ax_check_compile_flag.m4 to distributed source archives - -2019-02-24 Martin Gieseking <martin.gieseking@uos.de> - - * configure.ac, m4/ax_check_compile_flag.m4, src/Makefile.am: - add -Wno-mismatched-tags only if compiler supports - -Wmismatched-tags -(closes #101) - -2019-02-17 Martin Gieseking <martin.gieseking@uos.de> - - * src/Calculator.hpp, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.hpp, src/InputReader.cpp, src/InputReader.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, - tests/StreamInputBufferTest.cpp: - replaced some unordered maps with ordered ones - - * src/HtmlSpecialHandler.cpp, src/InputReader.cpp, src/InputReader.hpp, - src/MapLine.cpp, src/PsSpecialHandler.cpp, - tests/StreamInputBufferTest.cpp: - accept alternative bounding chars in getQuotedString() - -2019-02-16 Martin Gieseking <martin.gieseking@uos.de> - - * src/XMLNode.cpp, src/XMLNode.hpp, tests/DvisvgmSpecialTest.cpp, - tests/EmSpecialTest.cpp, tests/TpicSpecialTest.cpp: - store attributes in vectors instead of maps - -2019-02-15 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in, src/Color.cpp, tests/ColorSpecialTest.cpp, - tests/ColorTest.cpp, tests/EmSpecialTest.cpp, tests/ShadingPatchTest.cpp, - tests/TensorProductPatchTest.cpp, tests/TpicSpecialTest.cpp, - tests/TriangularPatchTest.cpp: - use short RGB hex values if possible - -2019-02-12 Martin Gieseking <martin.gieseking@uos.de> - - * src/FontEngine.cpp, src/Ghostscript.cpp: - replaced C casts with const_cast - -2019-02-07 Martin Gieseking <martin.gieseking@uos.de> - - * README.md: - added some links to README - -2019-01-31 Martin Gieseking <martin.gieseking@uos.de> - - * tests/gtest/include/gtest/gtest-death-test.h, - tests/gtest/include/gtest/gtest-message.h, - tests/gtest/include/gtest/gtest-param-test.h, - tests/gtest/include/gtest/gtest-printers.h, - tests/gtest/include/gtest/gtest-spi.h, - tests/gtest/include/gtest/gtest-test-part.h, - tests/gtest/include/gtest/gtest-typed-test.h, - tests/gtest/include/gtest/gtest.h, - tests/gtest/include/gtest/gtest_pred_impl.h, - tests/gtest/include/gtest/gtest_prod.h, - tests/gtest/include/gtest/internal/custom/gtest-port.h, - tests/gtest/include/gtest/internal/custom/gtest-printers.h, - tests/gtest/include/gtest/internal/custom/gtest.h, - tests/gtest/include/gtest/internal/gtest-death-test-internal.h, - tests/gtest/include/gtest/internal/gtest-filepath.h, - tests/gtest/include/gtest/internal/gtest-internal.h, - tests/gtest/include/gtest/internal/gtest-linked_ptr.h, - tests/gtest/include/gtest/internal/gtest-param-util-generated.h, - tests/gtest/include/gtest/internal/gtest-param-util.h, - tests/gtest/include/gtest/internal/gtest-port-arch.h, - tests/gtest/include/gtest/internal/gtest-port.h, - tests/gtest/include/gtest/internal/gtest-string.h, - tests/gtest/include/gtest/internal/gtest-tuple.h, - tests/gtest/include/gtest/internal/gtest-type-util.h, - tests/gtest/src/gtest-all.cc, tests/gtest/src/gtest-death-test.cc, - tests/gtest/src/gtest-filepath.cc, tests/gtest/src/gtest-internal-inl.h, - tests/gtest/src/gtest-port.cc, tests/gtest/src/gtest-printers.cc, - tests/gtest/src/gtest-test-part.cc, tests/gtest/src/gtest-typed-test.cc, - tests/gtest/src/gtest.cc, tests/gtest/src/gtest_main.cc: - updated gtest to version 1.8.1 - -2019-01-28 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp: - put struct PatchVertex in corresponding method - -2019-01-24 Martin Gieseking <martin.gieseking@uos.de> - - * Makefile.am, configure.ac, m4/Makefile.am: - add m4 files to source tarball - -2019-01-22 Martin Gieseking <martin.gieseking@uos.de> - - * NEWS, README, README.md: - updated NEWS and README - - * .travis.yml: - Travis: switched to xenial environment - -2019-01-19 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, src/psdefs.cpp: - ensure a path loaded by 'clippath' is considered by clip/eoclip - - * src/PsSpecialHandler.cpp, src/psdefs.cpp, tests/PSInterpreterTest.cpp: - changed semantics of operand of 'newpath' -It now denotes whether method - 'newpath' was triggered by PS operator 'newpath' -or one of the - drawing/clipping operators. - - * src/GraphicsPath.hpp, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.hpp, tests/FontCacheTest.cpp, - tests/GraphicsPathTest.cpp: - only create new clipPath element if the new clip path differs - -2019-01-18 Martin Gieseking <martin.gieseking@uos.de> - - * src/Ghostscript.cpp: - fixed formatting of GS version number - - * src/PsSpecialHandler.cpp: - use nullptr instead of 0 - -2019-01-15 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.cpp: - execute 'show' if called internally by another PS operator (e.g. - charpath) - - * src/psdefs.cpp: - don't propagate local transformations to the PS handler -PS operators - like 'charpath' may perform local transformations, e.g. by -calling - 'scale'. These must not be forwarded to the PS handler. - - * libs/variant/Makefile.am, libs/variant/include/mpark/config.hpp, - libs/variant/include/mpark/in_place.hpp, - libs/variant/include/mpark/lib.hpp, - libs/variant/include/mpark/variant.hpp: - updated mpark::variant to version 1.4.0 - - * src/psdefs.cpp: - PS handler: draw glyph paths with 'fill' rather than 'eofill' - - * .appveyor.yml: - AppVeyor: updated ttfautohint revision to 1.8.2-2 - -2019-01-14 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.6.2 - -2019-01-11 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.cpp, tests/PSInterpreterTest.cpp: - properly apply current scale values to line properties - - * src/psdefs.cpp: - prevent visible side-effects of PS operator 'stringwidth' -According to - the PS manual, p. 699, stringwidth may execute the path operators -of the - glyph descriptions. This led to visible fragments in the SVG graphics. - -2019-01-08 Martin Gieseking <martin.gieseking@uos.de> - - * doc/db2html.xsl: - manpage: fixed wrongly nested list elements - - * 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, - doc/tweak-dblatex-pdf.xsl, libs/Makefile.am, - libs/ff-woff/fontforge/tmpfile2.cpp, src/AGLTable.hpp, - src/BasicDVIReader.cpp, src/BasicDVIReader.hpp, src/Bezier.cpp, - src/Bezier.hpp, src/BgColorSpecialHandler.cpp, - src/BgColorSpecialHandler.hpp, src/Bitmap.cpp, src/Bitmap.hpp, - src/BoundingBox.cpp, src/BoundingBox.hpp, src/CLCommandLine.cpp, - src/CLCommandLine.hpp, src/CLOption.hpp, src/CMap.cpp, src/CMap.hpp, - src/CMapManager.cpp, src/CMapManager.hpp, src/CMapReader.cpp, - src/CMapReader.hpp, src/CRC32.cpp, src/CRC32.hpp, src/Calculator.cpp, - src/Calculator.hpp, src/CharMapID.cpp, src/CharMapID.hpp, - src/Character.hpp, src/Color.cpp, src/Color.hpp, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.hpp, - src/CommandLine.hpp, src/DLLoader.cpp, src/DLLoader.hpp, - src/DVIActions.hpp, src/DVIReader.cpp, src/DVIReader.hpp, - src/DVIToSVG.cpp, src/DVIToSVG.hpp, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.hpp, src/DependencyGraph.hpp, src/Directory.cpp, - src/Directory.hpp, src/DvisvgmSpecialHandler.cpp, - src/DvisvgmSpecialHandler.hpp, src/EPSFile.cpp, src/EPSFile.hpp, - src/EPSToSVG.hpp, src/EmSpecialHandler.cpp, src/EmSpecialHandler.hpp, - src/EncFile.cpp, src/EncFile.hpp, src/FileFinder.cpp, src/FileFinder.hpp, - src/FilePath.cpp, src/FilePath.hpp, src/FileSystem.cpp, - src/FileSystem.hpp, src/FixWord.hpp, src/Font.cpp, src/Font.hpp, - src/FontCache.cpp, src/FontCache.hpp, src/FontEncoding.cpp, - src/FontEncoding.hpp, src/FontEngine.cpp, src/FontEngine.hpp, - src/FontManager.cpp, src/FontManager.hpp, src/FontMap.cpp, - src/FontMap.hpp, src/FontMetrics.cpp, src/FontMetrics.hpp, - src/FontStyle.hpp, src/FontWriter.cpp, src/FontWriter.hpp, - src/GFGlyphTracer.cpp, src/GFGlyphTracer.hpp, src/GFReader.cpp, - src/GFReader.hpp, src/GFTracer.cpp, src/GFTracer.hpp, - src/Ghostscript.cpp, src/Ghostscript.hpp, src/Glyph.hpp, - src/GlyphTracerMessages.hpp, src/GraphicsPath.hpp, src/HashFunction.cpp, - src/HashFunction.hpp, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.hpp, src/HyperlinkManager.cpp, - src/HyperlinkManager.hpp, src/ImageToSVG.cpp, src/ImageToSVG.hpp, - src/InputBuffer.cpp, src/InputBuffer.hpp, src/InputReader.cpp, - src/InputReader.hpp, src/JFM.cpp, src/JFM.hpp, src/Length.cpp, - src/Length.hpp, src/MD5HashFunction.hpp, src/Makefile.am, - src/MapLine.cpp, src/MapLine.hpp, src/Matrix.cpp, src/Matrix.hpp, - src/Message.cpp, src/Message.hpp, src/MessageException.hpp, - src/MetafontWrapper.cpp, src/MetafontWrapper.hpp, src/MiKTeXCom.cpp, - src/MiKTeXCom.hpp, src/NoPsSpecialHandler.cpp, - src/NoPsSpecialHandler.hpp, src/NumericRanges.hpp, src/PDFParser.cpp, - src/PDFParser.hpp, src/PDFToSVG.hpp, src/PSFilter.hpp, - src/PSInterpreter.cpp, src/PSInterpreter.hpp, src/PSPattern.cpp, - src/PSPattern.hpp, src/PSPreviewFilter.cpp, src/PSPreviewFilter.hpp, - src/PageRanges.cpp, src/PageRanges.hpp, src/PageSize.cpp, - src/PageSize.hpp, src/Pair.hpp, src/PapersizeSpecialHandler.cpp, - src/PapersizeSpecialHandler.hpp, src/PathClipper.cpp, - src/PathClipper.hpp, src/PdfSpecialHandler.cpp, - src/PdfSpecialHandler.hpp, src/PreScanDVIReader.cpp, - src/PreScanDVIReader.hpp, src/Process.cpp, src/Process.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, src/RangeMap.cpp, - src/RangeMap.hpp, src/SVGCharHandler.cpp, src/SVGCharHandler.hpp, - src/SVGCharHandlerFactory.cpp, src/SVGCharHandlerFactory.hpp, - src/SVGCharPathHandler.cpp, src/SVGCharPathHandler.hpp, - src/SVGCharTspanTextHandler.cpp, src/SVGCharTspanTextHandler.hpp, - src/SVGOutput.cpp, src/SVGOutput.hpp, src/SVGSingleCharTextHandler.cpp, - src/SVGSingleCharTextHandler.hpp, src/SVGTree.cpp, src/SVGTree.hpp, - src/ShadingPatch.cpp, src/ShadingPatch.hpp, src/SignalHandler.cpp, - src/SignalHandler.hpp, src/SourceInput.cpp, src/SourceInput.hpp, - src/SpecialActions.hpp, src/SpecialHandler.hpp, src/SpecialManager.cpp, - src/SpecialManager.hpp, src/StreamReader.cpp, src/StreamReader.hpp, - src/StreamWriter.cpp, src/StreamWriter.hpp, src/Subfont.cpp, - src/Subfont.hpp, src/System.cpp, src/System.hpp, src/TFM.cpp, - src/TFM.hpp, src/TTFAutohint.cpp, src/TTFAutohint.hpp, - src/TensorProductPatch.cpp, src/TensorProductPatch.hpp, src/Terminal.cpp, - src/Terminal.hpp, src/ToUnicodeMap.cpp, src/ToUnicodeMap.hpp, - src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.hpp, - src/TriangularPatch.cpp, src/TriangularPatch.hpp, src/TrueTypeFont.cpp, - src/TrueTypeFont.hpp, src/Unicode.cpp, src/Unicode.hpp, - src/VFActions.hpp, src/VFReader.cpp, src/VFReader.hpp, - src/VectorIterator.hpp, src/VectorStream.hpp, src/XMLDocument.cpp, - src/XMLDocument.hpp, src/XMLNode.cpp, src/XMLNode.hpp, src/XMLString.cpp, - src/XMLString.hpp, src/XXHashFunction.hpp, src/ZLibOutputStream.hpp, - src/dvisvgm.cpp, src/ffwrapper.c, src/ffwrapper.h, src/macros.hpp, - src/options.dtd, src/options.xml, src/psdefs.cpp, src/utility.cpp, - src/utility.hpp, src/version.hpp, src/version.hpp.in, src/windows.hpp, - tests/BezierTest.cpp, tests/BitmapTest.cpp, tests/BoundingBoxTest.cpp, - tests/CMapManagerTest.cpp, tests/CMapReaderTest.cpp, tests/CMapTest.cpp, - tests/CRC32Test.cpp, tests/CalculatorTest.cpp, - tests/ColorSpecialTest.cpp, tests/ColorTest.cpp, - tests/CommandLineTest.cpp, tests/DVIReaderTest.cpp, - tests/DependencyGraphTest.cpp, tests/DirectoryTest.cpp, - tests/DvisvgmSpecialTest.cpp, tests/EmSpecialTest.cpp, - tests/FileFinderTest.cpp, tests/FilePathTest.cpp, - tests/FileSystemTest.cpp, tests/FontCacheTest.cpp, - tests/FontManagerTest.cpp, tests/FontMapTest.cpp, - tests/GFGlyphTracerTest.cpp, tests/GFReaderTest.cpp, - tests/GhostscriptTest.cpp, tests/GraphicsPathTest.cpp, - tests/HashFunctionTest.cpp, tests/JFMReaderTest.cpp, - tests/LengthTest.cpp, tests/Makefile.am, tests/MapLineTest.cpp, - tests/MatrixTest.cpp, tests/MessageExceptionTest.cpp, - tests/PDFParserTest.cpp, tests/PSInterpreterTest.cpp, - tests/PageRagesTest.cpp, tests/PageSizeTest.cpp, tests/PairTest.cpp, - tests/PapersizeSpecialTest.cpp, tests/RangeMapTest.cpp, - tests/SVGOutputTest.cpp, tests/ShadingPatchTest.cpp, - tests/SpecialManagerTest.cpp, tests/SplittedCharInputBufferTest.cpp, - tests/StreamInputBufferTest.cpp, tests/StreamReaderTest.cpp, - tests/StreamWriterTest.cpp, tests/StringMatcherTest.cpp, - tests/SubfontTest.cpp, tests/TFMReaderTest.cpp, - tests/TensorProductPatchTest.cpp, tests/ToUnicodeMapTest.cpp, - tests/TpicSpecialTest.cpp, tests/TriangularPatchTest.cpp, - tests/UnicodeTest.cpp, tests/UtilityTest.cpp, - tests/VectorIteratorTest.cpp, tests/VectorStreamTest.cpp, - tests/XMLNodeTest.cpp, tests/XMLStringTest.cpp, tests/check-conv, - tests/create-makefile, tests/data/Makefile.am, tests/genhashcheck.py, - tests/normalize.xsl, tests/testmain.cpp: - updated year in copyright statements to 2019 - -2018-12-13 Martin Gieseking <martin.gieseking@uos.de> - - * libs/potrace/CMakeLists.txt, libs/variant/CMakeLists.txt: - removed redundant files - -2018-11-27 Martin Gieseking <martin.gieseking@uos.de> - - * src/CommandLine.hpp, src/options.xml: - updated description in --help output - -2018-11-06 Martin Gieseking <martin.gieseking@uos.de> - - * configure.ac, doc/Makefile.am, libs/defs.am, src/Makefile.am, - tests/Makefile.am, tests/create-makefile: - Makefiles: replaced $(top_srcdir) with $(dvisvgm_srcdir) -to simplify - maintenance of dvisvgm in TeX Live - -2018-11-03 Martin Gieseking <martin.gieseking@uos.de> - - * m4/ax_cxx_compile_stdcxx.m4: - updated ax_cxx_compile_stdcxx.m4 to version 10 - -2018-10-30 Martin Gieseking <martin.gieseking@uos.de> - - * libs/brotli/Makefile.am, libs/defs.am, libs/potrace/Makefile.am, - libs/woff2/Makefile.am, libs/xxHash/Makefile.am: - use negation in Makefile conditionals - -2018-10-23 Martin Gieseking <martin.gieseking@uos.de> - - * libs/brotli/common/platform.h, libs/brotli/common/transform.c, - libs/brotli/common/version.h, libs/brotli/enc/backward_references_hq.c, - libs/brotli/enc/backward_references_hq.h, - libs/brotli/enc/backward_references_inc.h, libs/brotli/enc/encode.c, - libs/brotli/enc/hash.h, libs/brotli/enc/hash_composite_inc.h, - libs/brotli/enc/hash_longest_match64_inc.h, - libs/brotli/enc/hash_longest_match_inc.h, - libs/brotli/enc/hash_rolling_inc.h, - libs/brotli/enc/hash_to_binary_tree_inc.h: - updated brotli to version 1.0.7 - -2018-10-11 Martin Gieseking <martin.gieseking@uos.de> - - * NEWS: - updated NEWS - -2018-10-10 Martin Gieseking <martin.gieseking@uos.de> - - * doc/Makefile.am: - only create intermediate XML files if dvisvgm.txt.1 has changed - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.6.1 - -2018-10-09 Martin Gieseking <martin.gieseking@uos.de> - - * doc/Makefile.am: - ensure dvisvgm.txt.in is distributed with the tarball - - * configure.ac, libs/brotli/Makefile.am, libs/defs.am, - libs/potrace/Makefile.am, libs/woff2/Makefile.am, - libs/xxHash/Makefile.am, src/Makefile.am, tests/Makefile.am, - tests/create-makefile: - relaxed semantics of config option --disable-bundled-libs -If some of the - system libraries brotli, potrace, woff2, and xxhash can't be -found, the - bundled libraries are used as a fallback, even if - option ---disable-bundled-libs is given. (closes #94) - -2018-10-04 Martin Gieseking <martin.gieseking@uos.de> - - * configure.ac: - added configuration option --disable-manpage (closes #93) - -2018-10-02 Martin Gieseking <martin.gieseking@uos.de> - - * configure.ac, doc/Makefile.am: - don't update man page if asciidoc file hasn't changed - -2018-09-20 Martin Gieseking <martin.gieseking@uos.de> - - * libs/brotli/common/platform.h, libs/brotli/common/version.h, - libs/brotli/enc/metablock.c: - updated brotli to version 1.0.6 - -2018-09-13 Martin Gieseking <martin.gieseking@uos.de> - - * src/XXHashFunction.hpp: - fixed constexpr issue occured with gcc 4.8 - -2018-09-09 Martin Gieseking <martin.gieseking@uos.de> - - * doc/Makefile.am: - add dvisvgm.sty to distributed files - -2018-09-07 Martin Gieseking <martin.gieseking@uos.de> - - * src/Ghostscript.cpp: - call RegGetValueA() with correct buffer size - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.6 - - * NEWS: - updated NEWS - -2018-09-05 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIToSVG.cpp, src/DVIToSVG.hpp, src/dvisvgm.cpp: - use enums for hash parameters rather than strings - - * doc/dvisvgm.txt.in, src/DVIToSVG.cpp, src/DVIToSVG.hpp: - added optional parameter 'replace' to --page-hashes - -2018-09-04 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIReader.cpp, src/DVIToSVG.cpp: - reset hash function before computing a page hash - -2018-09-03 Martin Gieseking <martin.gieseking@uos.de> - - * libs/clipper/clipper.cpp: - clipper: initialize TEdge by constructor instead of memset() - -2018-09-01 Martin Gieseking <martin.gieseking@uos.de> - - * configure.ac: - removed redundant check for potrace from configure - -2018-08-31 Martin Gieseking <martin.gieseking@uos.de> - - * libs/variant/include/mpark/config.hpp: - VC: fixed failing compilation of - mpark::variant -https://github.com/mpark/variant/commit/4e3e7f88f03f513622daa973 - -2018-08-30 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml: - AppVeyor: use VS 2017 version 15.7 instead of 15.8 -Version 15.8 of - Visual Studio 2017 introduced a compiler bug that prevents -compiling - mpark::variant (https://github.com/mpark/variant/issues/48). - -2018-08-28 Martin Gieseking <martin.gieseking@uos.de> - - * src/XXHashFunction.hpp, src/dvisvgm.cpp: - use wrapper class to get the xxhash version number - - * src/HashFunction.cpp, src/HashFunction.hpp, src/MD5HashFunction.hpp, - src/XXHashFunction.hpp, tests/HashFunctionTest.cpp: - added extended create functions to hash classes - - * doc/dvisvgm.txt.in, src/CommandLine.hpp, src/DVIToSVG.cpp, - src/DVIToSVG.hpp, src/SVGOutput.cpp, src/SVGOutput.hpp, src/dvisvgm.cpp, - src/options.xml, tests/SVGOutputTest.cpp: - replaced pattern variable %h with %hd; added %ho and %hc -In order to - recognize changes in the command-line options that may affect the -SVG - output, %ho and %hc have been introduced. The former expands to a - 32-bit -hash reflecting the command-line options, the latter combines this - information -with the hash computed from the DVI page data. - -2018-08-27 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIToSVG.cpp, src/DVIToSVG.hpp, src/dvisvgm.cpp: - option --page-hashes accepts multiple modifiers now - -2018-08-24 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in, src/DVIToSVG.cpp, src/DVIToSVG.hpp, - src/HashFunction.cpp, src/HashFunction.hpp, src/SVGOutput.hpp, - src/dvisvgm.cpp, tests/CommandLineTest.cpp: - added optional parameter 'list' to option --page-hashes - - * src/dvisvgm.cpp: - fixed wrong directory separators shown in output of --cache - -2018-08-22 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in, src/CommandLine.hpp, src/DVIToSVG.hpp, - src/dvisvgm.cpp, src/options.xml: - added command-line option --page-hashes to enable hashing functionality - -2018-08-21 Martin Gieseking <martin.gieseking@uos.de> - - * AUTHORS, README, README.md, configure.ac, libs/Makefile.am, - libs/md5/Makefile.am, libs/md5/md5.c, libs/md5/md5.h, - src/HashFunction.cpp, src/HashFunction.hpp, src/MD5HashFunction.hpp, - src/Makefile.am, src/XXHashFunction.hpp, tests/HashFunctionTest.cpp, - tests/Makefile.am, tests/create-makefile: - added classes to compute MD5, XXH32, and XXH64 hash values - - * src/BasicDVIReader.hpp, src/DVIReader.cpp: - added validity checks for bop offsets - - * src/DVIReader.cpp, src/DVIReader.hpp, src/DVIToSVG.cpp, - src/DVIToSVG.hpp, src/HashFunction.cpp, src/HashFunction.hpp, - src/SVGOutput.cpp, src/SVGOutput.hpp: - added optional computation and evaluation of page hashes -If this - functionality is enabled, a hash value based on the contents of - the -corresponding DVI page is added to the SVG file names. Furthermore, - dvisvgm -skips the conversion of these pages in subsequent calls if the - resulting SVG -files already exist. - -2018-08-18 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIReader.cpp: - DVI postamble: relaxed plausibility check of the total page count - -2018-08-08 Martin Gieseking <martin.gieseking@uos.de> - - * configure.ac: - correctly evaluate config option --disable-bundled-libs (closes #91) - -2018-08-07 Martin Gieseking <martin.gieseking@uos.de> - - * src/BasicDVIReader.hpp, src/DVIToSVG.cpp, src/DVIToSVG.hpp, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.hpp, - src/PsSpecialHandler.cpp: - getPageTransformation: replaced reference parameter with return value - - * src/DVIToSVGActions.hpp, src/ImageToSVG.hpp, src/PsSpecialHandler.cpp, - src/SpecialActions.hpp: - renamed getPageTransform; return unity matrix by default - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.5 - - * NEWS: - updated NEWS - -2018-08-02 Martin Gieseking <martin.gieseking@uos.de> - - * src/FileFinder.cpp, src/FilePath.cpp, src/FilePath.hpp, - src/Ghostscript.cpp: - TL32: also look for gsdll32.dll in the corresponding TL bin folder -The - changes are based on a patch sent by Akira Kakuto. - -2018-08-01 Martin Gieseking <martin.gieseking@uos.de> - - * README: - updated README - - * .appveyor.yml, .travis.yml: - updated CI configurations; dropped potrace as an external dependency - - * configure.ac, src/SourceInput.cpp: - set umask before calling mkstemp() -Coverity complains about calling - mkstemp() without securely setting umask first. -If umask() is available, - it's now called so that the permissions of temporary -files result to - 0600. - - * src/BoundingBox.cpp: - show lock state when printing a bounding box object - - * src/DVIToSVG.cpp: - apply user transformations even if the bounding box is locked - -2018-07-30 Martin Gieseking <martin.gieseking@uos.de> - - * src/ImageToSVG.cpp, src/ImageToSVG.hpp, src/dvisvgm.cpp: - apply --transform commands in --eps and --pdf mode too - - * src/DVIToSVG.cpp, src/Length.cpp, src/Length.hpp, tests/LengthTest.cpp: - added function to retrieve all units supported by the Length class - - * doc/dvisvgm.txt.in, src/DVIToSVG.cpp, src/ImageToSVG.cpp, - tests/CalculatorTest.cpp: - allow to use all supported units in --transform commands - - * Makefile.am: - propagate --enable-bundled-libs to "distcheck" - - * AUTHORS, README.md, configure.ac, libs/Makefile.am, - libs/potrace/CMakeLists.txt, libs/potrace/Makefile.am, - libs/potrace/auxiliary.h, libs/potrace/bitmap.h, libs/potrace/config.h, - libs/potrace/curve.c, libs/potrace/curve.h, libs/potrace/decompose.c, - libs/potrace/decompose.h, libs/potrace/lists.h, - libs/potrace/potracelib.c, libs/potrace/potracelib.h, - libs/potrace/progress.h, libs/potrace/trace.c, libs/potrace/trace.h, - src/Makefile.am: - added potrace to the bundled libraries again - - * tests/Makefile.am, tests/create-makefile: - link tests only against bundled libs if configured with - --enable-bundled-libs - - * src/ImageToSVG.cpp: - changed type of exception thrown in case of invalid EPS/PDF files - -2018-07-29 Martin Gieseking <martin.gieseking@uos.de> - - * src/PSInterpreter.cpp, src/PSInterpreter.hpp, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.hpp, src/psdefs.cpp, tests/PSInterpreterTest.cpp: - replaced internal PS operator @getpdfpagebox with PSInterpreter method - -2018-07-28 Martin Gieseking <martin.gieseking@uos.de> - - * src/dvisvgm.cpp: - removed redundant code from main() - - * README.md, doc/dvisvgm.txt.in, src/EPSToSVG.hpp, src/ImageToSVG.cpp, - src/ImageToSVG.hpp, src/PDFToSVG.hpp, src/PSInterpreter.cpp, - src/PSInterpreter.hpp, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.hpp, src/dvisvgm.cpp, src/psdefs.cpp: - PDF conversion: allow to specify the pages to process - -2018-07-25 Martin Gieseking <martin.gieseking@uos.de> - - * .travis.yml, README.md, configure.ac, libs/brotli/Makefile.am, - libs/woff2/Makefile.am, libs/xxHash/Makefile.am, src/Makefile.am, - src/dvisvgm.cpp: - added config option --enable-bundled-libs -If this option is given, the - bundled libraries brotli, woff2, and xxhash are -built and statically - linked. Otherwise, the configure script looks for the -corresponing system - libraries and links dvisvgm against those. (closes #90) - -2018-07-19 Martin Gieseking <martin.gieseking@uos.de> - - * NEWS: - fixed date in NEWS - -2018-07-18 Martin Gieseking <martin.gieseking@uos.de> - - * configure.ac, doc/Makefile.am: - don't try to build manpage if required tools are missing - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.4.2 - - * NEWS: - updated NEWS - -2018-07-17 Martin Gieseking <martin.gieseking@uos.de> - - * src/HyperlinkManager.cpp: - reduced extent of hyperlinked areas to get a tight bbox - -2018-07-15 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp: - use unique_ptr in bbox debug code - - * src/PSPreviewFilter.cpp, src/PSPreviewFilter.hpp: - removed redundant method PSPreviewFilter::getBorders() - - * src/PSPreviewFilter.cpp, src/PsSpecialHandler.cpp: - fixed computation of preview extents (closes #89) - - * src/PsSpecialHandler.cpp: - prevent warning about missing psfile "/dev/null" - -2018-07-07 Martin Gieseking <martin.gieseking@uos.de> - - * NEWS: - updated NEWS - - * .gitattributes: - added linguist settings to - .gitattributes - -https://github.com/github/linguist - -2018-07-06 Martin Gieseking <martin.gieseking@uos.de> - - * libs/brotli/Makefile.am, libs/brotli/common/dictionary.c, - libs/brotli/common/platform.h, libs/brotli/common/transform.c, - libs/brotli/common/version.h, libs/brotli/enc/backward_references.c, - libs/brotli/enc/brotli_bit_stream.h, libs/brotli/enc/command.h, - libs/brotli/enc/compress_fragment.c, - libs/brotli/enc/compress_fragment_two_pass.c, libs/brotli/enc/encode.c, - libs/brotli/enc/encoder_dict.h, libs/brotli/enc/fast_log.h, - libs/brotli/enc/hash.h, libs/brotli/enc/hash_composite_inc.h, - libs/brotli/enc/hash_rolling_inc.h, libs/brotli/enc/quality.h, - libs/brotli/enc/static_dict.c, libs/brotli/enc/write_bits.h, - libs/brotli/include/brotli/port.h, libs/brotli/include/brotli/types.h: - updated brotli to version 1.0.5 - - * README, README.md, doc/dvisvgm.txt.in, libs/ff-woff/README.md: - updated links to new project website dvisvgm.de - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.4.1 - -2018-07-04 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in: - manpage: updated external links - -2018-06-23 Martin Gieseking <martin.gieseking@uos.de> - - * libs/woff2/include/woff2/version.h, libs/woff2/src/font.cc, - libs/woff2/src/normalize.cc, libs/woff2/src/woff2_enc.cc: - updated woff2 to 1.0.2 - -2018-06-08 Martin Gieseking <martin.gieseking@uos.de> - - * src/SourceInput.cpp, src/SourceInput.hpp: - moved handling of temporary files to separate class - -2018-05-30 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIToSVGActions.cpp, src/ImageToSVG.cpp: - fixed evaluation of progress delay - -2018-05-09 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in: - minor fixes in manpage - -2018-05-04 Martin Gieseking <martin.gieseking@uos.de> - - * doc/conf-dblatex-pdf.xsl: - list options and specials in PDF bookmarks of manpage - - * doc/dvisvgm.txt.in: - manpage: ordered options alphabetically according to long name - -2018-05-03 Martin Gieseking <martin.gieseking@uos.de> - - * NEWS, README, README.md: - updated NEWS and README - -2018-05-02 Martin Gieseking <martin.gieseking@uos.de> - - * src/Calculator.cpp: - catch exception by reference rather than by value - -2018-04-30 Martin Gieseking <martin.gieseking@uos.de> - - * src/EPSFile.cpp, src/EPSFile.hpp, src/EPSToSVG.cpp: - changed signature of EPSFile::bbox() - - * src/CLCommandLine.cpp: - cmdline: fixed handling of 'usage' section - - * src/EPSToSVG.cpp, src/EPSToSVG.hpp, src/ImageToSVG.cpp, - src/ImageToSVG.hpp, src/Makefile.am: - derive EPSToSVG from abstract class ImageToSVG - - * doc/dvisvgm.txt.in, src/CommandLine.hpp, src/Makefile.am, - src/PDFToSVG.hpp, src/PSInterpreter.cpp, src/PSInterpreter.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, src/dvisvgm.cpp, - src/options.xml, src/psdefs.cpp, tests/CommandLineTest.cpp, - tests/PSInterpreterTest.cpp: - added option --pdf to convert PDF files to SVG - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.4 - -2018-04-28 Martin Gieseking <martin.gieseking@uos.de> - - * src/BoundingBox.cpp: - swap wrongly assigned variables (doesn't affect behavior) - -2018-04-26 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp: - psfile: use operator 'run' to simplify execution of (E)PS files - - * src/PSInterpreter.cpp, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.hpp, src/psdefs.cpp, tests/PSInterpreterTest.cpp: - added special pdffile to embed PDF graphics - - * src/PsSpecialHandler.cpp: - apply outer transformations to psfile/pdffile graphics - -2018-04-20 Martin Gieseking <martin.gieseking@uos.de> - - * src/Ghostscript.cpp, src/Ghostscript.hpp, src/dvisvgm.cpp, - tests/GhostscriptTest.cpp: - added function to get numeric GS revision - - * src/PSInterpreter.cpp, src/PSInterpreter.hpp: - moved GS init options to init method - - * src/PsSpecialHandler.cpp: - replaced str2double() with stod(); added check for zero bbox - - * src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.hpp, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.hpp, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.hpp, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.hpp, - src/HtmlSpecialHandler.cpp, src/HtmlSpecialHandler.hpp, - src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.hpp, - src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.hpp, - src/PdfSpecialHandler.cpp, src/PdfSpecialHandler.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, - src/SpecialHandler.hpp, src/SpecialManager.cpp, - src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.hpp, - tests/ColorSpecialTest.cpp, tests/DvisvgmSpecialTest.cpp, - tests/PapersizeSpecialTest.cpp, tests/TpicSpecialTest.cpp: - changed type of \special prefix from const char* to string - - * src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.hpp, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.hpp, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.hpp, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.hpp, - src/HtmlSpecialHandler.cpp, src/HtmlSpecialHandler.hpp, - src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.hpp, - src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.hpp, - src/PdfSpecialHandler.cpp, src/PdfSpecialHandler.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, - src/SpecialHandler.hpp, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.hpp: - removed const from result vector of SpecialHandler::prefixes() - -2018-04-19 Martin Gieseking <martin.gieseking@uos.de> - - * libs/xxHash/xxhash.c, libs/xxHash/xxhash.h: - updated xxHash to version 0.6.5 - - * src/psdefs.cpp: - fixed handling of PS operator 'setgstate' - -2018-04-16 Martin Gieseking <martin.gieseking@uos.de> - - * m4/ax_cxx_compile_stdcxx.m4: - updated ax_cxx_compile_stdcxx.m4 to version 8 - -2018-04-13 Martin Gieseking <martin.gieseking@uos.de> - - * src/BgColorSpecialHandler.hpp, src/DvisvgmSpecialHandler.hpp, - src/EmSpecialHandler.hpp, src/HtmlSpecialHandler.hpp, - src/NoPsSpecialHandler.hpp, src/PapersizeSpecialHandler.hpp, - src/PdfSpecialHandler.hpp, src/PsSpecialHandler.hpp, - src/SpecialHandler.hpp, src/SpecialManager.cpp, src/SpecialManager.hpp, - src/TpicSpecialHandler.hpp: - merged listener methods into SpecialHandler class - - * src/CommandLine.hpp: - made opt2cpp compatible with Python 3 - -2018-04-11 Martin Gieseking <martin.gieseking@uos.de> - - * libs/brotli/Makefile.am, libs/brotli/common/constants.h, - libs/brotli/common/platform.h, libs/brotli/common/version.h, - libs/brotli/enc/backward_references.c, - libs/brotli/enc/backward_references_hq.c, libs/brotli/enc/command.h, - libs/brotli/enc/context.h, libs/brotli/enc/encode.c, - libs/brotli/enc/memory.h, libs/brotli/enc/metablock.c, - libs/brotli/enc/metablock.h, libs/brotli/enc/params.h, - libs/brotli/enc/port.h, libs/brotli/enc/quality.h, - libs/brotli/enc/write_bits.h, libs/brotli/include/brotli/decode.h, - libs/brotli/include/brotli/encode.h: - updated brotli to version 1.0.4 - -2018-03-29 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in, src/SVGOutput.cpp, src/ZLibOutputStream.hpp, - src/dvisvgm.cpp: - enabled to output compressed SVG data to stdout - - * src/dvisvgm.cpp: - renamed SourceInput variable - -2018-03-28 Martin Gieseking <martin.gieseking@uos.de> - - * src/dvisvgm.cpp: - simplified main() function - -2018-03-27 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in, src/CLCommandLine.cpp, src/CLCommandLine.hpp, - src/CommandLine.hpp, src/EPSFile.cpp, src/EPSFile.hpp, src/EPSToSVG.cpp, - src/EPSToSVG.hpp, src/FileSystem.cpp, src/Makefile.am, - src/PsSpecialHandler.cpp, src/SVGOutput.cpp, src/SVGOutput.hpp, - src/SourceInput.cpp, src/SourceInput.hpp, src/dvisvgm.cpp, - src/options.xml, tests/CommandLineTest.cpp, tests/SVGOutputTest.cpp: - added option to read DVI/EPS input from stdin (closes #86) - -2018-03-26 Martin Gieseking <martin.gieseking@uos.de> - - * src/PSInterpreter.cpp, src/PSInterpreter.hpp, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.hpp, src/psdefs.cpp, tests/PSInterpreterTest.cpp: - PS handler: added processing of .setshapealpha and .setblendmode - -2018-03-23 Martin Gieseking <martin.gieseking@uos.de> - - * src/Matrix.cpp, src/Matrix.hpp, tests/MatrixTest.cpp: - added initlist constructor to class Matrix - - * src/PSInterpreter.cpp, src/PSInterpreter.hpp, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.hpp, src/psdefs.cpp, tests/PSInterpreterTest.cpp: - psfile special: added evaluation of operator 'setpagedevice' - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.3.5 - - * NEWS: - updated NEWS - -2018-03-21 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp: - added missing PS header required to evaluate color names - - * src/PSInterpreter.cpp, src/psdefs.cpp: - drop GS option -dSAFER to stay compatible with GS 9.23 - -2018-03-13 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.3.4 - - * NEWS: - updated NEWS - -2018-03-12 Martin Gieseking <martin.gieseking@uos.de> - - * tests/data/Makefile.am: - add required test file cmr10.pfb to source tarballs (closes #87) - -2018-03-07 Martin Gieseking <martin.gieseking@uos.de> - - * src/EmSpecialHandler.hpp, src/XMLDocument.hpp, src/dvisvgm.cpp: - replaced memory-inefficient lists with vectors - - * src/XMLNode.cpp, src/XMLNode.hpp: - replaced lists of XML element pointers with deques - - * src/CLCommandLine.cpp: - fixed message printed if command-line contains an isolated '-' - -2018-03-03 Martin Gieseking <martin.gieseking@uos.de> - - * libs/brotli/Makefile.am, libs/brotli/common/constants.h, - libs/brotli/common/context.h, libs/brotli/common/dictionary.h, - libs/brotli/common/platform.h, libs/brotli/common/transform.h, - libs/brotli/common/version.h, libs/brotli/enc/backward_references.c, - libs/brotli/enc/backward_references.h, - libs/brotli/enc/backward_references_hq.c, - libs/brotli/enc/backward_references_hq.h, - libs/brotli/enc/backward_references_inc.h, libs/brotli/enc/bit_cost.c, - libs/brotli/enc/bit_cost.h, libs/brotli/enc/block_encoder_inc.h, - libs/brotli/enc/block_splitter.c, libs/brotli/enc/block_splitter.h, - libs/brotli/enc/block_splitter_inc.h, - libs/brotli/enc/brotli_bit_stream.c, libs/brotli/enc/brotli_bit_stream.h, - libs/brotli/enc/cluster.c, libs/brotli/enc/cluster.h, - libs/brotli/enc/command.h, libs/brotli/enc/compress_fragment.c, - libs/brotli/enc/compress_fragment.h, - libs/brotli/enc/compress_fragment_two_pass.c, - libs/brotli/enc/compress_fragment_two_pass.h, - libs/brotli/enc/dictionary_hash.c, libs/brotli/enc/encode.c, - libs/brotli/enc/encoder_dict.c, libs/brotli/enc/encoder_dict.h, - libs/brotli/enc/entropy_encode.c, libs/brotli/enc/entropy_encode.h, - libs/brotli/enc/entropy_encode_static.h, libs/brotli/enc/fast_log.h, - libs/brotli/enc/find_match_length.h, libs/brotli/enc/hash.h, - libs/brotli/enc/hash_forgetful_chain_inc.h, - libs/brotli/enc/hash_longest_match64_inc.h, - libs/brotli/enc/hash_longest_match_inc.h, - libs/brotli/enc/hash_longest_match_quickly_inc.h, - libs/brotli/enc/hash_to_binary_tree_inc.h, libs/brotli/enc/histogram.c, - libs/brotli/enc/histogram.h, libs/brotli/enc/histogram_inc.h, - libs/brotli/enc/literal_cost.c, libs/brotli/enc/literal_cost.h, - libs/brotli/enc/memory.c, libs/brotli/enc/memory.h, - libs/brotli/enc/metablock.c, libs/brotli/enc/metablock.h, - libs/brotli/enc/metablock_inc.h, libs/brotli/enc/params.h, - libs/brotli/enc/prefix.h, libs/brotli/enc/quality.h, - libs/brotli/enc/ringbuffer.h, libs/brotli/enc/static_dict.c, - libs/brotli/enc/static_dict.h, libs/brotli/enc/static_dict_lut.h, - libs/brotli/enc/utf8_util.c, libs/brotli/enc/utf8_util.h, - libs/brotli/enc/write_bits.h, libs/brotli/include/brotli/decode.h, - libs/brotli/include/brotli/encode.h, libs/brotli/include/brotli/port.h: - updated brotli to version 1.0.3 - -2018-02-20 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in: - minor changes of the manpage - - * .appveyor.yml, .travis.yml, 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-09 Martin Gieseking <martin.gieseking@uos.de> - - * src/FileSystem.cpp, src/FontCache.cpp, src/FontMap.cpp, - src/GFGlyphTracer.cpp, src/MetafontWrapper.cpp, src/PsSpecialHandler.cpp, - src/utility.cpp, tests/DVIReaderTest.cpp, tests/GFReaderTest.cpp, - tests/JFMReaderTest.cpp, tests/TFMReaderTest.cpp: - removed calls of c_str() redundant since C++11 - - * src/StreamReader.cpp: - replaced c_str() with data() in StreamReader - -2018-02-08 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, .travis.yml, 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-27 Hironobu Yamashita <h.y.acetaminophen@gmail.com> - - * src/JFM.cpp: - JFM.cpp: support new JFM spec introduced in TeX Live r46452 - - * src/JFM.cpp, src/JFM.hpp, tests/JFMReaderTest.cpp: - adapted types to conform new JFM format - - * src/options.xml: - updated year in options.xml - - * src/FileFinder.cpp, src/Process.cpp: - relaxed reading from process pipe; fixed getting output of kpsewhich - (Win only) - -2018-01-16 Martin Gieseking <martin.gieseking@uos.de> - - * src/CMap.hpp, src/RangeMap.hpp, src/ToUnicodeMap.cpp, - tests/RangeMapTest.cpp, tests/ToUnicodeMapTest.cpp: - renamed RangeMap::size() to RangeMap::numRanges() - -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: updated to FreeType 2.9 and ttfautohint 1.8.1 - - * .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: - manpage: reworded info about option --bbox=preview (closes #83) - -2018-01-09 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.3.1 - -2018-01-03 Martin Gieseking <martin.gieseking@uos.de> - - * src/CMapReader.cpp, src/Directory.cpp, src/Directory.hpp, - src/DvisvgmSpecialHandler.cpp, src/FileFinder.cpp, src/FileFinder.hpp, - src/FilePath.cpp, src/FilePath.hpp, src/FileSystem.cpp, - src/FileSystem.hpp, src/Font.cpp, src/FontCache.cpp, src/FontCache.hpp, - src/FontMap.cpp, src/FontMetrics.cpp, src/FontMetrics.hpp, - src/MetafontWrapper.cpp: - replaced some C string parameters with C++ strings - -2018-01-02 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, - doc/dvisvgm.txt.in, doc/tweak-db-article.xsl, doc/tweak-db-refentry.xsl, - doc/tweak-dblatex-pdf.xsl, libs/Makefile.am, - libs/ff-woff/fontforge/tmpfile2.cpp, src/AGLTable.hpp, - src/BasicDVIReader.cpp, src/BasicDVIReader.hpp, src/Bezier.cpp, - src/Bezier.hpp, src/BgColorSpecialHandler.cpp, - src/BgColorSpecialHandler.hpp, src/Bitmap.cpp, src/Bitmap.hpp, - src/BoundingBox.cpp, src/BoundingBox.hpp, src/CLCommandLine.cpp, - src/CLCommandLine.hpp, src/CLOption.hpp, src/CMap.cpp, src/CMap.hpp, - src/CMapManager.cpp, src/CMapManager.hpp, src/CMapReader.cpp, - src/CMapReader.hpp, src/CRC32.cpp, src/CRC32.hpp, src/Calculator.cpp, - src/Calculator.hpp, src/CharMapID.cpp, src/CharMapID.hpp, - src/Character.hpp, src/Color.cpp, src/Color.hpp, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.hpp, - src/CommandLine.hpp, src/DLLoader.cpp, src/DLLoader.hpp, - src/DVIActions.hpp, src/DVIReader.cpp, src/DVIReader.hpp, - src/DVIToSVG.cpp, src/DVIToSVG.hpp, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.hpp, src/DependencyGraph.hpp, src/Directory.cpp, - src/Directory.hpp, src/DvisvgmSpecialHandler.cpp, - src/DvisvgmSpecialHandler.hpp, src/EPSFile.cpp, src/EPSFile.hpp, - src/EPSToSVG.cpp, src/EPSToSVG.hpp, src/EmSpecialHandler.cpp, - src/EmSpecialHandler.hpp, src/EncFile.cpp, src/EncFile.hpp, - src/FileFinder.cpp, src/FileFinder.hpp, src/FilePath.cpp, - src/FilePath.hpp, src/FileSystem.cpp, src/FileSystem.hpp, - src/FixWord.hpp, src/Font.cpp, src/Font.hpp, src/FontCache.cpp, - src/FontCache.hpp, src/FontEncoding.cpp, src/FontEncoding.hpp, - src/FontEngine.cpp, src/FontEngine.hpp, src/FontManager.cpp, - src/FontManager.hpp, src/FontMap.cpp, src/FontMap.hpp, - src/FontMetrics.cpp, src/FontMetrics.hpp, src/FontStyle.hpp, - src/FontWriter.cpp, src/FontWriter.hpp, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.hpp, src/GFReader.cpp, src/GFReader.hpp, - src/GFTracer.cpp, src/GFTracer.hpp, src/Ghostscript.cpp, - src/Ghostscript.hpp, src/Glyph.hpp, src/GlyphTracerMessages.hpp, - src/GraphicsPath.hpp, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.hpp, src/HyperlinkManager.cpp, - src/HyperlinkManager.hpp, src/InputBuffer.cpp, src/InputBuffer.hpp, - src/InputReader.cpp, src/InputReader.hpp, src/JFM.cpp, src/JFM.hpp, - src/Length.cpp, src/Length.hpp, src/Makefile.am, src/MapLine.cpp, - src/MapLine.hpp, src/Matrix.cpp, src/Matrix.hpp, src/Message.cpp, - src/Message.hpp, src/MessageException.hpp, src/MetafontWrapper.cpp, - src/MetafontWrapper.hpp, src/MiKTeXCom.cpp, src/MiKTeXCom.hpp, - src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.hpp, - src/NumericRanges.hpp, src/PDFParser.cpp, src/PDFParser.hpp, - src/PSFilter.hpp, src/PSInterpreter.cpp, src/PSInterpreter.hpp, - src/PSPattern.cpp, src/PSPattern.hpp, src/PSPreviewFilter.cpp, - src/PSPreviewFilter.hpp, src/PageRanges.cpp, src/PageRanges.hpp, - src/PageSize.cpp, src/PageSize.hpp, src/Pair.hpp, - src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.hpp, - src/PathClipper.cpp, src/PathClipper.hpp, src/PdfSpecialHandler.cpp, - src/PdfSpecialHandler.hpp, src/PreScanDVIReader.cpp, - src/PreScanDVIReader.hpp, src/Process.cpp, src/Process.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, src/RangeMap.cpp, - src/RangeMap.hpp, src/SVGCharHandler.cpp, src/SVGCharHandler.hpp, - src/SVGCharHandlerFactory.cpp, src/SVGCharHandlerFactory.hpp, - src/SVGCharPathHandler.cpp, src/SVGCharPathHandler.hpp, - src/SVGCharTspanTextHandler.cpp, src/SVGCharTspanTextHandler.hpp, - src/SVGOutput.cpp, src/SVGOutput.hpp, src/SVGSingleCharTextHandler.cpp, - src/SVGSingleCharTextHandler.hpp, src/SVGTree.cpp, src/SVGTree.hpp, - src/ShadingPatch.cpp, src/ShadingPatch.hpp, src/SignalHandler.cpp, - src/SignalHandler.hpp, src/SpecialActions.hpp, src/SpecialHandler.hpp, - src/SpecialManager.cpp, src/SpecialManager.hpp, src/StreamReader.cpp, - src/StreamReader.hpp, src/StreamWriter.cpp, src/StreamWriter.hpp, - src/Subfont.cpp, src/Subfont.hpp, src/System.cpp, src/System.hpp, - src/TFM.cpp, src/TFM.hpp, src/TTFAutohint.cpp, src/TTFAutohint.hpp, - src/TensorProductPatch.cpp, src/TensorProductPatch.hpp, src/Terminal.cpp, - src/Terminal.hpp, src/ToUnicodeMap.cpp, src/ToUnicodeMap.hpp, - src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.hpp, - src/TriangularPatch.cpp, src/TriangularPatch.hpp, src/TrueTypeFont.cpp, - src/TrueTypeFont.hpp, src/Unicode.cpp, src/Unicode.hpp, - src/VFActions.hpp, src/VFReader.cpp, src/VFReader.hpp, - src/VectorIterator.hpp, src/VectorStream.hpp, src/XMLDocument.cpp, - src/XMLDocument.hpp, src/XMLNode.cpp, src/XMLNode.hpp, src/XMLString.cpp, - src/XMLString.hpp, src/ZLibOutputStream.hpp, src/dvisvgm.cpp, - src/ffwrapper.c, src/ffwrapper.h, src/macros.hpp, src/options.dtd, - src/options.xml, src/psdefs.cpp, src/utility.cpp, src/utility.hpp, - src/version.hpp, src/version.hpp.in, src/windows.hpp, - tests/BezierTest.cpp, tests/BitmapTest.cpp, tests/BoundingBoxTest.cpp, - tests/CMapManagerTest.cpp, tests/CMapReaderTest.cpp, tests/CMapTest.cpp, - tests/CRC32Test.cpp, tests/CalculatorTest.cpp, - tests/ColorSpecialTest.cpp, tests/ColorTest.cpp, - tests/CommandLineTest.cpp, tests/DVIReaderTest.cpp, - tests/DependencyGraphTest.cpp, tests/DirectoryTest.cpp, - tests/DvisvgmSpecialTest.cpp, tests/EmSpecialTest.cpp, - tests/FileFinderTest.cpp, tests/FilePathTest.cpp, - tests/FileSystemTest.cpp, tests/FontCacheTest.cpp, - tests/FontManagerTest.cpp, tests/FontMapTest.cpp, - tests/GFGlyphTracerTest.cpp, tests/GFReaderTest.cpp, - tests/GhostscriptTest.cpp, tests/GraphicsPathTest.cpp, - tests/JFMReaderTest.cpp, tests/LengthTest.cpp, tests/Makefile.am, - tests/MapLineTest.cpp, tests/MatrixTest.cpp, - tests/MessageExceptionTest.cpp, tests/PDFParserTest.cpp, - tests/PSInterpreterTest.cpp, tests/PageRagesTest.cpp, - tests/PageSizeTest.cpp, tests/PairTest.cpp, - tests/PapersizeSpecialTest.cpp, tests/RangeMapTest.cpp, - tests/SVGOutputTest.cpp, tests/ShadingPatchTest.cpp, - tests/SpecialManagerTest.cpp, tests/SplittedCharInputBufferTest.cpp, - tests/StreamInputBufferTest.cpp, tests/StreamReaderTest.cpp, - tests/StreamWriterTest.cpp, tests/StringMatcherTest.cpp, - tests/SubfontTest.cpp, tests/TFMReaderTest.cpp, - tests/TensorProductPatchTest.cpp, tests/ToUnicodeMapTest.cpp, - tests/TpicSpecialTest.cpp, tests/TriangularPatchTest.cpp, - tests/UnicodeTest.cpp, tests/UtilityTest.cpp, - tests/VectorIteratorTest.cpp, tests/VectorStreamTest.cpp, - tests/XMLNodeTest.cpp, tests/XMLStringTest.cpp, tests/check-conv, - tests/create-makefile, tests/data/Makefile.am, tests/genhashcheck.py, - tests/normalize.xsl, tests/testmain.cpp: - updated year in copyright statements to 2018 - - * src/dvisvgm.cpp: - avoid potential dangling string pointer to --fontmap argument - - * 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> - - * .appveyor.yml: - AppVeyor: download and install ttfautohint headers - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.3 - - * NEWS, README, README.md: - updated README and NEWS - -2017-12-27 Martin Gieseking <martin.gieseking@uos.de> - - * src/DLLoader.cpp, src/DLLoader.hpp, src/Ghostscript.cpp, - src/TTFAutohint.cpp: - simplify function to load a symbol from a dynamic library - -2017-12-23 Martin Gieseking <martin.gieseking@uos.de> - - * configure.ac, src/DLLoader.cpp, src/DLLoader.hpp, src/FontWriter.cpp, - src/Makefile.am, src/TTFAutohint.cpp, src/TTFAutohint.hpp, - src/dvisvgm.cpp: - added code to load libttfautohint dynamically at runtime - -2017-12-22 Martin Gieseking <martin.gieseking@uos.de> - - * libs/xxHash/xxhash.c, libs/xxHash/xxhash.h: - updated xxHash to version 0.6.4 - -2017-12-21 Martin Gieseking <martin.gieseking@uos.de> - - * tests/gtest/include/gtest/gtest-param-test.h, - tests/gtest/include/gtest/gtest-printers.h, - tests/gtest/include/gtest/gtest-spi.h, - tests/gtest/include/gtest/gtest-typed-test.h, - tests/gtest/include/gtest/gtest.h, - tests/gtest/include/gtest/internal/custom/gtest-port.h, - tests/gtest/include/gtest/internal/custom/gtest.h, - tests/gtest/include/gtest/internal/gtest-internal.h, - tests/gtest/include/gtest/internal/gtest-param-util-generated.h, - tests/gtest/include/gtest/internal/gtest-param-util.h, - tests/gtest/include/gtest/internal/gtest-port-arch.h, - tests/gtest/include/gtest/internal/gtest-port.h, - tests/gtest/src/gtest-death-test.cc, - tests/gtest/src/gtest-internal-inl.h, tests/gtest/src/gtest-port.cc, - tests/gtest/src/gtest-printers.cc, tests/gtest/src/gtest.cc: - updated gtest - -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 - -2017-12-18 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.cpp: - psdefs: replaced '6 array' with 'matrix' - -2017-12-17 Martin Gieseking <martin.gieseking@uos.de> - - * libs/woff2/Makefile.am, libs/woff2/include/woff2/file.h, - src/FontWriter.cpp, src/FontWriter.hpp, src/Makefile.am, - src/StreamReader.hpp, src/StreamWriter.cpp, src/StreamWriter.hpp, - src/TrueTypeFont.cpp, src/TrueTypeFont.hpp, src/ffwrapper.c, - src/ffwrapper.h, src/utility.cpp, src/utility.hpp: - replaced ff_sfd_to_woff() with TrueTypeFont::writeWOFF() - - * configure.ac, src/FontWriter.cpp, src/Makefile.am, src/dvisvgm.cpp: - added optional support for ttfautohint - -2017-12-14 Martin Gieseking <martin.gieseking@uos.de> - - * configure.ac, libs/Makefile.am, libs/brotli/LICENSE, - libs/brotli/Makefile.am, libs/brotli/common/constants.h, - libs/brotli/common/dictionary.c, libs/brotli/common/dictionary.h, - libs/brotli/common/version.h, libs/brotli/enc/backward_references.c, - libs/brotli/enc/backward_references.h, - libs/brotli/enc/backward_references_hq.c, - libs/brotli/enc/backward_references_hq.h, - libs/brotli/enc/backward_references_inc.h, libs/brotli/enc/bit_cost.c, - libs/brotli/enc/bit_cost.h, libs/brotli/enc/bit_cost_inc.h, - libs/brotli/enc/block_encoder_inc.h, libs/brotli/enc/block_splitter.c, - libs/brotli/enc/block_splitter.h, libs/brotli/enc/block_splitter_inc.h, - libs/brotli/enc/brotli_bit_stream.c, libs/brotli/enc/brotli_bit_stream.h, - libs/brotli/enc/cluster.c, libs/brotli/enc/cluster.h, - libs/brotli/enc/cluster_inc.h, libs/brotli/enc/command.h, - libs/brotli/enc/compress_fragment.c, libs/brotli/enc/compress_fragment.h, - libs/brotli/enc/compress_fragment_two_pass.c, - libs/brotli/enc/compress_fragment_two_pass.h, libs/brotli/enc/context.h, - libs/brotli/enc/dictionary_hash.c, libs/brotli/enc/dictionary_hash.h, - libs/brotli/enc/encode.c, libs/brotli/enc/entropy_encode.c, - libs/brotli/enc/entropy_encode.h, - libs/brotli/enc/entropy_encode_static.h, libs/brotli/enc/fast_log.h, - libs/brotli/enc/find_match_length.h, libs/brotli/enc/hash.h, - libs/brotli/enc/hash_forgetful_chain_inc.h, - libs/brotli/enc/hash_longest_match64_inc.h, - libs/brotli/enc/hash_longest_match_inc.h, - libs/brotli/enc/hash_longest_match_quickly_inc.h, - libs/brotli/enc/hash_to_binary_tree_inc.h, libs/brotli/enc/histogram.c, - libs/brotli/enc/histogram.h, libs/brotli/enc/histogram_inc.h, - libs/brotli/enc/literal_cost.c, libs/brotli/enc/literal_cost.h, - libs/brotli/enc/memory.c, libs/brotli/enc/memory.h, - libs/brotli/enc/metablock.c, libs/brotli/enc/metablock.h, - libs/brotli/enc/metablock_inc.h, libs/brotli/enc/port.h, - libs/brotli/enc/prefix.h, libs/brotli/enc/quality.h, - libs/brotli/enc/ringbuffer.h, libs/brotli/enc/static_dict.c, - libs/brotli/enc/static_dict.h, libs/brotli/enc/static_dict_lut.h, - libs/brotli/enc/utf8_util.c, libs/brotli/enc/utf8_util.h, - libs/brotli/enc/write_bits.h, libs/brotli/include/brotli/decode.h, - libs/brotli/include/brotli/encode.h, libs/brotli/include/brotli/port.h, - libs/brotli/include/brotli/types.h, libs/woff2/Makefile.am, - libs/woff2/brotli/LICENSE, libs/woff2/brotli/Makefile.am, - libs/woff2/brotli/common/constants.h, - libs/woff2/brotli/common/dictionary.c, - libs/woff2/brotli/common/dictionary.h, - libs/woff2/brotli/common/version.h, - libs/woff2/brotli/enc/backward_references.c, - libs/woff2/brotli/enc/backward_references.h, - libs/woff2/brotli/enc/backward_references_hq.c, - libs/woff2/brotli/enc/backward_references_hq.h, - libs/woff2/brotli/enc/backward_references_inc.h, - libs/woff2/brotli/enc/bit_cost.c, libs/woff2/brotli/enc/bit_cost.h, - libs/woff2/brotli/enc/bit_cost_inc.h, - libs/woff2/brotli/enc/block_encoder_inc.h, - libs/woff2/brotli/enc/block_splitter.c, - libs/woff2/brotli/enc/block_splitter.h, - libs/woff2/brotli/enc/block_splitter_inc.h, - libs/woff2/brotli/enc/brotli_bit_stream.c, - libs/woff2/brotli/enc/brotli_bit_stream.h, - libs/woff2/brotli/enc/cluster.c, libs/woff2/brotli/enc/cluster.h, - libs/woff2/brotli/enc/cluster_inc.h, libs/woff2/brotli/enc/command.h, - libs/woff2/brotli/enc/compress_fragment.c, - libs/woff2/brotli/enc/compress_fragment.h, - libs/woff2/brotli/enc/compress_fragment_two_pass.c, - libs/woff2/brotli/enc/compress_fragment_two_pass.h, - libs/woff2/brotli/enc/context.h, libs/woff2/brotli/enc/dictionary_hash.c, - libs/woff2/brotli/enc/dictionary_hash.h, libs/woff2/brotli/enc/encode.c, - libs/woff2/brotli/enc/entropy_encode.c, - libs/woff2/brotli/enc/entropy_encode.h, - libs/woff2/brotli/enc/entropy_encode_static.h, - libs/woff2/brotli/enc/fast_log.h, - libs/woff2/brotli/enc/find_match_length.h, libs/woff2/brotli/enc/hash.h, - libs/woff2/brotli/enc/hash_forgetful_chain_inc.h, - libs/woff2/brotli/enc/hash_longest_match64_inc.h, - libs/woff2/brotli/enc/hash_longest_match_inc.h, - libs/woff2/brotli/enc/hash_longest_match_quickly_inc.h, - libs/woff2/brotli/enc/hash_to_binary_tree_inc.h, - libs/woff2/brotli/enc/histogram.c, libs/woff2/brotli/enc/histogram.h, - libs/woff2/brotli/enc/histogram_inc.h, - libs/woff2/brotli/enc/literal_cost.c, - libs/woff2/brotli/enc/literal_cost.h, libs/woff2/brotli/enc/memory.c, - libs/woff2/brotli/enc/memory.h, libs/woff2/brotli/enc/metablock.c, - libs/woff2/brotli/enc/metablock.h, libs/woff2/brotli/enc/metablock_inc.h, - libs/woff2/brotli/enc/port.h, libs/woff2/brotli/enc/prefix.h, - libs/woff2/brotli/enc/quality.h, libs/woff2/brotli/enc/ringbuffer.h, - libs/woff2/brotli/enc/static_dict.c, libs/woff2/brotli/enc/static_dict.h, - libs/woff2/brotli/enc/static_dict_lut.h, - libs/woff2/brotli/enc/utf8_util.c, libs/woff2/brotli/enc/utf8_util.h, - libs/woff2/brotli/enc/write_bits.h, - libs/woff2/brotli/include/brotli/decode.h, - libs/woff2/brotli/include/brotli/encode.h, - libs/woff2/brotli/include/brotli/port.h, - libs/woff2/brotli/include/brotli/types.h, src/Makefile.am, - tests/Makefile.am, tests/create-makefile: - moved brotli from woff2 to libs folder - -2017-12-12 Martin Gieseking <martin.gieseking@uos.de> - - * libs/variant/include/mpark/config.hpp, - libs/variant/include/mpark/lib.hpp, - libs/variant/include/mpark/variant.hpp: - updated mpark::variant to - https://github.com/mpark/variant/commit/382014b -fixes a build error - introduced with MSVC 19.12 - -2017-12-11 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, .travis.yml, 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, - libs/woff2/brotli/common/version.h, - libs/woff2/brotli/enc/backward_references_hq.c, - libs/woff2/brotli/enc/backward_references_hq.h, - libs/woff2/brotli/enc/port.h, libs/woff2/brotli/enc/quality.h, - libs/woff2/brotli/include/brotli/decode.h, - libs/woff2/brotli/include/brotli/encode.h: - updated brotli to version 1.0.2 - -2017-11-24 Martin Gieseking <martin.gieseking@uos.de> - - * 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 - - * src/DependencyGraph.hpp: - simplified DependencyGraph::GraphNode - -2017-11-23 Martin Gieseking <martin.gieseking@uos.de> - - * tests/TpicSpecialTest.cpp: - added missing initializers in TpicSpecialTest - - * tests/EmSpecialTest.cpp: - added missing initializers in EmSpecialTest - - * 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/PSPattern.cpp, src/SVGCharHandler.cpp, src/SVGTree.cpp, - src/TpicSpecialHandler.cpp: - removed redundant calls of std::move() - - * src/Subfont.cpp, src/Subfont.hpp, tests/CMapManagerTest.cpp, - tests/FileFinderTest.cpp, tests/FontManagerTest.cpp, tests/Makefile.am, - tests/MapLineTest.cpp, tests/SubfontTest.cpp, tests/create-makefile, - tests/testmain.cpp, tests/testutil.hpp: - tests: moved common initializations to testmain.cpp - - * src/DVIReader.hpp, 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> - - * Makefile.am: - removed redundant lcov statement from Makefile - -2017-11-20 Martin Gieseking <martin.gieseking@uos.de> - - * 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> - - * src/Font.cpp, src/Font.hpp: - prevent dangling pointers to font map entries (closes #79) - - * 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 - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.2.2 - - * NEWS: - updated NEWS - -2017-11-13 Martin Gieseking <martin.gieseking@uos.de> - - * doc/Makefile.am: - ensure tweak-db-refentry.xsl is put into the tarball - - * .appveyor.yml, .travis.yml, 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 - -2017-11-10 Martin Gieseking <martin.gieseking@uos.de> - - * README, README.md, doc/dvisvgm.txt.in: - minor additions/fixes of manpage and README - -2017-11-02 Martin Gieseking <martin.gieseking@uos.de> - - * doc/Makefile.am, doc/db2html.xsl, doc/tweak-db-refentry.xsl: - manpage: avoid using 'stats' to improve portability (closes #72) - -2017-10-31 Martin Gieseking <martin.gieseking@uos.de> - - * src/InputReader.cpp, src/InputReader.hpp, src/PSInterpreter.cpp: - simplified code to lookup PS operators - -2017-10-30 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.hpp, src/psdefs.cpp, tests/PSInterpreterTest.cpp: - properly apply CTM to linewidth (closes #77) - - * src/PsSpecialHandler.hpp, src/psdefs.cpp, tests/PSInterpreterTest.cpp: - call applyscalevals on every change of the CTM - -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, - src/EmSpecialHandler.cpp, src/HyperlinkManager.cpp, src/PSPattern.cpp, - src/PSPattern.hpp, src/PsSpecialHandler.cpp, src/SVGCharHandler.cpp, - src/SVGCharHandler.hpp, src/SVGCharPathHandler.cpp, - src/SVGCharTspanTextHandler.cpp, src/SVGSingleCharTextHandler.cpp, - src/SVGTree.cpp, src/SVGTree.hpp, src/ShadingPatch.hpp, - src/SpecialActions.hpp, src/TpicSpecialHandler.cpp, src/XMLDocument.cpp, - src/XMLDocument.hpp, src/XMLNode.cpp, src/XMLNode.hpp, src/utility.hpp, - tests/DvisvgmSpecialTest.cpp, tests/EmSpecialTest.cpp, - tests/TpicSpecialTest.cpp, tests/XMLNodeTest.cpp: - replaced raw XMLNode pointers with unique_ptrs -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: - updated link to CTAN:/tools/macutils/crc - -2017-10-20 Martin Gieseking <martin.gieseking@uos.de> - - * libs/woff2/include/woff2/version.h: - replaced CRLF line endings - -2017-10-17 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - src/FontEncoding.cpp, src/FontEncoding.hpp, src/FontEngine.cpp, - src/FontEngine.hpp, src/FontManager.cpp, src/FontMetrics.cpp, - src/FontMetrics.hpp, src/PSPattern.hpp, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.hpp, src/SVGCharHandlerFactory.cpp, - src/SVGCharHandlerFactory.hpp, src/SVGOutput.cpp, - src/SVGSingleCharTextHandler.hpp, src/SVGTree.cpp, src/ShadingPatch.cpp, - src/ShadingPatch.hpp, src/SignalHandler.cpp, src/Subfont.cpp, - src/Subfont.hpp, src/XMLNode.cpp, tests/CMapReaderTest.cpp, - 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, 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/FontWriter.cpp: - added missing #include of config.h - - * src/Message.cpp: - check for '\0' at end of DVISVGM_COLORS - - * src/Subfont.cpp: - don't access unique_ptr after it has been moved - -2017-10-15 Martin Gieseking <martin.gieseking@uos.de> - - * src/PDFParser.cpp, src/PDFParser.hpp: - replaced shared_ptr with unique_ptr in PDFParser - -2017-10-13 Martin Gieseking <martin.gieseking@uos.de> - - * AUTHORS, configure.ac, doc/dvisvgm.txt.in, libs/Makefile.am, - libs/variant/CMakeLists.txt, libs/variant/LICENSE.md, - libs/variant/Makefile.am, libs/variant/include/mpark/in_place.hpp, - libs/variant/include/mpark/lib.hpp, - libs/variant/include/mpark/variant.hpp, src/HyperlinkManager.cpp, - src/HyperlinkManager.hpp, src/InputReader.hpp, src/Makefile.am, - src/PDFParser.cpp, src/PDFParser.hpp, src/PdfSpecialHandler.cpp, - src/PdfSpecialHandler.hpp, tests/Makefile.am, tests/PDFParserTest.cpp, - tests/SpecialManagerTest.cpp, tests/create-makefile: - added evaluation of PDF hyperlink specials (closes #74) - - * libs/variant/include/mpark/config.hpp: - added missing config file - - * .travis.yml: - Travis: use gcc 4.9 rather than 4.8 to compile mpark::variant correctly - - * tests/Makefile.am, tests/create-makefile, tests/testmain.cpp: - add custom testmain to gtest.a - -2017-10-11 Martin Gieseking <martin.gieseking@uos.de> - - * src/HtmlSpecialHandler.cpp, src/HtmlSpecialHandler.hpp, - src/HyperlinkManager.cpp, src/HyperlinkManager.hpp, src/Makefile.am, - src/dvisvgm.cpp: - separated hyperlink functionality from HtmlSpecialHandler to - HyperlinkManager - -2017-10-09 Martin Gieseking <martin.gieseking@uos.de> - - * libs/woff2/src/font.cc, libs/woff2/src/normalize.cc, - libs/woff2/src/woff2_enc.cc: - woff2: removed unused variables to prevent compiler warnings - - * libs/woff2/src/font.cc, libs/woff2/src/normalize.cc, - libs/woff2/src/woff2_enc.cc: - woff2: removed unused variables to prevent compiler warnings - -2017-10-08 Martin Gieseking <martin.gieseking@uos.de> - - * libs/woff2/Makefile.am, libs/woff2/include/woff2/decode.h, - libs/woff2/include/woff2/encode.h, libs/woff2/include/woff2/file.h, - libs/woff2/include/woff2/output.h, libs/woff2/include/woff2/version.h, - libs/woff2/src/buffer.h, libs/woff2/src/file.h, libs/woff2/src/font.cc, - libs/woff2/src/font.h, libs/woff2/src/glyph.cc, libs/woff2/src/glyph.h, - libs/woff2/src/normalize.cc, libs/woff2/src/normalize.h, - libs/woff2/src/port.h, libs/woff2/src/round.h, - libs/woff2/src/store_bytes.h, libs/woff2/src/table_tags.cc, - libs/woff2/src/table_tags.h, libs/woff2/src/transform.cc, - libs/woff2/src/transform.h, libs/woff2/src/variable_length.cc, - libs/woff2/src/variable_length.h, libs/woff2/src/woff2_common.cc, - libs/woff2/src/woff2_common.h, libs/woff2/src/woff2_dec.h, - libs/woff2/src/woff2_enc.cc, libs/woff2/src/woff2_enc.h, - libs/woff2/src/woff2_out.cc, libs/woff2/src/woff2_out.h, - src/FontWriter.cpp, src/Makefile.am, src/dvisvgm.cpp: - updated woff2 to version 1.0.1 - -2017-10-06 Martin Gieseking <martin.gieseking@uos.de> - - * 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/Subfont.cpp, src/Subfont.hpp, src/utility.hpp: - removed stream-based constructor of SubfontException - -2017-09-29 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in, src/PapersizeSpecialHandler.cpp, - src/PapersizeSpecialHandler.hpp, src/PdfSpecialHandler.cpp, - src/PdfSpecialHandler.hpp, src/SpecialManager.cpp, - src/SpecialManager.hpp, tests/PapersizeSpecialTest.cpp: - added evaluation of pdf:pagesize specials - -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() - -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/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, - libs/woff2/brotli/common/version.h, - libs/woff2/brotli/enc/backward_references.c, - libs/woff2/brotli/enc/backward_references_hq.c, - libs/woff2/brotli/enc/backward_references_hq.h, - libs/woff2/brotli/enc/backward_references_inc.h, - libs/woff2/brotli/enc/block_splitter.c, - libs/woff2/brotli/enc/block_splitter_inc.h, - libs/woff2/brotli/enc/brotli_bit_stream.c, - libs/woff2/brotli/enc/brotli_bit_stream.h, - libs/woff2/brotli/enc/cluster_inc.h, libs/woff2/brotli/enc/command.h, - libs/woff2/brotli/enc/compress_fragment.c, - libs/woff2/brotli/enc/compress_fragment_two_pass.c, - libs/woff2/brotli/enc/encode.c, - libs/woff2/brotli/enc/find_match_length.h, libs/woff2/brotli/enc/hash.h, - libs/woff2/brotli/enc/hash_forgetful_chain_inc.h, - libs/woff2/brotli/enc/hash_longest_match64_inc.h, - libs/woff2/brotli/enc/hash_longest_match_inc.h, - libs/woff2/brotli/enc/hash_longest_match_quickly_inc.h, - libs/woff2/brotli/enc/hash_to_binary_tree_inc.h, - libs/woff2/brotli/enc/memory.h, libs/woff2/brotli/enc/port.h, - libs/woff2/brotli/enc/write_bits.h, - libs/woff2/brotli/include/brotli/decode.h, - libs/woff2/brotli/include/brotli/encode.h: - updated Brotli to version 1.0.1 - -2017-09-15 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIToSVG.cpp, src/SpecialManager.cpp, src/SpecialManager.hpp, - src/utility.hpp, 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, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.hpp, - src/HtmlSpecialHandler.cpp, src/HtmlSpecialHandler.hpp, - src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.hpp, - src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.hpp, - src/PdfSpecialHandler.cpp, src/PdfSpecialHandler.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, - src/SpecialHandler.hpp, src/SpecialManager.cpp, - src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.hpp, - tests/ColorSpecialTest.cpp, tests/PapersizeSpecialTest.cpp: - changed return value of SpecialHandler::prefixes() to std::vector - - * .appveyor.yml: - AppVeyor: updated FreeType to version 2.8.1 - -2017-09-13 Martin Gieseking <martin.gieseking@uos.de> - - * tests/FileSystemTest.cpp: - close streams before removing corresponding files - -2017-09-09 Martin Gieseking <martin.gieseking@uos.de> - - * src/dvisvgm.cpp: - fixed number of dashes printed by option -V1 - -2017-09-08 Martin Gieseking <martin.gieseking@uos.de> - - * src/DependencyGraph.hpp, src/SVGTree.cpp, tests/DependencyGraphTest.cpp: - DependencyGraph::getKeys(): return result, don't use reference parameter - - * src/FileFinder.cpp, src/Makefile.am: - added missing #include; added windows.hpp to Makefile.am - - * tests/Makefile.am, tests/create-makefile, tests/testmain.cpp: - define variable TEST_ARGV0 to make argv[0] of main() available in - tests -this is required to initialize kpathsea properly, for example - - * 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 - - * libs/xxHash/xxhash.c, libs/xxHash/xxhash.h: - updated xxHash to version 0.6.3 - -2017-09-07 Martin Gieseking <martin.gieseking@uos.de> - - * tests/FontCacheTest.cpp, tests/Makefile.am, tests/create-makefile: - fixed path issue in FontCacheTest - - * src/GFReader.cpp: - fixed incorrect integer type in GFReader; insert CharInfos with emplace - - * src/MapLine.cpp, tests/MapLineTest.cpp: - treat prefix "<<" in a mapline as "<[" (skip second char) - - * 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, - src/Calculator.cpp, src/ColorSpecialHandler.cpp, src/DLLoader.cpp, - src/DVIReader.cpp, src/Directory.cpp, src/EPSFile.cpp, src/EPSToSVG.cpp, - src/EmSpecialHandler.cpp, src/EncFile.cpp, src/FileFinder.cpp, - src/FilePath.cpp, src/Font.cpp, src/FontCache.cpp, src/FontEncoding.cpp, - src/FontEngine.cpp, src/FontManager.cpp, src/FontMap.cpp, - src/FontMap.hpp, src/FontMetrics.cpp, src/FontWriter.cpp, - src/GFGlyphTracer.cpp, src/GFTracer.cpp, src/HtmlSpecialHandler.cpp, - src/InputBuffer.cpp, src/InputReader.cpp, src/JFM.cpp, src/MapLine.cpp, - src/Message.cpp, src/MetafontWrapper.cpp, src/MiKTeXCom.cpp, - src/NoPsSpecialHandler.cpp, src/PSInterpreter.cpp, src/PSPattern.cpp, - src/PSPreviewFilter.cpp, src/PageRanges.cpp, src/PageSize.cpp, - src/PathClipper.cpp, src/PdfSpecialHandler.cpp, src/SVGTree.cpp, - src/SpecialManager.cpp, src/StreamWriter.cpp, src/TFM.cpp, - src/VFReader.cpp, src/XMLDocument.cpp, src/XMLNode.cpp, - 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 - -2017-08-27 Martin Gieseking <martin.gieseking@uos.de> - - * src/AGLTable.hpp, src/CMapReader.cpp, src/Color.cpp, - src/CommandLine.hpp, src/FontWriter.cpp, 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, - src/Ghostscript.cpp, src/PsSpecialHandler.cpp, src/dvisvgm.cpp, - tests/DvisvgmSpecialTest.cpp: - use range-based for to iterate over a fixed sequence of items - -2017-08-17 Martin Gieseking <martin.gieseking@uos.de> - - * m4/ax_code_coverage.m4: - updated ax_code_coverage.m4 to version 25 - -2017-08-06 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml: - AppVeyor: updated potrace to version 1.15 - -2017-08-01 Martin Gieseking <martin.gieseking@uos.de> - - * libs/woff2/src/font.cc, libs/woff2/src/normalize.cc, - libs/woff2/src/port.h, libs/woff2/src/store_bytes.h, - libs/woff2/src/woff2_common.cc, libs/woff2/src/woff2_enc.cc: - updated woff2 to https://github.com/google/woff2/commits/2e09253 - -2017-06-26 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml: - AppVeyor: changed build image to VS 2017; updated FreeType to 2.8 - -2017-06-20 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp: - psfile: fixed sign of y coordinates - -2017-06-12 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.hpp: - use bp units for line width and miter limit - -2017-06-09 Martin Gieseking <martin.gieseking@uos.de> - - * src/EPSToSVG.cpp: - remove redundant clipPath elements also when converting EPS files - -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 - deletes unreferenced path objects -- avoids keeping popped (and no longer - required) paths in the pool vector - -2017-05-26 Martin Gieseking <martin.gieseking@uos.de> - - * 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/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> - - * tests/FontCacheTest.cpp, tests/Makefile.am, tests/create-makefile: - FontCacheTest: write test output to $builddir/data -$srcdir/data may be - read-only so that the tests fail unintentionally - -2017-05-15 Martin Gieseking <martin.gieseking@uos.de> - - * libs/woff2/brotli/LICENSE, libs/woff2/brotli/Makefile.am, - libs/woff2/brotli/common/constants.h, - libs/woff2/brotli/common/dictionary.c, - libs/woff2/brotli/common/dictionary.h, - libs/woff2/brotli/common/version.h, - libs/woff2/brotli/enc/backward_references.c, - libs/woff2/brotli/enc/backward_references.h, - libs/woff2/brotli/enc/backward_references_hq.c, - libs/woff2/brotli/enc/backward_references_hq.h, - libs/woff2/brotli/enc/backward_references_inc.h, - libs/woff2/brotli/enc/block_splitter_inc.h, - libs/woff2/brotli/enc/command.h, - libs/woff2/brotli/enc/compress_fragment.c, - libs/woff2/brotli/enc/compress_fragment.h, - libs/woff2/brotli/enc/compress_fragment_two_pass.c, - libs/woff2/brotli/enc/compress_fragment_two_pass.h, - libs/woff2/brotli/enc/context.h, libs/woff2/brotli/enc/dictionary_hash.c, - libs/woff2/brotli/enc/dictionary_hash.h, libs/woff2/brotli/enc/encode.c, - libs/woff2/brotli/enc/fast_log.h, libs/woff2/brotli/enc/hash.h, - libs/woff2/brotli/enc/hash_forgetful_chain_inc.h, - libs/woff2/brotli/enc/hash_longest_match64_inc.h, - libs/woff2/brotli/enc/hash_longest_match_inc.h, - libs/woff2/brotli/enc/hash_longest_match_quickly_inc.h, - libs/woff2/brotli/enc/hash_to_binary_tree_inc.h, - libs/woff2/brotli/enc/histogram.c, libs/woff2/brotli/enc/literal_cost.c, - libs/woff2/brotli/enc/memory.h, libs/woff2/brotli/enc/metablock.c, - libs/woff2/brotli/enc/metablock.h, libs/woff2/brotli/enc/quality.h, - libs/woff2/brotli/enc/static_dict.c, libs/woff2/brotli/enc/static_dict.h, - libs/woff2/brotli/include/brotli/decode.h, - libs/woff2/brotli/include/brotli/encode.h, - libs/woff2/brotli/include/brotli/port.h, - libs/woff2/brotli/include/brotli/types.h: - updated brotli to version 0.6.0 - -2017-05-11 Martin Gieseking <martin.gieseking@uos.de> - - * src/Process.cpp: - close pipe if fork() fails - -2017-05-08 Martin Gieseking <martin.gieseking@uos.de> - - * 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 - system-dependent stuff and to ensure - proper termination in case of - signals or errors -- prevent blocking if subprocess doesn't write anything - to stdout/stderr - -2017-04-28 Martin Gieseking <martin.gieseking@uos.de> - - * src/Process.cpp: - quit Process::run() if child process terminated unexpectedly (fixes #68) - -2017-04-27 Martin Gieseking <martin.gieseking@uos.de> - - * tests/Makefile.am, tests/create-makefile: - added the FontWriter dependencies to the tests - -2017-04-24 Martin Gieseking <martin.gieseking@uos.de> - - * 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/Makefile.am, tests/TpicSpecialTest.cpp: - improved the TPIC special handler and added tests for it - - * src/TpicSpecialHandler.cpp, tests/TpicSpecialTest.cpp: - added evaluation of TPIC's 'tx' special command - -2017-04-23 Martin Gieseking <martin.gieseking@uos.de> - - * src/BasicDVIReader.hpp, src/BgColorSpecialHandler.hpp, - src/CLCommandLine.hpp, src/CMapManager.hpp, src/DVIToSVGActions.hpp, - src/DependencyGraph.hpp, src/DvisvgmSpecialHandler.hpp, src/FilePath.hpp, - src/Font.hpp, src/FontCache.cpp, src/FontCache.hpp, src/FontEngine.cpp, - src/FontManager.hpp, src/Ghostscript.hpp, src/Glyph.hpp, - src/GraphicsPath.hpp, src/HtmlSpecialHandler.hpp, src/NumericRanges.hpp, - src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.hpp, - src/PathClipper.cpp, src/PathClipper.hpp, src/PsSpecialHandler.hpp, - src/RangeMap.hpp, src/SVGCharPathHandler.hpp, src/ShadingPatch.hpp, - src/SpecialManager.hpp, src/Subfont.hpp, src/VFReader.hpp, - src/XMLNode.cpp, src/XMLNode.hpp, src/dvisvgm.cpp: - replaced typedefs with 'using' statements - -2017-04-20 Martin Gieseking <martin.gieseking@uos.de> - - * src/Ghostscript.cpp: - simplify code for looking up libgs (closes #66) - -2017-04-14 Martin Gieseking <martin.gieseking@uos.de> - - * 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 parameters of DLLoader() and loadLibrary() with - std::string - -2017-04-13 Toby Fleming <tobywf@users.noreply.github.com> - - * src/Ghostscript.cpp: - Auto-detect ghostscript dynamic library on macOS - -2017-03-22 Martin Gieseking <martin.gieseking@uos.de> - - * m4/ax_code_coverage.m4, m4/ax_cxx_compile_stdcxx.m4: - updated m4 scripts - -2017-03-03 Martin Gieseking <martin.gieseking@uos.de> - - * 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> - - * libs/woff2/src/normalize.cc, libs/woff2/src/woff2_enc.cc: - woff2: removed unused variables - - * src/Makefile.am, src/dvisvgm.cpp: - improved generation of list showing the library versions - - * src/Color.cpp, src/FilePath.cpp, src/FontWriter.cpp, src/PageSize.cpp, - src/dvisvgm.cpp, src/utility.cpp, src/utility.hpp, tests/UtilityTest.cpp: - removed side-effect from util::to_lower(); returns new modified string - instead - -2017-03-01 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - libs/woff2/brotli/common/dictionary.c, - libs/woff2/brotli/common/dictionary.h, - libs/woff2/brotli/common/version.h, - libs/woff2/brotli/enc/backward_references.c, - libs/woff2/brotli/enc/backward_references.cc, - libs/woff2/brotli/enc/backward_references.h, - libs/woff2/brotli/enc/backward_references_inc.h, - libs/woff2/brotli/enc/bit_cost.c, libs/woff2/brotli/enc/bit_cost.h, - libs/woff2/brotli/enc/bit_cost_inc.h, - libs/woff2/brotli/enc/block_encoder_inc.h, - libs/woff2/brotli/enc/block_splitter.c, - libs/woff2/brotli/enc/block_splitter.cc, - libs/woff2/brotli/enc/block_splitter.h, - libs/woff2/brotli/enc/block_splitter_inc.h, - libs/woff2/brotli/enc/brotli_bit_stream.c, - libs/woff2/brotli/enc/brotli_bit_stream.cc, - libs/woff2/brotli/enc/brotli_bit_stream.h, - libs/woff2/brotli/enc/cluster.c, libs/woff2/brotli/enc/cluster.h, - libs/woff2/brotli/enc/cluster_inc.h, libs/woff2/brotli/enc/command.h, - libs/woff2/brotli/enc/compress_fragment.c, - libs/woff2/brotli/enc/compress_fragment.cc, - libs/woff2/brotli/enc/compress_fragment.h, - libs/woff2/brotli/enc/compress_fragment_two_pass.c, - libs/woff2/brotli/enc/compress_fragment_two_pass.cc, - libs/woff2/brotli/enc/compress_fragment_two_pass.h, - libs/woff2/brotli/enc/compressor.h, libs/woff2/brotli/enc/context.h, - libs/woff2/brotli/enc/dictionary.cc, libs/woff2/brotli/enc/dictionary.h, - libs/woff2/brotli/enc/dictionary_hash.h, libs/woff2/brotli/enc/encode.c, - libs/woff2/brotli/enc/encode.cc, libs/woff2/brotli/enc/encode.h, - libs/woff2/brotli/enc/encode_parallel.cc, - libs/woff2/brotli/enc/encode_parallel.h, - libs/woff2/brotli/enc/entropy_encode.c, - libs/woff2/brotli/enc/entropy_encode.cc, - libs/woff2/brotli/enc/entropy_encode.h, - libs/woff2/brotli/enc/entropy_encode_static.h, - libs/woff2/brotli/enc/fast_log.h, - libs/woff2/brotli/enc/find_match_length.h, libs/woff2/brotli/enc/hash.h, - libs/woff2/brotli/enc/hash_forgetful_chain_inc.h, - libs/woff2/brotli/enc/hash_longest_match_inc.h, - libs/woff2/brotli/enc/hash_longest_match_quickly_inc.h, - libs/woff2/brotli/enc/histogram.c, libs/woff2/brotli/enc/histogram.cc, - libs/woff2/brotli/enc/histogram.h, libs/woff2/brotli/enc/histogram_inc.h, - libs/woff2/brotli/enc/literal_cost.c, - libs/woff2/brotli/enc/literal_cost.cc, - libs/woff2/brotli/enc/literal_cost.h, libs/woff2/brotli/enc/memory.c, - libs/woff2/brotli/enc/memory.h, libs/woff2/brotli/enc/metablock.c, - libs/woff2/brotli/enc/metablock.cc, libs/woff2/brotli/enc/metablock.h, - libs/woff2/brotli/enc/metablock_inc.h, libs/woff2/brotli/enc/port.h, - libs/woff2/brotli/enc/prefix.h, libs/woff2/brotli/enc/quality.h, - libs/woff2/brotli/enc/ringbuffer.h, libs/woff2/brotli/enc/static_dict.c, - libs/woff2/brotli/enc/static_dict.cc, - libs/woff2/brotli/enc/static_dict.h, - libs/woff2/brotli/enc/static_dict_lut.h, - libs/woff2/brotli/enc/streams.cc, libs/woff2/brotli/enc/streams.h, - libs/woff2/brotli/enc/transform.h, libs/woff2/brotli/enc/types.h, - libs/woff2/brotli/enc/utf8_util.c, libs/woff2/brotli/enc/utf8_util.cc, - libs/woff2/brotli/enc/utf8_util.h, libs/woff2/brotli/enc/write_bits.h, - libs/woff2/brotli/include/brotli/decode.h, - libs/woff2/brotli/include/brotli/encode.h, - libs/woff2/brotli/include/brotli/port.h, - libs/woff2/brotli/include/brotli/types.h, libs/woff2/src/buffer.h, - libs/woff2/src/font.cc, libs/woff2/src/glyph.cc, - libs/woff2/src/variable_length.cc, libs/woff2/src/woff2_dec.h, - libs/woff2/src/woff2_enc.cc, src/Makefile.am: - updated woff2 to https://github.com/google/woff2/commit/68e9ab5 - -2017-02-23 Martin Gieseking <martin.gieseking@uos.de> - - * tests/BezierTest.cpp, tests/BitmapTest.cpp, tests/BoundingBoxTest.cpp, - tests/CMapManagerTest.cpp, tests/CMapReaderTest.cpp, tests/CMapTest.cpp, - tests/CRC32Test.cpp, tests/ColorTest.cpp, tests/CommandLineTest.cpp, - tests/DirectoryTest.cpp, tests/FileSystemTest.cpp, - tests/GraphicsPathTest.cpp, tests/JFMReaderTest.cpp, - tests/MatrixTest.cpp, tests/PageRagesTest.cpp, tests/RangeMapTest.cpp, - tests/SVGOutputTest.cpp, tests/SplittedCharInputBufferTest.cpp, - tests/StreamInputBufferTest.cpp, tests/StreamReaderTest.cpp, - tests/StreamWriterTest.cpp, tests/SubfontTest.cpp, - tests/TFMReaderTest.cpp, tests/ToUnicodeMapTest.cpp, - tests/UnicodeTest.cpp, tests/VectorIteratorTest.cpp, - tests/XMLNodeTest.cpp: - fixed signed/unsigned warnings in tests - -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 - -2017-02-20 Martin Gieseking <martin.gieseking@uos.de> - - * .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> - - * libs/ff-woff/inc/ffintl.h: - ff-woff: removed redundant defines and prototypes to fix build failure - on Solaris - - * tests/genhashcheck.py: - reformatted genhashcheck - - * 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> - - * configure.ac, libs/ff-woff/Makefile.am, - libs/ff-woff/fontforge/fflocale.c, libs/ff-woff/fontforge/fflocale.h, - libs/ff-woff/fontforge/sfd.c, libs/ff-woff/fontforge/splinefont.h, - libs/ff-woff/fontforge/tottf.c: - ff-woff: only call uselocale() if present, use setlocale() otherwise - -2017-02-14 Martin Gieseking <martin.gieseking@uos.de> - - * 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/MapLine.cpp, src/MapLine.hpp, tests/ColorSpecialTest.cpp, - tests/FontMapTest.cpp, tests/LengthTest.cpp, tests/MapLineTest.cpp: - improved a couple of test cases - - * src/Color.cpp, src/Matrix.cpp, src/TpicSpecialHandler.cpp, - src/utility.hpp: - replaced non-standard constant M_PI with own definition - - * src/Color.cpp, src/Matrix.cpp, src/utility.hpp: - replaced local copies of deg2rad with global function - -2017-02-12 Martin Gieseking <martin.gieseking@uos.de> - - * .appveyor.yml, .travis.yml, appveyor.yml: - exclude branch 'tmp' from CI builds - -2017-02-11 Martin Gieseking <martin.gieseking@uos.de> - - * libs/ff-woff/Makefile.am, libs/ff-woff/fontforge/fontforge.h, - libs/ff-woff/inc/ffintl.h, libs/ff-woff/inc/intl.h: - don't try to #include libintl.h - - * .travis.yml: - Travis: enable clang builds again - - * NEWS: - updated NEWS - -2017-02-10 Martin Gieseking <martin.gieseking@uos.de> - - * src/Calculator.cpp: - fixed number parsing in Calculator class (failed on Mac) - - * tests/StreamReaderTest.cpp: - clear istream flags to prevent failure of StreamReaderTest - - * libs/xxHash/xxhash.c, libs/xxHash/xxhash.h: - removed 'restrict' keyword from xxHash - - * .travis.yml, appveyor.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.1.2 - -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, - tests/gtest/include/gtest/gtest-death-test.h, - tests/gtest/include/gtest/gtest-message.h, - tests/gtest/include/gtest/gtest-param-test.h, - tests/gtest/include/gtest/gtest-printers.h, - tests/gtest/include/gtest/gtest-spi.h, - tests/gtest/include/gtest/gtest-test-part.h, - tests/gtest/include/gtest/gtest-typed-test.h, - tests/gtest/include/gtest/gtest.h, - tests/gtest/include/gtest/gtest_pred_impl.h, - tests/gtest/include/gtest/gtest_prod.h, - tests/gtest/include/gtest/internal/custom/gtest-port.h, - tests/gtest/include/gtest/internal/custom/gtest-printers.h, - tests/gtest/include/gtest/internal/custom/gtest.h, - tests/gtest/include/gtest/internal/gtest-death-test-internal.h, - tests/gtest/include/gtest/internal/gtest-filepath.h, - tests/gtest/include/gtest/internal/gtest-internal.h, - tests/gtest/include/gtest/internal/gtest-linked_ptr.h, - tests/gtest/include/gtest/internal/gtest-param-util-generated.h, - tests/gtest/include/gtest/internal/gtest-param-util.h, - tests/gtest/include/gtest/internal/gtest-port-arch.h, - tests/gtest/include/gtest/internal/gtest-port.h, - tests/gtest/include/gtest/internal/gtest-string.h, - tests/gtest/include/gtest/internal/gtest-tuple.h, - tests/gtest/include/gtest/internal/gtest-type-util.h, - tests/gtest/src/gtest-all.cc, tests/gtest/src/gtest-death-test.cc, - tests/gtest/src/gtest-filepath.cc, tests/gtest/src/gtest-internal-inl.h, - tests/gtest/src/gtest-port.cc, tests/gtest/src/gtest-printers.cc, - tests/gtest/src/gtest-test-part.cc, tests/gtest/src/gtest-typed-test.cc, - 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> - - * tests/CommandLineTest.cpp: - removed redundant function - - * src/XMLString.cpp, tests/EmSpecialTest.cpp, tests/GFGlyphTracerTest.cpp: - avoid negative zeros (-0) in SVG output - - * 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 - - * tests/CMapReaderTest.cpp: - fixed memory leak in CMapReaderTest - - * src/Subfont.cpp: - fixed memory leak in Subfont class - - * src/XMLNode.cpp: - fixed memory leak in class XMLElementNode - -2017-02-07 Martin Gieseking <martin.gieseking@uos.de> - - * configure.ac: - replaced deprecated AC_CONFIG_HEADER - - * NEWS: - updated NEWS - - * libs/clipper/License.txt: - fixed line endings of clipper/License.txt - -2017-02-06 Martin Gieseking <martin.gieseking@uos.de> - - * .travis.yml, appveyor.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.1.1 - -2017-02-04 Martin Gieseking <martin.gieseking@uos.de> - - * tests/FontCacheTest.cpp: - fixed FontCacheTest ('make distcheck' failed) - -2017-02-03 Martin Gieseking <martin.gieseking@uos.de> - - * 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/Makefile.am: - removed spurious colon from src/Makefile.am - - * configure.ac: - allow C++11 language extensions if necessary - - * src/Font.cpp, src/Font.hpp: - report Metafont failures only once for each font - -2017-01-31 Martin Gieseking <martin.gieseking@uos.de> - - * README, README.md: - README: updated links, added release badge - -2017-01-30 Martin Gieseking <martin.gieseking@uos.de> - - * tests/FontManagerTest.cpp, tests/data/cmr10.pfb: - prevent FontManagerTest to fail due to missing font files - -2017-01-26 Martin Gieseking <martin.gieseking@uos.de> - - * src/Matrix.cpp, tests/MatrixTest.cpp: - minor changes of matrix class; improved MatrixTest - -2017-01-25 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - tests/FileFinderTest.cpp, tests/FontManagerTest.cpp, - tests/JFMReaderTest.cpp, tests/MapLineTest.cpp, tests/SubfontTest.cpp, - tests/TFMReaderTest.cpp, tests/TensorProductPatchTest.cpp: - added 'override' specifier to gtest methods - - * 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> - - * README.md, appveyor.yml: - added basic appveyor.yml - -2017-01-20 Martin Gieseking <martin.gieseking@uos.de> - - * libs/ff-woff/Makefile.am, libs/ff-woff/fontforge/fontforge.h, - libs/ff-woff/fontforge/tmpfile2.cpp, libs/ff-woff/fontforge/utils.c, - src/dvisvgm.cpp: - improved error handling of tmpfile2() in ff-woff -The FontForge library - doesn't check the return value of tmpfile() which may lead -to segfaults. - The replacement function tmpfile2() throws an exception or calls -exit() - so that dvisvgm can terminate more cleanly. - -2017-01-18 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - src/utility.hpp, tests/Makefile.am, tests/UtilityTest.cpp: - moved common utility functions to separate compilation unit and - namespace - - * src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, src/EPSToSVG.cpp: - get program name and version from version.hpp, avoid using macros from - config.h - - * .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.1 - - * 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, - src/MetafontWrapper.cpp, src/MetafontWrapper.hpp, src/Process.cpp, - src/Process.hpp, src/SVGOutput.cpp, src/SVGOutput.hpp: - create temp files in the system's temp folder rather than in cwd (closes - #63) - - * doc/dvisvgm.txt.in, src/CommandLine.hpp, src/dvisvgm.cpp, - src/options.xml: - added option --tmpdir to select a different temp folder - - * src/FontWriter.cpp, src/FontWriter.hpp: - print error message if FontWriter can't write temporary files - -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: - added missing newlines in messages; fixed typo - -2017-01-05 Martin Gieseking <martin.gieseking@uos.de> - - * src/AGLTable.hpp: - updated AGL table and removed colliding codepoints (closes #64) - -2017-01-03 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, - doc/dvisvgm.txt.in, doc/tweak-db-article.xsl, doc/tweak-dblatex-pdf.xsl, - libs/Makefile.am, src/AGLTable.hpp, src/BasicDVIReader.cpp, - src/BasicDVIReader.hpp, src/Bezier.cpp, src/Bezier.hpp, - src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.hpp, - src/Bitmap.cpp, src/Bitmap.hpp, src/BoundingBox.cpp, src/BoundingBox.hpp, - src/CLCommandLine.cpp, src/CLCommandLine.hpp, src/CLOption.hpp, - src/CMap.cpp, src/CMap.hpp, src/CMapManager.cpp, src/CMapManager.hpp, - src/CMapReader.cpp, src/CMapReader.hpp, src/CRC32.cpp, src/CRC32.hpp, - src/Calculator.cpp, src/Calculator.hpp, src/CharMapID.cpp, - src/CharMapID.hpp, src/Character.hpp, src/Color.cpp, src/Color.hpp, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.hpp, - src/CommandLine.hpp, src/DLLoader.cpp, src/DLLoader.hpp, - src/DVIActions.hpp, src/DVIReader.cpp, src/DVIReader.hpp, - src/DVIToSVG.cpp, src/DVIToSVG.hpp, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.hpp, src/DependencyGraph.hpp, src/Directory.cpp, - src/Directory.hpp, src/DvisvgmSpecialHandler.cpp, - src/DvisvgmSpecialHandler.hpp, src/EPSFile.cpp, src/EPSFile.hpp, - src/EPSToSVG.cpp, src/EPSToSVG.hpp, src/EmSpecialHandler.cpp, - src/EmSpecialHandler.hpp, src/EncFile.cpp, src/EncFile.hpp, - src/FileFinder.cpp, src/FileFinder.hpp, src/FilePath.cpp, - src/FilePath.hpp, src/FileSystem.cpp, src/FileSystem.hpp, - src/FixWord.hpp, src/Font.cpp, src/Font.hpp, src/FontCache.cpp, - src/FontCache.hpp, src/FontEncoding.cpp, src/FontEncoding.hpp, - src/FontEngine.cpp, src/FontEngine.hpp, src/FontManager.cpp, - src/FontManager.hpp, src/FontMap.cpp, src/FontMap.hpp, - src/FontMetrics.cpp, src/FontMetrics.hpp, src/FontStyle.hpp, - src/FontWriter.cpp, src/FontWriter.hpp, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.hpp, src/GFReader.cpp, src/GFReader.hpp, - src/GFTracer.cpp, src/GFTracer.hpp, src/Ghostscript.cpp, - src/Ghostscript.hpp, src/Glyph.hpp, src/GlyphTracerMessages.hpp, - src/GraphicsPath.hpp, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.hpp, src/InputBuffer.cpp, src/InputBuffer.hpp, - src/InputReader.cpp, src/InputReader.hpp, src/JFM.cpp, src/JFM.hpp, - src/Length.cpp, src/Length.hpp, src/Makefile.am, src/MapLine.cpp, - src/MapLine.hpp, src/Matrix.cpp, src/Matrix.hpp, src/Message.cpp, - src/Message.hpp, src/MessageException.hpp, src/MetafontWrapper.cpp, - src/MetafontWrapper.hpp, src/MiKTeXCom.cpp, src/MiKTeXCom.hpp, - src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.hpp, - src/NumericRanges.hpp, src/PSFilter.hpp, src/PSInterpreter.cpp, - src/PSInterpreter.hpp, src/PSPattern.cpp, src/PSPattern.hpp, - src/PSPreviewFilter.cpp, src/PSPreviewFilter.hpp, src/PageRanges.cpp, - src/PageRanges.hpp, src/PageSize.cpp, src/PageSize.hpp, src/Pair.hpp, - src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.hpp, - src/PathClipper.cpp, src/PathClipper.hpp, src/PdfSpecialHandler.cpp, - src/PdfSpecialHandler.hpp, src/PreScanDVIReader.cpp, - src/PreScanDVIReader.hpp, src/Process.cpp, src/Process.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, src/RangeMap.cpp, - src/RangeMap.hpp, src/SVGCharHandler.cpp, src/SVGCharHandler.hpp, - src/SVGCharHandlerFactory.cpp, src/SVGCharHandlerFactory.hpp, - src/SVGCharPathHandler.cpp, src/SVGCharPathHandler.hpp, - src/SVGCharTspanTextHandler.cpp, src/SVGCharTspanTextHandler.hpp, - src/SVGOutput.cpp, src/SVGOutput.hpp, src/SVGSingleCharTextHandler.cpp, - src/SVGSingleCharTextHandler.hpp, src/SVGTree.cpp, src/SVGTree.hpp, - src/ShadingPatch.cpp, src/ShadingPatch.hpp, src/SignalHandler.cpp, - src/SignalHandler.hpp, src/SpecialActions.hpp, src/SpecialHandler.hpp, - src/SpecialManager.cpp, src/SpecialManager.hpp, src/StreamReader.cpp, - src/StreamReader.hpp, src/StreamWriter.cpp, src/StreamWriter.hpp, - src/Subfont.cpp, src/Subfont.hpp, src/System.cpp, src/System.hpp, - src/TFM.cpp, src/TFM.hpp, src/TensorProductPatch.cpp, - src/TensorProductPatch.hpp, src/Terminal.cpp, src/Terminal.hpp, - src/ToUnicodeMap.cpp, src/ToUnicodeMap.hpp, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.hpp, src/TriangularPatch.cpp, - src/TriangularPatch.hpp, src/Unicode.cpp, src/Unicode.hpp, - src/VFActions.hpp, src/VFReader.cpp, src/VFReader.hpp, - src/VectorIterator.hpp, src/VectorStream.hpp, src/XMLDocument.cpp, - src/XMLDocument.hpp, src/XMLNode.cpp, src/XMLNode.hpp, src/XMLString.cpp, - src/XMLString.hpp, src/ZLibOutputStream.hpp, src/dvisvgm.cpp, - src/ffwrapper.c, src/ffwrapper.h, src/macros.hpp, src/options.dtd, - src/options.xml, src/psdefs.cpp, src/version.hpp, src/version.hpp.in, - tests/BezierTest.cpp, tests/BitmapTest.cpp, tests/BoundingBoxTest.cpp, - tests/CMapManagerTest.cpp, tests/CMapReaderTest.cpp, tests/CMapTest.cpp, - tests/CRC32Test.cpp, tests/CalculatorTest.cpp, - tests/ColorSpecialTest.cpp, tests/ColorTest.cpp, - tests/CommandLineTest.cpp, tests/DependencyGraphTest.cpp, - tests/DirectoryTest.cpp, tests/DvisvgmSpecialTest.cpp, - tests/EmSpecialTest.cpp, tests/FileFinderTest.cpp, - tests/FilePathTest.cpp, tests/FileSystemTest.cpp, - tests/FontManagerTest.cpp, tests/FontMapTest.cpp, - tests/GFGlyphTracerTest.cpp, tests/GFReaderTest.cpp, - tests/GraphicsPathTest.cpp, tests/JFMReaderTest.cpp, - tests/LengthTest.cpp, tests/Makefile.am, tests/MapLineTest.cpp, - tests/MatrixTest.cpp, tests/MessageExceptionTest.cpp, - tests/PSInterpreterTest.cpp, tests/PageRagesTest.cpp, - tests/PageSizeTest.cpp, tests/PairTest.cpp, tests/RangeMapTest.cpp, - tests/SVGOutputTest.cpp, tests/ShadingPatchTest.cpp, - tests/SplittedCharInputBufferTest.cpp, tests/StreamInputBufferTest.cpp, - tests/StreamReaderTest.cpp, tests/StreamWriterTest.cpp, - tests/SubfontTest.cpp, tests/TFMReaderTest.cpp, - tests/TensorProductPatchTest.cpp, tests/ToUnicodeMapTest.cpp, - tests/TriangularPatchTest.cpp, tests/UnicodeTest.cpp, - tests/VectorIteratorTest.cpp, tests/VectorStreamTest.cpp, - tests/XMLNodeTest.cpp, tests/XMLStringTest.cpp, tests/check-conv, - tests/create-makefile, tests/data/Makefile.am, tests/genhashcheck.py, - tests/normalize.xsl: - updated year in copyright statements to 2017 - -2016-12-20 Martin Gieseking <martin.gieseking@uos.de> - - * doc/Makefile.am, doc/conf-dblatex-pdf.xsl, doc/db2html.xsl, - doc/dvisvgm.txt.in, doc/dvisvgm.xpr, doc/tweak-db-article.xsl: - manpage: minor refactorings of the XSLT scripts; added generation of - epub - -2016-12-16 Martin Gieseking <martin.gieseking@uos.de> - - * 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/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> - - * doc/db2html.xsl, doc/dvisvgm.xpr: - manpage: preserve whitespace in list of supported specials - -2016-11-16 Martin Gieseking <martin.gieseking@uos.de> - - * configure.ac: - ensure compiling C files with --std=c99 - -2016-11-14 Martin Gieseking <martin.gieseking@uos.de> - - * NEWS: - updated NEWS - -2016-11-12 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - libs/ff-woff/fontforge/PfEd.h, libs/ff-woff/fontforge/alphabet.c, - libs/ff-woff/fontforge/asmfpst.c, libs/ff-woff/fontforge/autohint.c, - libs/ff-woff/fontforge/char.c, libs/ff-woff/fontforge/cjk.c, - libs/ff-woff/fontforge/configure-fontforge.h, - libs/ff-woff/fontforge/cvundoes.c, libs/ff-woff/fontforge/dumppfa.c, - libs/ff-woff/fontforge/edgelist.h, libs/ff-woff/fontforge/edgelist2.h, - libs/ff-woff/fontforge/encoding.c, libs/ff-woff/fontforge/encoding.h, - libs/ff-woff/fontforge/fontforge-config.h, - libs/ff-woff/fontforge/fontforge.h, libs/ff-woff/fontforge/fontforgevw.h, - libs/ff-woff/fontforge/fvfonts.c, libs/ff-woff/fontforge/gwwiconv.c, - libs/ff-woff/fontforge/libffstamp.h, libs/ff-woff/fontforge/lookups.c, - libs/ff-woff/fontforge/macbinary.c, libs/ff-woff/fontforge/macenc.c, - libs/ff-woff/fontforge/mathconstants.c, libs/ff-woff/fontforge/memory.c, - libs/ff-woff/fontforge/mm.c, libs/ff-woff/fontforge/namehash.h, - libs/ff-woff/fontforge/namelist.c, libs/ff-woff/fontforge/nouiutil.c, - libs/ff-woff/fontforge/nowakowskittfinstr.c, - libs/ff-woff/fontforge/parsepfa.c, libs/ff-woff/fontforge/parsettf.c, - libs/ff-woff/fontforge/parsettfatt.c, libs/ff-woff/fontforge/psfont.h, - libs/ff-woff/fontforge/psread.c, libs/ff-woff/fontforge/pua.c, - libs/ff-woff/fontforge/sd.h, libs/ff-woff/fontforge/sfd.c, - libs/ff-woff/fontforge/sfd1.c, libs/ff-woff/fontforge/sfd1.h, - libs/ff-woff/fontforge/splinechar.c, libs/ff-woff/fontforge/splinefont.c, - libs/ff-woff/fontforge/splinefont.h, - libs/ff-woff/fontforge/splineorder2.c, - libs/ff-woff/fontforge/splineoverlap.c, - libs/ff-woff/fontforge/splinerefigure.c, - libs/ff-woff/fontforge/splinesave.c, - libs/ff-woff/fontforge/splinesaveafm.c, - libs/ff-woff/fontforge/splineutil.c, - libs/ff-woff/fontforge/splineutil2.c, libs/ff-woff/fontforge/start.c, - libs/ff-woff/fontforge/stemdb.c, libs/ff-woff/fontforge/stemdb.h, - libs/ff-woff/fontforge/tables.h, libs/ff-woff/fontforge/tottf.c, - libs/ff-woff/fontforge/tottfaat.c, libs/ff-woff/fontforge/tottfgpos.c, - libs/ff-woff/fontforge/tottfvar.c, libs/ff-woff/fontforge/ttf.h, - libs/ff-woff/fontforge/ttfinstrs.c, libs/ff-woff/fontforge/ttfinstrs.h, - libs/ff-woff/fontforge/ttfspecial.c, - libs/ff-woff/fontforge/uiinterface.h, libs/ff-woff/fontforge/unialt.c, - libs/ff-woff/fontforge/ustring.c, libs/ff-woff/fontforge/utils.c, - libs/ff-woff/fontforge/utype.c, libs/ff-woff/fontforge/woff.c, - libs/ff-woff/inc/basics.h, libs/ff-woff/inc/chardata.h, - libs/ff-woff/inc/charset.h, libs/ff-woff/inc/dlist.h, - libs/ff-woff/inc/gimage.h, libs/ff-woff/inc/gnetwork.h, - libs/ff-woff/inc/gwwiconv.h, libs/ff-woff/inc/intl.h, - libs/ff-woff/inc/ustring.h, libs/ff-woff/inc/utype.h, src/Makefile.am: - bundle reduced fontforge library (ff-woff) - - * 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 - -2016-11-01 Martin Gieseking <martin.gieseking@uos.de> - - * src/FontWriter.cpp: - few cosmetic changes; added comments - -2016-09-27 Martin Gieseking <martin.gieseking@uos.de> - - * .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.0.3 - - * NEWS, README, README.md: - updated NEWS and README - -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: - fixed regression in character positioning of of virtual fonts - -2016-09-18 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIReader.cpp: - fixed type regression in computation of DVI positions (closes #61) - - * .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.0.2 - - * NEWS, README.md: - updated NEWS and README - -2016-09-16 Martin Gieseking <martin.gieseking@uos.de> - - * src/Font.cpp: - fixed sign of character depth computed for native fonts - -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 - -2016-08-30 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIToSVGActions.hpp, src/FontManager.hpp, src/MetafontWrapper.hpp: - adapted struct/class forward declarations - -2016-08-28 Martin Gieseking <martin.gieseking@uos.de> - - * src/FileFinder.cpp, src/FileFinder.hpp: - removed unused variable - - * src/CLCommandLine.cpp: - added missing cast to avoid compiler warning - - * .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.0 - - * README, README.md: - updated README files - - * NEWS: - updated NEWS - -2016-08-27 Martin Gieseking <martin.gieseking@uos.de> - - * .travis.yml: - use Ubuntu Trusty for Travis builds - - * .travis.yml: - Travis: prevent rebuilding files in folder 'src' when calling 'make - check' - - * src/FontWriter.cpp, src/FontWriter.hpp, src/ffwrapper.c, - src/ffwrapper.h: - added missing copyright headers - -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.c, libs/xxHash/xxhash.h, - src/Makefile.am, tests/Makefile.am, tests/create-makefile, - xxHash/LICENSE, xxHash/Makefile.am, xxHash/xxhash.c, xxHash/xxhash.h: - 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, - libs/woff2/brotli/enc/backward_references.h, - libs/woff2/brotli/enc/bit_cost.h, - libs/woff2/brotli/enc/block_splitter.cc, - libs/woff2/brotli/enc/block_splitter.h, - libs/woff2/brotli/enc/brotli_bit_stream.cc, - libs/woff2/brotli/enc/brotli_bit_stream.h, - libs/woff2/brotli/enc/cluster.h, libs/woff2/brotli/enc/command.h, - libs/woff2/brotli/enc/compress_fragment.cc, - libs/woff2/brotli/enc/compress_fragment.h, - libs/woff2/brotli/enc/compress_fragment_two_pass.cc, - libs/woff2/brotli/enc/compress_fragment_two_pass.h, - libs/woff2/brotli/enc/compressor.h, libs/woff2/brotli/enc/context.h, - libs/woff2/brotli/enc/dictionary.cc, libs/woff2/brotli/enc/dictionary.h, - libs/woff2/brotli/enc/dictionary_hash.h, libs/woff2/brotli/enc/encode.cc, - libs/woff2/brotli/enc/encode.h, libs/woff2/brotli/enc/encode_parallel.cc, - libs/woff2/brotli/enc/encode_parallel.h, - libs/woff2/brotli/enc/entropy_encode.cc, - libs/woff2/brotli/enc/entropy_encode.h, - libs/woff2/brotli/enc/entropy_encode_static.h, - libs/woff2/brotli/enc/fast_log.h, - libs/woff2/brotli/enc/find_match_length.h, libs/woff2/brotli/enc/hash.h, - libs/woff2/brotli/enc/histogram.cc, libs/woff2/brotli/enc/histogram.h, - libs/woff2/brotli/enc/literal_cost.cc, - libs/woff2/brotli/enc/literal_cost.h, libs/woff2/brotli/enc/metablock.cc, - libs/woff2/brotli/enc/metablock.h, libs/woff2/brotli/enc/port.h, - libs/woff2/brotli/enc/prefix.h, libs/woff2/brotli/enc/ringbuffer.h, - libs/woff2/brotli/enc/static_dict.cc, - libs/woff2/brotli/enc/static_dict.h, - libs/woff2/brotli/enc/static_dict_lut.h, - libs/woff2/brotli/enc/streams.cc, libs/woff2/brotli/enc/streams.h, - libs/woff2/brotli/enc/transform.h, libs/woff2/brotli/enc/types.h, - libs/woff2/brotli/enc/utf8_util.cc, libs/woff2/brotli/enc/utf8_util.h, - libs/woff2/brotli/enc/write_bits.h, libs/woff2/brotli/tools/bro.cc, - libs/woff2/brotli/tools/rfc-format.py, libs/woff2/brotli/tools/version.h, - libs/woff2/src/Makefile.am, libs/woff2/src/buffer.h, - libs/woff2/src/file.h, libs/woff2/src/font.cc, libs/woff2/src/font.h, - libs/woff2/src/glyph.cc, libs/woff2/src/glyph.h, - libs/woff2/src/normalize.cc, libs/woff2/src/normalize.h, - libs/woff2/src/port.h, libs/woff2/src/round.h, - libs/woff2/src/store_bytes.h, libs/woff2/src/table_tags.cc, - libs/woff2/src/table_tags.h, libs/woff2/src/transform.cc, - libs/woff2/src/transform.h, libs/woff2/src/variable_length.cc, - libs/woff2/src/variable_length.h, libs/woff2/src/woff2_common.cc, - libs/woff2/src/woff2_common.h, libs/woff2/src/woff2_dec.h, - libs/woff2/src/woff2_enc.cc, libs/woff2/src/woff2_enc.h, - libs/woff2/src/woff2_out.cc, libs/woff2/src/woff2_out.h, - src/FontWriter.cpp, src/FontWriter.hpp, src/Makefile.am: - added support for embedding WOFF2 fonts - -2016-08-24 Martin Gieseking <martin.gieseking@uos.de> - - * src/XMLNode.hpp: - added move constructors to XMLNode classes - -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, - src/XMLNode.hpp, src/dvisvgm.cpp, src/ffwrapper.c, src/ffwrapper.h, - src/options.xml: - added option --font-format to select the file format used to embed fonts - -2016-08-22 Martin Gieseking <martin.gieseking@uos.de> - - * xxHash/xxhash.c, xxHash/xxhash.h: - updated xxHash to version 0.6.2 - -2016-08-17 Martin Gieseking <martin.gieseking@uos.de> - - * src/FixWord.hpp, src/Font.cpp, src/FontMetrics.hpp, src/SVGTree.cpp, - src/TFM.cpp, src/TFM.hpp: - added getters for ascent and descent to TFM-based fonts - -2016-08-14 Martin Gieseking <martin.gieseking@uos.de> - - * src/Ghostscript.hpp: - removed copy constructor of class Ghostscript - - * src/PathClipper.cpp: - added missing initializers - -2016-08-13 Martin Gieseking <martin.gieseking@uos.de> - - * configure.ac, src/CLCommandLine.cpp, src/CLCommandLine.hpp, - src/CommandLine.hpp, src/Makefile.am, src/dvisvgm.cpp, src/options.dtd, - src/options.xml, src/version.hpp, src/version.hpp.in: - added version.hpp to provide the current version number - -2016-08-08 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - src/PageRanges.cpp, src/PageRanges.hpp, src/PageSize.cpp, - src/PageSize.hpp, src/SVGOutput.cpp, src/SVGOutput.hpp, - 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> - - * 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, - src/FontMetrics.cpp, src/Ghostscript.cpp, src/MetafontWrapper.cpp, - src/PsSpecialHandler.cpp, src/Subfont.cpp, src/dvisvgm.cpp, - tests/CMapManagerTest.cpp, tests/FileFinderTest.cpp, - tests/MapLineTest.cpp, tests/SubfontTest.cpp: - made FileFinder a singleton again - -2016-07-27 Martin Gieseking <martin.gieseking@uos.de> - - * src/BgColorSpecialHandler.cpp, src/BoundingBox.cpp, - src/DvisvgmSpecialHandler.cpp, src/EmSpecialHandler.cpp, - src/FileSystem.cpp, src/FontCache.cpp, src/FontEngine.cpp, - src/FontManager.cpp, src/GraphicsPath.hpp, src/PSInterpreter.cpp, - src/PapersizeSpecialHandler.cpp, src/PathClipper.cpp, src/RangeMap.cpp, - src/Subfont.cpp, src/TpicSpecialHandler.cpp, src/XMLDocument.cpp, - src/XMLNode.cpp: - replaced insert/push_back with emplace/emplace_back where useful - -2016-07-23 Martin Gieseking <martin.gieseking@uos.de> - - * 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 - -2016-07-21 Martin Gieseking <martin.gieseking@uos.de> - - * src/AGLTable.h, src/AGLTable.hpp, src/BasicDVIReader.cpp, - src/BasicDVIReader.h, src/BasicDVIReader.hpp, src/Bezier.cpp, - src/Bezier.h, src/Bezier.hpp, src/BgColorSpecialHandler.cpp, - src/BgColorSpecialHandler.h, src/BgColorSpecialHandler.hpp, - src/Bitmap.cpp, src/Bitmap.h, src/Bitmap.hpp, src/BoundingBox.cpp, - src/BoundingBox.h, src/BoundingBox.hpp, src/CMap.cpp, src/CMap.h, - src/CMap.hpp, src/CMapManager.cpp, src/CMapManager.h, - src/CMapManager.hpp, src/CMapReader.cpp, src/CMapReader.h, - src/CMapReader.hpp, src/CRC32.cpp, src/CRC32.h, src/CRC32.hpp, - src/Calculator.cpp, src/Calculator.h, src/Calculator.hpp, - src/CharMapID.cpp, src/CharMapID.h, src/CharMapID.hpp, src/Character.h, - src/Character.hpp, src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, - src/CmdLineParserBase.hpp, src/Color.cpp, src/Color.h, src/Color.hpp, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/ColorSpecialHandler.hpp, src/CommandLine.cpp, src/CommandLine.h, - src/CommandLine.hpp, src/DLLoader.cpp, src/DLLoader.h, src/DLLoader.hpp, - src/DVIActions.h, src/DVIActions.hpp, src/DVIReader.cpp, src/DVIReader.h, - src/DVIReader.hpp, src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVG.hpp, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/DVIToSVGActions.hpp, - src/DependencyGraph.h, src/DependencyGraph.hpp, src/Directory.cpp, - src/Directory.h, src/Directory.hpp, src/DvisvgmSpecialHandler.cpp, - src/DvisvgmSpecialHandler.h, src/DvisvgmSpecialHandler.hpp, - src/EPSFile.cpp, src/EPSFile.h, src/EPSFile.hpp, src/EPSToSVG.cpp, - src/EPSToSVG.h, src/EPSToSVG.hpp, src/EmSpecialHandler.cpp, - src/EmSpecialHandler.h, src/EmSpecialHandler.hpp, src/EncFile.cpp, - src/EncFile.h, src/EncFile.hpp, src/FileFinder.cpp, src/FileFinder.h, - src/FileFinder.hpp, src/FilePath.cpp, src/FilePath.h, src/FilePath.hpp, - src/FileSystem.cpp, src/FileSystem.h, src/FileSystem.hpp, src/FixWord.h, - src/FixWord.hpp, src/Font.cpp, src/Font.h, src/Font.hpp, - src/FontCache.cpp, src/FontCache.h, src/FontCache.hpp, - src/FontEncoding.cpp, src/FontEncoding.h, src/FontEncoding.hpp, - src/FontEngine.cpp, src/FontEngine.h, src/FontEngine.hpp, - src/FontManager.cpp, src/FontManager.h, src/FontManager.hpp, - src/FontMap.cpp, src/FontMap.h, src/FontMap.hpp, src/FontMetrics.cpp, - src/FontMetrics.h, src/FontMetrics.hpp, src/FontStyle.h, - src/FontStyle.hpp, src/GFGlyphTracer.cpp, src/GFGlyphTracer.h, - src/GFGlyphTracer.hpp, src/GFReader.cpp, src/GFReader.h, - src/GFReader.hpp, src/GFTracer.cpp, src/GFTracer.h, src/GFTracer.hpp, - src/Ghostscript.cpp, src/Ghostscript.h, src/Ghostscript.hpp, src/Glyph.h, - src/Glyph.hpp, src/GlyphTracerMessages.h, src/GlyphTracerMessages.hpp, - src/GraphicsPath.h, src/GraphicsPath.hpp, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.h, src/HtmlSpecialHandler.hpp, - src/InputBuffer.cpp, src/InputBuffer.h, src/InputBuffer.hpp, - src/InputReader.cpp, src/InputReader.h, src/InputReader.hpp, src/JFM.cpp, - src/JFM.h, src/JFM.hpp, src/Length.cpp, src/Length.h, src/Length.hpp, - src/Makefile.am, src/MapLine.cpp, src/MapLine.h, src/MapLine.hpp, - src/Matrix.cpp, src/Matrix.h, src/Matrix.hpp, src/Message.cpp, - src/Message.h, src/Message.hpp, src/MessageException.h, - src/MessageException.hpp, src/MetafontWrapper.cpp, src/MetafontWrapper.h, - src/MetafontWrapper.hpp, src/MiKTeXCom.cpp, src/MiKTeXCom.h, - src/MiKTeXCom.hpp, src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.h, - src/NoPsSpecialHandler.hpp, src/NumericRanges.h, src/NumericRanges.hpp, - src/PSFilter.h, src/PSFilter.hpp, src/PSInterpreter.cpp, - src/PSInterpreter.h, src/PSInterpreter.hpp, src/PSPattern.cpp, - src/PSPattern.h, src/PSPattern.hpp, src/PSPreviewFilter.cpp, - src/PSPreviewFilter.h, src/PSPreviewFilter.hpp, src/PageRanges.cpp, - src/PageRanges.h, src/PageRanges.hpp, src/PageSize.cpp, src/PageSize.h, - src/PageSize.hpp, src/Pair.h, src/Pair.hpp, - src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.h, - src/PapersizeSpecialHandler.hpp, src/PathClipper.cpp, src/PathClipper.h, - src/PathClipper.hpp, src/PdfSpecialHandler.cpp, src/PdfSpecialHandler.h, - src/PdfSpecialHandler.hpp, src/PreScanDVIReader.cpp, - src/PreScanDVIReader.h, src/PreScanDVIReader.hpp, src/Process.cpp, - src/Process.h, src/Process.hpp, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/PsSpecialHandler.hpp, src/RangeMap.cpp, - src/RangeMap.h, src/RangeMap.hpp, src/SVGCharHandler.cpp, - src/SVGCharHandler.h, src/SVGCharHandler.hpp, - src/SVGCharHandlerFactory.cpp, src/SVGCharHandlerFactory.h, - src/SVGCharHandlerFactory.hpp, src/SVGCharPathHandler.cpp, - src/SVGCharPathHandler.h, src/SVGCharPathHandler.hpp, - src/SVGCharTspanTextHandler.cpp, src/SVGCharTspanTextHandler.h, - src/SVGCharTspanTextHandler.hpp, src/SVGOutput.cpp, src/SVGOutput.h, - src/SVGOutput.hpp, src/SVGSingleCharTextHandler.cpp, - src/SVGSingleCharTextHandler.h, src/SVGSingleCharTextHandler.hpp, - src/SVGTree.cpp, src/SVGTree.h, src/SVGTree.hpp, src/ShadingPatch.cpp, - src/ShadingPatch.h, src/ShadingPatch.hpp, src/SignalHandler.cpp, - src/SignalHandler.h, src/SignalHandler.hpp, src/SpecialActions.h, - src/SpecialActions.hpp, src/SpecialHandler.h, src/SpecialHandler.hpp, - src/SpecialManager.cpp, src/SpecialManager.h, src/SpecialManager.hpp, - src/StreamReader.cpp, src/StreamReader.h, src/StreamReader.hpp, - src/StreamWriter.cpp, src/StreamWriter.h, src/StreamWriter.hpp, - src/Subfont.cpp, src/Subfont.h, src/Subfont.hpp, src/System.cpp, - src/System.h, src/System.hpp, src/TFM.cpp, src/TFM.h, src/TFM.hpp, - src/TensorProductPatch.cpp, src/TensorProductPatch.h, - src/TensorProductPatch.hpp, src/Terminal.cpp, src/Terminal.h, - src/Terminal.hpp, src/ToUnicodeMap.cpp, src/ToUnicodeMap.h, - src/ToUnicodeMap.hpp, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.h, src/TpicSpecialHandler.hpp, - src/TriangularPatch.cpp, src/TriangularPatch.h, src/TriangularPatch.hpp, - src/Unicode.cpp, src/Unicode.h, src/Unicode.hpp, src/VFActions.h, - src/VFActions.hpp, src/VFReader.cpp, src/VFReader.h, src/VFReader.hpp, - src/VectorIterator.h, src/VectorIterator.hpp, src/VectorStream.h, - src/VectorStream.hpp, src/XMLDocument.cpp, src/XMLDocument.h, - src/XMLDocument.hpp, src/XMLNode.cpp, src/XMLNode.h, src/XMLNode.hpp, - src/XMLString.cpp, src/XMLString.h, src/XMLString.hpp, - src/ZLibOutputStream.h, src/ZLibOutputStream.hpp, src/dvisvgm.cpp, - src/macros.h, src/macros.hpp, src/psdefs.cpp, tests/BezierTest.cpp, - tests/BitmapTest.cpp, tests/BoundingBoxTest.cpp, - tests/CMapManagerTest.cpp, tests/CMapReaderTest.cpp, tests/CMapTest.cpp, - tests/CRC32Test.cpp, tests/CalculatorTest.cpp, - tests/ColorSpecialTest.cpp, tests/ColorTest.cpp, - tests/CommandLineTest.cpp, tests/DependencyGraphTest.cpp, - tests/DirectoryTest.cpp, tests/DvisvgmSpecialTest.cpp, - tests/EmSpecialTest.cpp, tests/FileFinderTest.cpp, - tests/FilePathTest.cpp, tests/FileSystemTest.cpp, - tests/FontManagerTest.cpp, tests/FontMapTest.cpp, - tests/GFGlyphTracerTest.cpp, tests/GFReaderTest.cpp, - tests/GhostscriptTest.cpp, tests/GraphicsPathTest.cpp, - tests/JFMReaderTest.cpp, tests/LengthTest.cpp, tests/Makefile.am, - tests/MapLineTest.cpp, tests/MatrixTest.cpp, - tests/MessageExceptionTest.cpp, tests/PSInterpreterTest.cpp, - tests/PageRagesTest.cpp, tests/PageSizeTest.cpp, tests/PairTest.cpp, - tests/RangeMapTest.cpp, tests/SVGOutputTest.cpp, - tests/ShadingPatchTest.cpp, tests/SplittedCharInputBufferTest.cpp, - tests/StreamInputBufferTest.cpp, tests/StreamReaderTest.cpp, - tests/StreamWriterTest.cpp, tests/SubfontTest.cpp, - tests/TFMReaderTest.cpp, tests/TensorProductPatchTest.cpp, - tests/ToUnicodeMapTest.cpp, tests/TriangularPatchTest.cpp, - tests/UnicodeTest.cpp, tests/VectorIteratorTest.cpp, - tests/VectorStreamTest.cpp, tests/XMLNodeTest.cpp, - tests/XMLStringTest.cpp, tests/create-makefile: - renamed filename extension of C++ headers to .hpp - -2016-07-20 Martin Gieseking <martin.gieseking@uos.de> - - * 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/DVIToSVGActions.cpp, src/DVIToSVGActions.h: - create BoxMap object directly, avoid new/delete - -2016-07-19 Martin Gieseking <martin.gieseking@uos.de> - - * src/AGLTable.h, src/Color.cpp, src/Unicode.cpp, tests/genhashcheck.py: - replaced repeated binary search implementations with calls of - lower_bound() - -2016-07-13 Martin Gieseking <martin.gieseking@uos.de> - - * src/FileFinder.cpp, src/Message.cpp: - initialize maps with initializer-lists - -2016-07-05 Martin Gieseking <martin.gieseking@uos.de> - - * src/Length.cpp, src/TpicSpecialHandler.cpp: - replaced 'id macros' with constexpr functions - -2016-07-04 Martin Gieseking <martin.gieseking@uos.de> - - * src/TFM.cpp: - added missing initializers - - * src/dvisvgm.cpp: - catch exception in set_cache_dir() - - * .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> - - * 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: - replaced static callback functions with lambdas - - * 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, - src/CMap.h, src/CMapReader.cpp, src/CRC32.cpp, src/CRC32.h, - src/CharMapID.h, src/Character.h, src/Color.cpp, src/Color.h, - src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, - src/DVIToSVG.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, - src/EPSFile.cpp, src/EPSFile.h, src/EncFile.cpp, src/EncFile.h, - src/FileSystem.cpp, src/FileSystem.h, src/FixWord.h, src/Font.cpp, - src/Font.h, src/FontCache.cpp, src/FontCache.h, src/FontEncoding.cpp, - src/FontEncoding.h, src/FontEngine.cpp, src/FontEngine.h, - src/FontManager.cpp, src/FontManager.h, src/FontMetrics.cpp, - src/FontMetrics.h, src/GFGlyphTracer.cpp, src/GFGlyphTracer.h, - src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, src/GFTracer.h, - src/Glyph.h, src/GlyphTracerMessages.h, src/InputBuffer.cpp, - src/InputBuffer.h, src/JFM.cpp, src/JFM.h, src/Makefile.am, - src/Message.h, src/Pair.h, src/PathClipper.cpp, src/PreScanDVIReader.cpp, - src/PsSpecialHandler.h, src/RangeMap.cpp, src/RangeMap.h, - src/SVGCharHandler.h, src/SVGCharPathHandler.cpp, - src/SVGCharPathHandler.h, src/SVGCharTspanTextHandler.cpp, - src/SVGCharTspanTextHandler.h, src/SVGSingleCharTextHandler.cpp, - src/SVGSingleCharTextHandler.h, src/StreamReader.cpp, src/StreamReader.h, - src/StreamWriter.cpp, src/StreamWriter.h, src/Subfont.cpp, src/Subfont.h, - src/TFM.cpp, src/TFM.h, src/ToUnicodeMap.cpp, src/ToUnicodeMap.h, - src/Unicode.cpp, src/Unicode.h, src/VFActions.h, src/VFReader.cpp, - src/VFReader.h, src/XMLString.cpp, src/types.h, tests/BitmapTest.cpp, - tests/CRC32Test.cpp, tests/ColorSpecialTest.cpp, tests/ColorTest.cpp, - tests/GFGlyphTracerTest.cpp, tests/GFReaderTest.cpp, - tests/JFMReaderTest.cpp, tests/Makefile.am, tests/StreamReaderTest.cpp, - tests/TriangularPatchTest.cpp, tests/TypesTest.cpp, - tests/UnicodeTest.cpp: - replaced own fixed-sized integer types with types from cstdint - - * 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/DVIReader.cpp, src/DVIReader.h, src/Font.cpp, src/Font.h, - src/FontManager.cpp, src/FontManager.h, src/VFActions.h, - src/VFReader.cpp: - 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/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, - src/CommandLine.h, src/DVIReader.h, src/DVIToSVG.h, - src/DVIToSVGActions.h, src/DvisvgmSpecialHandler.h, src/EPSToSVG.h, - src/EmSpecialHandler.h, src/EncFile.h, src/Font.h, src/FontCache.cpp, - src/FontEncoding.h, src/FontMetrics.h, src/GFGlyphTracer.h, - src/GFReader.h, src/GFTracer.h, src/GlyphTracerMessages.h, - src/GraphicsPath.h, src/HtmlSpecialHandler.h, src/InputBuffer.h, - src/InputReader.h, src/JFM.h, src/MessageException.h, - src/NoPsSpecialHandler.h, src/PSPattern.h, src/PSPreviewFilter.h, - src/PapersizeSpecialHandler.h, src/PathClipper.cpp, - src/PdfSpecialHandler.h, src/PreScanDVIReader.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, - src/SVGCharPathHandler.h, src/SVGCharTspanTextHandler.h, src/SVGOutput.h, - src/SVGSingleCharTextHandler.h, src/SpecialActions.h, src/TFM.h, - src/TensorProductPatch.h, src/TpicSpecialHandler.h, - src/TriangularPatch.h, src/VectorStream.h, src/XMLNode.h: - mark overridden methods with 'override' keyword - - * 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> - - * src/BasicDVIReader.h, src/DVIActions.h, src/DVIReader.cpp, - src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/FontManager.cpp, - src/FontManager.h, src/PreScanDVIReader.h, src/dvisvgm.cpp: - refactored the DVI reader classes -- added higher-level template methods - to process the DVI commands more safely -- moved triggering of DVIActions - from DVIReader to DVIToSVG - -2016-06-29 Martin Gieseking <martin.gieseking@uos.de> - - * 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: - 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: - minor improvements to TFM/JFM tests - -2016-06-16 Martin Gieseking <martin.gieseking@uos.de> - - * 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/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/BoundingBox.cpp, src/BoundingBox.h, tests/BoundingBoxTest.cpp: - fixed unit conversion in BoundingBox class - -2016-06-13 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in, src/Length.cpp, src/Length.h, tests/LengthTest.cpp: - added dd, cc, and sp units to class Length; fixed factor pt2pc - -2016-06-12 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - src/Ghostscript.cpp, src/Ghostscript.h, src/Message.cpp, - src/MetafontWrapper.cpp, src/Process.cpp, src/Terminal.cpp, - src/Terminal.h, src/dvisvgm.cpp: - cleaned up Windows-related #defines - -2016-06-10 Martin Gieseking <martin.gieseking@uos.de> - - * src/CommandLine.cpp: - removed redundant #includes - - * src/Length.cpp, src/Length.h, tests/LengthTest.cpp: - added functions to convert between Length::Unit and std::string - -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, - src/FontEngine.h, src/FontManager.h, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.h, src/PSPattern.h, src/PSPreviewFilter.h, - src/SVGCharHandler.cpp, src/SVGCharHandler.h, src/SVGCharPathHandler.cpp, - src/SVGCharTspanTextHandler.cpp, src/SVGSingleCharTextHandler.cpp, - src/SVGTree.h, src/SpecialActions.h, src/SpecialHandler.h, - src/SpecialManager.h, src/XMLDocument.cpp, src/XMLNode.h, - tests/XMLNodeTest.cpp: - changed some structs to classes and replaced #includes with forward - declarations - - * src/SVGCharHandler.h: - added missing initializer to class SVGCharHandler - -2016-06-03 Martin Gieseking <martin.gieseking@uos.de> - - * src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, src/DVIToSVG.cpp, - src/DVIToSVGActions.cpp, src/DvisvgmSpecialHandler.cpp, - src/DvisvgmSpecialHandler.h, src/EPSToSVG.cpp, src/EmSpecialHandler.cpp, - src/EmSpecialHandler.h, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.h, src/NoPsSpecialHandler.cpp, - src/NoPsSpecialHandler.h, src/PSPattern.cpp, src/PSPattern.h, - src/PdfSpecialHandler.cpp, src/PdfSpecialHandler.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/SpecialHandler.h, - src/SpecialManager.cpp, src/SpecialManager.h, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.h, tests/ColorSpecialTest.cpp, - 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=' - -2016-06-02 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIToSVG.cpp: - fixed transformation of background color rectange - -2016-05-31 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIToSVG.cpp, src/EPSToSVG.cpp: - reworded messages printed after finishing a conversion - -2016-05-30 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIToSVGActions.cpp, src/Font.cpp, src/Makefile.am, - src/SVGCharHandler.cpp, src/SVGCharHandler.h, - src/SVGCharHandlerFactory.cpp, src/SVGCharHandlerFactory.h, - src/SVGCharPathHandler.cpp, src/SVGCharPathHandler.h, - src/SVGCharTspanTextHandler.cpp, src/SVGCharTspanTextHandler.h, - src/SVGSingleCharTextHandler.cpp, src/SVGSingleCharTextHandler.h, - 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: - fixed handling of subfont index in native font definition of XDV 7 - -2016-05-27 Martin Gieseking <martin.gieseking@uos.de> - - * src/XMLDocument.cpp, src/XMLNode.cpp, src/XMLNode.h, - tests/DvisvgmSpecialTest.cpp: - prevent line wrapping inside text nodes - -2016-05-26 Martin Gieseking <martin.gieseking@uos.de> - - * README.md, doc/dvisvgm.txt.in, src/BasicDVIReader.cpp, - src/BasicDVIReader.h, src/DVIReader.cpp, src/DVIToSVG.cpp: - reworded 'DVI format' to 'DVI (format) version' - - * README.md, doc/dvisvgm.txt.in, src/BasicDVIReader.cpp, - src/BasicDVIReader.h, src/DVIReader.cpp: - added support for XDV version 7 introduced by XeTeX 0.99995 - -2016-05-25 Martin Gieseking <martin.gieseking@uos.de> - - * src/TFM.cpp: - prevent reading more than 7 TFM param values (fixes #58) - - * .travis.yml: - temporarily drop clang from Travis builds - -2016-05-24 Martin Gieseking <martin.gieseking@uos.de> - - * 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/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> - - * src/Process.cpp: - fixed collecting stdout/stderr output when executing a process - -2016-04-20 Martin Gieseking <martin.gieseking@uos.de> - - * src/CMap.h, src/CMapReader.cpp, tests/CMapManagerTest.cpp, - tests/Makefile.am, tests/data/Makefile.am, tests/data/ot1.cmap: - added CMapManagerTest - -2016-04-19 Martin Gieseking <martin.gieseking@uos.de> - - * .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> - - * 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 - - * tests/CMapReaderTest.cpp: - improved CMapReaderTest - -2016-04-11 Martin Gieseking <martin.gieseking@uos.de> - - * src/AGLTable.h, src/Makefile.am, src/Unicode.cpp, tests/Makefile.am, - tests/create-makefile, tests/genhashcheck.py: - moved AGL hash table from Unicode.cpp to a separate file - -2016-04-07 Martin Gieseking <martin.gieseking@uos.de> - - * 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: - renamed GraphicsPath::sconito/scubicto - -2016-03-14 Martin Gieseking <martin.gieseking@uos.de> - - * 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 - - * 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> - - * NEWS: - updated NEWS - -2016-02-26 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - tests/TFMReaderTest.cpp, tests/cidjmgr0-h.tfm, tests/cmr10.600gf, - tests/cmr10.tfm, tests/create-makefile, tests/data/Makefile.am, - tests/data/cidjmgr0-h.tfm, tests/data/cmr10.600gf, tests/data/cmr10.tfm, - tests/data/dvipdfm_test.map, tests/data/dvips_test.map, - tests/data/frktest-nf-cmp.svg, tests/data/frktest-wf-cmp.svg, - tests/data/frktest.dvi, tests/data/sample-nf-cmp.svg, - tests/data/sample-wf-cmp.svg, tests/data/sample.dvi, - tests/data/sample.sfd, tests/dvipdfm_test.map, tests/dvips_test.map, - tests/frktest-nf-cmp.svg, tests/frktest-wf-cmp.svg, tests/frktest.dvi, - tests/sample-nf-cmp.svg, tests/sample-wf-cmp.svg, tests/sample.dvi, - tests/sample.sfd: - moved test data files to subfolder - -2016-02-22 Martin Gieseking <martin.gieseking@uos.de> - - * tests/FileFinderTest.cpp, tests/GFReaderTest.cpp, - tests/SVGOutputTest.cpp: - avoid implicit casts of ifstream/ozstream objects in tests - - * src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, - tests/CommandLineTest.cpp: - minor improvements of class CommandLineTest - - * src/XMLNode.cpp, tests/DvisvgmSpecialTest.cpp: - improved DvisvgmSpecialTest - - * src/FontEngine.cpp, src/FontEngine.h: - removed redundant code from class FontEngine - -2016-02-05 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp: - don't remove clipping paths that consist of single moveto commands only - -2016-02-01 Martin Gieseking <martin.gieseking@uos.de> - - * src/Bitmap.cpp, src/BoundingBox.cpp, src/CMap.cpp, src/CMapManager.cpp, - src/Calculator.cpp, src/CommandLine.cpp, src/DVIReader.cpp, - src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp, - src/Directory.cpp, src/Directory.h, src/EPSToSVG.cpp, src/EncFile.cpp, - src/FileFinder.cpp, src/Font.cpp, src/FontCache.h, src/FontEngine.cpp, - src/FontManager.cpp, src/FontMap.cpp, src/FontMetrics.cpp, - src/GFGlyphTracer.cpp, src/GFReader.cpp, src/GFTracer.cpp, - src/HtmlSpecialHandler.cpp, src/InputReader.cpp, src/MapLine.cpp, - src/MetafontWrapper.cpp, src/PSInterpreter.cpp, - src/PdfSpecialHandler.cpp, src/Process.cpp, src/PsSpecialHandler.cpp, - src/SVGTree.cpp, src/SpecialManager.cpp, src/StreamReader.cpp, - src/StreamWriter.cpp, src/Subfont.cpp, src/TFM.cpp, - src/TensorProductPatch.cpp, src/TpicSpecialHandler.cpp, src/VFReader.cpp, - src/XMLDocument.cpp, src/dvisvgm.cpp, tests/XMLStringTest.cpp: - minor code cleanup (removed redundant includes, added casts) - -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 - -2016-01-19 Martin Gieseking <martin.gieseking@uos.de> - - * src/GraphicsPath.h, tests/GraphicsPathTest.cpp: - fixed access of invalid iterator - - * .travis.yml, configure.ac, src/Doxyfile: - set version to 1.14.2 - - * NEWS, README.md: - updated NEWS - -2016-01-18 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in: - added generic info about the command-line interface to the manpage - - * 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 - - * 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> - - * src/BgColorSpecialHandler.cpp, src/ColorSpecialHandler.cpp, - src/ColorSpecialHandler.h, tests/ColorSpecialTest.cpp: - removed check for 'background' special from ColorSpecialHandler - -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 - -2016-01-05 Martin Gieseking <martin.gieseking@uos.de> - - * src/GFReader.cpp, src/GFReader.h: - added checks for misplaced GF commands - - * NEWS: - updated NEWS - -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 - - * 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, src/BasicDVIReader.cpp, src/BasicDVIReader.h, - src/Bezier.cpp, src/Bezier.h, src/BgColorSpecialHandler.cpp, - src/BgColorSpecialHandler.h, src/Bitmap.cpp, src/Bitmap.h, - src/BoundingBox.cpp, src/BoundingBox.h, src/CMap.cpp, src/CMap.h, - src/CMapManager.cpp, src/CMapManager.h, src/CMapReader.cpp, - src/CMapReader.h, src/CRC32.cpp, src/CRC32.h, src/Calculator.cpp, - src/Calculator.h, src/CharMapID.cpp, src/CharMapID.h, src/Character.h, - src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/Color.cpp, - src/Color.h, src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/CommandLine.cpp, src/CommandLine.h, src/DLLoader.cpp, src/DLLoader.h, - src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, - src/DVIToSVG.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, - src/DependencyGraph.h, src/Directory.cpp, src/Directory.h, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h, - src/EPSFile.cpp, src/EPSFile.h, src/EPSToSVG.cpp, src/EPSToSVG.h, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, src/EncFile.cpp, - src/EncFile.h, src/FileFinder.cpp, src/FileFinder.h, src/FilePath.cpp, - src/FilePath.h, src/FileSystem.cpp, src/FileSystem.h, src/Font.cpp, - src/Font.h, src/FontCache.cpp, src/FontCache.h, src/FontEncoding.cpp, - src/FontEncoding.h, src/FontEngine.cpp, src/FontEngine.h, - src/FontManager.cpp, src/FontManager.h, src/FontMap.cpp, src/FontMap.h, - src/FontMetrics.cpp, src/FontMetrics.h, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.h, src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, - src/GFTracer.h, src/Ghostscript.cpp, src/Ghostscript.h, src/Glyph.h, - src/GlyphTracerMessages.h, src/GraphicsPath.h, - src/HtmlSpecialHandler.cpp, src/HtmlSpecialHandler.h, - src/InputBuffer.cpp, src/InputBuffer.h, src/InputReader.cpp, - src/InputReader.h, src/JFM.cpp, src/JFM.h, src/Length.cpp, src/Length.h, - src/Makefile.am, src/MapLine.cpp, src/MapLine.h, src/Matrix.cpp, - src/Matrix.h, src/Message.cpp, src/Message.h, src/MessageException.h, - src/MetafontWrapper.cpp, src/MetafontWrapper.h, src/MiKTeXCom.cpp, - src/MiKTeXCom.h, src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.h, - src/NumericRanges.h, src/PSFilter.h, src/PSInterpreter.cpp, - src/PSInterpreter.h, src/PSPattern.cpp, src/PSPattern.h, - src/PSPreviewFilter.cpp, src/PSPreviewFilter.h, src/PageRanges.cpp, - src/PageRanges.h, src/PageSize.cpp, src/PageSize.h, src/Pair.h, - src/PathClipper.cpp, src/PathClipper.h, src/PdfSpecialHandler.cpp, - src/PdfSpecialHandler.h, src/PreScanDVIReader.cpp, - src/PreScanDVIReader.h, src/Process.cpp, src/Process.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/RangeMap.cpp, - src/RangeMap.h, src/SVGOutput.cpp, src/SVGOutput.h, src/SVGTree.cpp, - src/SVGTree.h, src/ShadingPatch.cpp, src/ShadingPatch.h, - src/SignalHandler.cpp, src/SignalHandler.h, src/SpecialActions.h, - src/SpecialHandler.h, src/SpecialManager.cpp, src/SpecialManager.h, - src/StreamReader.cpp, src/StreamReader.h, src/StreamWriter.cpp, - src/StreamWriter.h, src/Subfont.cpp, src/Subfont.h, src/System.cpp, - src/System.h, src/TFM.cpp, src/TFM.h, src/TensorProductPatch.cpp, - src/TensorProductPatch.h, src/Terminal.cpp, src/Terminal.h, - src/ToUnicodeMap.cpp, src/ToUnicodeMap.h, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.h, src/TriangularPatch.cpp, src/TriangularPatch.h, - src/Unicode.cpp, src/Unicode.h, src/VFActions.h, src/VFReader.cpp, - src/VFReader.h, src/VectorIterator.h, src/VectorStream.h, - src/XMLDocument.cpp, src/XMLDocument.h, src/XMLNode.cpp, src/XMLNode.h, - src/XMLString.cpp, src/XMLString.h, src/dvisvgm.cpp, src/macros.h, - src/options.dtd, src/options.xml, src/psdefs.cpp, src/types.h, - tests/BezierTest.cpp, tests/BitmapTest.cpp, tests/BoundingBoxTest.cpp, - tests/CMapReaderTest.cpp, tests/CMapTest.cpp, tests/CRC32Test.cpp, - tests/CalculatorTest.cpp, tests/ColorSpecialTest.cpp, - tests/ColorTest.cpp, tests/CommandLineTest.cpp, - tests/DependencyGraphTest.cpp, tests/DirectoryTest.cpp, - tests/DvisvgmSpecialTest.cpp, tests/FileFinderTest.cpp, - tests/FilePathTest.cpp, tests/FileSystemTest.cpp, - tests/FontManagerTest.cpp, tests/FontMapTest.cpp, - tests/GFGlyphTracerTest.cpp, tests/GFReaderTest.cpp, - tests/GraphicsPathTest.cpp, tests/LengthTest.cpp, tests/Makefile.am, - tests/MapLineTest.cpp, tests/MatrixTest.cpp, - tests/MessageExceptionTest.cpp, tests/PSInterpreterTest.cpp, - tests/PageRagesTest.cpp, tests/PageSizeTest.cpp, tests/PairTest.cpp, - tests/RangeMapTest.cpp, tests/SVGOutputTest.cpp, - tests/ShadingPatchTest.cpp, tests/SplittedCharInputBufferTest.cpp, - tests/StreamInputBufferTest.cpp, tests/StreamReaderTest.cpp, - tests/StreamWriterTest.cpp, tests/SubfontTest.cpp, - tests/TensorProductPatchTest.cpp, tests/ToUnicodeMapTest.cpp, - tests/TriangularPatchTest.cpp, tests/TypesTest.cpp, - tests/UnicodeTest.cpp, tests/VectorIteratorTest.cpp, - tests/VectorStreamTest.cpp, tests/XMLNodeTest.cpp, - tests/XMLStringTest.cpp, tests/check-conv, tests/create-makefile, - tests/normalize.xsl: - updated year in copyright statements to 2016 - - * .travis.yml, configure.ac, src/Doxyfile: - set version to 1.14.1 - -2015-12-31 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp, src/PsSpecialHandler.h: - reset PS graphics state at end of every DVI page - -2015-12-28 Martin Gieseking <martin.gieseking@uos.de> - - * .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: - added evaluation of PSTricks specials 'pst:' and 'PST:' - -2015-12-26 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/EPSToSVG.h, - src/PSPreviewFilter.cpp, src/PSPreviewFilter.h, src/PsSpecialHandler.cpp, - src/SpecialActions.h, src/dvisvgm.cpp: - added option --bbox=preview; adapt preview data if --bbox=min - -2015-12-09 Martin Gieseking <martin.gieseking@uos.de> - - * 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> - - * .travis.yml, configure.ac, src/Doxyfile: - set version to 1.13 - - * NEWS: - updated NEWS - - * 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> - - * src/Font.cpp, src/Font.h, src/Glyph.h, src/GraphicPath.h, - src/GraphicsPath.h, src/Makefile.am, src/PathClipper.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/ShadingPatch.h, - src/TensorProductPatch.cpp, src/TensorProductPatch.h, - src/TpicSpecialHandler.cpp, src/TriangularPatch.cpp, - src/TriangularPatch.h, tests/GraphicPathTest.cpp, - tests/GraphicsPathTest.cpp, tests/Makefile.am, - tests/TensorProductPatchTest.cpp, tests/TriangularPatchTest.cpp: - renamed class GraphicPath to GraphicsPath - -2015-11-30 Martin Gieseking <martin.gieseking@uos.de> - - * 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-25 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIToSVGActions.cpp, src/EPSToSVG.cpp: - remove progress message before printing a PS error message - - * src/DVIToSVGActions.cpp, src/DVIToSVGActions.h: - removed redundant methods - -2015-11-24 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.cpp: - 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/PsSpecialHandler.cpp, src/psdefs.cpp: - minor code cleanup and reordering - - * src/psdefs.cpp: - reduce rounding errors produced by PS operator 'charpath' - - * src/psdefs.cpp: - propagate call of PS operator 'setcolor' to the PS handler - -2015-11-18 Martin Gieseking <martin.gieseking@uos.de> - - * .travis.yml, configure.ac, src/Doxyfile: - set version to 1.12 - - * NEWS: - updated NEWS - -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: - updated links to Google Test framework - -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, - src/HtmlSpecialHandler.cpp, src/PSPattern.cpp, src/PsSpecialHandler.cpp, - src/SVGTree.cpp, src/TpicSpecialHandler.cpp, src/dvisvgm.cpp, - src/options.xml, tests/ColorTest.cpp: - added option --colornames to replace RGB color values with SVG color - names - -2015-10-27 Martin Gieseking <martin.gieseking@uos.de> - - * src/Process.cpp, src/Process.h: - fixed invalid access to freed string memory - -2015-10-06 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in: - minor improvements of the manual page - -2015-09-21 Martin Gieseking <martin.gieseking@uos.de> - - * NEWS, README, README.md: - updated NEWS and README files - -2015-09-18 Martin Gieseking <martin.gieseking@uos.de> - - * .travis.yml, configure.ac, src/Doxyfile: - set version to 1.11 - -2015-09-14 Martin Gieseking <martin.gieseking@uos.de> - - * src/Font.cpp, src/ToUnicodeMap.cpp, src/Unicode.cpp, src/Unicode.h, - tests/UnicodeTest.cpp: - improved handling of invalid Unicode points - - * src/Font.cpp, src/Unicode.cpp, src/Unicode.h, tests/UnicodeTest.cpp: - renamed Unicode::psName2Codepoint to Unicode::psNameToCodepoint - -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 - - * src/CmdLineParserBase.h, src/InputReader.h: - changed 'struct InputReader' to 'class InputReader' - -2015-09-09 Martin Gieseking <martin.gieseking@uos.de> - - * src/SVGTree.cpp: - force creating a new text element after appending a different node to - the page - -2015-08-13 Martin Gieseking <martin.gieseking@uos.de> - - * README, README.md: - minor updates to README and README.md - -2015-07-29 Martin Gieseking <martin.gieseking@uos.de> - - * tests/GhostscriptTest.cpp, tests/Makefile.am: - added GhostscriptTest - - * tests/UnicodeTest.cpp: - improved UnicodeTest - - * tests/CommandLineTest.cpp, tests/MessageExceptionTest.cpp: - use ASSERT_STREQ in tests - -2015-07-22 Martin Gieseking <martin.gieseking@uos.de> - - * README, README.md, doc/dvisvgm.txt.in: - updated links to project website again (relocated to - dvisvgm.bplaced.net) - -2015-07-20 Martin Gieseking <martin.gieseking@uos.de> - - * README, README.md, doc/dvisvgm.txt.in: - updated info about new project website - -2015-07-14 Martin Gieseking <martin.gieseking@uos.de> - - * .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, - src/BasicDVIReader.h, src/DVIReader.cpp, src/DVIReader.h, src/Font.h, - src/FontManager.cpp, src/FontManager.h: - added support for new XDV format 6 - -2015-07-11 Martin Gieseking <martin.gieseking@uos.de> - - * README, README.md: - updated README - -2015-07-03 Martin Gieseking <martin.gieseking@uos.de> - - * 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> - - * 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) - - * 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> - - * .travis.yml, configure.ac, src/Doxyfile: - set version to 1.9.2 - - * NEWS, README.md: - updated NEWS and README.md - - * src/SVGTree.cpp: - apply --precision settings to font-size attributes too - -2015-04-04 Martin Gieseking <martin.gieseking@uos.de> - - * tests/SVGOutputTest.cpp: - remove output files created by SVGOutputTest::getPageStream() - -2015-04-02 Martin Gieseking <martin.gieseking@uos.de> - - * README.md: - minor additions to README.md - -2015-03-26 Martin Gieseking <martin.gieseking@uos.de> - - * src/GlyphTracerMessages.h: - always skip tracer message if no glyphs have been traced - - * src/GFReader.cpp, src/GFReader.h, tests/GFReaderTest.cpp: - improved GFReaderTest - -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 - - * src/DVIToSVG.cpp: - avoid retracing of fonts if option --no-fonts is given - -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: - added ShadingPatchTest - -2015-03-18 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - tests/TriangularPatchTest.cpp: - renamed method pointAt() of class Bezier and TriangularPatch to - valueAt() - - * src/TensorProductPatch.h, tests/TensorProductPatchTest.cpp: - improved TensorProductPatchTest - -2015-03-17 Martin Gieseking <martin.gieseking@uos.de> - - * m4/ax_code_coverage.m4: - added missing file ax_code_coverage.m4 - - * autogen.sh: - updated autogen.sh - -2015-03-15 Martin Gieseking <martin.gieseking@uos.de> - - * src/XMLNode.cpp, src/XMLNode.h, tests/Makefile.am, - tests/XMLNodeTest.cpp: - fixed a few issues in class XMLElementNode; added XMLNodeTest - - * .gitignore, Makefile.am, clipper/Makefile.am, configure.ac, - src/Makefile.am, tests/Makefile.am, tests/create-makefile: - extended build system to generate coverage reports - - * tests/Makefile.am, tests/VectorIteratorTest.cpp: - added VectorIteratorTest - -2015-03-13 Martin Gieseking <martin.gieseking@uos.de> - - * tests/XMLStringTest.cpp: - fixed test class name of XMLString - -2015-03-09 Martin Gieseking <martin.gieseking@uos.de> - - * 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> - - * src/Unicode.cpp, tests/Makefile.am, tests/UnicodeTest.cpp: - fixed UTF-8 encoding of 0xfffe and 0xffff; added UnicodeTest - - * tests/StreamReaderTest.cpp: - exteded StreamReader tests - -2015-03-07 Martin Gieseking <martin.gieseking@uos.de> - - * src/XMLString.cpp, tests/Makefile.am, tests/XMLStringTest.cpp: - fixed conversion from C and C++ strings to XMLString; added - XMLStringTest - - * .gitignore: - added .gitignore - -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 - - * src/BoundingBox.cpp, src/BoundingBox.h, tests/BoundingBoxTest.cpp: - improved BoundingBox tests - -2015-03-04 Martin Gieseking <martin.gieseking@uos.de> - - * src/Bezier.cpp, src/BoundingBox.cpp, src/BoundingBox.h, - tests/BezierTest.cpp, tests/Makefile.am: - fixed Bezier::reduceDegree() for degree 1 and added BezierTest class - -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: - updated NEWS and README.md - -2015-02-27 Martin Gieseking <martin.gieseking@uos.de> - - * src/Calculator.cpp: - replaced while(1) with for(;;) for consistency - -2015-02-26 Martin Gieseking <martin.gieseking@uos.de> - - * configure.ac, src/Doxyfile: - set version to 1.9.1 - -2015-02-25 Martin Gieseking <martin.gieseking@uos.de> - - * src/Ghostscript.cpp: - disable lookup of GS library in Windows registry for old gcc versions - -2015-02-20 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIToSVG.cpp, src/EPSToSVG.cpp, src/Makefile.am, src/SVGOutput.cpp, - src/SVGOutput.h, src/SVGOutputBase.h, src/dvisvgm.cpp: - moved class SVGOutput to separate compilation unit - - * 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/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: - added configuration file for Travis CI - - * .travis.yml: - added dependency 'python-lxml' to Travis configuration - - * .travis.yml: - added dependency 'libgtest-dev' to Travis configuration; ensure call of - 'make check' - - * .travis.yml: - Travis conf: added missing call of 'configure' - - * .travis.yml: - Travis conf: build gtest libraries since Ubuntu doesn't provide the - binaries - -2015-02-18 Martin Gieseking <martin.gieseking@uos.de> - - * src/TpicSpecialHandler.cpp: - use constant M_PI rather than computing PI locally - -2015-02-17 Martin Gieseking <martin.gieseking@uos.de> - - * README, README.md: - updated README and README.md - -2015-01-26 Martin Gieseking <martin.gieseking@uos.de> - - * src/ShadingPatch.h: - removed redundant methods from class ShadingPatch - -2015-01-21 Martin Gieseking <martin.gieseking@uos.de> - - * src/TensorProductPatch.cpp, src/TriangularPatch.cpp: - renamed static helper function clip() to snap() - -2015-01-15 Martin Gieseking <martin.gieseking@uos.de> - - * src/Color.cpp: - resolved ambiguous call of pow (patch by Peter Breitenlohner) - -2015-01-12 Martin Gieseking <martin.gieseking@uos.de> - - * src/VectorIterator.h: - removed redundant method VectorIterator::distanceToLast() - -2014-12-30 Martin Gieseking <martin.gieseking@uos.de> - - * Makefile.am, README, README.md, configure.ac, doc/Makefile.am, - doc/dvisvgm.txt.in, src/BasicDVIReader.cpp, src/BasicDVIReader.h, - src/Bezier.cpp, src/Bezier.h, src/BgColorSpecialHandler.cpp, - src/BgColorSpecialHandler.h, src/Bitmap.cpp, src/Bitmap.h, - src/BoundingBox.cpp, src/BoundingBox.h, src/CMap.cpp, src/CMap.h, - src/CMapManager.cpp, src/CMapManager.h, src/CMapReader.cpp, - src/CMapReader.h, src/CRC32.cpp, src/CRC32.h, src/Calculator.cpp, - src/Calculator.h, src/CharMapID.cpp, src/CharMapID.h, src/Character.h, - src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/Color.cpp, - src/Color.h, src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/CommandLine.cpp, src/CommandLine.h, src/DLLoader.cpp, src/DLLoader.h, - src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, - src/DVIToSVG.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, - src/DependencyGraph.h, src/Directory.cpp, src/Directory.h, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h, - src/EPSFile.cpp, src/EPSFile.h, src/EPSToSVG.cpp, src/EPSToSVG.h, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, src/EncFile.cpp, - src/EncFile.h, src/FileFinder.cpp, src/FileFinder.h, src/FilePath.cpp, - src/FilePath.h, src/FileSystem.cpp, src/FileSystem.h, src/Font.cpp, - src/Font.h, src/FontCache.cpp, src/FontCache.h, src/FontEncoding.cpp, - src/FontEncoding.h, src/FontEngine.cpp, src/FontEngine.h, - src/FontManager.cpp, src/FontManager.h, src/FontMap.cpp, src/FontMap.h, - src/FontMetrics.cpp, src/FontMetrics.h, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.h, src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, - src/GFTracer.h, src/Ghostscript.cpp, src/Ghostscript.h, src/Glyph.h, - src/GlyphTracerMessages.h, src/GraphicPath.h, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.h, src/InputBuffer.cpp, src/InputBuffer.h, - src/InputReader.cpp, src/InputReader.h, src/JFM.cpp, src/JFM.h, - src/Length.cpp, src/Length.h, src/Makefile.am, src/MapLine.cpp, - src/MapLine.h, src/Matrix.cpp, src/Matrix.h, src/Message.cpp, - src/Message.h, src/MessageException.h, src/MetafontWrapper.cpp, - src/MetafontWrapper.h, src/MiKTeXCom.cpp, src/MiKTeXCom.h, - src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.h, - src/NumericRanges.h, src/PSFilter.h, src/PSInterpreter.cpp, - src/PSInterpreter.h, src/PSPattern.cpp, src/PSPattern.h, - src/PSPreviewFilter.cpp, src/PSPreviewFilter.h, src/PageRanges.cpp, - src/PageRanges.h, src/PageSize.cpp, src/PageSize.h, src/Pair.h, - src/PathClipper.cpp, src/PathClipper.h, src/PdfSpecialHandler.cpp, - src/PdfSpecialHandler.h, src/PreScanDVIReader.cpp, - src/PreScanDVIReader.h, src/Process.cpp, src/Process.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/RangeMap.cpp, - src/RangeMap.h, src/SVGOutputBase.h, src/SVGTree.cpp, src/SVGTree.h, - src/ShadingPatch.cpp, src/ShadingPatch.h, src/SignalHandler.cpp, - src/SignalHandler.h, src/SpecialActions.h, src/SpecialHandler.h, - src/SpecialManager.cpp, src/SpecialManager.h, src/StreamReader.cpp, - src/StreamReader.h, src/StreamWriter.cpp, src/StreamWriter.h, - src/Subfont.cpp, src/Subfont.h, src/System.cpp, src/System.h, - src/TFM.cpp, src/TFM.h, src/TensorProductPatch.cpp, - src/TensorProductPatch.h, src/Terminal.cpp, src/Terminal.h, - src/ToUnicodeMap.cpp, src/ToUnicodeMap.h, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.h, src/TriangularPatch.cpp, src/TriangularPatch.h, - src/Unicode.cpp, src/Unicode.h, src/VFActions.h, src/VFReader.cpp, - src/VFReader.h, src/VectorIterator.h, src/VectorStream.h, - src/XMLDocument.cpp, src/XMLDocument.h, src/XMLNode.cpp, src/XMLNode.h, - src/XMLString.cpp, src/XMLString.h, src/dvisvgm.cpp, src/macros.h, - src/options.dtd, src/options.xml, src/psdefs.cpp, src/types.h, - tests/BoundingBoxTest.cpp, tests/CMapReaderTest.cpp, tests/CMapTest.cpp, - tests/CRC32Test.cpp, tests/CalculatorTest.cpp, - tests/ColorSpecialTest.cpp, tests/ColorTest.cpp, - tests/CommandLineTest.cpp, tests/DependencyGraphTest.cpp, - tests/DirectoryTest.cpp, tests/DvisvgmSpecialTest.cpp, - tests/FileFinderTest.cpp, tests/FilePathTest.cpp, - tests/FileSystemTest.cpp, tests/FontManagerTest.cpp, - tests/FontMapTest.cpp, tests/GFReaderTest.cpp, tests/GraphicPathTest.cpp, - tests/LengthTest.cpp, tests/Makefile.am, tests/MapLineTest.cpp, - tests/MatrixTest.cpp, tests/MessageExceptionTest.cpp, - tests/PSInterpreterTest.cpp, tests/PageRagesTest.cpp, - tests/PageSizeTest.cpp, tests/PairTest.cpp, tests/RangeMapTest.cpp, - tests/SplittedCharInputBufferTest.cpp, tests/StreamInputBufferTest.cpp, - tests/StreamReaderTest.cpp, tests/StreamWriterTest.cpp, - tests/SubfontTest.cpp, tests/TensorProductPatchTest.cpp, - tests/ToUnicodeMapTest.cpp, tests/TypesTest.cpp, - tests/VectorStreamTest.cpp, tests/check-conv, tests/create-makefile, - tests/normalize.xsl: - updated year in copyright statements to 2015 - -2014-12-28 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - src/TriangularPatch.cpp, src/TriangularPatch.h, src/dvisvgm.cpp, - src/options.xml: - 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: - check validity of DVI file before trying to collect the BOPs - -2014-12-18 Martin Gieseking <martin.gieseking@uos.de> - - * 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/Color.cpp, src/Color.h, src/Makefile.am, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/VectorIterator.h, src/psdefs.cpp: - extended PS operator 'shfill' to support triangular patch meshes - -2014-12-16 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp, src/PsSpecialHandler.h: - added processing of the optional 'BBox' entry in a PS shading dictionary - -2014-12-03 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - src/PsSpecialHandler.h, src/psdefs.cpp, tests/PSInterpreterTest.cpp: - added evaluation of PS operator shfill (Coons and tensor product patches - only) - -2014-11-24 Martin Gieseking <martin.gieseking@uos.de> - - * README.md: - added list of features and a download button to README.md - -2014-11-09 Martin Gieseking <martin.gieseking@uos.de> - - * clipper/clipper.cpp, clipper/clipper.hpp: - updated clipper library to version 6.2.1 - -2014-11-08 Martin Gieseking <martin.gieseking@uos.de> - - * src/Bezier.cpp, src/Bezier.h, src/BoundingBox.h, src/GraphicPath.h, - src/Makefile.am, src/TensorProductPatch.cpp, src/TensorProductPatch.h, - tests/Makefile.am, tests/TensorProductPatchTest.cpp: - added code to compute tensor-product patches required for gradient fills - -2014-11-06 Martin Gieseking <martin.gieseking@uos.de> - - * src/Matrix.cpp: - use constant M_PI rather than defining PI locally - -2014-10-23 Martin Gieseking <martin.gieseking@uos.de> - - * 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: - 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 - -2014-10-08 Martin Gieseking <martin.gieseking@uos.de> - - * 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: - added info about option --no-merge to the manpage - -2014-09-24 Khaled Hosny <khaled.hosny@hindawi.com> - - * src/Makefile.am: - Add an opt2cpp Python script - -A very ugly script that should work as a - drop in replacement for the -opt2cpp XSLT. - -2014-09-15 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp, src/PsSpecialHandler.h: - ensure that colors set by a color special are always considered by the - PS handler - -2014-09-10 Martin Gieseking <martin.gieseking@uos.de> - - * src/BasicDVIReader.cpp, src/DVIReader.cpp, src/FontCache.cpp, - src/GFReader.cpp, src/dvisvgm.cpp: - replaced namespace 'ios_base' with 'ios' - -2014-08-29 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp: - added missing whitespace boundaries in PS code - - * src/FontEngine.cpp, tests/PageRagesTest.cpp: - removed unused static functions - - * configure.ac, src/Doxyfile: - set version to 1.8.1 - - * NEWS: - updated NEWS - -2014-08-18 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIToSVG.cpp, src/DependencyGraph.h, src/Makefile.am, - src/SVGTree.cpp, src/SVGTree.h, src/XMLNode.cpp, src/XMLNode.h, - tests/DependencyGraphTest.cpp, tests/Makefile.am: - remove redundant clipPath elements from generated SVG files - -2014-08-16 Martin Gieseking <martin.gieseking@uos.de> - - * src/PSPattern.cpp, src/XMLNode.cpp, src/XMLNode.h: - renamed XMLElementNode::findDescendants() and made it constant - -2014-08-11 Martin Gieseking <martin.gieseking@uos.de> - - * tests/Makefile.am, tests/create-makefile: - link tests against FreeType library - - * README.md: - minor fixed to README.md - -2014-08-10 Khaled Hosny <khaledhosny@eglug.org> - - * configure.ac, src/Makefile.am: - Don't override CXXFLAGS in configure script - -Breaks standard things - like: - - make CXXFLAGS="-g -O0 -pg" - - * configure.ac, src/Makefile.am: - Don't override CPPFLAGS and LDFLAGS in configure - -For the same reasons - as the previous commit - -2014-08-07 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/dvisvgm.cpp: - removed old code that moved cache files to new location - - * src/XMLDocument.cpp, src/XMLDocument.h, src/XMLNode.cpp, src/XMLNode.h: - removed unused emit() methods from XML classes - -2014-07-31 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/PsSpecialHandler.cpp, src/psdefs.cpp: - prevent side-effects caused by bop/eop operators present in PS specials - -2014-07-29 Martin Gieseking <mgieseki@users.sourceforge.net> - - * NEWS: - updated NEWS - -2014-07-28 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/GraphicPath.h, src/PSInterpreter.cpp, src/PSInterpreter.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/psdefs.cpp, - 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 <mgieseki@users.sourceforge.net> - - * src/Font.cpp, src/GFGlyphTracer.cpp, src/GraphicPath.h, - src/PsSpecialHandler.cpp: - renamed GraphicPath::newpath() to GraphicPath::clear() - -2014-07-24 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/InputReader.cpp, src/PSInterpreter.cpp: - ensure that InputReader::compare() checks whole and not just partial - words - -2014-07-22 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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/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> - - * src/FontEngine.cpp: - Free existing FT_Face before creating a new one - -FontEngine was never - destroying the FT_Face's it creates, except the -very last one that was - destroyed by the destructor. For some reason, -this was causing - FT_New_Face() to fail on Windows after processing the -first hundred or so - pages of DVI files. - -2014-07-18 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 <mgieseki@users.sourceforge.net> - - * src/DVIToSVGActions.h, src/Doxyfile, src/HtmlSpecialHandler.h, - src/RangeMap.cpp, src/SpecialManager.cpp, src/ToUnicodeMap.cpp: - fixed a couple of broken doxygen comments - -2014-06-25 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/Ghostscript.cpp: - get proper name of Ghostscript library when building for Cygwin - -2014-06-23 Martin Gieseking <mgieseki@users.sourceforge.net> - - * README.md: - added markdown version of README - -2014-06-20 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.cpp: - suppress output of PS operator ':show' to prevent the creation of - additional graphic elements - -2014-06-17 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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/InputReader.cpp: - added missing include - - * configure.ac, src/Doxyfile: - set version to 1.7 - - * NEWS: - updated NEWS - -2014-06-12 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/XMLNode.cpp, src/XMLNode.h: - added clear() to XMLNode classes; added XMLTextNode::getText() - -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 - -2014-06-10 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/SpecialActions.h, tests/ColorSpecialTest.cpp: - renamed class SpecialEmptyActions to EmptySpecialActions - -2014-06-09 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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, - src/CmdLineParserBase.h, src/Color.cpp, src/ColorSpecialHandler.cpp, - src/ColorSpecialHandler.h, src/CommandLine.cpp, src/CommandLine.h, - src/DLLoader.h, src/DVIReader.cpp, src/DVIToSVG.h, src/DVIToSVGActions.h, - src/Directory.h, src/DvisvgmSpecialHandler.h, src/EmSpecialHandler.cpp, - src/EmSpecialHandler.h, src/EncFile.h, src/FileFinder.h, - src/FileSystem.cpp, src/Font.cpp, src/Font.h, src/FontCache.h, - src/FontEncoding.cpp, src/FontEngine.cpp, src/FontEngine.h, - src/FontManager.cpp, src/FontManager.h, src/FontMap.cpp, src/FontMap.h, - src/GFGlyphTracer.cpp, src/GFGlyphTracer.h, src/GFReader.cpp, - src/GFReader.h, src/GFTracer.h, src/Ghostscript.cpp, src/Ghostscript.h, - src/GraphicPath.h, src/HtmlSpecialHandler.h, src/InputBuffer.cpp, - src/InputBuffer.h, src/JFM.h, src/Length.cpp, src/Length.h, - src/MapLine.cpp, src/MapLine.h, src/Matrix.cpp, src/Matrix.h, - src/MessageException.h, src/MetafontWrapper.cpp, src/MetafontWrapper.h, - src/NoPsSpecialHandler.h, src/NumericRanges.h, src/PSInterpreter.h, - src/PSPattern.h, src/PSPreviewFilter.h, src/PageRanges.h, src/PageSize.h, - src/Pair.h, src/PdfSpecialHandler.cpp, src/PdfSpecialHandler.h, - src/Process.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, - src/SVGTree.h, src/SignalHandler.h, src/SpecialActions.h, - src/SpecialManager.h, src/StreamWriter.h, src/Subfont.cpp, src/Subfont.h, - src/TFM.h, src/ToUnicodeMap.h, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.h, src/VFReader.cpp, src/VectorStream.h, - src/XMLDocument.h, src/XMLNode.h, src/XMLString.cpp, src/XMLString.h, - src/dvisvgm.cpp, src/types.h: - replaced leading spaces by tabs; removed trailing whitespace - -2014-06-03 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 <mgieseki@users.sourceforge.net> - - * 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 <mgieseki@users.sourceforge.net> - - * 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/StreamReader.h, src/VFReader.cpp: - renamed some methods of class StreamReader - -2014-05-29 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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/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/Font.cpp, src/Makefile.am, src/Unicode.cpp, src/Unicode.h, - src/XMLString.cpp: - moved unicode-related funtions to separate class - - * src/CharMap.cpp, src/CharMap.h, src/Font.cpp, src/FontEngine.cpp, - src/FontEngine.h: - removed redundant method CharMap::invert() - - * 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/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/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/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/Makefile.am: - Makefile: put source files on separate lines - -2014-04-30 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/CharMapID.cpp, src/CharMapID.h, src/DVIReader.cpp, src/Font.cpp, - src/Font.h, src/FontEngine.cpp, src/FontEngine.h: - try to add unicode mappings missing in a font's cmap table - -2014-04-29 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/SVGTree.cpp: - don't add unnecessary element 'missing-glyph' to SVG files - -2014-04-24 Martin Gieseking <mgieseki@users.sourceforge.net> - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/options.xml: - renamed argument of option --linkmark from 'type' to 'style' - -2014-04-23 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/System.h: - removed redundant semicolon - -2014-04-22 Martin Gieseking <martin.gieseking@uos.de> - - * configure.ac, src/Doxyfile: - set version to 1.6 - - * NEWS: - updated NEWS - -2014-04-21 Martin Gieseking <mgieseki@users.sourceforge.net> - - * doc/dvisvgm.txt.in, src/DVIToSVG.cpp, src/EPSToSVG.cpp: - removed date and machine triplet from generated SVG files - -2014-04-18 Martin Gieseking <mgieseki@users.sourceforge.net> - - * doc/dvisvgm.txt.in, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.h: - added optional selection of line/box colors to option --linkmark - -2014-04-17 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/options.xml: - changed default argument of option --linkmark to 'box' - -2014-04-16 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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/Ghostscript.cpp, src/dvisvgm.cpp: - moved lookup of MiKTeX's GS DLL to get_libgs() - - * 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 - -2014-04-11 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/CMap.cpp, src/CmdLineParserBase.cpp, src/ColorSpecialHandler.cpp, - src/DVIReader.cpp, src/DVIToSVGActions.cpp, src/Doxyfile, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h, - src/EPSFile.cpp, src/EmSpecialHandler.cpp, src/FileFinder.cpp, - src/FileSystem.cpp, src/Font.cpp, src/FontCache.cpp, src/FontEncoding.h, - src/FontEngine.cpp, src/FontMap.cpp, src/GraphicPath.h, - src/PSInterpreter.cpp, src/PageRanges.cpp, src/PsSpecialHandler.cpp, - src/SVGTree.cpp, src/SVGTree.h, src/SpecialManager.cpp, src/Subfont.cpp, - src/TFM.cpp, src/TpicSpecialHandler.cpp, src/XMLDocument.cpp, - 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 <mgieseki@users.sourceforge.net> - - * 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, - src/DvisvgmSpecialHandler.cpp, src/EPSToSVG.cpp, - src/EmSpecialHandler.cpp, src/Font.h, src/FontManager.cpp, - src/GFGlyphTracer.cpp, src/GFReader.cpp, src/GFTracer.cpp, - src/GFTracer.h, src/GraphicPath.h, src/HtmlSpecialHandler.h, - src/Makefile.am, src/PSPattern.cpp, src/PSPreviewFilter.cpp, - src/PSPreviewFilter.h, src/PageSize.cpp, src/PageSize.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/SVGTree.cpp, - src/SpecialHandler.h, src/SpecialManager.cpp, src/SpecialManager.h, - src/TFM.cpp, src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h, - src/VFReader.cpp: - switched internal computations from TeX points (pt) to PS points (bp) - -2014-02-05 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIReader.cpp, src/DVIReader.h: - ensure updating the SVG cursor position when executing DVI command - set_rule - -2014-01-13 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/Ghostscript.cpp: - check if library given by --libgs is actually a GS library - -2014-01-10 Martin Gieseking <mgieseki@users.sourceforge.net> - - * NEWS: - updated NEWS - -2014-01-03 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/FileFinder.cpp: - catch exceptions thrown by MiKTeXCom object - - * src/Directory.cpp: - initialize Directory member variables (Win only) - - * src/FileFinder.cpp: - 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> - - * 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, - src/CMap.cpp, src/CMap.h, src/CMapManager.cpp, src/CMapManager.h, - src/CMapReader.cpp, src/CMapReader.h, src/CRC32.cpp, src/CRC32.h, - src/Calculator.cpp, src/Calculator.h, src/CharMap.cpp, src/CharMap.h, - src/CharMapID.cpp, src/CharMapID.h, src/Character.h, - src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/Color.cpp, - src/Color.h, src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/CommandLine.cpp, src/CommandLine.h, src/DLLoader.cpp, src/DLLoader.h, - src/DVIActions.cpp, src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, - src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/Directory.cpp, src/Directory.h, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h, - src/EPSFile.cpp, src/EPSFile.h, src/EPSToSVG.cpp, src/EPSToSVG.h, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, src/EncFile.cpp, - src/EncFile.h, src/FileFinder.cpp, src/FileFinder.h, src/FilePath.cpp, - src/FilePath.h, src/FileSystem.cpp, src/FileSystem.h, src/Font.cpp, - src/Font.h, src/FontCache.cpp, src/FontCache.h, src/FontEncoding.cpp, - src/FontEncoding.h, src/FontEngine.cpp, src/FontEngine.h, - src/FontManager.cpp, src/FontManager.h, src/FontMap.cpp, src/FontMap.h, - src/FontMetrics.cpp, src/FontMetrics.h, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.h, src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, - src/GFTracer.h, src/Ghostscript.cpp, src/Ghostscript.h, src/Glyph.h, - src/GlyphTracerMessages.h, src/GraphicPath.h, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.h, src/InputBuffer.cpp, src/InputBuffer.h, - src/InputReader.cpp, src/InputReader.h, src/JFM.cpp, src/JFM.h, - src/Length.cpp, src/Length.h, src/Makefile.am, src/MapLine.cpp, - src/MapLine.h, src/Matrix.cpp, src/Matrix.h, src/Message.cpp, - src/Message.h, src/MessageException.h, src/MetafontWrapper.cpp, - src/MetafontWrapper.h, src/MiKTeXCom.cpp, src/MiKTeXCom.h, - src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.h, src/PSFilter.h, - src/PSInterpreter.cpp, src/PSInterpreter.h, src/PSPattern.cpp, - src/PSPattern.h, src/PSPreviewFilter.cpp, src/PSPreviewFilter.h, - src/PageRanges.cpp, src/PageRanges.h, src/PageSize.cpp, src/PageSize.h, - src/Pair.h, src/PdfSpecialHandler.cpp, src/PdfSpecialHandler.h, - src/Process.cpp, src/Process.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/SVGOutputBase.h, src/SVGTree.cpp, - src/SVGTree.h, src/SignalHandler.cpp, src/SignalHandler.h, - src/SpecialActions.h, src/SpecialHandler.h, src/SpecialManager.cpp, - src/SpecialManager.h, src/StreamReader.cpp, src/StreamReader.h, - src/StreamWriter.cpp, src/StreamWriter.h, src/Subfont.cpp, src/Subfont.h, - src/System.cpp, src/System.h, src/TFM.cpp, src/TFM.h, src/Terminal.cpp, - src/Terminal.h, src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h, - src/VFActions.h, src/VFReader.cpp, src/VFReader.h, src/VectorStream.h, - src/XMLDocument.cpp, src/XMLDocument.h, src/XMLNode.cpp, src/XMLNode.h, - src/XMLString.cpp, src/XMLString.h, src/dvisvgm.cpp, src/macros.h, - src/options.dtd, src/options.xml, src/psdefs.cpp, src/types.h, - tests/BoundingBoxTest.cpp, tests/CMapReaderTest.cpp, tests/CMapTest.cpp, - tests/CRC32Test.cpp, tests/CalculatorTest.cpp, - tests/ColorSpecialTest.cpp, tests/ColorTest.cpp, - tests/CommandLineTest.cpp, tests/DirectoryTest.cpp, - tests/FileFinderTest.cpp, tests/FilePathTest.cpp, - tests/FileSystemTest.cpp, tests/FontManagerTest.cpp, - tests/FontMapTest.cpp, tests/GFReaderTest.cpp, tests/GraphicPathTest.cpp, - tests/LengthTest.cpp, tests/Makefile.am, tests/MapLineTest.cpp, - tests/MatrixTest.cpp, tests/MessageExceptionTest.cpp, - tests/PSInterpreterTest.cpp, tests/PageRagesTest.cpp, - tests/PageSizeTest.cpp, tests/PairTest.cpp, - tests/SplittedCharInputBufferTest.cpp, tests/StreamInputBufferTest.cpp, - tests/StreamReaderTest.cpp, tests/StreamWriterTest.cpp, - tests/SubfontTest.cpp, tests/TypesTest.cpp, tests/VectorStreamTest.cpp, - tests/check-conv, tests/create-makefile, tests/normalize.xsl: - updated year in copyright statements to 2014 - -2014-01-01 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/MiKTeXCom.cpp: - prevent releasing MiKTeX object if its initialization failed - -2013-12-29 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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/FontCache.cpp: - catch potential StreamReaderException - -2013-12-18 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/BoundingBox.cpp: - explicitely initialize BoundingBox fields - - * src/FontCache.cpp: - avoid accessing strings constructed from temporaries - - * 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/DvisvgmSpecialHandler.cpp, src/FontCache.cpp: - ensure null pointer checks before dereferencing - - * src/FontCache.cpp, src/SpecialManager.cpp: - restore stream format flags - - * src/DVIReader.cpp, src/Directory.cpp, src/GFReader.cpp: - added missing initializations of member variables - -2013-12-09 Martin Gieseking <martin.gieseking@uos.de> - - * src/BgColorSpecialHandler.h, src/Bitmap.h, src/BoundingBox.h, - src/CMap.h, src/CMapManager.h, src/CMapReader.h, src/Calculator.h, - src/CharMap.h, src/CharMapID.h, src/Character.h, src/CmdLineParserBase.h, - src/Color.h, src/ColorSpecialHandler.h, src/CommandLine.h, - src/DLLoader.h, src/DVIActions.h, src/DVIReader.h, src/DVIToSVG.h, - src/DVIToSVGActions.h, src/Directory.h, src/DvisvgmSpecialHandler.h, - src/EPSFile.h, src/EPSToSVG.h, src/EmSpecialHandler.h, src/EncFile.h, - src/FileFinder.h, src/FilePath.h, src/FileSystem.h, src/Font.h, - src/FontCache.h, src/FontEncoding.h, src/FontEngine.h, src/FontManager.h, - src/FontMap.h, src/FontMetrics.h, src/GFGlyphTracer.h, src/GFReader.h, - src/GFTracer.h, src/Ghostscript.h, src/Glyph.h, - src/GlyphTracerMessages.h, src/GraphicPath.h, src/HtmlSpecialHandler.h, - src/InputBuffer.h, src/InputReader.h, src/JFM.h, src/Length.h, - src/MapLine.h, src/Matrix.h, src/Message.h, src/MessageException.h, - src/MetafontWrapper.h, src/MiKTeXCom.h, src/NoPsSpecialHandler.h, - src/PSFilter.h, src/PSInterpreter.h, src/PSPattern.h, - src/PSPreviewFilter.h, src/PageRanges.h, src/PageSize.h, src/Pair.h, - src/PdfSpecialHandler.h, src/Process.h, src/PsSpecialHandler.h, - src/SVGOutputBase.h, src/SVGTree.h, src/SignalHandler.h, - src/SpecialActions.h, src/SpecialHandler.h, src/SpecialManager.h, - src/StreamReader.h, src/StreamWriter.h, src/Subfont.h, src/System.h, - src/TFM.h, src/Terminal.h, src/TpicSpecialHandler.h, src/VFActions.h, - src/VFReader.h, src/VectorStream.h, src/XMLDocument.h, src/XMLNode.h, - src/XMLString.h, src/macros.h, src/types.h: - prefixed include guards with DVISVGM_ to prevent ambiguities with - external headers - -2013-11-16 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/DVIReader.cpp, src/SVGTree.cpp, src/SVGTree.h: - don't let global font colors interfere with color specials - -2013-10-29 Martin Gieseking <mgieseki@users.sourceforge.net> - - * NEWS: - updated NEWS - -2013-10-28 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 - - * configure.ac, src/Doxyfile: - set version to 1.5.1 - -2013-10-27 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/DVIToSVG.cpp: - suppress output of logical page number if it equals physical page number - -2013-10-16 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/PSPreviewFilter.cpp, src/PsSpecialHandler.cpp: - ensure proper evaluation of tightpage data if multiple pages are - processed - -2013-10-12 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 <mgieseki@users.sourceforge.net> - - * 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/DVIToSVG.cpp: - changed warning message that appears if PS support has been disabled - permanently - -2013-09-01 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - src/Color.cpp, src/ColorSpecialHandler.cpp, src/CommandLine.cpp, - src/CommandLine.h, src/DLLoader.cpp, src/DVIActions.cpp, - src/DVIReader.cpp, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, - src/Directory.cpp, src/DvisvgmSpecialHandler.cpp, src/EPSFile.cpp, - src/EPSToSVG.cpp, src/EmSpecialHandler.cpp, src/EncFile.cpp, - src/FileFinder.cpp, src/FilePath.cpp, src/FileSystem.cpp, src/Font.cpp, - src/FontCache.cpp, src/FontEncoding.cpp, src/FontEngine.cpp, - src/FontManager.cpp, src/FontMap.cpp, src/FontMetrics.cpp, - src/GFGlyphTracer.cpp, src/GFReader.cpp, src/GFTracer.cpp, - src/Ghostscript.cpp, src/Ghostscript.h, src/HtmlSpecialHandler.cpp, - src/InputBuffer.cpp, src/InputReader.cpp, src/JFM.cpp, src/Length.cpp, - src/MapLine.cpp, src/Matrix.cpp, src/Message.cpp, - src/MetafontWrapper.cpp, src/MiKTeXCom.cpp, src/NoPsSpecialHandler.cpp, - src/PSInterpreter.cpp, src/PSPattern.cpp, src/PSPreviewFilter.cpp, - src/PageRanges.cpp, src/PageSize.cpp, src/PdfSpecialHandler.cpp, - src/Process.cpp, src/PsSpecialHandler.cpp, src/SVGTree.cpp, - src/SignalHandler.cpp, src/SpecialManager.cpp, src/StreamReader.cpp, - src/StreamWriter.cpp, src/Subfont.cpp, src/System.cpp, src/TFM.cpp, - src/Terminal.cpp, src/TpicSpecialHandler.cpp, src/VFReader.cpp, - src/XMLDocument.cpp, src/XMLNode.cpp, src/XMLString.cpp, src/dvisvgm.cpp: - include config.h at the top of every translation unit - - * src/DLLoader.h, src/Directory.h: - moved #define NOMINMAX to Windows config.h - - * configure.ac, src/Doxyfile: - set version to 1.5 - - * NEWS: - updated NEWS - -2013-08-30 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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, - src/FontEngine.cpp, src/FontEngine.h, src/FontMetrics.h, src/JFM.h, - src/SVGTree.cpp, src/SVGTree.h, src/TFM.h, src/dvisvgm.cpp: - added support for DVI format 3 (pTeX, vertical mode) - - * 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> - - * src/CharMap.cpp, src/CharMap.h, src/Font.cpp, src/Font.h, - src/FontEncoding.h, src/FontEngine.cpp, src/FontEngine.h, - src/FontManager.cpp, src/Makefile.am: - replaced local std::map tables used in Font classes with new class - CharMap - -2013-08-23 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/SVGTree.cpp: - appended px unit to font-size attributes in style section - -2013-08-22 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/XMLString.cpp: - replace very small floating point numbers by 0 - -2013-08-20 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/FileFinder.cpp: - suppress error messages from makeFOO tools - -2013-08-13 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 - - * 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 - -2013-08-11 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 <mgieseki@users.sourceforge.net> - - * src/Matrix.cpp, src/Matrix.h: - renamed Matrix skewing methods - -2013-08-04 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 <mgieseki@users.sourceforge.net> - - * src/CMapManager.cpp, src/CMapManager.h, src/FontManager.cpp: - avoid const_cast in CMapManager - -2013-08-02 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/DVIActions.h, src/DVIReader.cpp, src/DVIToSVG.cpp: - disable font processing while scanning PS header specials - - * src/CMap.h, src/CMapManager.cpp: - properly handle 'unicode' encoding entries set in font map - -2013-08-01 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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/DVIToSVG.cpp: - removed redundant #include statements - - * 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 - - * NEWS: - updated NEWS - - * configure.ac, src/Doxyfile: - set version to 1.4 - -2013-07-31 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - src/FontEncoding.cpp, src/FontEncoding.h, src/FontEngine.cpp, - src/FontEngine.h, src/FontManager.cpp, src/Makefile.am, - tests/CMapTest.cpp: - derive .enc encoding vectors and CMaps from common base class - FontEncoding - - * 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/FileFinder.cpp, src/Font.cpp, src/Font.h, src/FontManager.cpp: - added support for OTF fonts - - * 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/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 <mgieseki@users.sourceforge.net> - - * src/Font.cpp, src/Font.h, src/FontEncoding.cpp, src/FontEncoding.h: - moved lookup of the encoding of a font to the Font class - - * 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, - src/SpecialManager.cpp, src/SpecialManager.h: - ensure that PS header code is evaluated before the page/body code; also - execute bop-hook and eop-hook - - * 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 <mgieseki@users.sourceforge.net> - - * src/EPSToSVG.cpp: - print warning message if height or width of EPS bbox is 0 - - * src/psdefs.cpp: - PS handler: call newpath before executing charpath in operator show - - * src/FontMap.cpp: - check for EOF prior to try to parse another mapline - -2013-07-18 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.cpp: - replaced PS operator prval with =only in psdefs - -2013-07-17 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/DVIToSVG.cpp: - ensure catching PSExceptions while processing PS header specials to - prevent segfaults - - * src/psdefs.cpp: - properly store PS operator applyscalevals in systemdict - -2013-07-14 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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: - command-line parser: changed type of argument mode from char to enum - -2013-06-17 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/FileFinder.cpp: - removed redundant 'using namespace std' - -2013-06-03 Martin Gieseking <mgieseki@users.sourceforge.net> - - * doc/dvisvgm.txt.in, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.h, src/dvisvgm.cpp: - extend option --linkmark to highlight linked areas by a given background - color - -2013-06-01 Martin Gieseking <martin.gieseking@uos.de> - - * src/Color.cpp, src/Color.h, src/ColorSpecialHandler.cpp, - src/ColorSpecialHandler.h, src/SpecialActions.h, - tests/ColorSpecialTest.cpp, tests/ColorTest.cpp, tests/Makefile.am: - use Color class in ColorSpecialHandler rather than local code; added - ColorTest - -2013-05-22 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/dvisvgm.cpp: - added a missing (underlining) hyphen to the output of -V1 - -2013-05-17 Martin Gieseking <martin.gieseking@uos.de> - - * src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.h: - added missing NoPsSpecialhandler files - -2013-05-13 Martin Gieseking <martin.gieseking@uos.de> - - * 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 - - * 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 - - * 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 - - * 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 - - * configure.ac, src/Doxyfile: - set version to 1.3 - - * NEWS: - updated NEWS - -2013-05-02 Martin Gieseking <martin.gieseking@uos.de> - - * 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/SVGTree.cpp, src/SVGTree.h: - added methods to push and pop 'context elements' to a page that wrap - parts of the page contents - - * 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/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/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 <mgieseki@users.sourceforge.net> - - * src/DVIToSVGActions.cpp, src/Terminal.cpp, src/Terminal.h: - disable cursor when showing the progress indicator (Windows only) - -2013-04-26 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/DVIToSVG.cpp: - don't link NoPsSpecialHandler if HAVE_LIBGS - -2013-04-25 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/FontEncoding.cpp: - fixed bracketing bug that prevented lookup of fontmap files - -2013-04-24 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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, - src/StreamReader.h, src/VFReader.cpp, src/VFReader.h, src/VectorStream.h, - 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 <mgieseki@users.sourceforge.net> - - * src/DVIToSVG.cpp, src/EPSToSVG.cpp, src/dvisvgm.cpp: - avoid output of empty parentheses if TARGET_SYSTEM is not set - - * doc/dvisvgm.txt.in, src/CmdLineParserBase.cpp, src/CommandLine.cpp, - src/options.dtd, src/options.xml: - added information about 'dvisvgm -E' to usage line - - * 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 - -2013-04-20 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIToSVG.cpp, src/Makefile.am, src/SpecialManager.cpp: - print a warning message if PS specials are found but ignored - -2013-04-15 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/FileFinder.cpp, src/dvisvgm.cpp: - catch MessageException if MiKTeX version can't be obtained - -2013-04-09 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 - - * NEWS: - updated NEWS - -2013-04-08 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 <mgieseki@users.sourceforge.net> - - * src/XMLNode.cpp, src/XMLNode.h: - unhide derived method XMLDeclarationNode::append - -2013-03-10 Martin Gieseking <mgieseki@users.sourceforge.net> - - * Makefile.am, configure.ac: - don't build bundled potracelib if system library is used (patch by - Alexis Ballier) - -2013-03-03 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 bundled potrace library to version 1.11 - -2013-03-02 Martin Gieseking <martin.gieseking@uos.de> - - * potracelib/auxiliary.h, potracelib/bitmap.h, potracelib/curve.c, - potracelib/decompose.h, potracelib/lists.h, potracelib/progress.h, - potracelib/trace.c, potracelib/trace.h, src/EPSFile.cpp, - src/EPSToSVG.cpp, src/EPSToSVG.h, src/PSPattern.cpp, src/PSPattern.h, - src/SVGOutputBase.h: - converted DOS line endings - -2013-02-28 Martin Gieseking <martin.gieseking@uos.de> - - * src/Makefile.am, src/PSInterpreter.cpp, src/PSInterpreter.h, - src/PSPattern.cpp, src/PSPattern.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/psdefs.psc, tests/PSInterpreterTest.cpp: - PS handler: added support of tiling patterns - - * src/Makefile.am, src/PSInterpreter.cpp, src/psdefs.cpp, src/psdefs.psc: - make psdefs a separate compilation unit - - * tests/MapLineTest.cpp: - prevent MapLineTest from failing if file UGBK.sfd is not available - - * src/psdefs.cpp: - improved processing of PS operator 'show' - - * configure.ac, src/Doxyfile: - set version to 1.2 - - * NEWS: - updated NEWS - -2013-02-21 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/XMLNode.cpp, src/XMLNode.h: - added virtual constructor XMLNode::clone() - - * src/XMLNode.cpp, src/XMLNode.h: - added methods to lookup attribute values and selected descendant XML - nodes - -2013-02-19 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/PSInterpreter.cpp, src/PSInterpreter.h: - added PSInterpreter::limit() to limit the number of bytes to be - processed - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h, - src/DVIToSVG.cpp, src/DVIToSVG.h, src/EPSFile.cpp, src/EPSFile.h, - src/EPSToSVG.cpp, src/EPSToSVG.h, src/Makefile.am, - src/PsSpecialHandler.cpp, src/SVGOutputBase.h, src/dvisvgm.cpp, - src/options.xml: - add option to directly convert EPS files to SVG - - * 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, - src/CommandLine.h: - applied a few refactorings to the command-line parser - -2013-02-07 Martin Gieseking <martin.gieseking@uos.de> - - * doc/dvisvgm.txt.in, src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, - src/CommandLine.cpp, src/CommandLine.h, src/dvisvgm.cpp, src/options.xml: - added optional parameter to option --help to specify output format - -2013-02-06 Martin Gieseking <mgieseki@users.sourceforge.net> - - * doc/dvisvgm.txt.in, src/BoundingBox.cpp, src/CommandLine.cpp, - src/CommandLine.h, src/EmSpecialHandler.cpp, src/GraphicPath.h, - src/Matrix.cpp, src/PsSpecialHandler.cpp, src/TpicSpecialHandler.cpp, - src/XMLString.cpp, src/XMLString.h, src/dvisvgm.cpp, src/options.xml: - added option --precision to set the number of decimal places applied to - attribute values - -2013-01-30 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/CommandLine.cpp: - fixed alignment of --help text - -2013-01-22 Martin Gieseking <martin.gieseking@uos.de> - - * src/FileFinder.cpp, src/FontEngine.cpp, src/Makefile.am, - src/MiKTeXCom.cpp, src/MiKTeXCom.h: - moved MiKTeX COM code to separate class - -2013-01-21 Martin Gieseking <martin.gieseking@uos.de> - - * 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 - - * 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 - - * configure.ac, src/Doxyfile: - set version to 1.1 - - * NEWS, README: - updated NEWS and README - -2013-01-20 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/FontEngine.cpp, src/FontEngine.h: - removed unneeded code related to font sizes from class FontEngine - -2013-01-16 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 <mgieseki@users.sourceforge.net> - - * src/Font.cpp, src/FontEncoding.cpp: - fixed a string exception that occurred when an encoding file or an entry - in the encoding table is unavailable - -2013-01-06 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/FileFinder.cpp, src/FileFinder.h, src/FontEncoding.cpp, - src/FontEncoding.h: - removed font encoding methods from FileFinder - -2013-01-02 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - src/CRC32.cpp, src/CRC32.h, src/Calculator.cpp, src/Calculator.h, - src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/Color.cpp, - src/Color.h, src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/CommandLine.cpp, src/CommandLine.h, src/DLLoader.cpp, src/DLLoader.h, - src/DVIActions.cpp, src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, - src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/Directory.cpp, src/Directory.h, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, src/FileFinder.cpp, - src/FileFinder.h, src/FilePath.cpp, src/FilePath.h, src/FileSystem.cpp, - src/FileSystem.h, src/Font.cpp, src/Font.h, src/FontCache.cpp, - src/FontCache.h, src/FontEncoding.cpp, src/FontEncoding.h, - src/FontEngine.cpp, src/FontEngine.h, src/FontManager.cpp, - src/FontManager.h, src/FontMap.cpp, src/FontMap.h, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.h, src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, - src/GFTracer.h, src/Ghostscript.cpp, src/Ghostscript.h, src/Glyph.h, - src/GlyphTracerMessages.h, src/GraphicPath.h, src/InputBuffer.cpp, - src/InputBuffer.h, src/InputReader.cpp, src/InputReader.h, - src/Length.cpp, src/Length.h, src/Makefile.am, src/Matrix.cpp, - src/Matrix.h, src/Message.cpp, src/Message.h, src/MessageException.h, - src/MetafontWrapper.cpp, src/MetafontWrapper.h, src/MiKTeXCom.cpp, - src/MiKTeXCom.h, src/PSInterpreter.cpp, src/PSInterpreter.h, - src/PageRanges.cpp, src/PageRanges.h, src/PageSize.cpp, src/PageSize.h, - src/Pair.h, src/Process.cpp, src/Process.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/SVGTree.cpp, src/SVGTree.h, - src/SignalHandler.cpp, src/SignalHandler.h, src/SpecialActions.h, - src/SpecialHandler.h, src/SpecialManager.cpp, src/SpecialManager.h, - src/StreamReader.cpp, src/StreamReader.h, src/StreamWriter.cpp, - src/StreamWriter.h, src/System.cpp, src/System.h, src/TFM.cpp, src/TFM.h, - src/Terminal.cpp, src/Terminal.h, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.h, src/VFActions.h, src/VFReader.cpp, - src/VFReader.h, src/VectorStream.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/macros.h, - src/options.dtd, src/options.xml, src/psdefs.psc, src/types.h, - tests/BoundingBoxTest.cpp, tests/CRC32Test.cpp, tests/CalculatorTest.cpp, - tests/ColorSpecialTest.cpp, tests/CommandLineTest.cpp, - tests/DirectoryTest.cpp, tests/FileFinderTest.cpp, - tests/FilePathTest.cpp, tests/FileSystemTest.cpp, - tests/FontManagerTest.cpp, tests/FontMapTest.cpp, tests/GFReaderTest.cpp, - tests/GraphicPathTest.cpp, tests/LengthTest.cpp, tests/Makefile.am, - tests/MatrixTest.cpp, tests/MessageExceptionTest.cpp, - tests/PSInterpreterTest.cpp, tests/PageRagesTest.cpp, - tests/PageSizeTest.cpp, tests/PairTest.cpp, - tests/SplittedCharInputBufferTest.cpp, tests/StreamInputBufferTest.cpp, - tests/StreamReaderTest.cpp, tests/StreamWriterTest.cpp, - tests/TypesTest.cpp, tests/VectorStreamTest.cpp, tests/create-makefile: - updated year in copyright statements to 2013 - -2012-12-23 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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/Message.cpp, src/dvisvgm.cpp: - reduced scope of some variables - -2012-12-12 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/FontCache.cpp: - replaced 'char' with 'glyph' in font cache listing - - * src/SpecialManager.cpp: - clear all corresponding containers when calling - SpecialHandler::unregisterHandlers() - -2012-12-03 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/Ghostscript.cpp: - added explicit cast to avoid signed/unsigned comparison warning - -2012-12-02 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/FilePath.cpp, tests/FilePathTest.cpp: - strip drive letter if it's not set (Windows only) - - * tests/FileSystemTest.cpp, tests/GFReaderTest.cpp: - ensure that tests work properly on Windows - - * src/macros.h: - removed SHOW() from macros.h - - * doc/dvisvgm.txt.in, src/Ghostscript.cpp: - use gsdll64.dll for 64-bit builds; added info about gsdll64.dll to - manpage - -2012-11-24 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/Message.cpp: - don't wrap message lines explicitly on Windows -* * * - -2012-11-23 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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.psc: - print operand stack in case of a PS error - -2012-11-22 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/Message.cpp: - handle wrapping of messages containing newlines correctly - -2012-11-21 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/DLLoader.cpp, src/DLLoader.h, src/Ghostscript.cpp: - renamed DLLoader::loadFunction() to DLLoader::loadSymbol() - -2012-11-19 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 <mgieseki@users.sourceforge.net> - - * src/Directory.h: - undefine macro max() to avoid compilation problems on Windows - -2012-11-15 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/FileFinder.cpp, src/FileFinder.h, src/FontMap.cpp, src/FontMap.h, - tests/FontMapTest.cpp: - 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/FontManager.cpp, src/FontMap.cpp, src/FontMap.h, - tests/FontMapTest.cpp: - adapted code to use new MapLine class; introduced support of map line - modes - -2012-11-14 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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/DVIToSVG.cpp: - prevent compilation error when using a C++11 compiler (patch by Peter - Breitenlohner) - -2012-11-11 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/InputBuffer.cpp, src/InputBuffer.h, src/InputReader.cpp, - src/InputReader.h, src/PsSpecialHandler.cpp, - tests/StreamInputBufferTest.cpp: - some refactorings of class InputReader; added InputReader::find() - -2012-10-24 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/DVIToSVG.cpp, src/DVIToSVG.h, src/dvisvgm.cpp: - don't show warning about disabled PS support in list of special handlers - -2012-09-27 Martin Gieseking <martin.gieseking@uos.de> - - * configure.ac, src/Doxyfile: - set version to 1.0.12 - - * NEWS: - updated NEWS - - * src/options.ggo: - removed deprecated file options.ggo - -2012-09-20 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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-09-19 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.psc: - ignore dvips bop operators that might be present in PS specials - -2012-09-17 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/StreamReader.cpp: - fixed reading invalid number of string characters - -2012-04-17 Martin Gieseking <mgieseki@users.sourceforge.net> - - * doc/Makefile.am: - keep manpage when calling 'make clean' - -2012-04-04 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/DVIToSVGActions.cpp, src/SVGTree.cpp, src/SVGTree.h, - tests/frktest-nf-cmp.svg, tests/frktest-wf-cmp.svg, - tests/sample-nf-cmp.svg, tests/sample-wf-cmp.svg: - scale point units in the SVG files to big points (bp) - -2012-04-02 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/Matrix.cpp, src/Matrix.h, tests/MatrixTest.cpp: - added Matrix::invert() and det() - -2012-03-29 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/Matrix.cpp, src/Matrix.h, tests/MatrixTest.cpp: - added start index parameter to Matrix::set(vector<>) - -2012-03-21 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.psc: - evaluate PS operators rectclip, rectfill, and rectstroke - -2012-03-09 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 - - * NEWS: - updated NEWS - -2012-03-08 Martin Gieseking <martin.gieseking@uos.de> - - * configure.ac, src/Doxyfile: - set version to 1.0.11 - -2012-03-07 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/DVIToSVGActions.cpp: - correct location of a rule's bounding box (lp bug #948713) - -2012-02-24 Martin Gieseking <mgieseki@users.sourceforge.net> - - * doc/dvisvgm.txt.in: - fixed a couple of mistakes and formatting flaws in the manpage - -2012-02-17 Martin Gieseking <mgieseki@users.sourceforge.net> - - * README: - updated information about bug reporting - -2012-01-26 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/CmdLineParserBase.h, src/DVIActions.h, src/DVIReader.h, - src/DVIToSVGActions.h, src/FontEngine.h, src/FontManager.h, - src/MetafontWrapper.h, src/SVGTree.h, src/SpecialActions.h, - src/SpecialHandler.h, src/SpecialManager.h, src/TFM.h, src/VFReader.h: - adapt forward declarations of classes and structs to their corresponding - definition (SF bug #3480013) - -2012-01-16 Martin Gieseking <martin.gieseking@uos.de> - - * src/miktex-core.def, src/miktex-kps.def, src/miktex-kps.h: - removed outdated files for old MiKTeX bindings - -2012-01-09 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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, - src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h, - src/Bitmap.cpp, src/Bitmap.h, src/BoundingBox.cpp, src/BoundingBox.h, - src/CRC32.cpp, src/CRC32.h, src/Calculator.cpp, src/Calculator.h, - src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/Color.cpp, - src/Color.h, src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/CommandLine.cpp, src/CommandLine.h, src/DLLoader.cpp, src/DLLoader.h, - src/DVIActions.cpp, src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, - src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/Directory.cpp, src/Directory.h, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, src/FileFinder.cpp, - src/FileFinder.h, src/FilePath.cpp, src/FilePath.h, src/FileSystem.cpp, - src/FileSystem.h, src/Font.cpp, src/Font.h, src/FontCache.cpp, - src/FontCache.h, src/FontEncoding.cpp, src/FontEncoding.h, - src/FontEngine.cpp, src/FontEngine.h, src/FontManager.cpp, - src/FontManager.h, src/FontMap.cpp, src/FontMap.h, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.h, src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, - src/GFTracer.h, src/Ghostscript.cpp, src/Ghostscript.h, src/Glyph.h, - src/GlyphTracerMessages.h, src/GraphicPath.h, src/InputBuffer.cpp, - src/InputBuffer.h, src/InputReader.cpp, src/InputReader.h, - src/Length.cpp, src/Length.h, src/Makefile.am, src/Matrix.cpp, - src/Matrix.h, src/Message.cpp, src/Message.h, src/MessageException.h, - src/MetafontWrapper.cpp, src/MetafontWrapper.h, src/PSInterpreter.cpp, - src/PSInterpreter.h, src/PageRanges.cpp, src/PageRanges.h, - src/PageSize.cpp, src/PageSize.h, src/Pair.h, src/Process.cpp, - src/Process.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, - src/SVGTree.cpp, src/SVGTree.h, src/SignalHandler.cpp, - src/SignalHandler.h, src/SpecialActions.h, src/SpecialHandler.h, - src/SpecialManager.cpp, src/SpecialManager.h, src/StreamReader.cpp, - src/StreamReader.h, src/StreamWriter.cpp, src/StreamWriter.h, - src/System.cpp, src/System.h, src/TFM.cpp, src/TFM.h, src/Terminal.cpp, - src/Terminal.h, src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h, - src/VFActions.h, src/VFReader.cpp, src/VFReader.h, src/VectorStream.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/macros.h, src/options.dtd, src/options.xml, - src/psdefs.psc, src/types.h, tests/BoundingBoxTest.cpp, - tests/CRC32Test.cpp, tests/CalculatorTest.cpp, - tests/ColorSpecialTest.cpp, tests/CommandLineTest.cpp, - tests/DirectoryTest.cpp, tests/FileFinderTest.cpp, - tests/FilePathTest.cpp, tests/FileSystemTest.cpp, - tests/FontManagerTest.cpp, tests/FontMapTest.cpp, tests/GFReaderTest.cpp, - tests/GraphicPathTest.cpp, tests/LengthTest.cpp, tests/Makefile.am, - tests/MatrixTest.cpp, tests/MessageExceptionTest.cpp, - tests/PSInterpreterTest.cpp, tests/PageRagesTest.cpp, - tests/PageSizeTest.cpp, tests/PairTest.cpp, - tests/SplittedCharInputBufferTest.cpp, tests/StreamInputBufferTest.cpp, - tests/StreamReaderTest.cpp, tests/StreamWriterTest.cpp, - tests/TypesTest.cpp, tests/VectorStreamTest.cpp, tests/check-conv, - tests/create-makefile: - updated year in copyright statements - -2011-12-18 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 - - * NEWS: - updated NEWS - -2011-12-17 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 <mgieseki@users.sourceforge.net> - - * src/GraphicPath.h: - added some more comments to the methods of GraphicPath - -2011-11-18 Martin Gieseking <mgieseki@users.sourceforge.net> - - * configure.ac: - move linker flag -lfreetype from LDFLAGS to LIBS to avoid linking - problems - -2011-10-28 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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> - - * configure.ac, src/Doxyfile: - set version to 1.0.9 - - * NEWS: - updated NEWS - -2011-10-09 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/FilePath.cpp: - added some missing comments to methods of class FilePath - - * src/Directory.h: - dropped method Directory::getEntry() - -2011-10-07 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/Process.cpp: - added missing include <signal.h> to Process.cpp - - * src/Process.cpp: - exclude definition of split_paramstr() from Windows builds as it's not - used there - -2011-10-03 Martin Gieseking <mgieseki@users.sourceforge.net> - - * doc/Makefile.am: - add metadata/pdfmarks to pdf version of manpage - -2011-09-06 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 bundled potrace library to version 1.10 - -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) - -2011-06-01 Martin Gieseking <mgieseki@users.sourceforge.net> - - * configure.ac: - added AC_LANG_SOURCE to avoid autoconf warnings - -2011-05-31 Martin Gieseking <martin.gieseking@uos.de> - - * 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 <mgieseki@users.sourceforge.net> - - * tests/check-conv, tests/sample-nf-cmp.svg, tests/sample-wf-cmp.svg: - updated conversion tests - -2011-05-23 Martin Gieseking <martin.gieseking@uos.de> - - * src/Font.cpp, src/Makefile.am, src/MetafontWrapper.cpp, - src/MetafontWrapper.h, src/Process.cpp, src/Process.h, - src/SignalHandler.cpp: - replaced call of system() with Process::run() and kill child process if - necessary - -2011-05-22 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 <mgieseki@users.sourceforge.net> - - * src/DLLoader.h: - added #undef NOMINMAX before (re)defining it - -2011-05-12 Martin Gieseking <martin.gieseking@uos.de> - - * src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/psdefs.psc, tests/PSInterpreterTest.cpp: - PS handler: implemented evaluation of save, restore, and grestoreall - -2011-05-07 Martin Gieseking <martin.gieseking@uos.de> - - * 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 - - * 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> - - * src/DVIToSVGActions.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, - src/psdefs.psc: - PS handler: added missing unit conversions (pt vs. bp) - - * NEWS, README, configure.ac, src/Doxyfile: - set version to 1.0.7; updated NEWS and README - -2011-05-05 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 - - * doc/dvisvgm.txt.in: - added info about dvips rounding issues to manpage - -2011-05-04 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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/Length.h: - undefine macro IN - -2011-05-03 Martin Gieseking <mgieseki@users.sourceforge.net> - - * configure.ac, src/Doxyfile: - set version to 1.0.7dev - - * src/psdefs.psc: - catch PS error /nocurrentpoint in operator 'setpos' properly - - * src/psdefs.psc: - PS handler: recognize save/restore operators - - * 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, - src/SpecialActions.h, src/SpecialHandler.h, src/SpecialManager.cpp, - src/SpecialManager.h, src/TpicSpecialHandler.cpp, - 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.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 - - * src/DLLoader.cpp, src/DLLoader.h: - don't define min/max macros in windows.h - -2011-04-30 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/SpecialManager.cpp: - register special prefix ps:: properly - -2011-04-18 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/FileFinder.cpp, src/FileFinder.h, src/dvisvgm.cpp, - tests/FileFinderTest.cpp: - dropped class FileFinder::Impl and simplified FileFinder interface - - * 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 - - * NEWS, README, configure.ac, src/Doxyfile: - set version to 1.0.6; updated NEWS and README - -2011-04-14 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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() - -2011-04-13 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/XMLNode.cpp, src/XMLNode.h: - prepended member variables of the XMLNode classes with underscore - -2011-03-15 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/DVIReader.cpp: - throw DVI exception if set_char/put_char is executed without preceding - font selection - -2011-03-04 Martin Gieseking <mgieseki@users.sourceforge.net> - - * configure.ac, 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 - -2011-03-01 Martin Gieseking <mgieseki@users.sourceforge.net> - - * NEWS, configure.ac, src/Doxyfile: - set version to 1.0.5, updated NEWS - -2011-02-28 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 - -2011-02-21 Martin Gieseking <mgieseki@users.sourceforge.net> - - * configure.ac, src/Doxyfile: - set version to 1.0.5dev - - * 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 <mgieseki@users.sourceforge.net> - - * src/InputBuffer.h: - reference to scanned string in StringInputBuffer is constant now - -2011-02-10 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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/FontCache.cpp, src/FontCache.h: - added CRC32 checks to cache files - -2011-01-31 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/CmdLineParserBase.cpp: - print character instead of ascii value in message of command-line parser - -2011-01-30 Martin Gieseking <mgieseki@users.sourceforge.net> - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h, - src/FileFinder.cpp, src/FileFinder.h, src/FontEngine.cpp, - src/FontEngine.h, src/dvisvgm.cpp, src/options.xml: - added optional argument to --version - -2011-01-28 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 bundled potrace library to version 1.9 - -2011-01-17 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/FileSystem.cpp, src/FileSystem.h, tests/FileSystemTest.cpp, - tests/Makefile.am: - added FileSystem::copy and FileSystem::move; added FileSystemTest - - * doc/dvisvgm.txt.in, src/dvisvgm.cpp: - moved cache files to subfolder ($HOME/.dvisvgm/cache) - -2011-01-04 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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, - src/Calculator.cpp, src/Calculator.h, src/CmdLineParserBase.cpp, - src/CmdLineParserBase.h, src/Color.cpp, src/Color.h, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/CommandLine.cpp, src/CommandLine.h, src/DLLoader.cpp, src/DLLoader.h, - src/DVIActions.cpp, src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, - src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/Directory.cpp, src/Directory.h, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, src/FileFinder.cpp, - src/FileFinder.h, src/FilePath.cpp, src/FilePath.h, src/FileSystem.cpp, - src/FileSystem.h, src/Font.cpp, src/Font.h, src/FontCache.cpp, - src/FontCache.h, src/FontEncoding.cpp, src/FontEncoding.h, - src/FontEngine.cpp, src/FontEngine.h, src/FontManager.cpp, - src/FontManager.h, src/FontMap.cpp, src/FontMap.h, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.h, src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, - src/GFTracer.h, src/Ghostscript.cpp, src/Ghostscript.h, src/Glyph.h, - src/GlyphTracerMessages.h, src/GraphicPath.h, src/InputBuffer.cpp, - src/InputBuffer.h, src/InputReader.cpp, src/InputReader.h, - src/Length.cpp, src/Length.h, src/Makefile.am, src/Matrix.cpp, - src/Matrix.h, src/Message.cpp, src/Message.h, src/MessageException.h, - src/MetafontWrapper.cpp, src/MetafontWrapper.h, src/PSInterpreter.cpp, - src/PSInterpreter.h, src/PageRanges.cpp, src/PageRanges.h, - src/PageSize.cpp, src/PageSize.h, src/Pair.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/SVGTree.cpp, src/SVGTree.h, - src/SpecialActions.h, src/SpecialHandler.h, src/SpecialManager.cpp, - src/SpecialManager.h, src/StreamReader.cpp, src/StreamReader.h, - src/StreamWriter.cpp, src/StreamWriter.h, src/System.cpp, src/System.h, - src/TFM.cpp, src/TFM.h, src/Terminal.cpp, src/Terminal.h, - src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h, src/VFActions.h, - src/VFReader.cpp, src/VFReader.h, src/VectorStream.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/macros.h, src/options.dtd, src/options.xml, - src/psdefs.psc, src/types.h, tests/BoundingBoxTest.cpp, - tests/CalculatorTest.cpp, tests/ColorSpecialTest.cpp, - tests/CommandLineTest.cpp, tests/DirectoryTest.cpp, - tests/FileFinderTest.cpp, tests/FilePathTest.cpp, - tests/FontManagerTest.cpp, tests/FontMapTest.cpp, tests/GFReaderTest.cpp, - tests/GraphicPathTest.cpp, tests/LengthTest.cpp, tests/Makefile.am, - tests/MatrixTest.cpp, tests/PageRagesTest.cpp, tests/PageSizeTest.cpp, - tests/PairTest.cpp, tests/SplittedCharInputBufferTest.cpp, - tests/StreamInputBufferTest.cpp, tests/TypesTest.cpp, - tests/VectorStreamTest.cpp, tests/check-conv, tests/create-makefile: - updated year in copyright info - - * tests/Makefile.am, tests/PSInterpreterTest.cpp: - added basic tests for class PSInterpreter - -2010-12-18 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/FileFinder.cpp: - updated to MiKTeX 2.8 SDK - - * src/PsSpecialHandler.cpp: - fixed scaling issue in PS positioning - - * src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/psdefs.psc: - PS handler: added missing scaling of linewidths and dash distances - - * NEWS, configure.ac, src/Doxyfile: - set version to 1.0.4; updated NEWS - - * doc/dvisvgm.txt.in: - minor update to the manpage - -2010-08-18 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/FontEngine.cpp: - fixed FreeType version check (patch by Paul Vojta) - -2010-08-11 Martin Gieseking <mgieseki@users.sourceforge.net> - - * tests/Makefile.am, tests/PairTest.cpp: - added PairTest - -2010-08-06 Martin Gieseking <mgieseki@users.sourceforge.net> - - * configure.ac, src/Doxyfile: - set version to 1.0.3 - -2010-08-05 Martin Gieseking <mgieseki@users.sourceforge.net> - - * NEWS, doc/dvisvgm.txt.in: - updated manpage and NEWS - -2010-08-04 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/BoundingBox.cpp, src/BoundingBox.h, src/Matrix.cpp, src/Matrix.h, - src/PsSpecialHandler.cpp: - revamped PsSpecialHandler::psfile() to fix a transformation issue (SF - bug #3037372) - -2010-07-28 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp: - added check of DVI format version - -2010-07-26 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/PsSpecialHandler.cpp, src/PsSpecialHandler.h: - restore transformation matrix after execution of psfile - -2010-07-13 Martin Gieseking <mgieseki@users.sourceforge.net> - - * configure.ac, src/Doxyfile: - set version to 1.0.3dev - - * src/InputBuffer.h: - added missing namespace prefix - - * src/Terminal.cpp: - replaced \e with \x1B - - * src/GraphicPath.h, src/PsSpecialHandler.h: - fixed missing initialization of GraphicPath iterator - - * src/Directory.cpp, src/Directory.h, src/GFReader.cpp, src/GFReader.h: - added leading underscore to variables of GFReader - -2010-06-22 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/gzstream.cpp, src/gzstream.h: - fixed class variable issue introduced by previous AIX patch - - * NEWS, configure.ac, src/Doxyfile: - set version to 1.0.2 - -2010-06-18 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/Bitmap.cpp, tests/DirectoryTest.cpp, tests/GFReaderTest.cpp, - tests/Makefile.am, tests/cmr10.600gf, tests/create-makefile: - added GFReaderTest; updated DirectoryTest - -2010-06-17 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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, - src/EmSpecialHandler.cpp, src/FontCache.cpp, src/FontEncoding.cpp, - src/GFGlyphTracer.cpp, src/Pair.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/TFM.cpp, src/TFM.h: - fixed some type conversion warnings - - * src/Message.cpp, src/Message.h: - renamed MessageStream::putchar() to MessageStream::putChar() to avoid - name clashes - - * src/types.h, tests/Makefile.am, tests/TypesTest.cpp: - added TypesTest - -2010-06-16 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 <mgieseki@users.sourceforge.net> - - * configure.ac, src/Doxyfile: - set version to 1.0.2dev - - * configure.ac, src/CmdLineParserBase.h, src/FileFinder.h, - src/FontCache.cpp, src/FontCache.h, src/FontEncoding.cpp, - src/FontEngine.cpp, src/GFGlyphTracer.h, src/MetafontWrapper.cpp, - src/gzstream.cpp: - applied latest TL patches from Peter Breitenlohner and Karl Berry - -2010-06-11 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/Message.cpp: - suppress ANSI color code by default - - * NEWS, configure.ac, src/Doxyfile: - set version to 1.0.1 - -2010-06-09 Martin Gieseking <mgieseki@users.sourceforge.net> - - * configure.ac, src/Doxyfile: - set version to 1.0.1dev - - * src/psdefs.psc: - fixed recursion issue in PS operator charpath - -2010-06-08 Martin Gieseking <mgieseki@users.sourceforge.net> - - * configure.ac, doc/Makefile.am, src/Makefile.am: - cleaned up configuration scripts - - * configure.ac, src/Doxyfile: - set version to 1.0dev - - * 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/FilePath.cpp, src/FilePath.h, src/FileSystem.cpp, src/FileSystem.h, - src/Makefile.am, tests/FilePathTest.cpp, tests/Makefile.am: - added class FilePath - - * 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, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Makefile.am, - src/PageRanges.cpp, src/PageRanges.h, src/StreamCounter.h, - src/dvisvgm.cpp, src/options.xml, tests/BoundingBoxTest.cpp, - tests/CommandLineTest.cpp, tests/Makefile.am, tests/PageRagesTest.cpp, - tests/StreamCounterTest.cpp: - added conversion of multiple pages - - * 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/Font.cpp: - print error message if Metafont failed - - * src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/psdefs.psc: - evaluate Ghostscript operator .setopacityalpha - - * src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h: - added method to compute length of DVI command - - * 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, 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 <mgieseki@users.sourceforge.net> - - * configure.ac: - fixed whitespace issue in CPPFLAGS and LDFLAGS - -2010-05-04 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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-23 Martin Gieseking <mgieseki@users.sourceforge.net> - - * NEWS, configure.ac, src/Doxyfile: - set version to 0.9.1 - -2010-04-22 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/CommandLine.cpp, src/options.xml: - output of option --help: replaced '(default: FOO)' by '[FOO]' - - * 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 - - * tests/check-conv, tests/frktest-wf-cmp.svg, tests/sample-wf-cmp.svg: - adapted conversion tests to new output format - -2010-04-20 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/FontEncoding.cpp: - fixed memory bug in FontEncoding::encoding() - -2010-04-11 Martin Gieseking <mgieseki@users.sourceforge.net> - - * configure.ac, src/Doxyfile: - set version to 0.9.1dev - - * src/DVIToSVGActions.cpp: - replaced wrong font pointer that could lead to segfaults - -2010-03-24 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/Font.cpp, src/Font.h, src/dvisvgm.cpp: - moved some methods from PhysicalFontImpl to PysicalFont - - * 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/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/GFGlyphTracer.cpp, src/GFReader.cpp: - variable _fontname is now correctly set in class FontCache - - * NEWS, configure.ac, src/Doxyfile: - set version to 0.9 - - * tests/frktest-nf-cmp.svg, tests/frktest-wf-cmp.svg, - tests/sample-nf-cmp.svg, tests/sample-wf-cmp.svg: - updated conversion tests - -2010-03-18 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/DVIToSVG.cpp, src/SVGTree.cpp: - moved creation of SVG 'use' elements from class DVIToSVG to class - SVGTree - - * 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 - - * 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 - - * 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 <mgieseki@users.sourceforge.net> - - * src/GFReader.cpp, src/GFReader.h: - replaced GFReader messages by exceptions - - * 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: - removed class CharmapTranslator - - * src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, - src/DVIToSVGActions.cpp, src/FontManager.cpp, src/FontManager.h, - src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, src/SVGTree.cpp, - src/SVGTree.h, src/VFReader.h, tests/FontManagerTest.cpp: - made FontManager a singleton - - * 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, src/dvisvgm.cpp, tests/Makefile.am, tests/check-conv, - tests/create-makefile: - removed emitter classes; incorporated their functionality into SVGTree - and PhysicalFontImpl - - * 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 <mgieseki@users.sourceforge.net> - - * src/Font.cpp, src/FontCache.cpp, src/FontCache.h, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.h, src/GFReader.cpp, src/GFReader.h, src/GFTracer.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h: - refactorings of GF tracer class; removed transferGlyph() - -2010-02-21 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/Font.h, src/FontEncoding.cpp, src/FontEncoding.h, - src/FontManager.cpp, src/FontManager.h, src/SVGFontEmitter.cpp: - moved method encoding() from class FontManager to class FontEncoding - - * src/CharmapTranslator.cpp, src/CharmapTranslator.h, src/Font.cpp, - src/Font.h, src/FontCache.cpp, src/FontCache.h, src/FontEngine.cpp, - src/FontEngine.h, src/Glyph.cpp, src/Glyph.h, src/Makefile.am, - src/SVGFontEmitter.cpp, src/SVGFontEmitter.h: - removed class Glyph and incorporated its functionality into Font class - -2010-02-05 Martin Gieseking <mgieseki@users.sourceforge.net> - - * configure.ac, src/Doxyfile: - set version to 0.8.9dev - - * src/psdefs.psc: - removed PS error handler nocurrentpoint - - * src/DVIToSVG.cpp: - added evaluation of literal PS headers to PSHeaderActions - -2010-02-02 Martin Gieseking <mgieseki@users.sourceforge.net> - - * NEWS, configure.ac, src/Doxyfile: - version updated to 0.8.8 - -2010-02-01 Martin Gieseking <mgieseki@users.sourceforge.net> - - * tests/check-conv: - skip conversion checks by default - -2010-01-31 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 - - * tests/normalize.xsl: - some improvements to normalize.xsl - -2010-01-29 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 <mgieseki@users.sourceforge.net> - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h, - src/FontCache.h, src/dvisvgm.cpp, src/options.dtd, src/options.xml: - added command-line option --libgs - -2010-01-18 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/CommandLine.cpp, src/options.dtd, src/options.xml: - added DTD for options.xml - -2010-01-17 Martin Gieseking <mgieseki@users.sourceforge.net> - - * configure.ac: - updated type of kpathsea_version_string (patch by lomov_vl) - - * fedora/dvisvgm-gs.patch, fedora/dvisvgm-potrace.patch, - fedora/dvisvgm.spec: - removed fedora directory - - * 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, - 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/CmdLineParserBase.cpp, - src/CmdLineParserBase.h, src/Color.cpp, src/Color.h, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/CommandLine.cpp, src/CommandLine.h, src/DLLoader.cpp, src/DLLoader.h, - src/DVIActions.cpp, src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, - src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/Directory.cpp, src/Directory.h, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, src/FileFinder.cpp, - src/FileFinder.h, src/FileSystem.cpp, src/FileSystem.h, src/Font.cpp, - src/Font.h, src/FontCache.cpp, src/FontCache.h, src/FontEmitter.h, - src/FontEncoding.cpp, src/FontEncoding.h, src/FontEngine.cpp, - src/FontEngine.h, src/FontManager.cpp, src/FontManager.h, - src/FontMap.cpp, src/FontMap.h, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.h, src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, - src/GFTracer.h, src/Ghostscript.cpp, src/Ghostscript.h, src/Glyph.cpp, - src/Glyph.h, src/GraphicPath.h, src/InputBuffer.cpp, src/InputBuffer.h, - src/InputReader.cpp, src/InputReader.h, src/Length.cpp, src/Length.h, - src/Makefile.am, src/Matrix.cpp, src/Matrix.h, src/Message.cpp, - src/Message.h, src/MessageException.h, src/MetafontWrapper.cpp, - src/MetafontWrapper.h, src/PSInterpreter.cpp, src/PSInterpreter.h, - src/PageSize.cpp, src/PageSize.h, src/Pair.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, src/SVGTree.cpp, - src/SVGTree.h, src/SpecialActions.h, src/SpecialHandler.h, - src/SpecialManager.cpp, src/SpecialManager.h, src/StreamCounter.h, - src/StreamReader.cpp, src/StreamReader.h, src/TFM.cpp, src/TFM.h, - src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h, src/VFActions.h, - src/VFReader.cpp, src/VFReader.h, src/VectorStream.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/macros.h, src/options.xml, src/psdefs.psc, - src/types.h, tests/BoundingBoxTest.cpp, tests/CalculatorTest.cpp, - tests/ColorSpecialTest.cpp, tests/CommandLineTest.cpp, - tests/DirectoryTest.cpp, tests/FileFinderTest.cpp, - tests/FontManagerTest.cpp, tests/FontMapTest.cpp, - tests/GraphicPathTest.cpp, tests/LengthTest.cpp, tests/Makefile.am, - tests/MatrixTest.cpp, tests/PageSizeTest.cpp, - tests/SplittedCharInputBufferTest.cpp, tests/StreamCounterTest.cpp, - tests/StreamInputBufferTest.cpp, tests/VectorStreamTest.cpp, - tests/create-makefile: - updated boilerplates - - * 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 - - * NEWS: - updated NEWS - - * src/Ghostscript.cpp: - fixed typo in variable name - -2009-12-16 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/InputReader.cpp: - fixed bug in InputReader::parseUInt() - -2009-12-15 Martin Gieseking <mgieseki@users.sourceforge.net> - - * configure.ac, src/dvisvgm.cpp: - appied get_time patch sent by Peter Breitenlohner - -2009-12-02 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/BoundingBox.h, src/Calculator.h, src/CharmapTranslator.h, - src/DVIReader.h, src/DVIToSVG.h, src/DVIToSVGActions.h, src/Font.h, - src/FontEngine.h, src/FontManager.h, src/FontMap.h, src/GFGlyphTracer.h, - src/GFReader.h, src/MessageException.h, src/MetafontWrapper.h, - src/PageSize.h, src/SVGTree.cpp, src/SVGTree.h, src/StreamReader.h, - src/VFActions.h, src/VFReader.h, src/XMLDocTypeNode.h, src/XMLDocument.h, - src/XMLNode.h, src/XMLString.h: - removed using statements from header files - -2009-11-25 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/FontCache.cpp, src/FontCache.h, src/FontEngine.cpp, - src/FontEngine.h, src/FontGlyph.cpp, src/FontGlyph.h, - src/GFGlyphTracer.cpp, src/GFGlyphTracer.h, src/GFTracer.cpp, - src/Glyph.cpp, src/Glyph.h, src/GraphicPath.h, src/Makefile.am, - src/Pair.h, src/SVGFontEmitter.cpp, src/SVGFontTraceEmitter.cpp, - tests/GraphicPathTest.cpp: - removed FEGlyphCommands and replaced separate glyph class implementation - by class GraphicPath - -2009-11-18 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/DVIToSVG.cpp, src/Ghostscript.cpp, src/Ghostscript.h: - replaced #if !DISABLE_GS by #if !defined(DISABLE_GS) (Peter - Breitenlohner) - - * src/Ghostscript.cpp, src/Ghostscript.h: - replaced #if HAVE_LIBGS by #if defined(HAVE_LIBGS) - - * src/DLLoader.cpp, src/DLLoader.h: - fixed line endings - -2009-11-17 Martin Gieseking <mgieseki@users.sourceforge.net> - - * configure.ac, fedora/dvisvgm.spec, src/Doxyfile: - set version number to 0.8.8dev - - * 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) - - * src/InputReader.cpp: - added missing initialization value (Peter Breitenlohner) - - * 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-09 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 - - * configure.ac, fedora/dvisvgm.spec, src/Doxyfile: - set version to 0.8.7 - -2009-11-06 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/GraphicPath.h, src/PsSpecialHandler.cpp: - PS handler: replace zero-length paths by dots - - * NEWS, doc/dvisvgm.txt.in: - updated NEWS and manpage - - * NEWS, src/PsSpecialHandler.cpp: - fixed path scaling issue in PS handler - -2009-10-29 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/DVIToSVGActions.cpp, src/Font.cpp, src/Font.h: - fixed positioning of italic characters - -2009-10-25 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/DvisvgmSpecialHandler.cpp: - added macro {?nl} to dvisvgm:raw evaluator - -2009-10-18 Martin Gieseking <mgieseki@users.sourceforge.net> - - * src/Font.cpp, src/TFM.cpp, src/TFM.h: - added italic correction values to character widths - -2009-10-16 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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 <mgieseki@users.sourceforge.net> - - * 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, - tests/DirectoryTest.cpp, tests/DirectoryTest.h, tests/FileFinderTest.cpp, - tests/FileFinderTest.h, tests/FontManagerTest.cpp, - tests/FontManagerTest.h, tests/FontMapTest.cpp, tests/FontMapTest.h, - tests/GraphicPathTest.cpp, tests/GraphicPathTest.h, tests/LengthTest.cpp, - tests/LengthTest.h, tests/Makefile.am, tests/MatrixTest.cpp, - tests/MatrixTest.h, tests/PageSizeTest.cpp, tests/PageSizeTest.h, - tests/SplittedCharInputBufferTest.cpp, - tests/SplittedCharInputBufferTest.h, tests/StreamCounterTest.cpp, - tests/StreamCounterTest.h, tests/StreamInputBufferTest.cpp, - tests/StreamInputBufferTest.h, tests/VectorStreamTest.cpp, - tests/VectorStreamTest.h: - replaced cxxtest by googletest - -2009-10-12 Martin Gieseking <mgieseki@users.sourceforge.net> - - * 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, - src/CharmapTranslator.h, src/CmdLineParserBase.cpp, - src/CmdLineParserBase.h, src/Color.cpp, src/Color.h, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, src/DLLoader.cpp, - src/DLLoader.h, src/DVIActions.cpp, src/DVIActions.h, src/DVIReader.cpp, - src/DVIReader.h, src/DVIToSVG.h, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/Directory.cpp, src/Directory.h, - src/DvisvgmSpecialHandler.h, src/EmSpecialHandler.cpp, - src/EmSpecialHandler.h, src/FileFinder.cpp, src/FileFinder.h, - src/FileSystem.cpp, src/FileSystem.h, src/Font.cpp, src/Font.h, - src/FontCache.cpp, src/FontCache.h, src/FontEmitter.h, - src/FontEncoding.cpp, src/FontEncoding.h, src/FontEngine.cpp, - src/FontEngine.h, src/FontGlyph.cpp, src/FontGlyph.h, - src/FontManager.cpp, src/FontManager.h, src/FontMap.cpp, src/FontMap.h, - src/GFGlyphTracer.cpp, src/GFGlyphTracer.h, src/GFReader.cpp, - src/GFReader.h, src/GFTracer.cpp, src/GFTracer.h, src/Ghostscript.cpp, - src/Ghostscript.h, src/GraphicPath.h, src/InputBuffer.cpp, - src/InputBuffer.h, src/InputReader.cpp, src/InputReader.h, - src/Matrix.cpp, src/Matrix.h, src/Message.cpp, src/Message.h, - src/MessageException.h, src/MetafontWrapper.cpp, src/MetafontWrapper.h, - src/PSInterpreter.cpp, src/PSInterpreter.h, src/PageSize.cpp, - src/PageSize.h, src/Pair.h, src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, - src/SpecialActions.h, src/SpecialHandler.h, src/SpecialManager.cpp, - src/SpecialManager.h, src/StreamCounter.h, src/StreamReader.cpp, - src/StreamReader.h, src/TFM.cpp, src/TFM.h, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.h, src/VFActions.h, src/VFReader.cpp, - src/VFReader.h, src/VectorStream.h, src/XMLDocTypeNode.h, - src/XMLDocument.cpp, src/XMLDocument.h, src/XMLNode.cpp, src/XMLNode.h, - src/XMLString.cpp, src/XMLString.h, src/macros.h, src/types.h: - code cleanup - -2009-10-11 Martin Gieseking <mgieseki@users.sourceforge.net> - - * autogen.sh: - fixed file permissions of autogen.sh - - * src/DVIToSVG.cpp, src/DvisvgmSpecialHandler.cpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/SVGTree.cpp, - src/SVGTree.h: - suppress empty style and transformation elements - - * NEWS: - NEWS updated - -2009-10-10 Martin Gieseking <martin.gieseking@uos.de> - - * src/PsSpecialHandler.cpp: - scale clipping paths by 72.27/72 - -2009-10-09 Martin Gieseking <martin.gieseking@uos.de> - - * src/Bitmap.h: - fixed bit shift overflow in Bitmap class occured on 64-bit systems - - * autogen.sh, prepare: - prepare script replaced by autogen.sh - - * doc/dvisvgm.txt.in: - fixed formatting of manual page - - * src/Length.cpp, src/Length.h, tests/LengthTest.h: - fixed unit conversion bug - - * src/Makefile.am: - fixed Makefile - -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, - src/options.xml, tests/CommandLineTest.h, tests/Makefile.am: - cmdline parameter --bbox can now be used to set the absolute bounding - box - - * NEWS, src/GraphicPath.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h: - PS clipping path sequences and intersections are now handled correctly - - * 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' - - * src/BoundingBox.cpp, src/BoundingBox.h, src/Length.cpp, src/Length.h, - src/Makefile.am, tests/LengthTest.h: - class Length provides length unit calculations - -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, - src/PsSpecialHandler.h, src/psdefs.psc: - fixed some PS bounding box and positioning issues introduced by previous - changesets - - * NEWS, configure.ac, fedora/dvisvgm.spec, src/Doxyfile: - set version to 0.8.6 - -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: - corrected positioning bug introduced with previous PS positioning fix - -2009-10-02 Martin Gieseking <martin.gieseking@uos.de> - - * doc/Makefile.am, doc/dvisvgm.txt.in: - generate pdf manpage directly with groff; adapted manpage source to work - with latest asciidoc - -2009-10-01 Martin Gieseking <martin.gieseking@uos.de> - - * doc/Makefile.am, doc/dvisvgm.txt.in: - replaced backticks in manpage by apostrophes; updated date on homepage - -2009-09-30 Martin Gieseking <martin.gieseking@uos.de> - - * src/DvisvgmSpecialHandler.cpp: - added optional depth parameter to special dvisvgm:raw - - * 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 - - * 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> - - * 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 - - * 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> - - * 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) - - * src/FileSystem.cpp, src/MetafontWrapper.cpp: - Windows: Metafont is now called via CreateProcess() - -2009-09-10 Martin Gieseking <martin.gieseking@uos.de> - - * src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, src/DVIToSVG.cpp, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/SpecialHandler.h, - src/SpecialManager.cpp, src/TpicSpecialHandler.cpp, - 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: - updated NEWS and README - -2009-09-04 Martin Gieseking <martin.gieseking@uos.de> - - * 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) - - * 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> - - * src/PsSpecialHandler.cpp, src/psdefs.psc: - fixed flattened clipping path bug (issue #11) - -2009-08-31 Martin Gieseking <martin.gieseking@uos.de> - - * src/Makefile.am: - added error checks; disallow numeric optional arguments w/o default - value - -2009-08-28 Martin Gieseking <martin.gieseking@uos.de> - - * NEWS, src/PSInterpreter.cpp, src/PsSpecialHandler.cpp, src/dvisvgm.cpp, - src/psdefs.psc: - added evaluation of PS 'show' operator in order to evaluate PSTricks - Type 3 fonts properly - - * fedora/dvisvgm.spec: - updated spec file and homepage to latest release - -2009-08-27 Martin Gieseking <martin.gieseking@uos.de> - - * NEWS, configure.ac, doc/dvisvgm.txt.in, src/CmdLineParserBase.cpp, - src/CommandLine.cpp, src/Doxyfile, src/dvisvgm.cpp, src/getopt.c, - src/getopt.h, src/getopt1.c, src/options.xml: - replaced option --cache=? by --cache; increased version number to 0.8.3 - -2009-08-26 Martin Gieseking <martin.gieseking@uos.de> - - * 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 - - * 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> - - * src/CommandLine.cpp, src/CommandLine.h: - speed up printing help by using puts() instead of C++ streams - -2009-08-21 Martin Gieseking <martin.gieseking@uos.de> - - * 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 - - * 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> - - * 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/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, - src/Calculator.cpp, src/Calculator.h, src/CharmapTranslator.cpp, - src/CharmapTranslator.h, src/Color.cpp, src/Color.h, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, src/DLLoader.cpp, - src/DLLoader.h, src/DVIActions.cpp, src/DVIActions.h, src/DVIReader.cpp, - src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Directory.cpp, - src/Directory.h, src/DvisvgmSpecialHandler.cpp, - src/DvisvgmSpecialHandler.h, src/EmSpecialHandler.cpp, - src/EmSpecialHandler.h, src/FileFinder.cpp, src/FileFinder.h, - src/FileSystem.cpp, src/FileSystem.h, src/Font.cpp, src/Font.h, - src/FontCache.cpp, src/FontCache.h, src/FontEmitter.h, - src/FontEncoding.cpp, src/FontEncoding.h, src/FontEngine.cpp, - src/FontEngine.h, src/FontGlyph.cpp, src/FontGlyph.h, - src/FontManager.cpp, src/FontManager.h, src/FontMap.cpp, src/FontMap.h, - src/GFGlyphTracer.cpp, src/GFGlyphTracer.h, src/GFReader.cpp, - src/GFReader.h, src/GFTracer.cpp, src/GFTracer.h, src/Ghostscript.cpp, - src/Ghostscript.h, src/GraphicPath.h, src/InputBuffer.cpp, - src/InputBuffer.h, src/InputReader.cpp, src/InputReader.h, - src/Matrix.cpp, src/Matrix.h, src/Message.cpp, src/Message.h, - src/MessageException.h, src/MetafontWrapper.cpp, src/MetafontWrapper.h, - src/PSInterpreter.cpp, src/PSInterpreter.h, src/PageSize.cpp, - src/PageSize.h, src/Pair.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, src/SVGTree.cpp, - src/SVGTree.h, src/SpecialActions.h, src/SpecialHandler.h, - src/SpecialManager.cpp, src/SpecialManager.h, src/StreamCounter.h, - src/StreamReader.cpp, src/StreamReader.h, src/TFM.cpp, src/TFM.h, - src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h, src/VFActions.h, - src/VFReader.cpp, src/VFReader.h, src/VectorStream.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/inttypes.h, src/macros.h, src/psdefs.psc, - src/types.h, tests/CalculatorTest.h, tests/ColorSpecialTest.h, - tests/DirectoryTest.h, tests/FileFinderTest.h, tests/FontManagerTest.h, - tests/FontMapTest.h, tests/GraphicPathTest.h, tests/MatrixTest.h, - tests/PageSizeTest.h, tests/SplittedCharInputBufferTest.h, - tests/StreamCounterTest.h, tests/StreamInputBufferTest.h, - tests/VectorStreamTest.h: - changed license to GPL version 3 or later - -2009-08-10 Martin Gieseking <martin.gieseking@uos.de> - - * fedora/dvisvgm-0.8.1-potrace.patch, fedora/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, - src/tests/FileFinderTest.h, src/tests/FontManagerTest.h, - src/tests/FontMapTest.h, src/tests/GraphicPathTest.h, - src/tests/MatrixTest.h, src/tests/PageSizeTest.h, - src/tests/SplittedCharInputBufferTest.h, src/tests/StreamCounterTest.h, - src/tests/StreamInputBufferTest.h, src/tests/VectorStreamTest.h, - src/tests/dvipdfm_test.map, src/tests/dvips_test.map, - tests/CalculatorTest.h, tests/ColorSpecialTest.h, tests/DirectoryTest.h, - tests/FileFinderTest.h, tests/FontManagerTest.h, tests/FontMapTest.h, - tests/GraphicPathTest.h, tests/Makefile.am, tests/MatrixTest.h, - tests/PageSizeTest.h, tests/SplittedCharInputBufferTest.h, - tests/StreamCounterTest.h, tests/StreamInputBufferTest.h, - tests/VectorStreamTest.h, tests/dvipdfm_test.map, tests/dvips_test.map: - moved tests from src/tests to ./tests - - * tests/Makefile.am: - added generated file test-all.cpp to CLEANFILES - -2009-08-02 Martin Gieseking <martin.gieseking@uos.de> - - * LICENSE, Makefile.am, src/Ghostscript.cpp: - modified package to be compatible with prerequisites of Fedora - -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 - -2009-07-29 Martin Gieseking <martin.gieseking@uos.de> - - * src/psdefs.psc: - added vim tag to psdefs.psc - -2009-07-28 Martin Gieseking <martin.gieseking@uos.de> - - * 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 - - * 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/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/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> - - * src/PSInterpreter.cpp: - some clean-ups - -2009-07-22 Martin Gieseking <martin.gieseking@uos.de> - - * NEWS, README, doc/dvisvgm.txt.in, src/BoundingBox.cpp, - src/BoundingBox.h, src/GraphicPath.h, src/PSInterpreter.cpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h: - fixed clipping bug; updated homepage, README, NEWS - - * src/TpicSpecialHandler.cpp: - fixed reintroduced bug in TPIC handler - -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/tests/StreamInputBufferTest.h: - implemented psfile special; fixed some bugs - - * src/PsSpecialHandler.cpp, src/SVGTree.cpp: - fixed bbox bug; added missing file - -2009-07-19 Martin Gieseking <martin.gieseking@uos.de> - - * configure.ac, doc/dvisvgm.txt.in, src/BoundingBox.cpp, - src/BoundingBox.h, src/Color.cpp, src/Color.h, src/DLLoader.cpp, - src/DLLoader.h, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Doxyfile, - src/DvisvgmSpecialHandler.cpp, src/EmSpecialHandler.cpp, - src/FileFinder.cpp, src/FontEncoding.cpp, src/Ghostscript.cpp, - src/Ghostscript.h, src/GraphicPath.h, src/InputBuffer.cpp, - src/InputBuffer.h, src/InputReader.cpp, src/InputReader.h, - src/Makefile.am, src/Matrix.cpp, src/Matrix.h, src/PSInterpreter.cpp, - src/PSInterpreter.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, - src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, src/SVGTree.h, - src/SpecialActions.h, src/TpicSpecialHandler.cpp, - src/TransformationMatrix.cpp, src/TransformationMatrix.h, - src/XMLDocument.cpp, src/XMLDocument.h, src/XMLNode.cpp, src/XMLNode.h, - src/iapi.h, src/ierrors.h, src/tests/GraphicPathTest.h, - src/tests/MatrixTest.h, src/tests/SplittedCharInputBufferTest.h, - src/tests/StreamInputBufferTest.h: - transplanted PS functionality to default branch - -2009-06-01 Martin Gieseking <martin.gieseking@uos.de> - - * src/GFReader.cpp, src/GFReader.h: - removed error method, use Message::estream instead - - * src/InputBuffer.cpp, src/InputBuffer.h, src/Makefile.am: - transplanted changes to InputBuffer from branch 'pages' - - * src/Bitmap.cpp, src/Bitmap.h: - transplanted changes to Bitmap 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/VFReader.cpp: - transplanted changes to VFReader from branch 'pages' - - * src/GFTracer.cpp: - transplanted changes to GFTracer 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/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/FontCache.h: - increased version of font cache files to ensure their recreation due to - the previously fixed shorthand path command bug - -2009-04-23 Martin Gieseking <martin.gieseking@uos.de> - - * src/FontGlyph.cpp: - fixed bug in computation of shorthand path command - -2009-04-06 Martin Gieseking <martin.gieseking@uos.de> - - * src/FontMap.cpp: - fixed bug in FontMap that causes a segfault if extension in given font - file is missing (reported by Armin Geisse) - -2009-04-02 Martin Gieseking <martin.gieseking@uos.de> - - * configure.ac, doc/dvisvgm.txt.in, src/MetafontWrapper.cpp, - src/dvisvgm.cpp: - prepared release 0.7.2 (removed inclusions of debug.h, adapted homepage - and manpage) - -2009-03-31 Martin Gieseking <martin.gieseking@uos.de> - - * src/MetafontWrapper.cpp, src/MetafontWrapper.h: - ported fix in MetafontWrapper back to default branch - -2009-03-25 Martin Gieseking <martin.gieseking@uos.de> - - * 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 - - * src/SVGFontTraceEmitter.cpp: - fixed closing bracket "bug" when writing the currently traced character - to the terminal - -2009-03-24 Martin Gieseking <martin.gieseking@uos.de> - - * 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() - - * src/FontGlyph.cpp: - fixed memory bug in Glyph::optimizeCommands() - -2009-03-20 Martin Gieseking <martin.gieseking@uos.de> - - * src/FontCache.cpp: - cache files are being compressed now to reduce the file size - -2009-03-19 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - src/options.ggo: - 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 - -2009-03-17 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - src/FileSystem.cpp, src/FileSystem.h, src/FontCache.cpp, src/FontCache.h, - src/FontGlyph.cpp, src/FontGlyph.h, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.h, src/GFTracer.cpp, src/options.ggo: - first additions to support font caching; not working yet - -2009-03-11 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/FontEmitter.h, src/SVGFontEmitter.cpp, - src/SVGFontEmitter.h, src/SVGFontTraceEmitter.cpp, - src/SVGFontTraceEmitter.h: - improved font embedding algorithm in case of --no-fonts (identical - glyphs in different sizes are now referenced rather than duplicated) - -2009-03-10 Martin Gieseking <martin.gieseking@uos.de> - - * NEWS, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, src/Font.h, - src/SVGFontEmitter.cpp, src/SVGFontTraceEmitter.cpp: - all glyph sizes are now computed correctly in conjuction with option - --no-fonts - -2009-03-09 Martin Gieseking <martin.gieseking@uos.de> - - * 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/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> - - * 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 arc drawing of tpic special set - - * src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h: - implemented splines of tpic specials - -2009-03-03 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/EmSpecialHandler.cpp, - src/Makefile.am, src/SpecialActions.h, src/SpecialHandler.h, - src/TpicSpecialHandler.cpp: - improved computation of the bounding box (works with specials now); - added dummy function for background color assignments - - * 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/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, - src/DvisvgmSpecialHandler.cpp, src/EmSpecialHandler.cpp, - src/SpecialActions.h, src/TpicSpecialHandler.cpp: - renamed appendInPage() to appendToPage - -2009-02-24 Martin Gieseking <martin.gieseking@uos.de> - - * src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/DVIToSVGActions.cpp, src/DvisvgmSpecialHandler.cpp, - src/DvisvgmSpecialHandler.h, src/EmSpecialHandler.cpp, - src/EmSpecialHandler.h, src/Makefile.am, src/SpecialColorHandler.cpp, - src/SpecialColorHandler.h, src/SpecialDvisvgmHandler.cpp, - src/SpecialDvisvgmHandler.h, src/SpecialEmHandler.cpp, - src/SpecialEmHandler.h, src/SpecialHandler.h, src/SpecialHtmlHandler.h, - src/SpecialManager.cpp, src/SpecialManager.h, - 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, - src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp, src/FontEmitter.h, src/FontEngine.cpp, - src/FontEngine.h, src/FontGlyph.cpp, src/FontGlyph.h, - src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, src/XMLNode.cpp, - src/XMLNode.h, src/dvisvgm.cpp, src/options.ggo, - src/tests/ColorSpecialTest.h: - added option --no-fonts wich uses path elements instead of fonts - -2009-02-20 Martin Gieseking <martin.gieseking@uos.de> - - * NEWS, doc/dvisvgm.1.in, src/Color.cpp, src/Color.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Makefile.am, - src/SpecialActions.h, src/SpecialColorHandler.cpp, - src/SpecialDvisvgmHandler.cpp, src/SpecialDvisvgmHandler.h, - src/SpecialEmHandler.cpp, src/SpecialEmHandler.h, - src/SpecialHtmlHandler.h, src/VerbSpecialHandler.cpp, - src/VerbSpecialHandler.h: - fixed bug in color handler, added skeletons of dvisvgm/hyperref special - handlers - -2009-02-18 Martin Gieseking <martin.gieseking@uos.de> - - * 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: - made DVICommand local to executeCommand, removed unnecessary if - statement - -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: - 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: - prepared release of version 0.7 - -2009-02-13 Martin Gieseking <martin.gieseking@uos.de> - - * Makefile.am, configure.ac, src/tests/DirectoryTest.h: - removed rpm support - - * prepare: - added 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, - src/SpecialManager.h: - color specials are now processed by DVIToSVGActions, but don't create - any results yet - - * prepare: - updated administrative files - - * src/ColorSpecialHandler.cpp, src/Makefile.am, - src/tests/ColorSpecialTest.h: - added tests for ColorSpecialHandler - -2009-02-12 martin@xps <martin@xps> - - * src/inttypes.h: - added rudimentary files for writing of SWF files; not ready yet - -2009-02-10 Martin Gieseking <martin.gieseking@uos.de> - - * src/Color.h, src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/Makefile.am: - replaced RGB arrays by Color class - -2009-02-09 Martin Gieseking <martin.gieseking@uos.de> - - * src/TransformationMatrix.cpp: - made y-coordinate of cmdline-option -t optional - -2009-02-06 Martin Gieseking <martin.gieseking@uos.de> - - * 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/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/DVIToSVGActions.cpp: - replaced special ignore list evaluation algorithm - -2009-02-04 Martin Gieseking <martin.gieseking@uos.de> - - * src/FileFinder.cpp: - added option for additional loading of user maps - - * src/FontMap.cpp: - added output of font encoding in write method - -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> - - * 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 - - * src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h: - some refactorings in color handler - -2009-01-30 Martin Gieseking <martin.gieseking@uos.de> - - * 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: - adapted Windows version to new release - -2009-01-28 Martin Gieseking <martin.gieseking@uos.de> - - * 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/dvisvgm.cpp: - use new initialisation of FileFinder - - * 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/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/FileFinder.cpp, src/FontMap.cpp, src/FontMap.h, - src/tests/FontMapTest.h, src/tests/dvips_test.map: - FontMap now supports dvips and dvipdfm maps - - * 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> - - * src/GFGlyphTracer.cpp, src/GFGlyphTracer.h, src/GFTracer.cpp, - src/GFTracer.h, src/Makefile.am, src/SVGFontTraceEmitter.cpp, - src/SVGFontTraceEmitter.h: - made GFTracer a generic class with template methods - -2009-01-26 Martin Gieseking <martin.gieseking@uos.de> - - * 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/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, - src/FontManager.cpp, src/KPSFileFinder.cpp, src/KPSFileFinder.h, - src/Makefile.am, src/MetafontWrapper.cpp, src/TFM.cpp, src/dvisvgm.cpp: - renamed KPSFileFinder to FileFinder - - * src/FontMap.cpp: - basic dvips font map support, not complete yet - -2009-01-23 Martin Gieseking <martin.gieseking@uos.de> - - * doc/Makefile.am, doc/dvisvgm.1.in: - manpage updates - -2009-01-22 Martin Gieseking <martin.gieseking@uos.de> - - * 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, 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.cpp, - src/DVIActions.h, src/DVIBBoxActions.h, src/DVIReader.cpp, - src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Directory.cpp, - src/Directory.h, src/FileFinder.cpp, src/FileFinder.h, - src/FileSystem.cpp, src/FileSystem.h, src/Font.cpp, src/Font.h, - src/FontEmitter.h, src/FontEncoding.cpp, src/FontEncoding.h, - src/FontEngine.cpp, src/FontEngine.h, src/FontGlyph.cpp, src/FontGlyph.h, - src/FontManager.cpp, src/FontManager.h, src/FontMap.cpp, src/FontMap.h, - src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, src/GFTracer.h, - src/InputBuffer.cpp, src/InputBuffer.h, src/KPSFileFinder.cpp, - src/KPSFileFinder.h, src/Makefile.am, src/Matrix.cpp, src/Matrix.h, - src/Message.cpp, src/Message.h, src/MessageException.h, - src/MetafontWrapper.cpp, src/MetafontWrapper.h, src/PSInterpreter.cpp, - src/PSInterpreter.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/StreamReader.cpp, src/StreamReader.h, - src/TFM.cpp, src/TFM.h, src/TransformationMatrix.cpp, - src/TransformationMatrix.h, src/VFActions.h, src/VFReader.cpp, - src/VFReader.h, src/VectorStream.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/macros.h, - src/options.ggo, src/types.h: - updated file header comments - - * 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, - src/MetafontWrapper.cpp, src/PageSize.cpp, src/StreamReader.cpp, - src/TFM.cpp, src/TransformationMatrix.cpp, src/VFReader.cpp, - src/XMLDocument.cpp, src/XMLNode.cpp: - added in/out attributes to parameter documentation - -2009-01-20 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - src/FontManager.h, src/InputBuffer.cpp, src/InputBuffer.h, - src/SVGFontEmitter.cpp, src/SVGFontEmitter.h: - first working version with font encoding support - - * src/FontEngine.cpp, src/FontEngine.h, src/SVGFontEmitter.cpp: - fixed glyph positioning bug occured in conjunction with font encoding - - * 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, - src/FontMap.cpp, src/FontMap.h, src/KPSFileFinder.cpp, - 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: - fixed bug in argument assignment of transformation command M - -2009-01-15 Martin Gieseking <martin.gieseking@uos.de> - - * src/TransformationMatrix.cpp: - removed a dangerous loop remained from previous code - -2009-01-14 Martin Gieseking <martin.gieseking@uos.de> - - * 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/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/dvisvgm.cpp: - updated copyright string - - * src/KPSFileFinder.cpp: - added enc-file support - -2009-01-13 Martin Gieseking <martin.gieseking@uos.de> - - * src/CharmapTranslator.cpp: - fixed crash on loading corrupt pfb-files - -2008-06-18 Martin Gieseking <martin.gieseking@uos.de> - - * src/Makefile.am: - adapted to latest gengetopt version - -2008-04-07 Martin Gieseking <martin.gieseking@uos.de> - - * src/Makefile.am: - added missing include path - - * src/DVIReader.cpp: - minor change - -2007-03-26 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - src/FontManager.cpp, src/Makefile.am, src/SVGFontTraceEmitter.cpp, - src/SVGFontTraceEmitter.h: - redesigned DVIActions and CharmapTranslator - - * src/DVIActions.cpp, src/DVIReader.cpp, src/DVIReader.h, - src/FontManager.cpp, src/tests/FontManagerTest.h: - few minor changes - -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, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Font.cpp, src/Font.h, - src/FontManager.cpp, src/FontManager.h, src/StreamReader.cpp, - src/StreamReader.h, src/VFActions.h, src/VFReader.cpp, src/VFReader.h, - 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, - src/KPSFileFinder.cpp, src/KPSFileFinder.h, src/VFReader.cpp: - more vf implementations, not complete yet - -2007-03-22 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - src/dvisvgm.cpp, src/tests/DirectoryTest.h, src/tests/FontManagerTest.h: - reintegrated font map initialization into KPSFileFinderm adapted some - tests - - * src/DVIReader.cpp, src/Font.cpp, src/Font.h, src/FontManager.cpp, - src/VFActions.h, src/VFReader.cpp, src/VFReader.h: - more vf implementations - -2007-03-21 Martin Gieseking <martin.gieseking@uos.de> - - * AUTHORS, Makefile.am, README, potracelib/Makefile.am, 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, - src/MetafontWrapper.cpp, src/VFReader.cpp, src/VectorStream.h, - src/test-all.cpp, src/tests/VectorStreamTest.h: - removed redundant code and commented code fragments, added - VectorInputStream class - - * 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 - - * src/KPSFileFinder.cpp, src/KPSFileFinder.h, src/dvisvgm.cpp: - implemented options -n and -m - -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, - src/FontManager.cpp, src/KPSFileFinder.cpp, src/Makefile, - src/Makefile.am, src/Makefile.in, src/VFReader.cpp, src/dvisvgm.cpp, - src/test-all.cpp, src/tests/KPSFileFinderTest.h: - added KPSFileFinderTest, added EmptyFont, fixed compilation error - - * 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-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, - src/FontMap.h, src/KPSFileFinder.cpp, src/Makefile, src/Makefile.am, - src/Makefile.in, src/StreamReader.cpp, src/TFM.cpp, src/options.ggo, - src/tests/FontMapTest.h: - more coding in the font department, not finished yet - -2007-03-09 Martin Gieseking <martin.gieseking@uos.de> - - * src/CharmapTranslator.cpp, src/CharmapTranslator.h, src/DVIReader.cpp, - src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, src/Font.cpp, - src/FontManager.cpp, src/GFTracer.cpp, src/KPSFileFinder.cpp, - src/KPSFileFinder.h, src/Makefile, src/Makefile.am, src/Makefile.in, - src/MetafontWrapper.cpp, src/MetafontWrapper.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, - src/StreamReader.cpp, src/StreamReader.h, src/TFM.cpp, src/TFM.h, - src/VFReader.cpp, src/VFReader.h, src/dvisvgm.cpp, src/options.ggo, - src/test-all.cpp: - refactorings: extracted StreamReader class, replaced generic FileFinder - support by KPSFileFinder calls - -2007-03-08 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - config.status, config.sub, configure.ac, depcomp, doc/Makefile, - doc/dvisvgm.1, doc/dvisvgm.1.in, gpl.txt, install-sh, missing, - src/FontManager.cpp, src/FontManager.h, src/Makefile.am, - src/VFReader.cpp, src/tests/FontManagerTest.h, stamp-h1, table.txt: - removed some garbage from the repository, added initial FontManagerTest - - * doc/dvisvgm.1, src/FontEngine.h, src/dvisvgm.cpp, - src/tests/FontManagerTest.h: - minor changes - - * src/DVIBBoxReader.cpp, src/DVIBBoxReader.h, src/Font.cpp, src/Font.h, - 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/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> - - * src/Font.cpp, src/Font.h: - added Font classes (not yet error-free) - -2007-03-06 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIReader.h, src/DVIToSVG.cpp, src/FontManager.cpp, - src/FontManager.h: - added FontManager skeleton, fixed bug in makehead - -2007-03-03 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIReader.cpp, src/FontManager.cpp, src/VFReader.cpp: - added some more skeleton code - -2007-03-02 Martin Gieseking <martin.gieseking@uos.de> - - * src/DVIReader.cpp, src/Makefile, src/Makefile.in, src/VFReader.cpp, - src/VFReader.h, src/options.ggo: - added skeleton of VFReader - -2007-01-10 Martin Gieseking <martin.gieseking@uos.de> - - * 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/FontMap.cpp, src/FontMap.h, - src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, src/GFTracer.h, - src/KPSFileFinder.cpp, src/KPSFileFinder.h, src/Makefile, - src/Makefile.am, src/Makefile.in, src/Matrix.cpp, src/Matrix.h, - src/Message.cpp, src/Message.h, src/MessageException.h, - src/MetafontWrapper.cpp, src/MetafontWrapper.h, src/PSInterpreter.cpp, - src/PSInterpreter.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/cmdline.c, src/cmdline.h, src/dvisvgm.cpp, src/getopt.c, - src/getopt.h, src/getopt1.c, src/gzstream.cpp, src/gzstream.h, - src/macros.h, src/miktex-core.def, src/miktex-kps.def, src/miktex-kps.h, - src/options.ggo, src/test-all.cpp, src/tests/CalculatorTest.h, - src/tests/PageSizeTest.h, src/tests/StreamCounterTest.h, src/types.h: - moved dir - - * 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, - gzstream/gzstream.cpp, gzstream/gzstream.h, gzstream/index.html, - gzstream/logo.gif, gzstream/test_gunzip.C, gzstream/test_gzip.C, - gzstream/version, map/cork-lm.map, 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: - moved sources - - * src/cmdline.c, src/cmdline.h: - remove unnecessary files - -2007-01-09 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - gzstream/gzstream.cpp, gzstream/gzstream.h, gzstream/index.html, - gzstream/logo.gif, gzstream/test_gunzip.C, gzstream/test_gzip.C, - gzstream/version, 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, 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/FontMap.cpp, src/FontMap.h, src/GFReader.cpp, src/GFReader.h, - src/GFTracer.cpp, src/GFTracer.h, src/KPSFileFinder.cpp, - src/KPSFileFinder.h, src/Makefile, src/Makefile.am, src/Makefile.in, - src/Matrix.cpp, src/Matrix.h, src/Message.cpp, src/Message.h, - src/MessageException.h, src/MetafontWrapper.cpp, src/MetafontWrapper.h, - src/PSInterpreter.cpp, src/PSInterpreter.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/cmdline.c, src/cmdline.h, src/dvisvgm.cpp, src/getopt.c, - src/getopt.h, src/getopt1.c, src/gzstream.cpp, src/gzstream.h, - src/macros.h, src/miktex-core.def, src/miktex-kps.def, src/miktex-kps.h, - src/options.ggo, src/test-all.cpp, src/tests/CalculatorTest.h, - src/tests/PageSizeTest.h, src/tests/StreamCounterTest.h, src/types.h: - moved files to trunk subfolder - - * map/cork-lm.map: - moved files to trunk - -2007-01-05 Martin Gieseking <martin.gieseking@uos.de> - - * Makefile, Makefile.am, Makefile.in, README, config.status, configure.ac, - potracelib/Makefile.am, potracelib/bitops.h, potracelib/flate.c, - potracelib/flate.h, 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/FontMap.cpp, src/FontMap.h, - src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, src/GFTracer.h, - src/KPSFileFinder.cpp, src/KPSFileFinder.h, src/Makefile.am, - src/Matrix.cpp, src/Matrix.h, src/Message.cpp, src/Message.h, - src/MessageException.h, src/MetafontWrapper.cpp, src/MetafontWrapper.h, - src/PSInterpreter.cpp, src/PSInterpreter.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/macros.h, src/test-all.cpp, src/types.h: - minor modifications - -2007-01-03 Martin Gieseking <martin.gieseking@uos.de> - - * NEWS, src/KPSFileFinder.cpp: - updated homepage - - * Makefile, Makefile.am, Makefile.in, config.h, config.h.in, - config.status, configure, configure.ac, doc/Makefile, - potracelib/Makefile.am, potracelib/auxiliary.h, potracelib/bitmap.h, - potracelib/bitops.h, potracelib/curve.c, potracelib/curve.h, - potracelib/decompose.c, potracelib/decompose.h, potracelib/flate.c, - potracelib/flate.h, potracelib/lists.h, potracelib/potracelib.c, - potracelib/potracelib.h, potracelib/progress.h, potracelib/trace.c, - potracelib/trace.h, src/Makefile, src/Makefile.am, src/Makefile.in: - added potracelib to distribution - - * configure: - removed configure from repository - -2006-12-31 Martin Gieseking <martin.gieseking@uos.de> - - * NEWS, configure.ac, src/DVIToSVG.cpp, src/FileSystem.cpp, - src/FontEngine.cpp, src/GFTracer.cpp, src/KPSFileFinder.cpp, - 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 - - * src/KPSFileFinder.cpp: - fixed namepsace bug - -2006-08-01 Martin Gieseking <martin.gieseking@uos.de> - - * 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, - doc/dvisvgm.1, src/FontEngine.cpp, src/Makefile, src/Makefile.in, - src/cmdline.c, src/cmdline.h, src/dvisvgm.cpp: - added support for freetype version >= 2.1.1 - - * configure.ac: - enabled svn keyword expansion - -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, - autom4te.cache/requests, autom4te.cache/traces.0, cmdline.c, - config.guess, config.h, config.h.in, config.log, config.status, - config.sub, configure, configure.ac, depcomp, doc/Makefile, - doc/Makefile.am, doc/Makefile.in, doc/dvisvgm.1, doc/dvisvgm.1.in, - gpl.txt, 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, install-sh, map/cork-lm.map, missing, 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/FontMap.cpp, src/FontMap.h, src/GFReader.cpp, src/GFReader.h, - src/GFTracer.cpp, src/GFTracer.h, src/KPSFileFinder.cpp, - src/KPSFileFinder.h, src/Makefile, src/Makefile.am, src/Makefile.in, - src/Matrix.cpp, src/Matrix.h, src/Message.cpp, src/Message.h, - src/MessageException.h, src/MetafontWrapper.cpp, src/MetafontWrapper.h, - src/PSInterpreter.cpp, src/PSInterpreter.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/cmdline.c, src/cmdline.h, src/dvisvgm.cpp, src/getopt.c, - src/getopt.h, src/getopt1.c, src/gzstream.cpp, src/gzstream.h, - src/lshort-cm.dvi, src/lshort-cm.svg, src/lshort-cm.svgz, src/lshort.dvi, - src/lshort.svg, src/lshort.svgz, src/macros.h, src/miktex-core.def, - src/miktex-kps.def, src/miktex-kps.h, src/options.ggo, src/test-all.cpp, - src/tests/CalculatorTest.h, src/tests/PageSizeTest.h, - src/tests/StreamCounterTest.h, src/types.h, 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/FontMap.cpp, src/FontMap.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/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/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/dviware/dvisvgm/Makefile.in b/dviware/dvisvgm/Makefile.in index 97e8c49f34..4096c579b8 100644 --- a/dviware/dvisvgm/Makefile.in +++ b/dviware/dvisvgm/Makefile.in @@ -15,7 +15,7 @@ @SET_MAKE@ # aminclude_static.am generated automatically by Autoconf -# from AX_AM_MACROS_STATIC on Fri Mar 10 10:15:03 CET 2023 +# from AX_AM_MACROS_STATIC on Wed Jul 5 12:26:42 CEST 2023 VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ @@ -169,9 +169,9 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ - $(top_srcdir)/aminclude_static.am AUTHORS COPYING ChangeLog \ - INSTALL NEWS README ar-lib compile config.guess config.sub \ - depcomp install-sh ltmain.sh missing + $(top_srcdir)/aminclude_static.am AUTHORS COPYING INSTALL NEWS \ + README ar-lib compile config.guess config.sub depcomp \ + install-sh ltmain.sh missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) diff --git a/dviware/dvisvgm/NEWS b/dviware/dvisvgm/NEWS index 4d262a71fa..cf7a347f47 100644 --- a/dviware/dvisvgm/NEWS +++ b/dviware/dvisvgm/NEWS @@ -1,3 +1,23 @@ +dvisvgm-3.1 (2023-07-06) +- added command-line option --currentcolor to replace a given color with + CSS variable 'currentColor' (GH issue #214) +- added special dvisvgm:currentcolor to replace the currently active color + with CSS variable 'currentColor' (GH issue #214) +- added special 'dvisvgm:message' to print given texts to the console +- added support for Omega Font Metric (OFM) files +- added fallback mechanism for missing characters in OFM-based virtual fonts + proposed by Takuji Tanaka (GH issue #241) +- fixed handling of whitespace in PDF file paths (GH issue #233) +- fixed vertical placement of "vertical fonts" in horizontal mode + (GH issue #235) +- fixed parsing of floating point numbers occurred with libc++ (GH issue #240) +- fixed potential segmentation faults triggered by missing font files + (GH issue #241) +- fixed GLIBCXX assertion error in new PDF handler (GH issue #242) +- improved handling of font subset prefixes in new, mutool-based PDF handler + (GH issue #242) +- several minor code improvements + dvisvgm-3.0.4 (2023-03-10) - fixed issue that could prevent reading the output of subprocesses (GH issue #232) @@ -14,7 +34,7 @@ dvisvgm-3.0.2 (2023-01-30) - fixed computation of font sizes in new PDF handler (GH issue #220) - fixed viewBox coordinates determined by new PDF handler (GH issue #223) - improved detection of font names used in PDF files (GH issue #224) -- minor code improvements +- minor code improvements dvisvgm-3.0.1 (2023-01-10) - added support for the 64-bit GS library in TeX Live diff --git a/dviware/dvisvgm/aminclude_static.am b/dviware/dvisvgm/aminclude_static.am index a76abf305d..51bd6c838b 100644 --- a/dviware/dvisvgm/aminclude_static.am +++ b/dviware/dvisvgm/aminclude_static.am @@ -1,6 +1,6 @@ # aminclude_static.am generated automatically by Autoconf -# from AX_AM_MACROS_STATIC on Fri Mar 10 10:15:03 CET 2023 +# from AX_AM_MACROS_STATIC on Wed Jul 5 12:26:42 CEST 2023 # Code coverage diff --git a/dviware/dvisvgm/configure b/dviware/dvisvgm/configure index 87202e1eba..470bf23060 100755 --- a/dviware/dvisvgm/configure +++ b/dviware/dvisvgm/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for dvisvgm 3.0.4. +# Generated by GNU Autoconf 2.71 for dvisvgm 3.1. # # Report bugs to <martin.gieseking@uos.de>. # @@ -621,8 +621,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='dvisvgm' PACKAGE_TARNAME='dvisvgm' -PACKAGE_VERSION='3.0.4' -PACKAGE_STRING='dvisvgm 3.0.4' +PACKAGE_VERSION='3.1' +PACKAGE_STRING='dvisvgm 3.1' PACKAGE_BUGREPORT='martin.gieseking@uos.de' PACKAGE_URL='' @@ -1437,7 +1437,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 3.0.4 to adapt to many kinds of systems. +\`configure' configures dvisvgm 3.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1508,7 +1508,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of dvisvgm 3.0.4:";; + short | recursive ) echo "Configuration of dvisvgm 3.1:";; esac cat <<\_ACEOF @@ -1653,7 +1653,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -dvisvgm configure 3.0.4 +dvisvgm configure 3.1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2133,7 +2133,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 $as_me 3.0.4, which was +It was created by dvisvgm $as_me 3.1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3110,7 +3110,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -DATE="March 2023" +DATE="June 2023" ac_config_headers="$ac_config_headers config.h" @@ -3704,7 +3704,7 @@ fi # Define the identity of the package. PACKAGE='dvisvgm' - VERSION='3.0.4' + VERSION='3.1' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -21279,7 +21279,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 $as_me 3.0.4, which was +This file was extended by dvisvgm $as_me 3.1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21347,7 +21347,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -dvisvgm config.status 3.0.4 +dvisvgm config.status 3.1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/dviware/dvisvgm/configure.ac b/dviware/dvisvgm/configure.ac index 07ef2eb1c2..4d4432a3ce 100644 --- a/dviware/dvisvgm/configure.ac +++ b/dviware/dvisvgm/configure.ac @@ -4,8 +4,8 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) -AC_INIT([dvisvgm],[3.0.4],[martin.gieseking@uos.de]) -DATE="March 2023" +AC_INIT([dvisvgm],[3.1],[martin.gieseking@uos.de]) +DATE="June 2023" AC_CONFIG_SRCDIR(src) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([m4]) diff --git a/dviware/dvisvgm/doc/dvisvgm.1 b/dviware/dvisvgm/doc/dvisvgm.1 index 7dc660abe4..b4bb1cb3c8 100644 --- a/dviware/dvisvgm/doc/dvisvgm.1 +++ b/dviware/dvisvgm/doc/dvisvgm.1 @@ -1,13 +1,13 @@ '\" t -.\" Title: dvisvgm +.\" Title: dvisvgm Manual .\" Author: Martin Gieseking <martin.gieseking@uos.de> .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 2023-02-21 +.\" Date: 2023-07-05 .\" Manual: dvisvgm Manual -.\" Source: dvisvgm 3.0.4 +.\" Source: dvisvgm 3.1 .\" Language: English .\" -.TH "DVISVGM" "1" "2023\-02\-21" "dvisvgm 3\&.0\&.4" "dvisvgm Manual" +.TH "DVISVGM MANUAL" "1" "2023\-07\-05" "dvisvgm 3\&.1" "dvisvgm Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -299,6 +299,25 @@ predefined colors (\m[blue]https://www.w3.org/TR/SVG11/types.html#ColorKeywords\ Adds comments with further information about selected data to the SVG file\&. Currently, only font elements and font CSS rules related to native fonts are annotated\&. .RE .PP +\fB\-\-currentcolor\fR[=\fIcolor\fR] +.RS 4 +This option tells dvisvgm to replace the specified color with CSS variable +\fBcurrentColor\fR +which holds the current foreground color set by CSS property +\fBcolor\fR\&. This way an application or website can change the color via CSS without the need to modify the SVG code\&. +.sp +The optional argument of +\fB\-\-currentcolor\fR +specifies the RGB color value to be replaced and must be given as either +three or six digit hex color value (\m[blue]https://www.w3.org/TR/css-color/#typedef-hex-color\m[]) +preceded by character +\fB#\fR, e\&.g\&. +\fB#0000ff\fR +or +\fB#00f\fR +for blue\&. If the optional argument is omitted, black is assumed\&. +.RE +.PP \fB\-\-embed\-bitmaps\fR .RS 4 Embeds the contents of bitmap files into the generated SVG files instead of adding file references\&. Because of the base64\-encoded data, the SVG files are usually much bigger but at the same time more portable because they don\(cqt rely on external bitmap files\&. @@ -853,15 +872,14 @@ If this option is given, dvisvgm does not expect a DVI but a PDF input file, and \fB\-\-page\fR can be used to select different pages, page ranges, and/or page sequences\&. .sp -If a Ghostcript version < 10\&.1\&.0 is found, dvisvgm uses Ghostscript to process the PDF file\&. In this case, the conversion is realized by creating a single +If a Ghostcript version < 10\&.01\&.0 is found, dvisvgm uses Ghostscript to process the PDF file\&. In this case, the conversion is realized by creating a single \fIpdffile\fR special command which is forwarded to dvisvgm\(cqs PostScript special handler\&. Therefore, this option is only available if dvisvgm was built with PostScript support enabled, and requires Ghostscript to be accessible\&. See option \fB\-\-libgs\fR for further information\&. .sp -As of Ghostscript 10\&.1\&.0, this will no longer work due to the introduction of a new PDF interpreter\&. Therefore, an alternative conversion module based on -mutool (\m[blue]https://mupdf.com/docs/mutool.html\m[]) -has been introduced\&. It\(cqs automatically invoked if Ghostscript can\(cqt be used and if a working +As of Ghostscript 10\&.01\&.0, this will no longer work due to the introduction of a new PDF interpreter\&. Therefore, an alternative conversion module based on +\fImutool\fR, a utility which is part of the [MuPDF](\m[blue]\fBhttps://mupdf\&.com\fR\m[]) package, has been introduced\&. It\(cqs automatically invoked if Ghostscript can\(cqt be used and if a working \fBmutool\fR executable is present in a directory which is part of the system\(cqs search path\&. .sp @@ -1405,6 +1423,16 @@ allows for applying the current transformation matrix to the bounding box\&. This variant of the bbox special assigns an absolute (final) bounding box to the resulting SVG\&. After executing this command, dvisvgm doesn\(cqt further alter the bounding box coordinates, except this special is called again later\&. The points (\fIx1\fR,\fIy1\fR) and (\fIx2\fR,\fIy2\fR) denote the absolute coordinates of two diagonal corners of the rectangle\&. As with the relative special variant described above, the optional modifier \fBtransform\fR allows for applying the current transformation matrix to the bounding box\&. +.RE +.PP +\fBdvisvgm:message\fR \fImsg\fR +.RS 4 +Prints the given text +\fImsg\fR +to the console\&. It may also contain the macros +\fI{?\&...}\fR +mentioned above (see +\fBdvisvgm:raw\fR)\&. .sp The following TeX snippet adds two raw SVG elements to the output and updates the bounding box accordingly: .sp @@ -1423,6 +1451,19 @@ The following TeX snippet adds two raw SVG elements to the output and updates th .RE .\} .RE +.PP +\fBdvisvgm:currentcolor\fR [on|off] +.RS 4 +This special works similar to option +\fB\-\-currentcolor\fR +but doesn\(cqt require an explicit color argument\&. Instead, it takes the currently active color and replaces it with +\fBcurrentColor\fR\&. Therefore, the result depends on the placement of the special and the preceding color changes\&. Argument +\fBon\fR +\(en which activates the +\fIcurrentColor\fR +functionality \(en can be omitted\&. When called with argument +\fBoff\fR, the functionality is deactivated again\&. +.RE .RE .PP \fBem\fR @@ -1666,7 +1707,7 @@ T} .sp \fBExample:\fR \fBer=01:pi=*5\fR sets the colors of error messages (\fBer\fR) to red (\fB1\fR) on black (\fB0\fR), and those of progress indicators (\fBpi\fR) to cyan (\fB5\fR) on default background (\fB*\fR)\&. .sp -Variable \fBDVISVGM_PDF_PROC\fR allows you to select the desired PDF processor\&. dvisvgm requires either Ghostscript (version < 10\&.1\&.0) or mutool to process PDF files\&. IF \fBDVISVGM_PDF_PROC\fR is not set, dvisvgm tries to detect the available processors\&. See option \fB\-\-pdf\fR for further information\&. To select a specific PDF processor, you can set \fBDVISVGM_PDF_PROC\fR to \fBgs\fR or \fBmutool\fR which forces the use of Ghostscript and mutool respectively\&. +Variable \fBDVISVGM_PDF_PROC\fR allows you to select the desired PDF processor\&. dvisvgm requires either Ghostscript (version < 10\&.01\&.0) or mutool to process PDF files\&. IF \fBDVISVGM_PDF_PROC\fR is not set, dvisvgm tries to detect the available processors\&. See option \fB\-\-pdf\fR for further information\&. To select a specific PDF processor, you can set \fBDVISVGM_PDF_PROC\fR to \fBgs\fR or \fBmutool\fR which forces the use of Ghostscript and mutool respectively\&. .SH "FILES" .sp The location of the following files is determined by the kpathsea library\&. To check the actual kpathsea configuration you can use the \fBkpsewhich\fR utility\&. diff --git a/dviware/dvisvgm/doc/dvisvgm.txt.in b/dviware/dvisvgm/doc/dvisvgm.txt.in index a5968c2bcc..5b31c8d092 100644 --- a/dviware/dvisvgm/doc/dvisvgm.txt.in +++ b/dviware/dvisvgm/doc/dvisvgm.txt.in @@ -22,7 +22,7 @@ Martin Gieseking <@PACKAGE_BUGREPORT@> :man source: dvisvgm :man version: @VERSION@ :man manual: dvisvgm Manual -:revdate: 2023-02-21 19:20 +0100 +:revdate: 2023-07-05 10:37 +0200 Name ---- @@ -206,6 +206,16 @@ In order to apply these color names rather than their RGB values, call dvisvgm w Adds comments with further information about selected data to the SVG file. Currently, only font elements and font CSS rules related to native fonts are annotated. +*--currentcolor*[='color']:: +This option tells dvisvgm to replace the specified color with CSS variable `currentColor` which +holds the current foreground color set by CSS property `color`. This way an application or website +can change the color via CSS without the need to modify the SVG code. ++ +The optional argument of `--currentcolor` specifies the RGB color value to be replaced and must +be given as either https://www.w3.org/TR/css-color/#typedef-hex-color[three or six digit hex color value] +preceded by character `#`, e.g. `#0000ff` or `#00f` for blue. If the optional argument is omitted, black +is assumed. + *--embed-bitmaps*:: Embeds the contents of bitmap files into the generated SVG files instead of adding file references. Because of the base64-encoded data, the SVG files are usually much bigger but at the same time @@ -572,16 +582,17 @@ If this option is given, dvisvgm does not expect a DVI but a PDF input file, and it to SVG. Similar to the conversion of DVI files, only the first page is processed by default. Option *--page* can be used to select different pages, page ranges, and/or page sequences. + -If a Ghostcript version < 10.1.0 is found, dvisvgm uses Ghostscript to process the PDF file. In +If a Ghostcript version < 10.01.0 is found, dvisvgm uses Ghostscript to process the PDF file. In this case, the conversion is realized by creating a single 'pdffile' special command which is forwarded to dvisvgm's PostScript special handler. Therefore, this option is only available if dvisvgm was built with PostScript support enabled, and requires Ghostscript to be accessible. See option *--libgs* for further information. + -As of Ghostscript 10.1.0, this will no longer work due to the introduction of a new PDF interpreter. -Therefore, an alternative conversion module based on https://mupdf.com/docs/mutool.html[mutool] -has been introduced. It's automatically invoked if Ghostscript can't be used and if a working -+mutool+ executable is present in a directory which is part of the system's search path. +As of Ghostscript 10.01.0, this will no longer work due to the introduction of a new PDF interpreter. +Therefore, an alternative conversion module based on _mutool_, a utility which is part of the +[MuPDF](https://mupdf.com) package, has been introduced. It's automatically invoked if Ghostscript +can't be used and if a working +mutool+ executable is present in a directory which is part of the +system's search path. + Alternatively, environment variable +DVISVGM_PDF_PROC+ can be used to select the PDF processor. The currently supported values are +gs+ and +mutool+. @@ -869,6 +880,10 @@ dvisvgm offers its own small set of specials. The following list gives a brief o The points ('x1','y1') and ('x2','y2') denote the absolute coordinates of two diagonal corners of the rectangle. As with the relative special variant described above, the optional modifier +transform+ allows for applying the current transformation matrix to the bounding box. + + *dvisvgm:message* 'msg';; + Prints the given text 'msg' to the console. It may also contain the macros '{?...}' mentioned above + (see *dvisvgm:raw*). + The following TeX snippet adds two raw SVG elements to the output and updates the bounding box accordingly: + @@ -882,6 +897,11 @@ The following TeX snippet adds two raw SVG elements to the output and updates th \special{dvisvgm:bbox abs 10bp 200bp 100bp 250bp transform} ------------------------------------------------------------------------------------- + + *dvisvgm:currentcolor* [on|off];; + This special works similar to option `--currentcolor` but doesn't require an explicit color argument. Instead, + it takes the currently active color and replaces it with `currentColor`. Therefore, the result depends on the + placement of the special and the preceding color changes. Argument `on` – which activates the 'currentColor' + functionality – can be omitted. When called with argument `off`, the functionality is deactivated again. *em*:: These specials were introduced with the 'emTeX' distribution by Eberhard Mattes. They provide line drawing @@ -1025,7 +1045,7 @@ All malformed entries in the list are silently ignored. of progress indicators (+pi+) to cyan (+5+) on default background (+*+). Variable *DVISVGM_PDF_PROC* allows you to select the desired PDF processor. dvisvgm requires either -Ghostscript (version < 10.1.0) or mutool to process PDF files. IF *DVISVGM_PDF_PROC* is not set, dvisvgm +Ghostscript (version < 10.01.0) or mutool to process PDF files. IF *DVISVGM_PDF_PROC* is not set, dvisvgm tries to detect the available processors. See option *--pdf* for further information. To select a specific PDF processor, you can set *DVISVGM_PDF_PROC* to +gs+ or +mutool+ which forces the use of Ghostscript and mutool respectively. diff --git a/dviware/dvisvgm/src/Bezier.cpp b/dviware/dvisvgm/src/Bezier.cpp index 2d90122531..568fe19578 100644 --- a/dviware/dvisvgm/src/Bezier.cpp +++ b/dviware/dvisvgm/src/Bezier.cpp @@ -270,7 +270,7 @@ vector<QuadBezier> CubicBezier::toQuadBeziers (double precision, vector<double> QuadBezier CubicBezier::midpointApproximation () const { DPair p0 = (_points[1]*3.0 - _points[0])/2.0; DPair p1 = (_points[2]*3.0 - _points[3])/2.0; - return QuadBezier(_points[0], (p0+p1)/2.0, _points[3]); + return {_points[0], (p0+p1)/2.0, _points[3]}; } @@ -305,7 +305,7 @@ void CubicBezier::toQuadBeziers (double t0, double t1, double precision, vector< double tmax3 = 18.0/sqrt(3.0)*precision/dist; // the cube of tmax if (tmax3 >= 1.0) { // curve is already quadratic, no subdivision necessary, return MPA - qbeziers.emplace_back(QuadBezier(_points[0], (q1+q2)/2.0, _points[3])); + qbeziers.emplace_back(_points[0], (q1+q2)/2.0, _points[3]); if (startParams) startParams->push_back(t0); } diff --git a/dviware/dvisvgm/src/BgColorSpecialHandler.cpp b/dviware/dvisvgm/src/BgColorSpecialHandler.cpp index 86e5fb72d7..84cb55eb10 100644 --- a/dviware/dvisvgm/src/BgColorSpecialHandler.cpp +++ b/dviware/dvisvgm/src/BgColorSpecialHandler.cpp @@ -62,7 +62,7 @@ void BgColorSpecialHandler::dviBeginPage (unsigned pageno, SpecialActions &actio } -vector<const char*> BgColorSpecialHandler::prefixes() const { +vector<const char*> BgColorSpecialHandler::prefixes () const { vector<const char*> pfx {"background"}; return pfx; } diff --git a/dviware/dvisvgm/src/BgColorSpecialHandler.hpp b/dviware/dvisvgm/src/BgColorSpecialHandler.hpp index 7a0290b05f..cb6146477e 100644 --- a/dviware/dvisvgm/src/BgColorSpecialHandler.hpp +++ b/dviware/dvisvgm/src/BgColorSpecialHandler.hpp @@ -31,8 +31,9 @@ class BgColorSpecialHandler : public SpecialHandler { void preprocess (const std::string &prefix, std::istream &is, SpecialActions &actions) override; bool process (const std::string &prefix, std::istream &is, SpecialActions &actions) override; const char* info () const override {return "background color special";} - const char* name () const override {return "bgcolor";} - std::vector<const char*> prefixes() const override; + const char* name () const override {return handlerName();} + static const char* handlerName () {return "bgcolor";} + std::vector<const char*> prefixes () const override; protected: void dviBeginPage (unsigned pageno, SpecialActions &actions) override; diff --git a/dviware/dvisvgm/src/Color.cpp b/dviware/dvisvgm/src/Color.cpp index d5b6413081..42f786d869 100644 --- a/dviware/dvisvgm/src/Color.cpp +++ b/dviware/dvisvgm/src/Color.cpp @@ -55,6 +55,35 @@ void Color::setRGB (double r, double g, double b) { } +/** Sets the color value according to a given hex RGB string of the + * form "#123456" or "#123" where the latter is expanded to "#112233". + * The leading '#' character is optional. + * @param[in] hexString the RGB hex string + * @return true if the color value was assigned successfully */ +bool Color::setRGBHexString (string hexString) { + if (!hexString.empty()) { + if (hexString[0] == '#') + hexString = hexString.substr(1); + if (hexString.length() == 3) { + // expand short form "123" to "112233" + hexString.resize(6); + hexString[5] = hexString[4] = hexString[2]; + hexString[3] = hexString[2] = hexString[1]; + hexString[1] = hexString[0]; + } + if (hexString.length() == 6) { + try { + _rgb = stoi(hexString, nullptr, 16); + return true; + } + catch (...) { + } + } + } + return false; +} + + /** Expects a PostScript color name and sets the color accordingly. * @param[in] name PS color name * @param[in] case_sensitive if true, upper/lower case spelling is significant diff --git a/dviware/dvisvgm/src/Color.hpp b/dviware/dvisvgm/src/Color.hpp index e133db7436..156aa269e4 100644 --- a/dviware/dvisvgm/src/Color.hpp +++ b/dviware/dvisvgm/src/Color.hpp @@ -56,6 +56,7 @@ class Color { void setRGB (uint8_t r, uint8_t g, uint8_t b) {_rgb = (r << 16) | (g << 8) | b;} void setRGB (double r, double g, double b); void setRGB (const std::valarray<double> &rgb) {setRGB(rgb[0], rgb[1], rgb[2]);} + bool setRGBHexString (std::string hexString); bool setPSName (std::string name, bool case_sensitive=true); void setGray (uint8_t g) {setRGB(g,g,g);} void setGray (double g) {setRGB(g,g,g);} diff --git a/dviware/dvisvgm/src/ColorSpecialHandler.cpp b/dviware/dvisvgm/src/ColorSpecialHandler.cpp index 35bc111ee3..c6a3e2bfd6 100644 --- a/dviware/dvisvgm/src/ColorSpecialHandler.cpp +++ b/dviware/dvisvgm/src/ColorSpecialHandler.cpp @@ -113,7 +113,7 @@ bool ColorSpecialHandler::process (const string&, istream &is, SpecialActions &a } -vector<const char*> ColorSpecialHandler::prefixes() const { +vector<const char*> ColorSpecialHandler::prefixes () const { vector<const char*> pfx {"color"}; return pfx; } diff --git a/dviware/dvisvgm/src/ColorSpecialHandler.hpp b/dviware/dvisvgm/src/ColorSpecialHandler.hpp index ea542e1f06..72809e8e0f 100644 --- a/dviware/dvisvgm/src/ColorSpecialHandler.hpp +++ b/dviware/dvisvgm/src/ColorSpecialHandler.hpp @@ -33,9 +33,10 @@ class ColorSpecialHandler : public SpecialHandler { bool process (const std::string &prefix, std::istream &is, SpecialActions &actions) override; static Color readColor (std::istream &is); static Color readColor (const std::string &model, std::istream &is); - const char* name () const override {return "color";} + const char* name () const override {return handlerName();} + static const char* handlerName () {return "color";} const char* info () const override {return "complete support of color specials";} - std::vector<const char*> prefixes() const override; + std::vector<const char*> prefixes () const override; private: std::stack<Color> _colorStack; diff --git a/dviware/dvisvgm/src/CommandLine.hpp b/dviware/dvisvgm/src/CommandLine.hpp index 72edde3ee1..d4f0745219 100644 --- a/dviware/dvisvgm/src/CommandLine.hpp +++ b/dviware/dvisvgm/src/CommandLine.hpp @@ -35,6 +35,7 @@ class CommandLine : public CL::CommandLine { Option colorOpt {"color", '\0', "colorize messages"}; Option colornamesOpt {"colornames", '\0', "prefer color names to RGB values if possible"}; Option commentsOpt {"comments", '\0', "add comments with additional information"}; + TypedOption<std::string, Option::ArgMode::OPTIONAL> currentcolorOpt {"currentcolor", '\0', "color", "#000", "replace given color with 'currentColor'"}; Option debugGlyphsOpt {"debug-glyphs", '\0', "create PS files for all glyphs converted to TTF"}; Option embedBitmapsOpt {"embed-bitmaps", '\0', "prevent references to external bitmap files"}; Option epsOpt {"eps", 'E', "convert EPS file to SVG"}; @@ -108,6 +109,7 @@ class CommandLine : public CL::CommandLine { #endif {&colornamesOpt, 1}, {&commentsOpt, 1}, + {¤tcolorOpt, 1}, {&embedBitmapsOpt, 1}, #if !defined(DISABLE_WOFF) {&fontFormatOpt, 1}, diff --git a/dviware/dvisvgm/src/DVIActions.hpp b/dviware/dvisvgm/src/DVIActions.hpp index 8e2e2a0829..ed3c012f58 100644 --- a/dviware/dvisvgm/src/DVIActions.hpp +++ b/dviware/dvisvgm/src/DVIActions.hpp @@ -21,6 +21,7 @@ #ifndef DVIACTIONS_HPP #define DVIACTIONS_HPP +#include <cstdint> #include <string> #include <vector> diff --git a/dviware/dvisvgm/src/DVIReader.cpp b/dviware/dvisvgm/src/DVIReader.cpp index 6dd7bebb69..2c52ba5210 100644 --- a/dviware/dvisvgm/src/DVIReader.cpp +++ b/dviware/dvisvgm/src/DVIReader.cpp @@ -206,8 +206,11 @@ void DVIReader::putVFChar (Font *font, uint32_t c) { FontManager &fm = FontManager::instance(); const vector<uint8_t> *dvi = vf->getDVI(c); // try to get DVI snippet that represents character c Font *firstFont = fm.vfFirstFont(vf); - if (!dvi && (!firstFont || !firstFont->getMetrics()->isJFM())) - return; + if (!dvi) { + const FontMetrics *ffm = firstFont ? firstFont->getMetrics() : nullptr; + if (!ffm || (!ffm->isJFM() && !ffm->isOFM())) + return; + } fm.enterVF(vf); // enter VF font number context int savedFontNum = _currFontNum; // save current font number setFont(fm.vfFirstFontNum(vf), SetFontMode::VF_ENTER); diff --git a/dviware/dvisvgm/src/DVIToSVG.cpp b/dviware/dvisvgm/src/DVIToSVG.cpp index f5501f33f6..ad809ca931 100644 --- a/dviware/dvisvgm/src/DVIToSVG.cpp +++ b/dviware/dvisvgm/src/DVIToSVG.cpp @@ -377,48 +377,67 @@ void DVIToSVG::embedFonts (XMLElement *svgElement) { } +static vector<string> extract_prefixes (const char *ignorelist) { + vector<string> prefixes; + if (ignorelist) { + const char *left = ignorelist; + while (*left) { + while (*left && !isalnum(*left)) + left++; + const char *right = left; + while (*right && isalnum(*right)) + right++; + if (*left) + prefixes.emplace_back(left, right-left); + left = right; + } + } + return prefixes; +} + + /** Enables or disables processing of specials. If ignorelist == 0, all * supported special handlers are loaded. To disable selected sets of specials, * the corresponding prefixes can be given separated by non alpha-numeric characters, * e.g. "color, ps, em" or "color: ps em" etc. * A single "*" in the ignore list disables all specials. - * @param[in] ignorelist list of special prefixes to ignore + * @param[in] ignorelist list of hanlder names to ignore * @param[in] pswarning if true, shows warning about disabled PS support * @return the SpecialManager that handles special statements */ void DVIToSVG::setProcessSpecials (const char *ignorelist, bool pswarning) { if (ignorelist && strcmp(ignorelist, "*") == 0) // ignore all specials? SpecialManager::instance().unregisterHandlers(); else { + auto ignoredHandlerName = extract_prefixes(ignorelist); // add special handlers - vector<unique_ptr<SpecialHandler>> handlers; - handlers.emplace_back(util::make_unique<BgColorSpecialHandler>()); // handles background color special - handlers.emplace_back(util::make_unique<ColorSpecialHandler>()); // handles color specials - handlers.emplace_back(util::make_unique<DvisvgmSpecialHandler>()); // handles raw SVG embeddings - handlers.emplace_back(util::make_unique<EmSpecialHandler>()); // handles emTeX specials - handlers.emplace_back(util::make_unique<HtmlSpecialHandler>()); // handles hyperref specials - handlers.emplace_back(util::make_unique<PapersizeSpecialHandler>()); // handles papersize special - handlers.emplace_back(util::make_unique<PdfSpecialHandler>()); // handles pdf specials - handlers.emplace_back(util::make_unique<TpicSpecialHandler>()); // handles tpic specials + SpecialManager::registerHandler<BgColorSpecialHandler>(ignoredHandlerName); // handles background color special + SpecialManager::registerHandler<ColorSpecialHandler>(ignoredHandlerName); // handles color specials + SpecialManager::registerHandler<DvisvgmSpecialHandler>(ignoredHandlerName); // handles raw SVG embeddings + SpecialManager::registerHandler<EmSpecialHandler>(ignoredHandlerName); // handles emTeX specials + SpecialManager::registerHandler<HtmlSpecialHandler>(ignoredHandlerName); // handles hyperref specials + SpecialManager::registerHandler<PapersizeSpecialHandler>(ignoredHandlerName); // handles papersize special + SpecialManager::registerHandler<PdfSpecialHandler>(ignoredHandlerName); // handles pdf specials + SpecialManager::registerHandler<TpicSpecialHandler>(ignoredHandlerName); // handles tpic specials + if (find(ignoredHandlerName.begin(), ignoredHandlerName.end(), PsSpecialHandler::handlerName()) == ignoredHandlerName.end()) { #ifndef DISABLE_GS - if (Ghostscript().available()) - handlers.emplace_back(util::make_unique<PsSpecialHandler>()); // handles PostScript specials - else + if (Ghostscript().available()) + SpecialManager::registerHandler<PsSpecialHandler>(ignoredHandlerName); // handles PostScript specials + else #endif - { + { #ifndef HAVE_LIBGS - // dummy PS special handler that only prints warning messages - handlers.emplace_back(util::make_unique<NoPsSpecialHandler>()); - if (pswarning) { + // dummy PS special handler that only prints warning messages + SpecialManager::registerHandler<NoPsSpecialHandler>(ignoredHandlerName); + if (pswarning) { #ifdef DISABLE_GS - Message::wstream() << "processing of PostScript specials has been disabled permanently\n"; + Message::wstream() << "processing of PostScript specials has been disabled permanently\n"; #else - Message::wstream() << "processing of PostScript specials is disabled (Ghostscript not found)\n"; + Message::wstream() << "processing of PostScript specials is disabled (Ghostscript not found)\n"; #endif - } + } #endif + } } - SpecialManager::instance().unregisterHandlers(); - SpecialManager::instance().registerHandlers(handlers, ignorelist); } } diff --git a/dviware/dvisvgm/src/DvisvgmSpecialHandler.cpp b/dviware/dvisvgm/src/DvisvgmSpecialHandler.cpp index abeb52be36..0a84038500 100644 --- a/dviware/dvisvgm/src/DvisvgmSpecialHandler.cpp +++ b/dviware/dvisvgm/src/DvisvgmSpecialHandler.cpp @@ -18,7 +18,6 @@ ** along with this program; if not, see <http://www.gnu.org/licenses/>. ** *************************************************************************/ -#include <array> #include <cstring> #include <utility> #include "Calculator.hpp" @@ -27,6 +26,7 @@ #include "InputBuffer.hpp" #include "InputReader.hpp" #include "Length.hpp" +#include "Message.hpp" #include "SpecialActions.hpp" #include "SVGTree.hpp" #include "utility.hpp" @@ -95,24 +95,23 @@ DvisvgmSpecialHandler::DvisvgmSpecialHandler () : _currentMacro(_macros.end()) void DvisvgmSpecialHandler::preprocess (const string&, istream &is, SpecialActions&) { - struct Command { + constexpr struct Command { const char *name; void (DvisvgmSpecialHandler::*handler)(InputReader&); - }; - constexpr array<Command, 5> commands {{ + } commands[] = { {"raw", &DvisvgmSpecialHandler::preprocessRaw}, {"rawdef", &DvisvgmSpecialHandler::preprocessRawDef}, {"rawset", &DvisvgmSpecialHandler::preprocessRawSet}, {"endrawset", &DvisvgmSpecialHandler::preprocessEndRawSet}, {"rawput", &DvisvgmSpecialHandler::preprocessRawPut} - }}; + }; StreamInputReader ir(is); const string cmdstr = ir.getWord(); - auto it = find_if(commands.begin(), commands.end(), [&](const Command &cmd) { + auto it = find_if(begin(commands), end(commands), [&](const Command &cmd) { return cmd.name == cmdstr; }); - if (it != commands.end()) { + if (it != end(commands)) { ir.skipSpace(); (this->*it->handler)(ir); } @@ -172,25 +171,26 @@ void DvisvgmSpecialHandler::preprocessRawPut (InputReader &ir) { * @param[in] is the special statement is read from this stream * @param[in] actions object providing the actions that can be performed by the SpecialHandler */ bool DvisvgmSpecialHandler::process (const string &prefix, istream &is, SpecialActions &actions) { - struct Command { + constexpr struct Command { const char *name; void (DvisvgmSpecialHandler::*handler)(InputReader&, SpecialActions&); + } commands[] = { + {"raw", &DvisvgmSpecialHandler::processRaw}, + {"rawdef", &DvisvgmSpecialHandler::processRawDef}, + {"rawset", &DvisvgmSpecialHandler::processRawSet}, + {"endrawset", &DvisvgmSpecialHandler::processEndRawSet}, + {"rawput", &DvisvgmSpecialHandler::processRawPut}, + {"bbox", &DvisvgmSpecialHandler::processBBox}, + {"img", &DvisvgmSpecialHandler::processImg}, + {"currentcolor", &DvisvgmSpecialHandler::processCurrentColor}, + {"message", &DvisvgmSpecialHandler::processMessage} }; - constexpr array<Command, 7> commands {{ - {"raw", &DvisvgmSpecialHandler::processRaw}, - {"rawdef", &DvisvgmSpecialHandler::processRawDef}, - {"rawset", &DvisvgmSpecialHandler::processRawSet}, - {"endrawset", &DvisvgmSpecialHandler::processEndRawSet}, - {"rawput", &DvisvgmSpecialHandler::processRawPut}, - {"bbox", &DvisvgmSpecialHandler::processBBox}, - {"img", &DvisvgmSpecialHandler::processImg} - }}; StreamInputReader ir(is); const string cmdstr = ir.getWord(); - auto it = find_if(commands.begin(), commands.end(), [&](const Command &cmd) { + auto it = find_if(begin(commands), end(commands), [&](const Command &cmd) { return cmd.name == cmdstr; }); - if (it != commands.end()) { + if (it != end(commands)) { ir.skipSpace(); (this->*it->handler)(ir, actions); } @@ -219,17 +219,16 @@ static void expand_constants (string &str, SpecialActions &actions) { } } } - struct Constant { + const struct Constant { const char *name; string val; - }; - const array<Constant, 5> constants {{ + } constants[] = { {"x", XMLString(actions.getX())}, {"y", XMLString(actions.getY())}, - {"color", actions.getColor().svgColorString()}, + {"color", SVGElement::USE_CURRENTCOLOR && SVGElement::CURRENTCOLOR == actions.getColor() ? "currentColor" : actions.getColor().svgColorString()}, {"matrix", actions.getMatrix().toSVG()}, {"nl", "\n"}, - }}; + }; for (const Constant &constant : constants) { const string pattern = string("{?")+constant.name+"}"; auto pos = str.find(pattern); @@ -452,6 +451,34 @@ void DvisvgmSpecialHandler::processImg (InputReader &ir, SpecialActions &actions } +void DvisvgmSpecialHandler::processCurrentColor (InputReader &ir, SpecialActions &actions) { + string param = ir.getString(); + Color color = actions.getColor(); + if (param.empty() || param == "on") { + SVGElement::CURRENTCOLOR = color; + SVGElement::USE_CURRENTCOLOR = true; + } + else if (param == "off") { + if (SVGElement::USE_CURRENTCOLOR) { + // force a color change to get the new currentColor setting recognized + actions.setColor(Color{uint32_t(color)+1}); + actions.setColor(color); + SVGElement::USE_CURRENTCOLOR = false; + } + } + else + throw SpecialException("currentcolor: unknown parameter '"+param+"'"); +} + + +void DvisvgmSpecialHandler::processMessage (InputReader &ir, SpecialActions &actions) { + string message = ir.getLine(); + evaluate_expressions(message, actions); + expand_constants(message, actions); + Message::mstream() << message << "\n"; +} + + void DvisvgmSpecialHandler::dviPreprocessingFinished () { string id; if (_currentMacro != _macros.end()) @@ -486,7 +513,7 @@ void DvisvgmSpecialHandler::dviEndPage (unsigned, SpecialActions &actions) { } -vector<const char*> DvisvgmSpecialHandler::prefixes() const { +vector<const char*> DvisvgmSpecialHandler::prefixes () const { vector<const char*> pfx {"dvisvgm:"}; return pfx; } diff --git a/dviware/dvisvgm/src/DvisvgmSpecialHandler.hpp b/dviware/dvisvgm/src/DvisvgmSpecialHandler.hpp index 4c9c84b078..7edecb12c8 100644 --- a/dviware/dvisvgm/src/DvisvgmSpecialHandler.hpp +++ b/dviware/dvisvgm/src/DvisvgmSpecialHandler.hpp @@ -73,11 +73,12 @@ class DvisvgmSpecialHandler : public SpecialHandler { public: DvisvgmSpecialHandler (); - const char* name () const override {return "dvisvgm";} - const char* info () const override {return "special set for embedding raw SVG snippets";} - std::vector<const char*> prefixes() const override; void preprocess (const std::string &prefix, std::istream &is, SpecialActions &actions) override; bool process (const std::string &prefix, std::istream &is, SpecialActions &actions) override; + const char* info () const override {return "special set for embedding raw SVG snippets";} + const char* name () const override {return handlerName();} + static const char* handlerName () {return "dvisvgm";} + std::vector<const char*> prefixes () const override; protected: void preprocessRaw (InputReader &ir); @@ -92,6 +93,8 @@ class DvisvgmSpecialHandler : public SpecialHandler { void processRawPut (InputReader &ir, SpecialActions &actions); void processBBox (InputReader &ir, SpecialActions &actions); void processImg (InputReader &ir, SpecialActions &actions); + void processCurrentColor (InputReader &ir, SpecialActions &actions); + void processMessage (InputReader &ir, SpecialActions &actions); void dviPreprocessingFinished () override; void dviBeginPage (unsigned pageno, SpecialActions &actions) override; void dviEndPage (unsigned pageno, SpecialActions &actions) override; diff --git a/dviware/dvisvgm/src/EmSpecialHandler.cpp b/dviware/dvisvgm/src/EmSpecialHandler.cpp index e116227ba9..919de50b2c 100644 --- a/dviware/dvisvgm/src/EmSpecialHandler.cpp +++ b/dviware/dvisvgm/src/EmSpecialHandler.cpp @@ -258,7 +258,7 @@ void EmSpecialHandler::dviEndPage (unsigned pageno, SpecialActions &actions) { } -vector<const char*> EmSpecialHandler::prefixes() const { +vector<const char*> EmSpecialHandler::prefixes () const { vector<const char*> pfx {"em:"}; return pfx; } diff --git a/dviware/dvisvgm/src/EmSpecialHandler.hpp b/dviware/dvisvgm/src/EmSpecialHandler.hpp index aee0219c12..5adb90aaca 100644 --- a/dviware/dvisvgm/src/EmSpecialHandler.hpp +++ b/dviware/dvisvgm/src/EmSpecialHandler.hpp @@ -38,10 +38,11 @@ class EmSpecialHandler : public SpecialHandler { }; public: - const char* name () const override {return "em";} - const char* info () const override {return "line drawing statements of the emTeX special set";} - std::vector<const char*> prefixes() const override; bool process (const std::string &prefix, std::istream &in, SpecialActions &actions) override; + const char* info () const override {return "line drawing statements of the emTeX special set";} + const char* name () const override {return handlerName();} + static const char* handlerName () {return "em";} + std::vector<const char*> prefixes () const override; protected: void dviEndPage (unsigned pageno, SpecialActions &actions) override; diff --git a/dviware/dvisvgm/src/FileFinder.cpp b/dviware/dvisvgm/src/FileFinder.cpp index 369ef33f49..f01b230af2 100644 --- a/dviware/dvisvgm/src/FileFinder.cpp +++ b/dviware/dvisvgm/src/FileFinder.cpp @@ -161,6 +161,7 @@ const char* FileFinder::findFile (const std::string &fname, const char *ftype) c #ifndef MIKTEX static std::map<std::string, kpse_file_format_type> types = { {"tfm", kpse_tfm_format}, + {"ofm", kpse_ofm_format}, {"pfb", kpse_type1_format}, {"vf", kpse_vf_format}, {"mf", kpse_mf_format}, diff --git a/dviware/dvisvgm/src/Font.cpp b/dviware/dvisvgm/src/Font.cpp index c60b162828..4645d33073 100644 --- a/dviware/dvisvgm/src/Font.cpp +++ b/dviware/dvisvgm/src/Font.cpp @@ -112,13 +112,14 @@ const FontMetrics* TFMFont::getMetrics () const { try { _metrics = FontMetrics::read(_fontname); if (!_metrics) { - _metrics = util::make_unique<NullFontMetric>(); + _metrics = util::make_unique<NullFontMetrics>(); Message::wstream(true) << "can't find "+_fontname+".tfm\n"; } } catch (FontMetricException &e) { - _metrics = util::make_unique<NullFontMetric>(); - Message::wstream(true) << e.what() << " in " << _fontname << ".tfm\n"; + const char *ext = (_metrics && _metrics->isOFM()) ? ".ofm" : ".tfm"; + _metrics = util::make_unique<NullFontMetrics>(); + Message::wstream(true) << e.what() << " in " << _fontname << ext << "\n"; } } return _metrics.get(); diff --git a/dviware/dvisvgm/src/Font.hpp b/dviware/dvisvgm/src/Font.hpp index 74f1b510cb..587a078500 100644 --- a/dviware/dvisvgm/src/Font.hpp +++ b/dviware/dvisvgm/src/Font.hpp @@ -291,6 +291,8 @@ class NativeFont : public PhysicalFont { protected: NativeFont (double ptsize, const FontStyle &style, Color color) : _ptsize(ptsize), _style(style), _color(color) {} + using PhysicalFont::hAdvance; + using PhysicalFont::vAdvance; private: double _ptsize; ///< font size in PS point units diff --git a/dviware/dvisvgm/src/FontCache.cpp b/dviware/dvisvgm/src/FontCache.cpp index 95155dc366..b89dc091c7 100644 --- a/dviware/dvisvgm/src/FontCache.cpp +++ b/dviware/dvisvgm/src/FontCache.cpp @@ -281,7 +281,7 @@ bool FontCache::fontinfo (const string &dirname, vector<FontInfo> &infos, vector string path = dirname+"/"+(fname.substr(1)); ifstream ifs(path, ios::binary); if (fontinfo(ifs, info)) - infos.push_back(move(info)); + infos.push_back(std::move(info)); else invalid.push_back(fname.substr(1)); } diff --git a/dviware/dvisvgm/src/FontManager.cpp b/dviware/dvisvgm/src/FontManager.cpp index bc6f88d322..3dcf87eae1 100644 --- a/dviware/dvisvgm/src/FontManager.cpp +++ b/dviware/dvisvgm/src/FontManager.cpp @@ -233,12 +233,13 @@ int FontManager::registerFont (uint32_t fontnum, const string &name, uint32_t ch else { // create dummy font as a placeholder if the proper font is not available newfont = util::make_unique<EmptyFont>(name); - if (filename.rfind('.') == string::npos) - filename += ".mf"; // print warning message about missing font file (only once for each filename) static set<string> missing_fonts; if (missing_fonts.find(filename) == missing_fonts.end()) { - Message::wstream(true) << "font file '" << filename << "' not found\n"; + if (filename.rfind('.') == string::npos) + Message::wstream(true) << "no font file found for '" << filename << "'\n"; + else + Message::wstream(true) << "font file '" << filename << "' not found\n"; missing_fonts.insert(filename); } } diff --git a/dviware/dvisvgm/src/FontMetrics.cpp b/dviware/dvisvgm/src/FontMetrics.cpp index 6147f36ab1..0edc1a6a79 100644 --- a/dviware/dvisvgm/src/FontMetrics.cpp +++ b/dviware/dvisvgm/src/FontMetrics.cpp @@ -23,19 +23,42 @@ #include "FileFinder.hpp" #include "FontMetrics.hpp" #include "JFM.hpp" +#include "OFM.hpp" #include "utility.hpp" using namespace std; +static inline uint16_t read_uint16 (istream &is) { + uint16_t val = 256*is.get(); + return val + is.get(); +} + +/** Reads the font metrics for a given font name from a TFM, JFM, or OFM file. + * @param[in] fontname name of font to get the metrics for. + * @return pointer to object that holds the font metrics, or nullptr if no matching file was found */ unique_ptr<FontMetrics> FontMetrics::read (const string &fontname) { - const char *path = FileFinder::instance().lookup(fontname + ".tfm"); + unique_ptr<FontMetrics> metrics; + const char *path = FileFinder::instance().lookup(fontname + ".ofm", false); + if (!path) + path = FileFinder::instance().lookup(fontname + ".tfm"); ifstream ifs(path, ios::binary); - if (!ifs) - return unique_ptr<FontMetrics>(); - uint16_t id = 256*ifs.get(); - id += ifs.get(); - if (id == 9 || id == 11) // Japanese font metric file? - return util::make_unique<JFM>(ifs); - return util::make_unique<TFM>(ifs); + if (ifs) { + auto id = read_uint16(ifs); + if (id == 0) { // OFM? + auto ofmLevel = read_uint16(ifs); + if (ofmLevel == 0) + metrics = util::make_unique<OFM0>(); + else if (ofmLevel == 1) + metrics = util::make_unique<OFM1>(); + else + throw FontMetricException("OFM level "+to_string(ofmLevel)+" not supported"); + } + else if (id == 9 || id == 11) // Japanese font metric file? + metrics = util::make_unique<JFM>(); + else + metrics = util::make_unique<TFM>(); + metrics->read(ifs); + } + return metrics; } diff --git a/dviware/dvisvgm/src/FontMetrics.hpp b/dviware/dvisvgm/src/FontMetrics.hpp index 79cb579b2e..85427720e7 100644 --- a/dviware/dvisvgm/src/FontMetrics.hpp +++ b/dviware/dvisvgm/src/FontMetrics.hpp @@ -21,6 +21,7 @@ #ifndef FONTMETRICS_HPP #define FONTMETRICS_HPP +#include <cstdint> #include <istream> #include <memory> #include <string> @@ -28,6 +29,7 @@ struct FontMetrics { virtual ~FontMetrics () =default; + virtual void read (std::istream &is) {} virtual double getDesignSize () const =0; virtual double getCharWidth (int c) const =0; virtual double getCharHeight (int c) const =0; @@ -41,14 +43,15 @@ struct FontMetrics { virtual double getDescent () const =0; virtual bool verticalLayout () const =0; virtual uint32_t getChecksum () const =0; - virtual uint16_t firstChar () const =0; - virtual uint16_t lastChar () const =0; + virtual uint32_t firstChar () const =0; + virtual uint32_t lastChar () const =0; virtual bool isJFM () const {return false;} + virtual bool isOFM () const {return false;} static std::unique_ptr<FontMetrics> read (const std::string &fontname); }; -struct NullFontMetric : public FontMetrics { +struct NullFontMetrics : public FontMetrics { double getDesignSize () const override {return 1;} double getCharWidth (int c) const override {return 0;} double getCharHeight (int c) const override {return 0;} @@ -62,8 +65,8 @@ struct NullFontMetric : public FontMetrics { double getDescent () const override {return 0;} bool verticalLayout () const override {return false;} uint32_t getChecksum () const override {return 0;} - uint16_t firstChar () const override {return 0;} - uint16_t lastChar () const override {return 0;} + uint32_t firstChar () const override {return 0;} + uint32_t lastChar () const override {return 0;} }; diff --git a/dviware/dvisvgm/src/Ghostscript.cpp b/dviware/dvisvgm/src/Ghostscript.cpp index fa6f1eb0eb..a428c01b9a 100644 --- a/dviware/dvisvgm/src/Ghostscript.cpp +++ b/dviware/dvisvgm/src/Ghostscript.cpp @@ -256,7 +256,10 @@ string Ghostscript::revisionstr () { int major = rev / 1000; int minor = (rev - major*1000)/10; int patch = rev % 10; - revstr = to_string(major) + "." + to_string(minor) + "." + to_string(patch); + revstr = to_string(major) + "."; + if (minor > 0 && minor < 10) + revstr += '0'; + revstr += to_string(minor) + "." + to_string(patch); } } return revstr; diff --git a/dviware/dvisvgm/src/GraphicsPathParser.hpp b/dviware/dvisvgm/src/GraphicsPathParser.hpp index 41a850db27..099614757d 100644 --- a/dviware/dvisvgm/src/GraphicsPathParser.hpp +++ b/dviware/dvisvgm/src/GraphicsPathParser.hpp @@ -27,6 +27,22 @@ #include "GraphicsPath.hpp" #include "MessageException.hpp" +namespace internal { + template <typename NumType> + bool parse_number (std::istream &is, NumType &value) { + is >> value; + return !is.fail(); + } + + template <> + bool parse_number (std::istream &is, double &value) { + // don't use operator >> for parsing floating point values because it's implemented + // differently in libstdc++ and libc++. Instead, use our own function to read the + // value from the input stream. + return util::read_double(is, value); + } +} + struct GraphicsPathParserException : public MessageException { explicit GraphicsPathParserException (const std::string &msg) : MessageException(msg) {} @@ -48,8 +64,7 @@ class GraphicsPathParser { NumType parseNumberOfType (std::istream &is) const { is >> std::ws; NumType number; - is >> number; - if (is.fail()) + if (!internal::parse_number(is, number)) error("number expected", is); is >> std::ws; return number; diff --git a/dviware/dvisvgm/src/HtmlSpecialHandler.cpp b/dviware/dvisvgm/src/HtmlSpecialHandler.cpp index e86de7fb96..2f43ebde79 100644 --- a/dviware/dvisvgm/src/HtmlSpecialHandler.cpp +++ b/dviware/dvisvgm/src/HtmlSpecialHandler.cpp @@ -80,7 +80,7 @@ void HtmlSpecialHandler::dviEndPage (unsigned pageno, SpecialActions &actions) { } -vector<const char*> HtmlSpecialHandler::prefixes() const { +vector<const char*> HtmlSpecialHandler::prefixes () const { vector<const char*> pfx {"html:"}; return pfx; } diff --git a/dviware/dvisvgm/src/HtmlSpecialHandler.hpp b/dviware/dvisvgm/src/HtmlSpecialHandler.hpp index f722060538..33f564f63b 100644 --- a/dviware/dvisvgm/src/HtmlSpecialHandler.hpp +++ b/dviware/dvisvgm/src/HtmlSpecialHandler.hpp @@ -31,9 +31,10 @@ class HtmlSpecialHandler : public SpecialHandler { public: void preprocess (const std::string &prefix, std::istream &is, SpecialActions &actions) override; bool process (const std::string &prefix, std::istream &is, SpecialActions &actions) override; - const char* name () const override {return "html";} const char* info () const override {return "hyperref specials";} - std::vector<const char*> prefixes() const override; + const char* name () const override {return handlerName();} + static const char* handlerName () {return "html";} + std::vector<const char*> prefixes () const override; protected: void dviEndPage (unsigned pageno, SpecialActions &actions) override; diff --git a/dviware/dvisvgm/src/JFM.cpp b/dviware/dvisvgm/src/JFM.cpp index c801618178..fc8fe56d8a 100644 --- a/dviware/dvisvgm/src/JFM.cpp +++ b/dviware/dvisvgm/src/JFM.cpp @@ -19,7 +19,6 @@ *************************************************************************/ #include <algorithm> -#include <cstring> #include <fstream> #include <sstream> #include "JFM.hpp" @@ -28,27 +27,27 @@ using namespace std; -JFM::JFM (istream &is) { +void JFM::read (istream &is) { is.seekg(0); StreamReader reader(is); - uint16_t id = uint16_t(reader.readUnsigned(2)); // JFM ID (9 or 11) + auto id = uint16_t(reader.readUnsigned(2)); // JFM ID (9 or 11) if (id != 9 && id != 11) throw FontMetricException("invalid JFM identifier " + std::to_string(id) + " (9 or 11 expected)"); _vertical = (id == 9); - uint16_t nt = uint16_t(reader.readUnsigned(2)); // length of character type table - uint16_t lf = uint16_t(reader.readUnsigned(2)); // length of entire file in 4 byte words - uint16_t lh = uint16_t(reader.readUnsigned(2)); // length of header in 4 byte words - uint16_t bc = uint16_t(reader.readUnsigned(2)); // smallest character code in font - uint16_t ec = uint16_t(reader.readUnsigned(2)); // largest character code in font - uint16_t nw = uint16_t(reader.readUnsigned(2)); // number of words in width table - uint16_t nh = uint16_t(reader.readUnsigned(2)); // number of words in height table - uint16_t nd = uint16_t(reader.readUnsigned(2)); // number of words in depth table - uint16_t ni = uint16_t(reader.readUnsigned(2)); // number of words in italic corr. table - uint16_t nl = uint16_t(reader.readUnsigned(2)); // number of words in glue/kern table - uint16_t nk = uint16_t(reader.readUnsigned(2)); // number of words in kern table - uint16_t ng = uint16_t(reader.readUnsigned(2)); // number of words in glue table - uint16_t np = uint16_t(reader.readUnsigned(2)); // number of font parameter words + auto nt = uint16_t(reader.readUnsigned(2)); // length of character type table + auto lf = uint16_t(reader.readUnsigned(2)); // length of entire file in 4 byte words + auto lh = uint16_t(reader.readUnsigned(2)); // length of header in 4 byte words + auto bc = uint16_t(reader.readUnsigned(2)); // smallest character code in font + auto ec = uint16_t(reader.readUnsigned(2)); // largest character code in font + auto nw = uint16_t(reader.readUnsigned(2)); // number of words in width table + auto nh = uint16_t(reader.readUnsigned(2)); // number of words in height table + auto nd = uint16_t(reader.readUnsigned(2)); // number of words in depth table + auto ni = uint16_t(reader.readUnsigned(2)); // number of words in italic corr. table + auto nl = uint16_t(reader.readUnsigned(2)); // number of words in glue/kern table + auto nk = uint16_t(reader.readUnsigned(2)); // number of words in kern table + auto ng = uint16_t(reader.readUnsigned(2)); // number of words in glue table + auto np = uint16_t(reader.readUnsigned(2)); // number of font parameter words if (7+nt+lh+(ec-bc+1)+nw+nh+nd+ni+nl+nk+ng+np != lf) throw FontMetricException("inconsistent length values"); @@ -57,7 +56,7 @@ JFM::JFM (istream &is) { readHeader(reader); is.seekg(28+lh*4); readTables(reader, nt, nw, nh, nd, ni); - is.seekg(4*(lf-np), ios::beg); + is.seekg(4*(lf-np)); readParameters(reader, np); // JFM files provide 9 parameters but we don't need all of them } @@ -69,7 +68,7 @@ void JFM::readTables (StreamReader &reader, int nt, int nw, int nh, int nd, int // support new JFM spec by texjporg uint32_t c = reader.readUnsigned(2); c += 0x10000 * reader.readUnsigned(1); - uint8_t t = uint8_t(reader.readUnsigned(1)); + auto t = uint8_t(reader.readUnsigned(1)); if (t > 0) { minchar = min(minchar, c); maxchar = max(maxchar, c); @@ -84,7 +83,7 @@ void JFM::readTables (StreamReader &reader, int nt, int nw, int nh, int nd, int // support new JFM spec by texjporg uint32_t c = reader.readUnsigned(2); c += 0x10000 * reader.readUnsigned(1); - uint8_t t = uint8_t(reader.readUnsigned(1)); + auto t = uint8_t(reader.readUnsigned(1)); if (c >= minchar) _charTypeTable[c-minchar] = t; } @@ -93,7 +92,7 @@ void JFM::readTables (StreamReader &reader, int nt, int nw, int nh, int nd, int } -int JFM::charIndex (int c) const { +size_t JFM::charIndex (int c) const { uint8_t chartype = 0; if (!_charTypeTable.empty() && uint32_t(c) >= _minchar && uint32_t(c) < _minchar+_charTypeTable.size()) chartype = _charTypeTable[c-_minchar]; diff --git a/dviware/dvisvgm/src/JFM.hpp b/dviware/dvisvgm/src/JFM.hpp index 110f0f3e1a..c24798073c 100644 --- a/dviware/dvisvgm/src/JFM.hpp +++ b/dviware/dvisvgm/src/JFM.hpp @@ -27,7 +27,8 @@ class JFM : public TFM { public: - explicit JFM (std::istream &is); + JFM () =default; + void read (std::istream &is) override; bool verticalLayout () const override {return _vertical;} bool isJFM () const override {return true;} uint32_t minChar () const {return _minchar;} @@ -35,11 +36,11 @@ class JFM : public TFM { protected: void readTables (StreamReader &reader, int nt, int nw, int nh, int nd, int ni); - int charIndex (int c) const override; + size_t charIndex (int c) const override; private: - uint32_t _minchar; ///< character code of first entry in character type table - bool _vertical; ///< true if metrics refer to vertical text layout + uint32_t _minchar=0; ///< character code of first entry in character type table + bool _vertical=false; ///< true if metrics refer to vertical text layout std::vector<uint8_t> _charTypeTable; }; diff --git a/dviware/dvisvgm/src/Makefile.am b/dviware/dvisvgm/src/Makefile.am index 1272a216f3..4ccab654f0 100644 --- a/dviware/dvisvgm/src/Makefile.am +++ b/dviware/dvisvgm/src/Makefile.am @@ -105,6 +105,7 @@ libdvisvgm_la_SOURCES = \ MetafontWrapper.hpp MetafontWrapper.cpp \ NoPsSpecialHandler.hpp NoPsSpecialHandler.cpp \ NumericRanges.hpp \ + OFM.hpp OFM.cpp \ Opacity.hpp Opacity.cpp \ PageRanges.hpp PageRanges.cpp \ PageSize.hpp PageSize.cpp \ diff --git a/dviware/dvisvgm/src/Makefile.in b/dviware/dvisvgm/src/Makefile.in index 411c96252d..a576da9bc4 100644 --- a/dviware/dvisvgm/src/Makefile.in +++ b/dviware/dvisvgm/src/Makefile.in @@ -144,17 +144,17 @@ am_libdvisvgm_la_OBJECTS = BasicDVIReader.lo Bezier.lo \ Ghostscript.lo HashFunction.lo HtmlSpecialHandler.lo \ HyperlinkManager.lo ImageToSVG.lo InputBuffer.lo \ InputReader.lo JFM.lo Length.lo MapLine.lo Matrix.lo \ - Message.lo MetafontWrapper.lo NoPsSpecialHandler.lo Opacity.lo \ - PageRanges.lo PageSize.lo PapersizeSpecialHandler.lo \ - PathClipper.lo PDFHandler.lo PDFParser.lo PdfSpecialHandler.lo \ - PDFToSVG.lo PreScanDVIReader.lo Process.lo psdefs.lo \ - PSInterpreter.lo PSPattern.lo PSPreviewFilter.lo \ - PsSpecialHandler.lo RangeMap.lo ShadingPatch.lo \ - SignalHandler.lo SourceInput.lo SpecialManager.lo \ - StreamReader.lo StreamWriter.lo Subfont.lo SVGCharHandler.lo \ - SVGCharHandlerFactory.lo SVGCharPathHandler.lo \ - SVGCharTspanTextHandler.lo SVGElement.lo SVGOutput.lo \ - SVGSingleCharTextHandler.lo SVGTree.lo System.lo \ + Message.lo MetafontWrapper.lo NoPsSpecialHandler.lo OFM.lo \ + Opacity.lo PageRanges.lo PageSize.lo \ + PapersizeSpecialHandler.lo PathClipper.lo PDFHandler.lo \ + PDFParser.lo PdfSpecialHandler.lo PDFToSVG.lo \ + PreScanDVIReader.lo Process.lo psdefs.lo PSInterpreter.lo \ + PSPattern.lo PSPreviewFilter.lo PsSpecialHandler.lo \ + RangeMap.lo ShadingPatch.lo SignalHandler.lo SourceInput.lo \ + SpecialManager.lo StreamReader.lo StreamWriter.lo Subfont.lo \ + SVGCharHandler.lo SVGCharHandlerFactory.lo \ + SVGCharPathHandler.lo SVGCharTspanTextHandler.lo SVGElement.lo \ + SVGOutput.lo SVGSingleCharTextHandler.lo SVGTree.lo System.lo \ TensorProductPatch.lo Terminal.lo TFM.lo ToUnicodeMap.lo \ TpicSpecialHandler.lo TriangularPatch.lo Unicode.lo utility.lo \ VFReader.lo XMLDocument.lo XMLNode.lo XMLParser.lo \ @@ -213,11 +213,12 @@ am__depfiles_remade = ./$(DEPDIR)/BasicDVIReader.Plo \ ./$(DEPDIR)/JFM.Plo ./$(DEPDIR)/Length.Plo \ ./$(DEPDIR)/MapLine.Plo ./$(DEPDIR)/Matrix.Plo \ ./$(DEPDIR)/Message.Plo ./$(DEPDIR)/MetafontWrapper.Plo \ - ./$(DEPDIR)/NoPsSpecialHandler.Plo ./$(DEPDIR)/Opacity.Plo \ - ./$(DEPDIR)/PDFHandler.Plo ./$(DEPDIR)/PDFParser.Plo \ - ./$(DEPDIR)/PDFToSVG.Plo ./$(DEPDIR)/PSInterpreter.Plo \ - ./$(DEPDIR)/PSPattern.Plo ./$(DEPDIR)/PSPreviewFilter.Plo \ - ./$(DEPDIR)/PageRanges.Plo ./$(DEPDIR)/PageSize.Plo \ + ./$(DEPDIR)/NoPsSpecialHandler.Plo ./$(DEPDIR)/OFM.Plo \ + ./$(DEPDIR)/Opacity.Plo ./$(DEPDIR)/PDFHandler.Plo \ + ./$(DEPDIR)/PDFParser.Plo ./$(DEPDIR)/PDFToSVG.Plo \ + ./$(DEPDIR)/PSInterpreter.Plo ./$(DEPDIR)/PSPattern.Plo \ + ./$(DEPDIR)/PSPreviewFilter.Plo ./$(DEPDIR)/PageRanges.Plo \ + ./$(DEPDIR)/PageSize.Plo \ ./$(DEPDIR)/PapersizeSpecialHandler.Plo \ ./$(DEPDIR)/PathClipper.Plo ./$(DEPDIR)/PdfSpecialHandler.Plo \ ./$(DEPDIR)/PreScanDVIReader.Plo ./$(DEPDIR)/Process.Plo \ @@ -587,6 +588,7 @@ libdvisvgm_la_SOURCES = \ MetafontWrapper.hpp MetafontWrapper.cpp \ NoPsSpecialHandler.hpp NoPsSpecialHandler.cpp \ NumericRanges.hpp \ + OFM.hpp OFM.cpp \ Opacity.hpp Opacity.cpp \ PageRanges.hpp PageRanges.cpp \ PageSize.hpp PageSize.cpp \ @@ -820,6 +822,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Message.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MetafontWrapper.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NoPsSpecialHandler.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OFM.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Opacity.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PDFHandler.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PDFParser.Plo@am__quote@ # am--include-marker @@ -1156,6 +1159,7 @@ distclean: distclean-recursive -rm -f ./$(DEPDIR)/Message.Plo -rm -f ./$(DEPDIR)/MetafontWrapper.Plo -rm -f ./$(DEPDIR)/NoPsSpecialHandler.Plo + -rm -f ./$(DEPDIR)/OFM.Plo -rm -f ./$(DEPDIR)/Opacity.Plo -rm -f ./$(DEPDIR)/PDFHandler.Plo -rm -f ./$(DEPDIR)/PDFParser.Plo @@ -1299,6 +1303,7 @@ maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/Message.Plo -rm -f ./$(DEPDIR)/MetafontWrapper.Plo -rm -f ./$(DEPDIR)/NoPsSpecialHandler.Plo + -rm -f ./$(DEPDIR)/OFM.Plo -rm -f ./$(DEPDIR)/Opacity.Plo -rm -f ./$(DEPDIR)/PDFHandler.Plo -rm -f ./$(DEPDIR)/PDFParser.Plo diff --git a/dviware/dvisvgm/src/NoPsSpecialHandler.cpp b/dviware/dvisvgm/src/NoPsSpecialHandler.cpp index 2c17e30690..644b2220d8 100644 --- a/dviware/dvisvgm/src/NoPsSpecialHandler.cpp +++ b/dviware/dvisvgm/src/NoPsSpecialHandler.cpp @@ -39,7 +39,7 @@ void NoPsSpecialHandler::dviEndPage (unsigned pageno, SpecialActions &actions) { } -vector<const char*> NoPsSpecialHandler::prefixes() const { +vector<const char*> NoPsSpecialHandler::prefixes () const { vector<const char*> pfx {"header=", "psfile=", "PSfile=", "ps:", "ps::", "!", "\""}; return pfx; } diff --git a/dviware/dvisvgm/src/NoPsSpecialHandler.hpp b/dviware/dvisvgm/src/NoPsSpecialHandler.hpp index f7132d2c75..3cd89b98f8 100644 --- a/dviware/dvisvgm/src/NoPsSpecialHandler.hpp +++ b/dviware/dvisvgm/src/NoPsSpecialHandler.hpp @@ -26,9 +26,10 @@ class NoPsSpecialHandler : public SpecialHandler { public: bool process (const std::string &prefix, std::istream &is, SpecialActions &actions) override; - const char* name () const override {return nullptr;} const char* info () const override {return nullptr;} - std::vector<const char*> prefixes() const override; + const char* name () const override {return nullptr;} + static const char* handlerName () {return nullptr;} + std::vector<const char*> prefixes () const override; protected: void dviEndPage (unsigned pageno, SpecialActions &actions) override; diff --git a/dviware/dvisvgm/src/OFM.cpp b/dviware/dvisvgm/src/OFM.cpp new file mode 100644 index 0000000000..63872671f1 --- /dev/null +++ b/dviware/dvisvgm/src/OFM.cpp @@ -0,0 +1,270 @@ +/************************************************************************* +** OFM.cpp ** +** ** +** This file is part of dvisvgm -- a fast DVI to SVG converter ** +** Copyright (C) 2005-2023 Martin Gieseking <martin.gieseking@uos.de> ** +** ** +** This program is free software; you can redistribute it and/or ** +** modify it under the terms of the GNU General Public License as ** +** published by the Free Software Foundation; either version 3 of ** +** the License, or (at your option) any later version. ** +** ** +** This program is distributed in the hope that it will be useful, but ** +** WITHOUT ANY WARRANTY; without even the implied warranty of ** +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** +** GNU General Public License for more details. ** +** ** +** You should have received a copy of the GNU General Public License ** +** along with this program; if not, see <http://www.gnu.org/licenses/>. ** +*************************************************************************/ + +#include <cstdint> +#include <string> +#include "Length.hpp" +#include "OFM.hpp" + +using namespace std; + + +static uint32_t read_uint32 (StreamReader &reader, const string &name) { + uint32_t quad = reader.readUnsigned(4); + if (quad & 0x80000000) + throw FontMetricException("negative '"+name+"' value not permitted"); + return quad; +} + +void OFM::FileDimensions::read (StreamReader &reader) { + lf = read_uint32(reader, "lf"); + lh = read_uint32(reader, "lh"); + bc = read_uint32(reader, "bc"); + ec = read_uint32(reader, "ec"); + nw = read_uint32(reader, "nw"); + nh = read_uint32(reader, "nh"); + nd = read_uint32(reader, "nd"); + ni = read_uint32(reader, "ni"); + nl = read_uint32(reader, "nl"); + nk = read_uint32(reader, "nk"); + ne = read_uint32(reader, "ne"); + np = read_uint32(reader, "np"); + dir = read_uint32(reader, "font-dir"); +} + + +/** Reads the common beginning of OFM level 0 and 1 files, and initializes + * the corresponding members. + * @param[in] is reads from this stream + * @param[in] maxNumWidths maximum number of width entries + * @return the collected data (file offsets, table sizes, writing direction) */ +OFM::FileDimensions OFM::read (istream &is, uint32_t maxNumWidths) { + OFM::FileDimensions dim; + if (is) { + is.seekg(0); + StreamReader sr(is); + uint32_t ofmLevel = sr.readUnsigned(4); + if (ofmLevel > 1) + throw FontMetricException("OFM level "+to_string(ofmLevel)+" not supported"); + if (int(ofmLevel) != level()) + throw FontMetricException("OFM level "+to_string(level())+" expected but found level "+to_string(ofmLevel)); + dim.read(sr); + if (dim.nw > maxNumWidths) + throw FontMetricException("invalid size of width table"); + _firstChar = dim.bc; // smallest character code in font + _lastChar = dim.ec; // largest character code in font + _vertical = (dim.dir > 0); + } + return dim; +} + + +/** Reads and stores the required data from the OFM header. */ +void OFM::readHeader (StreamReader &reader) { + _checksum = reader.readUnsigned(4); + _designSize = double(FixWord(reader.readSigned(4)))*Length::pt2bp; +} + + +/** Reads a sequence of values and stores them in a vector. + * @param[in] reader the TFM data is read from this object + * @param[out] words vector taking the read words + * @param[in] n number of entries to read */ +static void read_words (StreamReader &reader, vector<FixWord> &words, size_t n) { + words.resize(n); + for (size_t i=0; i < n; i++) + words[i] = reader.readSigned(4); +} + + +/** Reads and stores the required OFM tables (characters widths, heights, depths, ...). */ +void OFM::readTables (StreamReader &reader, const FileDimensions &dim) { + read_words(reader, _widthTable, dim.nw); + read_words(reader, _heightTable, dim.nh); + read_words(reader, _depthTable, dim.nd); + read_words(reader, _italicTable, dim.ni); + reader.skip(8*dim.nl + 4*dim.nk + 8*dim.ne); + read_words(reader, _params, min(dim.np, 7u)); // we only need params 0-6 + _params.resize(7, 0); // ensure 7 parameters + for (FixWord h : _heightTable) + _ascent = max(_ascent, h); + for (FixWord d : _depthTable) + _descent = max(_descent, d); +} + + +/** Returns the character index for a given character or -1 if + * the OFM file doesn't contain information on the character. */ +size_t OFM::charIndex (int c) const { + uint32_t chr=c; + if (chr < _firstChar || chr > _lastChar || size_t(chr-_firstChar) >= numCharInfos()) + return -1; + return chr-_firstChar; +} + + +/** Returns the width of a character in bp units. */ +double OFM::getCharWidth (int c) const { + auto cindex = charIndex(c); + if (cindex == size_t(-1)) + return 0; + return double(_widthTable[widthIndex(cindex)])*_designSize; +} + + +/** Returns the height of a character in bp units. */ +double OFM::getCharHeight (int c) const { + auto cindex = charIndex(c); + if (cindex == size_t(-1)) + return 0; + return double(_heightTable[heightIndex(cindex)])*_designSize; +} + + +/** Returns the depth of a character in bp units. */ +double OFM::getCharDepth (int c) const { + auto cindex = charIndex(c); + if (cindex == size_t(-1)) + return 0; + return double(_depthTable[depthIndex(cindex)])*_designSize; +} + + +/** Returns the italic correction width of a character in bp units. */ +double OFM::getItalicCorr (int c) const { + auto cindex = charIndex(c); + if (cindex == size_t(-1)) + return 0; + return double(_italicTable[italicIndex(cindex)])*_designSize; +} + +/** Returns the optimal space width between words in bp units. */ +double OFM::getSpace () const { + return _params.empty() ? 0 : double(_params[1])*_designSize; +} + + +/** Returns the amount of glue stretching between words in bp units. */ +double OFM::getSpaceStretch () const { + return _params.empty() ? 0 : double(_params[2])*_designSize; +} + + +/** Returns the amount of glue shrinking between words in bp units. */ +double OFM::getSpaceShrink () const { + return _params.empty() ? 0 : double(_params[3])*_designSize; +} + + +/** Returns the size of one EM unit in bp units. */ +double OFM::getQuad () const { + if (_params.empty() || _params[5] == 0) + return _designSize; + return double(_params[5])*_designSize; +} + +///////////////////////////////////////////////////////////////////////////// + +/** Reads and stores the required data from an OFM level 0 data stream. */ +void OFM0::read (std::istream &is) { + auto dim = OFM::read(is, 0xFFFF); + if (_firstChar >= _lastChar || _lastChar > 0xFFFF) + throw FontMetricException("character codes out of range"); + if (14 + dim.lh + 2*(dim.ec-dim.bc+1) + dim.nw + dim.nh + dim.nd + dim.ni +2*dim.nl + dim.nk + 2*dim.ne + dim.np != dim.lf) + throw FontMetricException("inconsistent table size values"); + StreamReader sr(is); + readHeader(sr); + sr.seek(56 + dim.lh*4); // move to char info table + readCharInfos(sr); + readTables(sr, dim); +} + + +/** Reads and stores the required data from the char-info section. + * Expects the stream pointer to be located on the first byte of the first char-info entry. */ +void OFM0::readCharInfos (StreamReader &reader) { + auto numChars = _lastChar-_firstChar+1; + _charInfos.resize(numChars); + for (size_t i=0; i < numChars; i++) { + _charInfos[i] = uint64_t(reader.readUnsigned(4)) << 32; + _charInfos[i] |= reader.readUnsigned(4); + } +} + +//////////////////////////////////////////////////////////////////////////////// + +/** Reads and stores the required data from an OFM level 1 data stream. */ +void OFM1::read (std::istream &is) { + auto dim = OFM::read(is, 0x110000); + if (_firstChar >= _lastChar || _lastChar > 0x10FFFF) + throw FontMetricException("character codes out of range"); + StreamReader sr(is); + uint32_t nco = sr.readUnsigned(4); // OFM1: offset of char-info table (in 4-byte words) + _ncw = sr.readUnsigned(4); // total number of character info words in OFM file + _npc = sr.readUnsigned(4); // number of parameters per character + // check validity of number entries for new (OFM level 1) table types + size_t sum=0, numTables=0; + for (int i=0; i < 12; i++) { + uint32_t num = sr.readUnsigned(4); + sum += num; + if (i%2 == 0) + numTables += num; + } + if (numTables > 32) + throw FontMetricException("too many OFM level 1 tables"); + if (29 + dim.lh + _ncw + dim.nw + dim.nh + dim.nd + dim.ni +2*dim.nl + dim.nk + 2*dim.ne + dim.np + sum != dim.lf) + throw FontMetricException("inconsistent table size values"); + readHeader(sr); + sr.seek(4*nco); // move to char info table + readCharInfos(sr); + readTables(sr, dim); +} + + +/** Reads and stores the required data from the char-info section. + * Expects the stream pointer to be located on the first byte of the first char-info entry. */ +void OFM1::readCharInfos (StreamReader &reader) { + auto numCharInfos = _ncw/(3 + _npc/2); // number of char info entries in file + auto numChars = _lastChar-_firstChar+1; + size_t numCharsRead=0; + _charInfos.reserve(numChars); + while (numCharsRead <= numChars && numCharInfos > 0) { + CharInfo info; + info.widthIndex = uint16_t(reader.readUnsigned(2)); + info.heightIndex = uint8_t(reader.readUnsigned(1)); + info.depthIndex = uint8_t(reader.readUnsigned(1)); + info.italicIndex = uint8_t(reader.readUnsigned(1)); + reader.skip(3); // skip RFU, ext-tag, tag, and remainder + auto repeats = uint16_t(reader.readUnsigned(2)); + if (numCharsRead + repeats > numChars) + throw FontMetricException("number of characters exceeded due to too many char-info repeats"); + reader.skip(_npc*2); // skip parameters + if (_npc%2 == 0) + reader.skip(2); // skip padding bytes + for (int j=0; j <= repeats; j++) + _charInfos.push_back(info); + numCharsRead += repeats+1; + numCharInfos--; + } + if (numCharInfos > 0) + throw FontMetricException("more char-info entries present than characters"); + if (numCharsRead < numChars) + throw FontMetricException("not all characters covered by char-info entries"); +} diff --git a/dviware/dvisvgm/src/OFM.hpp b/dviware/dvisvgm/src/OFM.hpp new file mode 100644 index 0000000000..560bc1f634 --- /dev/null +++ b/dviware/dvisvgm/src/OFM.hpp @@ -0,0 +1,135 @@ +/************************************************************************* +** OFM.hpp ** +** ** +** This file is part of dvisvgm -- a fast DVI to SVG converter ** +** Copyright (C) 2005-2023 Martin Gieseking <martin.gieseking@uos.de> ** +** ** +** This program is free software; you can redistribute it and/or ** +** modify it under the terms of the GNU General Public License as ** +** published by the Free Software Foundation; either version 3 of ** +** the License, or (at your option) any later version. ** +** ** +** This program is distributed in the hope that it will be useful, but ** +** WITHOUT ANY WARRANTY; without even the implied warranty of ** +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** +** GNU General Public License for more details. ** +** ** +** You should have received a copy of the GNU General Public License ** +** along with this program; if not, see <http://www.gnu.org/licenses/>. ** +*************************************************************************/ + +#ifndef OFM_HPP +#define OFM_HPP + +#include <vector> +#include "FixWord.hpp" +#include "FontMetrics.hpp" +#include "StreamReader.hpp" + +class OFM : public FontMetrics { + public: + virtual int level () const =0; + bool isOFM () const override {return true;} + uint32_t getChecksum () const override {return _checksum;} + uint32_t firstChar () const override {return _firstChar;} + uint32_t lastChar () const override {return _lastChar;} + bool verticalLayout () const override {return _vertical;} + double getDesignSize () const override {return _designSize;} + double getAscent () const override {return double(_ascent)*_designSize;} + double getDescent () const override {return double(_descent)*_designSize;} + double getCharWidth (int c) const override; + double getCharHeight (int c) const override; + double getCharDepth (int c) const override; + double getItalicCorr (int c) const override; + double getSpace () const override; + double getSpaceStretch () const override; + double getSpaceShrink () const override; + double getQuad () const override; + using FontMetrics::read; + + protected: + struct FileDimensions { + uint32_t lf=0; // length of file in 4-byte words + uint32_t lh=0; // length of header data in 4-byte words + uint32_t bc=0; // smallest character code + uint32_t ec=0; // largest character code + uint32_t nw=0; // number of width entries + uint32_t nh=0; // number of height entries + uint32_t nd=0; // number of depth entries + uint32_t ni=0; // number of italic correction entries + uint32_t nl=0; // number of lig-kern entries + uint32_t nk=0; // number of kern entries + uint32_t ne=0; // number of extensible character entries + uint32_t np=0; // number of font parameter words + uint32_t dir=0; // writing direction of font + void read (StreamReader &reader); + }; + + FileDimensions read (std::istream &is, uint32_t maxNumWidths); + void readHeader (StreamReader &reader); + void readTables (StreamReader &reader, const FileDimensions &dim); + size_t charIndex (int c) const; + virtual size_t numCharInfos () const =0; + virtual size_t widthIndex (size_t n) const =0; + virtual size_t heightIndex (size_t n) const =0; + virtual size_t depthIndex (size_t n) const =0; + virtual size_t italicIndex (size_t n) const =0; + + protected: + uint32_t _checksum=0; + uint32_t _firstChar=0, _lastChar=0; + double _designSize=0; ///< design size of the font in PS points (72bp = 1in) + std::vector<FixWord> _widthTable; ///< character widths in design size units + std::vector<FixWord> _heightTable; ///< character height in design size units + std::vector<FixWord> _depthTable; ///< character depth in design size units + std::vector<FixWord> _italicTable; ///< italic corrections in design size units + std::vector<FixWord> _params; ///< values of the OFM's param section + FixWord _ascent=0, _descent=0; ///< max. height and depth + bool _vertical=false; ///< true if metrics refer to vertical text layout +}; + + +class OFM0 : public OFM { + public: + void read (std::istream &is) override; + int level () const override {return 0;} + + protected: + void readCharInfos (StreamReader &reader); + size_t numCharInfos () const override {return _charInfos.size();} + size_t widthIndex (size_t n) const override {return (_charInfos[n] >> 48) & 0xFFFF;} + size_t heightIndex (size_t n) const override {return (_charInfos[n] >> 40) & 0xFF;} + size_t depthIndex (size_t n) const override {return (_charInfos[n] >> 32) & 0xFF;} + size_t italicIndex (size_t n) const override {return (_charInfos[n] >> 24) & 0xFF;} + + private: + std::vector<uint64_t> _charInfos; +}; + + +class OFM1 : public OFM { + struct CharInfo { + uint16_t widthIndex=0; + uint8_t heightIndex=0; + uint8_t depthIndex=0; + uint8_t italicIndex=0; + }; + public: + void read (std::istream &is) override; + int level () const override {return 1;} + + protected: + void readCharInfos (StreamReader &reader); + size_t numCharInfos () const override {return _charInfos.size();} + size_t widthIndex (size_t n) const override {return _charInfos[n].widthIndex;} + size_t heightIndex (size_t n) const override {return _charInfos[n].heightIndex;} + size_t depthIndex (size_t n) const override {return _charInfos[n].depthIndex;} + size_t italicIndex (size_t n) const override {return _charInfos[n].italicIndex;} + + private: + uint32_t _ncw=0; + uint32_t _npc=0; + std::vector<CharInfo> _charInfos; +}; + +#endif diff --git a/dviware/dvisvgm/src/PDFHandler.cpp b/dviware/dvisvgm/src/PDFHandler.cpp index ba88e69852..9d374e9874 100644 --- a/dviware/dvisvgm/src/PDFHandler.cpp +++ b/dviware/dvisvgm/src/PDFHandler.cpp @@ -139,6 +139,12 @@ string PDFHandler::mutoolVersion () { } +/** Returns the total number of pages of a PDF file. */ +int PDFHandler::numberOfPages (const string &fname) { + return parse_value<int>(mtShow("\""+fname+"\"", "trailer/Root/Pages/Count")); +} + + /** Converts a single page of a PDF file to SVG. If no context element is given, * the SVG page contents are added to a page group element of the SVG tree. * Otherwise, they are added to the context element which is not inserted into @@ -175,6 +181,7 @@ unique_ptr<SVGElement> PDFHandler::convert (const string &fname, int pageno, uni void PDFHandler::initFile (const string &fname) { finishFile(); _fname = FilePath(fname, true).absolute(); + _fname = "\"" + _fname + "\""; _numPages = parse_value<int>(mtShow("trailer/Root/Pages/Count")); // extract image and font files from the PDF string cwd = FileSystem::getcwd(); @@ -472,7 +479,7 @@ void PDFHandler::doClipPath (XMLElement *trcClipPathElement) { auto clipPathElement = util::make_unique<SVGElement>("clipPath"); clipPathElement->addAttribute("id", id); auto groupElement = util::make_unique<SVGElement>("g"); - _clipPathStack.emplace(ClipPathData{std::move(id), groupElement.get()}); + _clipPathStack.emplace(std::move(id), groupElement.get()); groupElement->setClipPathUrl(_clipPathStack.top().id); clipPathElement->append(std::move(pathElement)); _svg->appendToDefs(std::move(clipPathElement)); @@ -496,7 +503,7 @@ void PDFHandler::doClipStrokePath (XMLElement *trcClipStrokePathElement) { maskElement->append(std::move(pathElement)); auto groupElement = util::make_unique<SVGElement>("g"); groupElement->setMaskUrl(id); - _clipPathStack.emplace(ClipPathData{std::move(id), groupElement.get()}); + _clipPathStack.emplace(std::move(id), groupElement.get()); _svg->appendToDefs(std::move(maskElement)); _svg->pushPageContext(std::move(groupElement)); } @@ -508,7 +515,7 @@ void PDFHandler::doClipText (XMLElement *trcClipTextElement) { auto clipPathElement = util::make_unique<SVGElement>("clipPath"); clipPathElement->addAttribute("id", id); auto groupElement = util::make_unique<SVGElement>("g"); - _clipPathStack.emplace(ClipPathData{std::move(id), groupElement.get()}); + _clipPathStack.emplace(std::move(id), groupElement.get()); groupElement->setClipPathUrl(_clipPathStack.top().id); SVGElement *cpElementPtr = clipPathElement.get(); _svg->pushPageContext(std::move(clipPathElement)); @@ -630,9 +637,14 @@ void PDFHandler::doFillText (XMLElement *trcFillTextElement) { auto trm = parse_attr_value<vector<double>>(spanElement, "trm"); if (trm.size() < 4 || trm[0] == 0) continue; - auto fontname = strip_subset_prefix(parse_attr_value<string>(spanElement, "font")); - string filename; + auto fontname = parse_attr_value<string>(spanElement, "font"); auto it = _objDict.find(fontname); + if (it == _objDict.end()) { + // try to lookup font without subfont prefix + fontname = strip_subset_prefix(fontname); + it = _objDict.find(fontname); + } + string filename; if (it != _objDict.end()) filename = it->second.fname; if (filename.empty()) @@ -789,11 +801,10 @@ void PDFHandler::collectObjects () { for (auto &entry : _extractedFiles) { if (entry.second.substr(0, 5) == "font-") { string filepath = tmpdir+entry.second; // path to font file - string fontname = strip_subset_prefix(FontEngine::instance().getPSName(filepath)); - // If the extracted font file doesn't contain a font name, - // try to get it from the corresponding PDF object. - if (fontname.empty()) - fontname = mtShow(to_string(entry.first)+"/FontName", SearchPattern(R"(/(\w+))", "$1")); + string psFontname = FontEngine::instance().getPSName(filepath); + string fontname = mtShow(to_string(entry.first) + "/FontName", SearchPattern(R"(/((\w|[+-])+))", "$1")); + if (!psFontname.empty() && fontname.find('+') == string::npos) + fontname = std::move(psFontname); _objDict.emplace(fontname, ObjID(entry.first, 0, filepath)); } } diff --git a/dviware/dvisvgm/src/PDFHandler.hpp b/dviware/dvisvgm/src/PDFHandler.hpp index 3400a1d69d..708c9969ef 100644 --- a/dviware/dvisvgm/src/PDFHandler.hpp +++ b/dviware/dvisvgm/src/PDFHandler.hpp @@ -58,6 +58,7 @@ class PDFHandler { std::unique_ptr<SVGElement> convert (const std::string &fname, int pageno, std::unique_ptr<SVGElement> context=nullptr); static std::string mutoolVersion (); static bool available () {return !mutoolVersion().empty();} + static int numberOfPages (const std::string &fname); protected: static std::string mutool (const std::string &cmd, bool readFromStderr=false); diff --git a/dviware/dvisvgm/src/PDFParser.cpp b/dviware/dvisvgm/src/PDFParser.cpp index b92ce54e7f..6a8fa2f3cf 100644 --- a/dviware/dvisvgm/src/PDFParser.cpp +++ b/dviware/dvisvgm/src/PDFParser.cpp @@ -275,7 +275,7 @@ static PDFStream parse_stream (InputReader &ir, const char *delim) { do ir.skipUntil("endstream"); while (ir.peek() >= 0 && !strchr(delim, ir.peek())); // ensure delimiter after "endstream" - return PDFStream(); + return {}; } @@ -289,7 +289,7 @@ static PDFIndirectObject parse_indirect_object (InputReader &ir, const char *del const int *objno = objects.back().get<int>(); objects.pop_back(); if (objno && genno) - return PDFIndirectObject(*objno, *genno); + return {*objno, *genno}; } throw PDFException("object and generation number expected before 'obj'"); } @@ -302,7 +302,7 @@ static PDFObjectRef parse_object_ref (vector<PDFObject> &objects) { const int *objno = objects.back().get<int>(); objects.pop_back(); if (objno && genno) - return PDFObjectRef(*objno, *genno); + return {*objno, *genno}; } throw PDFException("object and generation number expected before 'R'"); } diff --git a/dviware/dvisvgm/src/PDFToSVG.cpp b/dviware/dvisvgm/src/PDFToSVG.cpp index b0e3df58ba..9cb30d3971 100644 --- a/dviware/dvisvgm/src/PDFToSVG.cpp +++ b/dviware/dvisvgm/src/PDFToSVG.cpp @@ -45,7 +45,7 @@ void PDFToSVG::checkGSAndFileFormat () { if (!PDFHandler::available()) { ostringstream oss; if (gsVersion() > 0) { - oss << "To process PDF files, either Ghostscript < 10.1 or mutool is required.\n"; + oss << "To process PDF files, either Ghostscript < 10.01.0 or mutool is required.\n"; oss << "The installed Ghostscript version " << Ghostscript().revisionstr() << " isn't supported.\n"; throw MessageException(oss.str()); } @@ -59,7 +59,10 @@ void PDFToSVG::checkGSAndFileFormat () { /** Returns the total number of pages in the PDF file. */ int PDFToSVG::totalPageCount () const { if (_totalPageCount < 0) { - _totalPageCount = psInterpreter().pdfPageCount(filename()); + if (_useGS) + _totalPageCount = psInterpreter().pdfPageCount(filename()); + else + _totalPageCount = PDFHandler::numberOfPages(filename()); if (_totalPageCount < 1) throw MessageException("can't retrieve number of pages from file " + filename()); } diff --git a/dviware/dvisvgm/src/Pair.hpp b/dviware/dvisvgm/src/Pair.hpp index c1fdd5b6d5..176183ecea 100644 --- a/dviware/dvisvgm/src/Pair.hpp +++ b/dviware/dvisvgm/src/Pair.hpp @@ -22,6 +22,7 @@ #define PAIR_HPP #include <cmath> +#include <cstdint> #include <ostream> #include "macros.hpp" diff --git a/dviware/dvisvgm/src/PapersizeSpecialHandler.cpp b/dviware/dvisvgm/src/PapersizeSpecialHandler.cpp index b070643f6d..81169dbbb0 100644 --- a/dviware/dvisvgm/src/PapersizeSpecialHandler.cpp +++ b/dviware/dvisvgm/src/PapersizeSpecialHandler.cpp @@ -92,7 +92,7 @@ void PapersizeSpecialHandler::dviEndPage (unsigned pageno, SpecialActions &actio } -vector<const char*> PapersizeSpecialHandler::prefixes() const { +vector<const char*> PapersizeSpecialHandler::prefixes () const { vector<const char*> pfx {"papersize="}; return pfx; } diff --git a/dviware/dvisvgm/src/PapersizeSpecialHandler.hpp b/dviware/dvisvgm/src/PapersizeSpecialHandler.hpp index 621de709db..2f3e9e863f 100644 --- a/dviware/dvisvgm/src/PapersizeSpecialHandler.hpp +++ b/dviware/dvisvgm/src/PapersizeSpecialHandler.hpp @@ -34,8 +34,9 @@ class PapersizeSpecialHandler : public SpecialHandler { void preprocess (const std::string &prefix, std::istream &is, SpecialActions &actions) override; bool process (const std::string &prefix, std::istream &is, SpecialActions &actions) override; const char* info () const override {return "special to set the page size";} - const char* name () const override {return "papersize";} - std::vector<const char*> prefixes() const override; + const char* name () const override {return handlerName();} + static const char* handlerName () {return "papersize";} + std::vector<const char*> prefixes () const override; void storePaperSize (unsigned pageno, Length width, Length height); void reset () {_pageSizes.clear();} diff --git a/dviware/dvisvgm/src/PathClipper.cpp b/dviware/dvisvgm/src/PathClipper.cpp index 50030f9657..14588f8981 100644 --- a/dviware/dvisvgm/src/PathClipper.cpp +++ b/dviware/dvisvgm/src/PathClipper.cpp @@ -58,7 +58,7 @@ class FlattenActions : public CurvedPath::IterationActions { if (p == _currentPoint && !_currentPoly.empty()) return; closepath(); - _currentPoly.emplace_back(IntPoint(to_cInt(p.x()), to_cInt(p.y()), 0)); + _currentPoly.emplace_back(to_cInt(p.x()), to_cInt(p.y()), 0); _currentPoint = _startPoint = p; } @@ -66,10 +66,10 @@ class FlattenActions : public CurvedPath::IterationActions { if (p == _currentPoint && !_currentPoly.empty()) return; if (_currentPoly.empty()) // this shouldn't happen but in case it does... - _currentPoly.emplace_back(IntPoint(0, 0, 0)); // ...add a start point first + _currentPoly.emplace_back(0, 0, 0); // ...add a start point first _numLines--; _currentPoly.back().Z.label2 = _numLines; - _currentPoly.emplace_back(IntPoint(to_cInt(p.x()), to_cInt(p.y()), ZType(_numLines, 0))); + _currentPoly.emplace_back(to_cInt(p.x()), to_cInt(p.y()), ZType(_numLines, 0)); _currentPoint = p; } @@ -100,7 +100,7 @@ class FlattenActions : public CurvedPath::IterationActions { protected: void addCurvePoints (const CubicBezier &bezier) { if (_currentPoly.empty()) // this shouldn't happen but in case it does, ... - _currentPoly.emplace_back(IntPoint(0, 0, 0)); // ...add a start point first + _currentPoly.emplace_back(0, 0, 0); // ...add a start point first vector<DPair> points; // points of flattened curve vector<double> t; // corresponding 'time' parameters bezier.approximate(0.01, points, &t); @@ -113,7 +113,7 @@ class FlattenActions : public CurvedPath::IterationActions { continue; _currentPoly.back().Z.label2 = ZLabel(_curves.size(), t[i-1]); ZLabel label(_curves.size(), t[i]); - _currentPoly.emplace_back(IntPoint(to_cInt(p.x()), to_cInt(p.y()), ZType(label, label))); + _currentPoly.emplace_back(to_cInt(p.x()), to_cInt(p.y()), ZType(label, label)); _currentPoint = p; } } @@ -211,7 +211,7 @@ inline ZLabel division_label (const IntPoint &p1, const IntPoint &p2, const IntP int32_t id = segment_id(p1, p2, t1, t2); if (id > 0) s = t1+(t2-t1)*division_ratio(p1, p2, q); - return ZLabel(id, s); + return {id, s}; } diff --git a/dviware/dvisvgm/src/PdfSpecialHandler.cpp b/dviware/dvisvgm/src/PdfSpecialHandler.cpp index 0af7303e8d..b3128512c9 100644 --- a/dviware/dvisvgm/src/PdfSpecialHandler.cpp +++ b/dviware/dvisvgm/src/PdfSpecialHandler.cpp @@ -283,7 +283,7 @@ void PdfSpecialHandler::dviEndPage (unsigned pageno, SpecialActions &actions) { } -vector<const char*> PdfSpecialHandler::prefixes() const { +vector<const char*> PdfSpecialHandler::prefixes () const { vector<const char*> pfx {"pdf:"}; return pfx; } diff --git a/dviware/dvisvgm/src/PdfSpecialHandler.hpp b/dviware/dvisvgm/src/PdfSpecialHandler.hpp index b5267939d7..4c5509d093 100644 --- a/dviware/dvisvgm/src/PdfSpecialHandler.hpp +++ b/dviware/dvisvgm/src/PdfSpecialHandler.hpp @@ -27,11 +27,12 @@ class StreamInputReader; class PdfSpecialHandler : public SpecialHandler { public: - const char* info () const override {return "PDF hyperlink, font map, and pagesize specials";} - const char* name () const override {return "pdf";} - std::vector<const char*> prefixes() const override; void preprocess (const std::string &prefix, std::istream &is, SpecialActions &actions) override; bool process (const std::string &prefix, std::istream &is, SpecialActions &actions) override; + const char* info () const override {return "PDF hyperlink, font map, and pagesize specials";} + const char* name () const override {return handlerName();} + static const char* handlerName () {return "pdf";} + std::vector<const char*> prefixes () const override; protected: // handlers for corresponding PDF specials diff --git a/dviware/dvisvgm/src/Process.cpp b/dviware/dvisvgm/src/Process.cpp index c79f6e9526..b7fb3929b8 100644 --- a/dviware/dvisvgm/src/Process.cpp +++ b/dviware/dvisvgm/src/Process.cpp @@ -74,13 +74,13 @@ string Subprocess::read (const SearchPattern &pattern, bool *error) { const size_t bytesRead = readFromPipe(&_rdbuf[_bufstartpos], _rdbuf.size()-_bufstartpos, error); const size_t bufendpos = _bufstartpos + bytesRead; smatch matches; - size_t matchendpos= bufendpos; // buffer position after last match + size_t matchendpos = bufendpos; // buffer position after last match if (pattern.search.empty()) result.assign(_rdbuf.data(), matchendpos); else { bool matched=false; regex re(pattern.search); - for (auto it = cregex_iterator(&_rdbuf[0], &_rdbuf[bufendpos], re); it != cregex_iterator(); ++it) { + for (auto it = cregex_iterator(&_rdbuf[0], &_rdbuf[0]+bufendpos, re); it != cregex_iterator(); ++it) { result += it->format(pattern.replace, regex_constants::format_no_copy); matchendpos = it->position() + it->length(); matched = true; @@ -121,11 +121,8 @@ bool Process::run (string *out, const SearchPattern &pattern, PipeFlags flags) { if (out) out->clear(); for (;;) { - if (out) { - string chunk; - subprocess.readFromPipe(chunk, pattern); - *out += chunk; - } + if (out) + subprocess.readFromPipe(*out, pattern); Subprocess::State state = subprocess.state(); if (state != Subprocess::State::RUNNING) return state == Subprocess::State::FINISHED; diff --git a/dviware/dvisvgm/src/PsSpecialHandler.cpp b/dviware/dvisvgm/src/PsSpecialHandler.cpp index 5dfdfc0852..cb3a8a6bac 100644 --- a/dviware/dvisvgm/src/PsSpecialHandler.cpp +++ b/dviware/dvisvgm/src/PsSpecialHandler.cpp @@ -1378,9 +1378,9 @@ void PsSpecialHandler::ClippingStack::push (const Path &path, int saveID) { if (!_stack.empty()) prependedPath = _stack.top().prependedPath; if (path.empty()) - _stack.emplace(Entry(saveID)); + _stack.emplace(saveID); else - _stack.emplace(Entry(path, ++_maxID, saveID)); + _stack.emplace(path, ++_maxID, saveID); _stack.top().prependedPath = prependedPath; } @@ -1470,7 +1470,7 @@ void PsSpecialHandler::ClippingStack::setPrependedPath () { } -vector<const char*> PsSpecialHandler::prefixes() const { +vector<const char*> PsSpecialHandler::prefixes () const { vector<const char*> pfx { "header=", // read and execute PS header file prior to the following PS statements "pdffile=", // process PDF file diff --git a/dviware/dvisvgm/src/PsSpecialHandler.hpp b/dviware/dvisvgm/src/PsSpecialHandler.hpp index 695eb78d03..fb44e4bfa4 100644 --- a/dviware/dvisvgm/src/PsSpecialHandler.hpp +++ b/dviware/dvisvgm/src/PsSpecialHandler.hpp @@ -91,11 +91,12 @@ class PsSpecialHandler : public SpecialHandler, protected PSActions { public: PsSpecialHandler (); ~PsSpecialHandler () override; - const char* name () const override {return "ps";} - const char* info () const override {return "dvips PostScript specials";} - std::vector<const char*> prefixes() const override; void preprocess (const std::string &prefix, std::istream &is, SpecialActions &actions) override; bool process (const std::string &prefix, std::istream &is, SpecialActions &actions) override; + const char* info () const override {return "dvips PostScript specials";} + const char* name () const override {return handlerName();} + static const char* handlerName () {return "ps";} + std::vector<const char*> prefixes () const override; void setDviScaleFactor (double dvi2bp) override {_previewFilter.setDviScaleFactor(dvi2bp);} void enterBodySection (); PSInterpreter& psInterpreter () {return _psi;} diff --git a/dviware/dvisvgm/src/SVGCharPathHandler.cpp b/dviware/dvisvgm/src/SVGCharPathHandler.cpp index fc59d2280e..2c753d2e5c 100644 --- a/dviware/dvisvgm/src/SVGCharPathHandler.cpp +++ b/dviware/dvisvgm/src/SVGCharPathHandler.cpp @@ -60,7 +60,7 @@ void SVGCharPathHandler::appendChar (uint32_t c, double x, double y) { // Apply text color changes only if the color of the entire font is black. // Glyphs of non-black fonts (e.g. defined in a XeTeX document) can't change their color. CharProperty<Color> &color = (_fontColor.get() != Color::BLACK) ? _fontColor : _color; - bool applyColor = color.get() != Color::BLACK; + bool applyColor = color.get() != Color::BLACK || (SVGElement::USE_CURRENTCOLOR && SVGElement::CURRENTCOLOR == Color::BLACK); bool applyMatrix = !_matrix->isIdentity(); bool applyOpacity = !_opacity->isFillDefault(); if (!_groupNode) { @@ -85,16 +85,19 @@ void SVGCharPathHandler::appendChar (uint32_t c, double x, double y) { GlyphMetrics metrics; font->getGlyphMetrics(c, _vertical, metrics); x -= metrics.wl; - if (auto pf = font_cast<const PhysicalFont*>(font)) { - // Center glyph between top and bottom border of the TFM box. - // This is just an approximation used until I find a way to compute - // the exact location in vertical mode. - GlyphMetrics exact_metrics; - pf->getExactGlyphBox(c, exact_metrics, false, nullptr); - y += exact_metrics.h+(metrics.d-exact_metrics.h-exact_metrics.d)/2; + if (_vertical) { + auto physicalFont = font_cast<const PhysicalFont *>(font); + if (!physicalFont) + y += metrics.d; + else { + // Center glyph between top and bottom border of the TFM box. + // This is just an approximation used until I find a way to compute + // the exact location in vertical mode. + GlyphMetrics exact_metrics; + physicalFont->getExactGlyphBox(c, exact_metrics, false, nullptr); + y += exact_metrics.h + (metrics.d - exact_metrics.h - exact_metrics.d) / 2; + } } - else - y += metrics.d; } Matrix rotation(1); if (_vertical && !font->verticalLayout()) { diff --git a/dviware/dvisvgm/src/SVGCharTspanTextHandler.cpp b/dviware/dvisvgm/src/SVGCharTspanTextHandler.cpp index 9c23f33050..426934f426 100644 --- a/dviware/dvisvgm/src/SVGCharTspanTextHandler.cpp +++ b/dviware/dvisvgm/src/SVGCharTspanTextHandler.cpp @@ -46,7 +46,7 @@ void SVGCharTspanTextHandler::appendChar (uint32_t c, double x, double y) { } // Apply text color changes only if the color of the entire font is black. // Glyphs of non-black fonts (e.g. defined in a XeTeX document) can't change their color. - bool applyColor = _color.get() != Color::BLACK && _font.get()->color() == Color::BLACK; + bool applyColor = _color.get() != Color::BLACK || (SVGElement::USE_CURRENTCOLOR && _font.get()->color() == Color::BLACK); bool applyOpacity = !_opacity->isFillDefault(); if (_xchanged || _ychanged || (_color.changed() && applyColor) || (_opacity.changed() && applyOpacity)) { _tspanNode = pushContextNode(util::make_unique<SVGElement>("tspan")); diff --git a/dviware/dvisvgm/src/SVGElement.cpp b/dviware/dvisvgm/src/SVGElement.cpp index 68f7d2231c..b0f1db925c 100644 --- a/dviware/dvisvgm/src/SVGElement.cpp +++ b/dviware/dvisvgm/src/SVGElement.cpp @@ -27,6 +27,9 @@ using namespace std; +bool SVGElement::USE_CURRENTCOLOR=false; +Color SVGElement::CURRENTCOLOR; + void SVGElement::setClipPathUrl (const string &url) { if (!url.empty()) @@ -41,7 +44,9 @@ void SVGElement::setClipRule (FillRule rule) { void SVGElement::setFillColor (Color color, bool skipBlack) { - if (color != Color::BLACK || !skipBlack) + if (USE_CURRENTCOLOR && color == CURRENTCOLOR) + addAttribute("fill", "currentColor"); + else if (color != Color::BLACK || !skipBlack) addAttribute("fill", color.svgColorString()); } @@ -108,7 +113,7 @@ void SVGElement::setPoints (const vector<DPair> &points) { void SVGElement::setStrokeColor (Color color) { - addAttribute("stroke", color.svgColorString()); + addAttribute("stroke", USE_CURRENTCOLOR && color == CURRENTCOLOR ? "currentColor" : color.svgColorString()); } diff --git a/dviware/dvisvgm/src/SVGElement.hpp b/dviware/dvisvgm/src/SVGElement.hpp index 632b6a4a84..3197cfc115 100644 --- a/dviware/dvisvgm/src/SVGElement.hpp +++ b/dviware/dvisvgm/src/SVGElement.hpp @@ -58,6 +58,9 @@ class SVGElement : public XMLElement { void setStrokeWidth (double width); void setStrokeMiterLimit (double limit); void setTransform (const Matrix &matrix); + + static bool USE_CURRENTCOLOR; ///< if true, apply color value "currentColor" + static Color CURRENTCOLOR; ///< color to be replaced with "currentColor" }; #endif diff --git a/dviware/dvisvgm/src/SVGSingleCharTextHandler.cpp b/dviware/dvisvgm/src/SVGSingleCharTextHandler.cpp index d2a4f53ad1..1dcab96317 100644 --- a/dviware/dvisvgm/src/SVGSingleCharTextHandler.cpp +++ b/dviware/dvisvgm/src/SVGSingleCharTextHandler.cpp @@ -29,7 +29,7 @@ void SVGSingleCharTextHandler::appendChar (uint32_t c, double x, double y) { textNode->append(XMLString(font->unicode(c), false)); // Apply color changes only if the color differs from black and if the font color itself is black. // Glyphs from non-black fonts (e.g. defined in a XeTeX document) can't change their color. - if (_color.get() != Color::BLACK && font->color() == Color::BLACK) + if (font->color() == Color::BLACK && (_color.get() != Color::BLACK || (SVGElement::USE_CURRENTCOLOR && SVGElement::CURRENTCOLOR == Color::BLACK))) textNode->setFillColor(_color); _color.changed(false); if (!_opacity->isFillDefault()) diff --git a/dviware/dvisvgm/src/SVGTree.hpp b/dviware/dvisvgm/src/SVGTree.hpp index 0453e53ac3..a368932d36 100644 --- a/dviware/dvisvgm/src/SVGTree.hpp +++ b/dviware/dvisvgm/src/SVGTree.hpp @@ -92,8 +92,8 @@ class SVGTree { private: XMLDocument _doc; - SVGElement *_root, *_page, *_defs; - XMLCData *_styleCDataNode; + SVGElement *_root=nullptr, *_page=nullptr, *_defs=nullptr; + XMLCData *_styleCDataNode=nullptr; std::unique_ptr<SVGCharHandler> _charHandler; std::stack<SVGElement*> _defsContextStack; std::stack<SVGElement*> _pageContextStack; diff --git a/dviware/dvisvgm/src/SpecialHandler.hpp b/dviware/dvisvgm/src/SpecialHandler.hpp index 81c3146d35..860cfdea61 100644 --- a/dviware/dvisvgm/src/SpecialHandler.hpp +++ b/dviware/dvisvgm/src/SpecialHandler.hpp @@ -37,15 +37,14 @@ struct SpecialException : public MessageException { class SpecialHandler { - friend class SpecialManager; public: virtual ~SpecialHandler () =default; - virtual const char* info () const=0; - virtual const char* name () const=0; - virtual std::vector<const char*> prefixes() const =0; + virtual const char* info () const =0; + virtual const char* name () const =0; + virtual std::vector<const char*> prefixes () const =0; virtual void setDviScaleFactor (double dvi2bp) {} virtual void preprocess (const std::string &prefix, std::istream &is, SpecialActions &actions) {} - virtual bool process (const std::string &prefix, std::istream &is, SpecialActions &actions)=0; + virtual bool process (const std::string &prefix, std::istream &is, SpecialActions &actions) =0; virtual void dviPreprocessingFinished () {} virtual void dviBeginPage (unsigned pageno, SpecialActions &actions) {} virtual void dviEndPage (unsigned pageno, SpecialActions &actions) {} diff --git a/dviware/dvisvgm/src/SpecialManager.hpp b/dviware/dvisvgm/src/SpecialManager.hpp index 55da303b70..ed97f7f5be 100644 --- a/dviware/dvisvgm/src/SpecialManager.hpp +++ b/dviware/dvisvgm/src/SpecialManager.hpp @@ -21,12 +21,14 @@ #ifndef SPECIALMANAGER_HPP #define SPECIALMANAGER_HPP +#include <algorithm> #include <memory> #include <ostream> #include <string> #include <unordered_map> #include <vector> #include "SpecialHandler.hpp" +#include "utility.hpp" class SpecialActions; @@ -38,6 +40,14 @@ class SpecialManager { public: SpecialManager (const SpecialManager &) =delete; static SpecialManager& instance (); + + template <class Handler> + static void registerHandler (const std::vector<std::string> &ignoredHandlerNames) { + const char *name = Handler::handlerName(); + if (!name || find(ignoredHandlerNames.begin(), ignoredHandlerNames.end(), std::string(name)) == ignoredHandlerNames.end()) + instance().registerHandler(util::make_unique<Handler>()); + } + void registerHandler (std::unique_ptr<SpecialHandler> handler); void registerHandlers (std::vector<std::unique_ptr<SpecialHandler>> &handlers, const char *ignorelist); void unregisterHandlers (); diff --git a/dviware/dvisvgm/src/StreamReader.cpp b/dviware/dvisvgm/src/StreamReader.cpp index 196ce7affa..1513ae97db 100644 --- a/dviware/dvisvgm/src/StreamReader.cpp +++ b/dviware/dvisvgm/src/StreamReader.cpp @@ -40,7 +40,7 @@ istream& StreamReader::replaceStream (istream &in) { uint32_t StreamReader::readUnsigned (int bytes) { uint32_t ret = 0; for (bytes--; bytes >= 0 && !_is->eof(); bytes--) { - uint32_t b = uint32_t(_is->get()); + auto b = uint32_t(_is->get()); ret |= b << (8*bytes); } return ret; @@ -62,7 +62,7 @@ uint32_t StreamReader::readUnsigned (int n, HashFunction &hashfunc) { * @param[in] bytes number of bytes to read (max. 4) * @return read integer */ int32_t StreamReader::readSigned (int bytes) { - uint32_t ret = uint32_t(_is->get()); + auto ret = uint32_t(_is->get()); if (ret & 128) // negative value? ret |= 0xffffff00; for (bytes-=2; bytes >= 0 && !_is->eof(); bytes--) @@ -84,12 +84,12 @@ int32_t StreamReader::readSigned (int n, HashFunction &hashfunc) { /** Reads a string terminated by a 0-byte. */ string StreamReader::readString () { - if (!_is) - throw StreamReaderException("no stream assigned"); string ret; - while (!_is->eof() && _is->peek() > 0) - ret += char(_is->get()); - _is->get(); // skip 0-byte + if (_is) { + while (!_is->eof() && _is->peek() > 0) + ret += char(_is->get()); + _is->get(); // skip 0-byte + } return ret; } @@ -102,7 +102,7 @@ string StreamReader::readString (HashFunction &hashfunc, bool finalZero) { string ret = readString(); hashfunc.update(ret.data(), ret.length()); if (finalZero) - hashfunc.update(0, 1); + hashfunc.update(nullptr, 1); return ret; } @@ -111,11 +111,11 @@ string StreamReader::readString (HashFunction &hashfunc, bool finalZero) { * @param[in] length number of characters to read * @return the string read */ string StreamReader::readString (int length) { - if (!_is) - throw StreamReaderException("no stream assigned"); - length = max(0, length); - string str(length, '\0'); - _is->read(&str[0], length); // read 'length' bytes and append '\0' + string str; + if (_is) { + str.resize(max(0, length)); + _is->read(&str[0], streamsize(str.length())); // read 'length' bytes and append '\0' + } return str; } @@ -149,7 +149,7 @@ vector<uint8_t> StreamReader::readBytes (int n, HashFunction &hashfunc) { int StreamReader::readByte (HashFunction &hashfunc) { int ret = readByte(); if (ret >= 0) { - char c = ret & 0xff; + char c = char(ret & 0xff); hashfunc.update(&c, 1); } return ret; diff --git a/dviware/dvisvgm/src/StreamReader.hpp b/dviware/dvisvgm/src/StreamReader.hpp index 138751c33c..f775cd3bac 100644 --- a/dviware/dvisvgm/src/StreamReader.hpp +++ b/dviware/dvisvgm/src/StreamReader.hpp @@ -50,6 +50,7 @@ class StreamReader { int readByte (HashFunction &hashfunc); void seek (std::streampos pos, std::ios::seekdir dir) {_is->seekg(pos, dir);} void seek (std::streampos pos) {_is->seekg(pos);} + void skip (std::streampos n) {_is->seekg(n, std::ios::cur);} std::streampos tell () const {return _is->tellg();} int peek () const {return _is->peek();} diff --git a/dviware/dvisvgm/src/TFM.cpp b/dviware/dvisvgm/src/TFM.cpp index c29de267bb..e2ba673647 100644 --- a/dviware/dvisvgm/src/TFM.cpp +++ b/dviware/dvisvgm/src/TFM.cpp @@ -20,7 +20,6 @@ #include <fstream> #include <vector> -#include "FileFinder.hpp" #include "Length.hpp" #include "Message.hpp" #include "StreamReader.hpp" @@ -35,47 +34,46 @@ using namespace std; * @param[in] n number of words to be read */ template <typename T> static void read_words (StreamReader &reader, vector<T> &v, unsigned n) { - v.clear(); v.resize(n); for (unsigned i=0; i < n; i++) v[i] = reader.readUnsigned(4); } -TFM::TFM (istream &is) : _checksum(0), _firstChar(0), _lastChar(0), _designSize(0), _ascent(0), _descent(0) { +void TFM::read (istream &is) { if (!is) return; is.seekg(0); StreamReader reader(is); - uint16_t lf = uint16_t(reader.readUnsigned(2)); // length of entire file in 4 byte words - uint16_t lh = uint16_t(reader.readUnsigned(2)); // length of header in 4 byte words - _firstChar= uint16_t(reader.readUnsigned(2)); // smallest character code in font - _lastChar = uint16_t(reader.readUnsigned(2)); // largest character code in font - uint16_t nw = uint16_t(reader.readUnsigned(2)); // number of words in width table - uint16_t nh = uint16_t(reader.readUnsigned(2)); // number of words in height table - uint16_t nd = uint16_t(reader.readUnsigned(2)); // number of words in depth table - uint16_t ni = uint16_t(reader.readUnsigned(2)); // number of words in italic corr. table - uint16_t nl = uint16_t(reader.readUnsigned(2)); // number of words in lig/kern table - uint16_t nk = uint16_t(reader.readUnsigned(2)); // number of words in kern table - uint16_t ne = uint16_t(reader.readUnsigned(2)); // number of words in ext. char table - uint16_t np = uint16_t(reader.readUnsigned(2)); // number of font parameter words - - if (6+lh+(_lastChar-_firstChar+1)+nw+nh+nd+ni+nl+nk+ne+np != lf) + auto lf = uint16_t(reader.readUnsigned(2)); // length of entire file in 4 byte words + auto lh = uint16_t(reader.readUnsigned(2)); // length of header in 4 byte words + auto bc = uint16_t(reader.readUnsigned(2)); // smallest character code in font + auto ec = uint16_t(reader.readUnsigned(2)); // largest character code in font + auto nw = uint16_t(reader.readUnsigned(2)); // number of words in width table + auto nh = uint16_t(reader.readUnsigned(2)); // number of words in height table + auto nd = uint16_t(reader.readUnsigned(2)); // number of words in depth table + auto ni = uint16_t(reader.readUnsigned(2)); // number of words in italic corr. table + auto nl = uint16_t(reader.readUnsigned(2)); // number of words in lig/kern table + auto nk = uint16_t(reader.readUnsigned(2)); // number of words in kern table + auto ne = uint16_t(reader.readUnsigned(2)); // number of words in ext. char table + auto np = uint16_t(reader.readUnsigned(2)); // number of font parameter words + if (6+lh+(ec-bc+1)+nw+nh+nd+ni+nl+nk+ne+np != lf) throw FontMetricException("inconsistent length values"); - if (_firstChar >= _lastChar || _lastChar > 255 || ne > 256) + if (bc >= ec || ec > 255 || ne > 256) throw FontMetricException("character codes out of range"); - + _firstChar = bc; + _lastChar = ec; readHeader(reader); is.seekg(24+lh*4); // move to char info table readTables(reader, nw, nh, nd, ni); - is.seekg(4*(lf-np), ios::beg); // move to param section + is.seekg(4*(lf-np)); // move to param section readParameters(reader, np); } void TFM::readHeader (StreamReader &reader) { _checksum = reader.readUnsigned(4); - _designSize = double(FixWord(reader.readUnsigned(4)))*Length::pt2bp; + _designSize = double(FixWord(reader.readSigned(4)))*Length::pt2bp; } @@ -99,7 +97,7 @@ void TFM::readParameters (StreamReader &reader, int np) { _params.resize(7); np = min(np, 7); for (int i=0; i < np; i++) - _params[i] = reader.readUnsigned(4); + _params[i] = reader.readSigned(4); for (int i=np; i < 7; i++) _params[i] = 0; } @@ -134,7 +132,7 @@ double TFM::getQuad () const { /** Returns the index to the entry of the character info table that describes the metric of a given character. * @param[in] c character whose index is retrieved * @return table index for character c, or -1 if there's no entry */ -int TFM::charIndex (int c) const { +size_t TFM::charIndex (int c) const { if (c < _firstChar || c > _lastChar || size_t(c-_firstChar) >= _charInfoTable.size()) return -1; return c-_firstChar; @@ -151,8 +149,8 @@ int TFM::charIndex (int c) const { /** Returns the width of char c in PS point units. */ double TFM::getCharWidth (int c) const { - int index = charIndex(c); - if (index < 0) + size_t index = charIndex(c); + if (index == size_t(-1)) return 0; index = (_charInfoTable[index] >> 24) & 0xFF; return double(_widthTable[index]) * _designSize; @@ -161,8 +159,8 @@ double TFM::getCharWidth (int c) const { /** Returns the height of char c in PS point units. */ double TFM::getCharHeight (int c) const { - int index = charIndex(c); - if (index < 0) + size_t index = charIndex(c); + if (index == size_t(-1)) return 0; index = (_charInfoTable[index] >> 20) & 0x0F; return double(_heightTable[index]) * _designSize; @@ -171,8 +169,8 @@ double TFM::getCharHeight (int c) const { /** Returns the depth of char c in PS point units. */ double TFM::getCharDepth (int c) const { - int index = charIndex(c); - if (index < 0) + size_t index = charIndex(c); + if (index == size_t(-1)) return 0; index = (_charInfoTable[index] >> 16) & 0x0F; return double(_depthTable[index]) * _designSize; @@ -181,8 +179,8 @@ double TFM::getCharDepth (int c) const { /** Returns the italic correction of char c in PS point units. */ double TFM::getItalicCorr (int c) const { - int index = charIndex(c); - if (index < 0) + size_t index = charIndex(c); + if (index == size_t(-1)) return 0; index = (_charInfoTable[index] >> 10) & 0x3F; return double(_italicTable[index]) * _designSize; diff --git a/dviware/dvisvgm/src/TFM.hpp b/dviware/dvisvgm/src/TFM.hpp index 5e968ff201..dd3fa32401 100644 --- a/dviware/dvisvgm/src/TFM.hpp +++ b/dviware/dvisvgm/src/TFM.hpp @@ -32,7 +32,8 @@ class StreamReader; class TFM : public FontMetrics { public: - explicit TFM (std::istream &is); + TFM () =default; + void read (std::istream &is) override; double getCharWidth (int c) const override; double getCharHeight (int c) const override; double getCharDepth (int c) const override; @@ -46,15 +47,14 @@ class TFM : public FontMetrics { double getDescent () const override {return double(_descent)*_designSize;} bool verticalLayout () const override {return false;} uint32_t getChecksum () const override {return _checksum;} - uint16_t firstChar () const override {return _firstChar;} - uint16_t lastChar () const override {return _lastChar;} + uint32_t firstChar () const override {return _firstChar;} + uint32_t lastChar () const override {return _lastChar;} protected: - TFM () : _params(7) {} void readHeader (StreamReader &reader); void readTables (StreamReader &reader, int nw, int nh, int nd, int ni); void readParameters (StreamReader &reader, int np); - virtual int charIndex (int c) const; + virtual size_t charIndex (int c) const; void setCharRange (int firstchar, int lastchar) {_firstChar=firstchar; _lastChar=lastchar;} private: @@ -67,7 +67,7 @@ class TFM : public FontMetrics { std::vector<FixWord> _depthTable; ///< character depth in design size units std::vector<FixWord> _italicTable; ///< italic corrections in design size units std::vector<FixWord> _params; ///< values of the TFM's param section - FixWord _ascent, _descent; ///< max. height and depth + FixWord _ascent=0, _descent=0; ///< max. height and depth }; #endif diff --git a/dviware/dvisvgm/src/TpicSpecialHandler.cpp b/dviware/dvisvgm/src/TpicSpecialHandler.cpp index 86b49b1d20..e22970c31a 100644 --- a/dviware/dvisvgm/src/TpicSpecialHandler.cpp +++ b/dviware/dvisvgm/src/TpicSpecialHandler.cpp @@ -354,7 +354,7 @@ bool TpicSpecialHandler::process (const string &prefix, istream &is, SpecialActi } -vector<const char*> TpicSpecialHandler::prefixes() const { +vector<const char*> TpicSpecialHandler::prefixes () const { vector<const char*> pfx {"ar", "bk", "da", "dt", "fp", "ia", "ip", "pa", "pn", "sh", "sp", "tx", "wh"}; return pfx; } diff --git a/dviware/dvisvgm/src/TpicSpecialHandler.hpp b/dviware/dvisvgm/src/TpicSpecialHandler.hpp index e8a56649f8..341a6a441c 100644 --- a/dviware/dvisvgm/src/TpicSpecialHandler.hpp +++ b/dviware/dvisvgm/src/TpicSpecialHandler.hpp @@ -28,10 +28,11 @@ class TpicSpecialHandler : public SpecialHandler { public: TpicSpecialHandler (); - const char* info () const override {return "TPIC specials";} - const char* name () const override {return "tpic";} - std::vector<const char*> prefixes() const override; bool process (const std::string &prefix, std::istream &is, SpecialActions &actions) override; + const char* info () const override {return "TPIC specials";} + const char* name () const override {return handlerName();} + static const char* handlerName () {return "tpic";} + std::vector<const char*> prefixes () const override; double penwidth () const {return _penwidth;} double grayLevel () const {return _grayLevel;} Color fillColor (bool grayOnly) const; diff --git a/dviware/dvisvgm/src/XMLNode.cpp b/dviware/dvisvgm/src/XMLNode.cpp index d5342e4d1e..b3d13e6a00 100644 --- a/dviware/dvisvgm/src/XMLNode.cpp +++ b/dviware/dvisvgm/src/XMLNode.cpp @@ -527,7 +527,7 @@ ostream& XMLCData::write (ostream &os) const { void XMLCData::append (string &&str) { if (_data.empty()) - _data = move(str); + _data = std::move(str); else _data += str; } diff --git a/dviware/dvisvgm/src/dvisvgm.cpp b/dviware/dvisvgm/src/dvisvgm.cpp index 4c5bf550b2..5ba5998408 100644 --- a/dviware/dvisvgm/src/dvisvgm.cpp +++ b/dviware/dvisvgm/src/dvisvgm.cpp @@ -309,11 +309,11 @@ static void init_fontmap (const CommandLine &cmdline) { * options affecting the SVG output. */ static string svg_options_hash (const CommandLine &cmdline) { // options affecting the SVG output - vector<const CL::Option*> svg_options = { + const CL::Option* svg_options[] = { &cmdline.bboxOpt, &cmdline.clipjoinOpt, &cmdline.colornamesOpt, &cmdline.commentsOpt, - &cmdline.exactBboxOpt, &cmdline.fontFormatOpt, &cmdline.fontmapOpt, &cmdline.gradOverlapOpt, - &cmdline.gradSegmentsOpt, &cmdline.gradSimplifyOpt, &cmdline.linkmarkOpt, &cmdline.magOpt, - &cmdline.noFontsOpt, &cmdline.noMergeOpt, &cmdline.noSpecialsOpt, &cmdline.noStylesOpt, + &cmdline.currentcolorOpt, &cmdline.exactBboxOpt, &cmdline.fontFormatOpt, &cmdline.fontmapOpt, + &cmdline.gradOverlapOpt, &cmdline.gradSegmentsOpt, &cmdline.gradSimplifyOpt, &cmdline.linkmarkOpt, + &cmdline.magOpt, &cmdline.noFontsOpt, &cmdline.noMergeOpt, &cmdline.noSpecialsOpt, &cmdline.noStylesOpt, &cmdline.optimizeOpt, &cmdline.precisionOpt, &cmdline.relativeOpt, &cmdline.zoomOpt }; string idString = get_transformation_string(cmdline); @@ -345,6 +345,13 @@ static void set_variables (const CommandLine &cmdline) { SpecialActions::PROGRESSBAR_DELAY = cmdline.progressOpt.value(); } Color::SUPPRESS_COLOR_NAMES = !cmdline.colornamesOpt.given(); + if ((SVGElement::USE_CURRENTCOLOR = cmdline.currentcolorOpt.given())) { + Color color; + if (color.setRGBHexString(cmdline.currentcolorOpt.value())) + SVGElement::CURRENTCOLOR = color; + else + throw CL::CommandLineException("invalid color string '"+cmdline.currentcolorOpt.value()+"'"); + } SVGTree::CREATE_CSS = !cmdline.noStylesOpt.given(); SVGTree::USE_FONTS = !cmdline.noFontsOpt.given(); if (!SVGTree::setFontFormat(cmdline.fontFormatOpt.value())) { diff --git a/dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp b/dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp index d6a7f35bc4..889e011571 100644 --- a/dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp +++ b/dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp @@ -39,12 +39,12 @@ string SVGOptimizer::MODULE_SEQUENCE; SVGOptimizer::SVGOptimizer (SVGTree *svg) : _svg(svg) { // optimizer modules available to the user; must be listed in default order // _moduleEntries.emplace_back(ModuleEntry("remove-ws", util::make_unique<WSNodeRemover>())); - _moduleEntries.emplace_back(ModuleEntry("simplify-text", util::make_unique<TextSimplifier>())); - _moduleEntries.emplace_back(ModuleEntry("simplify-transform", util::make_unique<TransformSimplifier>())); - _moduleEntries.emplace_back(ModuleEntry("group-attributes", util::make_unique<AttributeExtractor>())); - _moduleEntries.emplace_back(ModuleEntry("collapse-groups", util::make_unique<GroupCollapser>())); - _moduleEntries.emplace_back(ModuleEntry("remove-clippaths", util::make_unique<RedundantElementRemover>())); - _moduleEntries.emplace_back(ModuleEntry("reassign-clippaths", util::make_unique<ClipPathReassigner>())); + _moduleEntries.emplace_back("simplify-text", util::make_unique<TextSimplifier>()); + _moduleEntries.emplace_back("simplify-transform", util::make_unique<TransformSimplifier>()); + _moduleEntries.emplace_back("group-attributes", util::make_unique<AttributeExtractor>()); + _moduleEntries.emplace_back("collapse-groups", util::make_unique<GroupCollapser>()); + _moduleEntries.emplace_back("remove-clippaths", util::make_unique<RedundantElementRemover>()); + _moduleEntries.emplace_back("reassign-clippaths", util::make_unique<ClipPathReassigner>()); } diff --git a/dviware/dvisvgm/src/options.dtd b/dviware/dvisvgm/src/options.dtd index 43f75b1691..1a2349b002 100644 --- a/dviware/dvisvgm/src/options.dtd +++ b/dviware/dvisvgm/src/options.dtd @@ -41,7 +41,7 @@ <!ELEMENT arg EMPTY> <!ATTLIST arg - default NMTOKEN #IMPLIED + default CDATA #IMPLIED name CDATA #REQUIRED optional (yes|no) #IMPLIED type NMTOKEN #REQUIRED> diff --git a/dviware/dvisvgm/src/options.xml b/dviware/dvisvgm/src/options.xml index 889fe7f081..bd7867970f 100644 --- a/dviware/dvisvgm/src/options.xml +++ b/dviware/dvisvgm/src/options.xml @@ -66,6 +66,10 @@ <option long="comments"> <description>add comments with additional information</description> </option> + <option long="currentcolor"> + <arg type="string" name="color" default="#000" optional="yes"/> + <description>replace given color with 'currentColor'</description> + </option> <option long="embed-bitmaps"> <description>prevent references to external bitmap files</description> </option> diff --git a/dviware/dvisvgm/src/ttf/HmtxTable.cpp b/dviware/dvisvgm/src/ttf/HmtxTable.cpp index 6e849768fd..e5dc63c7e8 100644 --- a/dviware/dvisvgm/src/ttf/HmtxTable.cpp +++ b/dviware/dvisvgm/src/ttf/HmtxTable.cpp @@ -57,6 +57,6 @@ void HmtxTable::updateWidthData (uint32_t c, int16_t xmin, int16_t xmax) { _runLengthOfAdvWidth++; else _runLengthOfAdvWidth = 1; - _widthInfos.emplace_back(CharWidthInfo(xmin, w)); + _widthInfos.emplace_back(xmin, w); ttfWriter()->updateGlobalAdvanceWidth(w, _widthInfos.size()-_runLengthOfAdvWidth+1); }
\ No newline at end of file diff --git a/dviware/dvisvgm/src/ttf/TTFWriter.cpp b/dviware/dvisvgm/src/ttf/TTFWriter.cpp index 2dacdfc567..a64f1ff641 100644 --- a/dviware/dvisvgm/src/ttf/TTFWriter.cpp +++ b/dviware/dvisvgm/src/ttf/TTFWriter.cpp @@ -368,14 +368,14 @@ bool TTFWriter::convertTTFToWOFF (istream &is, ostream &os) { // read and process TTF header vector<char> bufvec(12, 0); is.read(&bufvec[0], 12); - buffers.emplace_back(TableBuffer(0, std::move(bufvec))); + buffers.emplace_back(0, std::move(bufvec)); int numTables = buffers.back().getUInt16(4); // read and process table records bufvec.clear(); bufvec.resize(4 * 4 * numTables); is.read(&bufvec[0], 4 * 4 * numTables); - buffers.emplace_back(TableBuffer(0, std::move(bufvec))); + buffers.emplace_back(0, std::move(bufvec)); struct TableRecord { TableRecord (const TableBuffer &buf, size_t ofs) @@ -389,7 +389,7 @@ bool TTFWriter::convertTTFToWOFF (istream &is, ostream &os) { tableRecords.reserve(numTables); const TableBuffer &recbuf = buffers.back(); for (int i=0; i < numTables; i++) - tableRecords.emplace_back(TableRecord(recbuf, 16*i)); + tableRecords.emplace_back(recbuf, 16*i); // read and process tables for (const TableRecord &record : tableRecords) { @@ -398,9 +398,9 @@ bool TTFWriter::convertTTFToWOFF (istream &is, ostream &os) { is.seekg(record.offset); is.read(&bufvec[0], record.length); if (record.tag == TTFTable::name2id("head")) - buffers.emplace_back(TableBuffer(record.tag, std::move(bufvec), HeadTable::offsetToChecksum())); + buffers.emplace_back(record.tag, std::move(bufvec), HeadTable::offsetToChecksum()); else - buffers.emplace_back(TableBuffer(record.tag, std::move(bufvec))); + buffers.emplace_back(record.tag, std::move(bufvec)); } return ttf_to_woff(std::move(buffers), os); } diff --git a/dviware/dvisvgm/src/ttf/VmtxTable.cpp b/dviware/dvisvgm/src/ttf/VmtxTable.cpp index 6873bac9d2..ad695763d1 100644 --- a/dviware/dvisvgm/src/ttf/VmtxTable.cpp +++ b/dviware/dvisvgm/src/ttf/VmtxTable.cpp @@ -52,6 +52,6 @@ void VmtxTable::updateHeightData (uint32_t c, int16_t ymin, int16_t ymax) { _runLengthOfAdvHeight++; else _runLengthOfAdvHeight = 1; - _heightInfos.emplace_back(CharHeightInfo(ymin, h)); + _heightInfos.emplace_back(ymin, h); ttfWriter()->updateGlobalAdvanceHeight(h, _heightInfos.size()-_runLengthOfAdvHeight+1); }
\ No newline at end of file diff --git a/dviware/dvisvgm/src/utility.cpp b/dviware/dvisvgm/src/utility.cpp index 947be91634..8492cbdeed 100644 --- a/dviware/dvisvgm/src/utility.cpp +++ b/dviware/dvisvgm/src/utility.cpp @@ -58,7 +58,7 @@ vector<double> math::svd (const double (&m)[2][2]) { theta = (a2-a1)/2; } } - return vector<double>{phi, sx, sy, theta}; + return {phi, sx, sy, theta}; } @@ -68,7 +68,7 @@ vector<double> math::svd (const double (&m)[2][2]) { * @param[in] t1 upper interval boundary * @param[in] n number of slices the interval is divided into * @param[in] f function to integrate */ -double math::integral (double t0, double t1, int n, const std::function<double(double)> &f) { +double math::integral (double t0, double t1, int n, const function<double(double)> &f) { double ti = t0, ui=0; double h = (t1-t0)/n; for (int i=0; i < n; i++) { @@ -103,7 +103,7 @@ double math::normalize_0_2pi (double rad) { * @param[in] str the string to process * @param[in] ws characters treated as whitespace * @return the trimmed string */ -string util::trim (const std::string &str, const char *ws) { +string util::trim (const string &str, const char *ws) { auto first = str.find_first_not_of(ws); if (first == string::npos) return ""; @@ -183,13 +183,8 @@ string util::tolower (const string &str) { /** Converts a double to a string and strips redundant trailing digits/dots. */ string util::to_string (double val) { string str = std::to_string(val); - if (str.find('.') != string::npos) { // double value and not an integer? - auto pos = str.find_last_not_of('0'); - if (pos != string::npos) // trailing zeros - str.erase(pos+1, string::npos); - if (str.back() == '.') // trailing dot? - str.pop_back(); - } + str.erase(str.find_last_not_of('0')+1, string::npos); + str.erase(str.find_last_not_of('.')+1, string::npos); return str; } @@ -206,11 +201,69 @@ int util::ilog10 (int n) { } +/** Reads an integer string of the form (+|-)?[0-9]+ from an input stream + * ana appends it to a given one. + * @param[in] is stream to read from + * @param[out] str the read string is appended to this one + * @param[in] allow_leading_sign true if the first character may be '+' or '-' + * @return true if the string coule be read successfully */ +static bool read_int_string (istream &is, string &str, bool allow_leading_sign=true) { + string intstr; + if (is.peek() == '-' || is.peek() == '+') { + if (!allow_leading_sign) + return false; + intstr += char(is.get()); + if (!isdigit(is.peek())) + return false; + } + while (isdigit(is.peek())) + intstr += char(is.get()); + str += intstr; + return !intstr.empty(); +} + + +/** Reads and parses a double from an input stream. + * @param[in] is stream to read from + * @param[out] value the read double value + * @return true if the value was read and parsed successfully */ +bool util::read_double (istream &is, double &value) { + is >> ws; + string numstr; + // read optional leading sign + bool plusminus = (is.peek() == '-' || is.peek() == '+'); + if (plusminus) + numstr += char(is.get()); + // read optional integer part (before decimal dot) + read_int_string(is, numstr, !plusminus); + if (is.peek() == '.') { + numstr += char(is.get()); + // read fractional part (after decimal dot) + if (!read_int_string(is, numstr, false)) + return false; + } + // read optional exponential part + if (std::tolower(is.peek()) == 'e') { + numstr += char(is.get()); + if (!read_int_string(is, numstr)) + return false; + } + try { + size_t count; + value = stod(numstr, &count); + return count == numstr.length(); + } + catch (...) { + return false; + } +} + + /** Returns the contents of a file. * @param[in] fname name/path of the file */ string util::read_file_contents (const string &fname) { ifstream ifs(fname, ios::binary); - return string(istreambuf_iterator<char>(ifs.rdbuf()), istreambuf_iterator<char>()); + return {istreambuf_iterator<char>(ifs.rdbuf()), istreambuf_iterator<char>()}; } diff --git a/dviware/dvisvgm/src/utility.hpp b/dviware/dvisvgm/src/utility.hpp index 9b1b7006ad..ee272e22ec 100644 --- a/dviware/dvisvgm/src/utility.hpp +++ b/dviware/dvisvgm/src/utility.hpp @@ -72,6 +72,7 @@ std::string mimetype (const std::string &fname); std::vector<std::string> split (const std::string &str, const std::string &sep); int ilog10 (int n); +bool read_double (std::istream &is, double &value); std::string read_file_contents (const std::string &fname); void write_file_contents (const std::string &fname, std::string::iterator start, std::string::iterator end); diff --git a/dviware/dvisvgm/tests/GraphicsPathParserTest.cpp b/dviware/dvisvgm/tests/GraphicsPathParserTest.cpp index 7de23c9374..93615ca536 100644 --- a/dviware/dvisvgm/tests/GraphicsPathParserTest.cpp +++ b/dviware/dvisvgm/tests/GraphicsPathParserTest.cpp @@ -150,7 +150,20 @@ TEST(GraphicsPathParserTest, combined) { } -TEST(GraphicsPathParserTest, error) { +TEST(GraphicsPathParserTest, floats) { + GraphicsPathParser<double> parser; + auto path = parser.parse("M10 10.1L20.2 50.3Q 100 100 -10.1 -10.2 Z C 10e-1 2e2 30 40 50 60Z"); + ostringstream oss; + path.writeSVG(oss, false); + EXPECT_EQ(oss.str(), "M10 10.1L20.2 50.3Q100 100-10.1-10.2ZC1 200 30 40 50 60Z"); + oss.str(""); + path = parser.parse("m10 10.1l20.2 50.3q 100 100 -10.1 -10.2 z c 10 20 30 40 50 60 z"); + path.writeSVG(oss, false); + EXPECT_EQ(oss.str(), "M10 10.1L30.2 60.4Q130.2 160.4 20.1 50.2ZC20 30.1 40 50.1 60 70.1Z"); +} + + +TEST(GraphicsPathParserTest, error1) { GraphicsPathParser<int> parser; EXPECT_THROW(parser.parse("10 20"), GraphicsPathParserException); // missing command EXPECT_THROW(parser.parse("M10 "), GraphicsPathParserException); // missing y-coordinate @@ -161,3 +174,15 @@ TEST(GraphicsPathParserTest, error) { EXPECT_THROW(parser.parse("A 10 20 45 2 0 100 100"), GraphicsPathParserException); // invalid large-arc-flag EXPECT_THROW(parser.parse("A 10 20 45 0 5 100 100"), GraphicsPathParserException); // invalid sweep-flag } + + +TEST(GraphicsPathParserTest, error2) { + GraphicsPathParser<double> parser; + EXPECT_THROW(parser.parse("10 20"), GraphicsPathParserException); // missing command + EXPECT_THROW(parser.parse("M"), GraphicsPathParserException); // missing coordinates + EXPECT_THROW(parser.parse("M10.1 "), GraphicsPathParserException); // missing y-coordinate + EXPECT_THROW(parser.parse("M 10 20..5"), GraphicsPathParserException); // invalid double dots + EXPECT_THROW(parser.parse("M 10 20.5."), GraphicsPathParserException); // invalid trailing dot + EXPECT_THROW(parser.parse("M 10-20.1+"), GraphicsPathParserException); // invalid trailing plus + EXPECT_THROW(parser.parse("M.+10.20"), GraphicsPathParserException); // invalid plus after dot +} diff --git a/dviware/dvisvgm/tests/JFMReaderTest.cpp b/dviware/dvisvgm/tests/JFMReaderTest.cpp index 6ca10c7a83..b641f677d9 100644 --- a/dviware/dvisvgm/tests/JFMReaderTest.cpp +++ b/dviware/dvisvgm/tests/JFMReaderTest.cpp @@ -40,7 +40,8 @@ class JFMReaderTest : public ::testing::Test { string fname = string(SRCDIR)+"/data/cidjmgr0-h.tfm"; ifstream ifs(fname, ios::binary); ASSERT_TRUE(ifs.is_open()) << "failed opening " << fname; - jfm = util::make_unique<JFM>(ifs); + jfm = util::make_unique<JFM>(); + jfm->read(ifs); } protected: @@ -51,8 +52,8 @@ class JFMReaderTest : public ::testing::Test { TEST_F(JFMReaderTest, properties) { EXPECT_EQ(jfm->getChecksum(), 0u); EXPECT_FALSE(jfm->verticalLayout()); - EXPECT_EQ(jfm->firstChar(), 0); - EXPECT_EQ(jfm->lastChar(), 1); + EXPECT_EQ(jfm->firstChar(), 0u); + EXPECT_EQ(jfm->lastChar(), 1u); EXPECT_EQ(jfm->minChar(), 13143u); EXPECT_EQ(jfm->maxChar(), 14696u); EXPECT_DOUBLE_EQ(jfm->getDesignSize(), 10.0*72.0/72.27); diff --git a/dviware/dvisvgm/tests/Makefile.am b/dviware/dvisvgm/tests/Makefile.am index 3ce3d363be..2667de0a52 100644 --- a/dviware/dvisvgm/tests/Makefile.am +++ b/dviware/dvisvgm/tests/Makefile.am @@ -246,6 +246,12 @@ MessageExceptionTest_SOURCES = MessageExceptionTest.cpp testutil.hpp MessageExceptionTest_CPPFLAGS = -I$(dvisvgm_srcdir)/tests/gtest/include $(LIBS_CFLAGS) MessageExceptionTest_LDADD = $(TESTLIBS) +TESTS += OFMReaderTest +check_PROGRAMS += OFMReaderTest +OFMReaderTest_SOURCES = OFMReaderTest.cpp testutil.hpp +OFMReaderTest_CPPFLAGS = -I$(dvisvgm_srcdir)/tests/gtest/include $(LIBS_CFLAGS) +OFMReaderTest_LDADD = $(TESTLIBS) + TESTS += PageRagesTest check_PROGRAMS += PageRagesTest PageRagesTest_SOURCES = PageRagesTest.cpp testutil.hpp diff --git a/dviware/dvisvgm/tests/Makefile.in b/dviware/dvisvgm/tests/Makefile.in index c0a3270987..2222a330a5 100644 --- a/dviware/dvisvgm/tests/Makefile.in +++ b/dviware/dvisvgm/tests/Makefile.in @@ -107,8 +107,8 @@ TESTS = hashcheck$(EXEEXT) BezierTest$(EXEEXT) BitmapTest$(EXEEXT) \ GraphicsPathParserTest$(EXEEXT) GraphicsPathTest$(EXEEXT) \ HashFunctionTest$(EXEEXT) JFMReaderTest$(EXEEXT) \ LengthTest$(EXEEXT) MapLineTest$(EXEEXT) MatrixTest$(EXEEXT) \ - MessageExceptionTest$(EXEEXT) PageRagesTest$(EXEEXT) \ - PageSizeTest$(EXEEXT) PairTest$(EXEEXT) \ + MessageExceptionTest$(EXEEXT) OFMReaderTest$(EXEEXT) \ + PageRagesTest$(EXEEXT) PageSizeTest$(EXEEXT) PairTest$(EXEEXT) \ PapersizeSpecialTest$(EXEEXT) PDFParserTest$(EXEEXT) \ PSInterpreterTest$(EXEEXT) RangeMapTest$(EXEEXT) \ ShadingPatchTest$(EXEEXT) SpecialManagerTest$(EXEEXT) \ @@ -138,8 +138,8 @@ check_PROGRAMS = hashcheck$(EXEEXT) BezierTest$(EXEEXT) \ GraphicsPathParserTest$(EXEEXT) GraphicsPathTest$(EXEEXT) \ HashFunctionTest$(EXEEXT) JFMReaderTest$(EXEEXT) \ LengthTest$(EXEEXT) MapLineTest$(EXEEXT) MatrixTest$(EXEEXT) \ - MessageExceptionTest$(EXEEXT) PageRagesTest$(EXEEXT) \ - PageSizeTest$(EXEEXT) PairTest$(EXEEXT) \ + MessageExceptionTest$(EXEEXT) OFMReaderTest$(EXEEXT) \ + PageRagesTest$(EXEEXT) PageSizeTest$(EXEEXT) PairTest$(EXEEXT) \ PapersizeSpecialTest$(EXEEXT) PDFParserTest$(EXEEXT) \ PSInterpreterTest$(EXEEXT) RangeMapTest$(EXEEXT) \ ShadingPatchTest$(EXEEXT) SpecialManagerTest$(EXEEXT) \ @@ -307,6 +307,9 @@ am_MessageExceptionTest_OBJECTS = \ MessageExceptionTest-MessageExceptionTest.$(OBJEXT) MessageExceptionTest_OBJECTS = $(am_MessageExceptionTest_OBJECTS) MessageExceptionTest_DEPENDENCIES = $(am__DEPENDENCIES_5) +am_OFMReaderTest_OBJECTS = OFMReaderTest-OFMReaderTest.$(OBJEXT) +OFMReaderTest_OBJECTS = $(am_OFMReaderTest_OBJECTS) +OFMReaderTest_DEPENDENCIES = $(am__DEPENDENCIES_5) am_PDFParserTest_OBJECTS = PDFParserTest-PDFParserTest.$(OBJEXT) PDFParserTest_OBJECTS = $(am_PDFParserTest_OBJECTS) PDFParserTest_DEPENDENCIES = $(am__DEPENDENCIES_5) @@ -454,6 +457,7 @@ am__depfiles_remade = ./$(DEPDIR)/BezierTest-BezierTest.Po \ ./$(DEPDIR)/MapLineTest-MapLineTest.Po \ ./$(DEPDIR)/MatrixTest-MatrixTest.Po \ ./$(DEPDIR)/MessageExceptionTest-MessageExceptionTest.Po \ + ./$(DEPDIR)/OFMReaderTest-OFMReaderTest.Po \ ./$(DEPDIR)/PDFParserTest-PDFParserTest.Po \ ./$(DEPDIR)/PSInterpreterTest-PSInterpreterTest.Po \ ./$(DEPDIR)/PageRagesTest-PageRagesTest.Po \ @@ -538,11 +542,12 @@ SOURCES = $(libgtest_la_SOURCES) $(BezierTest_SOURCES) \ $(HashFunctionTest_SOURCES) $(JFMReaderTest_SOURCES) \ $(LengthTest_SOURCES) $(MapLineTest_SOURCES) \ $(MatrixTest_SOURCES) $(MessageExceptionTest_SOURCES) \ - $(PDFParserTest_SOURCES) $(PSInterpreterTest_SOURCES) \ - $(PageRagesTest_SOURCES) $(PageSizeTest_SOURCES) \ - $(PairTest_SOURCES) $(PapersizeSpecialTest_SOURCES) \ - $(RangeMapTest_SOURCES) $(SVGOutputTest_SOURCES) \ - $(ShadingPatchTest_SOURCES) $(SpecialManagerTest_SOURCES) \ + $(OFMReaderTest_SOURCES) $(PDFParserTest_SOURCES) \ + $(PSInterpreterTest_SOURCES) $(PageRagesTest_SOURCES) \ + $(PageSizeTest_SOURCES) $(PairTest_SOURCES) \ + $(PapersizeSpecialTest_SOURCES) $(RangeMapTest_SOURCES) \ + $(SVGOutputTest_SOURCES) $(ShadingPatchTest_SOURCES) \ + $(SpecialManagerTest_SOURCES) \ $(SplittedCharInputBufferTest_SOURCES) \ $(StreamInputBufferTest_SOURCES) $(StreamReaderTest_SOURCES) \ $(StreamWriterTest_SOURCES) $(StringMatcherTest_SOURCES) \ @@ -570,11 +575,12 @@ DIST_SOURCES = $(libgtest_la_SOURCES) $(BezierTest_SOURCES) \ $(HashFunctionTest_SOURCES) $(JFMReaderTest_SOURCES) \ $(LengthTest_SOURCES) $(MapLineTest_SOURCES) \ $(MatrixTest_SOURCES) $(MessageExceptionTest_SOURCES) \ - $(PDFParserTest_SOURCES) $(PSInterpreterTest_SOURCES) \ - $(PageRagesTest_SOURCES) $(PageSizeTest_SOURCES) \ - $(PairTest_SOURCES) $(PapersizeSpecialTest_SOURCES) \ - $(RangeMapTest_SOURCES) $(SVGOutputTest_SOURCES) \ - $(ShadingPatchTest_SOURCES) $(SpecialManagerTest_SOURCES) \ + $(OFMReaderTest_SOURCES) $(PDFParserTest_SOURCES) \ + $(PSInterpreterTest_SOURCES) $(PageRagesTest_SOURCES) \ + $(PageSizeTest_SOURCES) $(PairTest_SOURCES) \ + $(PapersizeSpecialTest_SOURCES) $(RangeMapTest_SOURCES) \ + $(SVGOutputTest_SOURCES) $(ShadingPatchTest_SOURCES) \ + $(SpecialManagerTest_SOURCES) \ $(SplittedCharInputBufferTest_SOURCES) \ $(StreamInputBufferTest_SOURCES) $(StreamReaderTest_SOURCES) \ $(StreamWriterTest_SOURCES) $(StringMatcherTest_SOURCES) \ @@ -1141,6 +1147,9 @@ MatrixTest_LDADD = $(TESTLIBS) MessageExceptionTest_SOURCES = MessageExceptionTest.cpp testutil.hpp MessageExceptionTest_CPPFLAGS = -I$(dvisvgm_srcdir)/tests/gtest/include $(LIBS_CFLAGS) MessageExceptionTest_LDADD = $(TESTLIBS) +OFMReaderTest_SOURCES = OFMReaderTest.cpp testutil.hpp +OFMReaderTest_CPPFLAGS = -I$(dvisvgm_srcdir)/tests/gtest/include $(LIBS_CFLAGS) +OFMReaderTest_LDADD = $(TESTLIBS) PageRagesTest_SOURCES = PageRagesTest.cpp testutil.hpp PageRagesTest_CPPFLAGS = -I$(dvisvgm_srcdir)/tests/gtest/include $(LIBS_CFLAGS) PageRagesTest_LDADD = $(TESTLIBS) @@ -1421,6 +1430,10 @@ MessageExceptionTest$(EXEEXT): $(MessageExceptionTest_OBJECTS) $(MessageExceptio @rm -f MessageExceptionTest$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(MessageExceptionTest_OBJECTS) $(MessageExceptionTest_LDADD) $(LIBS) +OFMReaderTest$(EXEEXT): $(OFMReaderTest_OBJECTS) $(OFMReaderTest_DEPENDENCIES) $(EXTRA_OFMReaderTest_DEPENDENCIES) + @rm -f OFMReaderTest$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(OFMReaderTest_OBJECTS) $(OFMReaderTest_LDADD) $(LIBS) + PDFParserTest$(EXEEXT): $(PDFParserTest_OBJECTS) $(PDFParserTest_DEPENDENCIES) $(EXTRA_PDFParserTest_DEPENDENCIES) @rm -f PDFParserTest$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(PDFParserTest_OBJECTS) $(PDFParserTest_LDADD) $(LIBS) @@ -1574,6 +1587,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MapLineTest-MapLineTest.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MatrixTest-MatrixTest.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MessageExceptionTest-MessageExceptionTest.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OFMReaderTest-OFMReaderTest.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PDFParserTest-PDFParserTest.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PSInterpreterTest-PSInterpreterTest.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PageRagesTest-PageRagesTest.Po@am__quote@ # am--include-marker @@ -2111,6 +2125,20 @@ MessageExceptionTest-MessageExceptionTest.obj: MessageExceptionTest.cpp @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MessageExceptionTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o MessageExceptionTest-MessageExceptionTest.obj `if test -f 'MessageExceptionTest.cpp'; then $(CYGPATH_W) 'MessageExceptionTest.cpp'; else $(CYGPATH_W) '$(srcdir)/MessageExceptionTest.cpp'; fi` +OFMReaderTest-OFMReaderTest.o: OFMReaderTest.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(OFMReaderTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT OFMReaderTest-OFMReaderTest.o -MD -MP -MF $(DEPDIR)/OFMReaderTest-OFMReaderTest.Tpo -c -o OFMReaderTest-OFMReaderTest.o `test -f 'OFMReaderTest.cpp' || echo '$(srcdir)/'`OFMReaderTest.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/OFMReaderTest-OFMReaderTest.Tpo $(DEPDIR)/OFMReaderTest-OFMReaderTest.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='OFMReaderTest.cpp' object='OFMReaderTest-OFMReaderTest.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(OFMReaderTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o OFMReaderTest-OFMReaderTest.o `test -f 'OFMReaderTest.cpp' || echo '$(srcdir)/'`OFMReaderTest.cpp + +OFMReaderTest-OFMReaderTest.obj: OFMReaderTest.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(OFMReaderTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT OFMReaderTest-OFMReaderTest.obj -MD -MP -MF $(DEPDIR)/OFMReaderTest-OFMReaderTest.Tpo -c -o OFMReaderTest-OFMReaderTest.obj `if test -f 'OFMReaderTest.cpp'; then $(CYGPATH_W) 'OFMReaderTest.cpp'; else $(CYGPATH_W) '$(srcdir)/OFMReaderTest.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/OFMReaderTest-OFMReaderTest.Tpo $(DEPDIR)/OFMReaderTest-OFMReaderTest.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='OFMReaderTest.cpp' object='OFMReaderTest-OFMReaderTest.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(OFMReaderTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o OFMReaderTest-OFMReaderTest.obj `if test -f 'OFMReaderTest.cpp'; then $(CYGPATH_W) 'OFMReaderTest.cpp'; else $(CYGPATH_W) '$(srcdir)/OFMReaderTest.cpp'; fi` + PDFParserTest-PDFParserTest.o: PDFParserTest.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(PDFParserTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT PDFParserTest-PDFParserTest.o -MD -MP -MF $(DEPDIR)/PDFParserTest-PDFParserTest.Tpo -c -o PDFParserTest-PDFParserTest.o `test -f 'PDFParserTest.cpp' || echo '$(srcdir)/'`PDFParserTest.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/PDFParserTest-PDFParserTest.Tpo $(DEPDIR)/PDFParserTest-PDFParserTest.Po @@ -3012,6 +3040,13 @@ MessageExceptionTest.log: MessageExceptionTest$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +OFMReaderTest.log: OFMReaderTest$(EXEEXT) + @p='OFMReaderTest$(EXEEXT)'; \ + b='OFMReaderTest'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) PageRagesTest.log: PageRagesTest$(EXEEXT) @p='PageRagesTest$(EXEEXT)'; \ b='PageRagesTest'; \ @@ -3362,6 +3397,7 @@ distclean: distclean-recursive -rm -f ./$(DEPDIR)/MapLineTest-MapLineTest.Po -rm -f ./$(DEPDIR)/MatrixTest-MatrixTest.Po -rm -f ./$(DEPDIR)/MessageExceptionTest-MessageExceptionTest.Po + -rm -f ./$(DEPDIR)/OFMReaderTest-OFMReaderTest.Po -rm -f ./$(DEPDIR)/PDFParserTest-PDFParserTest.Po -rm -f ./$(DEPDIR)/PSInterpreterTest-PSInterpreterTest.Po -rm -f ./$(DEPDIR)/PageRagesTest-PageRagesTest.Po @@ -3470,6 +3506,7 @@ maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/MapLineTest-MapLineTest.Po -rm -f ./$(DEPDIR)/MatrixTest-MatrixTest.Po -rm -f ./$(DEPDIR)/MessageExceptionTest-MessageExceptionTest.Po + -rm -f ./$(DEPDIR)/OFMReaderTest-OFMReaderTest.Po -rm -f ./$(DEPDIR)/PDFParserTest-PDFParserTest.Po -rm -f ./$(DEPDIR)/PSInterpreterTest-PSInterpreterTest.Po -rm -f ./$(DEPDIR)/PageRagesTest-PageRagesTest.Po diff --git a/dviware/dvisvgm/tests/OFMReaderTest.cpp b/dviware/dvisvgm/tests/OFMReaderTest.cpp new file mode 100644 index 0000000000..efc6f05464 --- /dev/null +++ b/dviware/dvisvgm/tests/OFMReaderTest.cpp @@ -0,0 +1,128 @@ +/************************************************************************* +** OFMReaderTest.cpp ** +** ** +** This file is part of dvisvgm -- a fast DVI to SVG converter ** +** Copyright (C) 2005-2023 Martin Gieseking <martin.gieseking@uos.de> ** +** ** +** This program is free software; you can redistribute it and/or ** +** modify it under the terms of the GNU General Public License as ** +** published by the Free Software Foundation; either version 3 of ** +** the License, or (at your option) any later version. ** +** ** +** This program is distributed in the hope that it will be useful, but ** +** WITHOUT ANY WARRANTY; without even the implied warranty of ** +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** +** GNU General Public License for more details. ** +** ** +** You should have received a copy of the GNU General Public License ** +** along with this program; if not, see <http://www.gnu.org/licenses/>. ** +*************************************************************************/ + +#include <gtest/gtest.h> +#include <fstream> +#include <string> +#include <vector> +#include "Length.hpp" +#include "OFM.hpp" + +#ifndef SRCDIR +#define SRCDIR "." +#endif + +using namespace std; + + +class OFMReaderTest : public ::testing::Test { + public: + void SetUp () override { + string fname = string(SRCDIR)+"/data/omarab.ofm"; + ifstream ifs(fname, ios::binary); + ASSERT_TRUE(ifs.is_open()) << "failed to open " << fname; + ofm0.read(ifs); + scale0 = ofm0.getDesignSize(); + ifs.close(); + + fname = string(SRCDIR)+"/data/upjf-g.ofm"; + ifs.open(fname, ios::binary); + ASSERT_TRUE(ifs.is_open()) << "failed to open " << fname; + ofm1.read(ifs); + scale1 = ofm1.getDesignSize(); + } + + protected: + OFM0 ofm0; + OFM1 ofm1; + double scale0=0, scale1=0; +}; + + +TEST_F(OFMReaderTest, properties) { + EXPECT_EQ(ofm0.getChecksum(), 0x9DCC4880u); + EXPECT_FALSE(ofm0.verticalLayout()); + EXPECT_EQ(ofm0.firstChar(), 0x21u); + EXPECT_EQ(ofm0.lastChar(), 0x059Fu); + EXPECT_NEAR(ofm0.getDesignSize(), 10.0*Length::pt2bp, 0.000001); + + EXPECT_EQ(ofm1.getChecksum(), 0u); + EXPECT_FALSE(ofm1.verticalLayout()); + EXPECT_EQ(ofm1.firstChar(), 0x2600u); + EXPECT_EQ(ofm1.lastChar(), 0xFFFFu); + EXPECT_NEAR(ofm1.getDesignSize(), 10.0*Length::pt2bp, 0.000001); +} + + +TEST_F(OFMReaderTest, charWidth) { + EXPECT_NEAR(ofm0.getCharWidth(0x029D), 0.853*scale0, 0.0001); + EXPECT_NEAR(ofm0.getCharWidth(0x02A0), 0.444*scale0, 0.0001); + EXPECT_NEAR(ofm0.getCharWidth(0x1000), 0, 0.0001); + + EXPECT_NEAR(ofm1.getCharWidth(0x2600), 1.0*scale1, 0.0001); + EXPECT_NEAR(ofm1.getCharWidth(0xFF00), 0.5*scale1, 0.0001); + EXPECT_NEAR(ofm1.getCharWidth(0xFF01), 0.5*scale1, 0.0001); +} + + +TEST_F(OFMReaderTest, charHeight) { + EXPECT_NEAR(ofm0.getCharHeight(0x029D), 0.298*scale0, 0.0001); + EXPECT_NEAR(ofm0.getCharHeight(0x02A0), 0.685*scale0, 0.0001); + EXPECT_DOUBLE_EQ(ofm0.getCharHeight(0x1000), 0); + + EXPECT_NEAR(ofm1.getCharHeight(0x2600), 0.9*scale1, 0.0001); + EXPECT_NEAR(ofm1.getCharHeight(0xFF00), 0.9*scale1, 0.0001); + EXPECT_NEAR(ofm1.getCharHeight(0xFF01), 0.9*scale1, 0.0001); +} + + +TEST_F(OFMReaderTest, charDepth) { + EXPECT_NEAR(ofm0.getCharDepth(0x029D), 0.3*scale0, 0.0001); + EXPECT_NEAR(ofm0.getCharDepth(0x02A0), 0, 0.0001); + EXPECT_NEAR(ofm0.getCharDepth(0x1000), 0, 0.0001); + + EXPECT_NEAR(ofm1.getCharDepth(0x2600), 0.1*scale1, 0.0001); + EXPECT_NEAR(ofm1.getCharDepth(0xFF00), 0.1*scale1, 0.0001); + EXPECT_NEAR(ofm1.getCharDepth(0xFF01), 0.1*scale1, 0.0001); +} + + +TEST_F(OFMReaderTest, italicCorr) { + EXPECT_DOUBLE_EQ(ofm0.getItalicCorr(0x029D), 0); + EXPECT_DOUBLE_EQ(ofm0.getItalicCorr(0x02A0), 0); + EXPECT_DOUBLE_EQ(ofm0.getItalicCorr(0x1000), 0); + + EXPECT_DOUBLE_EQ(ofm1.getItalicCorr(0x2600), 0); + EXPECT_DOUBLE_EQ(ofm1.getItalicCorr(0xFF00), 0); + EXPECT_DOUBLE_EQ(ofm1.getItalicCorr(0xFF01), 0); +} + + +TEST_F(OFMReaderTest, params) { + EXPECT_NEAR(ofm0.getSpace(), 0.5*scale0, 0.0001); + EXPECT_NEAR(ofm0.getSpaceShrink(), 0.1*scale0, 0.0001); + EXPECT_NEAR(ofm0.getSpaceStretch(), 0.3*scale0, 0.0001); + EXPECT_NEAR(ofm0.getQuad(), 1.0*scale0, 0.0001); + + EXPECT_NEAR(ofm1.getSpace(), 0, 0.0001); + EXPECT_NEAR(ofm1.getSpaceShrink(), 0, 0.0001); + EXPECT_NEAR(ofm1.getSpaceStretch(), 0.1*scale1, 0.0001); + EXPECT_NEAR(ofm1.getQuad(), 1.0*scale1, 0.0001); +} diff --git a/dviware/dvisvgm/tests/TFMReaderTest.cpp b/dviware/dvisvgm/tests/TFMReaderTest.cpp index 40d40e2967..6e2b660fa6 100644 --- a/dviware/dvisvgm/tests/TFMReaderTest.cpp +++ b/dviware/dvisvgm/tests/TFMReaderTest.cpp @@ -40,7 +40,8 @@ class TFMReaderTest : public ::testing::Test { string fname = string(SRCDIR)+"/data/cmr10.tfm"; ifstream ifs(fname, ios::binary); ASSERT_TRUE(ifs.is_open()) << "failed opening " << fname; - tfm = util::make_unique<TFM>(ifs); + tfm = util::make_unique<TFM>(); + tfm->read(ifs); } protected: @@ -52,8 +53,8 @@ TEST_F(TFMReaderTest, properties) { ASSERT_NE(tfm, nullptr); EXPECT_EQ(tfm->getChecksum(), 0x4BF16079u); EXPECT_FALSE(tfm->verticalLayout()); - EXPECT_EQ(tfm->firstChar(), 0); - EXPECT_EQ(tfm->lastChar(), 127); + EXPECT_EQ(tfm->firstChar(), 0u); + EXPECT_EQ(tfm->lastChar(), 127u); EXPECT_DOUBLE_EQ(tfm->getDesignSize(), 10.0*72.0/72.27); } diff --git a/dviware/dvisvgm/tests/UtilityTest.cpp b/dviware/dvisvgm/tests/UtilityTest.cpp index 4c920e417c..f5fda4a35b 100644 --- a/dviware/dvisvgm/tests/UtilityTest.cpp +++ b/dviware/dvisvgm/tests/UtilityTest.cpp @@ -188,3 +188,38 @@ TEST(UtilityTest, ilog2) { EXPECT_EQ(ilog2(uint32_t(0xffffffff >> i)), 31-i); } } + + +TEST(UtilityTest, read_double) { + istringstream iss("123 -456 .123 -.456 0.123 -0.456 +123.456 -123.456 10e-3 -1e-3 4.5e2 1.23e-3 2.30.4"); + double value=0; + EXPECT_TRUE(util::read_double(iss, value)); + EXPECT_NEAR(value, 123.0, 0.000001); + EXPECT_TRUE(util::read_double(iss, value)); + EXPECT_NEAR(value, -456.0, 0.000001); + EXPECT_TRUE(util::read_double(iss, value)); + EXPECT_NEAR(value, .123, 0.000001); + EXPECT_TRUE(util::read_double(iss, value)); + EXPECT_NEAR(value, -.456, 0.000001); + EXPECT_TRUE(util::read_double(iss, value)); + EXPECT_NEAR(value, .123, 0.000001); + EXPECT_TRUE(util::read_double(iss, value)); + EXPECT_NEAR(value, -.456, 0.000001); + EXPECT_TRUE(util::read_double(iss, value)); + EXPECT_NEAR(value, 123.456, 0.000001); + EXPECT_TRUE(util::read_double(iss, value)); + EXPECT_NEAR(value, -123.456, 0.000001); + EXPECT_TRUE(util::read_double(iss, value)); + EXPECT_NEAR(value, 10e-3, 0.000001); + EXPECT_TRUE(util::read_double(iss, value)); + EXPECT_NEAR(value, -1e-3, 0.000001); + EXPECT_TRUE(util::read_double(iss, value)); + EXPECT_NEAR(value, 4.5e2, 0.000001); + EXPECT_TRUE(util::read_double(iss, value)); + EXPECT_NEAR(value, 1.23e-3, 0.000001); + EXPECT_TRUE(util::read_double(iss, value)); + EXPECT_NEAR(value, 2.3, 0.000001); + EXPECT_TRUE(util::read_double(iss, value)); + EXPECT_NEAR(value, .4, 0.000001); + EXPECT_FALSE(util::read_double(iss, value)); // eof, no further characters to read +}
\ No newline at end of file diff --git a/dviware/dvisvgm/tests/data/Makefile.am b/dviware/dvisvgm/tests/data/Makefile.am index 52caa64fef..237979cc24 100644 --- a/dviware/dvisvgm/tests/data/Makefile.am +++ b/dviware/dvisvgm/tests/data/Makefile.am @@ -14,11 +14,13 @@ EXTRA_DIST = \ frktest-nf-cmp.svg \ frktest-wf-cmp.svg \ lmmono12-regular.otf \ + omarab.ofm \ + ot1.cmap \ sample.dvi \ sample-nf-cmp.svg \ sample.sfd \ sample-wf-cmp.svg \ sample_v2.dvi \ sample_v3.dvi \ - ot1.cmap + upjf-g.ofm diff --git a/dviware/dvisvgm/tests/data/Makefile.in b/dviware/dvisvgm/tests/data/Makefile.in index 6027ed575c..95e477202f 100644 --- a/dviware/dvisvgm/tests/data/Makefile.in +++ b/dviware/dvisvgm/tests/data/Makefile.in @@ -299,13 +299,15 @@ EXTRA_DIST = \ frktest-nf-cmp.svg \ frktest-wf-cmp.svg \ lmmono12-regular.otf \ + omarab.ofm \ + ot1.cmap \ sample.dvi \ sample-nf-cmp.svg \ sample.sfd \ sample-wf-cmp.svg \ sample_v2.dvi \ sample_v3.dvi \ - ot1.cmap + upjf-g.ofm all: all-am diff --git a/dviware/dvisvgm/tests/data/omarab.ofm b/dviware/dvisvgm/tests/data/omarab.ofm Binary files differnew file mode 100644 index 0000000000..a231c1d6e0 --- /dev/null +++ b/dviware/dvisvgm/tests/data/omarab.ofm diff --git a/dviware/dvisvgm/tests/data/upjf-g.ofm b/dviware/dvisvgm/tests/data/upjf-g.ofm Binary files differnew file mode 100644 index 0000000000..507aa833b4 --- /dev/null +++ b/dviware/dvisvgm/tests/data/upjf-g.ofm |