summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Build/source/texk/README4
-rw-r--r--Build/source/texk/dvisvgm/ChangeLog5
-rw-r--r--Build/source/texk/dvisvgm/Makefile.am3
-rw-r--r--Build/source/texk/dvisvgm/Makefile.in25
-rwxr-xr-xBuild/source/texk/dvisvgm/configure26
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.0.12-PATCHES/patch-03-texlive_gs_init13
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.0.12-PATCHES/patch-04-kpse_init14
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.0.12-PATCHES/patch-05-gcc-4.714
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontMap.cpp234
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1-PATCHES/TL-Changes (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12-PATCHES/TL-Changes)4
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/AUTHORS (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/AUTHORS)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/COPYING (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/COPYING)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/INSTALL (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/INSTALL)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/LGPL-2.1.txt (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/LGPL-2.1.txt)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/Makefile.am (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/Makefile.am)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/NEWS (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/NEWS)17
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/README (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/README)40
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/config.h.in (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/config.h.in)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/config.rpath (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/config.rpath)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/configure.ac (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/configure.ac)6
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/doc/Makefile.am (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/doc/Makefile.am)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/doc/dvisvgm.1 (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/doc/dvisvgm.1)106
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/doc/dvisvgm.txt.in (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/doc/dvisvgm.txt.in)90
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/Makefile.am (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/Makefile.am)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/auxiliary.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/auxiliary.h)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/bitmap.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/bitmap.h)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/curve.c (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/curve.c)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/curve.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/curve.h)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/decompose.c (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/decompose.c)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/decompose.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/decompose.h)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/lists.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/lists.h)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/potracelib.c (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/potracelib.c)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/potracelib.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/potracelib.h)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/progress.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/progress.h)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/trace.c (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/trace.c)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/trace.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/trace.h)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/BgColorSpecialHandler.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/BgColorSpecialHandler.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/BgColorSpecialHandler.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/BgColorSpecialHandler.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Bitmap.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Bitmap.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Bitmap.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Bitmap.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/BoundingBox.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/BoundingBox.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/BoundingBox.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/BoundingBox.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/CRC32.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/CRC32.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/CRC32.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/CRC32.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Calculator.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Calculator.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Calculator.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Calculator.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/CmdLineParserBase.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/CmdLineParserBase.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/CmdLineParserBase.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/CmdLineParserBase.h)4
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Color.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Color.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Color.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Color.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/ColorSpecialHandler.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/ColorSpecialHandler.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/ColorSpecialHandler.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/ColorSpecialHandler.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/CommandLine.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/CommandLine.cpp)74
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/CommandLine.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/CommandLine.h)14
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/DLLoader.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DLLoader.cpp)7
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/DLLoader.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DLLoader.h)4
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIActions.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIActions.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIActions.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIActions.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIReader.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIReader.cpp)6
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIReader.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIReader.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIToSVG.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIToSVG.cpp)13
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIToSVG.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIToSVG.h)4
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIToSVGActions.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIToSVGActions.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIToSVGActions.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIToSVGActions.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Directory.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Directory.cpp)3
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Directory.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Directory.h)3
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/DvisvgmSpecialHandler.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DvisvgmSpecialHandler.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/DvisvgmSpecialHandler.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DvisvgmSpecialHandler.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/EmSpecialHandler.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/EmSpecialHandler.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/EmSpecialHandler.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/EmSpecialHandler.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/FileFinder.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FileFinder.cpp)140
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/FileFinder.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FileFinder.h)7
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/FilePath.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FilePath.cpp)4
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/FilePath.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FilePath.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/FileSystem.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FileSystem.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/FileSystem.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FileSystem.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Font.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Font.cpp)74
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Font.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Font.h)32
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontCache.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontCache.cpp)10
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontCache.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontCache.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontEncoding.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontEncoding.cpp)31
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontEncoding.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontEncoding.h)4
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontEngine.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontEngine.cpp)84
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontEngine.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontEngine.h)11
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontManager.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontManager.cpp)68
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontManager.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontManager.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontMap.cpp302
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontMap.h75
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/GFGlyphTracer.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GFGlyphTracer.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/GFGlyphTracer.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GFGlyphTracer.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/GFReader.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GFReader.cpp)4
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/GFReader.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GFReader.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/GFTracer.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GFTracer.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/GFTracer.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GFTracer.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Ghostscript.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Ghostscript.cpp)55
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Ghostscript.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Ghostscript.h)5
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Glyph.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Glyph.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/GlyphTracerMessages.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GlyphTracerMessages.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/GraphicPath.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GraphicPath.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/InputBuffer.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/InputBuffer.cpp)10
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/InputBuffer.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/InputBuffer.h)34
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/InputReader.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/InputReader.cpp)77
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/InputReader.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/InputReader.h)15
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Length.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Length.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Length.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Length.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Makefile.am (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Makefile.am)21
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/MapLine.cpp275
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/MapLine.h72
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Matrix.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Matrix.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Matrix.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Matrix.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Message.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Message.cpp)32
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Message.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Message.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/MessageException.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/MessageException.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/MetafontWrapper.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/MetafontWrapper.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/MetafontWrapper.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/MetafontWrapper.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/MiKTeXCom.cpp89
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/MiKTeXCom.h51
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/PSInterpreter.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PSInterpreter.cpp)63
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/PSInterpreter.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PSInterpreter.h)3
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/PageRanges.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PageRanges.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/PageRanges.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PageRanges.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/PageSize.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PageSize.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/PageSize.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PageSize.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Pair.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Pair.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/PdfSpecialHandler.cpp76
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/PdfSpecialHandler.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontMap.h)45
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Process.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Process.cpp)5
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Process.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Process.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/PsSpecialHandler.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PsSpecialHandler.cpp)8
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/PsSpecialHandler.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PsSpecialHandler.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/SVGTree.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SVGTree.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/SVGTree.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SVGTree.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/SignalHandler.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SignalHandler.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/SignalHandler.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SignalHandler.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/SpecialActions.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SpecialActions.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/SpecialHandler.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SpecialHandler.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/SpecialManager.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SpecialManager.cpp)9
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/SpecialManager.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SpecialManager.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/StreamReader.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/StreamReader.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/StreamReader.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/StreamReader.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/StreamWriter.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/StreamWriter.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/StreamWriter.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/StreamWriter.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Subfont.cpp265
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Subfont.h102
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/System.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/System.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/System.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/System.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/TFM.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/TFM.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/TFM.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/TFM.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Terminal.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Terminal.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/Terminal.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Terminal.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/TpicSpecialHandler.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/TpicSpecialHandler.cpp)6
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/TpicSpecialHandler.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/TpicSpecialHandler.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/VFActions.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/VFActions.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/VFReader.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/VFReader.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/VFReader.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/VFReader.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/VectorStream.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/VectorStream.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLDocTypeNode.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLDocTypeNode.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLDocument.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLDocument.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLDocument.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLDocument.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLNode.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLNode.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLNode.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLNode.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLString.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLString.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLString.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLString.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/dvisvgm.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/dvisvgm.cpp)35
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/gzstream.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/gzstream.cpp)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/gzstream.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/gzstream.h)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/iapi.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/iapi.h)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/ierrors.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/ierrors.h)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/macros.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/macros.h)5
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/options.xml (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/options.xml)8
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/psdefs.psc (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/psdefs.psc)6
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/src/types.h (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/types.h)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/BoundingBoxTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/BoundingBoxTest.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/CRC32Test.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/CRC32Test.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/CalculatorTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/CalculatorTest.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/ColorSpecialTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/ColorSpecialTest.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/CommandLineTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/CommandLineTest.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/DirectoryTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/DirectoryTest.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/FileFinderTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/FileFinderTest.cpp)4
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/FilePathTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/FilePathTest.cpp)20
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/FileSystemTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/FileSystemTest.cpp)4
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/FontManagerTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/FontManagerTest.cpp)6
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/FontMapTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/FontMapTest.cpp)51
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/GFReaderTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/GFReaderTest.cpp)4
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/GraphicPathTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/GraphicPathTest.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/LengthTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/LengthTest.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/Makefile.am (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/Makefile.am)34
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/MapLineTest.cpp129
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/MatrixTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/MatrixTest.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/MessageExceptionTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/MessageExceptionTest.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/PSInterpreterTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/PSInterpreterTest.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/PageRagesTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/PageRagesTest.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/PageSizeTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/PageSizeTest.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/PairTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/PairTest.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/SplittedCharInputBufferTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/SplittedCharInputBufferTest.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/StreamInputBufferTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/StreamInputBufferTest.cpp)25
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/StreamReaderTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/StreamReaderTest.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/StreamWriterTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/StreamWriterTest.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/SubfontTest.cpp96
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/TypesTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/TypesTest.cpp)2
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/VectorStreamTest.cpp (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/VectorStreamTest.cpp)2
-rwxr-xr-xBuild/source/texk/dvisvgm/dvisvgm-1.1/tests/check-conv (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/check-conv)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/cmr10.600gf (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/cmr10.600gf)bin24244 -> 24244 bytes
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/frktest-nf-cmp.svg (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/frktest-nf-cmp.svg)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/frktest-wf-cmp.svg (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/frktest-wf-cmp.svg)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/frktest.dvi (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/frktest.dvi)bin2072 -> 2072 bytes
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/normalize.xsl (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/normalize.xsl)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/sample-nf-cmp.svg (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/sample-nf-cmp.svg)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/sample-wf-cmp.svg (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/sample-wf-cmp.svg)0
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/sample.dvi (renamed from Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/sample.dvi)bin1320 -> 1320 bytes
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-1.1/tests/sample.sfd293
-rw-r--r--Build/source/texk/dvisvgm/version.ac4
212 files changed, 2873 insertions, 954 deletions
diff --git a/Build/source/texk/README b/Build/source/texk/README
index 6d7c8f228d6..15c9c890c77 100644
--- a/Build/source/texk/README
+++ b/Build/source/texk/README
@@ -59,8 +59,8 @@ dvipos - ?
dvipsk - maintained here, by us
-dvisvgm - checked 28sep12
- http://downloads.sourceforge.net/dvisvgm/dvisvgm-1.0.12.tar.gz
+dvisvgm - checked 30jan13
+ http://downloads.sourceforge.net/dvisvgm/dvisvgm-1.1.tar.gz
gsftopk - from Paul Vojta's xdvi?
diff --git a/Build/source/texk/dvisvgm/ChangeLog b/Build/source/texk/dvisvgm/ChangeLog
index 3551754ab52..e224a3db97b 100644
--- a/Build/source/texk/dvisvgm/ChangeLog
+++ b/Build/source/texk/dvisvgm/ChangeLog
@@ -1,5 +1,10 @@
2013-01-29 Peter Breitenlohner <peb@mppmu.mpg.de>
+ * Imported release 1.1.
+ * Makefile.am, version.ac: Adapted.
+
+2013-01-29 Peter Breitenlohner <peb@mppmu.mpg.de>
+
* Makefile.am: Allow subdir-objects.
2012-11-19 Peter Breitenlohner <peb@mppmu.mpg.de>
diff --git a/Build/source/texk/dvisvgm/Makefile.am b/Build/source/texk/dvisvgm/Makefile.am
index b07e680f485..daa51a0f931 100644
--- a/Build/source/texk/dvisvgm/Makefile.am
+++ b/Build/source/texk/dvisvgm/Makefile.am
@@ -85,6 +85,7 @@ nodist_libdvisvgm_a_SOURCES = \
@DVISVGM_TREE@/src/InputBuffer.cpp \
@DVISVGM_TREE@/src/InputReader.cpp \
@DVISVGM_TREE@/src/Length.cpp \
+ @DVISVGM_TREE@/src/MapLine.cpp \
@DVISVGM_TREE@/src/Matrix.cpp \
@DVISVGM_TREE@/src/Message.cpp \
@DVISVGM_TREE@/src/MetafontWrapper.cpp \
@@ -92,12 +93,14 @@ nodist_libdvisvgm_a_SOURCES = \
@DVISVGM_TREE@/src/PageSize.cpp \
@DVISVGM_TREE@/src/Process.cpp \
@DVISVGM_TREE@/src/PSInterpreter.cpp \
+ @DVISVGM_TREE@/src/PdfSpecialHandler.cpp \
@DVISVGM_TREE@/src/PsSpecialHandler.cpp \
@DVISVGM_TREE@/src/SignalHandler.cpp \
@DVISVGM_TREE@/src/SpecialManager.cpp \
@DVISVGM_TREE@/src/StreamReader.cpp \
@DVISVGM_TREE@/src/StreamWriter.cpp \
@DVISVGM_TREE@/src/SVGTree.cpp \
+ @DVISVGM_TREE@/src/Subfont.cpp \
@DVISVGM_TREE@/src/System.cpp \
@DVISVGM_TREE@/src/Terminal.cpp \
@DVISVGM_TREE@/src/TFM.cpp \
diff --git a/Build/source/texk/dvisvgm/Makefile.in b/Build/source/texk/dvisvgm/Makefile.in
index dc6bb6ef29b..52565aa55b4 100644
--- a/Build/source/texk/dvisvgm/Makefile.in
+++ b/Build/source/texk/dvisvgm/Makefile.in
@@ -135,6 +135,7 @@ nodist_libdvisvgm_a_OBJECTS = \
@DVISVGM_TREE@/src/InputBuffer.$(OBJEXT) \
@DVISVGM_TREE@/src/InputReader.$(OBJEXT) \
@DVISVGM_TREE@/src/Length.$(OBJEXT) \
+ @DVISVGM_TREE@/src/MapLine.$(OBJEXT) \
@DVISVGM_TREE@/src/Matrix.$(OBJEXT) \
@DVISVGM_TREE@/src/Message.$(OBJEXT) \
@DVISVGM_TREE@/src/MetafontWrapper.$(OBJEXT) \
@@ -142,12 +143,14 @@ nodist_libdvisvgm_a_OBJECTS = \
@DVISVGM_TREE@/src/PageSize.$(OBJEXT) \
@DVISVGM_TREE@/src/Process.$(OBJEXT) \
@DVISVGM_TREE@/src/PSInterpreter.$(OBJEXT) \
+ @DVISVGM_TREE@/src/PdfSpecialHandler.$(OBJEXT) \
@DVISVGM_TREE@/src/PsSpecialHandler.$(OBJEXT) \
@DVISVGM_TREE@/src/SignalHandler.$(OBJEXT) \
@DVISVGM_TREE@/src/SpecialManager.$(OBJEXT) \
@DVISVGM_TREE@/src/StreamReader.$(OBJEXT) \
@DVISVGM_TREE@/src/StreamWriter.$(OBJEXT) \
@DVISVGM_TREE@/src/SVGTree.$(OBJEXT) \
+ @DVISVGM_TREE@/src/Subfont.$(OBJEXT) \
@DVISVGM_TREE@/src/System.$(OBJEXT) \
@DVISVGM_TREE@/src/Terminal.$(OBJEXT) \
@DVISVGM_TREE@/src/TFM.$(OBJEXT) \
@@ -499,19 +502,21 @@ nodist_libdvisvgm_a_SOURCES = \
@DVISVGM_TREE@/src/Ghostscript.cpp \
@DVISVGM_TREE@/src/InputBuffer.cpp \
@DVISVGM_TREE@/src/InputReader.cpp \
- @DVISVGM_TREE@/src/Length.cpp @DVISVGM_TREE@/src/Matrix.cpp \
- @DVISVGM_TREE@/src/Message.cpp \
+ @DVISVGM_TREE@/src/Length.cpp @DVISVGM_TREE@/src/MapLine.cpp \
+ @DVISVGM_TREE@/src/Matrix.cpp @DVISVGM_TREE@/src/Message.cpp \
@DVISVGM_TREE@/src/MetafontWrapper.cpp \
@DVISVGM_TREE@/src/PageRanges.cpp \
@DVISVGM_TREE@/src/PageSize.cpp @DVISVGM_TREE@/src/Process.cpp \
@DVISVGM_TREE@/src/PSInterpreter.cpp \
+ @DVISVGM_TREE@/src/PdfSpecialHandler.cpp \
@DVISVGM_TREE@/src/PsSpecialHandler.cpp \
@DVISVGM_TREE@/src/SignalHandler.cpp \
@DVISVGM_TREE@/src/SpecialManager.cpp \
@DVISVGM_TREE@/src/StreamReader.cpp \
@DVISVGM_TREE@/src/StreamWriter.cpp \
- @DVISVGM_TREE@/src/SVGTree.cpp @DVISVGM_TREE@/src/System.cpp \
- @DVISVGM_TREE@/src/Terminal.cpp @DVISVGM_TREE@/src/TFM.cpp \
+ @DVISVGM_TREE@/src/SVGTree.cpp @DVISVGM_TREE@/src/Subfont.cpp \
+ @DVISVGM_TREE@/src/System.cpp @DVISVGM_TREE@/src/Terminal.cpp \
+ @DVISVGM_TREE@/src/TFM.cpp \
@DVISVGM_TREE@/src/TpicSpecialHandler.cpp \
@DVISVGM_TREE@/src/VFReader.cpp \
@DVISVGM_TREE@/src/XMLDocument.cpp \
@@ -682,6 +687,9 @@ clean-noinstLIBRARIES:
@DVISVGM_TREE@/src/Length.$(OBJEXT): \
@DVISVGM_TREE@/src/$(am__dirstamp) \
@DVISVGM_TREE@/src/$(DEPDIR)/$(am__dirstamp)
+@DVISVGM_TREE@/src/MapLine.$(OBJEXT): \
+ @DVISVGM_TREE@/src/$(am__dirstamp) \
+ @DVISVGM_TREE@/src/$(DEPDIR)/$(am__dirstamp)
@DVISVGM_TREE@/src/Matrix.$(OBJEXT): \
@DVISVGM_TREE@/src/$(am__dirstamp) \
@DVISVGM_TREE@/src/$(DEPDIR)/$(am__dirstamp)
@@ -703,6 +711,9 @@ clean-noinstLIBRARIES:
@DVISVGM_TREE@/src/PSInterpreter.$(OBJEXT): \
@DVISVGM_TREE@/src/$(am__dirstamp) \
@DVISVGM_TREE@/src/$(DEPDIR)/$(am__dirstamp)
+@DVISVGM_TREE@/src/PdfSpecialHandler.$(OBJEXT): \
+ @DVISVGM_TREE@/src/$(am__dirstamp) \
+ @DVISVGM_TREE@/src/$(DEPDIR)/$(am__dirstamp)
@DVISVGM_TREE@/src/PsSpecialHandler.$(OBJEXT): \
@DVISVGM_TREE@/src/$(am__dirstamp) \
@DVISVGM_TREE@/src/$(DEPDIR)/$(am__dirstamp)
@@ -721,6 +732,9 @@ clean-noinstLIBRARIES:
@DVISVGM_TREE@/src/SVGTree.$(OBJEXT): \
@DVISVGM_TREE@/src/$(am__dirstamp) \
@DVISVGM_TREE@/src/$(DEPDIR)/$(am__dirstamp)
+@DVISVGM_TREE@/src/Subfont.$(OBJEXT): \
+ @DVISVGM_TREE@/src/$(am__dirstamp) \
+ @DVISVGM_TREE@/src/$(DEPDIR)/$(am__dirstamp)
@DVISVGM_TREE@/src/System.$(OBJEXT): \
@DVISVGM_TREE@/src/$(am__dirstamp) \
@DVISVGM_TREE@/src/$(DEPDIR)/$(am__dirstamp)
@@ -877,12 +891,14 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/InputBuffer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/InputReader.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/Length.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/MapLine.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/Matrix.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/Message.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/MetafontWrapper.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/PSInterpreter.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/PageRanges.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/PageSize.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/PdfSpecialHandler.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/Process.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/PsSpecialHandler.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/SVGTree.Po@am__quote@
@@ -890,6 +906,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/SpecialManager.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/StreamReader.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/StreamWriter.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/Subfont.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/System.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/TFM.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@DVISVGM_TREE@/src/$(DEPDIR)/Terminal.Po@am__quote@
diff --git a/Build/source/texk/dvisvgm/configure b/Build/source/texk/dvisvgm/configure
index dd25f16ff37..79e99025962 100755
--- a/Build/source/texk/dvisvgm/configure
+++ b/Build/source/texk/dvisvgm/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for dvisvgm 1.0.12.
+# Generated by GNU Autoconf 2.69 for dvisvgm 1.1.
#
# Report bugs to <tex-k@tug.org>.
#
@@ -590,12 +590,12 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='dvisvgm'
PACKAGE_TARNAME='dvisvgm'
-PACKAGE_VERSION='1.0.12'
-PACKAGE_STRING='dvisvgm 1.0.12'
+PACKAGE_VERSION='1.1'
+PACKAGE_STRING='dvisvgm 1.1'
PACKAGE_BUGREPORT='tex-k@tug.org'
PACKAGE_URL=''
-ac_unique_file="dvisvgm-1.0.12/src/dvisvgm.cpp"
+ac_unique_file="dvisvgm-1.1/src/dvisvgm.cpp"
# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
@@ -1362,7 +1362,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 1.0.12 to adapt to many kinds of systems.
+\`configure' configures dvisvgm 1.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1432,7 +1432,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of dvisvgm 1.0.12:";;
+ short | recursive ) echo "Configuration of dvisvgm 1.1:";;
esac
cat <<\_ACEOF
@@ -1564,7 +1564,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-dvisvgm configure 1.0.12
+dvisvgm configure 1.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2386,7 +2386,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 1.0.12, which was
+It was created by dvisvgm $as_me 1.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -7818,7 +7818,7 @@ fi
# Define the identity of the package.
PACKAGE='dvisvgm'
- VERSION='1.0.12'
+ VERSION='1.1'
cat >>confdefs.h <<_ACEOF
@@ -17528,7 +17528,7 @@ Usage: $0 [OPTIONS]
Report bugs to <bug-libtool@gnu.org>."
lt_cl_version="\
-dvisvgm config.lt 1.0.12
+dvisvgm config.lt 1.1
configured by $0, generated by GNU Autoconf 2.69.
Copyright (C) 2011 Free Software Foundation, Inc.
@@ -19207,7 +19207,7 @@ CPPFLAGS=$kpse_save_CPPFLAGS
LIBS=$kpse_save_LIBS
-DVISVGM_TREE=dvisvgm-1.0.12
+DVISVGM_TREE=dvisvgm-1.1
ac_config_files="$ac_config_files Makefile"
@@ -19759,7 +19759,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 1.0.12, which was
+This file was extended by dvisvgm $as_me 1.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -19825,7 +19825,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-dvisvgm config.status 1.0.12
+dvisvgm config.status 1.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12-PATCHES/patch-03-texlive_gs_init b/Build/source/texk/dvisvgm/dvisvgm-1.0.12-PATCHES/patch-03-texlive_gs_init
deleted file mode 100644
index bc977c174ec..00000000000
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12-PATCHES/patch-03-texlive_gs_init
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -ur dvisvgm-1.0.12.orig/src/FileFinder.cpp dvisvgm-1.0.12/src/FileFinder.cpp
---- dvisvgm-1.0.12.orig/src/FileFinder.cpp 2012-01-06 17:13:55.000000000 +0100
-+++ dvisvgm-1.0.12/src/FileFinder.cpp 2012-09-28 11:56:17.000000000 +0200
-@@ -84,6 +84,9 @@
- kpse_set_program_enabled(kpse_tfm_format, 1, kpse_src_env);
- kpse_set_program_enabled(kpse_mf_format, 1, kpse_src_env);
- kpse_make_tex_discard_errors = false; // don't suppress messages of mktexFOO tools
-+#ifdef TEXLIVEWIN32
-+ texlive_gs_init();
-+#endif
- #endif
- _initialized = true;
- init_font_map(usermapname);
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12-PATCHES/patch-04-kpse_init b/Build/source/texk/dvisvgm/dvisvgm-1.0.12-PATCHES/patch-04-kpse_init
deleted file mode 100644
index eeea807d52f..00000000000
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12-PATCHES/patch-04-kpse_init
+++ /dev/null
@@ -1,14 +0,0 @@
- Pass explicit program name to kpse_set_program_name.
-
-diff -ur dvisvgm-1.0.12.orig/src/FileFinder.cpp dvisvgm-1.0.12/src/FileFinder.cpp
---- dvisvgm-1.0.12.orig/src/FileFinder.cpp 2012-09-28 11:56:17.000000000 +0200
-+++ dvisvgm-1.0.12/src/FileFinder.cpp 2012-09-28 11:57:12.000000000 +0200
-@@ -79,7 +79,7 @@
- if (FAILED(hres))
- throw MessageException("MiKTeX.Session could not be initialized");
- #else
-- kpse_set_program_name(progname, NULL);
-+ kpse_set_program_name(progname, "dvisvgm");
- // enable tfm and mf generation (actually invoked by calls of kpse_make_tex)
- kpse_set_program_enabled(kpse_tfm_format, 1, kpse_src_env);
- kpse_set_program_enabled(kpse_mf_format, 1, kpse_src_env);
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12-PATCHES/patch-05-gcc-4.7 b/Build/source/texk/dvisvgm/dvisvgm-1.0.12-PATCHES/patch-05-gcc-4.7
deleted file mode 100644
index 5ead356b8ee..00000000000
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12-PATCHES/patch-05-gcc-4.7
+++ /dev/null
@@ -1,14 +0,0 @@
- Required for 'g++-4.7 -std=c++11' as needed to build XeTeX.
-
-diff -ur dvisvgm-1.0.12.orig/src/DVIToSVG.cpp dvisvgm-1.0.12/src/DVIToSVG.cpp
---- dvisvgm-1.0.12.orig/src/DVIToSVG.cpp 2012-09-20 15:49:10.000000000 +0200
-+++ dvisvgm-1.0.12/src/DVIToSVG.cpp 2012-11-14 11:39:03.000000000 +0100
-@@ -185,7 +185,7 @@
- Message::mstream().indent(0);
- Message::mstream(false, Message::MC_PAGE_NUMBER) << "processing page " << n << " [" << c[0] << ']';
- Message::mstream().indent(1);
-- _svg.appendToDoc(new XMLCommentNode(" This file was generated by dvisvgm "VERSION_STR" "));
-+ _svg.appendToDoc(new XMLCommentNode(" This file was generated by dvisvgm " VERSION_STR " "));
- _svg.appendToDoc(new XMLCommentNode(" " + datetime() + " "));
- }
- }
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontMap.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontMap.cpp
deleted file mode 100644
index 1e0a74c24d8..00000000000
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontMap.cpp
+++ /dev/null
@@ -1,234 +0,0 @@
-/*************************************************************************
-** FontMap.cpp **
-** **
-** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 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 <fstream>
-#include <iostream>
-#include <vector>
-#include "Directory.h"
-#include "FontMap.h"
-
-using namespace std;
-
-enum FontMapFieldType {FM_ERROR=0, FM_NONE, FM_NAME, FM_PS_CODE, FM_HEADER, FM_ENC, FM_FONT};
-
-
-static char* str_tolower (char *str);
-static inline char* get_extension (char *fname);
-static FontMapFieldType read_entry (char* &first, char* &last, bool name_only=false);
-
-
-
-FontMap::FontMap (const string &fname) {
- read(fname);
-}
-
-
-bool FontMap::read (const string &fname) {
- ifstream ifs(fname.c_str());
- if (ifs) {
- if (fname.find("dvipdfm") != string::npos)
- readPdfMap(ifs);
- else
- readPsMap(ifs);
- return true;
- }
- return false;
-}
-
-
-/** Read map file in dvips format.
- * @param[in] is data is read from this stream */
-void FontMap::readPsMap (istream &is) {
- char buf[512];
- while (is && !is.eof()) {
- is.getline(buf, 512);
- if (!buf[0] || strchr(" %#;*", buf[0])) // comment?
- continue;
- char *first=buf, *last=buf, *end=buf+is.gcount()-1;
- MapEntry entry;
- string name;
- while (last < end && *first) {
- last = first;
- switch (read_entry(first, last)) {
- case FM_NAME:
- if (name.empty())
- name = first;
- break;
- case FM_ENC:
- entry.encname = first; break;
- case FM_FONT:
- entry.fontname = first; break;
- case FM_ERROR:
- continue;
- default:
- break;
- }
- first = last+1;
- }
- // strip filename suffix
- size_t len;
- if ((len = entry.encname.length()) > 4 && entry.encname.substr(len-4) == ".enc")
- entry.encname = entry.encname.substr(0, len-4);
- if ((len = entry.fontname.length()) > 4 && entry.fontname[len-4] == '.')
- entry.fontname = entry.fontname.substr(0, len-4);
-
- if (!name.empty() && ((name != entry.fontname && !entry.fontname.empty()) || !entry.encname.empty()))
- _fontMap[name] = entry;
- }
-}
-
-
-/** Read map file in dvipdfm format.
- * <font name> [<encoding>|default|none] [<map target>] [options]
- * The optional trailing dvipdfm-parameters -r, -e and -s are ignored.
- * @param[in] is data is read from this stream */
-void FontMap::readPdfMap (istream &is) {
- char buf[512];
- while (is && !is.eof()) {
- is.getline(buf, 512);
- if (!buf[0] || strchr(" %#;*", buf[0])) // comment?
- continue;
- char *first=buf, *last=buf, *end=buf+is.gcount()-1;
- vector<string> fields;
- for (int i=0; i < 3 && last < end && *first; i++) {
- FontMapFieldType type = read_entry(first, last, true);
- if (*first == '-')
- break;
- if (type == FM_NAME)
- fields.push_back(first);
- first = last+1;
- }
- if (fields.size() > 1 && (fields[1] == "default" || fields[1] == "none"))
- fields[1].clear();
-
- if (fields.size() < 2)
- continue;
- if ((fields.size() == 2 && fields[1].empty()) || (fields.size() == 3 && fields[1].empty() && fields[0] == fields[2]))
- continue;
-
- _fontMap[fields[0]].fontname = fields[fields.size() == 2 ? 0 : 2];
- _fontMap[fields[0]].encname = fields[1];
- }
-}
-
-
-
-static char* str_tolower (char *str) {
- for (char *p=str; *p; p++)
- *p = tolower(*p);
- return str;
-}
-
-
-static inline char* get_extension (char *fname) {
- if (char* p=strrchr(fname, '.'))
- return p+1;
- return 0;
-}
-
-
-
-
-/** Reads a single line entry.
- * @param[in,out] first pointer to first char of entry
- * @param[in,out] last pointer to last char of entry
- * @param[in] name_only true, if special meanings of \" and < should be ignored
- * @return entry type */
-static FontMapFieldType read_entry (char* &first, char* &last, bool name_only) {
- while (*first && isspace(*first))
- first++;
- if (!name_only) {
- if (*first == '"') {
- last = first+1;
- while (*last && *last != '"')
- last++;
- if (*last == 0) // quote not closed => skip invalid line
- return FM_ERROR;
- return FM_PS_CODE;
- }
- else if (*first == '<') {
- FontMapFieldType type=FM_HEADER;
- first++;
- if (isspace(*first))
- first++;
- else if (*first == '<' || *first == '[') {
- type = (*first == '<') ? FM_FONT : FM_ENC;
- first++;
- }
- if (read_entry(first, last, true) != FM_NAME)
- return FM_ERROR;
- if (type == FM_HEADER) {
- if (char *ext = get_extension(first)) {
- ext = str_tolower(ext);
- if (strcmp(ext, "enc")==0)
- return FM_ENC;
- if (strcmp(ext, "pfb")==0 || strcmp(ext, "pfa")==0)
- return FM_FONT;
- }
- }
- return type;
- }
- }
- last = first;
- while (*last && !isspace(*last))
- last++;
- *last = 0;
- return (first < last) ? FM_NAME : FM_NONE;
-}
-
-
-ostream& FontMap::write (ostream &os) const {
- for (map<string,MapEntry>::const_iterator i=_fontMap.begin(); i != _fontMap.end(); ++i)
- os << i->first << " -> " << i->second.fontname << " [" << i->second.encname << "]\n";
- return os;
-}
-
-
-void FontMap::readdir (const string &dirname) {
- Directory dir(dirname);
- while (const char *fname = dir.read('f')) {
- if (strlen(fname) >= 4 && strcmp(fname+strlen(fname)-4, ".map") == 0) {
- string path = dirname + "/" + fname;
- read(path.c_str());
- }
- }
-}
-
-
-/** Returns name of font that is mapped to a given font.
- * @param[in] fontname name of font whose mapped name is retrieved
- * @returns name of mapped font */
-const char* FontMap::lookup (const string &fontname) const {
- ConstIterator it = _fontMap.find(fontname);
- if (it == _fontMap.end())
- return 0;
- return it->second.fontname.c_str();
-}
-
-
-/** Returns the name of the assigned encoding for a given font.
- * @param[in] fontname name of font whose encoding is returned
- * @return name of encoding, 0 if there is no encoding assigned */
-const char* FontMap::encoding (const string &fontname) const {
- ConstIterator it = _fontMap.find(fontname);
- if (it == _fontMap.end() || it->second.encname.empty())
- return 0;
- return it->second.encname.c_str();
-}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12-PATCHES/TL-Changes b/Build/source/texk/dvisvgm/dvisvgm-1.1-PATCHES/TL-Changes
index cd3bfe0458d..5f3d73be6b2 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12-PATCHES/TL-Changes
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1-PATCHES/TL-Changes
@@ -1,5 +1,5 @@
-Changes applied to the dvisvgm-1.0.12 tree as obtained from:
- http://downloads.sourceforge.net/dvisvgm/dvisvgm-1.0.12.tar.gz
+Changes applied to the dvisvgm-1.1 tree as obtained from:
+ http://downloads.sourceforge.net/dvisvgm/dvisvgm-1.1.tar.gz
Removed:
Makefile.in
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/AUTHORS b/Build/source/texk/dvisvgm/dvisvgm-1.1/AUTHORS
index 837e1e96bfb..837e1e96bfb 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/AUTHORS
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/AUTHORS
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/COPYING b/Build/source/texk/dvisvgm/dvisvgm-1.1/COPYING
index 94a9ed024d3..94a9ed024d3 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/COPYING
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/COPYING
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/INSTALL b/Build/source/texk/dvisvgm/dvisvgm-1.1/INSTALL
index a4b34144dcf..a4b34144dcf 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/INSTALL
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/INSTALL
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/LGPL-2.1.txt b/Build/source/texk/dvisvgm/dvisvgm-1.1/LGPL-2.1.txt
index 602bfc94635..602bfc94635 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/LGPL-2.1.txt
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/LGPL-2.1.txt
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/Makefile.am b/Build/source/texk/dvisvgm/dvisvgm-1.1/Makefile.am
index 46a1deb77d0..62cf7699878 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/Makefile.am
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/Makefile.am
@@ -1,5 +1,5 @@
## This file is part of dvisvgm
-## Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de>
+## Copyright (C) 2005-2013 Martin Gieseking <martin.gieseking@uos.de>
##
## Process this file with automake.
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/NEWS b/Build/source/texk/dvisvgm/dvisvgm-1.1/NEWS
index 98d2fe0bae8..a7fdcc08dbd 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/NEWS
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/NEWS
@@ -1,3 +1,18 @@
+dvisvgm-1.1 (2013-01-22)
+- added evaluation of pdf:mapline and pdf:mapfile specials
+- added evaluation of subfont file definitions (.sfd files)
+- added support for TTC (TrueType collection) fonts
+- added evaluation of font style parameters given in a font map definition
+- renamed option --map-file to --fontmap
+- the new option --fontmap allows multiple mapfile arguments and optional mode specifiers
+- if a PostScript error occurs, dvisvgm prints an error message together with the
+ PS operand stack, as generated by Ghostscript
+- if font checksums don't match, dvisvgm prints a warning now
+- avoid throwing exceptions if referenced encoding files are not available
+- added support for 64bit Windows builds
+- removed compilation error when using a C++11 compiler (patch by Peter Breitenlohner)
+- some code refactorings and improvements
+
dvisvgm-1.0.12 (2012-09-27)
- print a message if the processing of PostScript specials is disabled
- the resulting SVG is now scaled to bp ("big point" units) properly
@@ -9,7 +24,7 @@ dvisvgm-1.0.11 (2012-03-09)
- added Ghostscript to library list printed by --version=yes
- fixed a bug in the number parser that could lead to displaced objects (SF bug #3471097)
- corrected the computation of bounding boxes of DVI rules (lp bug #948713)
-- improved code compatibilty to make dvisvgm compile with clang++ (patch by Vladimir Lomov)
+- improved code compatibility to make dvisvgm compile with clang++ (patch by Vladimir Lomov)
- fixed formatting issues in the manual page
- updated information about bug reporting (tracker moved to Launchpad)
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/README b/Build/source/texk/dvisvgm/dvisvgm-1.1/README
index ed72ab09a4a..6356881cd9f 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/README
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/README
@@ -15,13 +15,13 @@ DEPENDENCIES
* Ghostscript (http://pages.cs.wisc.edu/~ghost)
The PostScript special handler requires the Ghostscript
- library libgs.so (Linux) or gsdll32.dll (Windows) to be
- installed. If the configure script finds the corresponing
- Ghostscript development files on the system, it directly
- links against libgs.so. Otherwise, the library is looked up
- at runtime and PostScript support is enabled only if libgs.so
- could be found.
- Due to incompatible changes of the Ghostscript API, dvisvgm
+ library libgs.so (Linux) or gsdll32.dll/gsdll64.dll (Windows)
+ to be installed. If the configure script finds the corresponding
+ Ghostscript development files on the system, it directly
+ links against libgs.so. Otherwise, the library is looked up
+ at runtime and PostScript support is enabled only if libgs.so
+ could be found.
+ Due to incompatible changes of the Ghostscript API, dvisvgm
requires Ghostscript 8.31 or later.
* kpathsea
@@ -40,7 +40,7 @@ DEPENDENCIES
Compressed SVG files are produced by using functions
of this library and the Gzstream wrapper classes
(http://www.cs.unc.edu/Research/compgeom/gzstream)
- which are licensed under LGPL version 2.1 (or optionally any
+ which are licensed under LGPL version 2.1 (or optionally any
later version) and should be included with this package.
If you want to build and run the testsuite located in the tests
@@ -66,7 +66,7 @@ COMPILATION
The tracer module calls Metafont in case of lacking TFM or PFB files
via a system call. Please ensure that Metafont is installed and
reachable through the search path.
-
+
If you don't like compiling the sources yourself, you can
download pre-compiled executables for Windows and MiKTeX
from sourceforge.net instead (see below).
@@ -78,12 +78,12 @@ USAGE
ADDITIONAL INFORMATION
- This packacke is available from CTAN (dviware/dvisvgm) and can
+ This package is available from CTAN (dviware/dvisvgm) and can
be downloaded from the project website at sourceforge.net as well:
http://dvisvgm.sourceforge.net
- Here you can find the sources, precompiled binaries and further additional
+ Here you can find the sources, pre-compiled binaries and further additional
information about the converter and related topics.
If you've found a bug, please let me know. You can either send me an
@@ -93,20 +93,20 @@ ADDITIONAL INFORMATION
COPYRIGHT
- Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de>
+ Copyright (C) 2005-2013 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
+ 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
+ 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/>.
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, see <http://www.gnu.org/licenses/>.
See the file COPYING for details.
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/config.h.in b/Build/source/texk/dvisvgm/dvisvgm-1.1/config.h.in
index b027999e9b3..b027999e9b3 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/config.h.in
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/config.h.in
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/config.rpath b/Build/source/texk/dvisvgm/dvisvgm-1.1/config.rpath
index e69de29bb2d..e69de29bb2d 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/config.rpath
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/config.rpath
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/configure.ac b/Build/source/texk/dvisvgm/dvisvgm-1.1/configure.ac
index 979bd81f8b8..80574a70878 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/configure.ac
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/configure.ac
@@ -1,11 +1,11 @@
# This file is part of dvisvgm
-# Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de>
+# Copyright (C) 2005-2013 Martin Gieseking <martin.gieseking@uos.de>
#
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
-AC_INIT([dvisvgm],[1.0.12],[martin.gieseking@uos.de])
-DATE="September 2012"
+AC_INIT([dvisvgm],[1.1],[martin.gieseking@uos.de])
+DATE="December 2012"
AC_CONFIG_SRCDIR(src)
AC_CONFIG_HEADER(config.h)
AC_CANONICAL_HOST
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/doc/Makefile.am b/Build/source/texk/dvisvgm/dvisvgm-1.1/doc/Makefile.am
index 13f7a375a63..fb5c56ffedf 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/doc/Makefile.am
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/doc/Makefile.am
@@ -1,5 +1,5 @@
## This file is part of dvisvgm
-## Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de>
+## Copyright (C) 2005-2013 Martin Gieseking <martin.gieseking@uos.de>
##
## Process this file with automake.
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/doc/dvisvgm.1 b/Build/source/texk/dvisvgm/dvisvgm-1.1/doc/dvisvgm.1
index 1a7f21ed535..f6d8ed13537 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/doc/dvisvgm.1
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/doc/dvisvgm.1
@@ -2,12 +2,12 @@
.\" Title: dvisvgm
.\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\" Date: 09/21/2012
+.\" Date: 01/22/2013
.\" Manual: dvisvgm Manual
-.\" Source: dvisvgm 1.0.12
+.\" Source: dvisvgm 1.1
.\" Language: English
.\"
-.TH "DVISVGM" "1" "09/21/2012" "dvisvgm 1\&.0\&.12" "dvisvgm Manual"
+.TH "DVISVGM" "1" "01/22/2013" "dvisvgm 1\&.1" "dvisvgm Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -202,6 +202,58 @@ If this option is given, dvisvgm computes the precise bounding box of each chara
\fB\-\-exact\fR, dvisvgm analyzes the actual shape of each character and derives a usually tight bounding box\&.
.RE
.PP
+\fB\-m, \-\-fontmap\fR=\fIfilenames\fR
+.RS 4
+Loads and evaluates a single or multiple font map files\&. These files are required to resolve font file names and encodings\&. dvisvgm does not provide its own map file but tries to read available ones coming with dvips or dvipdfm\&. If option
+\fB\-\-fonrmapm\fR
+is not given, dvisvgm looks for the default map files
+ps2pk\&.map,
+dvipdfm\&.map, and
+psfonts\&.map
+(in this order)\&. Otherwise, the listed files are used\&. Multiple filenames must be separated by commas without leading and/or trailing whitespace\&. The map files are evaluated in the given order\&. By default, redefined mappings do not replace previous ones\&. However, each filename can be preceded by an optional mode specifier (\fB+\fR,
+\fB\-\fR, or
+\fB=\fR) to change this behavior:
+.PP
++mapfile
+.RS 4
+Only those entries in the given map file that don\(cqt redefine a font mapping are applied\&. That\(cqs also the default mode if no mode specifier is given\&.
+.RE
+.PP
+\-mapfile
+.RS 4
+Ensures that none of the font mappings defined in the given map file are used, i\&.e\&. previously defined mappings for the specified fonts are removed\&.
+.RE
+.PP
+=mapfile
+.RS 4
+All mappings defined in the map file are applied\&. Previously defined settings for the same font are replaced\&.
+.sp
+If the first filename in the filename sequence is preceded by a mode specifier, dvisvgm loads the default font map (see above) and applies the other map files afterwards\&. Otherwise, none of default map files will be loaded automatically\&.
+.sp
+Examples:
+\fB\-\-fontmap=myfile1\&.map,+myfile2\&.map\fR
+loads
+myfile1\&.map
+followed by
+myfile2\&.map
+where all redefinitions of
+myfile2\&.map
+are ignored\&.
+\fB\-\-fontmap==myfile1\&.map,\-myfile2\&.map\fR
+loads the default map file followed by
+myfile1\&.map
+and
+myfile2\&.map
+where all redefinitions of
+myfile1\&.map
+replace previous entries\&. Afterwards, all definitions for the fonts given in
+myfile2\&.map
+are removed again\&.
+.sp
+For further information about the map file formats, see the manuals of dvips and dvipdfm\&.
+.RE
+.RE
+.PP
\fB\-h, \-\-help\fR
.RS 4
Prints a short summary of all available command\-line options\&. This is also the default action if dvisvgm is called without parameters\&.
@@ -209,7 +261,7 @@ Prints a short summary of all available command\-line options\&. This is also th
.PP
\fB\-\-libgs=filename\fR
.RS 4
-This option is only available if the Ghostscript library is not directly linked to dvisvgm and if PostScript support was not completely disabled during compilation\&. In this case, dvisvgm tries to load the shared GS library dynamically during runtime\&. By default, it expects the library\(cqs name to be libgs\&.so (on Unix\-like systems) or gsdll32\&.dll (Windows)\&. Option
+This option is only available if the Ghostscript library is not directly linked to dvisvgm and if PostScript support was not completely disabled during compilation\&. In this case, dvisvgm tries to load the shared GS library dynamically during runtime\&. By default, it expects the library\(cqs name to be libgs\&.so (on Unix\-like systems) or gsdll32\&.dll/gsdll64\&.dll (Windows)\&. Option
\fB\-\-libgs\fR
can be used to give a different name\&. Alternatively, it\(cqs also possible to set the GS library name by the environment variable
LIBGS\&. The latter has less precedence than the command\-line option\&.
@@ -228,25 +280,9 @@ or
Disables the removal of temporary files as created by Metafont (usually \&.gf, \&.tfm, and \&.log files)\&.
.RE
.PP
-\fB\-m, \-\-map\-file\fR=\fIfile\fR
-.RS 4
-Sets the map file used to look up font names and encodings\&. dvisvgm does not provide its own map file but tries to read available ones coming with dvips or dvipdfm\&. If option
-\fB\-m\fR
-is not given, dvisvgm looks for
-ps2pk\&.map,
-dvipdfm\&.map, and
-psfonts\&.map
-(in this order)\&. Without further options, the file specified by option
-\fB\-m\fR
-will be used instead of the default maps\&. If you want dvisgvm to load the given file additionally to the default maps, add a leading
-\fI+\fR
-to the file/path, e\&.g\&.
-\-\-map\-file=+myfonts\&.map\&. For further information about the map file formats, see the manuals of dvips and dvipdfm\&.
-.RE
-.PP
\fB\-M, \-\-mag\fR=\fIfactor\fR
.RS 4
-Sets the maginfication factor applied in conjunction with Metafont calls prior tracing the glyphs\&. The larger this value, the better the tracing results\&. Nevertheless, large magnification values can cause Metafont arithmetic errors due to number overflows\&. So, use this option with care\&. The default setting usually produces nice results\&.
+Sets the magnification factor applied in conjunction with Metafont calls prior tracing the glyphs\&. The larger this value, the better the tracing results\&. Nevertheless, large magnification values can cause Metafont arithmetic errors due to number overflows\&. So, use this option with care\&. The default setting usually produces nice results\&.
.RE
.PP
\fB\-n, \-\-no\-fonts\fR[=\fIvariant\fR]
@@ -708,16 +744,29 @@ The following TeX snippet adds two raw SVG elements to the output and updates th
These specials were introduced with the emTeX distribution by Eberhard Mattes\&. They provide line drawing statements, instructions for embedding MSP, PCX, and BMP image files, as well as two PCL commands\&. dvisvgm supports only the line drawing statements and ignores all other em specials silently\&. A description of the command syntax can be found in the DVI driver documentation coming with emTeX (see CTAN)\&.
.RE
.PP
+\fBpdf\fR
+.RS 4
+pdfTeX and dvipdfmx introduced several special commands related to the generation of PDF files\&. Currently, only two of them,
+\fIpdf:mapfile\fR
+and
+\fIpdf:mapline\fR
+are supported by dvisvgm\&. These specials allow modifying the font map tree during the processing of DVI files\&. They are used by CTeX, for example\&. dvisvgm supports both, the dvips and dvipdfm font map format\&. For further information on the command syntax and semantics, see the documentation of \epdfmapfile in the pdfTeX user manual\&.
+.RE
+.PP
\fBps\fR
.RS 4
-The famous DVI driver dvips introduced its own set of specials in order to embed PostScript code into DVI files, which greatly improves the capabilities of DVI documents\&. One aim of dvisvgm is to completely evaluate all PostScript snippets and to convert a large amount of it to SVG\&. However, in contrast to dvips, dvisvgm uses floating point arithmetics to compute the precise position of each graphic element, i\&.e\&. it doesn\(cqt round the corrdinates\&. Therefore, the relative locations of the graphic elements may slightly differ from those computed by dvips\&.
+The famous DVI driver dvips introduced its own set of specials in order to embed PostScript code into DVI files, which greatly improves the capabilities of DVI documents\&. One aim of dvisvgm is to completely evaluate all PostScript snippets and to convert a large amount of it to SVG\&. However, in contrast to dvips, dvisvgm uses floating point arithmetics to compute the precise position of each graphic element, i\&.e\&. it doesn\(cqt round the coordinates\&. Therefore, the relative locations of the graphic elements may slightly differ from those computed by dvips\&.
.sp
-Since PostScript is a rather complex language, dvisvgm does not try to implement its own PostScript interpreter but relies on Ghostscript instead\&. If the Ghostscript library was not linked while building dvisvgm, it is looked up and dynamically loaded during runtime\&. In this case, dvisvgm looks for
+Since PostScript is a rather complex language, dvisvgm does not try to implement its own PostScript interpreter but relies on Ghostscript instead\&. If the Ghostscript library was not linked while building dvisvgm, it is looked up and loaded dynamically during runtime\&. In this case, dvisvgm looks for
\fIlibgs\&.so\fR
on Unix\-like systems, and for
\fIgsdll32\&.dll\fR
-on Windows\&. You can override these default file names with the environment variable
-LIBGS\&. The library must be installed and must be reachable through the ld search path (*nix) or the PATH environment variable (Windows)\&. If it cannot be found, the evaluation of PostScript specials is disabled\&. Use option
+or
+\fIgsdll64\&.dll\fR
+on Windows\&. You can override these default file names with environment variable
+LIBGS
+or the command\-line option
+\fB\-\-libgs\fR\&. The library must be installed and reachable through the ld search path (*nix) or the PATH environment variable (Windows)\&. If it cannot be found, the processing of PostScript specials is disabled\&. Use option
\fB\-\-list\-specials\fR
to check whether PS support is available, i\&.e\&. the entry
\fIps\fR
@@ -783,7 +832,7 @@ dvisvgm uses the \fBkpathsea\fR library for locating the files that it opens\&.
.sp
If dvisvgm was linked without the Ghostscript library, and if PostScript support has not been disabled, the shared Ghostscript library is looked up during runtime via dlopen()\&. The environment variable LIBGS can be used to specify path and file name of the library\&.
.sp
-The pre\-compiled Windows version of dvisvgm requires a working installation of MiKTeX 2\&.9 or above\&. To enable evaluation of PostScript specials, the original Ghostscript DLL \fIgsdll32\&.dll\fR must be present and reachable through the search path\&.
+The pre\-compiled Windows versions of dvisvgm require a working installation of MiKTeX 2\&.9 or above\&. dvisvgm does not work together with the portable edition of MiKTeX because it relies on MiKTeX\(cqs COM interface only accessible in a local installation\&. To enable the evaluation of PostScript specials, the original Ghostscript DLL \fIgsdll32\&.dll\fR must be present and reachable through the search path\&. 64\-bit Windows builds require the 64\-bit Ghostscript DLL \fIgsdll64\&.dll\fR\&. Both DLLs come with the corresponding Ghostscript installers available from www\&.ghostscript\&.com\&.
.sp
The environment variable DVISVGM_COLORS specifies the colors used to highlight various parts of dvisvgm\(cqs message output\&. It is only evaluated if option \fB\-\-color\fR is given\&. The value of DVISVGM_COLORS is a list of colon\-separated entries of the form \fIgg\fR=\fIBF\fR, where \fIgg\fR denotes one of the color group indicators listed below, and \fIBF\fR are two hexadecimal digits specifying the background (first digit) and foreground/text color (second digit)\&. The color color values are defined as follows: 0=black, 1=red, 2=green, 3=yellow, 4=blue, 5=magenta, 6=cyan, 7=gray, 8=bright red, 9=bright green, A=bright yellow, B=bright blue, C=bright magenta, D=bright cyan, E=bright gray, F=white\&. Depending on the terminal, the colors may differ\&. Rather than changing both the text and background color, it\(cqs also possible to change only one of them: An asterisk (*) in place of a hexadecimal digit indicates the default text or background color of the terminal\&.
.sp
@@ -953,9 +1002,12 @@ SourceForge project site
http://sourceforge\&.net/projects/dvisvgm
.RE
+.SH "BUGS"
+.sp
+Please report bugs using the bug tracker at Launchpad (see https://launchpad\&.net/dvisvgm)\&.
.SH "AUTHOR"
.sp
Written by Martin Gieseking <martin\&.gieseking@uos\&.de>
.SH "COPYING"
.sp
-Copyright \(co 2005\-2012 Martin Gieseking\&. Free use of this software is granted under the terms of the GNU General Public License (GPL) version 3 or, (at your option) any later version\&.
+Copyright \(co 2005\-2013 Martin Gieseking\&. Free use of this software is granted under the terms of the GNU General Public License (GPL) version 3 or, (at your option) any later version\&.
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/doc/dvisvgm.txt.in b/Build/source/texk/dvisvgm/dvisvgm-1.1/doc/dvisvgm.txt.in
index 856790903f7..7e8da44034a 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/doc/dvisvgm.txt.in
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/doc/dvisvgm.txt.in
@@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////
// This file is part of dvisvgm -- the DVI to SVG converter //
-// Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> //
+// Copyright (C) 2005-2013 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 //
@@ -146,6 +146,41 @@ characters at the bounds of the SVG graphic. With option *--exact*, dvisvgm anal
of each character and derives a usually tight bounding box.
+*-m, --fontmap*='filenames'::
+Loads and evaluates a single or multiple font map files. These files are required to resolve
+font file names and encodings. dvisvgm does not provide its own map file but tries to read
+available ones coming with dvips or dvipdfm. If option *--fonrmapm* is not given, dvisvgm looks for the
+default map files +ps2pk.map+, +dvipdfm.map+, and +psfonts.map+ (in this order). Otherwise, the
+listed files are used. Multiple filenames must be separated by commas without leading and/or trailing
+whitespace.
+The map files are evaluated in the given order. By default, redefined mappings do not replace previous ones.
+However, each filename can be preceded by an optional mode specifier (*+*, *-*, or *=*) to change this behavior:
+
+ +mapfile;;
+ Only those entries in the given map file that don't redefine a font mapping are applied.
+ That's also the default mode if no mode specifier is given.
+
+ -mapfile;;
+ Ensures that none of the font mappings defined in the given map file are used, i.e. previously
+ defined mappings for the specified fonts are removed.
+
+ =mapfile;;
+ All mappings defined in the map file are applied. Previously defined settings for the same font
+ are replaced.
++
+If the first filename in the filename sequence is preceded by a mode specifier, dvisvgm loads the
+default font map (see above) and applies the other map files afterwards. Otherwise, none of default
+map files will be loaded automatically.
++
+Examples: *--fontmap=myfile1.map,+myfile2.map* loads `myfile1.map` followed by `myfile2.map` where all
+redefinitions of `myfile2.map` are ignored.
+*--fontmap==myfile1.map,-myfile2.map* loads the default map file followed by `myfile1.map` and `myfile2.map`
+where all redefinitions of `myfile1.map` replace previous entries. Afterwards, all definitions for the fonts
+given in `myfile2.map` are removed again.
++
+For further information about the map file formats, see the manuals of dvips and dvipdfm.
+
+
*-h, --help*::
Prints a short summary of all available command-line options.
This is also the default action if dvisvgm is called without parameters.
@@ -155,9 +190,9 @@ This is also the default action if dvisvgm is called without parameters.
This option is only available if the Ghostscript library is not directly linked to dvisvgm and if
PostScript support was not completely disabled during compilation. In this case, dvisvgm tries
to load the shared GS library dynamically during runtime. By default, it expects the library's name
-to be libgs.so (on Unix-like systems) or gsdll32.dll (Windows). Option *--libgs* can be used to give
-a different name. Alternatively, it's also possible to set the GS library name by the environment
-variable +LIBGS+. The latter has less precedence than the command-line option.
+to be libgs.so (on Unix-like systems) or gsdll32.dll/gsdll64.dll (Windows). Option *--libgs* can be
+used to give a different name. Alternatively, it's also possible to set the GS library name by the
+environment variable +LIBGS+. The latter has less precedence than the command-line option.
*-l, --list-specials*::
@@ -171,18 +206,8 @@ statement by a colon or a blank, e.g. 'color' or 'ps'.
Disables the removal of temporary files as created by Metafont (usually .gf, .tfm, and .log files).
-*-m, --map-file*='file'::
-Sets the map file used to look up font names and encodings. dvisvgm does not provide
-its own map file but tries to read available ones coming with dvips or dvipdfm. If
-option *-m* is not given, dvisvgm looks for +ps2pk.map+, +dvipdfm.map+, and +psfonts.map+ (in this order).
-Without further options, the file specified by option *-m* will be used instead of the
-default maps. If you want dvisgvm to load the given file additionally to the default maps, add a
-leading '+' to the file/path, e.g. `--map-file=+myfonts.map`.
-For further information about the map file formats, see the manuals of dvips and dvipdfm.
-
-
*-M, --mag*='factor'::
-Sets the maginfication factor applied in conjunction with Metafont calls prior tracing the glyphs.
+Sets the magnification factor applied in conjunction with Metafont calls prior tracing the glyphs.
The larger this value, the better the tracing results. Nevertheless, large magnification values
can cause Metafont arithmetic errors due to number overflows. So, use this option with care.
The default setting usually produces nice results.
@@ -444,19 +469,26 @@ A description of the command syntax can be found in the DVI driver documentation
// The hyperref package uses a set of HTML anchor tags to indicate hyperlinks in DVI files.
// dvisvgm converts them to corresponding SVG elements.
+*pdf*::
+pdfTeX and dvipdfmx introduced several special commands related to the generation of PDF files. Currently, only
+two of them, 'pdf:mapfile' and 'pdf:mapline' are supported by dvisvgm. These specials allow modifying the font map
+tree during the processing of DVI files. They are used by CTeX, for example. dvisvgm supports both, the dvips and
+dvipdfm font map format. For further information on the command syntax and semantics, see the documentation of
+\pdfmapfile in the pdfTeX user manual.
+
*ps*::
The famous DVI driver dvips introduced its own set of specials in order to embed PostScript code into DVI files,
which greatly improves the capabilities of DVI documents. One aim of dvisvgm is to completely evaluate all
PostScript snippets and to convert a large amount of it to SVG. However, in contrast to dvips, dvisvgm uses floating point
-arithmetics to compute the precise position of each graphic element, i.e. it doesn't round the corrdinates. Therefore,
+arithmetics to compute the precise position of each graphic element, i.e. it doesn't round the coordinates. Therefore,
the relative locations of the graphic elements may slightly differ from those computed by dvips.
+
Since PostScript is a rather complex language, dvisvgm does not try to implement its own PostScript interpreter but relies on
-Ghostscript instead. If the Ghostscript library was not linked while building dvisvgm, it is looked up and dynamically loaded
-during runtime. In this case, dvisvgm looks for 'libgs.so' on Unix-like systems, and for 'gsdll32.dll' on Windows.
-You can override these default file names with the environment variable +LIBGS+.
-The library must be installed and must be reachable through the ld search path (\*nix) or the PATH environment
-variable (Windows). If it cannot be found, the evaluation of PostScript specials is disabled.
+Ghostscript instead. If the Ghostscript library was not linked while building dvisvgm, it is looked up and loaded dynamically
+during runtime. In this case, dvisvgm looks for 'libgs.so' on Unix-like systems, and for 'gsdll32.dll' or 'gsdll64.dll' on Windows.
+You can override these default file names with environment variable +LIBGS+ or the command-line option *--libgs*.
+The library must be installed and reachable through the ld search path (\*nix) or the PATH environment
+variable (Windows). If it cannot be found, the processing of PostScript specials is disabled.
Use option *--list-specials* to check whether PS support is available, i.e. the entry 'ps' is present.
*tpic*::
@@ -497,9 +529,12 @@ If dvisvgm was linked without the Ghostscript library, and if PostScript support
the shared Ghostscript library is looked up during runtime via dlopen(). The environment variable +LIBGS+
can be used to specify path and file name of the library.
-The pre-compiled Windows version of dvisvgm requires a working installation of MiKTeX 2.9 or above.
-To enable evaluation of PostScript specials, the original Ghostscript DLL 'gsdll32.dll' must be present
-and reachable through the search path.
+The pre-compiled Windows versions of dvisvgm require a working installation of MiKTeX 2.9 or above.
+dvisvgm does not work together with the portable edition of MiKTeX because it relies on MiKTeX's COM
+interface only accessible in a local installation.
+To enable the evaluation of PostScript specials, the original Ghostscript DLL 'gsdll32.dll' must be present
+and reachable through the search path. 64-bit Windows builds require the 64-bit Ghostscript DLL 'gsdll64.dll'.
+Both DLLs come with the corresponding Ghostscript installers available from www.ghostscript.com.
The environment variable +DVISVGM_COLORS+ specifies the colors used to highlight various parts of dvisvgm's
message output. It is only evaluated if option *--color* is given. The value of +DVISVGM_COLORS+ is a list of
@@ -553,6 +588,11 @@ Project home page::: http://dvisvgm.sourceforge.net
SourceForge project site::: http://sourceforge.net/projects/dvisvgm
+BUGS
+----
+Please report bugs using the bug tracker at Launchpad (see https://launchpad.net/dvisvgm).
+
+
AUTHOR
------
Written by {author} <{email}>
@@ -560,7 +600,7 @@ Written by {author} <{email}>
COPYING
-------
-Copyright (C) 2005-2012 Martin Gieseking. Free use of this software is
+Copyright (C) 2005-2013 Martin Gieseking. Free use of this software is
granted under the terms of the GNU General Public License (GPL) version 3
or, (at your option) any later version.
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/Makefile.am b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/Makefile.am
index 97bf78f50f4..97bf78f50f4 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/Makefile.am
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/Makefile.am
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/auxiliary.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/auxiliary.h
index fbd1db4c166..fbd1db4c166 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/auxiliary.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/auxiliary.h
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/bitmap.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/bitmap.h
index 2df04b46fbe..2df04b46fbe 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/bitmap.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/bitmap.h
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/curve.c b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/curve.c
index 414fb5de9ee..414fb5de9ee 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/curve.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/curve.c
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/curve.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/curve.h
index e98efdf5cfd..e98efdf5cfd 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/curve.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/curve.h
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/decompose.c b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/decompose.c
index 376af015df3..376af015df3 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/decompose.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/decompose.c
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/decompose.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/decompose.h
index 89b01e5045c..89b01e5045c 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/decompose.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/decompose.h
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/lists.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/lists.h
index 078129afce5..078129afce5 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/lists.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/lists.h
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/potracelib.c b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/potracelib.c
index c483ea335b9..c483ea335b9 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/potracelib.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/potracelib.c
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/potracelib.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/potracelib.h
index 99e17e424ae..99e17e424ae 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/potracelib.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/potracelib.h
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/progress.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/progress.h
index 93a1fa3f04c..93a1fa3f04c 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/progress.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/progress.h
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/trace.c b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/trace.c
index f1e88a90862..f1e88a90862 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/trace.c
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/trace.c
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/trace.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/trace.h
index dc2b9247adb..dc2b9247adb 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/potracelib/trace.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/potracelib/trace.h
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/BgColorSpecialHandler.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/BgColorSpecialHandler.cpp
index e2f68b0ca1a..a225d360910 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/BgColorSpecialHandler.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/BgColorSpecialHandler.cpp
@@ -2,7 +2,7 @@
** BgColorSpecialHandler.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/BgColorSpecialHandler.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/BgColorSpecialHandler.h
index a5560510d1e..98dd814ba9e 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/BgColorSpecialHandler.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/BgColorSpecialHandler.h
@@ -2,7 +2,7 @@
** BgColorSpecialHandler.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Bitmap.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Bitmap.cpp
index 4cc36a58280..e72d5ee34ac 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Bitmap.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Bitmap.cpp
@@ -2,7 +2,7 @@
** Bitmap.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Bitmap.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Bitmap.h
index 21d82ea6a77..1a1f19caf15 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Bitmap.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Bitmap.h
@@ -2,7 +2,7 @@
** Bitmap.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/BoundingBox.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/BoundingBox.cpp
index 56bd3a576f8..39f5f7ba2ac 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/BoundingBox.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/BoundingBox.cpp
@@ -2,7 +2,7 @@
** BoundingBox.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/BoundingBox.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/BoundingBox.h
index 9394c44309c..96655cd1d5d 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/BoundingBox.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/BoundingBox.h
@@ -2,7 +2,7 @@
** BoundingBox.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/CRC32.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/CRC32.cpp
index 67986d3f6d9..2295ab17bde 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/CRC32.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/CRC32.cpp
@@ -2,7 +2,7 @@
** CRC32.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/CRC32.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/CRC32.h
index fa5a398a76d..ca8ec359d0f 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/CRC32.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/CRC32.h
@@ -2,7 +2,7 @@
** CRC32.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Calculator.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Calculator.cpp
index 3473b50c6e7..c26a40bc237 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Calculator.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Calculator.cpp
@@ -2,7 +2,7 @@
** Calculator.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Calculator.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Calculator.h
index a67ba0540e2..b3faa325322 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Calculator.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Calculator.h
@@ -2,7 +2,7 @@
** Calculator.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/CmdLineParserBase.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/CmdLineParserBase.cpp
index 8fe3963788a..6a44b939aca 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/CmdLineParserBase.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/CmdLineParserBase.cpp
@@ -2,7 +2,7 @@
** CmdLineParserBase.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/CmdLineParserBase.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/CmdLineParserBase.h
index 9d2e5def72c..cd15d907b14 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/CmdLineParserBase.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/CmdLineParserBase.h
@@ -2,7 +2,7 @@
** CmdLineParserBase.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -70,7 +70,7 @@ class CmdLineParserBase
virtual bool error () const {return _error;}
protected:
- CmdLineParserBase () : _error(false) {}
+ CmdLineParserBase () : _printErrors(true), _error(false) {}
CmdLineParserBase (const CmdLineParserBase &cmd) {}
virtual ~CmdLineParserBase () {}
virtual void init ();
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Color.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Color.cpp
index 280a15f1b18..c9695a62b32 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Color.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Color.cpp
@@ -2,7 +2,7 @@
** Color.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Color.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Color.h
index 3a8e5fe7473..a6b6b40dcc9 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Color.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Color.h
@@ -2,7 +2,7 @@
** Color.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/ColorSpecialHandler.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/ColorSpecialHandler.cpp
index 36e9bc33410..d156a43770f 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/ColorSpecialHandler.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/ColorSpecialHandler.cpp
@@ -2,7 +2,7 @@
** ColorSpecialHandler.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/ColorSpecialHandler.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/ColorSpecialHandler.h
index 5b6c87e3493..a9b73dc8b74 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/ColorSpecialHandler.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/ColorSpecialHandler.h
@@ -2,7 +2,7 @@
** ColorSpecialHandler.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/CommandLine.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/CommandLine.cpp
index 13b87ec0a6c..4b11bc3e9fd 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/CommandLine.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/CommandLine.cpp
@@ -1,8 +1,8 @@
// This file was automatically generated by opt2cpp.
// It is part of the dvisvgm package and published under the terms
-// of the GNU General Public License version 3 or later.
+// of the GNU General Public License version 3, or (at your option) any later version.
// See file COPYING for further details.
-// (C) 2009-2012 Martin Gieseking <martin.gieseking@uos.de>
+// (C) 2009-2013 Martin Gieseking <martin.gieseking@uos.de>
#include <cstdio>
#include <iostream>
@@ -17,6 +17,7 @@ const CmdLineParserBase::Option CommandLine::_options[] = {
{'C', "cache", 'o', new OptionHandlerImpl<CommandLine>(&CommandLine::handle_cache)},
{'\0', "color", 0, new OptionHandlerImpl<CommandLine>(&CommandLine::handle_color)},
{'e', "exact", 0, new OptionHandlerImpl<CommandLine>(&CommandLine::handle_exact)},
+ {'m', "fontmap", 'r', new OptionHandlerImpl<CommandLine>(&CommandLine::handle_fontmap)},
{'h', "help", 0, new OptionHandlerImpl<CommandLine>(&CommandLine::handle_help)},
{'\0', "keep", 0, new OptionHandlerImpl<CommandLine>(&CommandLine::handle_keep)},
#if !defined(HAVE_LIBGS) && !defined(DISABLE_GS)
@@ -24,7 +25,6 @@ const CmdLineParserBase::Option CommandLine::_options[] = {
#endif
{'l', "list-specials", 0, new OptionHandlerImpl<CommandLine>(&CommandLine::handle_list_specials)},
{'M', "mag", 'r', new OptionHandlerImpl<CommandLine>(&CommandLine::handle_mag)},
- {'m', "map-file", 'r', new OptionHandlerImpl<CommandLine>(&CommandLine::handle_map_file)},
{'n', "no-fonts", 'o', new OptionHandlerImpl<CommandLine>(&CommandLine::handle_no_fonts)},
{'\0', "no-mktexmf", 0, new OptionHandlerImpl<CommandLine>(&CommandLine::handle_no_mktexmf)},
{'S', "no-specials", 'o', new OptionHandlerImpl<CommandLine>(&CommandLine::handle_no_specials)},
@@ -50,6 +50,7 @@ void CommandLine::init () {
_cache_given = false;
_color_given = false;
_exact_given = false;
+ _fontmap_given = false;
_help_given = false;
_keep_given = false;
#if !defined(HAVE_LIBGS) && !defined(DISABLE_GS)
@@ -57,7 +58,6 @@ void CommandLine::init () {
#endif
_list_specials_given = false;
_mag_given = false;
- _map_file_given = false;
_no_fonts_given = false;
_no_mktexmf_given = false;
_no_specials_given = false;
@@ -77,11 +77,11 @@ void CommandLine::init () {
_bbox_arg = "min";
_cache_arg.clear();
+ _fontmap_arg.clear();
#if !defined(HAVE_LIBGS) && !defined(DISABLE_GS)
_libgs_arg.clear();
#endif
_mag_arg = 4;
- _map_file_arg.clear();
_no_fonts_arg = 0;
_no_specials_arg.clear();
_output_arg.clear();
@@ -100,38 +100,38 @@ void CommandLine::init () {
void CommandLine::help () const {
puts("This program converts DVI files, as created by TeX/LaTeX, to\nthe XML-based scalable vector graphics format SVG.\n\nUsage: dvisvgm [options] dvifile\n");
puts("Input options:");
- puts(" -p, --page=ranges choose pages to convert [1]");
- puts(" -m, --map-file=[+]filename set [additional] font map file name");
+ puts(" -p, --page=ranges choose pages to convert [1]");
+ puts(" -m, --fontmap=filenames evaluate (additional) font map files");
puts("\nSVG output options:");
- puts(" -b, --bbox=size set size of bounding box [min]");
- puts(" -o, --output=pattern set name pattern of output files");
- puts(" -s, --stdout write SVG output to stdout");
- puts(" -n, --no-fonts[=variant] draw glyphs by using path elements [0]");
- puts(" --no-styles don't use styles to reference fonts");
- puts(" -z, --zip[=level] create compressed .svgz file [9]");
+ puts(" -b, --bbox=size set size of bounding box [min]");
+ puts(" -o, --output=pattern set name pattern of output files");
+ puts(" -s, --stdout write SVG output to stdout");
+ puts(" -n, --no-fonts[=variant] draw glyphs by using path elements [0]");
+ puts(" --no-styles don't use styles to reference fonts");
+ puts(" -z, --zip[=level] create compressed .svgz file [9]");
puts("\nSVG transformations:");
- puts(" -r, --rotate=angle rotate page content clockwise");
- puts(" -c, --scale=sx[,sy] scale page content");
- puts(" -t, --translate=tx[,ty] shift page content");
- puts(" -T, --transform=commands transform page content");
+ puts(" -r, --rotate=angle rotate page content clockwise");
+ puts(" -c, --scale=sx[,sy] scale page content");
+ puts(" -t, --translate=tx[,ty] shift page content");
+ puts(" -T, --transform=commands transform page content");
puts("\nProcessing options:");
- puts(" -C, --cache[=dir] set/print path of cache directory");
- puts(" -e, --exact compute exact glyph boxes");
- puts(" --keep keep temporary files");
+ puts(" -C, --cache[=dir] set/print path of cache directory");
+ puts(" -e, --exact compute exact glyph boxes");
+ puts(" --keep keep temporary files");
#if !defined(HAVE_LIBGS) && !defined(DISABLE_GS)
- puts(" --libgs=filename set name of Ghostscript shared library");
+ puts(" --libgs=filename set name of Ghostscript shared library");
#endif
- puts(" -M, --mag=factor magnification of Metafont output [4]");
- puts(" --no-mktexmf don't try to create missing fonts");
+ puts(" -M, --mag=factor magnification of Metafont output [4]");
+ puts(" --no-mktexmf don't try to create missing fonts");
puts(" -S, --no-specials[=prefixes] don't process [selected] specials");
- puts(" -a, --trace-all[=retrace] trace all glyphs of bitmap fonts [no]");
+ puts(" -a, --trace-all[=retrace] trace all glyphs of bitmap fonts [no]");
puts("\nMessage options:");
- puts(" --color colorize messages");
- puts(" -h, --help print this help and exit");
- puts(" -l, --list-specials print supported special sets and exit");
- puts(" -P, --progress[=delay] enable progess indicator [0.5]");
- puts(" -v, --verbosity=level set verbosity level (0-7) [7]");
- puts(" -V, --version[=extended] print version and exit [no]");
+ puts(" --color colorize messages");
+ puts(" -h, --help print this help and exit");
+ puts(" -l, --list-specials print supported special sets and exit");
+ puts(" -P, --progress[=delay] enable progess indicator [0.5]");
+ puts(" -v, --verbosity=level set verbosity level (0-7) [7]");
+ puts(" -V, --version[=extended] print version and exit [no]");
}
@@ -157,6 +157,12 @@ void CommandLine::handle_exact(InputReader &ir, const Option &opt, bool longopt)
}
+void CommandLine::handle_fontmap(InputReader &ir, const Option &opt, bool longopt) {
+ if (getStringArg(ir, opt, longopt, _fontmap_arg))
+ _fontmap_given = true;
+}
+
+
void CommandLine::handle_help(InputReader &ir, const Option &opt, bool longopt) {
_help_given = true;
}
@@ -186,12 +192,6 @@ void CommandLine::handle_mag(InputReader &ir, const Option &opt, bool longopt) {
}
-void CommandLine::handle_map_file(InputReader &ir, const Option &opt, bool longopt) {
- if (getStringArg(ir, opt, longopt, _map_file_arg))
- _map_file_given = true;
-}
-
-
void CommandLine::handle_no_fonts(InputReader &ir, const Option &opt, bool longopt) {
if (ir.eof() || getIntArg(ir, opt, longopt, _no_fonts_arg))
_no_fonts_given = true;
@@ -290,6 +290,7 @@ void CommandLine::status () const {
cout << 'C'<< setw(20) << "cache " << cache_given() << setw(10) << cache_arg() << endl;
cout << ' '<< setw(20) << "color " << color_given() << endl;
cout << 'e'<< setw(20) << "exact " << exact_given() << endl;
+ cout << 'm'<< setw(20) << "fontmap " << fontmap_given() << setw(10) << fontmap_arg() << endl;
cout << 'h'<< setw(20) << "help " << help_given() << endl;
cout << ' '<< setw(20) << "keep " << keep_given() << endl;
#if !defined(HAVE_LIBGS) && !defined(DISABLE_GS)
@@ -297,7 +298,6 @@ void CommandLine::status () const {
#endif
cout << 'l'<< setw(20) << "list-specials " << list_specials_given() << endl;
cout << 'M'<< setw(20) << "mag " << mag_given() << setw(10) << mag_arg() << endl;
- cout << 'm'<< setw(20) << "map-file " << map_file_given() << setw(10) << map_file_arg() << endl;
cout << 'n'<< setw(20) << "no-fonts " << no_fonts_given() << setw(10) << no_fonts_arg() << endl;
cout << ' '<< setw(20) << "no-mktexmf " << no_mktexmf_given() << endl;
cout << 'S'<< setw(20) << "no-specials " << no_specials_given() << setw(10) << no_specials_arg() << endl;
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/CommandLine.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/CommandLine.h
index 5fd0000457e..550f965e650 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/CommandLine.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/CommandLine.h
@@ -1,8 +1,8 @@
// This file was automatically generated by opt2cpp.
// It is part of the dvisvgm package and published under the terms
-// of the GNU General Public License version 3 or later.
+// of the GNU General Public License version 3, or (at your option) any later version.
// See file COPYING for further details.
-// (C) 2009-2012 Martin Gieseking <martin.gieseking@uos.de>
+// (C) 2009-2013 Martin Gieseking <martin.gieseking@uos.de>
#ifndef COMMANDLINE_H
#define COMMANDLINE_H
@@ -21,8 +21,8 @@ class CommandLine : public CmdLineParserBase
void status () const;
bool page_given () const {return _page_given;}
const std::string& page_arg () const {return _page_arg;}
- bool map_file_given () const {return _map_file_given;}
- const std::string& map_file_arg () const {return _map_file_arg;}
+ bool fontmap_given () const {return _fontmap_given;}
+ const std::string& fontmap_arg () const {return _fontmap_arg;}
bool bbox_given () const {return _bbox_given;}
const std::string& bbox_arg () const {return _bbox_arg;}
bool output_given () const {return _output_given;}
@@ -70,7 +70,7 @@ class CommandLine : public CmdLineParserBase
void init ();
const CmdLineParserBase::Option* options () const {return _options;}
void handle_page (InputReader &ir, const Option &opt, bool longopt);
- void handle_map_file (InputReader &ir, const Option &opt, bool longopt);
+ void handle_fontmap (InputReader &ir, const Option &opt, bool longopt);
void handle_bbox (InputReader &ir, const Option &opt, bool longopt);
void handle_output (InputReader &ir, const Option &opt, bool longopt);
void handle_stdout (InputReader &ir, const Option &opt, bool longopt);
@@ -102,8 +102,8 @@ class CommandLine : public CmdLineParserBase
static const CmdLineParserBase::Option _options[];
bool _page_given;
std::string _page_arg;
- bool _map_file_given;
- std::string _map_file_arg;
+ bool _fontmap_given;
+ std::string _fontmap_arg;
bool _bbox_given;
std::string _bbox_arg;
bool _output_given;
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DLLoader.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DLLoader.cpp
index d36b897468b..30317455ba6 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DLLoader.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DLLoader.cpp
@@ -2,7 +2,7 @@
** DLLoader.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -41,7 +41,10 @@ DLLoader::~DLLoader () {
}
-void* DLLoader::loadFunction (const char *name) {
+/** Loads a function or variable from the dynamic/shared library.
+ * @param[in] name name of function/variable to load
+ * @return pointer to loaded symbol, or 0 if the symbol could not be loaded */
+void* DLLoader::loadSymbol (const char *name) {
if (_handle) {
#ifdef __WIN32__
return (void*)GetProcAddress(_handle, name);
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DLLoader.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DLLoader.h
index 72cc2781ebd..3052d13714e 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DLLoader.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DLLoader.h
@@ -2,7 +2,7 @@
** DLLoader.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -39,7 +39,7 @@ class DLLoader
protected:
DLLoader () : _handle(0) {}
- void* loadFunction (const char *name);
+ void* loadSymbol (const char *name);
private:
#ifdef __WIN32__
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIActions.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIActions.cpp
index 79e0df8dbc2..f9c95dc3754 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIActions.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIActions.cpp
@@ -2,7 +2,7 @@
** DVIActions.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIActions.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIActions.h
index 6d5f3a619f2..a3fa86a801c 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIActions.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIActions.h
@@ -2,7 +2,7 @@
** DVIActions.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIReader.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIReader.cpp
index eccb65cef52..acdb8cd7351 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIReader.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIReader.cpp
@@ -2,7 +2,7 @@
** DVIReader.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -656,7 +656,9 @@ void DVIReader::cmdFontDef (int len) {
string fontpath = readString(pathlen);
string fontname = readString(namelen);
- defineFont(fontnum, fontname, checksum, dsize*_scaleFactor, ssize*_scaleFactor);
+ // process font definitions between bop and eop only, skip those in the postamble
+ if (_inPage)
+ defineFont(fontnum, fontname, checksum, dsize*_scaleFactor, ssize*_scaleFactor);
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIReader.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIReader.h
index 0bb8100cfa2..1a1163900d6 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIReader.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIReader.h
@@ -2,7 +2,7 @@
** DVIReader.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIToSVG.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIToSVG.cpp
index 5dab59f184b..c70ccd8f210 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIToSVG.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIToSVG.cpp
@@ -2,7 +2,7 @@
** DVIToSVG.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -56,6 +56,7 @@
#include "ColorSpecialHandler.h"
#include "DvisvgmSpecialHandler.h"
#include "EmSpecialHandler.h"
+#include "PdfSpecialHandler.h"
//#include "HtmlSpecialHandler.h"
#if !defined(DISABLE_GS)
#include "PsSpecialHandler.h"
@@ -120,7 +121,7 @@ DVIToSVG::~DVIToSVG () {
void DVIToSVG::convert (unsigned first, unsigned last, pair<int,int> *pageinfo) {
if (getTotalPages() == 0) {
executePreamble();
- executePostamble(); // collect scaling and font information
+ executePostamble(); // collect scaling information
}
if (first > last)
swap(first, last);
@@ -163,7 +164,7 @@ void DVIToSVG::convert (unsigned first, unsigned last, pair<int,int> *pageinfo)
void DVIToSVG::convert (const string &rangestr, pair<int,int> *pageinfo) {
if (getTotalPages() == 0) {
executePreamble();
- executePostamble(); // collect scaling and font information
+ executePostamble(); // collect scaling information
}
PageRanges ranges;
if (!ranges.parse(rangestr, getTotalPages()))
@@ -310,8 +311,9 @@ void DVIToSVG::embedFonts (XMLElementNode *svgElement) {
* 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] pswarning if true, shows warning about disabled PS support
* @return the SpecialManager that handles special statements */
-const SpecialManager* DVIToSVG::setProcessSpecials (const char *ignorelist) {
+const SpecialManager* DVIToSVG::setProcessSpecials (const char *ignorelist, bool pswarning) {
if (ignorelist && strcmp(ignorelist, "*") == 0) { // ignore all specials?
_specialManager.unregisterHandlers();
}
@@ -323,6 +325,7 @@ const SpecialManager* DVIToSVG::setProcessSpecials (const char *ignorelist) {
new ColorSpecialHandler, // handles color specials
new DvisvgmSpecialHandler, // handles raw SVG embeddings
new EmSpecialHandler, // handles emTeX specials
+ new PdfSpecialHandler, // handles pdf specials
// new HtmlSpecialHandler, // handles hyperref specials
new TpicSpecialHandler, // handles tpic specials
0
@@ -336,7 +339,7 @@ const SpecialManager* DVIToSVG::setProcessSpecials (const char *ignorelist) {
p++;
_specialManager.unregisterHandlers();
_specialManager.registerHandlers(p, ignorelist);
- if (*handlers == 0)
+ if (*handlers == 0 && pswarning)
Message::wstream() << "processing of PostScript specials is disabled\n";
}
return &_specialManager;
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIToSVG.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIToSVG.h
index 646958e6538..4826d44c9a5 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIToSVG.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIToSVG.h
@@ -2,7 +2,7 @@
** DVIToSVG.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -44,7 +44,7 @@ class DVIToSVG : public DVIReader
~DVIToSVG ();
void convert (unsigned firstPage, unsigned lastPage, std::pair<int,int> *pageinfo=0);
void convert (const std::string &range, std::pair<int,int> *pageinfo=0);
- const SpecialManager* setProcessSpecials (const char *ignorelist=0);
+ const SpecialManager* setProcessSpecials (const char *ignorelist=0, bool pswarning=false);
const SpecialManager& specialManager () const {return _specialManager;}
void setPageSize (const std::string &name) {_bboxString = name;}
void setTransformation (const std::string &cmds) {_transCmds = cmds;}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIToSVGActions.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIToSVGActions.cpp
index edd16f99119..adae27f105b 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIToSVGActions.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIToSVGActions.cpp
@@ -2,7 +2,7 @@
** DVIToSVGActions.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIToSVGActions.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIToSVGActions.h
index e1128bb033c..2e68bb9cb31 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DVIToSVGActions.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DVIToSVGActions.h
@@ -2,7 +2,7 @@
** DVIToSVGActions.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Directory.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Directory.cpp
index 5baf04fc31b..c13ebe35a38 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Directory.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Directory.cpp
@@ -2,7 +2,7 @@
** Directory.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -35,6 +35,7 @@ Directory::Directory () {
handle = INVALID_HANDLE_VALUE;
#else
dir = 0;
+ dirent = 0;
#endif
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Directory.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Directory.h
index 2bbfb011ccb..6420bec6d19 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Directory.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Directory.h
@@ -2,7 +2,7 @@
** Directory.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -24,6 +24,7 @@
#include <string>
#ifdef __WIN32__
#include <windows.h>
+ #undef max
#else
#include <dirent.h>
#endif
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DvisvgmSpecialHandler.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DvisvgmSpecialHandler.cpp
index 06d974b0f22..11e3c0fc42a 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DvisvgmSpecialHandler.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DvisvgmSpecialHandler.cpp
@@ -2,7 +2,7 @@
** DvisvgmSpecialHandler.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DvisvgmSpecialHandler.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DvisvgmSpecialHandler.h
index f13b06afd12..93e726fe634 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/DvisvgmSpecialHandler.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/DvisvgmSpecialHandler.h
@@ -2,7 +2,7 @@
** DvisvgmSpecialHandler.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/EmSpecialHandler.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/EmSpecialHandler.cpp
index bfcf80d934a..29b36e506ed 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/EmSpecialHandler.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/EmSpecialHandler.cpp
@@ -2,7 +2,7 @@
** EmSpecialHandler.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/EmSpecialHandler.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/EmSpecialHandler.h
index e80f652a878..2a0700ebb9e 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/EmSpecialHandler.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/EmSpecialHandler.h
@@ -2,7 +2,7 @@
** EmSpecialHandler.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FileFinder.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FileFinder.cpp
index eaa1e7e90fe..032ea7da55f 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FileFinder.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FileFinder.cpp
@@ -2,7 +2,7 @@
** FileFinder.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -24,17 +24,15 @@
#include <string>
#include "FileFinder.h"
#include "FileSystem.h"
+#include "FontMap.h"
#include "Message.h"
-#include "macros.h"
using namespace std;
#ifdef MIKTEX
#include "MessageException.h"
- #import <MiKTeX209-session.tlb>
- using namespace MiKTeXSession2_9;
-
- static ISession2Ptr miktex_session;
+ #include "MiKTeXCom.h"
+ static MiKTeXCom *miktex=0;
#else
// unfortunately, the kpathsea headers are not C++-ready,
// so we have to wrap it with some ugly code
@@ -47,39 +45,31 @@ using namespace std;
#endif
// ---------------------------------------------------
-// static member variables of FileFinder::Impl
static bool _initialized = false;
static bool _mktex_enabled = false;
-static FontMap _fontmap;
// ---------------------------------------------------
static const char* find_file (const std::string &fname);
static const char* find_mapped_file (std::string fname);
static const char* mktex (const std::string &fname);
-static void init_font_map (const char *usermapname);
/** Initializes the file finder. This function must be called before any other
* FileFinder function.
- * @param[in] progname name of appllication using the FileFinder
- * @param[in] enable_mktexmf if true, tfm and mf file generation is activated
- * @param[in] usermapname optional path to mapfile; if 0, the default files are used */
-void FileFinder::init (const char *progname, bool enable_mktexmf, const char *usermapname) {
+ * @param[in] argv0 argv[0] of main() function
+ * @param[in] progname name of application using the FileFinder
+ * @param[in] enable_mktexmf if true, tfm and mf file generation is activated */
+void FileFinder::init (const char *argv0, const char *progname, bool enable_mktexmf) {
if (_initialized)
return;
_mktex_enabled = enable_mktexmf;
#ifdef MIKTEX
- if (FAILED(CoInitialize(0)))
- throw MessageException("COM library could not be initialized\n");
-
- HRESULT hres = miktex_session.CreateInstance(L"MiKTeX.Session");
- if (FAILED(hres))
- throw MessageException("MiKTeX.Session could not be initialized");
+ miktex = new MiKTeXCom;
#else
- kpse_set_program_name(progname, "dvisvgm");
+ kpse_set_program_name(argv0, progname);
// enable tfm and mf generation (actually invoked by calls of kpse_make_tex)
kpse_set_program_enabled(kpse_tfm_format, 1, kpse_src_env);
kpse_set_program_enabled(kpse_mf_format, 1, kpse_src_env);
@@ -89,7 +79,6 @@ void FileFinder::init (const char *progname, bool enable_mktexmf, const char *us
#endif
#endif
_initialized = true;
- init_font_map(usermapname);
}
@@ -97,34 +86,33 @@ void FileFinder::init (const char *progname, bool enable_mktexmf, const char *us
* applications main() function. */
void FileFinder::finish () {
#ifdef MIKTEX
- if (_initialized) {
- miktex_session = 0; // avoid automatic calling of Release() after CoUninitialize()
- CoUninitialize();
+ if (miktex) {
+ delete miktex;
+ miktex = 0;
}
#endif
_initialized = false;
}
+/** Returns the version string of the underlying file searching library (kpathsea, MiKTeX) */
std::string FileFinder::version () {
#ifdef MIKTEX
bool autoinit=false;
if (!_initialized) {
- init("", false);
+ init("", "", false);
autoinit = true;
}
-
try {
- MiKTeXSetupInfo info = miktex_session->GetMiKTeXSetupInfo();
- _bstr_t version = info.version;
+ string ret = miktex->getVersion();
if (autoinit)
- FileFinder::finish();
- return string(version);
+ finish();
+ return ret;
}
- catch (_com_error e) {
+ catch (MessageException &e) {
if (autoinit)
- FileFinder::finish();
- throw MessageException((const char*)e.Description());
+ finish();
+ throw;
}
#else
if (const char *v = strrchr(KPSEVERSION, ' '))
@@ -147,25 +135,13 @@ static const char* find_file (const std::string &fname) {
return 0; // no extension => no search
const std::string ext = fname.substr(pos+1); // file extension
#ifdef MIKTEX
- _bstr_t path;
- static string ret;
- try {
- if (miktex_session->FindFile(fname.c_str(), path.GetAddress())) {
- ret = path;
- return ret.c_str();
- }
- }
- catch (_com_error e) {
- throw MessageException((const char*)e.Description());
- }
- return 0;
-
+ return miktex->findFile(fname.c_str());
#else
static std::string buf;
#ifdef TEXLIVEWIN32
if (ext == "exe") {
- // lookup exe files in directory where dvisvgm is located
+ // lookup exe files in directory where dvisvgm is located
if (const char *path = kpse_var_value("SELFAUTOLOC")) {
buf = std::string(path) + "/" + fname;
return FileSystem::exists(buf.c_str()) ? buf.c_str() : 0;
@@ -180,11 +156,13 @@ static const char* find_file (const std::string &fname) {
types["pfb"] = kpse_type1_format;
types["vf"] = kpse_vf_format;
types["mf"] = kpse_mf_format;
+ types["ttc"] = kpse_truetype_format;
types["ttf"] = kpse_truetype_format;
types["map"] = kpse_fontmap_format;
types["sty"] = kpse_tex_format;
types["enc"] = kpse_enc_format;
types["pro"] = kpse_tex_ps_header_format;
+ types["sfd"] = kpse_sfd_format;
}
std::map<std::string, kpse_file_format_type>::iterator it = types.find(ext.c_str());
if (it == types.end())
@@ -214,12 +192,15 @@ static const char* find_mapped_file (std::string fname) {
return 0;
const std::string ext = fname.substr(pos+1); // file extension
const std::string base = fname.substr(0, pos);
- const char *mapped_name = _fontmap.lookup(base);
- if (mapped_name) {
- fname = std::string(mapped_name) + "." + ext;
- const char *path;
- if ((path = find_file(fname)) || (path = mktex(fname)))
- return path;
+ if (const FontMap::Entry *entry = FontMap::instance().lookup(base)) {
+ const char *path=0;
+ if (entry->fontname.find('.') != std::string::npos) // does the mapped filename has an extension?
+ path = find_file(entry->fontname); // look for that file
+ else { // otherwise, use extension of unmapped file
+ fname = entry->fontname + "." + ext;
+ (path = find_file(fname)) || (path = mktex(fname));
+ }
+ return path;
}
return 0;
}
@@ -240,7 +221,6 @@ static const char* mktex (const std::string &fname) {
if (ext != "tfm" && ext != "mf")
return 0;
- std::string base = fname.substr(0, pos);
const char *path = 0;
#ifdef MIKTEX
// maketfm and makemf are located in miktex/bin which is in the search PATH
@@ -255,34 +235,6 @@ static const char* mktex (const std::string &fname) {
}
-/** Initializes a font map by reading the map file(s).
- * @param[in,out] fontmap font map to be initialized */
-static void init_font_map (const char *usermapname) {
- bool additional = (usermapname && *usermapname == '+'); // read additional map entries?
- if (additional)
- usermapname++;
- if (usermapname) {
- // try to read user font map file
- const char *mappath = 0;
- if (!_fontmap.read(usermapname)) {
- if ((mappath = find_file(usermapname)))
- _fontmap.read(mappath);
- else
- Message::wstream(true) << "map file '" << usermapname << "' not found\n";
- }
- }
- if (!usermapname || additional) {
- const char *mapfiles[] = {"ps2pk.map", "dvipdfm.map", "psfonts.map", 0};
- const char *mf=0;
- for (const char **p=mapfiles; *p && !mf; p++)
- if ((mf = find_file(*p))!=0)
- _fontmap.read(mf);
- if (!mf)
- Message::wstream(true) << "none of the default map files could be found";
- }
-}
-
-
/** Searches a file in the TeX directory tree.
* If the file doesn't exist, maximal two further steps are applied
* (if "extended" is true):
@@ -298,26 +250,4 @@ const char* FileFinder::lookup (const std::string &fname, bool extended) {
if ((path = find_file(fname)) || (extended && ((path = find_mapped_file(fname)) || (path = mktex(fname)))))
return path;
return 0;
-}
-
-
-/** Returns the path to the corresponding encoding file for a given font file.
- * @param[in] fname name of the font file
- * @return path to encoding file on success, 0 otherwise */
-const char* FileFinder::lookupEncFile (std::string fname) {
- if (const char *encname = lookupEncName(fname)) {
- fname = std::string(encname) + ".enc";
- const char *path = find_file(fname);
- if (path)
- return path;
- }
- return 0;
-}
-
-
-const char* FileFinder::lookupEncName (std::string fname) {
- size_t pos = fname.rfind('.');
- if (pos != std::string::npos)
- fname = fname.substr(0, pos); // strip extension
- return _fontmap.encoding(fname);
-}
+} \ No newline at end of file
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FileFinder.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FileFinder.h
index e68119557c5..f0d8dbba001 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FileFinder.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FileFinder.h
@@ -2,7 +2,7 @@
** FileFinder.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -22,16 +22,13 @@
#define KPSFILEFINDER_H
#include <string>
-#include "FontMap.h"
struct FileFinder
{
- static void init (const char *progname, bool enable_mktexmf, const char *usermapname=0);
+ static void init (const char *argv0, const char *progname, bool enable_mktexmf);
static void finish ();
static std::string version ();
static const char* lookup (const std::string &fname, bool extended=true);
- static const char* lookupEncFile (std::string fontname);
- static const char* lookupEncName (std::string fname);
};
#endif
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FilePath.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FilePath.cpp
index 8c58179bc7d..0066909e8ca 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FilePath.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FilePath.cpp
@@ -2,7 +2,7 @@
** FilePath.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -231,7 +231,7 @@ string FilePath::relative (string reldir, bool with_filename) const {
FilePath rel(reldir, false);
string path;
#ifdef __WIN32__
- if (rel._drive && rel._drive != _drive)
+ if (rel._drive && _drive && rel._drive != _drive)
path += string(1, _drive) + ":";
#endif
ConstIterator i = _dirs.begin();
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FilePath.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FilePath.h
index 0830853170f..5bd3fdf98e2 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FilePath.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FilePath.h
@@ -2,7 +2,7 @@
** FilePath.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FileSystem.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FileSystem.cpp
index 6adf1f4773d..67e48595db9 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FileSystem.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FileSystem.cpp
@@ -2,7 +2,7 @@
** FileSystem.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FileSystem.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FileSystem.h
index 3ea63764664..c920a5046e6 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FileSystem.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FileSystem.h
@@ -2,7 +2,7 @@
** FileSystem.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Font.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Font.cpp
index 562b947bb3d..f9ec0737a2d 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Font.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Font.cpp
@@ -2,7 +2,7 @@
** Font.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -35,7 +35,9 @@
#include "macros.h"
#include "FileSystem.h"
#include "SignalHandler.h"
+#include "Subfont.h"
#include "SVGTree.h"
+#include "FontMap.h"
using namespace std;
@@ -89,10 +91,31 @@ const TFM* TFMFont::getTFM () const {
}
-double TFMFont::charWidth (int c) const {return getTFM()->getCharWidth(c);}
+double TFMFont::charWidth (int c) const {
+ double w = getTFM()->getCharWidth(c);
+ if (style())
+ w *= style()->extend;
+ return w;
+}
+
+
+double TFMFont::italicCorr (int c) const {
+ double w = getTFM()->getItalicCorr(c);
+ if (style())
+ w *= style()->extend;
+ return w;
+}
+
+
double TFMFont::charDepth (int c) const {return getTFM()->getCharDepth(c);}
double TFMFont::charHeight (int c) const {return getTFM()->getCharHeight(c);}
-double TFMFont::italicCorr (int c) const {return getTFM()->getItalicCorr(c);}
+
+
+bool TFMFont::verifyChecksums () const {
+ if (checksum != 0 && getTFM()->getChecksum() != 0)
+ return checksum == getTFM()->getChecksum();
+ return true;
+}
//////////////////////////////////////////////////////////////////////////////
@@ -103,9 +126,13 @@ double PhysicalFont::METAFONT_MAG = 4;
FontCache PhysicalFont::_cache;
-
Font* PhysicalFont::create (string name, UInt32 checksum, double dsize, double ssize, PhysicalFont::Type type) {
- return new PhysicalFontImpl(name, checksum, dsize, ssize, type);
+ return new PhysicalFontImpl(name, 0, checksum, dsize, ssize, type);
+}
+
+
+Font* PhysicalFont::create (string name, int fontindex, UInt32 checksum, double dsize, double ssize) {
+ return new PhysicalFontImpl(name, fontindex, checksum, dsize, ssize, PhysicalFont::TTC);
}
@@ -113,6 +140,7 @@ const char* PhysicalFont::path () const {
string ext;
switch (type()) {
case PFB: ext = "pfb"; break;
+ case TTC: ext = "ttc"; break;
case TTF: ext = "ttf"; break;
case MF : ext = "mf"; break;
}
@@ -146,6 +174,9 @@ double PhysicalFont::hAdvance (int c) const {
FontEngine::instance().setFont(*this);
if (FontEncoding *enc = encoding())
return FontEngine::instance().getHAdvance(enc->getEntry(c));
+ if (const FontMap::Entry *map_entry = FontMap::instance().lookup(name()))
+ if (Subfont *sf = map_entry->subfont)
+ c = sf->decode(c);
return FontEngine::instance().getHAdvance(c);
}
@@ -154,8 +185,13 @@ string PhysicalFont::glyphName (int c) const {
if (type() == MF)
return "";
FontEngine::instance().setFont(*this);
- if (FontEncoding *enc = encoding())
- return enc->getEntry(c);
+ if (FontEncoding *enc = encoding()) {
+ const char *name = enc->getEntry(c);
+ return name ? name : "";
+ }
+ if (const FontMap::Entry *map_entry = FontMap::instance().lookup(name()))
+ if (Subfont *sf = map_entry->subfont)
+ c = sf->decode(c);
return FontEngine::instance().getGlyphName(c);
}
@@ -221,8 +257,12 @@ bool PhysicalFont::getGlyph (int c, GraphicPath<Int32> &glyph, GFGlyphTracer::Ca
if (const char *encname = enc->getEntry(c))
ok = FontEngine::instance().traceOutline(encname, glyph, false);
}
- else
- ok = FontEngine::instance().traceOutline((unsigned char)c, glyph, false);
+ else {
+ if (const FontMap::Entry *map_entry = FontMap::instance().lookup(name()))
+ if (Subfont *sf = map_entry->subfont)
+ c = sf->decode(c);
+ ok = FontEngine::instance().traceOutline(c, glyph, false);
+ }
glyph.closeOpenSubPaths();
return ok;
}
@@ -300,8 +340,8 @@ Font* VirtualFont::create (string name, UInt32 checksum, double dsize, double ss
//////////////////////////////////////////////////////////////////////////////
-PhysicalFontImpl::PhysicalFontImpl (string name, UInt32 cs, double ds, double ss, PhysicalFont::Type type)
- : TFMFont(name, cs, ds, ss), _filetype(type), _charmap(0)
+PhysicalFontImpl::PhysicalFontImpl (string name, int fontindex, UInt32 cs, double ds, double ss, PhysicalFont::Type type)
+ : TFMFont(name, cs, ds, ss), _filetype(type), _fontIndex(fontindex), _style(0), _charmap(0)
{
}
@@ -311,6 +351,7 @@ PhysicalFontImpl::~PhysicalFontImpl () {
_cache.write(CACHE_PATH);
if (!KEEP_TEMP_FILES)
tidy();
+ delete _style;
delete _charmap;
}
@@ -355,6 +396,17 @@ void PhysicalFontImpl::tidy () const {
}
+void PhysicalFontImpl::setStyle (double bold, double extend, double slant) {
+ if (_style) {
+ _style->bold = bold;
+ _style->extend = extend;
+ _style->slant = slant;
+ }
+ else if (bold != 0 || extend != 1 || slant != 0)
+ _style = new Style(bold, extend, slant);
+}
+
+
//////////////////////////////////////////////////////////////////////////////
VirtualFontImpl::VirtualFontImpl (string name, UInt32 cs, double ds, double ss)
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Font.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Font.h
index ac688aa1ef5..ed3c82f3634 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Font.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Font.h
@@ -2,7 +2,7 @@
** Font.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -38,8 +38,15 @@ class TFM;
/** Abstract base for all font classes. */
-struct Font
-{
+struct Font {
+ struct Style {
+ Style () : bold(0), extend(0), slant(0) {}
+ Style (float b, float e, float s) : bold(b), extend(e), slant(s) {}
+ double bold; ///< stroke width in pt used to draw the glyph outlines
+ double extend; ///< factor to strech/shrink the glyphs horizontally
+ double slant; ///< horizontal slanting/skewing value (= tan(phi))
+ };
+
virtual ~Font () {}
virtual Font* clone (double ds, double sc) const =0;
virtual const Font* uniqueFont () const =0;
@@ -57,6 +64,9 @@ struct Font
virtual bool getGlyph (int c, Glyph &glyph, GFGlyphTracer::Callback *cb=0) const =0;
virtual UInt32 unicode (UInt32 c) const;
virtual void tidy () const {}
+ virtual bool verifyChecksums () const {return true;}
+ virtual int fontIndex () const {return 0;}
+ virtual const Style* style () const {return 0;}
};
@@ -89,8 +99,9 @@ struct EmptyFont : public Font
class PhysicalFont : public virtual Font
{
public:
- enum Type {MF, PFB, TTF};
- static Font* create (std::string name, UInt32 checksum, double dsize, double ssize, PhysicalFont::Type type);
+ enum Type {MF, PFB, TTC, TTF};
+ static Font* create (std::string name, UInt32 checksum, double dsize, double ssize, PhysicalFont::Type type);
+ static Font* create (std::string name, int fontindex, UInt32 checksum, double dsize, double ssize);
virtual Type type () const =0;
virtual bool getGlyph (int c, Glyph &glyph, GFGlyphTracer::Callback *cb=0) const;
virtual bool getGlyphBox (int c, BoundingBox &bbox, GFGlyphTracer::Callback *cb=0) const;
@@ -102,6 +113,7 @@ class PhysicalFont : public virtual Font
virtual int descent () const;
virtual int traceAllGlyphs (bool includeCached, GFGlyphTracer::Callback *cb=0) const;
const char* path () const;
+ virtual void setStyle (double bold, double extend, double slant) {}
protected:
bool createGF (std::string &gfname) const;
@@ -146,6 +158,7 @@ class TFMFont : public virtual Font
double charDepth (int c) const;
double charHeight (int c) const;
double italicCorr (int c) const;
+ bool verifyChecksums () const;
private:
mutable TFM *tfm;
@@ -172,6 +185,8 @@ class PhysicalFontProxy : public PhysicalFont
const TFM* getTFM () const {return pf->getTFM();}
Type type () const {return pf->type();}
UInt32 unicode (UInt32 c) const {return pf->unicode(c);}
+ int fontIndex () const {return pf->fontIndex();}
+ const Style* style () const {return pf->style();}
protected:
PhysicalFontProxy (const PhysicalFont *font, double ds, double ss) : pf(font), dsize(ds), ssize(ss) {}
@@ -192,14 +207,19 @@ class PhysicalFontImpl : public PhysicalFont, public TFMFont
Font* clone (double ds, double ss) const {return new PhysicalFontProxy(this, ds, ss);}
const Font* uniqueFont () const {return this;}
Type type () const {return _filetype;}
+ int fontIndex() const {return _fontIndex;}
+ const Style* style () const {return _style;}
+ void setStyle (double bold, double extend, double slant);
UInt32 unicode (UInt32 c) const;
void tidy () const;
protected:
- PhysicalFontImpl (std::string name, UInt32 checksum, double dsize, double ssize, PhysicalFont::Type type);
+ PhysicalFontImpl (std::string name, int fontindex, UInt32 checksum, double dsize, double ssize, PhysicalFont::Type type);
private:
Type _filetype;
+ int _fontIndex;
+ Style *_style;
mutable std::map<UInt32,UInt32> *_charmap;
};
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontCache.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontCache.cpp
index 8c68f2ee465..a36df9afa82 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontCache.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontCache.cpp
@@ -2,7 +2,7 @@
** FontCache.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -290,7 +290,7 @@ bool FontCache::fontinfo (const char *dirname, vector<FontInfo> &infos, vector<s
}
}
}
- return infos.size() > 0;
+ return !infos.empty();
}
@@ -369,9 +369,9 @@ void FontCache::fontinfo (const char *dirname, ostream &os, bool purge) {
FORALL(sortmap, SortMap::iterator, it) {
os << dec << setfill(' ') << left
<< setw(10) << left << it->second->name
- << setw(5) << right << it->second->numchars << " char" << (it->second->numchars == 1 ? ' ':'s')
- << setw(10) << right << it->second->numcmds << " cmd" << (it->second->numcmds == 1 ? ' ':'s')
- << setw(12) << right << it->second->numbytes << " byte" << (it->second->numbytes == 1 ? ' ':'s')
+ << setw(5) << right << it->second->numchars << " glyph" << (it->second->numchars == 1 ? ' ':'s')
+ << setw(10) << right << it->second->numcmds << " cmd" << (it->second->numcmds == 1 ? ' ':'s')
+ << setw(12) << right << it->second->numbytes << " byte" << (it->second->numbytes == 1 ? ' ':'s')
<< setw(6) << "crc:" << setw(8) << hex << right << setfill('0') << it->second->checksum
<< endl;
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontCache.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontCache.h
index 28116b2e950..cf4cbef7ec2 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontCache.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontCache.h
@@ -2,7 +2,7 @@
** FontCache.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontEncoding.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontEncoding.cpp
index a8022f802c9..bf9efb8e3ee 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontEncoding.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontEncoding.cpp
@@ -2,7 +2,7 @@
** FontEncoding.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -21,6 +21,7 @@
#include <fstream>
#include "Font.h"
#include "FontEncoding.h"
+#include "FontMap.h"
#include "InputBuffer.h"
#include "InputReader.h"
#include "FileFinder.h"
@@ -39,7 +40,7 @@ FontEncoding::FontEncoding (const string &encname) : _encname(encname)
const char* FontEncoding::path () const {
- return FileFinder::lookup(_encname+".enc");
+ return FileFinder::lookup(_encname+".enc", false);
}
@@ -51,7 +52,7 @@ void FontEncoding::read () {
read(ifs);
}
else
- Message::mstream(true) << "encoding file '" << _encname << ".enc' not found\n";
+ Message::wstream(true) << "encoding file '" << _encname << ".enc' not found\n";
}
@@ -124,7 +125,7 @@ static bool valid_name_char (int c) {
/** Returns an entry of the encoding table.
* @param[in] c character code
- * @return character name assigned to charcter code c*/
+ * @return character name assigned to character code c*/
const char* FontEncoding::getEntry (int c) const {
if (c >= 0 && (size_t)c < _table.size())
return !_table[c].empty() ? _table[c].c_str() : 0;
@@ -144,16 +145,20 @@ struct EncodingMap : public map<string, FontEncoding*>
/** Returns the encoding of a font.
* @param[in] fontname name of font whose encoding will be returned
* @return pointer to encoding object, or 0 if there is no encoding defined */
-FontEncoding* FontEncoding::encoding (const string &fontname) {
+FontEncoding* FontEncoding::encoding (string fontname) {
static EncodingMap encmap;
- if (const char *encname = FileFinder::lookupEncName(fontname)) {
- EncodingMap::const_iterator it = encmap.find(encname);
- if (it != encmap.end())
+ size_t pos = fontname.rfind('.');
+ if (pos != string::npos)
+ fontname = fontname.substr(0, pos); // strip extension
+ if (const FontMap::Entry *entry = FontMap::instance().lookup(fontname)) {
+ EncodingMap::const_iterator it = encmap.find(entry->encname);
+ if (it != encmap.end())
return it->second;
- FontEncoding *enc = new FontEncoding(encname);
- encmap[encname] = enc;
- return enc;
+ if (FileFinder::lookup(entry->encname + ".enc"), false) {
+ FontEncoding *enc = new FontEncoding(entry->encname);
+ encmap[entry->encname] = enc;
+ return enc;
+ }
}
return 0;
-}
-
+} \ No newline at end of file
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontEncoding.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontEncoding.h
index e972af0f50b..3170d850256 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontEncoding.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontEncoding.h
@@ -2,7 +2,7 @@
** FontEncoding.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -38,7 +38,7 @@ class FontEncoding
std::string name () const {return _encname;}
const char* getEntry (int c) const;
const char* path () const;
- static FontEncoding* encoding (const std::string &fontname);
+ static FontEncoding* encoding (std::string fontname);
private:
std::string _encname;
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontEngine.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontEngine.cpp
index 1bcc32b8d8a..ab53b1bd644 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontEngine.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontEngine.cpp
@@ -2,7 +2,7 @@
** FontEngine.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -24,19 +24,42 @@
#include FT_GLYPH_H
#include FT_OUTLINE_H
#include FT_TRUETYPE_TABLES_H
+#include FT_TYPES_H
#include "Font.h"
#include "FontEngine.h"
#include "Message.h"
-#include "macros.h"
using namespace std;
-FontEngine::FontEngine () {
- _currentFace = 0;
+/** Converts a floating point value to a 16.16 fixed point value. */
+static inline FT_Fixed to_16dot16 (double val) {
+ return static_cast<FT_Fixed>(val*65536.0 + 0.5);
+}
+
+/** Converts an integer to a 16.16 fixed point value. */
+static inline FT_Fixed to_16dot16 (int val) {
+ return static_cast<FT_Fixed>(val) << 16;
+}
+
+/** Converts a floating point value to a 26.6 fixed point value. */
+static inline FT_F26Dot6 to_26dot6 (double val) {
+ return static_cast<FT_F26Dot6>(val*64.0 + 0.5);
+}
+
+/** Converts an integer to a 26.6 fixed point value. */
+static inline FT_F26Dot6 to_26dot6 (int val) {
+ return static_cast<FT_F26Dot6>(val) << 6;
+}
+
+
+///////////////////////////////////////////////////////////////////////////
+
+
+FontEngine::FontEngine () : _currentFace(0), _currentFont(0)
+{
_currentChar = _currentGlyphIndex = 0;
_horDeviceRes = _vertDeviceRes = 300;
- _ptSize = 0;
if (FT_Init_FreeType(&_library))
Message::estream(true) << "FontEngine: error initializing FreeType library\n";
}
@@ -89,17 +112,13 @@ static void build_reverse_map (FT_Face face, map<UInt32, UInt32> &reverseMap) {
/** Sets the font to be used.
* @param[in] fname path to font file
- * @param[in] ptSize font size in point units
+ * @param[in] fontindex index of font in font collection (multi-font files, like TTC)
* @return true on success */
-bool FontEngine::setFont (const string &fname, int ptSize) {
- if (FT_New_Face(_library, fname.c_str(), 0, &_currentFace)) {
+bool FontEngine::setFont (const string &fname, int fontindex) {
+ if (FT_New_Face(_library, fname.c_str(), fontindex, &_currentFace)) {
Message::estream(true) << "FontEngine: error reading file " << fname << '\n';
return false;
}
- if (ptSize && FT_Set_Char_Size(_currentFace, 0, ptSize*64, _horDeviceRes, _vertDeviceRes)) {
- Message::estream(true) << "FontEngine: error setting character size\n";
- return false;
- }
// look for a custom character map
for (int i=0; i < _currentFace->num_charmaps; i++) {
FT_CharMap charmap = _currentFace->charmaps[i];
@@ -108,15 +127,14 @@ bool FontEngine::setFont (const string &fname, int ptSize) {
break;
}
}
- _ptSize = ptSize;
return true;
}
bool FontEngine::setFont (const Font &font) {
- if (fname != font.name()) {
- fname = font.name();
- return setFont(font.path());
+ if (!_currentFont || _currentFont->name() != font.name()) {
+ _currentFont = &font;
+ return setFont(font.path(), font.fontIndex());
}
return true;
}
@@ -258,20 +276,6 @@ vector<int> FontEngine::getPanose () const {
}
-bool FontEngine::setCharSize (int ptSize) {
- if (_currentFace) {
- if (FT_Set_Char_Size(_currentFace, 0, ptSize*64, _horDeviceRes, _vertDeviceRes)) {
- Message::estream(true) << "FontEngine: error setting character size\n";
- return false;
- }
- _ptSize = ptSize;
- return true;
- }
- Message::wstream(true) << "FontEngine: can't set char size, no font face selected\n";
- return false;
-}
-
-
// handle API change in freetype version 2.2.1
#if FREETYPE_MAJOR > 2 || (FREETYPE_MAJOR == 2 && (FREETYPE_MINOR > 2 || (FREETYPE_MINOR == 2 && FREETYPE_PATCH >= 1)))
typedef const FT_Vector *FTVectorPtr;
@@ -279,7 +283,8 @@ bool FontEngine::setCharSize (int ptSize) {
typedef FT_Vector *FTVectorPtr;
#endif
-// Callback functions used by traceOutline
+
+// Callback functions used by trace_outline/FT_Outline_Decompose
static int moveto (FTVectorPtr to, void *user) {
Glyph *glyph = static_cast<Glyph*>(user);
glyph->moveto(to->x, to->y);
@@ -317,18 +322,24 @@ static int cubicto (FTVectorPtr control1, FTVectorPtr control2, FTVectorPtr to,
* @param[in] commands the drawing commands to be executed
* @param[in] scale if true the current pt size will be considered otherwise the plain TrueType units are used.
* @return false on errors */
-static bool trace_outline (FT_Face face, int index, Glyph &glyph, bool scale) {
+static bool trace_outline (FT_Face face, const Font *font, int index, Glyph &glyph, bool scale) {
if (face) {
if (FT_Load_Glyph(face, index, scale ? FT_LOAD_DEFAULT : FT_LOAD_NO_SCALE)) {
Message::estream(true) << "can't load glyph " << int(index) << '\n';
return false;
}
-
if (face->glyph->format != FT_GLYPH_FORMAT_OUTLINE) {
Message::estream(true) << "no outlines found in glyph " << int(index) << '\n';
return false;
}
FT_Outline outline = face->glyph->outline;
+ // apply style parameters if set
+ if (const Font::Style *style = font->style()) {
+ FT_Matrix matrix = {to_16dot16(style->extend), to_16dot16(style->slant), 0, to_16dot16(1)};
+ FT_Outline_Transform(&outline, &matrix);
+ if (style->bold != 0)
+ FT_Outline_Embolden(&outline, style->bold/font->scaledSize()*face->units_per_EM);
+ }
const FT_Outline_Funcs funcs = {moveto, lineto, conicto, cubicto, 0, 0};
FT_Outline_Decompose(&outline, &funcs, &glyph);
return true;
@@ -338,7 +349,6 @@ static bool trace_outline (FT_Face face, int index, Glyph &glyph, bool scale) {
}
-
/** Traces the outline of a glyph by calling the corresponding "drawing" functions.
* Each glyph is composed of straight lines, quadratic (conic) or cubic B�zier curves.
* This function takes all these outline segments and processes them by calling
@@ -349,10 +359,10 @@ static bool trace_outline (FT_Face face, int index, Glyph &glyph, bool scale) {
* @param[in] scale if true the current pt size will be considered otherwise
* the plain TrueType units are used.
* @return false on errors */
-bool FontEngine::traceOutline (unsigned char chr, Glyph &glyph, bool scale) const {
+bool FontEngine::traceOutline (UInt16 chr, Glyph &glyph, bool scale) const {
if (_currentFace) {
int index = FT_Get_Char_Index(_currentFace, chr);
- return trace_outline(_currentFace, index, glyph, scale);
+ return trace_outline(_currentFace, _currentFont, index, glyph, scale);
}
Message::wstream(true) << "FontEngine: can't trace outline, no font face selected\n";
return false;
@@ -362,7 +372,7 @@ bool FontEngine::traceOutline (unsigned char chr, Glyph &glyph, bool scale) cons
bool FontEngine::traceOutline (const char *name, Glyph &glyph, bool scale) const {
if (_currentFace) {
int index = FT_Get_Name_Index(_currentFace, (FT_String*)name);
- return trace_outline(_currentFace, index, glyph, scale);
+ return trace_outline(_currentFace, _currentFont, index, glyph, scale);
}
Message::wstream(true) << "FontEngine: can't trace outline, no font face selected\n";
return false;
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontEngine.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontEngine.h
index 0893a91e961..68652b66523 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontEngine.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontEngine.h
@@ -2,7 +2,7 @@
** FontEngine.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -41,8 +41,7 @@ class FontEngine
static std::string version ();
void setDeviceResolution (int x, int y);
bool setFont (const Font &font);
- bool setCharSize (int ptSize);
- bool traceOutline (unsigned char chr, Glyph &glyph, bool scale=true) const;
+ bool traceOutline (UInt16 chr, Glyph &glyph, bool scale=true) const;
bool traceOutline (const char *name, Glyph &glyph, bool scale) const;
const char* getFamilyName () const;
const char* getStyleName () const;
@@ -54,7 +53,6 @@ class FontEngine
int getHAdvance (const char *name) const;
int getFirstChar () const;
int getNextChar () const;
- int getCharSize () const {return _ptSize;}
std::vector<int> getPanose () const;
std::string getGlyphName (unsigned int c) const;
int getCharByGlyphName (const char *name) const;
@@ -62,15 +60,14 @@ class FontEngine
protected:
FontEngine ();
- bool setFont (const std::string &fname, int ptSize=0);
+ bool setFont (const std::string &fname, int fontindex=0);
private:
int _horDeviceRes, _vertDeviceRes;
mutable unsigned int _currentChar, _currentGlyphIndex;
FT_Face _currentFace;
FT_Library _library;
- int _ptSize;
- std::string fname;
+ const Font *_currentFont;
};
#endif
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontManager.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontManager.cpp
index b5a1352147b..0481b59a969 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontManager.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontManager.cpp
@@ -2,7 +2,7 @@
** FontManager.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -18,11 +18,14 @@
** along with this program; if not, see <http://www.gnu.org/licenses/>. **
*************************************************************************/
+#include <cstring>
#include <cstdlib>
#include <fstream>
+#include <set>
#include "Font.h"
#include "FontEncoding.h"
#include "FontManager.h"
+#include "FontMap.h"
#include "FileFinder.h"
#include "Message.h"
#include "macros.h"
@@ -141,10 +144,30 @@ VirtualFont* FontManager::getVF () const {
}
+static Font* create_font (const string &filename, const string &fontname, int fontindex, UInt32 checksum, double dsize, double ssize) {
+ string ext;
+ if (const char *dot = strrchr(filename.c_str(), '.'))
+ ext = dot+1;
+ if (!ext.empty() && FileFinder::lookup(filename)) {
+ if (ext == "pfb")
+ return PhysicalFont::create(fontname, checksum, dsize, ssize, PhysicalFont::PFB);
+ if (ext == "ttf")
+ return PhysicalFont::create(fontname, checksum, dsize, ssize, PhysicalFont::TTF);
+ if (ext == "ttc")
+ return PhysicalFont::create(fontname, fontindex, checksum, dsize, ssize);
+ if (ext == "vf")
+ return VirtualFont::create(fontname, checksum, dsize, ssize);
+ if (ext == "mf")
+ return PhysicalFont::create(fontname, checksum, dsize, ssize, PhysicalFont::MF);
+ }
+ return 0;
+}
+
+
/** Registers a new font to be managed by the FontManager. If there is
* already a registered font assigned to number n, nothing happens.
* @param[in] fontnum local font number, as used in DVI and VF files
- * @param[in] name fontname, e.g. cmr10
+ * @param[in] name TFM fontname given in DVI file, e.g. cmr10
* @param[in] checksum checksum to be compared with TFM checksum
* @param[in] dsize design size in TeX point units
* @param[in] ssize scaled size in TeX point units
@@ -155,25 +178,46 @@ int FontManager::registerFont (UInt32 fontnum, string name, UInt32 checksum, dou
return id;
Font *newfont = 0;
- int newid = _fonts.size(); // the new font gets this ID
+ const int newid = _fonts.size(); // the new font gets this ID
Name2IdMap::iterator it = _name2id.find(name);
if (it != _name2id.end()) { // font with same name already registered?
Font *font = _fonts[it->second];
newfont = font->clone(dsize, ssize);
}
else {
- if (FileFinder::lookup(name+".pfb"))
- newfont = PhysicalFont::create(name, checksum, dsize, ssize, PhysicalFont::PFB);
- else if (FileFinder::lookup(name+".ttf"))
- newfont = PhysicalFont::create(name, checksum, dsize, ssize, PhysicalFont::TTF);
- else if (FileFinder::lookup(name+".vf"))
- newfont = VirtualFont::create(name, checksum, dsize, ssize);
- else if (FileFinder::lookup(name+".mf"))
- newfont = PhysicalFont::create(name, checksum, dsize, ssize, PhysicalFont::MF);
+ string filename = name;
+ int fontindex = 0;
+ const FontMap::Entry *map_entry = FontMap::instance().lookup(name);
+ if (map_entry) {
+ filename = map_entry->fontname;
+ fontindex = map_entry->fontindex;
+ }
+ // try to find font file with the exact given name
+ if (filename.rfind(".") != string::npos)
+ newfont = create_font(filename, name, fontindex, checksum, dsize, ssize);
else {
+ // try various font file formats if the given file has no extension
+ const char *exts[] = {".pfb", ".ttc", ".ttf", ".vf", ".mf", 0};
+ for (const char **p = exts; *p && !newfont; ++p)
+ newfont = create_font(filename+*p, name, fontindex, checksum, dsize, ssize);
+ }
+ if (map_entry)
+ if (PhysicalFont *pf = dynamic_cast<PhysicalFont*>(newfont))
+ pf->setStyle(map_entry->bold, map_entry->extend, map_entry->slant);
+ if (!newfont) {
+ // create dummy font as a placeholder if the proper font is not available
newfont = new EmptyFont(name);
- Message::wstream(true) << "font '" << name << "' not found\n";
+ 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";
+ missing_fonts.insert(filename);
+ }
}
+ else if (!newfont->verifyChecksums())
+ Message::wstream(true) << "checksum mismatch in font " << name << '\n';
_name2id[name] = newid;
}
_fonts.push_back(newfont);
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontManager.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontManager.h
index 6b81ee9c41c..18966269158 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontManager.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontManager.h
@@ -2,7 +2,7 @@
** FontManager.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontMap.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontMap.cpp
new file mode 100644
index 00000000000..cd349080d14
--- /dev/null
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontMap.cpp
@@ -0,0 +1,302 @@
+/*************************************************************************
+** FontMap.cpp **
+** **
+** This file is part of dvisvgm -- the DVI to SVG converter **
+** Copyright (C) 2005-2013 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 <cstring>
+#include <fstream>
+#include <iostream>
+#include <limits>
+#include <vector>
+#include "Directory.h"
+#include "FileFinder.h"
+#include "FontManager.h"
+#include "FontMap.h"
+#include "MapLine.h"
+#include "Message.h"
+#include "Subfont.h"
+
+using namespace std;
+
+
+FontMap::~FontMap () {
+ for (Iterator it=_entries.begin(); it != _entries.end(); ++it)
+ delete it->second;
+}
+
+
+/** Returns the singleton instance. */
+FontMap& FontMap::instance() {
+ static FontMap fontmap;
+ return fontmap;
+}
+
+
+/** Reads and evaluates a single font map file.
+ * @param[in] fname name of map file to read
+ * @param[in] mode selects how to integrate the map file entries into the global map tree
+ * @return true if file could be opened */
+bool FontMap::read (const string &fname, FontMap::Mode mode) {
+ ifstream ifs(fname.c_str());
+ if (!ifs)
+ return false;
+
+ int line_number = 1;
+ while (ifs) {
+ if (strchr("\n&#%;*", ifs.peek())) // comment line?
+ ifs.ignore(numeric_limits<int>::max(), '\n');
+ else {
+ try {
+ MapLine mapline(ifs);
+ apply(mapline, mode);
+ }
+ catch (const MapLineException &e) {
+ Message::wstream(true) << fname << ", line " << line_number << ": " << e.what() << '\n';
+ }
+ catch (const SubfontException &e) {
+ Message::wstream(true) << e.filename();
+ if (e.lineno() > 0)
+ Message::wstream(false) << ", line " << e.lineno();
+ Message::wstream(false) << e.what() << '\n';
+ }
+ }
+ line_number++;
+ }
+ return true;
+}
+
+
+bool FontMap::read (const string &fname, char modechar) {
+ Mode mode;
+ switch (modechar) {
+ case '=': mode = FM_REPLACE; break;
+ case '-': mode = FM_REMOVE; break;
+ default : mode = FM_APPEND;
+ }
+ return read(fname, mode);
+}
+
+
+/** Applies a mapline according to the given mode (append, remove, replace).
+ * @param[in] mapline the mapline to be applied
+ * @param[in] mode mode to use
+ * @return true in case of success */
+bool FontMap::apply (const MapLine& mapline, FontMap::Mode mode) {
+ switch (mode) {
+ case FM_APPEND:
+ return append(mapline);
+ case FM_REMOVE:
+ return remove(mapline);
+ default:
+ return replace(mapline);
+ }
+}
+
+
+/** Applies a mapline according to the given mode (append, remove, replace).
+ * @param[in] mapline the mapline to be applied
+ * @param[in] modechar character that denotes the mode (+, -, or =)
+ * @return true in case of success */
+bool FontMap::apply (const MapLine& mapline, char modechar) {
+ Mode mode;
+ switch (modechar) {
+ case '=': mode = FM_REPLACE; break;
+ case '-': mode = FM_REMOVE; break;
+ default : mode = FM_APPEND;
+ }
+ return apply(mapline, mode);
+}
+
+
+/** Reads and evaluates a sequence of map files. Each map file is looked up in the local
+ * directory and the TeX file tree.
+ * @param[in] fname_seq comma-separated list of map file names
+ * @return true if at least one of the given map files was found */
+bool FontMap::read (const string &fname_seq) {
+ bool found = false;
+ size_t left=0;
+ while (left < fname_seq.length()) {
+ const char modechar = fname_seq[left];
+ if (strchr("+-=", modechar))
+ left++;
+ string fname;
+ size_t right = fname_seq.find(',', left);
+ if (right != string::npos)
+ fname = fname_seq.substr(left, right-left);
+ else {
+ fname = fname_seq.substr(left);
+ right = fname_seq.length();
+ }
+ if (!fname.empty()) {
+ if (!read(fname, modechar)) {
+ if (const char *path = FileFinder::lookup(fname, false))
+ found = found || read(path, modechar);
+ else
+ Message::wstream(true) << "map file " << fname << " not found\n";
+ }
+ }
+ left = right+1;
+ }
+ return found;
+}
+
+
+/** Appends given map line data to the font map if there is no entry for the corresponding
+ * font in the map yet.
+ * @param[in] mapline parsed font data
+ * @return true if data has been appended */
+bool FontMap::append (const MapLine &mapline) {
+ bool ret = false;
+ if (!mapline.texname().empty()) {
+ if (!mapline.fontfname().empty() || !mapline.encname().empty()) {
+ vector<Subfont*> subfonts;
+ if (mapline.sfd())
+ mapline.sfd()->subfonts(subfonts);
+ else
+ subfonts.push_back(0);
+ for (size_t i=0; i < subfonts.size(); i++) {
+ string fontname = mapline.texname()+(subfonts[i] ? subfonts[i]->id() : "");
+ Iterator it = _entries.find(fontname);
+ if (it == _entries.end()) {
+ _entries[fontname] = new Entry(mapline, subfonts[i]);
+ ret = true;
+ }
+ }
+ }
+ }
+ return ret;
+}
+
+
+/** Replaces the map data of the given font.
+ * If the font is locked (because it's already in use) nothing happens.
+ * @param[in] mapline parsed font data
+ * @return true if data has been replaced */
+bool FontMap::replace (const MapLine &mapline) {
+ if (mapline.texname().empty())
+ return false;
+ if (mapline.fontfname().empty() && mapline.encname().empty())
+ return remove(mapline);
+
+ vector<Subfont*> subfonts;
+ if (mapline.sfd())
+ mapline.sfd()->subfonts(subfonts);
+ else
+ subfonts.push_back(0);
+ for (size_t i=0; i < subfonts.size(); i++) {
+ string fontname = mapline.texname()+(subfonts[i] ? subfonts[i]->id() : "");
+ Iterator it = _entries.find(fontname);
+ if (it == _entries.end())
+ _entries[fontname] = new Entry(mapline, subfonts[i]);
+ else if (!it->second->locked)
+ *it->second = Entry(mapline, subfonts[i]);
+ }
+ return true;
+}
+
+
+/** Removes the map entry of the given font.
+ * If the font is locked (because it's already in use) nothing happens.
+ * @param[in] mapline parsed font data
+ * @return true if entry has been removed */
+bool FontMap::remove (const MapLine &mapline) {
+ bool ret = false;
+ if (!mapline.texname().empty()) {
+ vector<Subfont*> subfonts;
+ if (mapline.sfd())
+ mapline.sfd()->subfonts(subfonts);
+ else
+ subfonts.push_back(0);
+ for (size_t i=0; i < subfonts.size(); i++) {
+ string fontname = mapline.texname()+(subfonts[i] ? subfonts[i]->id() : "");
+ Iterator it = _entries.find(fontname);
+ if (it != _entries.end() && !it->second->locked) {
+ _entries.erase(it);
+ ret = true;
+ }
+ }
+ }
+ return ret;
+}
+
+
+ostream& FontMap::write (ostream &os) const {
+ for (ConstIterator it=_entries.begin(); it != _entries.end(); ++it)
+ os << it->first << " -> " << it->second->fontname << " [" << it->second->encname << "]\n";
+ return os;
+}
+
+
+/** Reads and evaluates all map files in the given directory.
+ * @param[in] path to directory containing the map files to be read */
+void FontMap::readdir (const string &dirname) {
+ Directory dir(dirname);
+ while (const char *fname = dir.read('f')) {
+ if (strlen(fname) >= 4 && strcmp(fname+strlen(fname)-4, ".map") == 0) {
+ string path = dirname + "/" + fname;
+ read(path.c_str());
+ }
+ }
+}
+
+
+/** Returns name of font that is mapped to a given font.
+ * @param[in] fontname name of font whose mapped name is retrieved
+ * @returns name of mapped font */
+const FontMap::Entry* FontMap::lookup (const string &fontname) const {
+ ConstIterator it = _entries.find(fontname);
+ if (it == _entries.end())
+ return 0;
+ return it->second;
+}
+
+
+/** Sets the lock flag for the given font in order to avoid changing the map data of this font.
+ * @param[in] fontname name of font to be locked */
+void FontMap::lockFont (const string& fontname) {
+ Iterator it = _entries.find(fontname);
+ if (it != _entries.end())
+ it->second->locked = true;
+}
+
+
+/** Removes all (unlocked) entries from the font map.
+ * @param[in] unlocked_only if true, only unlocked entries are removed */
+void FontMap::clear (bool unlocked_only) {
+ if (!unlocked_only)
+ _entries.clear();
+ else {
+ Iterator it=_entries.begin();
+ while (it != _entries.end()) {
+ if (it->second->locked)
+ ++it;
+ else {
+ delete it->second;
+ _entries.erase(it++);
+ }
+ }
+ }
+}
+
+/////////////////////////////////////////////////
+
+FontMap::Entry::Entry (const MapLine &mapline, Subfont *sf)
+ : fontname(mapline.fontfname()), encname(mapline.encname()), subfont(sf), fontindex(mapline.fontindex()), locked(false),
+ bold(mapline.bold()), slant(mapline.slant()), extend(mapline.extend())
+{
+}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontMap.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontMap.h
new file mode 100644
index 00000000000..b3c1b85a304
--- /dev/null
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/FontMap.h
@@ -0,0 +1,75 @@
+/*************************************************************************
+** FontMap.h **
+** **
+** This file is part of dvisvgm -- the DVI to SVG converter **
+** Copyright (C) 2005-2013 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 FONTMAP_H
+#define FONTMAP_H
+
+#include <map>
+#include <ostream>
+#include <string>
+
+class MapLine;
+class Subfont;
+
+class FontMap
+{
+ public:
+ struct Entry
+ {
+ Entry (const MapLine &mapline, Subfont *subfont=0);
+ std::string fontname; ///< target font name
+ std::string encname; ///< name of font encoding
+ Subfont *subfont;
+ int fontindex; ///< index of font in multi-font file
+ bool locked;
+ double bold, slant, extend;
+ };
+
+ protected:
+ typedef std::map<std::string,Entry*>::iterator Iterator;
+ typedef std::map<std::string,Entry*>::const_iterator ConstIterator;
+
+ public:
+ enum Mode {FM_APPEND, FM_REMOVE, FM_REPLACE};
+
+ ~FontMap ();
+ static FontMap& instance ();
+ bool read (const std::string &fname, Mode mode);
+ bool read (const std::string &fname, char modechar);
+ bool read (const std::string &fname_seq);
+ void readdir (const std::string &dirname);
+ bool apply (const MapLine &mapline, Mode mode);
+ bool apply (const MapLine &mapline, char modechar);
+ bool append (const MapLine &mapline);
+ bool replace (const MapLine &mapline);
+ bool remove (const MapLine &mapline);
+ void lockFont (const std::string &fontname);
+ void clear (bool unlocked_only=false);
+ std::ostream& write (std::ostream &os) const;
+ const Entry* lookup(const std::string &fontname) const;
+
+ protected:
+ FontMap () {}
+
+ private:
+ std::map<std::string,Entry*> _entries;
+};
+
+#endif
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GFGlyphTracer.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/GFGlyphTracer.cpp
index b82ceec2a31..c40702e595f 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GFGlyphTracer.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/GFGlyphTracer.cpp
@@ -2,7 +2,7 @@
** GFGlyphTracer.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GFGlyphTracer.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/GFGlyphTracer.h
index ac5a76c1714..379ed1d98c8 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GFGlyphTracer.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/GFGlyphTracer.h
@@ -2,7 +2,7 @@
** GFGlyphTracer.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GFReader.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/GFReader.cpp
index 5d2dace6282..1bb6c426549 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GFReader.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/GFReader.cpp
@@ -2,7 +2,7 @@
** GFReader.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -43,7 +43,7 @@ static inline double scaled2double (Int32 scaled) {
}
-GFReader::GFReader (istream &is) : _in(is)
+GFReader::GFReader (istream &is) : _in(is), _penDown(false)
{
_minX = _maxX = _minY = _maxY = _x = _y = 0;
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GFReader.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/GFReader.h
index 5b1a4db0b11..0d9a7bb0e32 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GFReader.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/GFReader.h
@@ -2,7 +2,7 @@
** GFReader.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GFTracer.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/GFTracer.cpp
index ec50cb65896..69a078456a0 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GFTracer.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/GFTracer.cpp
@@ -2,7 +2,7 @@
** GFTracer.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GFTracer.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/GFTracer.h
index 086bf5d20c4..ba15961db65 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GFTracer.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/GFTracer.h
@@ -2,7 +2,7 @@
** GFTracer.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Ghostscript.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Ghostscript.cpp
index b4e9d8f2140..7da863cbc82 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Ghostscript.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Ghostscript.cpp
@@ -2,7 +2,7 @@
** Ghostscript.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -25,9 +25,18 @@
#include <iomanip>
#include <sstream>
+#if defined(HAVE_LIBGS)
+ #include <ghostscript/ierrors.h>
+#else
+ #include "ierrors.h"
+#endif
+
using namespace std;
-#ifdef __WIN32__
+// default name of dynamic/shared Ghostscript library
+#if defined(__WIN64__)
+ #define GS_DL_NAME "gsdll64.dll"
+#elif defined(__WIN32__)
#define GS_DL_NAME "gsdll32.dll"
#else
#define GS_DL_NAME "libgs.so"
@@ -101,21 +110,21 @@ bool Ghostscript::revision (gsapi_revision_t *r) {
#if defined(HAVE_LIBGS)
return (gsapi_revision(r, sizeof(gsapi_revision_t)) == 0);
#else
- if (PFN_gsapi_revision fn = (PFN_gsapi_revision)loadFunction("gsapi_revision"))
+ if (PFN_gsapi_revision fn = (PFN_gsapi_revision)loadSymbol("gsapi_revision"))
return (fn(r, sizeof(gsapi_revision_t)) == 0);
return false;
#endif
}
-/** Returns product name and revision number of the GS library.
+/** Returns product name and revision number of the GS library.
* @param[in] revonly if true, only the revision number is returned */
string Ghostscript::revision (bool revonly) {
gsapi_revision_t r;
if (revision(&r)) {
ostringstream oss;
if (!revonly)
- oss << r.product << ' ';
+ oss << r.product << ' ';
oss << (r.revision/100) << '.' << setfill('0') << setw(2) << (r.revision%100);
return oss.str();
}
@@ -131,7 +140,7 @@ int Ghostscript::new_instance (void **psinst, void *caller) {
#if defined(HAVE_LIBGS)
return gsapi_new_instance(psinst, caller);
#else
- if (PFN_gsapi_new_instance fn = (PFN_gsapi_new_instance)loadFunction("gsapi_new_instance"))
+ if (PFN_gsapi_new_instance fn = (PFN_gsapi_new_instance)loadSymbol("gsapi_new_instance"))
return fn(psinst, caller);
*psinst = 0;
return 0;
@@ -145,7 +154,7 @@ void Ghostscript::delete_instance () {
#if defined(HAVE_LIBGS)
gsapi_delete_instance(_inst);
#else
- if (PFN_gsapi_delete_instance fn = (PFN_gsapi_delete_instance)loadFunction("gsapi_delete_instance"))
+ if (PFN_gsapi_delete_instance fn = (PFN_gsapi_delete_instance)loadSymbol("gsapi_delete_instance"))
fn(_inst);
#endif
}
@@ -156,7 +165,7 @@ int Ghostscript::exit () {
#if defined(HAVE_LIBGS)
return gsapi_exit(_inst);
#else
- if (PFN_gsapi_exit fn = (PFN_gsapi_exit)loadFunction("gsapi_exit"))
+ if (PFN_gsapi_exit fn = (PFN_gsapi_exit)loadSymbol("gsapi_exit"))
return fn(_inst);
return 0;
#endif
@@ -171,7 +180,7 @@ int Ghostscript::set_stdio (Stdin in, Stdout out, Stderr err) {
#if defined(HAVE_LIBGS)
return gsapi_set_stdio(_inst, in, out, err);
#else
- if (PFN_gsapi_set_stdio fn = (PFN_gsapi_set_stdio)loadFunction("gsapi_set_stdio"))
+ if (PFN_gsapi_set_stdio fn = (PFN_gsapi_set_stdio)loadSymbol("gsapi_set_stdio"))
return fn(_inst, in, out, err);
return 0;
#endif
@@ -186,7 +195,7 @@ int Ghostscript::init_with_args (int argc, char **argv) {
#if defined(HAVE_LIBGS)
return gsapi_init_with_args(_inst, argc, argv);
#else
- if (PFN_gsapi_init_with_args fn = (PFN_gsapi_init_with_args)loadFunction("gsapi_init_with_args"))
+ if (PFN_gsapi_init_with_args fn = (PFN_gsapi_init_with_args)loadSymbol("gsapi_init_with_args"))
return fn(_inst, argc, argv);
return 0;
#endif
@@ -198,7 +207,7 @@ int Ghostscript::run_string_begin (int user_errors, int *pexit_code) {
#if defined(HAVE_LIBGS)
return gsapi_run_string_begin(_inst, user_errors, pexit_code);
#else
- if (PFN_gsapi_run_string_begin fn = (PFN_gsapi_run_string_begin)loadFunction("gsapi_run_string_begin"))
+ if (PFN_gsapi_run_string_begin fn = (PFN_gsapi_run_string_begin)loadSymbol("gsapi_run_string_begin"))
return fn(_inst, user_errors, pexit_code);
*pexit_code = 0;
return 0;
@@ -217,7 +226,7 @@ int Ghostscript::run_string_continue (const char *str, unsigned length, int user
#if defined(HAVE_LIBGS)
return gsapi_run_string_continue(_inst, str, length, user_errors, pexit_code);
#else
- if (PFN_gsapi_run_string_continue fn = (PFN_gsapi_run_string_continue)loadFunction("gsapi_run_string_continue"))
+ if (PFN_gsapi_run_string_continue fn = (PFN_gsapi_run_string_continue)loadSymbol("gsapi_run_string_continue"))
return fn(_inst, str, length, user_errors, pexit_code);
*pexit_code = 0;
return 0;
@@ -230,11 +239,31 @@ int Ghostscript::run_string_end (int user_errors, int *pexit_code) {
#if defined(HAVE_LIBGS)
return gsapi_run_string_end(_inst, user_errors, pexit_code);
#else
- if (PFN_gsapi_run_string_end fn = (PFN_gsapi_run_string_end)loadFunction("gsapi_run_string_end"))
+ if (PFN_gsapi_run_string_end fn = (PFN_gsapi_run_string_end)loadSymbol("gsapi_run_string_end"))
return fn(_inst, user_errors, pexit_code);
*pexit_code = 0;
return 0;
#endif
}
+
+const char* Ghostscript::error_name (int code) {
+ if (code < 0)
+ code = -code;
+ const char *error_names[] = { ERROR_NAMES };
+ if (code == 0 || (size_t)code > sizeof(error_names)/sizeof(error_names[0]))
+ return 0;
+#if defined(HAVE_LIBGS)
+ // use array defined in libgs to avoid linking the error strings into the binary
+ return gs_error_names[code-1];
+#elif defined(__WIN32__)
+ // gs_error_names is private in the Ghostscript DLL so we can't access it here
+ return error_names[code-1];
+#else
+ if (const char **error_names = (const char**)loadSymbol("gs_error_names"))
+ return error_names[code-1];
+ return 0;
+#endif
+}
+
#endif // !DISABLE_GS
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Ghostscript.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Ghostscript.h
index 06c15939212..ccfd5b0b0f4 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Ghostscript.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Ghostscript.h
@@ -2,7 +2,7 @@
** Ghostscript.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -72,7 +72,7 @@ class Ghostscript
typedef int (GSDLLCALLPTR Stdout) (void *caller, const char *str, int len);
typedef int (GSDLLCALLPTR Stderr) (void *caller, const char *str, int len);
- public:
+ public:
Ghostscript ();
Ghostscript (int argc, const char **argv, void *caller=0);
~Ghostscript ();
@@ -85,6 +85,7 @@ class Ghostscript
int run_string_continue (const char *str, unsigned int length, int user_errors, int *pexit_code);
int run_string_end (int user_errors, int *pexit_code);
int exit ();
+ const char* error_name (int code);
static std::string LIBGS_NAME;
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Glyph.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Glyph.h
index 9a71c60841e..b598dc5002d 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Glyph.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Glyph.h
@@ -2,7 +2,7 @@
** Glyph.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GlyphTracerMessages.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/GlyphTracerMessages.h
index 32c50db51fa..2b0cedcd8b6 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GlyphTracerMessages.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/GlyphTracerMessages.h
@@ -2,7 +2,7 @@
** GlyphTracerMessages.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GraphicPath.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/GraphicPath.h
index 05b6b425300..07c85466ff9 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/GraphicPath.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/GraphicPath.h
@@ -2,7 +2,7 @@
** GraphicPath.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/InputBuffer.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/InputBuffer.cpp
index ed3356fc5c3..ad99305fa3c 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/InputBuffer.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/InputBuffer.cpp
@@ -2,7 +2,7 @@
** InputBuffer.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -25,7 +25,7 @@
using namespace std;
-StreamInputBuffer::StreamInputBuffer (istream &is, unsigned bufsize)
+StreamInputBuffer::StreamInputBuffer (istream &is, size_t bufsize)
: _is(is), _bufsize(bufsize), _buf1(new UInt8[_bufsize]), _buf2(new UInt8[_bufsize]), _bufptr(_buf1)
{
_size1 = fillBuffer(_buf1);
@@ -63,7 +63,7 @@ int StreamInputBuffer::peek () const {
/** Returns the n-th next character without skipping it. */
-int StreamInputBuffer::peek (unsigned n) const {
+int StreamInputBuffer::peek (size_t n) const {
if (pos()+n < _size1)
return *(_bufptr+n);
if (pos()+n < _size1+_size2)
@@ -86,7 +86,7 @@ int StreamInputBuffer::fillBuffer (UInt8 *buf) {
///////////////////////////////////////////////
-SplittedCharInputBuffer::SplittedCharInputBuffer (const char *buf1, unsigned s1, const char *buf2, unsigned s2) {
+SplittedCharInputBuffer::SplittedCharInputBuffer (const char *buf1, size_t s1, const char *buf2, size_t s2) {
_buf[0] = buf1;
_buf[1] = buf2;
_size[0] = buf1 ? s1 : 0;
@@ -111,7 +111,7 @@ int SplittedCharInputBuffer::peek () const {
}
-int SplittedCharInputBuffer::peek (unsigned n) const {
+int SplittedCharInputBuffer::peek (size_t n) const {
if (n < _size[_index])
return _buf[_index][n];
n -= _size[_index];
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/InputBuffer.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/InputBuffer.h
index c06a4388724..c25df9a1452 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/InputBuffer.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/InputBuffer.h
@@ -2,7 +2,7 @@
** InputBuffer.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -33,7 +33,7 @@ struct InputBuffer
virtual ~InputBuffer () {}
virtual int get () =0;
virtual int peek () const =0;
- virtual int peek (unsigned n) const =0;
+ virtual int peek (size_t n) const =0;
virtual bool eof () const =0;
virtual void invalidate () =0;
};
@@ -42,25 +42,25 @@ struct InputBuffer
class StreamInputBuffer : public InputBuffer
{
public:
- StreamInputBuffer (std::istream &is, unsigned bufsize=1024);
+ StreamInputBuffer (std::istream &is, size_t bufsize=1024);
~StreamInputBuffer ();
int get ();
int peek () const;
- int peek (unsigned n) const;
+ int peek (size_t n) const;
bool eof () const {return pos() == _size1 && _size2 == 0;}
void invalidate () {_bufptr = _buf1+_size1; _size2 = 0;}
protected:
int fillBuffer (UInt8 *buf);
- unsigned pos () const {return _bufptr-_buf1;}
+ size_t pos () const {return _bufptr-_buf1;}
private:
std::istream &_is;
- const unsigned _bufsize; ///< maximal number of bytes each buffer can hold
+ const size_t _bufsize; ///< maximal number of bytes each buffer can hold
UInt8 *_buf1; ///< pointer to first buffer
UInt8 *_buf2; ///< pointer to second buffer
- unsigned _size1; ///< number of bytes in buffer 1
- unsigned _size2; ///< number of bytes in buffer 2
+ size_t _size1; ///< number of bytes in buffer 1
+ size_t _size2; ///< number of bytes in buffer 2
UInt8 *_bufptr; ///< pointer to next byte to read
};
@@ -71,20 +71,20 @@ class StringInputBuffer : public InputBuffer
StringInputBuffer (const std::string &str) : _str(str), _pos(0) {}
int get () {return _pos < _str.length() ? _str[_pos++] : -1;}
int peek () const {return _pos < _str.length() ? _str[_pos] : -1;}
- int peek (unsigned n) const {return _pos+n < _str.length() ? _str[_pos+n] : -1;}
+ int peek (size_t n) const {return _pos+n < _str.length() ? _str[_pos+n] : -1;}
bool eof () const {return _pos >= _str.length();}
void invalidate () {_pos = _str.length();}
private:
const std::string &_str;
- unsigned _pos;
+ size_t _pos;
};
class CharInputBuffer : public InputBuffer
{
public:
- CharInputBuffer (const char *buf, unsigned size) : _pos(buf), _size(buf ? size : 0) {}
+ CharInputBuffer (const char *buf, size_t size) : _pos(buf), _size(buf ? size : 0) {}
int get () {
if (_size <= 0)
@@ -96,36 +96,36 @@ class CharInputBuffer : public InputBuffer
}
- void assign (const char *buf, unsigned size) {
+ void assign (const char *buf, size_t size) {
_pos = buf;
_size = size;
}
void assign (const char *buf) {assign(buf, std::strlen(buf));}
int peek () const {return _size > 0 ? *_pos : -1;}
- int peek (unsigned n) const {return _size >= n ? _pos[n] : -1;}
+ int peek (size_t n) const {return _size >= n ? _pos[n] : -1;}
bool eof () const {return _size <= 0;}
void invalidate () {_size = 0;}
private:
const char *_pos;
- unsigned _size;
+ size_t _size;
};
class SplittedCharInputBuffer : public InputBuffer
{
public:
- SplittedCharInputBuffer (const char *buf1, unsigned s1, const char *buf2, unsigned s2);
+ SplittedCharInputBuffer (const char *buf1, size_t s1, const char *buf2, size_t s2);
int get ();
int peek () const;
- int peek (unsigned n) const;
+ int peek (size_t n) const;
bool eof () const {return _size[_index] == 0;}
void invalidate () {_size[_index] = 0;}
private:
const char *_buf[2];
- unsigned _size[2];
+ size_t _size[2];
int _index;
};
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/InputReader.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/InputReader.cpp
index 9274491d905..3899a2362b2 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/InputReader.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/InputReader.cpp
@@ -2,7 +2,7 @@
** InputReader.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -26,7 +26,7 @@ using namespace std;
/** Skips n characters. */
-void InputReader::skip (unsigned n) {
+void InputReader::skip (size_t n) {
while (n-- > 0)
get();
}
@@ -42,7 +42,7 @@ void InputReader::skipSpace () {
/** Tries to find a given string and skips all characters preceding that string.
* @param[in] s string to look for (must not be longer than the maximal buffer size)
- * @param[in] consume if true, the buffer pointer is moved to the first charater following string s
+ * @param[in] consume if true, the buffer pointer is moved to the first character following string s
* @return true if s was found */
bool InputReader::skipUntil (const char *s, bool consume) {
bool found = false;
@@ -52,12 +52,24 @@ bool InputReader::skipUntil (const char *s, bool consume) {
}
+/** Looks for the first occurrence of a given character.
+ * @param[in] c character to lookup
+ * @return position of character relative to current location, -1 if character was not found */
+int InputReader::find (char c) const {
+ int pos = 0;
+ int cc;
+ while ((cc = peek(pos)) >= 0 && cc != c)
+ pos++;
+ return cc < 0 ? -1 : pos;
+}
+
+
/** Checks if the next characters to be read match a given string.
* @param[in] s string to be matched
* @param[in] consume if true, the characters of the matched string are skipped
* @return true if s matches */
bool InputReader::check (const char *s, bool consume) {
- unsigned count = 0;
+ size_t count = 0;
for (const char *p=s; *p; p++) {
if (peek(count++) != *p)
return false;
@@ -69,7 +81,7 @@ bool InputReader::check (const char *s, bool consume) {
int InputReader::compare (const char *s, bool consume) {
- unsigned count = 0;
+ size_t count = 0;
for (const char *p=s; *p; p++) {
int c = peek(count++);
if (c != *p)
@@ -229,7 +241,56 @@ char InputReader::getPunct () {
}
-string InputReader::getString (char quotechar) {
+/** Reads a string delimited by a given quotation character.
+ * Before reading the string, all leading whitespace is skipped. Then, the function checks
+ * for the given quotation character. If it is found, all characters until the second
+ * appearance of the quotation char are appended to the result. Otherwise, an empty string
+ * is returned. If the quotation character is 0, the behavior of this function is identical to
+ * a call of getString().
+ * @param[in] quotechar the quotation character bounding the string to be read
+ * @return the string read */
+string InputReader::getQuotedString (char quotechar) {
+ if (quotechar == 0)
+ return getString();
+
+ string ret;
+ skipSpace();
+ if (peek() == quotechar) {
+ get();
+ while (!eof() && peek() != quotechar)
+ ret += get();
+ get();
+ }
+ return ret;
+}
+
+
+/** Reads a string delimited by whitespace and/or invisible characters.
+ * Before reading the string, all leading whitespace is skipped. Then, the function adds
+ * all printable characters to the result until a whitespace, an unprintable character, or
+ * EOF is found.
+ * @return the string read */
+string InputReader::getString () {
+ string ret;
+ skipSpace();
+ while (!eof() && !isspace(peek()) && isprint(peek()))
+ ret += get();
+ return ret;
+}
+
+
+/** Reads a given number of characters and returns the resulting string.
+ * @param n number of character to read
+ * @return the string read */
+string InputReader::getString (size_t n) {
+ string ret;
+ while (n-- > 0)
+ ret += get();
+ return ret;
+}
+
+
+/*string InputReader::getString (char quotechar) {
string ret;
skipSpace();
if (quotechar == 0) {
@@ -243,7 +304,7 @@ string InputReader::getString (char quotechar) {
get();
}
return ret;
-}
+}*/
int InputReader::parseAttributes (map<string,string> &attr) {
@@ -269,7 +330,7 @@ int InputReader::parseAttributes (map<string,string> &attr) {
//////////////////////////////////////////
-int StreamInputReader::peek (unsigned n) const {
+int StreamInputReader::peek (size_t n) const {
if (n == 0)
return peek();
vector<char> chars(n);
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/InputReader.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/InputReader.h
index 8cbb05646f5..5bc35d4f61b 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/InputReader.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/InputReader.h
@@ -2,7 +2,7 @@
** InputReader.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -32,13 +32,14 @@ struct InputReader
virtual ~InputReader() {}
virtual int get () =0;
virtual int peek () const =0;
- virtual int peek (unsigned n) const =0;
+ virtual int peek (size_t n) const =0;
virtual bool eof () const =0;
virtual bool check (char c) const {return peek() == c;}
virtual bool check (const char *s, bool consume=true);
virtual int compare (const char *s, bool consume=true);
- virtual void skip (unsigned n);
+ virtual void skip (size_t n);
virtual bool skipUntil (const char *s, bool consume=true);
+ virtual int find (char c) const;
virtual void skipSpace ();
virtual int getInt ();
virtual bool parseInt (int &val, bool accept_sign=true);
@@ -48,7 +49,9 @@ struct InputReader
virtual double getDouble ();
virtual std::string getWord ();
virtual char getPunct ();
- virtual std::string getString (char quotechar=0);
+ virtual std::string getQuotedString (char quotechar);
+ virtual std::string getString ();
+ virtual std::string getString (size_t n);
virtual int parseAttributes (std::map<std::string,std::string> &attr);
virtual operator bool () const {return !eof();}
};
@@ -60,7 +63,7 @@ class StreamInputReader : public InputReader
StreamInputReader (std::istream &is) : _is(is) {}
int get () {return _is.get();}
int peek () const {return _is.peek();}
- int peek (unsigned n) const;
+ int peek (size_t n) const;
bool eof () const {return !_is || _is.eof();}
private:
@@ -75,7 +78,7 @@ class BufferInputReader : public InputReader
void assign (InputBuffer &ib) {_ib = &ib;}
int get () {return _ib->get();}
int peek () const {return _ib->peek();}
- int peek (unsigned n) const {return _ib->peek(n);}
+ int peek (size_t n) const {return _ib->peek(n);}
bool eof () const {return _ib->eof();}
private:
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Length.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Length.cpp
index bdaea32cdca..aae20b74e59 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Length.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Length.cpp
@@ -2,7 +2,7 @@
** Length.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Length.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Length.h
index 11ff8e57f9d..995ba068cee 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Length.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Length.h
@@ -2,7 +2,7 @@
** Length.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Makefile.am b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Makefile.am
index 4e1f9ae9be0..a98ceedbd35 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Makefile.am
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Makefile.am
@@ -1,5 +1,5 @@
## This file is part of dvisvgm
-## Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de>
+## Copyright (C) 2005-2013 Martin Gieseking <martin.gieseking@uos.de>
##
## Process this file with automake.
@@ -16,20 +16,21 @@ libdvisvgm_a_SOURCES = Bitmap.h BoundingBox.h BgColorSpecialHandler.h Calculator
ColorSpecialHandler.h CommandLine.h Directory.h DLLoader.h DVIActions.h DVIReader.h DvisvgmSpecialHandler.h DVIToSVG.h \
DVIToSVGActions.h EmSpecialHandler.h FileFinder.h FilePath.h FileSystem.h Font.h FontCache.h FontEncoding.h FontEngine.h \
FontManager.h FontMap.h GFReader.h GFTracer.h GFGlyphTracer.h Ghostscript.h Glyph.h GlyphTracerMessages.h \
- GraphicPath.h InputBuffer.h InputReader.h Length.h macros.h Matrix.h Message.h MessageException.h MetafontWrapper.h \
- PageRanges.h PageSize.h Pair.h Process.h PSInterpreter.h PsSpecialHandler.h SignalHandler.h SpecialActions.h \
- SpecialHandler.h SpecialManager.h StreamReader.h StreamWriter.h SVGTree.h System.h Terminal.h TpicSpecialHandler.h \
- TFM.h types.h VectorStream.h VFActions.h VFReader.h XMLDocTypeNode.h XMLDocument.h XMLNode.h XMLString.h \
+ GraphicPath.h InputBuffer.h InputReader.h Length.h macros.h MapLine.h Matrix.h Message.h MessageException.h \
+ MetafontWrapper.h PageRanges.h PageSize.h Pair.h PdfSpecialHandler.h Process.h PSInterpreter.h PsSpecialHandler.h \
+ SignalHandler.h SpecialActions.h SpecialHandler.h SpecialManager.h StreamReader.h StreamWriter.h Subfont.h SVGTree.h \
+ System.h Terminal.h TpicSpecialHandler.h TFM.h types.h VectorStream.h VFActions.h VFReader.h XMLDocTypeNode.h XMLDocument.h \
+ XMLNode.h XMLString.h \
BgColorSpecialHandler.cpp Bitmap.cpp BoundingBox.cpp Calculator.cpp CmdLineParserBase.cpp Color.cpp \
ColorSpecialHandler.cpp CommandLine.cpp CRC32.cpp Directory.cpp DLLoader.cpp DVIActions.cpp DVIReader.cpp \
DvisvgmSpecialHandler.cpp DVIToSVG.cpp DVIToSVGActions.cpp EmSpecialHandler.cpp FileFinder.cpp FilePath.cpp \
FileSystem.cpp Font.cpp FontCache.cpp FontEncoding.cpp FontEngine.cpp FontManager.cpp FontMap.cpp GFReader.cpp \
- GFGlyphTracer.cpp GFTracer.cpp Ghostscript.cpp InputBuffer.cpp InputReader.cpp Length.cpp Matrix.cpp Message.cpp \
- MetafontWrapper.cpp PageRanges.cpp PageSize.cpp Process.cpp PSInterpreter.cpp PsSpecialHandler.cpp SignalHandler.cpp \
- SpecialManager.cpp StreamReader.cpp StreamWriter.cpp SVGTree.cpp System.cpp Terminal.cpp TFM.cpp TpicSpecialHandler.cpp \
- VFReader.cpp XMLDocument.cpp XMLNode.cpp XMLString.cpp
+ GFGlyphTracer.cpp GFTracer.cpp Ghostscript.cpp InputBuffer.cpp InputReader.cpp Length.cpp MapLine.cpp Matrix.cpp \
+ Message.cpp MetafontWrapper.cpp PageRanges.cpp PageSize.cpp PdfSpecialHandler.cpp Process.cpp PSInterpreter.cpp \
+ PsSpecialHandler.cpp SignalHandler.cpp SpecialManager.cpp StreamReader.cpp StreamWriter.cpp Subfont.cpp SVGTree.cpp \
+ System.cpp Terminal.cpp TFM.cpp TpicSpecialHandler.cpp VFReader.cpp XMLDocument.cpp XMLNode.cpp XMLString.cpp
-EXTRA_DIST = options.xml psdefs.psc iapi.h ierrors.h
+EXTRA_DIST = options.xml psdefs.psc iapi.h ierrors.h MiKTeXCom.h MiKTeXCom.cpp
AM_CXXFLAGS = -Wall -Wnon-virtual-dtor
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.1/src/MapLine.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/MapLine.cpp
new file mode 100644
index 00000000000..99dce4f9547
--- /dev/null
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/MapLine.cpp
@@ -0,0 +1,275 @@
+/*************************************************************************
+** MapLine.cpp **
+** **
+** This file is part of dvisvgm -- the DVI to SVG converter **
+** Copyright (C) 2005-2013 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 <cstring>
+#include <sstream>
+#include "InputBuffer.h"
+#include "InputReader.h"
+#include "MapLine.h"
+#include "Subfont.h"
+
+using namespace std;
+
+
+/** Constructs a MapLine object by parsing a single mapline from the given stream. */
+MapLine::MapLine (istream &is)
+ : _sfd(0), _fontindex(0), _slant(0), _bold(0), _extend(1)
+{
+ char buf[256];
+ is.getline(buf, 256);
+ parse(buf);
+}
+
+
+// Some of the following functions have been derived from the dvipdfmx source file fontmap.c:
+// http://cvs.ktug.or.kr/viewcvs/dvipdfmx/src/fontmap.c?revision=1.43&view=markup
+
+
+/** Returns true if the given string is in dvips mapline format, and false if it's in dvipdfm format.
+ @param[in] line string to check */
+bool MapLine::isDVIPSFormat (const char *line) const {
+ if (strchr(line, '"') || strchr(line, '<')) // these chars are only present in dvips maps
+ return true;
+ char prevchar = ' ';
+ int entry_count=0;
+ for (const char *p=line; *p; ++p) {
+ if (isspace(prevchar)) {
+ if (*p == '-') // options starting with '-' are only present in dvipdfm map files
+ return false;
+ if (!isspace(*p))
+ entry_count++;
+ }
+ prevchar = *p;
+ }
+ // tfm_name and ps_name only => dvips map
+ return entry_count == 2;
+}
+
+
+/** Separates main font name and subfont definition name from a given combined name.
+ * Example: "basename@sfdname@10" => {"basename10", "sfdname"}
+ * @param[in,out] fontname complete fontname; after separation: main fontname only
+ * @param[out] sfdname name of subfont definition
+ * @return true on success */
+static bool split_fontname (string &fontname, string &sfdname) {
+ size_t pos1; // index of first '@'
+ if ((pos1 = fontname.find('@')) != string::npos && pos1 > 0) {
+ size_t pos2; // index of second '@'
+ if ((pos2 = fontname.find('@', pos1+1)) != string::npos && pos2 > pos1+1) {
+ sfdname = fontname.substr(pos1+1, pos2-pos1-1);
+ fontname = fontname.substr(0, pos1) + fontname.substr(pos2+1);
+ return true;
+ }
+ }
+ return false;
+}
+
+
+/** Parses a single mapline and stores the scanned data in member variables.
+ * The line may either be given in dvips or dvipdfmx mapfile format.
+ * @param[in] line the mapline */
+void MapLine::parse (const char *line) {
+ CharInputBuffer ib(line, strlen(line));
+ BufferInputReader ir(ib);
+ _texname = ir.getString();
+ string sfdname;
+ split_fontname(_texname, sfdname);
+ if (!sfdname.empty())
+ _sfd = SubfontDefinition::lookup(sfdname);
+ if (isDVIPSFormat(line))
+ parseDVIPSLine(ir);
+ else
+ parseDVIPDFMLine(ir);
+}
+
+
+/** Parses a single line in dvips mapfile format.
+ * @param[in] ir the input stream must be assigned to this reader */
+void MapLine::parseDVIPSLine (InputReader &ir) {
+ ir.skipSpace();
+ if (ir.peek() != '<' && ir.peek() != '"')
+ _psname = ir.getString();
+ ir.skipSpace();
+ while (ir.peek() == '<' || ir.peek() == '"') {
+ if (ir.peek() == '<') {
+ ir.get();
+ if (ir.peek() == '[')
+ ir.get();
+ string name = ir.getString();
+ if (name.length() > 4 && name.substr(name.length()-4) == ".enc")
+ _encname = name.substr(0, name.length()-4);
+ else
+ _fontfname = name;
+ }
+ else { // ir.peek() == '"' => list of PS font operators
+ string options = ir.getQuotedString('"');
+ StringInputBuffer sib(options);
+ BufferInputReader sir(sib);
+ while (!sir.eof()) {
+ double number;
+ if (sir.parseDouble(number)) {
+ // operator with preceding numeric parameter (value opstr)
+ string opstr = sir.getString();
+ if (opstr == "SlantFont")
+ _slant = number;
+ else if (opstr == "ExtendFont")
+ _extend = number;
+ }
+ else {
+ // operator without parameter => skip for now
+ sir.getString();
+ }
+ }
+ }
+ ir.skipSpace();
+ }
+}
+
+
+static void throw_number_expected (char opt, bool integer_only=false) {
+ ostringstream oss;
+ oss << "option -" << opt << ": " << (integer_only ? "integer" : "floating point") << " value expected";
+ throw MapLineException(oss.str());
+}
+
+
+/** Parses a single line in dvipdfmx mapfile format.
+ * @param[in] ir the input stream must be assigned to this reader */
+void MapLine::parseDVIPDFMLine (InputReader &ir) {
+ ir.skipSpace();
+ if (ir.peek() != '-') {
+ _encname = ir.getString();
+ if (_encname == "default" || _encname == "none")
+ _encname.clear();
+ }
+ ir.skipSpace();
+ if (ir.peek() != '-')
+ _fontfname = ir.getString();
+ if (!_fontfname.empty()) {
+ parseFilenameOptions(_fontfname);
+ }
+ ir.skipSpace();
+ while (ir.peek() == '-') {
+ ir.get();
+ char option = ir.get();
+ if (!isprint(option))
+ throw MapLineException("option character expected");
+ ir.skipSpace();
+ switch (option) {
+ case 's': // slant
+ if (!ir.parseDouble(_slant))
+ throw_number_expected('s');
+ break;
+ case 'e': // extend
+ if (!ir.parseDouble(_extend))
+ throw_number_expected('e');
+ break;
+ case 'b': // bold
+ if (!ir.parseDouble(_bold))
+ throw_number_expected('b');
+ break;
+ case 'r': //remap (deprecated)
+ break;
+ case 'i': // ttc index
+ if (!ir.parseInt(_fontindex, false))
+ throw_number_expected('i', true);
+ break;
+ case 'p': // UCS plane
+ int dummy;
+ if (!ir.parseInt(dummy, false))
+ throw_number_expected('p', true);
+ break;
+ case 'u': // to unicode
+ ir.getString();
+ break;
+ case 'v': // stemV
+ int stemv;
+ if (!ir.parseInt(stemv, true))
+ throw_number_expected('v', true);
+ break;
+ case 'm': // map single chars
+ ir.skipUntil("-");
+ break;
+ case 'w': // writing mode (horizontal=0, vertical=1)
+ int vertical;
+ if (!ir.parseInt(vertical, false))
+ throw_number_expected('w', true);
+ break;
+ default:
+ ostringstream oss;
+ oss << "invalid option: -" << option;
+ throw MapLineException(oss.str());
+ }
+ ir.skipSpace();
+ }
+}
+
+
+/** [:INDEX:][!]FONTNAME[/CSI][,VARIANT] */
+void MapLine::parseFilenameOptions (string fname) {
+ _fontfname = fname;
+ StringInputBuffer ib(fname);
+ BufferInputReader ir(ib);
+ if (ir.peek() == ':' && isdigit(ir.peek(1))) { // index given?
+ ir.get();
+ _fontindex = ir.getInt(); // font index of file with multiple fonts
+ if (ir.peek() == ':')
+ ir.get();
+ else
+ _fontindex = 0;
+ }
+ if (ir.peek() == '!') // no embedding
+ ir.get();
+
+ bool csi_given=false, style_given=false;
+ int pos;
+ if ((pos = ir.find('/')) >= 0) { // csi delimiter
+ csi_given = true;
+ _fontfname = ir.getString(pos);
+ }
+ else if ((pos = ir.find(',')) >= 0) {
+ style_given = true;
+ _fontfname = ir.getString(pos);
+ }
+ else
+ _fontfname = ir.getString();
+
+ if (csi_given) {
+ if ((pos = ir.find(',')) >= 0) {
+ style_given = true;
+ ir.getString(pos); // charcoll
+ }
+ else if (ir.eof())
+ throw MapLineException("CSI specifier expected");
+ else
+ ir.getString(); // charcoll
+ }
+ if (style_given) {
+ ir.get(); // skip ','
+ if (ir.check("BoldItalic")) {
+ }
+ else if (ir.check("Bold")) {
+ }
+ else if (ir.check("Italic")) {
+ }
+ if (!ir.eof())
+ throw MapLineException("invalid style given");
+ }
+}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.1/src/MapLine.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/MapLine.h
new file mode 100644
index 00000000000..87451dc912d
--- /dev/null
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/MapLine.h
@@ -0,0 +1,72 @@
+/*************************************************************************
+** MapLine.h **
+** **
+** This file is part of dvisvgm -- the DVI to SVG converter **
+** Copyright (C) 2005-2013 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 MAPLINE_H
+#define MAPLINE_H
+
+#include <istream>
+#include <string>
+#include "MessageException.h"
+
+
+class InputReader;
+class SubfontDefinition;
+
+
+struct MapLineException : MessageException
+{
+ MapLineException (const std::string &msg) : MessageException(msg) {}
+};
+
+
+class MapLine
+{
+ public:
+ MapLine (std::istream &is);
+ const std::string& texname () const {return _texname;}
+ const std::string& psname () const {return _psname;}
+ const std::string& fontfname () const {return _fontfname;}
+ const std::string& encname () const {return _encname;}
+ int fontindex () const {return _fontindex;}
+ double bold () const {return _bold;}
+ double slant () const {return _slant;}
+ double extend () const {return _extend;}
+ SubfontDefinition* sfd () const {return _sfd;}
+
+ protected:
+ void init ();
+ bool isDVIPSFormat (const char *line) const;
+ void parse (const char *line);
+ void parseDVIPSLine (InputReader &ir);
+ void parseDVIPDFMLine (InputReader &ir);
+ void parseFilenameOptions (std::string opt);
+
+ private:
+ std::string _texname; ///< TeX font name
+ std::string _psname; ///< PS font name
+ std::string _fontfname; ///< name of fontfile
+ std::string _encname; ///< name of encoding (without file suffix ".enc")
+ SubfontDefinition *_sfd; ///< subfont definition to be used
+ int _fontindex; ///< font index of file with multiple fonts (e.g. ttc files)
+ double _slant, _bold, _extend;
+};
+
+
+#endif
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Matrix.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Matrix.cpp
index e204112488e..b8aac0bd6a9 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Matrix.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Matrix.cpp
@@ -2,7 +2,7 @@
** Matrix.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Matrix.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Matrix.h
index 0abe832b09b..30f1b39f31b 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Matrix.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Matrix.h
@@ -2,7 +2,7 @@
** Matrix.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Message.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Message.cpp
index 6538af86340..24c5ea7547f 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Message.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Message.cpp
@@ -2,7 +2,7 @@
** Message.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -67,7 +67,11 @@ void MessageStream::putChar (const char c, ostream &os) {
else {
const int cols = Terminal::columns();
if (cols > 0 && _col >= cols) {
- os << '\n' << string(_indent, ' ');
+#ifndef __WIN32__
+ // move cursor to next line explicitly (not necessary in Windows/DOS terminal)
+ os << '\n';
+#endif
+ os << string(_indent, ' ');
_col = _indent+1;
}
else
@@ -81,13 +85,23 @@ void MessageStream::putChar (const char c, ostream &os) {
MessageStream& MessageStream::operator << (const char *str) {
- if (_os) {
- const int len = strlen(str);
- const int cols = Terminal::columns();
- if (cols > 0 && _col+len > cols && _indent+len <= cols)
- putChar('\n', *_os);
- for (const char *p=str; *p; ++p)
- putChar(*p, *_os);
+ if (_os && str) {
+ const char *first = str;
+ while (*first) {
+ const char *last = strchr(first, '\n');
+ if (!last)
+ last = first+strlen(first)-1;
+#ifndef __WIN32__
+ // move cursor to next line explicitly (not necessary in Windows/DOS terminal)
+ const int cols = Terminal::columns();
+ int len = last-first+1;
+ if (cols > 0 && _col+len > cols && _indent+len <= cols)
+ putChar('\n', *_os);
+#endif
+ while (first <= last)
+ putChar(*first++, *_os);
+ first = last+1;
+ }
}
return *this;
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Message.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Message.h
index b77e2fea286..bc4a9ed016c 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Message.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Message.h
@@ -2,7 +2,7 @@
** Message.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/MessageException.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/MessageException.h
index d2376d4db7d..92b8978c3e1 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/MessageException.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/MessageException.h
@@ -2,7 +2,7 @@
** MessageException.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/MetafontWrapper.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/MetafontWrapper.cpp
index a7173ca2038..37e3b68f92f 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/MetafontWrapper.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/MetafontWrapper.cpp
@@ -2,7 +2,7 @@
** MetafontWrapper.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/MetafontWrapper.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/MetafontWrapper.h
index 355cc1c60d2..2a69654ff95 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/MetafontWrapper.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/MetafontWrapper.h
@@ -2,7 +2,7 @@
** MetafontWrapper.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.1/src/MiKTeXCom.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/MiKTeXCom.cpp
new file mode 100644
index 00000000000..ddf5af52f80
--- /dev/null
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/MiKTeXCom.cpp
@@ -0,0 +1,89 @@
+/*************************************************************************
+** MiKTeXCom.cpp **
+** **
+** This file is part of dvisvgm -- the DVI to SVG converter **
+** Copyright (C) 2005-2013 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 <comdef.h>
+#include <string>
+#include "MessageException.h"
+#include "MiKTeXCom.h"
+#include "macros.h"
+
+using namespace std;
+
+
+MiKTeXCom::MiKTeXCom () : _session(0) {
+ if (FAILED(CoInitialize(0)))
+ throw MessageException("COM library could not be initialized\n");
+#ifdef _MSC_VER
+ HRESULT hres = _session.CreateInstance(L"MiKTeX.Session");
+#elif defined(__WIN64__)
+ HRESULT hres = CoCreateInstance(CLSID_MiKTeXSession2_9, 0, CLSCTX_LOCAL_SERVER, IID_ISession2, (void**)&_session);
+#else
+ HRESULT hres = CoCreateInstance(CLSID_MiKTeXSession2_9, 0, CLSCTX_INPROC_SERVER, IID_ISession2, (void**)&_session);
+#endif
+ if (FAILED(hres))
+ throw MessageException("MiKTeX.Session could not be initialized");
+}
+
+
+MiKTeXCom::~MiKTeXCom () {
+#ifdef _MSC_VER
+ _session.Release();
+#else
+ _session->Release();
+#endif
+ _session = 0; // avoid automatic calling of Release() after CoUninitialize()
+ CoUninitialize();
+}
+
+
+string MiKTeXCom::getVersion () {
+#ifdef _MSC_VER
+ MiKTeXSetupInfo info = _session->GetMiKTeXSetupInfo();
+#else
+ MiKTeXSetupInfo info;
+ _session->GetMiKTeXSetupInfo(&info);
+#endif
+ _bstr_t version = info.version;
+ return string(version);
+}
+
+
+const char* MiKTeXCom::findFile (const char *fname) {
+ try {
+ _bstr_t path;
+ static string ret;
+#ifdef _MSC_VER
+ HRESULT hres = _session->FindFile(fname, path.GetAddress());
+ bool found = (hres != 0);
+#else
+ VARIANT_BOOL found_var;
+ _session->FindFile(_bstr_t(fname), path.GetAddress(), &found_var);
+ bool found = (found_var == VARIANT_TRUE);
+#endif
+ if (found) {
+ ret = _bstr_t(path);
+ return ret.c_str();
+ }
+ return 0;
+ }
+ catch (_com_error &e) {
+ throw MessageException((const char*)e.Description());
+ }
+}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.1/src/MiKTeXCom.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/MiKTeXCom.h
new file mode 100644
index 00000000000..8649cc9f377
--- /dev/null
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/MiKTeXCom.h
@@ -0,0 +1,51 @@
+/*************************************************************************
+** MiKTeXCom.h **
+** **
+** This file is part of dvisvgm -- the DVI to SVG converter **
+** Copyright (C) 2005-2013 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 MIKTEXCOM_H
+#define MIKTEXCOM_H
+
+#include <string>
+
+#ifdef _MSC_VER
+#import <MiKTeX209-session.tlb>
+using namespace MiKTeXSession2_9;
+#else
+#include "miktex209-session.h"
+#endif
+
+
+class MiKTeXCom
+{
+ public:
+ MiKTeXCom ();
+ ~MiKTeXCom ();
+ std::string getVersion ();
+ const char* findFile (const char* fname);
+
+ private:
+#ifdef _MSC_VER
+ ISession2Ptr _session;
+#else
+ ISession2 *_session;
+#endif
+};
+
+
+#endif
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PSInterpreter.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PSInterpreter.cpp
index 7422c054b0b..609b5005a80 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PSInterpreter.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PSInterpreter.cpp
@@ -2,7 +2,7 @@
** PSInterpreter.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -29,6 +29,7 @@
#include "psdefs.psc"
#include "SignalHandler.h"
+
using namespace std;
@@ -72,6 +73,21 @@ PSActions* PSInterpreter::setActions (PSActions *actions) {
}
+/** Checks if the given status value returned by Ghostscript indicates an error.
+ * @param[in] status status value returned by Ghostscript after the execution of a PS snippet
+ * @throw PSException if the status value indicates a PostScript error */
+void PSInterpreter::checkStatus (int status) {
+ if (status < 0) {
+ _mode = PS_QUIT;
+ if (status < -100)
+ throw PSException("fatal error");
+ if (_errorMessage.empty())
+ throw PSException(_gs.error_name(status));
+ throw PSException(_errorMessage);
+ }
+}
+
+
/** Executes a chunk of PostScript code.
* @param[in] str buffer containing the code
* @param[in] len number of characters in buffer
@@ -80,11 +96,12 @@ PSActions* PSInterpreter::setActions (PSActions *actions) {
void PSInterpreter::execute (const char *str, size_t len, bool flush) {
init();
if (_mode != PS_QUIT) {
- int status;
+ int status=0;
if (_mode == PS_NONE) {
_gs.run_string_begin(0, &status);
_mode = PS_RUNNING;
}
+ checkStatus(status);
const char *p=str;
// feed Ghostscript with code chunks that are not larger than 64KB
// => see documentation of gsapi_run_string_foo()
@@ -94,15 +111,10 @@ void PSInterpreter::execute (const char *str, size_t len, bool flush) {
_gs.run_string_continue(p, chunksize, 0, &status);
p += chunksize;
len -= chunksize;
- if (status == -101) { // e_Quit
- _gs.exit();
- _mode = PS_QUIT;
- }
- else if (status <= -100) {
- _gs.exit();
+ if (status == -101) // e_Quit
_mode = PS_QUIT;
- throw PSException("fatal PostScript error");
- }
+ else
+ checkStatus(status);
}
if (flush) {
// force writing contents of output buffer
@@ -152,31 +164,28 @@ int GSDLLCALL PSInterpreter::output (void *inst, const char *buf, int len) {
const char *end = buf+len-1; // last position of buf
for (const char *first=buf, *last=buf; first <= end; last++, first=last) {
// move first and last to begin and end of the next line, respectively
- while (last <= end && *last != '\n')
+ while (last < end && *last != '\n')
last++;
size_t linelength = last-first+1;
if (linelength > MAXLEN) // skip long lines since they don't contain any relevant information
continue;
vector<char> &linebuf = self->_linebuf; // just a shorter name...
- if ((*last == '\n' || !self->active())) {
- if (linelength + linebuf.size() > 5) { // prefix "dvi." plus final newline
+ if ((*last == '\n' || !self->active()) || self->_inError) {
+ if (linelength + linebuf.size() > 1) { // prefix "dvi." plus final newline
SplittedCharInputBuffer ib(linebuf.empty() ? 0 : &linebuf[0], linebuf.size(), first, linelength);
BufferInputReader in(ib);
- in.skipSpace();
- if (self->_inError) {
- if (in.check("dvi.enderror")) {
- // @@
+ if (self->_inError)
+ self->_errorMessage += string(first, linelength);
+ else {
+ in.skipSpace();
+ if (in.check("Unrecoverable error: ")) {
self->_errorMessage.clear();
- self->_inError = false;
- }
- else
- self->_errorMessage += string(first, linelength);
- }
- if (in.check("dvi.")) {
- if (in.check("beginerror")) // all following output belongs to an error message
+ while (!in.eof())
+ self->_errorMessage += in.get();
self->_inError = true;
- else
+ }
+ else if (in.check("dvi."))
self->callActions(in);
}
}
@@ -184,7 +193,6 @@ int GSDLLCALL PSInterpreter::output (void *inst, const char *buf, int len) {
}
else { // no line end found =>
// save remaining characters and prepend them to the next incoming chunk of characters
- linelength--; // last == end+1 => linelength is 1 too large
if (linebuf.size() + linelength > MAXLEN)
linebuf.clear(); // don't care for long lines
else {
@@ -297,9 +305,6 @@ void PSInterpreter::callActions (InputReader &in) {
* @param[in] len number of chars in buf
* @return number of processed characters */
int GSDLLCALL PSInterpreter::error (void *inst, const char *buf, int len) {
- ostringstream oss;
- oss << "PostScript error:\n";
- oss.write(buf, len);
return len;
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PSInterpreter.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PSInterpreter.h
index b463d73b362..0b36dda570e 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PSInterpreter.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PSInterpreter.h
@@ -2,7 +2,7 @@
** PSInterpreter.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -99,6 +99,7 @@ class PSInterpreter
static int GSDLLCALL output (void *inst, const char *buf, int len);
static int GSDLLCALL error (void *inst, const char *buf, int len);
+ void checkStatus (int status);
void callActions (InputReader &cib);
private:
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PageRanges.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PageRanges.cpp
index ad7b891821f..8a20a35d52b 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PageRanges.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PageRanges.cpp
@@ -2,7 +2,7 @@
** PageRanges.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PageRanges.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PageRanges.h
index d31f171b323..b9f155cac47 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PageRanges.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PageRanges.h
@@ -2,7 +2,7 @@
** PageRanges.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PageSize.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PageSize.cpp
index a4cbfd5735e..85a6c062f85 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PageSize.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PageSize.cpp
@@ -2,7 +2,7 @@
** PageSize.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PageSize.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PageSize.h
index a26769241f0..058bc3d21ff 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PageSize.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PageSize.h
@@ -2,7 +2,7 @@
** PageSize.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Pair.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Pair.h
index a61d3e21d38..a3dc5a12af3 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Pair.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Pair.h
@@ -2,7 +2,7 @@
** Pair.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PdfSpecialHandler.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PdfSpecialHandler.cpp
new file mode 100644
index 00000000000..f3d8464704c
--- /dev/null
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PdfSpecialHandler.cpp
@@ -0,0 +1,76 @@
+/*************************************************************************
+** PdfSpecialHandler.cpp **
+** **
+** This file is part of dvisvgm -- the DVI to SVG converter **
+** Copyright (C) 2005-2013 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 <cstring>
+#include "InputReader.h"
+#include "MapLine.h"
+#include "PdfSpecialHandler.h"
+#include "FontMap.h"
+#include "Message.h"
+
+using namespace std;
+
+
+PdfSpecialHandler::PdfSpecialHandler () : _maplineProcessed(false)
+{
+}
+
+
+bool PdfSpecialHandler::process (const char *prefix, istream &is, SpecialActions *actions) {
+ if (!actions)
+ return true;
+ StreamInputReader ir(is);
+ ir.skipSpace();
+ string cmd = ir.getWord();
+ ir.skipSpace();
+ if (cmd == "mapline" || cmd == "mapfile") {
+ // read mode selector ('+', '-', or '=')
+ char modechar = '+'; // default mode (append if new, do not replace existing mapping)
+ if (strchr("=+-", ir.peek())) // leading modifier given?
+ modechar = ir.get();
+ else if (!_maplineProcessed) { // no modifier given?
+ // remove default map entries if this is the first mapline/mapfile special called
+ FontMap::instance().clear();
+ }
+
+ if (cmd == "mapline") {
+ try {
+ MapLine mapline(is);
+ FontMap::instance().apply(mapline, modechar);
+ }
+ catch (const MapLineException &ex) {
+ Message::wstream(true) << "pdf:mapline: " << ex.what() << '\n';
+ }
+ }
+ else { // mapfile
+ string fname = ir.getString();
+ if (!FontMap::instance().read(fname, modechar))
+ Message::wstream(true) << "can't open map file " << fname << '\n';
+ }
+ _maplineProcessed = true;
+ }
+ return true;
+}
+
+
+const char** PdfSpecialHandler::prefixes () const {
+ static const char *pfx[] = {"pdf:", 0};
+ return pfx;
+}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontMap.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PdfSpecialHandler.h
index 184dd12f128..43cdd1045de 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/FontMap.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PdfSpecialHandler.h
@@ -1,8 +1,8 @@
/*************************************************************************
-** FontMap.h **
+** PdfSpecialHandler.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -18,43 +18,22 @@
** along with this program; if not, see <http://www.gnu.org/licenses/>. **
*************************************************************************/
-#ifndef FONTMAP_H
-#define FONTMAP_H
+#ifndef PDFSPECIALHANDLER_H
+#define PDFSPECIALHANDLER_H
-#include <cstring>
-#include <istream>
-#include <map>
-#include <ostream>
-#include <string>
+#include "SpecialHandler.h"
-
-class FontMap
+class PdfSpecialHandler : public SpecialHandler
{
- struct MapEntry
- {
- std::string fontname; ///< target font name
- std::string encname; ///< name of font encoding
- };
-
- typedef std::map<std::string,MapEntry>::const_iterator ConstIterator;
-
public:
- FontMap () {}
- FontMap (const std::string &fname);
- FontMap (std::istream &is);
- bool read (const std::string &fname);
- void readdir (const std::string &dirname);
- void clear () {_fontMap.clear();}
- std::ostream& write (std::ostream &os) const;
- const char* lookup(const std::string &fontname) const;
- const char* encoding (const std::string &fontname) const;
-
- protected:
- void readPsMap (std::istream &is);
- void readPdfMap (std::istream &is);
+ PdfSpecialHandler ();
+ const char* info () const {return "pdfTeX font map specials";}
+ const char* name () const {return "pdf";}
+ const char** prefixes () const;
+ bool process (const char *prefix, std::istream &is, SpecialActions *actions);
private:
- std::map<std::string,MapEntry> _fontMap;
+ bool _maplineProcessed; ///< true if a mapline or mapfile special has already been processed
};
#endif
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Process.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Process.cpp
index af9112b3fe4..a76219e9846 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Process.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Process.cpp
@@ -2,7 +2,7 @@
** Process.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -18,7 +18,6 @@
** along with this program; if not, see <http://www.gnu.org/licenses/>. **
*************************************************************************/
-
#ifdef __WIN32__
#include <windows.h>
#else
@@ -133,7 +132,7 @@ bool Process::run (bool quiet) {
}
catch (SignalException &e) { // caught ctrl-c
kill(pid, SIGKILL);
- throw e;
+ throw;
}
}
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Process.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Process.h
index 18086fc2367..973fabf2baf 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Process.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Process.h
@@ -2,7 +2,7 @@
** Process.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PsSpecialHandler.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PsSpecialHandler.cpp
index 0b987ecef11..0bf926a3132 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PsSpecialHandler.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PsSpecialHandler.cpp
@@ -2,7 +2,7 @@
** PsSpecialHandler.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -41,7 +41,7 @@ static inline double str2double (const string &str) {
}
-PsSpecialHandler::PsSpecialHandler () : _psi(this), _actions(0), _initialized(false)
+PsSpecialHandler::PsSpecialHandler () : _psi(this), _actions(0), _initialized(false), _xmlnode(0)
{
}
@@ -152,7 +152,7 @@ bool PsSpecialHandler::process (const char *prefix, istream &is, SpecialActions
else if (strcmp(prefix, "psfile=") == 0 || strcmp(prefix, "PSfile=") == 0) {
if (_actions) {
StreamInputReader in(is);
- string fname = in.getString(in.peek() == '"' ? '"' : 0);
+ string fname = in.getQuotedString(in.peek() == '"' ? '"' : 0);
map<string,string> attr;
in.parseAttributes(attr);
psfile(fname, attr);
@@ -389,7 +389,7 @@ void PsSpecialHandler::stroke (vector<double> &p) {
path->addAttribute("stroke-linejoin", XMLString(_linecap == 1 ? "round" : "bevel"));
if (_opacityalpha < 1)
path->addAttribute("stroke-opacity", XMLString(_opacityalpha));
- if (_dashpattern.size() > 0) {
+ if (!_dashpattern.empty()) {
ostringstream oss;
for (size_t i=0; i < _dashpattern.size(); i++) {
if (i > 0)
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PsSpecialHandler.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PsSpecialHandler.h
index 7d571f6b775..0807382afbd 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/PsSpecialHandler.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/PsSpecialHandler.h
@@ -2,7 +2,7 @@
** PsSpecialHandler.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SVGTree.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/SVGTree.cpp
index 4b7bf8a89f2..d37dba6dc7f 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SVGTree.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/SVGTree.cpp
@@ -2,7 +2,7 @@
** SVGTree.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SVGTree.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/SVGTree.h
index aae598ef0b3..c81dbd6d62f 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SVGTree.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/SVGTree.h
@@ -2,7 +2,7 @@
** SVGTree.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SignalHandler.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/SignalHandler.cpp
index 318eab2c690..ffcd66165e0 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SignalHandler.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/SignalHandler.cpp
@@ -2,7 +2,7 @@
** SignalHandler.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SignalHandler.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/SignalHandler.h
index 35f63f5e80b..e7473f567d8 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SignalHandler.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/SignalHandler.h
@@ -2,7 +2,7 @@
** SignalHandler.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SpecialActions.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/SpecialActions.h
index 6be5da6ca5f..3d99d9b17c0 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SpecialActions.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/SpecialActions.h
@@ -2,7 +2,7 @@
** SpecialActions.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SpecialHandler.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/SpecialHandler.h
index 2434ec4b460..7818dbfb108 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SpecialHandler.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/SpecialHandler.h
@@ -2,7 +2,7 @@
** SpecialHandler.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SpecialManager.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/SpecialManager.cpp
index 0c9e4d3d604..7ef7ea4a67a 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SpecialManager.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/SpecialManager.cpp
@@ -2,7 +2,7 @@
** SpecialManager.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -32,9 +32,14 @@ SpecialManager::~SpecialManager () {
}
+/** Remove all registered handlers. */
void SpecialManager::unregisterHandlers () {
FORALL(_pool, vector<SpecialHandler*>::iterator, it)
delete *it;
+ _pool.clear();
+ _handlers.clear();
+ _endPageListeners.clear();
+ _positionListeners.clear();
}
@@ -55,7 +60,7 @@ void SpecialManager::registerHandler (SpecialHandler *handler) {
}
-/** Registers a multiple special handlers.
+/** Registers several special handlers at once.
* If ignorelist == 0, all given handlers are registered. To exclude selected sets of
* specials, the corresponding names can be given separated by non alpha-numeric characters,
* e.g. "color, ps, em" or "color: ps em" etc.
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SpecialManager.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/SpecialManager.h
index 6499d206f8c..51f9bb08d02 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/SpecialManager.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/SpecialManager.h
@@ -2,7 +2,7 @@
** SpecialManager.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/StreamReader.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/StreamReader.cpp
index 6f104b3c724..bc6ac14eaef 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/StreamReader.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/StreamReader.cpp
@@ -2,7 +2,7 @@
** StreamReader.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/StreamReader.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/StreamReader.h
index 538eafa79f2..4a9ce672d8e 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/StreamReader.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/StreamReader.h
@@ -2,7 +2,7 @@
** StreamReader.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/StreamWriter.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/StreamWriter.cpp
index 6c2d1e20598..bdd378f9993 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/StreamWriter.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/StreamWriter.cpp
@@ -2,7 +2,7 @@
** StreamWriter.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/StreamWriter.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/StreamWriter.h
index c970ba5d521..6217800dae6 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/StreamWriter.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/StreamWriter.h
@@ -2,7 +2,7 @@
** StreamWriter.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Subfont.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Subfont.cpp
new file mode 100644
index 00000000000..aa552d029f6
--- /dev/null
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Subfont.cpp
@@ -0,0 +1,265 @@
+/*************************************************************************
+** Subfont.cpp **
+** **
+** This file is part of dvisvgm -- the DVI to SVG converter **
+** Copyright (C) 2005-2013 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 <cstdlib>
+#include <cstring>
+#include <fstream>
+#include <limits>
+#include "FileFinder.h"
+#include "Subfont.h"
+#include "Message.h"
+
+using namespace std;
+
+// helper functions
+
+static int skip_mapping_data (istream &is);
+static bool scan_line (const char *line, int lineno, UInt16 *mapping, const string &fname, int &pos);
+
+
+/** Constructs a new SubfontDefinition object.
+ * @param[in] name name of subfont definition
+ * @param[in] fpath path to corresponding .sfd file*/
+SubfontDefinition::SubfontDefinition (const string &name, const char *fpath) : _sfname(name) {
+ // read all subfont IDs from the .sfd file but skip the mapping data
+ ifstream is(fpath);
+ while (is) {
+ if (is.peek() == '#') // comment line?
+ is.ignore(numeric_limits<int>::max(), '\n'); // => skip it
+ else if (isspace(is.peek()))
+ is.get();
+ else {
+ string id;
+ while (is && !isspace(is.peek()))
+ id += is.get();
+ if (!id.empty()) {
+ pair<Iterator, bool> state = _subfonts.insert(pair<string,Subfont*>(id, (Subfont*)0));
+ if (state.second) // id was not present in map already
+ state.first->second = new Subfont(*this, state.first->first);
+ skip_mapping_data(is);
+ }
+ }
+ }
+}
+
+
+SubfontDefinition::~SubfontDefinition () {
+ for (Iterator it=_subfonts.begin(); it != _subfonts.end(); ++it)
+ delete it->second;
+}
+
+
+/** Looks for a subfont definition of the given name and returns the corresponding object.
+ * All objects are only created once for a given name and stored in an internal cache.
+ * @param[in] name name of subfont definition to lookup
+ * @return pointer to subfont definition object or 0 if it doesn't exist */
+SubfontDefinition* SubfontDefinition::lookup (const std::string &name) {
+ typedef map<string,SubfontDefinition*> SFDMap;
+ static SFDMap sfdMap;
+ SFDMap::iterator it = sfdMap.find(name);
+ if (it != sfdMap.end())
+ return it->second;
+ SubfontDefinition *sfd=0;
+ if (const char *path = FileFinder::lookup(name+".sfd", false)) {
+ sfd = new SubfontDefinition(name, path);
+ sfdMap[name] = sfd;
+ }
+ return sfd;
+}
+
+
+/** Returns the full path to the corresponding .sfd file or 0 if it can't be found. */
+const char* SubfontDefinition::path () const {
+ return FileFinder::lookup(filename(), false);
+}
+
+
+/** Returns the subfont with the given ID, or 0 if it doesn't exist. */
+Subfont* SubfontDefinition::subfont (const string &id) const {
+ ConstIterator it = _subfonts.find(id);
+ if (it != _subfonts.end())
+ return it->second;
+ return 0;
+}
+
+
+/** Returns all subfonts defined in this SFD. */
+int SubfontDefinition::subfonts (vector<Subfont*> &sfs) const {
+ for (ConstIterator it=_subfonts.begin(); it != _subfonts.end(); ++it)
+ sfs.push_back(it->second);
+ return sfs.size();
+}
+
+//////////////////////////////////////////////////////////////////////
+
+Subfont::~Subfont () {
+ delete [] _mapping;
+}
+
+
+/** Reads the character mappings for a given subfont ID.
+ * Format of subfont definition (sfd) files:
+ * sfd ::= (ID entries | '#' <string> '\n')*
+ * ID ::= <string without whitespace>
+ * entries ::= (integer | integer ':' | integer '_' integer)*
+ * The mapping data for a subfont is given as a sequence of 256 16-bit values where
+ * value v at position c defines the (global) character code that is assigned to the
+ * local subfont character c. The sequence v,v+1,v+2,...,v+n can be abbreviated with
+ * v '_' v+n, e.g. 10_55. In order to continue the sequence at a different position,
+ * the syntax number ':' can be used. Example: 10: 5 6 7 assigns the values v=5, 6, 7
+ * to c=10, 11 and 12, respectively.
+ * @return true if the data has been read successfully */
+bool Subfont::read () {
+ if (_mapping) // if there's already a mapping assigned, we're finished here
+ return true;
+ if (const char *p = _sfd.path()) {
+ ifstream is(p);
+ if (!is)
+ return false;
+
+ int lineno=1;
+ while (is) {
+ if (is.peek() == '#' || is.peek() == '\n') {
+ is.ignore(numeric_limits<int>::max(), '\n'); // skip comment and empty line
+ lineno++;
+ }
+ else if (isspace(is.peek()))
+ is.get();
+ else {
+ string id;
+ while (is && !isspace(is.peek()))
+ id += is.get();
+ if (id != _id)
+ lineno += skip_mapping_data(is);
+ else {
+ // build mapping array
+ _mapping = new UInt16[256];
+ memset(_mapping, 0, 256*sizeof(UInt16));
+ int pos=0;
+ char buf[1024];
+ bool complete=false;
+ while (!complete) {
+ is.getline(buf, 1024);
+ complete = scan_line(buf, lineno, _mapping, _sfd.filename() ,pos);
+ }
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+}
+
+
+/** Returns the global character code of the target font for a
+ * (local) character code of the subfont.
+ * @param[in] c local character code relative to the subfont
+ * @return character code of the target font */
+UInt16 Subfont::decode (unsigned char c) {
+ if (!_mapping && !read())
+ return 0;
+ return _mapping[c];
+}
+
+
+//////////////////////////////////////////////////////////////////////
+
+
+/** Skips the mapping data of a subfont entry.
+ * @param[in] stream to read from
+ * @return number of lines skipped */
+static int skip_mapping_data (istream &is) {
+ char buf[1024];
+ bool complete=false;
+ int lines=0;
+ while (is && !complete) {
+ is.getline(buf, 1024);
+ if (is.gcount() > 1)
+ lines++;
+ const char *p = buf+is.gcount()-2;
+ while (p >= buf && isspace(*p))
+ p--;
+ complete = (p < buf || *p != '\\'); // line doesn't end with backslash
+ }
+ return lines;
+}
+
+
+/** Scans a single line of mapping data and stores the values in the given array.
+ * @param[in] line the line of text to be scanned
+ * @param[in] lineno line number used in exception messages
+ * @param[in,out] mapping the mapping data
+ * @param[in,out] offest position/index of next mapping value
+ * @return true if the line is the last one the current mapping sequence, i.e. the line doesn't end with a backslash */
+static bool scan_line (const char *line, int lineno, UInt16 *mapping, const string &fname, int &offset) {
+ const char *p=line;
+ char *q;
+ for (; *p && isspace(*p); p++);
+ while (*p) {
+ if (*p == '\\') {
+ while (*++p)
+ if (!isspace(*p))
+ throw SubfontException("unexpected backslash in mapping table", fname, lineno);
+ }
+ else {
+ long val1 = strtol(p, &q, 0); // first value of range
+ long val2; // last value of range
+ ostringstream oss; // output stream for exception messages
+ switch (*q) {
+ case ':':
+ if (val1 < 0 || val1 > 255)
+ throw SubfontException(oss << "offset value " << val1 << " out of range (0-255)", fname, lineno);
+ offset = val1;
+ val1 = -1;
+ q++;
+ break;
+ case '_':
+ p = q+1;
+ val2 = strtol(p, &q, 0);
+ if (val1 < 0 || val1 > 0xffffL)
+ throw SubfontException(oss << "table value " << val1 << " out of range", fname, lineno);
+ if (val2 < 0 || val2 > 0xffffL)
+ throw SubfontException(oss << "table value " << val2 << " out of range", fname, lineno);
+ if (p == q || (!isspace(*q) && *q != '\\' && *q))
+ throw SubfontException(oss << "unexpected character '" << *q << "'", fname, lineno);
+ break;
+ default:
+ if (p == q || (!isspace(*q) && *q != '\\' && *q))
+ throw SubfontException(oss << "unexpected character '" << *q << "'", fname, lineno);
+ if (val1 < 0 || val1 > 0xffffL)
+ throw SubfontException("invalid character code", fname, lineno);
+ val2 = val1;
+ }
+ if (val1 >= 0) {
+ if (val1 > val2 || offset+val2-val1 > 255)
+ throw SubfontException(oss << "invalid range in mapping table: " << hex << val1 << '_' << val2, fname, lineno);
+ for (long v=val1; v <= val2; v++) {
+ if (mapping[offset])
+ throw SubfontException(oss << "mapping of character " << offset << " already defined", fname, lineno);
+ mapping[offset++] = static_cast<UInt16>(v);
+ }
+ }
+ for (p=q; *p && isspace(*p); p++);
+ }
+ }
+ for (p--; p >= line && isspace(*p); p--);
+ return p < line || *p != '\\';
+}
+
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Subfont.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Subfont.h
new file mode 100644
index 00000000000..b099bc76897
--- /dev/null
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Subfont.h
@@ -0,0 +1,102 @@
+/*************************************************************************
+** Subfont.h **
+** **
+** This file is part of dvisvgm -- the DVI to SVG converter **
+** Copyright (C) 2005-2013 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 SUBFONT_H
+#define SUBFONT_H
+
+#include <istream>
+#include <map>
+#include <sstream>
+#include <string>
+#include <vector>
+#include "MessageException.h"
+#include "types.h"
+
+
+class Subfont;
+
+
+/** Represents a collection of subfont mappings as defined in a .sfd file, and
+ * encapsulates the evaluation of these files. */
+class SubfontDefinition
+{
+ typedef std::map<std::string, Subfont*> Subfonts;
+ typedef Subfonts::iterator Iterator;
+ typedef Subfonts::const_iterator ConstIterator;
+ public:
+ ~SubfontDefinition ();
+ static SubfontDefinition* lookup (const std::string &name);
+// int getIDs (std::vector<std::string> &ids) const;
+ const std::string& name() const {return _sfname;}
+ std::string filename() const {return _sfname+".sfd";}
+ Subfont* subfont (const std::string &id) const;
+ int subfonts (std::vector<Subfont*> &sfs) const;
+ const char* path () const;
+
+ protected:
+ SubfontDefinition (const std::string &name, const char *fpath);
+ SubfontDefinition (const SubfontDefinition &sfd) {}
+
+ private:
+ std::string _sfname; ///< name of subfont
+ Subfonts _subfonts; ///< all subfonts defined in the corresponding .sfd file
+};
+
+
+/** Represents a single subfont mapping defined in a SubfontDefinition (.sfd file). */
+class Subfont
+{
+ friend class SubfontDefinition;
+ public:
+ ~Subfont();
+ const std::string& id () const {return _id;}
+ UInt16 decode (unsigned char c);
+
+ protected:
+ Subfont (SubfontDefinition &sfd, const std::string &id) : _sfd(sfd), _id(id), _mapping(0) {}
+ bool read ();
+
+ private:
+ SubfontDefinition &_sfd; ///< SubfontDefinition where this Subfont belongs to
+ const std::string &_id; ///< id of this subfont as specified in the .sfd file
+ UInt16 *_mapping; ///< the character mapping table with 256 entries
+};
+
+
+class SubfontException : public MessageException
+{
+ public:
+ SubfontException (const std::string &msg, const std::string &fname, int lineno=0)
+ : MessageException(msg), _fname(fname), _lineno(lineno) {}
+
+ SubfontException (const std::ostream &oss, const std::string &fname, int lineno=0)
+ : MessageException(dynamic_cast<const std::ostringstream&>(oss).str()), _fname(fname), _lineno(lineno) {}
+
+ virtual ~SubfontException () throw() {}
+
+ const char* filename () const {return _fname.c_str();}
+ int lineno () const {return _lineno;}
+
+ private:
+ std::string _fname;
+ int _lineno;
+};
+
+#endif
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/System.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/System.cpp
index ccf00046c7e..80c71ec7b4c 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/System.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/System.cpp
@@ -2,7 +2,7 @@
** System.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/System.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/System.h
index c0b1f845d65..775d6358dd7 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/System.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/System.h
@@ -2,7 +2,7 @@
** System.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/TFM.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/TFM.cpp
index 0447183789a..093af8cb5e3 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/TFM.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/TFM.cpp
@@ -2,7 +2,7 @@
** TFM.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/TFM.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/TFM.h
index 3118879e512..f2ce472ead4 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/TFM.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/TFM.h
@@ -2,7 +2,7 @@
** TFM.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Terminal.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Terminal.cpp
index fc4ab1d9d82..b40a68c73d9 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Terminal.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Terminal.cpp
@@ -2,7 +2,7 @@
** Terminal.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Terminal.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Terminal.h
index 704c802821b..835ae4571e6 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/Terminal.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/Terminal.h
@@ -2,7 +2,7 @@
** Terminal.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/TpicSpecialHandler.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/TpicSpecialHandler.cpp
index 6aff87164a6..13c36259fae 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/TpicSpecialHandler.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/TpicSpecialHandler.cpp
@@ -2,7 +2,7 @@
** TpicSpecialHandler.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -56,7 +56,7 @@ void TpicSpecialHandler::reset () {
* @param[in] ddist dash/dot distance of line in TeX point units
* (0:solid line, >0:dashed line, <0:dotted line) */
void TpicSpecialHandler::drawLines (bool stroke, bool fill, double ddist, SpecialActions *actions) {
- if (actions && _points.size() > 0) {
+ if (actions && !_points.empty()) {
XMLElementNode *elem=0;
if (_points.size() == 1) {
const DPair &p = _points.back();
@@ -118,7 +118,7 @@ void TpicSpecialHandler::drawLines (bool stroke, bool fill, double ddist, Specia
* of the dashes and the gaps inbetween.
* @param[in] ddist length of dashes and gaps */
void TpicSpecialHandler::drawSplines (double ddist, SpecialActions *actions) {
- if (actions && _points.size() > 0) {
+ if (actions && !_points.empty()) {
const size_t size = _points.size();
if (size < 3)
drawLines(true, false, ddist, actions);
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/TpicSpecialHandler.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/TpicSpecialHandler.h
index 65285515be9..257843d1115 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/TpicSpecialHandler.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/TpicSpecialHandler.h
@@ -2,7 +2,7 @@
** TpicSpecialHandler.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/VFActions.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/VFActions.h
index d42fa385e35..ba25639b337 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/VFActions.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/VFActions.h
@@ -2,7 +2,7 @@
** VFActions.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/VFReader.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/VFReader.cpp
index 6e501219d9c..39b081d8284 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/VFReader.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/VFReader.cpp
@@ -2,7 +2,7 @@
** VFReader.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/VFReader.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/VFReader.h
index e1c21408e51..3abaa894cfa 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/VFReader.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/VFReader.h
@@ -2,7 +2,7 @@
** VFReader.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/VectorStream.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/VectorStream.h
index 127f99c5c7a..d767c071290 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/VectorStream.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/VectorStream.h
@@ -2,7 +2,7 @@
** VectorStream.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLDocTypeNode.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLDocTypeNode.h
index aa01656e844..ad1cd0f3b38 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLDocTypeNode.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLDocTypeNode.h
@@ -2,7 +2,7 @@
** XMLDocTypeNode.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLDocument.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLDocument.cpp
index 7faf60d2f95..f9a65c90da8 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLDocument.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLDocument.cpp
@@ -2,7 +2,7 @@
** XMLDocument.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLDocument.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLDocument.h
index bb2260e567b..3697c5702d6 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLDocument.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLDocument.h
@@ -2,7 +2,7 @@
** XMLDocument.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLNode.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLNode.cpp
index 8db32d88760..e287c4ea852 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLNode.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLNode.cpp
@@ -2,7 +2,7 @@
** XMLNode.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLNode.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLNode.h
index 09505015267..33792bcb6e7 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLNode.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLNode.h
@@ -2,7 +2,7 @@
** XMLNode.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLString.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLString.cpp
index 514cfdcc834..2ee9e7dad5f 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLString.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLString.cpp
@@ -2,7 +2,7 @@
** XMLString.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLString.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLString.h
index f87b22a4882..0cc404b1b21 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/XMLString.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/XMLString.h
@@ -2,7 +2,7 @@
** XMLString.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/dvisvgm.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/dvisvgm.cpp
index 0144d135d15..71dcb6740f5 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/dvisvgm.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/dvisvgm.cpp
@@ -2,7 +2,7 @@
** dvisvgm.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -33,6 +33,7 @@
#include "Font.h"
#include "FontCache.h"
#include "FontEngine.h"
+#include "FontMap.h"
#include "Ghostscript.h"
#include "InputReader.h"
#include "Message.h"
@@ -44,6 +45,7 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
+#include "PSInterpreter.h"
#else
#define TARGET_SYSTEM ""
#endif
@@ -150,7 +152,7 @@ class SVGOutput : public DVIToSVG::Output
static void show_help (const CommandLine &cmd) {
cout << PACKAGE_STRING "\n\n";
cmd.help();
- cout << "\nCopyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> \n\n";
+ cout << "\nCopyright (C) 2005-2013 Martin Gieseking <martin.gieseking@uos.de> \n\n";
}
@@ -165,10 +167,8 @@ static string remove_path (string fname) {
static string ensure_suffix (string fname, const string &suffix) {
size_t dotpos = remove_path(fname).rfind('.');
- if (dotpos == string::npos) {
- dotpos = fname.length();
+ if (dotpos == string::npos)
fname += "."+suffix;
- }
return fname;
}
@@ -294,6 +294,22 @@ static void print_version (bool extended) {
}
+static void init_fontmap (const CommandLine &args) {
+ const char *mapseq = args.fontmap_given() ? args.fontmap_arg().c_str() : 0;
+ bool additional = mapseq && strchr("+-=", *mapseq);
+ if (!mapseq || additional) {
+ const char *mapfiles[] = {"ps2pk.map", "dvipdfm.map", "psfonts.map", 0};
+ bool found = false;
+ for (const char **p=mapfiles; *p && !found; p++)
+ found = FontMap::instance().read(*p);
+ if (!found)
+ Message::wstream(true) << "none of the default map files could be found";
+ }
+ if (mapseq)
+ FontMap::instance().read(mapseq);
+}
+
+
int main (int argc, char *argv[]) {
CommandLine args;
args.parse(argc, argv);
@@ -358,13 +374,13 @@ int main (int argc, char *argv[]) {
Message::LEVEL = args.verbosity_arg();
DVIToSVG dvisvg(ifs, out);
const char *ignore_specials = args.no_specials_given() ? (args.no_specials_arg().empty() ? "*" : args.no_specials_arg().c_str()) : 0;
- dvisvg.setProcessSpecials(ignore_specials);
+ dvisvg.setProcessSpecials(ignore_specials, true);
set_trans(dvisvg, args);
dvisvg.setPageSize(args.bbox_arg());
try {
- const char *usermap = args.map_file_given() ? args.map_file_arg().c_str() : 0;
- FileFinder::init(argv[0], !args.no_mktexmf_given(), usermap);
+ FileFinder::init(argv[0], "dvisvgm", !args.no_mktexmf_given());
+ init_fontmap(args);
pair<int,int> pageinfo;
SignalHandler::instance().start();
dvisvg.convert(args.page_arg(), &pageinfo);
@@ -379,6 +395,9 @@ int main (int argc, char *argv[]) {
catch (DVIException &e) {
Message::estream() << "\nDVI error: " << e.what() << '\n';
}
+ catch (PSException &e) {
+ Message::estream() << "\nPostScript error: " << e.what() << '\n';
+ }
catch (SignalException &e) {
Message::wstream(true) << "execution interrupted by user\n";
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/gzstream.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/gzstream.cpp
index 2893c299891..2893c299891 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/gzstream.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/gzstream.cpp
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/gzstream.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/gzstream.h
index 60f38c4fac7..60f38c4fac7 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/gzstream.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/gzstream.h
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/iapi.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/iapi.h
index 8e29d938d03..8e29d938d03 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/iapi.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/iapi.h
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/ierrors.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/ierrors.h
index 3184341177e..3184341177e 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/ierrors.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/ierrors.h
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/macros.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/macros.h
index 3cfa56a9b42..8935b9babe9 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/macros.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/macros.h
@@ -2,7 +2,7 @@
** macros.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -39,7 +39,4 @@
return obj.write(os); \
}
-#include <iostream>
-#define SHOW(x) std::cerr << ">>> " << __FILE__ ", " << __LINE__ << ": " << #x << "=" << (x) << std::endl
-
#endif
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/options.xml b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/options.xml
index c64e25fe877..dd43c07c039 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/options.xml
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/options.xml
@@ -3,7 +3,7 @@
** options.xml **
** **
** This file is part of dvisvgm - the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -32,9 +32,9 @@
<arg type="string" name="ranges" default="1"/>
<description>choose pages to convert</description>
</option>
- <option long="map-file" short="m">
- <arg type="string" name="[+]filename"/>
- <description>set [additional] font map file name</description>
+ <option long="fontmap" short="m">
+ <arg type="string" name="filenames"/>
+ <description>evaluate (additional) font map files</description>
</option>
</section>
<section title="SVG output options">
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/psdefs.psc b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/psdefs.psc
index bd4541f4488..2415068a2b3 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/psdefs.psc
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/psdefs.psc
@@ -2,7 +2,7 @@
** psdefs.psc **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -70,8 +70,6 @@ const char *PSInterpreter::PSDEFS =
"sysexec aload pop 6(setmatrix)prcmd}def/initmatrix{matrix setmatrix}def/concat{m"
"atrix currentmatrix matrix concatmatrix setmatrix}def/setgray 1 defpr/setcmykcol"
"or 4 defpr/sethsbcolor 3 defpr/setrgbcolor 3 defpr/.setopacityalpha{dup/.setopac"
-"ityalpha sysexec 1(setopacityalpha)prcmd}def/.handleerror errordict/handleerror "
-"get def errordict begin/handleerror{0(beginerror)prcmd .handleerror 0(enderror)p"
-"rcmd}.bind def end ";
+"ityalpha sysexec 1(setopacityalpha)prcmd}def ";
// vim: set syntax=cpp:
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/types.h b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/types.h
index f468b877fba..c22d0e1bf47 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/src/types.h
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/src/types.h
@@ -2,7 +2,7 @@
** types.h **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/BoundingBoxTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/BoundingBoxTest.cpp
index cabe159b3c4..53bf63c3bf4 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/BoundingBoxTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/BoundingBoxTest.cpp
@@ -2,7 +2,7 @@
** BoundingBoxTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/CRC32Test.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/CRC32Test.cpp
index 11814399d64..40bc3415363 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/CRC32Test.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/CRC32Test.cpp
@@ -2,7 +2,7 @@
** CRC32Test.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/CalculatorTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/CalculatorTest.cpp
index f0e2c3d0814..a4bb24c6215 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/CalculatorTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/CalculatorTest.cpp
@@ -2,7 +2,7 @@
** CalculatorTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/ColorSpecialTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/ColorSpecialTest.cpp
index ee4b78d0e40..48d4d57729b 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/ColorSpecialTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/ColorSpecialTest.cpp
@@ -2,7 +2,7 @@
** ColorSpecialTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/CommandLineTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/CommandLineTest.cpp
index 6a2592761c4..7d1e5874b33 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/CommandLineTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/CommandLineTest.cpp
@@ -2,7 +2,7 @@
** CommandLineTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/DirectoryTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/DirectoryTest.cpp
index fea5877c422..5a503b9bfd7 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/DirectoryTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/DirectoryTest.cpp
@@ -2,7 +2,7 @@
** DirectoryTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/FileFinderTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/FileFinderTest.cpp
index 73fe5b2746e..9286237ad30 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/FileFinderTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/FileFinderTest.cpp
@@ -2,7 +2,7 @@
** FileFinderTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -29,7 +29,7 @@ class FileFinderTest : public ::testing::Test
{
protected:
void SetUp () {
- FileFinder::init("FileFinderTest", false);
+ FileFinder::init("FileFinderTest", "FileFinderTest", false);
}
void TearDown () {
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/FilePathTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/FilePathTest.cpp
index bb371a6c73b..6f1ef7677ab 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/FilePathTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/FilePathTest.cpp
@@ -2,7 +2,7 @@
** FilePathTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -74,16 +74,34 @@ TEST(FilePathTest, file2) {
}
+#ifdef __WIN32__
+static string tolower (const string &str) {
+ string ret;
+ for (string::const_iterator it=str.begin(); it != str.end(); ++it)
+ ret += tolower(*it);
+ return ret;
+}
+#endif
+
+
TEST(FilePathTest, autodetect) {
FilePath fp1("FilePathTest.cpp");
ASSERT_TRUE(fp1.isFile());
ASSERT_FALSE(fp1.empty());
string cwd = FileSystem::getcwd();
+#ifdef __WIN32__
+ ASSERT_EQ(fp1.absolute(), tolower(cwd + "/FilePathTest.cpp"));
+#else
ASSERT_EQ(fp1.absolute(), cwd + "/FilePathTest.cpp");
+#endif
FilePath fp2("");
ASSERT_FALSE(fp2.isFile());
ASSERT_FALSE(fp2.empty());
+#ifdef __WIN32__
+ ASSERT_EQ(fp2.absolute(), tolower(FileSystem::getcwd()));
+#else
ASSERT_EQ(fp2.absolute(), FileSystem::getcwd());
+#endif
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/FileSystemTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/FileSystemTest.cpp
index 3515801d210..bd7adeef383 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/FileSystemTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/FileSystemTest.cpp
@@ -2,7 +2,7 @@
** FileSystemTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -62,7 +62,9 @@ TEST(FileSystemTest, rename) {
ofs.close();
EXPECT_TRUE(FileSystem::exists(tmpfile1));
FileSystem::rename(tmpfile1, tmpfile2);
+#ifndef __WIN32__
EXPECT_FALSE(FileSystem::exists(tmpfile1));
+#endif
EXPECT_TRUE(FileSystem::exists(tmpfile2));
FileSystem::remove(tmpfile2);
EXPECT_FALSE(FileSystem::exists(tmpfile2));
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/FontManagerTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/FontManagerTest.cpp
index d0d5d8b09f9..d7d0fb30f57 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/FontManagerTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/FontManagerTest.cpp
@@ -2,7 +2,7 @@
** FontManagerTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -28,7 +28,7 @@ class FontManagerTest : public ::testing::Test
{
protected:
void SetUp () {
- FileFinder::init("FontManagerTest", false);
+ FileFinder::init("FontManagerTest", "FontManagerTest", false);
FontManager &fm = FontManager::instance();
fm.registerFont(10, "cmr10", 1274110073, 10, 10);
fm.registerFont(11, "cmr10", 1274110073, 10, 12);
@@ -58,7 +58,7 @@ TEST_F(FontManagerTest, getFont) {
EXPECT_TRUE(f1);
EXPECT_EQ(f1->name(), "cmr10");
EXPECT_TRUE(dynamic_cast<const PhysicalFontImpl*>(f1));
-
+
const Font *f2 = fm.getFont(11);
EXPECT_TRUE(f2);
EXPECT_NE(f1, f2);
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/FontMapTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/FontMapTest.cpp
index 2936db771ab..a853b829295 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/FontMapTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/FontMapTest.cpp
@@ -2,7 +2,7 @@
** FontMapTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -28,17 +28,21 @@ TEST(FontMapTest, pdf_map) {
const char *fname = "tests/dvipdfm_test.map";
ifstream ifs(fname);
if (ifs) {
- FontMap fm(fname);
- EXPECT_EQ(strcmp(fm.lookup("MyriadPro-Bold-8t"), "MyriadPro-Bold"), 0);
- EXPECT_EQ(strcmp(fm.lookup("cmbsy8"), "cmbsy7"), 0);
- // entry without mapped name
- EXPECT_EQ(fm.lookup("msam10"), (const char*)0);
- EXPECT_EQ(fm.lookup("msbm10"), (const char*)0);
- EXPECT_EQ(fm.lookup("msbm10"), (const char*)0);
- EXPECT_EQ(fm.lookup("i don't exist"), (const char*)0);
+ FontMap &fm = FontMap::instance();
+ fm.read(fname);
+ const FontMap::Entry *entry;
+ ASSERT_TRUE((entry = fm.lookup("MyriadPro-Bold-8t")) != 0);
+ EXPECT_EQ(entry->fontname, "MyriadPro-Bold");
+ EXPECT_EQ(entry->encname, "my-lf-t1");
+ ASSERT_TRUE((entry = fm.lookup("cmbsy8")) != 0);
+ EXPECT_EQ(entry->fontname, "cmbsy7");
+ EXPECT_EQ(entry->encname, "");
- EXPECT_EQ(strcmp(fm.encoding("MyriadPro-Bold-8t"), "my-lf-t1"), 0);
- EXPECT_EQ(fm.encoding("cmbsy8"), (const char*)0);
+ // entry without mapped name
+ EXPECT_TRUE(fm.lookup("msam10") == 0);
+ EXPECT_TRUE(fm.lookup("msbm10") == 0);
+ EXPECT_TRUE(fm.lookup("msbm10") == 0);
+ EXPECT_TRUE(fm.lookup("i don't exist") == 0);
}
}
@@ -47,17 +51,20 @@ TEST(FontMapTest, ps_map) {
const char *fname = "tests/dvips_test.map";
ifstream ifs(fname);
if (ifs) {
- FontMap fm(fname);
- EXPECT_EQ(strcmp(fm.lookup("MyriadPro-Bold-8t"), "MyriadPro-Bold"), 0);
- EXPECT_EQ(strcmp(fm.lookup("cmbsy8"), "cmbsy7"), 0);
- // entry without mapped name
- EXPECT_EQ(fm.lookup("msam10"), (const char*)0);
- EXPECT_EQ(fm.lookup("msbm10"), (const char*)0);
- EXPECT_EQ(fm.lookup("msbm10"), (const char*)0);
- EXPECT_EQ(fm.lookup("i don't exist"), (const char*)0);
-
- EXPECT_EQ(strcmp(fm.encoding("MyriadPro-Bold-8t"), "my-lf-t1"), 0);
- EXPECT_EQ(fm.encoding("cmbsy8"), (const char*)0);
+ FontMap &fm = FontMap::instance();
+ fm.read(fname);
+ const FontMap::Entry *entry;
+ ASSERT_TRUE((entry = fm.lookup("MyriadPro-Bold-8t")) != 0);
+ EXPECT_EQ(entry->fontname, "MyriadPro-Bold");
+ EXPECT_EQ(entry->encname, "my-lf-t1");
+ ASSERT_TRUE((entry = fm.lookup("cmbsy8")) != 0);
+ EXPECT_EQ(entry->fontname, "cmbsy7");
+ EXPECT_EQ(entry->encname, "");
+ // entry without mapped name
+ EXPECT_TRUE(fm.lookup("msam10") == 0);
+ EXPECT_TRUE(fm.lookup("msbm10") == 0);
+ EXPECT_TRUE(fm.lookup("msbm10") == 0);
+ EXPECT_TRUE(fm.lookup("i don't exist") == 0);
}
}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/GFReaderTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/GFReaderTest.cpp
index a6e26435fb2..333eacfb7c4 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/GFReaderTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/GFReaderTest.cpp
@@ -2,7 +2,7 @@
** GFReaderTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -224,7 +224,7 @@ static void check_letter (const char **lettermap, const vector<string> &charmap)
TEST(GFReaderTest, executeChar) {
string gf = string(SRCDIR)+"/cmr10.600gf";
- ifstream ifs(gf.c_str());
+ ifstream ifs(gf.c_str(), ios::binary);
ASSERT_TRUE(ifs);
GFReader gfReader(ifs);
PixelActions actions;
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/GraphicPathTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/GraphicPathTest.cpp
index 4b5532f50e8..6df695604f2 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/GraphicPathTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/GraphicPathTest.cpp
@@ -2,7 +2,7 @@
** GraphicPathTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/LengthTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/LengthTest.cpp
index 26d54dd2f74..e6c7bbd5dac 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/LengthTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/LengthTest.cpp
@@ -2,7 +2,7 @@
** LengthTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/Makefile.am b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/Makefile.am
index 6a04bc4234e..8f528347c80 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/Makefile.am
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/Makefile.am
@@ -1,5 +1,5 @@
## This file is part of dvisvgm
-## Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de>
+## Copyright (C) 2005-2013 Martin Gieseking <martin.gieseking@uos.de>
##
## Process this file with automake.
@@ -13,11 +13,6 @@ check_PROGRAMS += BoundingBoxTest
BoundingBoxTest_SOURCES = BoundingBoxTest.cpp
BoundingBoxTest_LDADD = ../src/libdvisvgm.a ../potracelib/libpotrace.a -lgtest -lgtest_main -lpthread
-TESTS += CRC32Test
-check_PROGRAMS += CRC32Test
-CRC32Test_SOURCES = CRC32Test.cpp
-CRC32Test_LDADD = ../src/libdvisvgm.a ../potracelib/libpotrace.a -lgtest -lgtest_main -lpthread
-
TESTS += CalculatorTest
check_PROGRAMS += CalculatorTest
CalculatorTest_SOURCES = CalculatorTest.cpp
@@ -33,6 +28,11 @@ check_PROGRAMS += CommandLineTest
CommandLineTest_SOURCES = CommandLineTest.cpp
CommandLineTest_LDADD = ../src/libdvisvgm.a ../potracelib/libpotrace.a -lgtest -lgtest_main -lpthread
+TESTS += CRC32Test
+check_PROGRAMS += CRC32Test
+CRC32Test_SOURCES = CRC32Test.cpp
+CRC32Test_LDADD = ../src/libdvisvgm.a ../potracelib/libpotrace.a -lgtest -lgtest_main -lpthread
+
TESTS += DirectoryTest
check_PROGRAMS += DirectoryTest
DirectoryTest_SOURCES = DirectoryTest.cpp
@@ -78,6 +78,11 @@ check_PROGRAMS += LengthTest
LengthTest_SOURCES = LengthTest.cpp
LengthTest_LDADD = ../src/libdvisvgm.a ../potracelib/libpotrace.a -lgtest -lgtest_main -lpthread
+TESTS += MapLineTest
+check_PROGRAMS += MapLineTest
+MapLineTest_SOURCES = MapLineTest.cpp
+MapLineTest_LDADD = ../src/libdvisvgm.a ../potracelib/libpotrace.a -lgtest -lgtest_main -lpthread
+
TESTS += MatrixTest
check_PROGRAMS += MatrixTest
MatrixTest_SOURCES = MatrixTest.cpp
@@ -88,11 +93,6 @@ check_PROGRAMS += MessageExceptionTest
MessageExceptionTest_SOURCES = MessageExceptionTest.cpp
MessageExceptionTest_LDADD = ../src/libdvisvgm.a ../potracelib/libpotrace.a -lgtest -lgtest_main -lpthread
-TESTS += PSInterpreterTest
-check_PROGRAMS += PSInterpreterTest
-PSInterpreterTest_SOURCES = PSInterpreterTest.cpp
-PSInterpreterTest_LDADD = ../src/libdvisvgm.a ../potracelib/libpotrace.a -lgtest -lgtest_main -lpthread
-
TESTS += PageRagesTest
check_PROGRAMS += PageRagesTest
PageRagesTest_SOURCES = PageRagesTest.cpp
@@ -108,6 +108,11 @@ check_PROGRAMS += PairTest
PairTest_SOURCES = PairTest.cpp
PairTest_LDADD = ../src/libdvisvgm.a ../potracelib/libpotrace.a -lgtest -lgtest_main -lpthread
+TESTS += PSInterpreterTest
+check_PROGRAMS += PSInterpreterTest
+PSInterpreterTest_SOURCES = PSInterpreterTest.cpp
+PSInterpreterTest_LDADD = ../src/libdvisvgm.a ../potracelib/libpotrace.a -lgtest -lgtest_main -lpthread
+
TESTS += SplittedCharInputBufferTest
check_PROGRAMS += SplittedCharInputBufferTest
SplittedCharInputBufferTest_SOURCES = SplittedCharInputBufferTest.cpp
@@ -128,6 +133,11 @@ check_PROGRAMS += StreamWriterTest
StreamWriterTest_SOURCES = StreamWriterTest.cpp
StreamWriterTest_LDADD = ../src/libdvisvgm.a ../potracelib/libpotrace.a -lgtest -lgtest_main -lpthread
+TESTS += SubfontTest
+check_PROGRAMS += SubfontTest
+SubfontTest_SOURCES = SubfontTest.cpp
+SubfontTest_LDADD = ../src/libdvisvgm.a ../potracelib/libpotrace.a -lgtest -lgtest_main -lpthread
+
TESTS += TypesTest
check_PROGRAMS += TypesTest
TypesTest_SOURCES = TypesTest.cpp
@@ -140,6 +150,6 @@ VectorStreamTest_LDADD = ../src/libdvisvgm.a ../potracelib/libpotrace.a -lgtest
TESTDATA =
TESTDATA += frktest.dvi frktest-wf-cmp.svg frktest-nf-cmp.svg
-TESTDATA += sample.dvi sample-wf-cmp.svg sample-nf-cmp.svg
+TESTDATA += sample.dvi sample-wf-cmp.svg sample-nf-cmp.svg sample.sfd
EXTRA_DIST = check-conv normalize.xsl cmr10.600gf $(TESTDATA)
TESTS += check-conv
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/MapLineTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/MapLineTest.cpp
new file mode 100644
index 00000000000..0816a37a24c
--- /dev/null
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/MapLineTest.cpp
@@ -0,0 +1,129 @@
+/*************************************************************************
+** MapLineTest.cpp **
+** **
+** This file is part of dvisvgm -- the DVI to SVG converter **
+** Copyright (C) 2005-2012 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 <sstream>
+#include "FileFinder.h"
+#include "MapLine.h"
+#include "Subfont.h"
+
+using namespace std;
+
+
+class MapLineTest : public ::testing::Test
+{
+ protected:
+ void SetUp () {
+ FileFinder::init("MapLineTest", "MapLineTest", false);
+ }
+
+ void TearDown () {
+ FileFinder::finish();
+ }
+};
+
+
+TEST_F(MapLineTest, psline1) {
+ istringstream iss("texname0 TEXNAME0 <texname.pfb <encname.enc");
+ MapLine mapline(iss);
+ EXPECT_EQ(mapline.texname(), "texname0");
+ EXPECT_EQ(mapline.psname(), "TEXNAME0");
+ EXPECT_EQ(mapline.fontfname(), "texname.pfb");
+ EXPECT_EQ(mapline.encname(), "encname");
+ EXPECT_DOUBLE_EQ(mapline.slant(), 0);
+ EXPECT_DOUBLE_EQ(mapline.extend(), 1);
+ EXPECT_DOUBLE_EQ(mapline.bold(), 0);
+}
+
+TEST_F(MapLineTest, psline2) {
+ istringstream iss("texname0 TEXNAME0 \".123 SlantFont .456 ExtendFont\" <encname.enc <[texname.ttf");
+ MapLine mapline(iss);
+ EXPECT_EQ(mapline.texname(), "texname0");
+ EXPECT_EQ(mapline.psname(), "TEXNAME0");
+ EXPECT_EQ(mapline.fontfname(), "texname.ttf");
+ EXPECT_EQ(mapline.encname(), "encname");
+ EXPECT_DOUBLE_EQ(mapline.slant(), 0.123);
+ EXPECT_DOUBLE_EQ(mapline.extend(), 0.456);
+ EXPECT_DOUBLE_EQ(mapline.bold(), 0);
+}
+
+TEST_F(MapLineTest, psline3) {
+ istringstream iss("texname0 TEXNAME0 <encname.enc \".123 SlantFont IgnoreMe .456 ExtendFont\" <texname.ttf");
+ MapLine mapline(iss);
+ EXPECT_EQ(mapline.texname(), "texname0");
+ EXPECT_EQ(mapline.psname(), "TEXNAME0");
+ EXPECT_EQ(mapline.fontfname(), "texname.ttf");
+ EXPECT_EQ(mapline.encname(), "encname");
+ EXPECT_DOUBLE_EQ(mapline.slant(), 0.123);
+ EXPECT_DOUBLE_EQ(mapline.extend(), 0.456);
+ EXPECT_DOUBLE_EQ(mapline.bold(), 0);
+}
+
+TEST_F(MapLineTest, pdfline1) {
+ istringstream iss("texname");
+ MapLine mapline(iss);
+ EXPECT_EQ(mapline.texname(), "texname");
+ EXPECT_EQ(mapline.psname(), "");
+ EXPECT_EQ(mapline.encname(), "");
+ EXPECT_EQ(mapline.fontfname(), "");
+}
+
+TEST_F(MapLineTest, pdfline2) {
+ istringstream iss("gbk unicode simsun.ttc");
+ MapLine mapline(iss);
+ EXPECT_EQ(mapline.texname(), "gbk");
+ EXPECT_EQ(mapline.psname(), "");
+ EXPECT_EQ(mapline.encname(), "unicode");
+ EXPECT_EQ(mapline.fontfname(), "simsun.ttc");
+ EXPECT_EQ(mapline.fontindex(), 0);
+ EXPECT_TRUE(mapline.sfd() == 0);
+ EXPECT_EQ(mapline.fontindex(), 0);
+ EXPECT_DOUBLE_EQ(mapline.slant(), 0);
+ EXPECT_DOUBLE_EQ(mapline.extend(), 1);
+}
+
+TEST_F(MapLineTest, pdfline3) {
+ istringstream iss("gbk@UGBK@10 unicode simsun.ttc -v 50 -r -s .123 -b 1 -e 0.456");
+ MapLine mapline(iss);
+ EXPECT_EQ(mapline.texname(), "gbk10");
+ EXPECT_EQ(mapline.psname(), "");
+ EXPECT_EQ(mapline.encname(), "unicode");
+ EXPECT_EQ(mapline.fontfname(), "simsun.ttc");
+ ASSERT_TRUE(mapline.sfd() != 0);
+ EXPECT_EQ(mapline.sfd()->name(), "UGBK");
+ EXPECT_EQ(mapline.fontindex(), 0);
+ EXPECT_DOUBLE_EQ(mapline.slant(), 0.123);
+ EXPECT_DOUBLE_EQ(mapline.extend(), 0.456);
+ EXPECT_DOUBLE_EQ(mapline.bold(), 1);
+}
+
+TEST_F(MapLineTest, pdfline4) {
+ istringstream iss("gbk@UGBK@ default :1:!simsun.ttc/UCS,Bold -e.345");
+ MapLine mapline(iss);
+ EXPECT_EQ(mapline.texname(), "gbk");
+ EXPECT_EQ(mapline.psname(), "");
+ EXPECT_EQ(mapline.encname(), ""); // encodings "default" and "none" are replaced with ""
+ EXPECT_EQ(mapline.fontfname(), "simsun.ttc");
+ ASSERT_TRUE(mapline.sfd() != 0);
+ EXPECT_EQ(mapline.sfd()->name(), "UGBK");
+ EXPECT_EQ(mapline.fontindex(), 1);
+ EXPECT_DOUBLE_EQ(mapline.slant(), 0);
+ EXPECT_DOUBLE_EQ(mapline.extend(), 0.345);
+}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/MatrixTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/MatrixTest.cpp
index 94c52d24c5a..f01878900e1 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/MatrixTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/MatrixTest.cpp
@@ -2,7 +2,7 @@
** MatrixTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/MessageExceptionTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/MessageExceptionTest.cpp
index f23c843c672..14d6ed94978 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/MessageExceptionTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/MessageExceptionTest.cpp
@@ -2,7 +2,7 @@
** BoundingBoxTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/PSInterpreterTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/PSInterpreterTest.cpp
index 3dfb79641fa..799124d477d 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/PSInterpreterTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/PSInterpreterTest.cpp
@@ -2,7 +2,7 @@
** PSInterpreterTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/PageRagesTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/PageRagesTest.cpp
index 6ec10ec7ce6..ec0da0dfb28 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/PageRagesTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/PageRagesTest.cpp
@@ -2,7 +2,7 @@
** PageRagesTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/PageSizeTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/PageSizeTest.cpp
index 4267ca89e27..cb0bf778f9a 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/PageSizeTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/PageSizeTest.cpp
@@ -2,7 +2,7 @@
** PageSizeTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/PairTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/PairTest.cpp
index e792fa47261..68157243f43 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/PairTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/PairTest.cpp
@@ -2,7 +2,7 @@
** PairTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/SplittedCharInputBufferTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/SplittedCharInputBufferTest.cpp
index da60a270ba4..ff35f1c265c 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/SplittedCharInputBufferTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/SplittedCharInputBufferTest.cpp
@@ -2,7 +2,7 @@
** SplittedCharInputBufferTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/StreamInputBufferTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/StreamInputBufferTest.cpp
index 88c6edc92fc..8a1fbd103c2 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/StreamInputBufferTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/StreamInputBufferTest.cpp
@@ -2,7 +2,7 @@
** StreamInputBufferTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
@@ -205,3 +205,26 @@ TEST(StreamInputBufferTest, invalidate) {
buffer.invalidate();
EXPECT_TRUE(buffer.eof());
}
+
+
+TEST(StreamInputBufferTest, find) {
+ istringstream iss("abcd efgh ijklmn abc");
+ StreamInputBuffer buffer(iss);
+ BufferInputReader reader(buffer);
+ EXPECT_EQ(reader.find('x'), -1);
+ EXPECT_EQ(reader.find('c'), 2);
+ EXPECT_EQ(reader.find(' '), 4);
+}
+
+
+TEST(StreamInputBufferTest, getString) {
+ istringstream iss("abcd efgh \"ijklm\"n abcdef 01234");
+ StreamInputBuffer buffer(iss);
+ BufferInputReader reader(buffer);
+ EXPECT_EQ(reader.getString(), "abcd");
+ EXPECT_EQ(reader.getString(), "efgh");
+ EXPECT_EQ(reader.getQuotedString('"'), "ijklm");
+ EXPECT_EQ(reader.getQuotedString('"'), "");
+ EXPECT_EQ(reader.getString(4), "n ab");
+ EXPECT_EQ(reader.getQuotedString(0), "cdef");
+}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/StreamReaderTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/StreamReaderTest.cpp
index eb6bfb895dd..ba294a87201 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/StreamReaderTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/StreamReaderTest.cpp
@@ -2,7 +2,7 @@
** StreamReaderTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/StreamWriterTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/StreamWriterTest.cpp
index 996ac8eab79..0e142c205fa 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/StreamWriterTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/StreamWriterTest.cpp
@@ -2,7 +2,7 @@
** StreamWriterTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/SubfontTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/SubfontTest.cpp
new file mode 100644
index 00000000000..de93aafcbaf
--- /dev/null
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/SubfontTest.cpp
@@ -0,0 +1,96 @@
+/*************************************************************************
+** SubfontTest.cpp **
+** **
+** This file is part of dvisvgm -- the DVI to SVG converter **
+** Copyright (C) 2005-2012 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 "FileFinder.h"
+#include "Subfont.h"
+
+using namespace std;
+
+
+class SubfontTest : public ::testing::Test
+{
+ protected:
+ void SetUp () {
+ FileFinder::init("SubfontTest", "SubfontTest", false);
+ }
+
+ void TearDown () {
+ FileFinder::finish();
+ }
+};
+
+
+TEST_F(SubfontTest, collect_subfonts) {
+ try {
+ if (SubfontDefinition *sfd = SubfontDefinition::lookup("sample")) {
+ vector<Subfont*> subfonts;
+ const char *ids_cmp[] = {"00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "x1"};
+ int size = sizeof(ids_cmp)/sizeof(Subfont*);
+ EXPECT_EQ(sfd->subfonts(subfonts), size);
+ for (int i=0; i < size; i++) {
+ EXPECT_EQ(subfonts[i]->id(), ids_cmp[i]);
+ }
+ }
+ }
+ catch (SubfontException &e) {
+ FAIL() << e.what();
+ }
+}
+
+
+TEST_F(SubfontTest, read_table) {
+ try {
+ if (SubfontDefinition *sfd = SubfontDefinition::lookup("sample")) {
+ // check scanning of single value entries
+ Subfont *subfont = sfd->subfont("02");
+ ASSERT_TRUE(subfont != 0);
+ EXPECT_EQ(subfont->id(), "02");
+ EXPECT_EQ(subfont->decode(0), 0xff45);
+ EXPECT_EQ(subfont->decode(1), 0xff46);
+ EXPECT_EQ(subfont->decode(2), 0xff47);
+ EXPECT_EQ(subfont->decode(8), 0xff4d);
+ EXPECT_EQ(subfont->decode(32), 0x3047);
+ EXPECT_EQ(subfont->decode(255), 0x03ba);
+
+ // check scanning of ranges
+ subfont = sfd->subfont("x1");
+ ASSERT_TRUE(subfont != 0);
+ EXPECT_EQ(subfont->id(), "x1");
+ EXPECT_EQ(subfont->decode(0), 0x0010);
+ EXPECT_EQ(subfont->decode(1), 0x0011);
+ EXPECT_EQ(subfont->decode(2), 0x0012);
+ EXPECT_EQ(subfont->decode(0x20), 0x0030);
+ EXPECT_EQ(subfont->decode(0x21), 0x1010);
+ EXPECT_EQ(subfont->decode(0x41), 0x1030);
+ EXPECT_EQ(subfont->decode(0x42), 0xe000);
+ EXPECT_EQ(subfont->decode(0x43), 0);
+
+ //check scanning of offset values
+ EXPECT_EQ(subfont->decode(0x9f), 0);
+ EXPECT_EQ(subfont->decode(0xa0), 0x1000);
+ EXPECT_EQ(subfont->decode(0xa1), 0x2000);
+ EXPECT_EQ(subfont->decode(0xa2), 0);
+ }
+ }
+ catch (SubfontException &e) {
+ FAIL() << e.what() << " in line " << e.lineno();
+ }
+}
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/TypesTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/TypesTest.cpp
index 70c09558444..11cb44fc191 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/TypesTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/TypesTest.cpp
@@ -2,7 +2,7 @@
** TypesTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/VectorStreamTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/VectorStreamTest.cpp
index 69015959294..2d5d0b0bc3e 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/VectorStreamTest.cpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/VectorStreamTest.cpp
@@ -2,7 +2,7 @@
** VectorStreamTest.cpp **
** **
** This file is part of dvisvgm -- the DVI to SVG converter **
-** Copyright (C) 2005-2012 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2013 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 **
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/check-conv b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/check-conv
index 9aeda3a2d74..9aeda3a2d74 100755
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/check-conv
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/check-conv
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/cmr10.600gf b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/cmr10.600gf
index 6dca421e21c..6dca421e21c 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/cmr10.600gf
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/cmr10.600gf
Binary files differ
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/frktest-nf-cmp.svg b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/frktest-nf-cmp.svg
index 372662c6b95..372662c6b95 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/frktest-nf-cmp.svg
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/frktest-nf-cmp.svg
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/frktest-wf-cmp.svg b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/frktest-wf-cmp.svg
index b8effca34a5..b8effca34a5 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/frktest-wf-cmp.svg
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/frktest-wf-cmp.svg
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/frktest.dvi b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/frktest.dvi
index 723b08a2964..723b08a2964 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/frktest.dvi
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/frktest.dvi
Binary files differ
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/normalize.xsl b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/normalize.xsl
index 5a6ba2f62d6..5a6ba2f62d6 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/normalize.xsl
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/normalize.xsl
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/sample-nf-cmp.svg b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/sample-nf-cmp.svg
index b448e6caa8a..b448e6caa8a 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/sample-nf-cmp.svg
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/sample-nf-cmp.svg
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/sample-wf-cmp.svg b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/sample-wf-cmp.svg
index d597c134c9a..d597c134c9a 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/sample-wf-cmp.svg
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/sample-wf-cmp.svg
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/sample.dvi b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/sample.dvi
index 87e6236021d..87e6236021d 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-1.0.12/tests/sample.dvi
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/sample.dvi
Binary files differ
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/sample.sfd b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/sample.sfd
new file mode 100644
index 00000000000..e7c84c7b5e1
--- /dev/null
+++ b/Build/source/texk/dvisvgm/dvisvgm-1.1/tests/sample.sfd
@@ -0,0 +1,293 @@
+00 0x0000_0x00FF
+01 0x3000 0x3001 0x3002 0x00B7 0x02C9 0x02C7 0x00A8 0x3003 \
+ 0x3005 0x2014 0xFF5E 0x2016 0x2026 0x2018 0x2019 0x201C \
+ 0x201D 0x3014 0x3015 0x3008 0x3009 0x300A 0x300B 0x300C \
+ 0x300D 0x300E 0x300F 0x3016 0x3017 0x3010 0x3011 0x00B1 \
+ 0x00D7 0x00F7 0x2236 0x2227 0x2228 0x2211 0x220F 0x222A \
+ 0x2229 0x2208 0x2237 0x221A 0x22A5 0x2225 0x2220 0x2312 \
+ 0x2299 0x222B 0x222E 0x2261 0x224C 0x2248 0x223D 0x221D \
+ 0x2260 0x226E 0x226F 0x2264 0x2265 0x221E 0x2235 0x2234 \
+ 0x2642 0x2640 0x00B0 0x2032 0x2033 0x2103 0xFF04 0x00A4 \
+ 0xFFE0 0xFFE1 0x2030 0x00A7 0x2116 0x2606 0x2605 0x25CB \
+ 0x25CF 0x25CE 0x25C7 0x25C6 0x25A1 0x25A0 0x25B3 0x25B2 \
+ 0x203B 0x2192 0x2190 0x2191 0x2193 0x3013 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0x2488 0x2489 \
+ 0x248A 0x248B 0x248C 0x248D 0x248E 0x248F 0x2490 0x2491 \
+ 0x2492 0x2493 0x2494 0x2495 0x2496 0x2497 0x2498 0x2499 \
+ 0x249A 0x249B 0x2474 0x2475 0x2476 0x2477 0x2478 0x2479 \
+ 0x247A 0x247B 0x247C 0x247D 0x247E 0x247F 0x2480 0x2481 \
+ 0x2482 0x2483 0x2484 0x2485 0x2486 0x2487 0x2460 0x2461 \
+ 0x2462 0x2463 0x2464 0x2465 0x2466 0x2467 0x2468 0x2469 \
+ 0xFFFE 0xFFFE 0x3220 0x3221 0x3222 0x3223 0x3224 0x3225 \
+ 0x3226 0x3227 0x3228 0x3229 0xFFFE 0xFFFE 0x2160 0x2161 \
+ 0x2162 0x2163 0x2164 0x2165 0x2166 0x2167 0x2168 0x2169 \
+ 0x216A 0x216B 0xFFFE 0xFFFE 0xFF01 0xFF02 0xFF03 0xFFE5 \
+ 0xFF05 0xFF06 0xFF07 0xFF08 0xFF09 0xFF0A 0xFF0B 0xFF0C \
+ 0xFF0D 0xFF0E 0xFF0F 0xFF10 0xFF11 0xFF12 0xFF13 0xFF14 \
+ 0xFF15 0xFF16 0xFF17 0xFF18 0xFF19 0xFF1A 0xFF1B 0xFF1C \
+ 0xFF1D 0xFF1E 0xFF1F 0xFF20 0xFF21 0xFF22 0xFF23 0xFF24 \
+ 0xFF25 0xFF26 0xFF27 0xFF28 0xFF29 0xFF2A 0xFF2B 0xFF2C \
+ 0xFF2D 0xFF2E 0xFF2F 0xFF30 0xFF31 0xFF32 0xFF33 0xFF34 \
+ 0xFF35 0xFF36 0xFF37 0xFF38 0xFF39 0xFF3A 0xFF3B 0xFF3C \
+ 0xFF3D 0xFF3E 0xFF3F 0xFF40 0xFF41 0xFF42 0xFF43 0xFF44
+02 0xFF45 0xFF46 0xFF47 0xFF48 0xFF49 0xFF4A 0xFF4B 0xFF4C \
+ 0xFF4D 0xFF4E 0xFF4F 0xFF50 0xFF51 0xFF52 0xFF53 0xFF54 \
+ 0xFF55 0xFF56 0xFF57 0xFF58 0xFF59 0xFF5A 0xFF5B 0xFF5C \
+ 0xFF5D 0xFFE3 0x3041 0x3042 0x3043 0x3044 0x3045 0x3046 \
+ 0x3047 0x3048 0x3049 0x304A 0x304B 0x304C 0x304D 0x304E \
+ 0x304F 0x3050 0x3051 0x3052 0x3053 0x3054 0x3055 0x3056 \
+ 0x3057 0x3058 0x3059 0x305A 0x305B 0x305C 0x305D 0x305E \
+ 0x305F 0x3060 0x3061 0x3062 0x3063 0x3064 0x3065 0x3066 \
+ 0x3067 0x3068 0x3069 0x306A 0x306B 0x306C 0x306D 0x306E \
+ 0x306F 0x3070 0x3071 0x3072 0x3073 0x3074 0x3075 0x3076 \
+ 0x3077 0x3078 0x3079 0x307A 0x307B 0x307C 0x307D 0x307E \
+ 0x307F 0x3080 0x3081 0x3082 0x3083 0x3084 0x3085 0x3086 \
+ 0x3087 0x3088 0x3089 0x308A 0x308B 0x308C 0x308D 0x308E \
+ 0x308F 0x3090 0x3091 0x3092 0x3093 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0x30A1 0x30A2 0x30A3 0x30A4 0x30A5 0x30A6 0x30A7 0x30A8 \
+ 0x30A9 0x30AA 0x30AB 0x30AC 0x30AD 0x30AE 0x30AF 0x30B0 \
+ 0x30B1 0x30B2 0x30B3 0x30B4 0x30B5 0x30B6 0x30B7 0x30B8 \
+ 0x30B9 0x30BA 0x30BB 0x30BC 0x30BD 0x30BE 0x30BF 0x30C0 \
+ 0x30C1 0x30C2 0x30C3 0x30C4 0x30C5 0x30C6 0x30C7 0x30C8 \
+ 0x30C9 0x30CA 0x30CB 0x30CC 0x30CD 0x30CE 0x30CF 0x30D0 \
+ 0x30D1 0x30D2 0x30D3 0x30D4 0x30D5 0x30D6 0x30D7 0x30D8 \
+ 0x30D9 0x30DA 0x30DB 0x30DC 0x30DD 0x30DE 0x30DF 0x30E0 \
+ 0x30E1 0x30E2 0x30E3 0x30E4 0x30E5 0x30E6 0x30E7 0x30E8 \
+ 0x30E9 0x30EA 0x30EB 0x30EC 0x30ED 0x30EE 0x30EF 0x30F0 \
+ 0x30F1 0x30F2 0x30F3 0x30F4 0x30F5 0x30F6 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0x0391 0x0392 \
+ 0x0393 0x0394 0x0395 0x0396 0x0397 0x0398 0x0399 0x039A \
+ 0x039B 0x039C 0x039D 0x039E 0x039F 0x03A0 0x03A1 0x03A3 \
+ 0x03A4 0x03A5 0x03A6 0x03A7 0x03A8 0x03A9 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0x03B1 0x03B2 \
+ 0x03B3 0x03B4 0x03B5 0x03B6 0x03B7 0x03B8 0x03B9 0x03BA
+03 0x03BB 0x03BC 0x03BD 0x03BE 0x03BF 0x03C0 0x03C1 0x03C3 \
+ 0x03C4 0x03C5 0x03C6 0x03C7 0x03C8 0x03C9 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0x0410 0x0411 0x0412 0x0413 \
+ 0x0414 0x0415 0x0401 0x0416 0x0417 0x0418 0x0419 0x041A \
+ 0x041B 0x041C 0x041D 0x041E 0x041F 0x0420 0x0421 0x0422 \
+ 0x0423 0x0424 0x0425 0x0426 0x0427 0x0428 0x0429 0x042A \
+ 0x042B 0x042C 0x042D 0x042E 0x042F 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0x0430 0x0431 0x0432 0x0433 \
+ 0x0434 0x0435 0x0451 0x0436 0x0437 0x0438 0x0439 0x043A \
+ 0x043B 0x043C 0x043D 0x043E 0x043F 0x0440 0x0441 0x0442 \
+ 0x0443 0x0444 0x0445 0x0446 0x0447 0x0448 0x0449 0x044A \
+ 0x044B 0x044C 0x044D 0x044E 0x044F 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0x0101 0x00E1 0x01CE 0x00E0 0x0113 0x00E9 \
+ 0x011B 0x00E8 0x012B 0x00ED 0x01D0 0x00EC 0x014D 0x00F3 \
+ 0x01D2 0x00F2 0x016B 0x00FA 0x01D4 0x00F9 0x01D6 0x01D8 \
+ 0x01DA 0x01DC 0x00FC 0x00EA 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0x3105 0x3106 \
+ 0x3107 0x3108 0x3109 0x310A 0x310B 0x310C 0x310D 0x310E \
+ 0x310F 0x3110 0x3111 0x3112 0x3113 0x3114 0x3115 0x3116 \
+ 0x3117 0x3118 0x3119 0x311A 0x311B 0x311C 0x311D 0x311E \
+ 0x311F 0x3120 0x3121 0x3122 0x3123 0x3124 0x3125 0x3126 \
+ 0x3127 0x3128 0x3129 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0x2500 0x2501 0x2502 0x2503 0x2504 \
+ 0x2505 0x2506 0x2507 0x2508 0x2509 0x250A 0x250B 0x250C
+04 0x250D 0x250E 0x250F 0x2510 0x2511 0x2512 0x2513 0x2514 \
+ 0x2515 0x2516 0x2517 0x2518 0x2519 0x251A 0x251B 0x251C \
+ 0x251D 0x251E 0x251F 0x2520 0x2521 0x2522 0x2523 0x2524 \
+ 0x2525 0x2526 0x2527 0x2528 0x2529 0x252A 0x252B 0x252C \
+ 0x252D 0x252E 0x252F 0x2530 0x2531 0x2532 0x2533 0x2534 \
+ 0x2535 0x2536 0x2537 0x2538 0x2539 0x253A 0x253B 0x253C \
+ 0x253D 0x253E 0x253F 0x2540 0x2541 0x2542 0x2543 0x2544 \
+ 0x2545 0x2546 0x2547 0x2548 0x2549 0x254A 0x254B 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE
+05 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE
+06 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE 0xFFFE \
+ 0xFFFE 0xFFFE 0x554A 0x963F 0x57C3 0x6328 0x54CE 0x5509 \
+ 0x54C0 0x7691 0x764C 0x853C 0x77EE 0x827E 0x788D 0x7231 \
+ 0x9698 0x978D 0x6C28 0x5B89 0x4FFA 0x6309 0x6697 0x5CB8 \
+ 0x80FA 0x6848 0x80AE 0x6602 0x76CE 0x51F9 0x6556 0x71AC \
+ 0x7FF1 0x8884 0x50B2 0x5965 0x61CA 0x6FB3 0x82AD 0x634C \
+ 0x6252 0x53ED 0x5427 0x7B06 0x516B 0x75A4 0x5DF4 0x62D4 \
+ 0x8DCB 0x9776 0x628A 0x8019 0x575D 0x9738 0x7F62 0x7238 \
+ 0x767D 0x67CF 0x767E 0x6446 0x4F70 0x8D25 0x62DC 0x7A17 \
+ 0x6591 0x73ED 0x642C 0x6273 0x822C 0x9881 0x677F 0x7248 \
+ 0x626E 0x62CC 0x4F34 0x74E3 0x534A 0x529E 0x7ECA 0x90A6 \
+ 0x5E2E 0x6886 0x699C 0x8180 0x7ED1 0x68D2 0x78C5 0x868C \
+ 0x9551 0x508D 0x8C24 0x82DE 0x80DE 0x5305 0x8912 0x5265 \
+ 0x8584 0x96F9 0x4FDD 0x5821 0x9971 0x5B9D 0x62B1 0x62A5 \
+ 0x66B4 0x8C79 0x9C8D 0x7206 0x676F 0x7891 0x60B2 0x5351 \
+ 0x5317 0x8F88 0x80CC 0x8D1D 0x94A1 0x500D 0x72C8 0x5907 \
+ 0x60EB 0x7119 0x88AB 0x5954 0x82EF 0x672C 0x7B28 0x5D29
+07 0x7EF7 0x752D 0x6CF5 0x8E66 0x8FF8 0x903C 0x9F3B 0x6BD4 \
+ 0x9119 0x7B14 0x5F7C 0x78A7 0x84D6 0x853D 0x6BD5 0x6BD9 \
+ 0x6BD6 0x5E01 0x5E87 0x75F9 0x95ED 0x655D 0x5F0A 0x5FC5 \
+ 0x8F9F 0x58C1 0x81C2 0x907F 0x965B 0x97AD 0x8FB9 0x7F16 \
+ 0x8D2C 0x6241 0x4FBF 0x53D8 0x535E 0x8FA8 0x8FA9 0x8FAB \
+ 0x904D 0x6807 0x5F6A 0x8198 0x8868 0x9CD6 0x618B 0x522B \
+ 0x762A 0x5F6C 0x658C 0x6FD2 0x6EE8 0x5BBE 0x6448 0x5175 \
+ 0x51B0 0x67C4 0x4E19 0x79C9 0x997C 0x70B3 0x75C5 0x5E76 \
+ 0x73BB 0x83E0 0x64AD 0x62E8 0x94B5 0x6CE2 0x535A 0x52C3 \
+ 0x640F 0x94C2 0x7B94 0x4F2F 0x5E1B 0x8236 0x8116 0x818A \
+ 0x6E24 0x6CCA 0x9A73 0x6355 0x535C 0x54FA 0x8865 0x57E0 \
+ 0x4E0D 0x5E03 0x6B65 0x7C3F 0x90E8 0x6016 0x64E6 0x731C \
+ 0x88C1 0x6750 0x624D 0x8D22 0x776C 0x8E29 0x91C7 0x5F69 \
+ 0x83DC 0x8521 0x9910 0x53C2 0x8695 0x6B8B 0x60ED 0x60E8 \
+ 0x707F 0x82CD 0x8231 0x4ED3 0x6CA7 0x85CF 0x64CD 0x7CD9 \
+ 0x69FD 0x66F9 0x8349 0x5395 0x7B56 0x4FA7 0x518C 0x6D4B \
+ 0x5C42 0x8E6D 0x63D2 0x53C9 0x832C 0x8336 0x67E5 0x78B4 \
+ 0x643D 0x5BDF 0x5C94 0x5DEE 0x8BE7 0x62C6 0x67F4 0x8C7A \
+ 0x6400 0x63BA 0x8749 0x998B 0x8C17 0x7F20 0x94F2 0x4EA7 \
+ 0x9610 0x98A4 0x660C 0x7316 0x573A 0x5C1D 0x5E38 0x957F \
+ 0x507F 0x80A0 0x5382 0x655E 0x7545 0x5531 0x5021 0x8D85 \
+ 0x6284 0x949E 0x671D 0x5632 0x6F6E 0x5DE2 0x5435 0x7092 \
+ 0x8F66 0x626F 0x64A4 0x63A3 0x5F7B 0x6F88 0x90F4 0x81E3 \
+ 0x8FB0 0x5C18 0x6668 0x5FF1 0x6C89 0x9648 0x8D81 0x886C \
+ 0x6491 0x79F0 0x57CE 0x6A59 0x6210 0x5448 0x4E58 0x7A0B \
+ 0x60E9 0x6F84 0x8BDA 0x627F 0x901E 0x9A8B 0x79E4 0x5403 \
+ 0x75F4 0x6301 0x5319 0x6C60 0x8FDF 0x5F1B 0x9A70 0x803B \
+ 0x9F7F 0x4F88 0x5C3A 0x8D64 0x7FC5 0x65A5 0x70BD 0x5145 \
+ 0x51B2 0x866B 0x5D07 0x5BA0 0x62BD 0x916C 0x7574 0x8E0C \
+ 0x7A20 0x6101 0x7B79 0x4EC7 0x7EF8 0x7785 0x4E11 0x81ED \
+ 0x521D 0x51FA 0x6A71 0x53A8 0x8E87 0x9504 0x96CF 0x6EC1 \
+ 0x9664 0x695A 0x7840 0x50A8 0x77D7 0x6410 0x89E6 0x5904
+08 0x63E3 0x5DDD 0x7A7F 0x693D 0x4F20 0x8239 0x5598 0x4E32 \
+ 0x75AE 0x7A97 0x5E62 0x5E8A 0x95EF 0x521B 0x5439 0x708A \
+ 0x6376 0x9524 0x5782 0x6625 0x693F 0x9187 0x5507 0x6DF3 \
+ 0x7EAF 0x8822 0x6233 0x7EF0 0x75B5 0x8328 0x78C1 0x96CC \
+ 0x8F9E 0x6148 0x74F7 0x8BCD 0x6B64 0x523A 0x8D50 0x6B21 \
+ 0x806A 0x8471 0x56F1 0x5306 0x4ECE 0x4E1B 0x51D1 0x7C97 \
+ 0x918B 0x7C07 0x4FC3 0x8E7F 0x7BE1 0x7A9C 0x6467 0x5D14 \
+ 0x50AC 0x8106 0x7601 0x7CB9 0x6DEC 0x7FE0 0x6751 0x5B58 \
+ 0x5BF8 0x78CB 0x64AE 0x6413 0x63AA 0x632B 0x9519 0x642D \
+ 0x8FBE 0x7B54 0x7629 0x6253 0x5927 0x5446 0x6B79 0x50A3 \
+ 0x6234 0x5E26 0x6B86 0x4EE3 0x8D37 0x888B 0x5F85 0x902E \
+ 0x6020 0x803D 0x62C5 0x4E39 0x5355 0x90F8 0x63B8 0x80C6 \
+ 0x65E6 0x6C2E 0x4F46 0x60EE 0x6DE1 0x8BDE 0x5F39 0x86CB \
+ 0x5F53 0x6321 0x515A 0x8361 0x6863 0x5200 0x6363 0x8E48 \
+ 0x5012 0x5C9B 0x7977 0x5BFC 0x5230 0x7A3B 0x60BC 0x9053 \
+ 0x76D7 0x5FB7 0x5F97 0x7684 0x8E6C 0x706F 0x767B 0x7B49 \
+ 0x77AA 0x51F3 0x9093 0x5824 0x4F4E 0x6EF4 0x8FEA 0x654C \
+ 0x7B1B 0x72C4 0x6DA4 0x7FDF 0x5AE1 0x62B5 0x5E95 0x5730 \
+ 0x8482 0x7B2C 0x5E1D 0x5F1F 0x9012 0x7F14 0x98A0 0x6382 \
+ 0x6EC7 0x7898 0x70B9 0x5178 0x975B 0x57AB 0x7535 0x4F43 \
+ 0x7538 0x5E97 0x60E6 0x5960 0x6DC0 0x6BBF 0x7889 0x53FC \
+ 0x96D5 0x51CB 0x5201 0x6389 0x540A 0x9493 0x8C03 0x8DCC \
+ 0x7239 0x789F 0x8776 0x8FED 0x8C0D 0x53E0 0x4E01 0x76EF \
+ 0x53EE 0x9489 0x9876 0x9F0E 0x952D 0x5B9A 0x8BA2 0x4E22 \
+ 0x4E1C 0x51AC 0x8463 0x61C2 0x52A8 0x680B 0x4F97 0x606B \
+ 0x51BB 0x6D1E 0x515C 0x6296 0x6597 0x9661 0x8C46 0x9017 \
+ 0x75D8 0x90FD 0x7763 0x6BD2 0x728A 0x72EC 0x8BFB 0x5835 \
+ 0x7779 0x8D4C 0x675C 0x9540 0x809A 0x5EA6 0x6E21 0x5992 \
+ 0x7AEF 0x77ED 0x953B 0x6BB5 0x65AD 0x7F0E 0x5806 0x5151 \
+ 0x961F 0x5BF9 0x58A9 0x5428 0x8E72 0x6566 0x987F 0x56E4 \
+ 0x949D 0x76FE 0x9041 0x6387 0x54C6 0x591A 0x593A 0x579B \
+ 0x8EB2 0x6735 0x8DFA 0x8235 0x5241 0x60F0 0x5815 0x86FE
+09 0x5CE8 0x9E45 0x4FC4 0x989D 0x8BB9 0x5A25 0x6076 0x5384 \
+ 0x627C 0x904F 0x9102 0x997F 0x6069 0x800C 0x513F 0x8033 \
+ 0x5C14 0x9975 0x6D31 0x4E8C 0x8D30 0x53D1 0x7F5A 0x7B4F \
+ 0x4F10 0x4E4F 0x9600 0x6CD5 0x73D0 0x85E9 0x5E06 0x756A \
+ 0x7FFB 0x6A0A 0x77FE 0x9492 0x7E41 0x51E1 0x70E6 0x53CD \
+ 0x8FD4 0x8303 0x8D29 0x72AF 0x996D 0x6CDB 0x574A 0x82B3 \
+ 0x65B9 0x80AA 0x623F 0x9632 0x59A8 0x4EFF 0x8BBF 0x7EBA \
+ 0x653E 0x83F2 0x975E 0x5561 0x98DE 0x80A5 0x532A 0x8BFD \
+ 0x5420 0x80BA 0x5E9F 0x6CB8 0x8D39 0x82AC 0x915A 0x5429 \
+ 0x6C1B 0x5206 0x7EB7 0x575F 0x711A 0x6C7E 0x7C89 0x594B \
+ 0x4EFD 0x5FFF 0x6124 0x7CAA 0x4E30 0x5C01 0x67AB 0x8702 \
+ 0x5CF0 0x950B 0x98CE 0x75AF 0x70FD 0x9022 0x51AF 0x7F1D \
+ 0x8BBD 0x5949 0x51E4 0x4F5B 0x5426 0x592B 0x6577 0x80A4 \
+ 0x5B75 0x6276 0x62C2 0x8F90 0x5E45 0x6C1F 0x7B26 0x4F0F \
+ 0x4FD8 0x670D 0x6D6E 0x6DAA 0x798F 0x88B1 0x5F17 0x752B \
+ 0x629A 0x8F85 0x4FEF 0x91DC 0x65A7 0x812F 0x8151 0x5E9C \
+ 0x8150 0x8D74 0x526F 0x8986 0x8D4B 0x590D 0x5085 0x4ED8 \
+ 0x961C 0x7236 0x8179 0x8D1F 0x5BCC 0x8BA3 0x9644 0x5987 \
+ 0x7F1A 0x5490 0x5676 0x560E 0x8BE5 0x6539 0x6982 0x9499 \
+ 0x76D6 0x6E89 0x5E72 0x7518 0x6746 0x67D1 0x7AFF 0x809D \
+ 0x8D76 0x611F 0x79C6 0x6562 0x8D63 0x5188 0x521A 0x94A2 \
+ 0x7F38 0x809B 0x7EB2 0x5C97 0x6E2F 0x6760 0x7BD9 0x768B \
+ 0x9AD8 0x818F 0x7F94 0x7CD5 0x641E 0x9550 0x7A3F 0x544A \
+ 0x54E5 0x6B4C 0x6401 0x6208 0x9E3D 0x80F3 0x7599 0x5272 \
+ 0x9769 0x845B 0x683C 0x86E4 0x9601 0x9694 0x94EC 0x4E2A \
+ 0x5404 0x7ED9 0x6839 0x8DDF 0x8015 0x66F4 0x5E9A 0x7FB9 \
+ 0x57C2 0x803F 0x6897 0x5DE5 0x653B 0x529F 0x606D 0x9F9A \
+ 0x4F9B 0x8EAC 0x516C 0x5BAB 0x5F13 0x5DE9 0x6C5E 0x62F1 \
+ 0x8D21 0x5171 0x94A9 0x52FE 0x6C9F 0x82DF 0x72D7 0x57A2 \
+ 0x6784 0x8D2D 0x591F 0x8F9C 0x83C7 0x5495 0x7B8D 0x4F30 \
+ 0x6CBD 0x5B64 0x59D1 0x9F13 0x53E4 0x86CA 0x9AA8 0x8C37 \
+ 0x80A1 0x6545 0x987E 0x56FA 0x96C7 0x522E 0x74DC 0x5250
+x1 0x0010_0x0030 0x1010_0x1030 0xe000 \
+ 0xA0: 0x1000 0x2000
+
+# eof
diff --git a/Build/source/texk/dvisvgm/version.ac b/Build/source/texk/dvisvgm/version.ac
index 04cd65ef4df..285a8cbd248 100644
--- a/Build/source/texk/dvisvgm/version.ac
+++ b/Build/source/texk/dvisvgm/version.ac
@@ -1,5 +1,5 @@
dnl
-dnl Copyright (C) 2011, 2012 Peter Breitenlohner <tex-live@tug.org>
+dnl Copyright (C) 2011-2013 Peter Breitenlohner <tex-live@tug.org>
dnl
dnl This file is free software; the copyright holder
dnl gives unlimited permission to copy and/or distribute it,
@@ -8,4 +8,4 @@ dnl
dnl --------------------------------------------------------
dnl
dnl m4-include this file to define the current dvisvgm version
-m4_define([dvisvgm_version], [1.0.12])
+m4_define([dvisvgm_version], [1.1])