From 8ba2cf02688200d56e4fe0839a451ef832ce15b6 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 31 Aug 2018 23:11:41 +0000 Subject: dvisvgm 2.5, including potrace now bundled with dvisvgm instead of under libs/ git-svn-id: svn://tug.org/texlive/trunk@48527 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/Makefile.in | 3 - Build/source/aclocal.m4 | 1 - Build/source/configure | 87 - Build/source/doc/Makefile.in | 3 - Build/source/libs/ChangeLog | 4 + Build/source/libs/Makefile.in | 2 - Build/source/libs/README | 3 - Build/source/libs/aclocal.m4 | 1 - Build/source/libs/configure | 42 - Build/source/libs/potrace/ChangeLog | 54 - Build/source/libs/potrace/Makefile.am | 62 - Build/source/libs/potrace/Makefile.in | 1357 ---- Build/source/libs/potrace/TLpatches/ChangeLog | 24 - Build/source/libs/potrace/TLpatches/TL-Changes | 22 - Build/source/libs/potrace/ac/potrace.ac | 11 - Build/source/libs/potrace/ac/withenable.ac | 7 - Build/source/libs/potrace/aclocal.m4 | 1173 --- Build/source/libs/potrace/config.h.in | 70 - Build/source/libs/potrace/configure | 6664 ---------------- Build/source/libs/potrace/configure.ac | 42 - Build/source/libs/potrace/include/Makefile.am | 15 - Build/source/libs/potrace/include/Makefile.in | 424 -- Build/source/libs/potrace/potrace-src/AUTHORS | 11 - Build/source/libs/potrace/potrace-src/ChangeLog | 422 -- Build/source/libs/potrace/potrace-src/Makefile.am | 11 - Build/source/libs/potrace/potrace-src/NEWS | 148 - Build/source/libs/potrace/potrace-src/README | 215 - Build/source/libs/potrace/potrace-src/README-WIN | 49 - Build/source/libs/potrace/potrace-src/config.h.in | 109 - Build/source/libs/potrace/potrace-src/configure.ac | 285 - .../libs/potrace/potrace-src/src/Makefile.am | 59 - .../libs/potrace/potrace-src/src/auxiliary.h | 80 - .../libs/potrace/potrace-src/src/backend_dxf.c | 278 - .../libs/potrace/potrace-src/src/backend_dxf.h | 15 - .../libs/potrace/potrace-src/src/backend_eps.c | 863 --- .../libs/potrace/potrace-src/src/backend_eps.h | 19 - .../libs/potrace/potrace-src/src/backend_geojson.c | 223 - .../libs/potrace/potrace-src/src/backend_geojson.h | 15 - .../libs/potrace/potrace-src/src/backend_pdf.c | 441 -- .../libs/potrace/potrace-src/src/backend_pdf.h | 20 - .../libs/potrace/potrace-src/src/backend_pgm.c | 106 - .../libs/potrace/potrace-src/src/backend_pgm.h | 16 - .../libs/potrace/potrace-src/src/backend_svg.c | 342 - .../libs/potrace/potrace-src/src/backend_svg.h | 16 - .../libs/potrace/potrace-src/src/backend_xfig.c | 252 - .../libs/potrace/potrace-src/src/backend_xfig.h | 15 - Build/source/libs/potrace/potrace-src/src/bbox.c | 154 - Build/source/libs/potrace/potrace-src/src/bbox.h | 18 - Build/source/libs/potrace/potrace-src/src/bitmap.h | 228 - .../libs/potrace/potrace-src/src/bitmap_io.c | 880 --- .../libs/potrace/potrace-src/src/bitmap_io.h | 23 - Build/source/libs/potrace/potrace-src/src/bitops.h | 83 - Build/source/libs/potrace/potrace-src/src/curve.c | 112 - Build/source/libs/potrace/potrace-src/src/curve.h | 77 - .../libs/potrace/potrace-src/src/decompose.c | 521 -- .../libs/potrace/potrace-src/src/decompose.h | 16 - Build/source/libs/potrace/potrace-src/src/flate.c | 380 - Build/source/libs/potrace/potrace-src/src/flate.h | 15 - Build/source/libs/potrace/potrace-src/src/getopt.c | 1041 --- .../source/libs/potrace/potrace-src/src/getopt1.c | 168 - .../source/libs/potrace/potrace-src/src/greymap.c | 1084 --- .../source/libs/potrace/potrace-src/src/greymap.h | 65 - .../potrace-src/src/include/getopt/getopt.h | 180 - .../potrace/potrace-src/src/libpotrace-export.sym | 5 - Build/source/libs/potrace/potrace-src/src/lists.h | 285 - Build/source/libs/potrace/potrace-src/src/lzw.c | 415 - Build/source/libs/potrace/potrace-src/src/lzw.h | 50 - Build/source/libs/potrace/potrace-src/src/main.c | 1274 ---- Build/source/libs/potrace/potrace-src/src/main.h | 109 - .../source/libs/potrace/potrace-src/src/mkbitmap.c | 802 -- .../source/libs/potrace/potrace-src/src/platform.h | 38 - .../libs/potrace/potrace-src/src/potracelib.c | 114 - .../libs/potrace/potrace-src/src/potracelib.h | 139 - .../libs/potrace/potrace-src/src/potracelib_demo.c | 148 - .../source/libs/potrace/potrace-src/src/progress.h | 79 - .../libs/potrace/potrace-src/src/progress_bar.c | 207 - .../libs/potrace/potrace-src/src/progress_bar.h | 26 - Build/source/libs/potrace/potrace-src/src/render.c | 245 - Build/source/libs/potrace/potrace-src/src/render.h | 27 - Build/source/libs/potrace/potrace-src/src/trace.c | 1249 --- Build/source/libs/potrace/potrace-src/src/trace.h | 15 - Build/source/libs/potrace/potrace-src/src/trans.c | 127 - Build/source/libs/potrace/potrace-src/src/trans.h | 36 - Build/source/libs/potrace/potrace.test | 8 - Build/source/libs/potrace/potracetst.c | 14 - Build/source/libs/potrace/version.ac | 11 - Build/source/m4/ChangeLog | 6 + Build/source/m4/kpse-pkgs.m4 | 2 - Build/source/m4/kpse-potrace-flags.m4 | 27 - Build/source/texk/Makefile.in | 2 - Build/source/texk/aclocal.m4 | 1 - Build/source/texk/configure | 38 - Build/source/texk/dvisvgm/ChangeLog | 9 + Build/source/texk/dvisvgm/Makefile.in | 7 +- Build/source/texk/dvisvgm/TLpatches/ChangeLog | 5 +- Build/source/texk/dvisvgm/TLpatches/TL-Changes | 5 +- .../texk/dvisvgm/TLpatches/patch-08-makefiles | 71 +- Build/source/texk/dvisvgm/aclocal.m4 | 1 - Build/source/texk/dvisvgm/config.h.in | 31 +- Build/source/texk/dvisvgm/configure | 439 +- Build/source/texk/dvisvgm/configure.ac | 55 +- Build/source/texk/dvisvgm/dvisvgm-src/AUTHORS | 9 +- Build/source/texk/dvisvgm/dvisvgm-src/ChangeLog | 7916 -------------------- Build/source/texk/dvisvgm/dvisvgm-src/Makefile.am | 4 + Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in | 12 +- Build/source/texk/dvisvgm/dvisvgm-src/NEWS | 2 +- Build/source/texk/dvisvgm/dvisvgm-src/README | 12 +- Build/source/texk/dvisvgm/dvisvgm-src/config.h.in | 6 + Build/source/texk/dvisvgm/dvisvgm-src/configure.ac | 31 +- .../texk/dvisvgm/dvisvgm-src/doc/Makefile.in | 14 +- .../source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1 | 27 +- .../texk/dvisvgm/dvisvgm-src/doc/dvisvgm.txt.in | 18 +- .../texk/dvisvgm/dvisvgm-src/libs/Makefile.am | 2 +- .../texk/dvisvgm/dvisvgm-src/libs/Makefile.in | 11 +- .../dvisvgm/dvisvgm-src/libs/brotli/Makefile.am | 5 +- .../dvisvgm/dvisvgm-src/libs/brotli/Makefile.in | 224 +- .../dvisvgm/dvisvgm-src/libs/clipper/Makefile.in | 7 +- .../dvisvgm/dvisvgm-src/libs/ff-woff/Makefile.in | 7 +- .../dvisvgm/dvisvgm-src/libs/potrace/Makefile.am | 23 + .../dvisvgm/dvisvgm-src/libs/potrace/Makefile.in | 669 ++ .../dvisvgm/dvisvgm-src/libs/potrace/auxiliary.h | 80 + .../texk/dvisvgm/dvisvgm-src/libs/potrace/bitmap.h | 228 + .../texk/dvisvgm/dvisvgm-src/libs/potrace/config.h | 5 + .../texk/dvisvgm/dvisvgm-src/libs/potrace/curve.c | 112 + .../texk/dvisvgm/dvisvgm-src/libs/potrace/curve.h | 77 + .../dvisvgm/dvisvgm-src/libs/potrace/decompose.c | 521 ++ .../dvisvgm/dvisvgm-src/libs/potrace/decompose.h | 16 + .../texk/dvisvgm/dvisvgm-src/libs/potrace/lists.h | 285 + .../dvisvgm/dvisvgm-src/libs/potrace/potracelib.c | 114 + .../dvisvgm/dvisvgm-src/libs/potrace/potracelib.h | 139 + .../dvisvgm/dvisvgm-src/libs/potrace/progress.h | 79 + .../texk/dvisvgm/dvisvgm-src/libs/potrace/trace.c | 1249 +++ .../texk/dvisvgm/dvisvgm-src/libs/potrace/trace.h | 15 + .../dvisvgm/dvisvgm-src/libs/variant/Makefile.in | 7 +- .../dvisvgm/dvisvgm-src/libs/woff2/Makefile.am | 5 +- .../dvisvgm/dvisvgm-src/libs/woff2/Makefile.in | 90 +- .../dvisvgm/dvisvgm-src/libs/xxHash/Makefile.am | 3 + .../dvisvgm/dvisvgm-src/libs/xxHash/Makefile.in | 22 +- .../dvisvgm/dvisvgm-src/src/BasicDVIReader.hpp | 13 +- .../texk/dvisvgm/dvisvgm-src/src/BoundingBox.cpp | 2 + .../texk/dvisvgm/dvisvgm-src/src/DVIToSVG.cpp | 26 +- .../texk/dvisvgm/dvisvgm-src/src/DVIToSVG.hpp | 3 +- .../dvisvgm/dvisvgm-src/src/DVIToSVGActions.cpp | 3 +- .../dvisvgm/dvisvgm-src/src/DVIToSVGActions.hpp | 2 +- .../texk/dvisvgm/dvisvgm-src/src/EPSToSVG.hpp | 4 + .../texk/dvisvgm/dvisvgm-src/src/FileFinder.cpp | 3 - .../texk/dvisvgm/dvisvgm-src/src/FilePath.cpp | 17 +- .../texk/dvisvgm/dvisvgm-src/src/FilePath.hpp | 3 +- .../texk/dvisvgm/dvisvgm-src/src/Ghostscript.cpp | 28 +- .../texk/dvisvgm/dvisvgm-src/src/ImageToSVG.cpp | 100 +- .../texk/dvisvgm/dvisvgm-src/src/ImageToSVG.hpp | 18 +- .../source/texk/dvisvgm/dvisvgm-src/src/Length.cpp | 16 + .../source/texk/dvisvgm/dvisvgm-src/src/Length.hpp | 6 +- .../texk/dvisvgm/dvisvgm-src/src/Makefile.am | 44 +- .../texk/dvisvgm/dvisvgm-src/src/Makefile.in | 83 +- .../texk/dvisvgm/dvisvgm-src/src/PDFToSVG.hpp | 16 + .../texk/dvisvgm/dvisvgm-src/src/PSInterpreter.cpp | 30 +- .../texk/dvisvgm/dvisvgm-src/src/PSInterpreter.hpp | 4 +- .../dvisvgm/dvisvgm-src/src/PsSpecialHandler.cpp | 30 +- .../dvisvgm/dvisvgm-src/src/PsSpecialHandler.hpp | 5 +- .../texk/dvisvgm/dvisvgm-src/src/SourceInput.cpp | 25 +- .../dvisvgm/dvisvgm-src/src/SpecialActions.hpp | 3 +- .../texk/dvisvgm/dvisvgm-src/src/dvisvgm.cpp | 37 +- .../source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp | 8 +- .../texk/dvisvgm/dvisvgm-src/src/version.hpp | 2 +- .../dvisvgm/dvisvgm-src/tests/CalculatorTest.cpp | 17 +- .../texk/dvisvgm/dvisvgm-src/tests/LengthTest.cpp | 18 +- .../texk/dvisvgm/dvisvgm-src/tests/Makefile.am | 25 +- .../texk/dvisvgm/dvisvgm-src/tests/Makefile.in | 167 +- .../dvisvgm-src/tests/PSInterpreterTest.cpp | 1 - .../dvisvgm/dvisvgm-src/tests/data/Makefile.in | 14 +- Build/source/texk/dvisvgm/version.ac | 2 +- Build/source/utils/Makefile.in | 2 - Build/source/utils/aclocal.m4 | 1 - Build/source/utils/configure | 38 - 175 files changed, 4643 insertions(+), 33467 deletions(-) delete mode 100644 Build/source/libs/potrace/ChangeLog delete mode 100644 Build/source/libs/potrace/Makefile.am delete mode 100644 Build/source/libs/potrace/Makefile.in delete mode 100644 Build/source/libs/potrace/TLpatches/ChangeLog delete mode 100644 Build/source/libs/potrace/TLpatches/TL-Changes delete mode 100644 Build/source/libs/potrace/ac/potrace.ac delete mode 100644 Build/source/libs/potrace/ac/withenable.ac delete mode 100644 Build/source/libs/potrace/aclocal.m4 delete mode 100644 Build/source/libs/potrace/config.h.in delete mode 100755 Build/source/libs/potrace/configure delete mode 100644 Build/source/libs/potrace/configure.ac delete mode 100644 Build/source/libs/potrace/include/Makefile.am delete mode 100644 Build/source/libs/potrace/include/Makefile.in delete mode 100644 Build/source/libs/potrace/potrace-src/AUTHORS delete mode 100644 Build/source/libs/potrace/potrace-src/ChangeLog delete mode 100644 Build/source/libs/potrace/potrace-src/Makefile.am delete mode 100644 Build/source/libs/potrace/potrace-src/NEWS delete mode 100644 Build/source/libs/potrace/potrace-src/README delete mode 100644 Build/source/libs/potrace/potrace-src/README-WIN delete mode 100644 Build/source/libs/potrace/potrace-src/config.h.in delete mode 100644 Build/source/libs/potrace/potrace-src/configure.ac delete mode 100644 Build/source/libs/potrace/potrace-src/src/Makefile.am delete mode 100644 Build/source/libs/potrace/potrace-src/src/auxiliary.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/backend_dxf.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/backend_dxf.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/backend_eps.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/backend_eps.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/backend_geojson.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/backend_geojson.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/backend_pdf.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/backend_pdf.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/backend_pgm.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/backend_pgm.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/backend_svg.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/backend_svg.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/backend_xfig.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/backend_xfig.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/bbox.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/bbox.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/bitmap.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/bitmap_io.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/bitmap_io.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/bitops.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/curve.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/curve.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/decompose.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/decompose.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/flate.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/flate.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/getopt.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/getopt1.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/greymap.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/greymap.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/include/getopt/getopt.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/libpotrace-export.sym delete mode 100644 Build/source/libs/potrace/potrace-src/src/lists.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/lzw.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/lzw.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/main.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/main.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/mkbitmap.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/platform.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/potracelib.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/potracelib.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/potracelib_demo.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/progress.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/progress_bar.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/progress_bar.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/render.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/render.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/trace.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/trace.h delete mode 100644 Build/source/libs/potrace/potrace-src/src/trans.c delete mode 100644 Build/source/libs/potrace/potrace-src/src/trans.h delete mode 100755 Build/source/libs/potrace/potrace.test delete mode 100644 Build/source/libs/potrace/potracetst.c delete mode 100644 Build/source/libs/potrace/version.ac delete mode 100644 Build/source/m4/kpse-potrace-flags.m4 delete mode 100644 Build/source/texk/dvisvgm/dvisvgm-src/ChangeLog create mode 100644 Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/Makefile.am create mode 100644 Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/Makefile.in create mode 100644 Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/auxiliary.h create mode 100644 Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/bitmap.h create mode 100644 Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/config.h create mode 100644 Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/curve.c create mode 100644 Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/curve.h create mode 100644 Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/decompose.c create mode 100644 Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/decompose.h create mode 100644 Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/lists.h create mode 100644 Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/potracelib.c create mode 100644 Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/potracelib.h create mode 100644 Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/progress.h create mode 100644 Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/trace.c create mode 100644 Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/trace.h diff --git a/Build/source/Makefile.in b/Build/source/Makefile.in index ec206c0def3..8741478db06 100644 --- a/Build/source/Makefile.in +++ b/Build/source/Makefile.in @@ -108,7 +108,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/kpse-cairo-flags.m4 \ $(top_srcdir)/m4/kpse-pixman-flags.m4 \ $(top_srcdir)/m4/kpse-pkgs.m4 \ $(top_srcdir)/m4/kpse-poppler-flags.m4 \ - $(top_srcdir)/m4/kpse-potrace-flags.m4 \ $(top_srcdir)/m4/kpse-ptexenc-flags.m4 \ $(top_srcdir)/m4/kpse-setup.m4 \ $(top_srcdir)/m4/kpse-teckit-flags.m4 \ @@ -184,7 +183,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/kpse-cairo-flags.m4 \ $(top_srcdir)/libs/gmp/ac/withenable.ac \ $(top_srcdir)/libs/cairo/ac/withenable.ac \ $(top_srcdir)/libs/pixman/ac/withenable.ac \ - $(top_srcdir)/libs/potrace/ac/withenable.ac \ $(top_srcdir)/libs/gd/ac/withenable.ac \ $(top_srcdir)/libs/freetype2/ac/withenable.ac \ $(top_srcdir)/libs/libpng/ac/withenable.ac \ @@ -203,7 +201,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/kpse-cairo-flags.m4 \ $(top_srcdir)/libs/libpng/ac/libpng.ac \ $(top_srcdir)/libs/freetype2/ac/freetype2.ac \ $(top_srcdir)/libs/gd/ac/gd.ac \ - $(top_srcdir)/libs/potrace/ac/potrace.ac \ $(top_srcdir)/libs/pixman/ac/pixman.ac \ $(top_srcdir)/libs/cairo/ac/cairo.ac \ $(top_srcdir)/libs/gmp/ac/gmp.ac \ diff --git a/Build/source/aclocal.m4 b/Build/source/aclocal.m4 index 1fd1e2a1a70..c7cf47e0474 100644 --- a/Build/source/aclocal.m4 +++ b/Build/source/aclocal.m4 @@ -1188,7 +1188,6 @@ m4_include([m4/kpse-options.m4]) m4_include([m4/kpse-pixman-flags.m4]) m4_include([m4/kpse-pkgs.m4]) m4_include([m4/kpse-poppler-flags.m4]) -m4_include([m4/kpse-potrace-flags.m4]) m4_include([m4/kpse-ptexenc-flags.m4]) m4_include([m4/kpse-setup.m4]) m4_include([m4/kpse-teckit-flags.m4]) diff --git a/Build/source/configure b/Build/source/configure index 413c8be4b04..a0576290d83 100755 --- a/Build/source/configure +++ b/Build/source/configure @@ -911,9 +911,6 @@ with_gmp_includes with_gmp_libdir with_system_cairo with_system_pixman -with_system_potrace -with_potrace_includes -with_potrace_libdir with_system_gd with_gd_includes with_gd_libdir @@ -1775,11 +1772,6 @@ Optional Packages: pkg-config) --with-system-pixman use installed pixman headers and library (requires pkg-config) - --with-system-potrace use installed potrace headers and library - --with-potrace-includes=DIR - potrace headers installed in DIR - --with-potrace-libdir=DIR - potrace library installed in DIR --with-system-gd use installed gd headers and library --with-gd-includes=DIR gd headers installed in DIR --with-gd-libdir=DIR gd library installed in DIR @@ -6164,46 +6156,6 @@ $as_echo "$as_me: Using \`pixman' headers and library from TL tree" >&6;} fi fi -## libs/potrace/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/potrace/ -## configure options and TL libraries required for potrace - -# Check whether --with-system-potrace was given. -if test "${with_system_potrace+set}" = set; then : - withval=$with_system_potrace; -fi - -# Check whether --with-potrace-includes was given. -if test "${with_potrace_includes+set}" = set; then : - withval=$with_potrace_includes; -fi - -# Check whether --with-potrace-libdir was given. -if test "${with_potrace_libdir+set}" = set; then : - withval=$with_potrace_libdir; -fi -if test "x$with_system_potrace" = x; then - if test -f $srcdir/libs/potrace/configure; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Assuming \`potrace' headers and library from TL tree" >&5 -$as_echo "$as_me: Assuming \`potrace' headers and library from TL tree" >&6;} - with_system_potrace=no - else - { $as_echo "$as_me:${as_lineno-$LINENO}: Assuming installed \`potrace' headers and library" >&5 -$as_echo "$as_me: Assuming installed \`potrace' headers and library" >&6;} - with_system_potrace=yes - fi - ac_configure_args="$ac_configure_args '--with-system-potrace=$with_system_potrace'" -elif test "x$with_system_potrace" = xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Using installed \`potrace' headers and library" >&5 -$as_echo "$as_me: Using installed \`potrace' headers and library" >&6;} -else - { $as_echo "$as_me:${as_lineno-$LINENO}: Using \`potrace' headers and library from TL tree" >&5 -$as_echo "$as_me: Using \`potrace' headers and library from TL tree" >&6;} - if test "x$with_system_potrace" != xno; then - with_system_potrace=no - ac_configure_args="$ac_configure_args '--without-system-potrace'" - fi -fi - ## libs/gd/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/gd/ ## configure options and TL libraries required for gd @@ -21376,14 +21328,6 @@ if test "x$with_gd_libdir" != x && test "x$with_gd_libdir" != xyes; then GD_LIBS="-L$with_gd_libdir $GD_LIBS" fi -if test "x$with_potrace_includes" != x && test "x$with_potrace_includes" != xyes; then - POTRACE_INCLUDES="-I$with_potrace_includes" -fi -POTRACE_LIBS="-lpotrace" -if test "x$with_potrace_libdir" != x && test "x$with_potrace_libdir" != xyes; then - POTRACE_LIBS="-L$with_potrace_libdir $POTRACE_LIBS" -fi - if $PKG_CONFIG pixman-1 --atleast-version=0.18; then PIXMAN_INCLUDES=`$PKG_CONFIG pixman-1 --cflags` PIXMAN_LIBS=`$PKG_CONFIG pixman-1 --libs` @@ -21870,37 +21814,6 @@ rm -f core conftest.err conftest.$ac_objext \ $as_echo "$kpse_res" >&6; } fi -## libs/potrace/ac/potrace.ac: configure.ac fragment for the TeX Live subdirectory libs/potrace/ -## basic check of system potrace -if test "x$need_potrace:$with_system_potrace" = xyes:yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking requested system \`potrace' library" >&5 -$as_echo_n "checking requested system \`potrace' library... " >&6; } - CPPFLAGS="$POTRACE_INCLUDES $CPPFLAGS" - LIBS="$POTRACE_LIBS $LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -potrace_state_t st; -const char *version = potrace_version(); -potrace_state_free(&st); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - syslib_used=yes kpse_res=ok -else - syslib_status=no kpse_res=failed -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_res" >&5 -$as_echo "$kpse_res" >&6; } -fi - ## libs/pixman/ac/pixman.ac: configure.ac fragment for the TeX Live subdirectory libs/pixman/ ## basic check of system pixman if test "x$need_pixman:$with_system_pixman" = xyes:yes; then diff --git a/Build/source/doc/Makefile.in b/Build/source/doc/Makefile.in index 1685f507236..1abfaaf45bb 100644 --- a/Build/source/doc/Makefile.in +++ b/Build/source/doc/Makefile.in @@ -108,7 +108,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/kpse-cairo-flags.m4 \ $(top_srcdir)/m4/kpse-pixman-flags.m4 \ $(top_srcdir)/m4/kpse-pkgs.m4 \ $(top_srcdir)/m4/kpse-poppler-flags.m4 \ - $(top_srcdir)/m4/kpse-potrace-flags.m4 \ $(top_srcdir)/m4/kpse-ptexenc-flags.m4 \ $(top_srcdir)/m4/kpse-setup.m4 \ $(top_srcdir)/m4/kpse-teckit-flags.m4 \ @@ -184,7 +183,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/kpse-cairo-flags.m4 \ $(top_srcdir)/libs/gmp/ac/withenable.ac \ $(top_srcdir)/libs/cairo/ac/withenable.ac \ $(top_srcdir)/libs/pixman/ac/withenable.ac \ - $(top_srcdir)/libs/potrace/ac/withenable.ac \ $(top_srcdir)/libs/gd/ac/withenable.ac \ $(top_srcdir)/libs/freetype2/ac/withenable.ac \ $(top_srcdir)/libs/libpng/ac/withenable.ac \ @@ -203,7 +201,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/kpse-cairo-flags.m4 \ $(top_srcdir)/libs/libpng/ac/libpng.ac \ $(top_srcdir)/libs/freetype2/ac/freetype2.ac \ $(top_srcdir)/libs/gd/ac/gd.ac \ - $(top_srcdir)/libs/potrace/ac/potrace.ac \ $(top_srcdir)/libs/pixman/ac/pixman.ac \ $(top_srcdir)/libs/cairo/ac/cairo.ac \ $(top_srcdir)/libs/gmp/ac/gmp.ac \ diff --git a/Build/source/libs/ChangeLog b/Build/source/libs/ChangeLog index d49a9e359d9..9ab1dc8a95d 100644 --- a/Build/source/libs/ChangeLog +++ b/Build/source/libs/ChangeLog @@ -1,3 +1,7 @@ +2018-08-30 Karl Berry + + * potrace: remove, now bundled with dvisvgm (its only user). + 2015-02-16 Peter Breitenlohner * Makefile.am: Use the fragment ../am/dist_hook.am. diff --git a/Build/source/libs/Makefile.in b/Build/source/libs/Makefile.in index 28896e7c4d9..d40513cd212 100644 --- a/Build/source/libs/Makefile.in +++ b/Build/source/libs/Makefile.in @@ -108,7 +108,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../m4/kpse-cairo-flags.m4 \ $(top_srcdir)/../m4/kpse-pixman-flags.m4 \ $(top_srcdir)/../m4/kpse-pkgs.m4 \ $(top_srcdir)/../m4/kpse-poppler-flags.m4 \ - $(top_srcdir)/../m4/kpse-potrace-flags.m4 \ $(top_srcdir)/../m4/kpse-ptexenc-flags.m4 \ $(top_srcdir)/../m4/kpse-setup.m4 \ $(top_srcdir)/../m4/kpse-teckit-flags.m4 \ @@ -182,7 +181,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../m4/kpse-cairo-flags.m4 \ $(top_srcdir)/../libs/gmp/ac/withenable.ac \ $(top_srcdir)/../libs/cairo/ac/withenable.ac \ $(top_srcdir)/../libs/pixman/ac/withenable.ac \ - $(top_srcdir)/../libs/potrace/ac/withenable.ac \ $(top_srcdir)/../libs/gd/ac/withenable.ac \ $(top_srcdir)/../libs/freetype2/ac/withenable.ac \ $(top_srcdir)/../libs/libpng/ac/withenable.ac \ diff --git a/Build/source/libs/README b/Build/source/libs/README index 24ae054bda6..8abfd4a15dd 100644 --- a/Build/source/libs/README +++ b/Build/source/libs/README @@ -53,9 +53,6 @@ poppler 0.68.0 - checked 20aug18 http://poppler.freedesktop.org/ - used by luatex and xetex (requires C++11) -potrace 1.15 - checked 07aug17 - http://potrace.sourceforge.net - teckit 2.5.8 - checked 24jul18 https://github.com/silnrsi/teckit/archive/2.5.8.tar.gz diff --git a/Build/source/libs/aclocal.m4 b/Build/source/libs/aclocal.m4 index 2386b91a58b..dae4686cafd 100644 --- a/Build/source/libs/aclocal.m4 +++ b/Build/source/libs/aclocal.m4 @@ -1188,7 +1188,6 @@ m4_include([../m4/kpse-options.m4]) m4_include([../m4/kpse-pixman-flags.m4]) m4_include([../m4/kpse-pkgs.m4]) m4_include([../m4/kpse-poppler-flags.m4]) -m4_include([../m4/kpse-potrace-flags.m4]) m4_include([../m4/kpse-ptexenc-flags.m4]) m4_include([../m4/kpse-setup.m4]) m4_include([../m4/kpse-teckit-flags.m4]) diff --git a/Build/source/libs/configure b/Build/source/libs/configure index 1b52af91567..10051f841a5 100755 --- a/Build/source/libs/configure +++ b/Build/source/libs/configure @@ -820,9 +820,6 @@ with_gmp_includes with_gmp_libdir with_system_cairo with_system_pixman -with_system_potrace -with_potrace_includes -with_potrace_libdir with_system_gd with_gd_includes with_gd_libdir @@ -1656,11 +1653,6 @@ Optional Packages: pkg-config) --with-system-pixman use installed pixman headers and library (requires pkg-config) - --with-system-potrace use installed potrace headers and library - --with-potrace-includes=DIR - potrace headers installed in DIR - --with-potrace-libdir=DIR - potrace library installed in DIR --with-system-gd use installed gd headers and library --with-gd-includes=DIR gd headers installed in DIR --with-gd-libdir=DIR gd library installed in DIR @@ -5234,36 +5226,6 @@ $as_echo "$as_me: Assuming installed \`pixman' headers and library" >&6;} ac_configure_args="$ac_configure_args '--with-system-pixman=$with_system_pixman'" fi -## libs/potrace/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/potrace/ -## configure options and TL libraries required for potrace - -# Check whether --with-system-potrace was given. -if test "${with_system_potrace+set}" = set; then : - withval=$with_system_potrace; -fi - -# Check whether --with-potrace-includes was given. -if test "${with_potrace_includes+set}" = set; then : - withval=$with_potrace_includes; -fi - -# Check whether --with-potrace-libdir was given. -if test "${with_potrace_libdir+set}" = set; then : - withval=$with_potrace_libdir; -fi -if test "x$with_system_potrace" = x; then - if test -f $srcdir/../libs/potrace/configure; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Assuming \`potrace' headers and library from TL tree" >&5 -$as_echo "$as_me: Assuming \`potrace' headers and library from TL tree" >&6;} - with_system_potrace=no - else - { $as_echo "$as_me:${as_lineno-$LINENO}: Assuming installed \`potrace' headers and library" >&5 -$as_echo "$as_me: Assuming installed \`potrace' headers and library" >&6;} - with_system_potrace=yes - fi - ac_configure_args="$ac_configure_args '--with-system-potrace=$with_system_potrace'" -fi - ## libs/gd/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/gd/ ## configure options and TL libraries required for gd @@ -6486,10 +6448,6 @@ if test -x $srcdir/pixman/configure; then test "x$with_system_pixman" != xyes && test "x$need_pixman" = xyes && MAKE_SUBDIRS="pixman $MAKE_SUBDIRS" CONF_SUBDIRS="pixman $CONF_SUBDIRS" fi -if test -x $srcdir/potrace/configure; then - test "x$with_system_potrace" != xyes && test "x$need_potrace" = xyes && MAKE_SUBDIRS="potrace $MAKE_SUBDIRS" - CONF_SUBDIRS="potrace $CONF_SUBDIRS" -fi if test -x $srcdir/gd/configure; then test "x$with_system_gd" != xyes && test "x$need_gd" = xyes && MAKE_SUBDIRS="gd $MAKE_SUBDIRS" CONF_SUBDIRS="gd $CONF_SUBDIRS" diff --git a/Build/source/libs/potrace/ChangeLog b/Build/source/libs/potrace/ChangeLog deleted file mode 100644 index 91ca4d6e6f5..00000000000 --- a/Build/source/libs/potrace/ChangeLog +++ /dev/null @@ -1,54 +0,0 @@ -2017-08-08 Akira Kakuto - - * configure.ac: check uint64_t. - -2017-08-07 Akira Kakuto - - Import potrace-1.15. - * version.ac: Adjust. - -2017-02-22 Akira Kakuto - - Import potrace-1.14. - * version.ac: Adjust. - -2016-02-15 Karl Berry - - * potrace-PATCHES: rename from potrace-src-PATCHES. - * Makefile.am (EXTRA_DIST): likewise. - -2015-12-28 Akira Kakuto - - Import potrace-1.13. - * configure.ac: New source-tree-naming convention per Karl. - * version.ac: Adjust. - -2015-07-06 Peter Breitenlohner - - * Makefile.am: Better dependencies for 'make check'. - -2015-03-27 Peter Breitenlohner - - Import potrace-1.12. - * version.ac: Adjust. - -2015-02-16 Peter Breitenlohner - - * Makefile.am: Use the fragment ../../am/dist_hook.am. - -2014-06-16 Peter Breitenlohner - - * Makefile.am: Drop the obsolete ACLOCAL_AMFLAGS. - -2013-07-06 Peter Breitenlohner - - * Makefile.am: Use ../../am/rebuild.am. - -2013-07-05 Peter Breitenlohner - - * include/Makefile.am: Moved Makefile fragments to ../../am/. - -2013-04-12 Peter Breitenlohner - - Import potrace-1.11. - diff --git a/Build/source/libs/potrace/Makefile.am b/Build/source/libs/potrace/Makefile.am deleted file mode 100644 index 12298c669b8..00000000000 --- a/Build/source/libs/potrace/Makefile.am +++ /dev/null @@ -1,62 +0,0 @@ -## $Id$ -## Proxy Makefile.am to build potrace for TeX Live. -## -## Copyright 2016-2017 Karl Berry -## Copyright 2013-2015 Peter Breitenlohner -## -## This file is free software; the copyright holder -## gives unlimited permission to copy and/or distribute it, -## with or without modifications, as long as this notice is preserved. -## -## We want to re-distribute the whole original potrace source tree. -## -EXTRA_DIST = $(POTRACE_TREE) - -## Changes applied to the original source tree -## -EXTRA_DIST += TLpatches - -# Files not to be distributed -include $(srcdir)/../../am/dist_hook.am -NEVER_NAMES += $(NEVER_NAMES_SUB) - -SUBDIRS = . include - -AM_CPPFLAGS = -I$(top_srcdir)/$(POTRACE_TREE)/src - -noinst_LIBRARIES = libpotrace.a - -libpotrace_a_SOURCES = \ - @POTRACE_TREE@/src/auxiliary.h \ - @POTRACE_TREE@/src/bitmap.h \ - @POTRACE_TREE@/src/curve.c \ - @POTRACE_TREE@/src/curve.h \ - @POTRACE_TREE@/src/decompose.c \ - @POTRACE_TREE@/src/decompose.h \ - @POTRACE_TREE@/src/lists.h \ - @POTRACE_TREE@/src/potracelib.c \ - @POTRACE_TREE@/src/potracelib.h \ - @POTRACE_TREE@/src/progress.h \ - @POTRACE_TREE@/src/trace.c \ - @POTRACE_TREE@/src/trace.h - -if build -check_PROGRAMS = potracetst -dist_check_SCRIPTS = potrace.test -TESTS = potrace.test -endif build -potrace.log: potracetst$(EXEEXT) - -potracetst_SOURCES = potracetst.c - -potracetst_CPPFLAGS = -Iinclude - -LDADD = libpotrace.a - -# Rebuild -rebuild_prereq = -rebuild_target = all -CLEANFILES = - -include $(srcdir)/../../am/rebuild.am - diff --git a/Build/source/libs/potrace/Makefile.in b/Build/source/libs/potrace/Makefile.in deleted file mode 100644 index 9e3031d86cb..00000000000 --- a/Build/source/libs/potrace/Makefile.in +++ /dev/null @@ -1,1357 +0,0 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2018 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -@build_TRUE@check_PROGRAMS = potracetst$(EXEEXT) -subdir = . -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/../../m4/kpse-common.m4 \ - $(top_srcdir)/../../m4/kpse-warnings.m4 \ - $(top_srcdir)/version.ac $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ - $(am__configure_deps) $(am__dist_check_SCRIPTS_DIST) \ - $(am__DIST_COMMON) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno config.status.lineno -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -LIBRARIES = $(noinst_LIBRARIES) -AR = ar -ARFLAGS = cru -AM_V_AR = $(am__v_AR_@AM_V@) -am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) -am__v_AR_0 = @echo " AR " $@; -am__v_AR_1 = -libpotrace_a_AR = $(AR) $(ARFLAGS) -libpotrace_a_LIBADD = -am__dirstamp = $(am__leading_dot)dirstamp -am_libpotrace_a_OBJECTS = @POTRACE_TREE@/src/curve.$(OBJEXT) \ - @POTRACE_TREE@/src/decompose.$(OBJEXT) \ - @POTRACE_TREE@/src/potracelib.$(OBJEXT) \ - @POTRACE_TREE@/src/trace.$(OBJEXT) -libpotrace_a_OBJECTS = $(am_libpotrace_a_OBJECTS) -am_potracetst_OBJECTS = potracetst-potracetst.$(OBJEXT) -potracetst_OBJECTS = $(am_potracetst_OBJECTS) -potracetst_LDADD = $(LDADD) -potracetst_DEPENDENCIES = libpotrace.a -am__dist_check_SCRIPTS_DIST = potrace.test -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/potracetst-potracetst.Po \ - @POTRACE_TREE@/src/$(DEPDIR)/curve.Po \ - @POTRACE_TREE@/src/$(DEPDIR)/decompose.Po \ - @POTRACE_TREE@/src/$(DEPDIR)/potracelib.Po \ - @POTRACE_TREE@/src/$(DEPDIR)/trace.Po -am__mv = mv -f -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(libpotrace_a_SOURCES) $(potracetst_SOURCES) -DIST_SOURCES = $(libpotrace_a_SOURCES) $(potracetst_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - cscope check recheck distdir distdir-am dist dist-all \ - distcheck -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ - $(LISP)config.h.in -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -CSCOPE = cscope -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red=''; \ - grn=''; \ - lgn=''; \ - blu=''; \ - mgn=''; \ - brg=''; \ - std=''; \ - fi; \ -} -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -RECHECK_LOGS = $(TEST_LOGS) -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/../../build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -DIST_SUBDIRS = $(SUBDIRS) -am__DIST_COMMON = $(srcdir)/../../am/dist_hook.am \ - $(srcdir)/../../am/rebuild.am $(srcdir)/Makefile.in \ - $(srcdir)/config.h.in $(top_srcdir)/../../build-aux/compile \ - $(top_srcdir)/../../build-aux/depcomp \ - $(top_srcdir)/../../build-aux/install-sh \ - $(top_srcdir)/../../build-aux/missing \ - $(top_srcdir)/../../build-aux/test-driver \ - ../../build-aux/ar-lib ../../build-aux/compile \ - ../../build-aux/config.guess ../../build-aux/config.sub \ - ../../build-aux/depcomp ../../build-aux/install-sh \ - ../../build-aux/ltmain.sh ../../build-aux/missing \ - ../../build-aux/texinfo.tex ../../build-aux/ylwrap ChangeLog -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - if test -d "$(distdir)"; then \ - find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -rf "$(distdir)" \ - || { sleep 5 && rm -rf "$(distdir)"; }; \ - else :; fi -am__post_remove_distdir = $(am__remove_distdir) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -DIST_ARCHIVES = $(distdir).tar.gz -GZIP_ENV = --best -DIST_TARGETS = dist-gzip -distuninstallcheck_listfiles = find . -type f -print -am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ - | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' -distcleancheck_listfiles = find . -type f -print -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -POTRACE_TREE = @POTRACE_TREE@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -WARNING_CFLAGS = @WARNING_CFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build_alias = @build_alias@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host_alias = @host_alias@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -EXTRA_DIST = $(POTRACE_TREE) TLpatches -NEVER_DIST = `find . $(NEVER_NAMES)` - -# Files not to be distributed -NEVER_NAMES = -name .svn $(NEVER_NAMES_SUB) -NEVER_NAMES_SUB = -o -name .deps -o -name .dirstamp -o -name '*.$(OBJEXT)' -NEVER_NAMES_LT = -o -name .libs -o -name '*.lo' -SUBDIRS = . include -AM_CPPFLAGS = -I$(top_srcdir)/$(POTRACE_TREE)/src -noinst_LIBRARIES = libpotrace.a -libpotrace_a_SOURCES = \ - @POTRACE_TREE@/src/auxiliary.h \ - @POTRACE_TREE@/src/bitmap.h \ - @POTRACE_TREE@/src/curve.c \ - @POTRACE_TREE@/src/curve.h \ - @POTRACE_TREE@/src/decompose.c \ - @POTRACE_TREE@/src/decompose.h \ - @POTRACE_TREE@/src/lists.h \ - @POTRACE_TREE@/src/potracelib.c \ - @POTRACE_TREE@/src/potracelib.h \ - @POTRACE_TREE@/src/progress.h \ - @POTRACE_TREE@/src/trace.c \ - @POTRACE_TREE@/src/trace.h - -@build_TRUE@dist_check_SCRIPTS = potrace.test -@build_TRUE@TESTS = potrace.test -potracetst_SOURCES = potracetst.c -potracetst_CPPFLAGS = -Iinclude -LDADD = libpotrace.a - -# Rebuild -rebuild_prereq = -rebuild_target = all -CLEANFILES = rebuild.stamp -all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -.SUFFIXES: -.SUFFIXES: .c .log .o .obj .test .test$(EXEEXT) .trs -am--refresh: Makefile - @: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../am/dist_hook.am $(srcdir)/../../am/rebuild.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ - $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ - esac; -$(srcdir)/../../am/dist_hook.am $(srcdir)/../../am/rebuild.am $(am__empty): - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - $(am__cd) $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -$(am__aclocal_m4_deps): - -config.h: stamp-h1 - @test -f $@ || rm -f stamp-h1 - @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 - -stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status - @rm -f stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status config.h -$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) - rm -f stamp-h1 - touch $@ - -distclean-hdr: - -rm -f config.h stamp-h1 - -clean-checkPROGRAMS: - -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS) - -clean-noinstLIBRARIES: - -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -@POTRACE_TREE@/src/$(am__dirstamp): - @$(MKDIR_P) @POTRACE_TREE@/src - @: > @POTRACE_TREE@/src/$(am__dirstamp) -@POTRACE_TREE@/src/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) @POTRACE_TREE@/src/$(DEPDIR) - @: > @POTRACE_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@POTRACE_TREE@/src/curve.$(OBJEXT): \ - @POTRACE_TREE@/src/$(am__dirstamp) \ - @POTRACE_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@POTRACE_TREE@/src/decompose.$(OBJEXT): \ - @POTRACE_TREE@/src/$(am__dirstamp) \ - @POTRACE_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@POTRACE_TREE@/src/potracelib.$(OBJEXT): \ - @POTRACE_TREE@/src/$(am__dirstamp) \ - @POTRACE_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@POTRACE_TREE@/src/trace.$(OBJEXT): \ - @POTRACE_TREE@/src/$(am__dirstamp) \ - @POTRACE_TREE@/src/$(DEPDIR)/$(am__dirstamp) - -libpotrace.a: $(libpotrace_a_OBJECTS) $(libpotrace_a_DEPENDENCIES) $(EXTRA_libpotrace_a_DEPENDENCIES) - $(AM_V_at)-rm -f libpotrace.a - $(AM_V_AR)$(libpotrace_a_AR) libpotrace.a $(libpotrace_a_OBJECTS) $(libpotrace_a_LIBADD) - $(AM_V_at)$(RANLIB) libpotrace.a - -potracetst$(EXEEXT): $(potracetst_OBJECTS) $(potracetst_DEPENDENCIES) $(EXTRA_potracetst_DEPENDENCIES) - @rm -f potracetst$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(potracetst_OBJECTS) $(potracetst_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -rm -f @POTRACE_TREE@/src/*.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/potracetst-potracetst.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@POTRACE_TREE@/src/$(DEPDIR)/curve.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@POTRACE_TREE@/src/$(DEPDIR)/decompose.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@POTRACE_TREE@/src/$(DEPDIR)/potracelib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@POTRACE_TREE@/src/$(DEPDIR)/trace.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -potracetst-potracetst.o: potracetst.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(potracetst_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT potracetst-potracetst.o -MD -MP -MF $(DEPDIR)/potracetst-potracetst.Tpo -c -o potracetst-potracetst.o `test -f 'potracetst.c' || echo '$(srcdir)/'`potracetst.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/potracetst-potracetst.Tpo $(DEPDIR)/potracetst-potracetst.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='potracetst.c' object='potracetst-potracetst.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(potracetst_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o potracetst-potracetst.o `test -f 'potracetst.c' || echo '$(srcdir)/'`potracetst.c - -potracetst-potracetst.obj: potracetst.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(potracetst_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT potracetst-potracetst.obj -MD -MP -MF $(DEPDIR)/potracetst-potracetst.Tpo -c -o potracetst-potracetst.obj `if test -f 'potracetst.c'; then $(CYGPATH_W) 'potracetst.c'; else $(CYGPATH_W) '$(srcdir)/potracetst.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/potracetst-potracetst.Tpo $(DEPDIR)/potracetst-potracetst.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='potracetst.c' object='potracetst-potracetst.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(potracetst_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o potracetst-potracetst.obj `if test -f 'potracetst.c'; then $(CYGPATH_W) 'potracetst.c'; else $(CYGPATH_W) '$(srcdir)/potracetst.c'; fi` - -# This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscope: cscope.files - test ! -s cscope.files \ - || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) -clean-cscope: - -rm -f cscope.files -cscope.files: clean-cscope cscopelist -cscopelist: cscopelist-recursive - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -rm -f cscope.out cscope.in.out cscope.po.out cscope.files - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - $(am__remove_distdir) - test -d "$(distdir)" || mkdir "$(distdir)" - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook - -test -n "$(am__skip_mode_fix)" \ - || find "$(distdir)" -type d ! -perm -755 \ - -exec chmod u+rwx,go+rx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r "$(distdir)" -dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz - $(am__post_remove_distdir) - -dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 - $(am__post_remove_distdir) - -dist-lzip: distdir - tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz - $(am__post_remove_distdir) - -dist-xz: distdir - tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz - $(am__post_remove_distdir) - -dist-tarZ: distdir - @echo WARNING: "Support for distribution archives compressed with" \ - "legacy program 'compress' is deprecated." >&2 - @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__post_remove_distdir) - -dist-shar: distdir - @echo WARNING: "Support for shar distribution archives is" \ - "deprecated." >&2 - @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 - shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz - $(am__post_remove_distdir) - -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__post_remove_distdir) - -dist dist-all: - $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' - $(am__post_remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lz*) \ - lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ - *.tar.xz*) \ - xz -dc $(distdir).tar.xz | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir) - chmod u+w $(distdir) - mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst - chmod a-w $(distdir) - test -d $(distdir)/_build || exit 0; \ - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && am__cwd=`pwd` \ - && $(am__cd) $(distdir)/_build/sub \ - && ../../configure \ - $(AM_DISTCHECK_CONFIGURE_FLAGS) \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - --srcdir=../.. --prefix="$$dc_install_base" \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ - && cd "$$am__cwd" \ - || exit 1 - $(am__post_remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' -distuninstallcheck: - @test -n '$(distuninstallcheck_dir)' || { \ - echo 'ERROR: trying to run $@ with an empty' \ - '$$(distuninstallcheck_dir)' >&2; \ - exit 1; \ - }; \ - $(am__cd) '$(distuninstallcheck_dir)' || { \ - echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ - exit 1; \ - }; \ - test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 -distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ - $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-recursive -all-am: Makefile $(LIBRARIES) config.h -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -rm -f @POTRACE_TREE@/src/$(DEPDIR)/$(am__dirstamp) - -rm -f @POTRACE_TREE@/src/$(am__dirstamp) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-checkPROGRAMS clean-generic clean-noinstLIBRARIES \ - mostlyclean-am - -distclean: distclean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -f ./$(DEPDIR)/potracetst-potracetst.Po - -rm -f @POTRACE_TREE@/src/$(DEPDIR)/curve.Po - -rm -f @POTRACE_TREE@/src/$(DEPDIR)/decompose.Po - -rm -f @POTRACE_TREE@/src/$(DEPDIR)/potracelib.Po - -rm -f @POTRACE_TREE@/src/$(DEPDIR)/trace.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-hdr distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -rm -f ./$(DEPDIR)/potracetst-potracetst.Po - -rm -f @POTRACE_TREE@/src/$(DEPDIR)/curve.Po - -rm -f @POTRACE_TREE@/src/$(DEPDIR)/decompose.Po - -rm -f @POTRACE_TREE@/src/$(DEPDIR)/potracelib.Po - -rm -f @POTRACE_TREE@/src/$(DEPDIR)/trace.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(am__recursive_targets) all check-am install-am install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ - am--depfiles am--refresh check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-cscope clean-generic \ - clean-noinstLIBRARIES cscope cscopelist-am ctags ctags-am dist \ - dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \ - dist-tarZ dist-xz dist-zip distcheck distclean \ - distclean-compile distclean-generic distclean-hdr \ - distclean-tags distcleancheck distdir distuninstallcheck dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am - -.PRECIOUS: Makefile - -dist-hook: - cd "$(distdir)" && rm -rf $(NEVER_DIST) -potrace.log: potracetst$(EXEEXT) -rebuild.stamp: $(rebuild_target) - echo timestamp >$@ - -.PHONY: rebuild -rebuild: $(rebuild_prereq) - @dry=; for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=*|--*);; \ - *n*) dry=:;; \ - esac; \ - done; \ - if test -f rebuild.stamp; then :; else \ - $$dry trap 'rm -rf rebuild.lock' 1 2 13 15; \ - if $$dry mkdir rebuild.lock 2>/dev/null; then \ - $(MAKE) $(AM_MAKEFLAGS) rebuild.stamp; \ - $$dry rmdir rebuild.lock; \ - else \ - while test -d rebuild.lock && test -z "$$dry"; do sleep 1; done; \ - fi; \ - $$dry test -f rebuild.stamp; exit $$?; \ - fi - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Build/source/libs/potrace/TLpatches/ChangeLog b/Build/source/libs/potrace/TLpatches/ChangeLog deleted file mode 100644 index a508be55f5b..00000000000 --- a/Build/source/libs/potrace/TLpatches/ChangeLog +++ /dev/null @@ -1,24 +0,0 @@ -2017-08-07 Akira Kakuto - - Import potrace-1.15 source tree from: - http://potrace.sourceforge.net - -2017-02-22 Akira Kakuto - - Import potrace-1.14 source tree from: - http://potrace.sourceforge.net - -2015-12-28 Akira Kakuto - - Import potrace-1.13 source tree from: - http://potrace.sourceforge.net - -2015-03-27 Peter Breitenlohner - - Import potrace-1.12 source tree from: - http://potrace.sourceforge.net - -2012-02-11 Peter Breitenlohner - - Import potrace-1.11 source tree from: - http://potrace.sourceforge.net diff --git a/Build/source/libs/potrace/TLpatches/TL-Changes b/Build/source/libs/potrace/TLpatches/TL-Changes deleted file mode 100644 index a7876bed3a3..00000000000 --- a/Build/source/libs/potrace/TLpatches/TL-Changes +++ /dev/null @@ -1,22 +0,0 @@ -Changes applied to the potrace-1.15/ tree as obtained from: - http://potrace.sourceforge.net - -Removed: - COPYING - INSTALL - Makefile.in - aclocal.m4 - check/ - compile - config.guess - config.sub - configure - depcomp - doc/ - install-sh - ltmain.sh - m4/ - missing - mkinstalldirs - src/Makefile.in - test-driver diff --git a/Build/source/libs/potrace/ac/potrace.ac b/Build/source/libs/potrace/ac/potrace.ac deleted file mode 100644 index d40257d1168..00000000000 --- a/Build/source/libs/potrace/ac/potrace.ac +++ /dev/null @@ -1,11 +0,0 @@ -## libs/potrace/ac/potrace.ac: configure.ac fragment for the TeX Live subdirectory libs/potrace/ -dnl -dnl Copyright (C) 2013 Peter Breitenlohner -dnl You may freely use, modify and/or distribute this file. -dnl -## basic check of system potrace -KPSE_TRY_LIB([potrace], - [#include ], - [potrace_state_t st; -const char *version = potrace_version(); -potrace_state_free(&st);]) diff --git a/Build/source/libs/potrace/ac/withenable.ac b/Build/source/libs/potrace/ac/withenable.ac deleted file mode 100644 index 0870c670f10..00000000000 --- a/Build/source/libs/potrace/ac/withenable.ac +++ /dev/null @@ -1,7 +0,0 @@ -## libs/potrace/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/potrace/ -dnl -dnl Copyright (C) 2013 Peter Breitenlohner -dnl You may freely use, modify and/or distribute this file. -dnl -## configure options and TL libraries required for potrace -KPSE_WITH_LIB([potrace]) diff --git a/Build/source/libs/potrace/aclocal.m4 b/Build/source/libs/potrace/aclocal.m4 deleted file mode 100644 index b0545142048..00000000000 --- a/Build/source/libs/potrace/aclocal.m4 +++ /dev/null @@ -1,1173 +0,0 @@ -# generated automatically by aclocal 1.16.1 -*- Autoconf -*- - -# Copyright (C) 1996-2018 Free Software Foundation, Inc. - -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, -[m4_warning([this file was generated for autoconf 2.69. -You have another version of autoconf. It may work, but is not guaranteed to. -If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically 'autoreconf'.])]) - -# Copyright (C) 2002-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -# (This private macro should not be called outside this file.) -AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.16' -dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to -dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.16.1], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl -]) - -# _AM_AUTOCONF_VERSION(VERSION) -# ----------------------------- -# aclocal traces this macro to find the Autoconf version. -# This is a private macro too. Using m4_define simplifies -# the logic in aclocal, which can simply ignore this definition. -m4_define([_AM_AUTOCONF_VERSION], []) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. -# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.16.1])dnl -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) - -# AM_AUX_DIR_EXPAND -*- Autoconf -*- - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to -# '$srcdir', '$srcdir/..', or '$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is '.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. - -AC_DEFUN([AM_AUX_DIR_EXPAND], -[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl -# Expand $ac_aux_dir to an absolute path. -am_aux_dir=`cd "$ac_aux_dir" && pwd` -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright (C) 1997-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ([2.52])dnl - m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE])dnl -AC_SUBST([$1_FALSE])dnl -_AM_SUBST_NOTMAKE([$1_TRUE])dnl -_AM_SUBST_NOTMAKE([$1_FALSE])dnl -m4_define([_AM_COND_VALUE_$1], [$2])dnl -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) - -# Copyright (C) 1999-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - - -# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". -# We try a few techniques and use that to set a single cache variable. -# -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macro, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], - [$1], [CXX], [depcc="$CXX" am_compiler_list=], - [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], - [$1], [UPC], [depcc="$UPC" am_compiler_list=], - [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - am__universal=false - m4_case([$1], [CC], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac], - [CXX], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac]) - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -]) - - -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES. -AC_DEFUN([AM_SET_DEPDIR], -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) - - -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE([dependency-tracking], [dnl -AS_HELP_STRING( - [--enable-dependency-tracking], - [do not reject slow dependency extractors]) -AS_HELP_STRING( - [--disable-dependency-tracking], - [speeds up one-time build])]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH])dnl -_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl -AC_SUBST([am__nodep])dnl -_AM_SUBST_NOTMAKE([am__nodep])dnl -]) - -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright (C) 1999-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[{ - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - # TODO: see whether this extra hack can be removed once we start - # requiring Autoconf 2.70 or later. - AS_CASE([$CONFIG_FILES], - [*\'*], [eval set x "$CONFIG_FILES"], - [*], [set x $CONFIG_FILES]) - shift - # Used to flag and report bootstrapping failures. - am_rc=0 - for am_mf - do - # Strip MF so we end up with the name of the file. - am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile which includes - # dependency-tracking related rules and includes. - # Grep'ing the whole file directly is not great: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ - || continue - am_dirpart=`AS_DIRNAME(["$am_mf"])` - am_filepart=`AS_BASENAME(["$am_mf"])` - AM_RUN_LOG([cd "$am_dirpart" \ - && sed -e '/# am--include-marker/d' "$am_filepart" \ - | $MAKE -f - am--depfiles]) || am_rc=$? - done - if test $am_rc -ne 0; then - AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. Try re-running configure with the - '--disable-dependency-tracking' option to at least be able to build - the package (albeit without support for automatic dependency tracking).]) - fi - AS_UNSET([am_dirpart]) - AS_UNSET([am_filepart]) - AS_UNSET([am_mf]) - AS_UNSET([am_rc]) - rm -f conftest-deps.mk -} -])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking is enabled. -# This creates each '.Po' and '.Plo' makefile fragment that we'll need in -# order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) - -# Do all the work for Automake. -*- Autoconf -*- - -# Copyright (C) 1996-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. -m4_define([AC_PROG_CC], -m4_defn([AC_PROG_CC]) -[_AM_PROG_CC_C_O -]) - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.65])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[AC_DIAGNOSE([obsolete], - [$0: two- and three-arguments forms are deprecated.]) -m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl -dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if( - m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), - [ok:ok],, - [m4_fatal([AC_INIT should be called with package and version arguments])])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) - AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) -AM_MISSING_PROG([AUTOCONF], [autoconf]) -AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) -AM_MISSING_PROG([AUTOHEADER], [autoheader]) -AM_MISSING_PROG([MAKEINFO], [makeinfo]) -AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -AC_SUBST([mkdir_p], ['$(MKDIR_P)']) -# We need awk for the "check" target (and possibly the TAP driver). The -# system "awk" is bad on some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES([CC])], - [m4_define([AC_PROG_CC], - m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES([CXX])], - [m4_define([AC_PROG_CXX], - m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES([OBJC])], - [m4_define([AC_PROG_OBJC], - m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], - [_AM_DEPENDENCIES([OBJCXX])], - [m4_define([AC_PROG_OBJCXX], - m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl -]) -AC_REQUIRE([AM_SILENT_RULES])dnl -dnl The testsuite driver may need to know about EXEEXT, so add the -dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This -dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. -AC_CONFIG_COMMANDS_PRE(dnl -[m4_provide_if([_AM_COMPILER_EXEEXT], - [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl - -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) - fi -fi -dnl The trailing newline in this macro's definition is deliberate, for -dnl backward compatibility and to allow trailing 'dnl'-style comments -dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. -]) - -dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not -dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further -dnl mangled by Autoconf and run in a shell conditional statement. -m4_define([_AC_COMPILER_EXEEXT], -m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. - -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_arg=$1 -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi -AC_SUBST([install_sh])]) - -# Copyright (C) 2003-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) - -# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- -# From Jim Meyering - -# Copyright (C) 1996-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MAINTAINER_MODE([DEFAULT-MODE]) -# ---------------------------------- -# Control maintainer-specific portions of Makefiles. -# Default is to disable them, unless 'enable' is passed literally. -# For symmetry, 'disable' may be passed as well. Anyway, the user -# can override the default with the --enable/--disable switch. -AC_DEFUN([AM_MAINTAINER_MODE], -[m4_case(m4_default([$1], [disable]), - [enable], [m4_define([am_maintainer_other], [disable])], - [disable], [m4_define([am_maintainer_other], [enable])], - [m4_define([am_maintainer_other], [enable]) - m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) -AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode's default is 'disable' unless 'enable' is passed - AC_ARG_ENABLE([maintainer-mode], - [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], - am_maintainer_other[ make rules and dependencies not useful - (and sometimes confusing) to the casual installer])], - [USE_MAINTAINER_MODE=$enableval], - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST([MAINT])dnl -] -) - -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MAKE_INCLUDE() -# ----------------- -# Check whether make has an 'include' directive that can support all -# the idioms we need for our automatic dependency tracking code. -AC_DEFUN([AM_MAKE_INCLUDE], -[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) -cat > confinc.mk << 'END' -am__doit: - @echo this is the am__doit target >confinc.out -.PHONY: am__doit -END -am__include="#" -am__quote= -# BSD make does it like this. -echo '.include "confinc.mk" # ignored' > confmf.BSD -# Other make implementations (GNU, Solaris 10, AIX) do it like this. -echo 'include confinc.mk # ignored' > confmf.GNU -_am_result=no -for s in GNU BSD; do - AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) - AS_CASE([$?:`cat confinc.out 2>/dev/null`], - ['0:this is the am__doit target'], - [AS_CASE([$s], - [BSD], [am__include='.include' am__quote='"'], - [am__include='include' am__quote=''])]) - if test "$am__include" != "#"; then - _am_result="yes ($s style)" - break - fi -done -rm -f confinc.* confmf.* -AC_MSG_RESULT([${_am_result}]) -AC_SUBST([am__include])]) -AC_SUBST([am__quote])]) - -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- - -# Copyright (C) 1997-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it is modern enough. -# If it is, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([missing])dnl -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - AC_MSG_WARN(['missing' script is too old or missing]) -fi -]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - -# _AM_SET_OPTION(NAME) -# -------------------- -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) - -# _AM_SET_OPTIONS(OPTIONS) -# ------------------------ -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) - -# Copyright (C) 1999-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_PROG_CC_C_O -# --------------- -# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC -# to automatically call this. -AC_DEFUN([_AM_PROG_CC_C_O], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([compile])dnl -AC_LANG_PUSH([C])dnl -AC_CACHE_CHECK( - [whether $CC understands -c and -o together], - [am_cv_prog_cc_c_o], - [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i]) -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -AC_LANG_POP([C])]) - -# For backward compatibility. -AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_RUN_LOG(COMMAND) -# ------------------- -# Run COMMAND, save the exit status in ac_status, and log it. -# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) -AC_DEFUN([AM_RUN_LOG], -[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD - ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - (exit $ac_status); }]) - -# Check to make sure that the build environment is sane. -*- Autoconf -*- - -# Copyright (C) 1996-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[[\\\"\#\$\&\'\`$am_lf]]*) - AC_MSG_ERROR([unsafe absolute working directory name]);; -esac -case $srcdir in - *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken - alias in your environment]) - fi - if test "$[2]" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT([yes]) -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi -AC_CONFIG_COMMANDS_PRE( - [AC_MSG_CHECKING([that generated files are newer than configure]) - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - AC_MSG_RESULT([done])]) -rm -f conftest.file -]) - -# Copyright (C) 2009-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_SILENT_RULES([DEFAULT]) -# -------------------------- -# Enable less verbose build rules; with the default set to DEFAULT -# ("yes" being less verbose, "no" or empty being verbose). -AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], [dnl -AS_HELP_STRING( - [--enable-silent-rules], - [less verbose build output (undo: "make V=1")]) -AS_HELP_STRING( - [--disable-silent-rules], - [verbose build output (undo: "make V=0")])dnl -]) -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac -dnl -dnl A few 'make' implementations (e.g., NonStop OS and NextStep) -dnl do not support nested variable expansions. -dnl See automake bug#9928 and bug#10237. -am_make=${MAKE-make} -AC_CACHE_CHECK([whether $am_make supports nested variables], - [am_cv_make_support_nested_variables], - [if AS_ECHO([['TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi]) -if test $am_cv_make_support_nested_variables = yes; then - dnl Using '$V' instead of '$(V)' breaks IRIX make. - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AC_SUBST([AM_V])dnl -AM_SUBST_NOTMAKE([AM_V])dnl -AC_SUBST([AM_DEFAULT_V])dnl -AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl -AC_SUBST([AM_DEFAULT_VERBOSITY])dnl -AM_BACKSLASH='\' -AC_SUBST([AM_BACKSLASH])dnl -_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl -]) - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor 'install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in "make install-strip", and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# Copyright (C) 2006-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. -# This macro is traced by Automake. -AC_DEFUN([_AM_SUBST_NOTMAKE]) - -# AM_SUBST_NOTMAKE(VARIABLE) -# -------------------------- -# Public sister of _AM_SUBST_NOTMAKE. -AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) - -# Check how to create a tarball. -*- Autoconf -*- - -# Copyright (C) 2004-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of 'v7', 'ustar', or 'pax'. -# -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar -# -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -# -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AC_SUBST([AMTAR], ['$${TAR-tar}']) - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' - -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - - [m4_case([$1], - [ustar], - [# The POSIX 1988 'ustar' format is defined with fixed-size fields. - # There is notably a 21 bits limit for the UID and the GID. In fact, - # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 - # and bug#13588). - am_max_uid=2097151 # 2^21 - 1 - am_max_gid=$am_max_uid - # The $UID and $GID variables are not portable, so we need to resort - # to the POSIX-mandated id(1) utility. Errors in the 'id' calls - # below are definitely unexpected, so allow the users to see them - # (that is, avoid stderr redirection). - am_uid=`id -u || echo unknown` - am_gid=`id -g || echo unknown` - AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) - if test $am_uid -le $am_max_uid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi - AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) - if test $am_gid -le $am_max_gid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi], - - [pax], - [], - - [m4_fatal([Unknown tar format])]) - - AC_MSG_CHECKING([how to create a $1 tar archive]) - - # Go ahead even if we have the value already cached. We do so because we - # need to set the values for the 'am__tar' and 'am__untar' variables. - _am_tools=${am_cv_prog_tar_$1-$_am_tools} - - for _am_tool in $_am_tools; do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works. - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi - done - rm -rf conftest.dir - - AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) - AC_MSG_RESULT([$am_cv_prog_tar_$1])]) - -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR - -m4_include([../../m4/kpse-common.m4]) -m4_include([../../m4/kpse-warnings.m4]) diff --git a/Build/source/libs/potrace/config.h.in b/Build/source/libs/potrace/config.h.in deleted file mode 100644 index 3eb6a6bb26d..00000000000 --- a/Build/source/libs/potrace/config.h.in +++ /dev/null @@ -1,70 +0,0 @@ -/* config.h.in. Generated from configure.ac by autoheader. */ - -/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the home page for this package. */ -#undef PACKAGE_URL - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Version number of package */ -#undef VERSION - -/* Define for Solaris 2.5.1 so the uint64_t typedef from , - , or is not used. If the typedef were allowed, the - #define below would cause a syntax error. */ -#undef _UINT64_T - -/* Define to `__inline__' or `__inline' if that's what the C compiler - calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef __cplusplus -#undef inline -#endif - -/* Define to the type of an unsigned integer type of width exactly 64 bits if - such a type exists and the standard includes do not define it. */ -#undef uint64_t diff --git a/Build/source/libs/potrace/configure b/Build/source/libs/potrace/configure deleted file mode 100755 index 835fa97ea85..00000000000 --- a/Build/source/libs/potrace/configure +++ /dev/null @@ -1,6664 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for potrace (TeX Live) 1.15. -# -# Report bugs to . -# -# -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -# -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org and tex-k@tug.org -$0: about your system, including any error possibly output -$0: before this message. Then install a modern shell, or -$0: manually run the script under such a shell if you do -$0: have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='potrace (TeX Live)' -PACKAGE_TARNAME='potrace--tex-live-' -PACKAGE_VERSION='1.15' -PACKAGE_STRING='potrace (TeX Live) 1.15' -PACKAGE_BUGREPORT='tex-k@tug.org' -PACKAGE_URL='' - -ac_unique_file="potrace-src/src/trace.c" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='am__EXEEXT_FALSE -am__EXEEXT_TRUE -LTLIBOBJS -LIBOBJS -POTRACE_TREE -EGREP -GREP -CPP -build_FALSE -build_TRUE -LN_S -RANLIB -WARNING_CFLAGS -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -am__nodep -AMDEPBACKSLASH -AMDEP_FALSE -AMDEP_TRUE -am__include -DEPDIR -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -MAINT -MAINTAINER_MODE_FALSE -MAINTAINER_MODE_TRUE -AM_BACKSLASH -AM_DEFAULT_VERBOSITY -AM_DEFAULT_V -AM_V -am__untar -am__tar -AMTAR -am__leading_dot -SET_MAKE -AWK -mkdir_p -MKDIR_P -INSTALL_STRIP_PROGRAM -STRIP -install_sh -MAKEINFO -AUTOHEADER -AUTOMAKE -AUTOCONF -ACLOCAL -VERSION -PACKAGE -CYGPATH_W -am__isrc -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL -am__quote' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_silent_rules -enable_maintainer_mode -enable_dependency_tracking -enable_compiler_warnings -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -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 potrace (TeX Live) 1.15 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root - [DATAROOTDIR/doc/potrace--tex-live-] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of potrace (TeX Live) 1.15:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-silent-rules less verbose build output (undo: "make V=1") - --disable-silent-rules verbose build output (undo: "make V=0") - --enable-maintainer-mode - enable make rules and dependencies not useful (and - sometimes confusing) to the casual installer - --enable-dependency-tracking - do not reject slow dependency extractors - --disable-dependency-tracking - speeds up one-time build - --enable-compiler-warnings=[no|min|yes|max|all] - Turn on compiler warnings [default: yes if - maintainer-mode, min otherwise] - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CPP C preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to . -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -potrace (TeX Live) configure 1.15 -generated by GNU Autoconf 2.69 - -Copyright (C) 2012 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_link - -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - -# ac_fn_c_try_run LINENO -# ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_run - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile - -# ac_fn_c_find_uintX_t LINENO BITS VAR -# ------------------------------------ -# Finds an unsigned integer type with width BITS, setting cache variable VAR -# accordingly. -ac_fn_c_find_uintX_t () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 -$as_echo_n "checking for uint$2_t... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=no" - # Order is important - never check a type that is potentially smaller - # than half of the expected target width. - for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ - 'unsigned long long int' 'unsigned short int' 'unsigned char'; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - case $ac_type in #( - uint$2_t) : - eval "$3=yes" ;; #( - *) : - eval "$3=\$ac_type" ;; -esac -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if eval test \"x\$"$3"\" = x"no"; then : - -else - break -fi - done -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_find_uintX_t -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 potrace (TeX Live) $as_me 1.15, which was -generated by GNU Autoconf 2.69. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - -ac_aux_dir= -for ac_dir in ../../build-aux "$srcdir"/../../build-aux; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../../build-aux \"$srcdir\"/../../build-aux" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - - - -am__api_version='1.16' - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in #(( - ./ | .// | /[cC]/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 -$as_echo_n "checking whether build environment is sane... " >&6; } -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; -esac -case $srcdir in - *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken - alias in your environment" "$LINENO" 5 - fi - if test "$2" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error $? "newly created file is older than distributed files! -Check your system clock" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi - -rm -f conftest.file - -test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. -# By default was `s,x,x', remove it if useless. -ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` - -# Expand $ac_aux_dir to an absolute path. -am_aux_dir=`cd "$ac_aux_dir" && pwd` - -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} -fi - -if test x"${install_sh+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi - -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 -$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } -if test -z "$MKDIR_P"; then - if ${ac_cv_path_mkdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in mkdir gmkdir; do - for ac_exec_ext in '' $ac_executable_extensions; do - as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ - 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext - break 3;; - esac - done - done - done -IFS=$as_save_IFS - -fi - - test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then - MKDIR_P="$ac_cv_path_mkdir -p" - else - # As a last resort, use the slow shell script. Don't cache a - # value for MKDIR_P within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - MKDIR_P="$ac_install_sh -d" - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AWK+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -# Check whether --enable-silent-rules was given. -if test "${enable_silent_rules+set}" = set; then : - enableval=$enable_silent_rules; -fi - -case $enable_silent_rules in # ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=1;; -esac -am_make=${MAKE-make} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 -$as_echo_n "checking whether $am_make supports nested variables... " >&6; } -if ${am_cv_make_support_nested_variables+:} false; then : - $as_echo_n "(cached) " >&6 -else - if $as_echo 'TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -$as_echo "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AM_BACKSLASH='\' - -DEPDIR="${am__leading_dot}deps" - -ac_config_commands="$ac_config_commands depfiles" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 -$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } -cat > confinc.mk << 'END' -am__doit: - @echo this is the am__doit target >confinc.out -.PHONY: am__doit -END -am__include="#" -am__quote= -# BSD make does it like this. -echo '.include "confinc.mk" # ignored' > confmf.BSD -# Other make implementations (GNU, Solaris 10, AIX) do it like this. -echo 'include confinc.mk # ignored' > confmf.GNU -_am_result=no -for s in GNU BSD; do - { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 - (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - case $?:`cat confinc.out 2>/dev/null` in #( - '0:this is the am__doit target') : - case $s in #( - BSD) : - am__include='.include' am__quote='"' ;; #( - *) : - am__include='include' am__quote='' ;; -esac ;; #( - *) : - ;; -esac - if test "$am__include" != "#"; then - _am_result="yes ($s style)" - break - fi -done -rm -f confinc.* confmf.* -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 -$as_echo "${_am_result}" >&6; } - -# Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then : - enableval=$enable_dependency_tracking; -fi - -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi - if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 -$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } -if ${am_cv_prog_cc_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 - ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 -$as_echo "$am_cv_prog_cc_c_o" >&6; } -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - - -# Check whether --enable-compiler-warnings was given. -if test "${enable_compiler_warnings+set}" = set; then : - enableval=$enable_compiler_warnings; -fi -case $enable_compiler_warnings in #( - no | min | yes | max | all) : - ;; #( - *) : - if test "x$enable_maintainer_mode" = xyes; then : - enable_compiler_warnings=yes -else - enable_compiler_warnings=min -fi ;; -esac - - -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - am__isrc=' -I$(srcdir)' - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE='potrace--tex-live-' - VERSION='1.15' - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -mkdir_p='$(MKDIR_P)' - -# We need awk for the "check" target (and possibly the TAP driver). The -# system "awk" is bad on some platforms. -# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AMTAR='$${TAR-tar}' - - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar pax cpio none' - -am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' - - - - - - -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 - fi -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 -$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } - # Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then : - enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 -$as_echo "$USE_MAINTAINER_MODE" >&6; } - if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - - MAINT=$MAINTAINER_MODE_TRUE - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts prototypes" >&5 -$as_echo_n "checking whether the compiler accepts prototypes... " >&6; } -if ${kb_cv_c_prototypes+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -extern void foo(int i,...); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - kb_cv_c_prototypes=yes -else - kb_cv_c_prototypes=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kb_cv_c_prototypes" >&5 -$as_echo "$kb_cv_c_prototypes" >&6; } -if test "x$kb_cv_c_prototypes" = xno; then - as_fn_error $? "Sorry, your compiler does not understand prototypes." "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what warning flags to pass to the C compiler" >&5 -$as_echo_n "checking what warning flags to pass to the C compiler... " >&6; } -if ${kpse_cv_warning_cflags+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$GCC" = xyes; then - kpse_cv_warning_cflags= -if test "x$enable_compiler_warnings" != xno; then - kpse_cv_warning_cflags="-Wimplicit -Wreturn-type" - case `$CC -dumpversion` in #( - 3.4.* | 4.* | 5.*) : - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wdeclaration-after-statement" ;; #( - *) : - ;; -esac - case `$CC -dumpversion` in #( - 3.[234].* | 4.* | 5.*) : - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wno-unknown-pragmas" ;; #( - *) : - ;; -esac - if test "x$enable_compiler_warnings" != xmin; then - kpse_cv_warning_cflags="-Wall -Wunused $kpse_cv_warning_cflags" - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wmissing-prototypes -Wmissing-declarations" - if test "x$enable_compiler_warnings" != xyes; then - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wparentheses -Wswitch -Wtrigraphs -Wpointer-arith" - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wcast-qual -Wcast-align -Wwrite-strings" - case `$CC -dumpversion` in #( - 3.4.* | 4.* | 5.*) : - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wold-style-definition" ;; #( - *) : - ;; -esac - if test "x$enable_compiler_warnings" != xmax; then - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wshadow" - fi - fi - fi -fi -elif test "x$enable_compiler_warnings" = xno; then - kpse_cv_warning_cflags= -else - kpse_cv_warning_cflags= # FIXME: warning flags for non-GNU C compilers -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_warning_cflags" >&5 -$as_echo "$kpse_cv_warning_cflags" >&6; } -WARNING_CFLAGS=$kpse_cv_warning_cflags - - - - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 -$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } -if ${am_cv_prog_cc_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 - ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 -$as_echo "$am_cv_prog_cc_c_o" >&6; } -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 -$as_echo_n "checking for inline... " >&6; } -if ${ac_cv_c_inline+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __cplusplus -typedef int foo_t; -static $ac_kw foo_t static_foo () {return 0; } -$ac_kw foo_t foo () {return 0; } -#endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_inline=$ac_kw -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_inline" != no && break -done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 -$as_echo "$ac_cv_c_inline" >&6; } - -case $ac_cv_c_inline in - inline | yes) ;; - *) - case $ac_cv_c_inline in - no) ac_val=;; - *) ac_val=$ac_cv_c_inline;; - esac - cat >>confdefs.h <<_ACEOF -#ifndef __cplusplus -#define inline $ac_val -#endif -_ACEOF - ;; -esac - - -ac_config_headers="$ac_config_headers config.h" - - - if test "x$enable_build" != xno; then - build_TRUE= - build_FALSE='#' -else - build_TRUE='#' - build_FALSE= -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -if test "x$ac_cv_header_stdc" != xyes; then - as_fn_error $? "Sorry, can't do anything for you" "$LINENO" 5 -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sqrt" >&5 -$as_echo_n "checking for library containing sqrt... " >&6; } -if ${ac_cv_search_sqrt+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sqrt (); -int -main () -{ -return sqrt (); - ; - return 0; -} -_ACEOF -for ac_lib in '' m; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_sqrt=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_sqrt+:} false; then : - break -fi -done -if ${ac_cv_search_sqrt+:} false; then : - -else - ac_cv_search_sqrt=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sqrt" >&5 -$as_echo "$ac_cv_search_sqrt" >&6; } -ac_res=$ac_cv_search_sqrt -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - - - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -ac_fn_c_find_uintX_t "$LINENO" "64" "ac_cv_c_uint64_t" -case $ac_cv_c_uint64_t in #( - no|yes) ;; #( - *) - -$as_echo "#define _UINT64_T 1" >>confdefs.h - - -cat >>confdefs.h <<_ACEOF -#define uint64_t $ac_cv_c_uint64_t -_ACEOF -;; - esac - - -POTRACE_TREE=potrace-src - - -ac_config_files="$ac_config_files Makefile include/Makefile" - - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 -$as_echo_n "checking that generated files are newer than configure... " >&6; } - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 -$as_echo "done" >&6; } - if test -n "$EXEEXT"; then - am__EXEEXT_TRUE= - am__EXEEXT_FALSE='#' -else - am__EXEEXT_TRUE='#' - am__EXEEXT_FALSE= -fi - -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error $? "conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${build_TRUE}" && test -z "${build_FALSE}"; then - as_fn_error $? "conditional \"build\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by potrace (TeX Live) $as_me 1.15, which was -generated by GNU Autoconf 2.69. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to ." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -potrace (TeX Live) config.status 1.15 -configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2012 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -MKDIR_P='$MKDIR_P' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$ac_tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF - -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_tt"; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' >$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #undef with comments. This is necessary, for example, - # in the case of _POSIX_SOURCE, which is predefined and required - # on some systems where configure will not decide to define it. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac - ac_MKDIR_P=$MKDIR_P - case $MKDIR_P in - [\\/$]* | ?:[\\/]* ) ;; - */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -s&@MKDIR_P@&$ac_MKDIR_P&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" - } >"$ac_tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$ac_tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 - fi -# Compute "$ac_file"'s index in $config_headers. -_am_arg="$ac_file" -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || -$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$_am_arg" : 'X\(//\)[^/]' \| \ - X"$_am_arg" : 'X\(//\)$' \| \ - X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$_am_arg" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'`/stamp-h$_am_stamp_count - ;; - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - # TODO: see whether this extra hack can be removed once we start - # requiring Autoconf 2.70 or later. - case $CONFIG_FILES in #( - *\'*) : - eval set x "$CONFIG_FILES" ;; #( - *) : - set x $CONFIG_FILES ;; #( - *) : - ;; -esac - shift - # Used to flag and report bootstrapping failures. - am_rc=0 - for am_mf - do - # Strip MF so we end up with the name of the file. - am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile which includes - # dependency-tracking related rules and includes. - # Grep'ing the whole file directly is not great: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ - || continue - am_dirpart=`$as_dirname -- "$am_mf" || -$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$am_mf" : 'X\(//\)[^/]' \| \ - X"$am_mf" : 'X\(//\)$' \| \ - X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$am_mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - am_filepart=`$as_basename -- "$am_mf" || -$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ - X"$am_mf" : 'X\(//\)$' \| \ - X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$am_mf" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - { echo "$as_me:$LINENO: cd "$am_dirpart" \ - && sed -e '/# am--include-marker/d' "$am_filepart" \ - | $MAKE -f - am--depfiles" >&5 - (cd "$am_dirpart" \ - && sed -e '/# am--include-marker/d' "$am_filepart" \ - | $MAKE -f - am--depfiles) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } || am_rc=$? - done - if test $am_rc -ne 0; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. Try re-running configure with the - '--disable-dependency-tracking' option to at least be able to build - the package (albeit without support for automatic dependency tracking). -See \`config.log' for more details" "$LINENO" 5; } - fi - { am_dirpart=; unset am_dirpart;} - { am_filepart=; unset am_filepart;} - { am_mf=; unset am_mf;} - { am_rc=; unset am_rc;} - rm -f conftest-deps.mk -} - ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - diff --git a/Build/source/libs/potrace/configure.ac b/Build/source/libs/potrace/configure.ac deleted file mode 100644 index 1ec9532745e..00000000000 --- a/Build/source/libs/potrace/configure.ac +++ /dev/null @@ -1,42 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -dnl -dnl Copyright (C) 2013 Peter Breitenlohner -dnl -dnl This file is free software; the copyright holder -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -m4_include([version.ac])[] dnl define potrace_version -AC_INIT([potrace (TeX Live)], potrace_version, [tex-k@tug.org]) -AC_PREREQ([2.65]) -AC_CONFIG_SRCDIR([potrace-src/src/trace.c]) -AC_CONFIG_AUX_DIR([../../build-aux]) -AC_CONFIG_MACRO_DIR([../../m4]) - -KPSE_BASIC([potrace]) - -AC_PROG_CC -AC_PROG_RANLIB -AC_PROG_LN_S -AC_C_INLINE - -AC_CONFIG_HEADERS([config.h]) - -AM_CONDITIONAL([build], [test "x$enable_build" != xno]) - -AC_HEADER_STDC -if test "x$ac_cv_header_stdc" != xyes; then - AC_MSG_ERROR([Sorry, can't do anything for you]) -fi - -AC_SEARCH_LIBS([sqrt], [m]) - -dnl Check for types - -AC_TYPE_UINT64_T - -AC_SUBST([POTRACE_TREE], [potrace-src]) - -AC_CONFIG_FILES([Makefile include/Makefile]) - -AC_OUTPUT diff --git a/Build/source/libs/potrace/include/Makefile.am b/Build/source/libs/potrace/include/Makefile.am deleted file mode 100644 index 63dd9b588d4..00000000000 --- a/Build/source/libs/potrace/include/Makefile.am +++ /dev/null @@ -1,15 +0,0 @@ -## Proxy Makefile.am to install potrace headers for TeX Live. -## -## Copyright (C) 2013 Peter Breitenlohner -## -## This file is free software; the copyright holder -## gives unlimited permission to copy and/or distribute it, -## with or without modifications, as long as this notice is preserved. -## -POTRACE_SRC = $(top_srcdir)/$(POTRACE_TREE)/src - -hdr_links = \ - $(POTRACE_SRC)/potracelib.h - -include $(top_srcdir)/../../am/hdr_links.am - diff --git a/Build/source/libs/potrace/include/Makefile.in b/Build/source/libs/potrace/include/Makefile.in deleted file mode 100644 index c91646d3b91..00000000000 --- a/Build/source/libs/potrace/include/Makefile.in +++ /dev/null @@ -1,424 +0,0 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2018 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -subdir = include -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/../../m4/kpse-common.m4 \ - $(top_srcdir)/../../m4/kpse-warnings.m4 \ - $(top_srcdir)/version.ac $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -am__DIST_COMMON = $(srcdir)/Makefile.in \ - $(top_srcdir)/../../am/hdr_links.am -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -POTRACE_TREE = @POTRACE_TREE@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -WARNING_CFLAGS = @WARNING_CFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build_alias = @build_alias@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host_alias = @host_alias@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -POTRACE_SRC = $(top_srcdir)/$(POTRACE_TREE)/src -hdr_links = \ - $(POTRACE_SRC)/potracelib.h - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/../../am/hdr_links.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign include/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; -$(top_srcdir)/../../am/hdr_links.am $(am__empty): - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -tags TAGS: - -ctags CTAGS: - -cscope cscopelist: - - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile all-local -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-local - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: all all-am all-local check check-am clean clean-generic \ - cscopelist-am ctags-am distclean distclean-generic \ - distclean-local distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \ - uninstall-am - -.PRECIOUS: Makefile - -all-local: - @for file in $(hdr_links); do \ - test -f $$file || continue; \ - inst=`echo $$file | sed -e 's/^.*\///'`; \ - test -f $$inst || { \ - rm -f $$inst; \ - if $(AM_V_P); then echo "$(LN_S) $$file $$inst"; \ - else echo " INST $$inst"; fi; \ - $(LN_S) $$file $$inst; } || exit 1; \ - done - -distclean-local: - rm -f *.h - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Build/source/libs/potrace/potrace-src/AUTHORS b/Build/source/libs/potrace/potrace-src/AUTHORS deleted file mode 100644 index f6b22007218..00000000000 --- a/Build/source/libs/potrace/potrace-src/AUTHORS +++ /dev/null @@ -1,11 +0,0 @@ -Known contributors are listed here, in alphabetical order by their -abbreviations (which are used in Changelog). - -Main author: - - PS1 Peter Selinger - -Contributors: - - CH1 Christoph Hormann (GeoJSON backend) - TA1 Tor Andersson (PDF backend) diff --git a/Build/source/libs/potrace/potrace-src/ChangeLog b/Build/source/libs/potrace/potrace-src/ChangeLog deleted file mode 100644 index 2402691f326..00000000000 --- a/Build/source/libs/potrace/potrace-src/ChangeLog +++ /dev/null @@ -1,422 +0,0 @@ -ChangeLog - -v1.15 2017/08/05 - (2017/08/05) PS1 - use round() instead of rint() - (2017/08/05) PS1 - portability: set both _POSIX_C_SOURCE and - _NETBSD_SOURCE to enable strdup prototype in string.h, as - _XOPEN_SOURCE=500 doesn't work on macOS, _XOPEN_SOURCE=600 doesn't - work on SunOS, and _POSIX_C_SOURCE alone doesn't work on Minix. - (2017/08/02) PS1 - fixed a potential arithmetic overflow. - (2017/06/17) PS1 - fixed a bug with very large bitmaps. Reported - by Michael Voříšek. - (2017/03/05) PS1 - autoconf: added --enable-local-getopt to avoid - using the system-wide getopt library (it may still end up being - used on GNU systems). - (2017/03/05) PS1 - portability: moved getopt.h to a subdirectory, - to be included only when needed. Reported by Daniel Macks. - (2017/03/05) PS1 - portability: use _XOPEN_SOURCE=600 to fix macOS - warning. - (2017/02/27) PS1 - fixed more buffer overflows (not security - critical), including one reported by Agostino Sarubbo. This also - fixes CVE-2017-12067. - -v1.14 2017/02/19 - (2017/02/19) PS1 - speed: use clang as default compiler if - available, and no longer use -ffloat-store even with gcc. - (2017/02/18) PS1 - corrected some exit codes, added some missing - error handlers. - (2017/02/17) PS1 - mkbitmap: bugfixes and improvements in parsing - image files. - (2017/02/15) PS1 - truncate the image size when bitmap data ends - prematurely. This fixes CVE-2016-8686, where Potrace appeared to - be "hanging" on a crafted input file. - (2017/02/14) PS1 - test suite: added tests for plain pnm files. - (2017/01/08) PS1 - fixed potential compiler issues due to signed - arithmetic overflow and arithmetic shifting. - (2017/01/07) PS1 - enable use of negative dy in bitmap data. - (2017/01/07) PS1 - test suite: moved data files to a subdirectory. - (2017/01/07) PS1 - test suite: added a check for -i flag. - (2017/01/07) PS1 - fixed buffer overflow CVE-2016-8685, reported - by Agostino Sarubbo. - (2015/10/24) PS1 - portability: use const char * for string - constants, required by C++11. Reported by Martin Gieseking. - (2015/10/24) PS1 - portability: extra spaces around string macros, - required by C++11. Reported by Martin Gieseking. - (2015/10/24) PS1 - portability: added more potential C compilers - to autoconf. Suggested by Nelson Beebe. - -v1.13 2015/10/22 - (2015/07/18) PS1 - fixed heap overflows, null pointer dereference - bugs and a memory leak. Reported by Agostino Sarubbo. - (2015/05/17) PS1 - man page: show which backends are dimension - based, and state more clearly that svg backend defaults to 72dpi. - (2015/04/11) PS1 - portability: ssize_t not supported on some - systems; use ptrdiff_t instead. Reported by Martin Gieseking. - (2015/03/28) PS1 - portability: added missing #includes for c99, - reported by Nelson Beebe. - (2015/03/27) PS1 - include config.h before other header files, - reported by Peter Breitenlohner. - (2015/03/26) PS1 - fixed division by zero bug triggered by bitmap - of dimension 1x0. Reported by Tomasz Buchert. - -v1.12 2015/03/24 - (2015/03/20) PS1 - fixed memory overflow bug triggered by very - large bitmaps. Fixes RedHat bug #955808 reported by Vincent Danen - and Debian bug #778646 reported by Moritz Muehlenhoff. - (2014/09/06) PS1 - test suite: added binary-check, to check that - files are written in binary mode. Mostly relevant on Windows. - (2014/09/06) PS1 - portability: fixed potential binary file mode - bug on MinGW64. - (2014/03/30) PS1 - man pages: fixed leading blank page with - groff -man -Tps. - (2013/12/29) PS1 - portability: made regular expressions in test - suite POSIX compliant, reported by Ben Bullock. - (2013/05/14) PS1 - distribution: removed libtool from distribution. - -v1.11 2013/02/19 - (2013/02/10) PS1 - bitops.c: added "cc" as a clobbered register. - (2012/09/13) PS1 - GeoJSON backend: -u option affects rounding, - not scaling. - (2012/09/12) CH1 - added GeoJSON backend. - (2012/03/04) PS1 - minor change in behavior of alphamax parameter: - make a corner if alpha >= alphamax (instead of >). This makes - little practical difference, except when alphamax = 0, in which - case we now get a polygon. Fixes bug #3495854, reported by - scribbleink. - (2012/02/24) PS1 - added support for BMP format with bitfields. - -v1.10 2011/08/19 - (2011/08/07) PS1 - added --tight option - (2011/08/05) PS1 - backends: simplified dimension calculations - (2011/08/05) PS1 - eps backend: prevent integer overflow in - bounding box. - (2011/08/05) PS1 - disallow resolution of 0 dpi. - (2011/08/05) PS1 - man page: added BACKEND TYPES section - (2011/08/05) PS1 - fixed default scaling at 72dpi for - variable-sized backends - (2011/08/02) PS1 - new gimppath backend produces SVG output - suitable for current versions of Gimp. - (2011/08/02) PS1 - added a --flat option for the SVG backend. - (2011/07/31) PS1 - test suite: renamed *.out files to prevent - make's built-in implicit rules from accidentally overwriting them. - (2011/07/26) PS1 - added DXF backend. Thanks to Jonas Benedett - Dorr for testing. - (2011/07/26) PS1 - use high resolution bounding box in EPS, PDF, - and SVG backends - (2011/05/13) PS1 - autoconf: CADD can now be given at compile time - -v1.9 2010/12/21 - (2010/12/20) PS1 - getopt.h: fixed compiler warnings - (2010/12/20) PS1 - added --tty option to specify progress bar - rendering at runtime. - (2010/12/20) PS1 - added simplified progress bar for Windows or - other dumb terminals. New --enable-dumb-tty configuration option. - (2010/12/16) PS1 - test suite: fixed bug where a failed test was - not reported in backend-check.sh - (2010/12/15) PS1 - test suite: support for $EXEEXT - (2010/12/15) PS1 - optimized penalty3 inner loop, 4.6% speedup. - (2010/12/15) PS1 - autoconf: new CADD variable to add to CFLAGS - (2010/12/15) PS1 - fixed some compiler warnings, added some error - handlers, and added some cosmetic top-level free's. - (2010/11/25) PS1 - added support for some BMP version 4 and 5 - files, and for top-down BMP files. Suggested by Kanwar Sangwan. - (2010/11/13) PS1 - don't enter filter mode if -- is used - (2010/11/09) PS1 - greymap.h, bitmap.h: drop unneeded dependencies - (2010/09/07) PS1 - autoconf: fixed getopt_long test to allow - cross-compiling, bug #3061403, reported by Igor Filippov. - (2010/08/31) PS1 - test suite: added environment variables - CHECK_POTRACE and CHECK_MKBITMAP to allow binaries outside the - build tree to be tested - (2010/08/09) PS1 - autoconf: converted to libtool - (2010/08/05) PS1 - autoconf: renamed configure.in as configure.ac - (2010/08/05) PS1 - autoconf: added --with-libpotrace to optionally - install the Potrace library and header files. - (2009/08/03) PS1 - portability: c++ wrapper in potracelib.h, - suggested by Peter Jankuliak. - (2009/05/13) PS1 - added pdfpage backend for fixed pagesize PDF - output. - (2009/04/07) PS1 - decompose.c: minor optimization - (2008/10/08) PS1 - mkbitmap: speed increase by 8% to 26% by - eliminating unnecessary bounds checks and interpolation. - (2008/10/05) PS1 - trace.c: separate function for path reversal - (2008/10/03) PS1 - progress.h: do the right thing if progress == - NULL - (2008/10/03) PS1 - moved detrand() to auxiliary.h - (2008/08/21) PS1 - mkbitmap: added --blur option. - (2008/08/12) PS1 - combined the old -V option with -v. - (2008/08/12) PS1 - test suite: adjusted tolerances to fix bug - #1745456 - (2007/12/31) PS1 - include curve.h where path_t is used - (2007/12/28) PS1 - flush stderr when interleaved with stdout - (2007/12/28) PS1 - portability: don't hardcode size of short int - (2007/11/09) PS1 - eps backend: use save-restore to avoid - polluting caller's dictionary and for page independence. - (2007/05/22) PS1 - xfig backend: added depth to opaque components - to avoid them floating to the background. Suggested by Rafael - Laboissiere. - -v1.8 2007/04/09 - (2007/04/08) PS1 - portability: use 'test' instead of '[' in shell - scripts. - (2007/04/08) PS1 - test suite: run PDF checks as a separate test. - (2007/04/06) PS1 - fixed logical expressions in flate.c - (2007/02/19) PS1 - portability: replacements for inline and M_PI - (2007/01/16) PS1 - test suite: added checks for rotation in - PostScript, PDF, and PGM backends - (2007/01/16) PS1 - pdf backend: added rotation - (2007/01/16) PS1 - pdf backend: renamed shipcom() function - (2007/01/14) PS1 - autoconf: check if getopt_long reorders its - arguments. - (2007/01/13) PS1 - made pseudo-random number generation - thread-safe and much faster. - (2006/12/20) PS1 - renamed some structures in lzw.c, main.h - (2006/12/20) PS1 - portability: fixed some compiler issues for - Amiga, reported by Andreas Kleinert. - (2006/12/20) PS1 - main.c: changed some return types to void. - (2006/08/14) PS1 - made curve.c:privcurve_free_members() static. - (2005/12/22) PS1 - renamed README.win as README-WIN - (2005/11/11) PS1 - portability: use binary file i/o in Cygwin. - Suggested by Henry He. - (2005/06/24) PS1 - potracelib: fixed allocation bug, reported by - Jung Shin. - (2005/06/23) PS1 - potracelib_demo.c: free resources properly. - (2005/06/23) PS1 - initialize unused private state to 0. - (2005/06/23) PS1 - decompose.c: improved memory allocation scheme. - (2005/05/06) PS1 - added "alphacurve" field to private curve - structure, so that backends that don't use the public interface - (such as the EPS backend) can be warned of non-conforming curves. - -v1.7 2005/03/06 - (2005/03/05) PS1 - fixed progress bar subrange bug. - -v1.6 2005/02/27 - (2005/02/22) PS1 - added "epsilon" feature to progress bar. - (2005/02/22) PS1 - documentation: changed potracelib documentation - to TeX format. - (2005/02/07) PS1 - tweaked progress bar - (2005/01/24) PS1 - added --progress option to potrace frontend. - (2005/01/24) PS1 - potracelib: added progress bar interface. - (2005/01/23) PS1 - fixed overflow bug in fast summing code. - (2005/01/23) PS1 - rewrote trace.c:bestpolygon(). This speeds up - potrace by 20% on typical data and up to 60% in some bad cases. - (2004/12/07) PS1 - documentation: added potracelib.txt - (2004/12/07) PS1 - renamed aux.h as auxiliary.h, since aux is an - invalid filename in Windows. - (2004/12/06) PS1 - API: added default parameters - (2004/12/06) PS1 - API: added potrace_state_t - (2004/12/06) PS1 - API: added "const" qualifiers - (2004/12/06) PS1 - removed conv and areac fields from privpath_t. - (2004/12/06) PS1 - changed bounding box handling in decompose.c - (2004/12/06) PS1 - split curve_t into public and private parts. - (2004/12/06) PS1 - moved curve/path allocation to curve.c. - (2004/12/06) PS1 - renamed a type in lzw.h. - (2004/12/06) PS1 - renamed source files. - (2004/12/04) PS1 - split path_t into public and private parts. - (2004/12/03) PS1 - split core functionality from user interface. - (2004/12/03) PS1 - moved parts of bitmap.h to potracelib.h. Split - bitmap.c into bitmap.c and bitmap_io.c. Moved path decomposition - auxiliary functions from bitmap.c to path.c. - (2004/12/03) PS1 - converted some stray local functions to static - (2004/12/01) PS1 - moved basic curve data type definitions to - potracelib.h - (2004/12/01) PS1 - collected some repeatedly used macros in aux.h - (2004/12/01) PS1 - started to create API to potrace core - functionality in potracelib.c and potracelib.h. Also added new - libpotrace.a target. - (2004/12/01) PS1 - made curve.c and path.c reentrant by removing - global variable "info". - (2004/11/28) PS1 - made a85* auxiliary functions static in - flate.c. - (2004/11/28) PS1 - pdf backend: removed arbitrary page limit. - (2004/11/24) PS1 - pdf backend: replaced ftell() by explicit byte - count to work correctly with stdout. - (2004/11/24) PS1 - portability: use binary file i/o in MinGW. - (2004/10/08) PS1 - minor cleanup in backend_pdf.c. - (2004/09/21) PS1 - replace -O3 compilation default by -O2; inlined - critical functions manually instead. - (2004/09/18) PS1 - slightly optimized multiplications in - curve.c:bezier(). Thanks to Thomas M.Ott for suggesting it. - (2004/09/16) PS1 - list of backends in help message is now - generated. - (2004/09/16) PS1 - test suite: added test for pdf backend. - (2004/09/14) PS1 - removed bits.c, renamed bits.h to bitops.h, and - use static inline functions instead of macros. - (2004/09/14) PS1 - test suite: adjusted tolerances. - (2004/09/12) PS1 - mkbitmap: when reading plain pbm files, use - colors 0 and 255, not 0 and 1. - (2004/09/12) PS1 - potrace and mkbitmap: don't complain about - "junk at the end of file" if the junk is whitespace and - comments. Treat files which contain only whitespace and comments - as empty. - (2004/08/05) TA1 - added pdf backend. - -v1.5 2004/07/08 - (2004/07/08) PS1 - removed dependency on external "compress" - program. Removed ztops.c, added lzw.c, bits.c. - (2004/03/17) PS1 - don't leave temporary file /tmp/have_compress.* - lying around. - (2004/03/06) PS1 - fixed a type error in have_compress.c:28. - -v1.4 2004/03/06 - (2004/03/05) PS1 - removed the compile-time check for the - "compress" program and replaced it by a run-time check. - (2004/03/03) PS1 - ztops.c: fixed compression bug where garbage - was added after the end of stream. - (2004/02/09) PS1 - further optimized the speed of the function - path.c:pathlist_to_tree, which now takes less than 0.1% of total - running time. - (2004/02/09) PS1 - distribution: removed potrace.{ps,pdf} from - distribution, changed textfiles to DOS mode in Cygwin distribution - (2004/01/19) PS1 - corrected a bug in 1.2 which caused an enormous - slowdown in the function path.c:pathlist_to_tree. - (2004/01/17) PS1 - test suite: better quoting in shell scripts to - be more robust against spaces in filenames etc. - (2004/01/17) PS1 - test suite and ztops.c: respect TEMPDIR - environment variable, if set. - -v1.3 2004/01/15 - (2004/01/14) PS1 - test suite: adjusted tolerances. - (2004/01/13) PS1 - when reading a bitmap of width or height 0, - pretend the offending dimension is 1. This is not 100% logical - in all cases, but better than producing garbage. - (2004/01/13) PS1 - fixed bounding box in xfig backend. - (2004/01/13) PS1 - added missing gsave/grestore to ps backend. - (2004/01/07) PS1 - autoconf: search for zlib.h in - ${prefix}/include and for libz.so in ${prefix}/lib, in case they - are not found elsewhere. - (2004/01/07) PS1 - eliminated some unused variables. - (2004/01/07) PS1 - portability: eliminated typeof() from - mkbitmap.c - (2004/01/07) PS1 - test suite: added a test for empty bitmaps. - (2003/12/25) PS1 - fixed bug #866223: potrace crashes when applied - to an empty bitmap. - (2003/12/25) PS1 - when options -2 or -3 are unsupported, ignore - them rather than failing, for improved compatibility. - (2003/12/25) PS1 - autoconf: added --disable-zlib configuration - option and improved error messages for missing zlib.h or libz.so - (2003/12/25) PS1 - portability: eliminated dynamic arrays in - mkbitmap.c - (2003/12/25) PS1 - test suite: added a check for mkbitmap. - (2003/12/25) PS1 - test suite: more portable filesize checking in - backend-check.sh - -v1.2 2003/12/23 - (2003/12/23) PS1 - added an xfig backend. - (2003/12/23) PS1 - added --group option to group related shapes - together in SVG backend. - (2003/12/23) PS1 - added --opaque option to paint white shapes - opaquely, instead of leaving them transparent, in PS/EPS and SVG - backends. - (2003/12/23) PS1 - rewrote path decomposition algorithm to - calculate path containment tree, to be used for grouping. - (2003/12/23) PS1 - test suite: added a check of postscript output - using ghostscript. - (2003/09/18) PS1 - autoconf: added tests for -lm and -lz - libraries, and for zlib.h header file. - (2003/09/18) PS1 - portability: cleaned up code so that it can be - compiled with a C++ compiler. - (2003/09/17) PS1 - code cleanup in main.c:main(). - (2003/09/17) PS1 - added mkbitmap program. - (2003/09/17) PS1 - added -ffloat-store compiler flag for improved - floating point predictability. - (2003/09/12) PS1 - test suite: added test for BMP runlength - encoding. - (2003/09/12) PS1 - fixed frontend for BMP runlength encoding. - (2003/09/11) PS1 - autoconf: added test to work around gcc - compiler bug 12243, which affected curve.c:adjust_vertices(). - (2003/09/11) PS1 - renamed pbm.c as bitmap.c, pgm.c as greymap.c - (2003/09/11) PS1 - moved some bitmap details from path.c to pbm.c - (2003/09/10) PS1 - renamed pbm.h macros to start with BM_ - (2003/09/02) PS1 - portability: added missing fallback value for - M_PI to backend_pgm.c. - (2003/08/28) PS1 - specialized matrix solving code for n=2. - (2003/08/28) PS1 - portability (and scalability): eliminated - dynamic arrays. - (2003/08/28) PS1 - portability: replaced vsnprintf by vsprintf. - (2003/08/28) PS1 - portability: provided fallback value for M_PI - (2003/08/27) PS1 - autoconf: now checks whether the compress - program works, not just whether it exists. - (2003/08/27) PS1 - test suite: wrote three tests for "make check" - (2003/08/27) PS1 - portability: fixed some floating point errors - on DEC Alpha: division by zero and log of zero. - (2003/08/27) PS1 - changed bitmap representation to take advantage - of 64-bit architectures. - (2003/08/27) PS1 - changed default scaling in ps and eps modes for - small page sizes. - (2003/08/26) PS1 - allow arguments of command line options -b, -z, - -P to be abbreviated by "unambiguous prefix". - (2003/08/26) PS1 - added rotation to gimppath backend. - (2003/08/24) PS1 - portability: removed GNU extensions from printf - format strings in backend_eps. - (2003/08/22) PS1 - converted --unit to double value. - (2003/08/22) PS1 - added experimental gimppath backend. - (2003/08/20) PS1 - close paths in postscript/eps backend. - (2003/08/20) PS1 - fixed bug in parsing command line options: long - options --cleartext, --level2, --level3 did not work properly. - Thanks to George Williams for reporting this bug. - -v1.1 2003/08/18 - (2003/08/17) PS1 - replaced calc_lon algorithm by a faster - implementation. This results in speedups of up to factor 3.3 for - certain large input files. - (2003/08/17) PS1 - added --invert option. - (2003/08/17) PS1 - improved error messages on wrong file format. - (2003/08/17) PS1 - code cleanup to build under fussier compilers. - Thanks to Nelson Beebe for submitting compiler logs for a large - number of setups. - (2003/08/17) PS1 - renamed curve.c:quad as quadform to avoid name - clash on IBM AIX, Compaq/DEC ODF/1. - (2003/08/17) PS1 - autoconf: let user override CFLAGS at configure - time, and use -Wall and -O3 only for gcc compiler - (2003/08/16) PS1 - added --blacklevel option to control - image-to-bitmap conversion - (2003/08/16) PS1 - added ability to read BMP files. Changed error - reporting in case of empty files, or if there is junk at the end - of a file in multipage mode. - (2003/08/14) PS1 - as a convenience, now also read files in PGM - and PPM format and convert to bitmap by simple threshold method. - This is because many programs, including the Gimp and the *topnm - tools, produce PNM output which must be further converted to PBM. - (2003/08/14) PS1 - rearranged order of options in usage message. - (2003/08/14) PS1 - implemented -d1 option for SVG backend. This - outputs a jaggy bitmap with no smoothing. - (2003/08/14) PS1 - autoconf: improved handling of - --enable-compress - (2003/08/14) PS1 - added SVG backend. - (2003/08/14) PS1 - renamed old -s option as -S - (2003/08/12) PS1 - added README.win - (2003/08/12) PS1 - autoconf: fixed bug #787182: added non-standard - compile time options to help message for ./configure script - -v1.0 2003/08/10 - (2003/08/10) PS1 - added file i/o code - (2003/08/08) PS1 - optimized number of times the penalty3 function - is called. Speedups of factor 2.7 were observed on large files. - (2003/08/08) PS1 - added --opttolerance and --alphamax options. - (2003/08/07) PS1 - autoconf: changed configure.in so that test for - compress is omitted when the user overrides it - this prevents a - wrong cached value to be read. - (2003/08/07) PS1 - keep output flushed in postscript mode - (2003/08/07) PS1 - fixed memory leak in multiple page mode - (2003/08/06) PS1 - replaced --opticurve by --longcurve option; - opticurve is now the default - (2003/08/06) PS1 - added opticurve sensitivity to pgm backend - (2003/08/06) PS1 - restricted opticurves to be bounded away from - 180 degrees - (2003/08/06) PS1 - allow margins and papersize to determine width - if it is not defined by other means in postscript mode - (2003/08/06) PS1 - added ability to read multiple bitmaps in - postscript mode - (2003/08/05) PS1 - new --longcoding option - (2003/08/05) PS1 - new optimized eps backend which works with - opticurve. - (2003/07/31) PS1 - replaced O(n^3) calc_lon algorithm by a new - O(n^2) algorithm. Observed speedups of factor 80. - (2003/07/27) PS1 - added --opticurve option and integrated - opticurve code in curve.c - (2003/06/04) PS1 - made bm_to_pathlist a lot more efficient by - scanning and clearing only bounding box of mask in inner scan. - (2002/11/17) PS1 - changed bm_to_pathlist prototype to use - explicit return value. - (2002/10/09) PS1 - autoconf: added automake/autoconf scripts in - preparation for public distribution. diff --git a/Build/source/libs/potrace/potrace-src/Makefile.am b/Build/source/libs/potrace/potrace-src/Makefile.am deleted file mode 100644 index dc74076c1b7..00000000000 --- a/Build/source/libs/potrace/potrace-src/Makefile.am +++ /dev/null @@ -1,11 +0,0 @@ -## Copyright (C) 2001-2017 Peter Selinger. -## This file is part of Potrace. It is free software and it is covered -## by the GNU General Public License. See the file COPYING for details. - -## Process this file with automake to produce Makefile.in - -EXTRA_DIST = README-WIN - -ACLOCAL_AMFLAGS = -I m4 - -SUBDIRS = src doc check diff --git a/Build/source/libs/potrace/potrace-src/NEWS b/Build/source/libs/potrace/potrace-src/NEWS deleted file mode 100644 index 39c44ddc954..00000000000 --- a/Build/source/libs/potrace/potrace-src/NEWS +++ /dev/null @@ -1,148 +0,0 @@ -August 5, 2017: Release 1.15 - - This release consists of bugfixes and minor portability improvements. - Some potential buffer overflows and arithmetic overflows were fixed, - including CVE-2017-12067. A bug triggered by very large bitmaps has - been fixed. A new configuration option --enable-local-getopt was - added. Thanks to Agostino Sarubbo, Daniel Macks, and Michael Voříšek - for reporting bugs and suggesting improvements. - -February 19, 2017: Release 1.14 - - This release consists of bugfixes and minor portability improvements. - A number of bugs triggered by malformed BMP files have been fixed, - including CVE-2016-8685 and CVE-2016-8686. Error reporting has been - improved. The image size is now truncated when the bitmap data ends - prematurely. It is now possible to use negative dy in bitmap - data. Portability has been improved to encompass C++11. The default - compiler is now clang if available. Thanks to Nelson Beebe and Martin - Gieseking for reporting portability issues, and to Agostino Sarubbo - for reporting bugs. - -October 22, 2015: Release 1.13 - - Some critical bugs in the processing of BMP files were fixed. These - bugs allowed the program to be crashed, or potentially to be abused - in other ways, by feeding it specially crafted BMP files. Thanks to - Tomasz Buchert and Agostino Sarubbo for reporting these bugs. - Portability was improved for C99 and for MSVC++. Thanks to Peter - Breitenlohner, Nelson Beebe, and Martin Gieseking for reporting - portability issues. - -March 24, 2015: Release 1.12 - - Fixed memory overflow bug triggered by very large bitmaps. Fixed - binary file mode on 64-bit Windows. Portability improvements. - -February 19, 2013: Release 1.11 - - A GeoJSON backend was added; thanks to Christoph Hormann for - contributing this. Support for bitfields in the BMP format was - added. A minor change was made to the behavior of the alphamax - parameter; a value of 0 now gives a true polygon. - -August 19, 2011: Release 1.10 - - A DXF backend was added. The output is in the drawing interchange - format used by computer aided design software. Thanks to Jonas - Benedett Dorr for testing. The Gimppath backend was changed to be - compatible with current versions of Gimp. The EPS, PDF, and SVG - backends now use high-resolution bounding boxes. The default scaling - of the EPS, PDF, and SVG backends is now fixed at 72dpi. A new option - --flat was added to the SVG backend. A new option --tight was added - to remove whitespace around the input image before calculating its - scaling and placement. - -December 21, 2010: Release 1.9 - - The xfig and eps backends were improved, and a fixed pagesize PDF - backend was added. Support for BMP version 4 and version 5 files, as - well as top-down BMP files, was added. Minor speed improvements to - Potrace and major speed improvements to mkbitmap. A Gaussian blur - option was added to mkbitmap. Libtool is now used to build and - optionally install the Potrace library. An optional simplified - progress bar was added for dumb terminals. This release also contains - some portability improvements, cross-compilation improvements, and - minor bug fixes. - -April 9, 2007: Release 1.8 - - This release contains minor bugfixes and portability improvements. - Rotation is now implemented in the PDF backend. - -March 6, 2005: Release 1.7 - - This is a bugfix release. A bug in the progress bar code, which - caused arithmetic exceptions on some 64-bit architectures, has been - fixed. - -February 27, 2005: Release 1.6 - - This release contains an algorithm improvement that leads to a - speedup of 20-60% over previous versions of Potrace. A new PDF - backend was added, courtesy of Tor Andersson. An option --progress - was added for displaying a progress bar. The Windows version of - Potrace now uses MinGW instead of Cygwin, eliminating the need to - install a special DLL alongside the executable programs, and solving - some problems with wildcards and executable PostScript files. Some - spurious "premature end of file" messages were eliminated. The - core functionality of Potrace was separated into a library with a - documented API, making it easier for developers to incorporate - Potrace into other GPL-licensed software. - -July 8, 2004: Release 1.5 - - The LZW patent has finally expired in Canada. Therefore, postscript - level 2 compression can now be implemented directly within Potrace, - without having to rely on the external "compress" program. This - release makes the necessary corrections. - -March 6, 2004: Release 1.4 - - This is a bugfix release. Fixed the bug which sometimes caused - Potrace to "hang" on large input files. Also fixed some bugs in the - compression code. The presence of the "compress" program is now - determined at run-time, rather than compile-time. No new features or - command line options were added. - -January 15, 2004: Release 1.3 - - This is primarily a bugfix release. Version 1.2 fatally crashed when - applied to an empty (all white) bitmap. The options -2 and -3 are now - ignored when unsupported, rather than causing an error. There were - some improvements to the test suite, autoconfiguration, and - portability. The bounding box in the xfig backend was fixed, and the - postscript output now has better page encapsulation. Bitmaps of - dimension 0 are now tolerated better. - -December 23, 2003: Release 1.2 - - New experimental Gimppath and XFig backends were added. A separate - program mkbitmap was added, which can be used as a preprocessor to - Potrace. It turns greyscale or color images into high-quality - bitmaps with optional scaling and filtering. New options --opaque, - --group, and --fillcolor were added for greater flexibility in - generating editable PostScript and SVG output. The bitmap - decomposition algorithm was improved and can now take advantage of - 64-bit platforms. Portability and autoconfiguration were vastly - improved, and a test suite was added. Runlength encoded BMP files can - now be read. Some bugs in command line options were fixed. - -August 18, 2003: Release 1.1 - - The most important new feature of this release is an SVG (scalable - vector graphics) backend. This file format can be read by vector - graphics manipulation programs such as sodipodi, as well as web - browsers with an SVG plugin. I also added PGM, PPM, and BMP as - additional input file formats. The new --blacklevel and --invert - options control how non-black-and-white images are converted to - bitmaps before being processed by Potrace. The implementation of a - critical function has been improved to make Potrace even faster on - large input files; this results in speedups of up to factor 3.3 - relative to Potrace 1.0. Autoconfiguration was improved, and the code - was polished to compile on more different architectures. The error - messages for wrong file formats were also improved. - -August 10, 2003: Release 1.0 - - First public release. diff --git a/Build/source/libs/potrace/potrace-src/README b/Build/source/libs/potrace/potrace-src/README deleted file mode 100644 index 491c0c3ca4d..00000000000 --- a/Build/source/libs/potrace/potrace-src/README +++ /dev/null @@ -1,215 +0,0 @@ - - POTRACE - transform bitmaps into vector graphics - - * * * - -DESCRIPTION - - Potrace is a tool for tracing a bitmap, which means, transforming a - bitmap into a smooth, scalable image. The input is a bitmap (PBM, - PGM, PPM, or BMP), and the output is one of several vector file - formats. A typical use is to create SVG or PDF files from scanned - data, such as company or university logos, handwritten notes, etc. - The resulting image is not "jaggy" like a bitmap, but smooth. It can - then be rendered at any resolution. - - Potrace can currently produce the following output formats: SVG, PDF, - EPS, PostScript, DXF, GeoJSON, PGM (for easy antialiasing of - pixel-based images), Gimppath, and XFig. Additional backends might be - added in the future. - - A separate program, mkbitmap, is also provided. This program can act - as a pre-processor for Potrace, applying scaling and various filters - to an image before converting it to a bitmap. This is useful for - potracing greyscale and color images. - -DEPENDENCIES - - Potrace relies on the zlib library for PostScript level 3 - compression. This library is pre-installed on most modern systems. - If not present, it can be obtained from http://www.gzip.org/zlib/. - -COMPILATION - - For generic compilation instructions, see the file INSTALL. In - addition, the following compile time options (options to ./configure) - are supported. - - --with-libpotrace install Potrace library and headers (default: no) - --disable-zlib disable PostScript level 3 compression - --enable-metric use metric units (centimeters) as default - --enable-a4 use a4 as the default papersize - --enable-dumb-tty use simplified ASCII-only progress bar - --enable-local-getopt avoid using the system-wide getopt library - - See also ./configure --help. - -INSTALLING - - If you are installing from sources, just do "make install" as root. - If you are installing from a binary distribution, just copy the - "potrace" and "mkbitmap" binaries to a place where the operating - system expects them, such as /usr/local/bin. Also copy the files - "potrace.1" and "mkbitmap.1" to a directory where the operating - system looks for man pages, such as /usr/local/man/man1. For - instructions on installing Potrace under Windows, see the file - README-WIN - -USAGE - - For more detailed usage information, see the man page. - - Usage: potrace [options] [filename...] - General options: - -h, --help - print this help message and exit - -v, --version - print version info and exit - -l, --license - print license info and exit - File selection: - - an input file - -o, --output - write all output to this file - -- - end of options; 0 or more input filenames follow - Backend selection: - -b, --backend - select backend by name - -b svg, -s, --svg - SVG backend (scalable vector graphics) - -b pdf - PDF backend (portable document format) - -b pdfpage - fixed page-size PDF backend - -b eps, -e, --eps - EPS backend (encapsulated PostScript) (default) - -b ps, -p, --postscript - PostScript backend - -b pgm, -g, --pgm - PGM backend (portable greymap) - -b dxf - DXF backend (drawing interchange format) - -b geojson - GeoJSON backend - -b gimppath - Gimppath backend (GNU Gimp) - -b xfig - XFig backend - Algorithm options: - -z, --turnpolicy - how to resolve ambiguities in path decomposition - -t, --turdsize - suppress speckles of up to this size (default 2) - -a, --alphamax - corner threshold parameter (default 1) - -n, --longcurve - turn off curve optimization - -O, --opttolerance - curve optimization tolerance (default 0.2) - -u, --unit - quantize output to 1/unit pixels (default 10) - -d, --debug - produce debugging output of type n (n=1,2,3) - Scaling and placement options: - -P, --pagesize - page size (default is letter) - -W, --width - width of output image - -H, --height - height of output image - -r, --resolution [x] - resolution (in dpi) (dimension-based backends) - -x, --scale [x] - scaling factor (pixel-based backends) - -S, --stretch - yresolution/xresolution - -A, --rotate - rotate counterclockwise by angle - -M, --margin - margin - -L, --leftmargin - left margin - -R, --rightmargin - right margin - -T, --topmargin - top margin - -B, --bottommargin - bottom margin - --tight - remove whitespace around the input image - Color options, supported by some backends: - -C, --color #rrggbb - set foreground color (default black) - --fillcolor #rrggbb - set fill color (default transparent) - --opaque - make white shapes opaque - SVG options: - --group - group related paths together - --flat - whole image as a single path - Postscript/EPS/PDF options: - -c, --cleartext - do not compress the output - -2, --level2 - use postscript level 2 compression (default) - -3, --level3 - use postscript level 3 compression - -q, --longcoding - do not optimize for file size - PGM options: - -G, --gamma - gamma value for anti-aliasing (default 2.2) - Frontend options: - -k, --blacklevel - black/white cutoff in input file (default 0.5) - -i, --invert - invert bitmap - Progress bar options: - --progress - show progress bar - --tty - progress bar rendering: vt100 or dumb - - Dimensions can have optional units, e.g. 6.5in, 15cm, 100pt. - Default is inches (or pixels for pgm, dxf, and gimppath backends). - Possible input file formats are: pnm (pbm, pgm, ppm), bmp. - Backends are: svg, pdf, pdfpage, eps, postscript, ps, dxf, geojson, pgm, - gimppath, xfig. - -POTRACE LIBRARY (FOR DEVELOPERS) - - As of Potrace release 1.6, the Potrace core functionality has been - separated into a library libpotrace.a. This makes it easy to integrate - tracing functionality into other GPL programs. The API of the library - is defined in the header file potracelib.h, and is documented in - doc/potracelib.pdf. It is not by default installed, but can be - installed with the --with-libpotrace configuration option. - -DOCUMENTATION - - Usage information is contained in the man page: - http://potrace.sourceforge.net/potrace.html - - Many common questions are answered in the FAQ: - http://potrace.sourceforge.net/faq.html - - Some examples are given on the following web pages: - http://potrace.sourceforge.net/samples.html - http://potrace.sourceforge.net/mkbitmap.html - - The inner workings of the potrace algorithm are explained here: - http://potrace.sourceforge.net/potrace.pdf - - The potrace library is documented here: - http://potrace.sourceforge.net/potracelib.pdf - -COPYRIGHT - - Copyright (C) 2001-2017 Peter Selinger - - The use of the name "Potrace" is governed by a separate policy, see - TRADEMARKS below. - - 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - See also http://www.gnu.org/. - - See the file COPYING for details. - -TRADEMARKS - - "Potrace" is a trademark of Peter Selinger. - - Policy on using the name "Potrace". If you are planning to modify - Potrace, including making a port of Potrace to another programming - language, please be aware of the following. While the source code of - Potrace is licensed under the GNU General Public License, the name - "Potrace" is my trademark, and may only be used with my permission. - - In practice, I will permit the use of the name "Potrace" in - connection with a port of Potrace to another programming language, - provided that the port complies with the term of the GNU General - Public License and produces the same high quality vectorized output - as the original Potrace. Ports that are buggy or do not produce high - quality output are not permitted to use the name "Potrace". To ensure - compliance with this policy, please run your port by me before making - it public. Also, if you use the "Potrace" name (or any derivative, - such as "MyPotrace"), you must provide a name and email address where - I can reach you. Derivatives of Potrace that are posted anonymously - or where the authors cannot be reached or do not reply to email or - bug reports are not permitted to use the name "Potrace". - - The purpose of this policy is to allow people to port Potrace to as - many programming languages as possible, while also ensuring that all - such ports are of the same high quality that has come to be - associated with the name "Potrace". - -GPG KEY - - The key fingerprint of Peter Selinger's GPG key is: - 12A2 4B3C 3790 B688 E484 7A98 A68B CC37 CA31 696A - This may be useful for authenticating future versions of Potrace. diff --git a/Build/source/libs/potrace/potrace-src/README-WIN b/Build/source/libs/potrace/potrace-src/README-WIN deleted file mode 100644 index 416b84f87ee..00000000000 --- a/Build/source/libs/potrace/potrace-src/README-WIN +++ /dev/null @@ -1,49 +0,0 @@ - - POTRACE - transform bitmaps into vector graphics - - README for Windows - _________________________________________________________________ - -This file contains instructions specific to the pre-compiled Windows -distribution of Potrace. Please see the general README file and the -man page for general information on usage, how to compile Potrace, -etc. - - -INSTALLATION for Windows: -========================= - -Download the file potrace-XXX.win32.zip (or potrace-XXX.win64.zip if -you want the 64-bit version). Unpack it with your favorite unzipping -tool, such as unzip, 7-Zip, WinZip, or just right-clicking on the -file. - -If you have "tar" and "gunzip" installed, you may also get the tar.gz -file instead of the zip file. - -The distribution includes the executable programs potrace.exe and -mkbitmap.exe. You need to move these files to a place where Windows -looks for programs, for example C:\WINDOWS. Alternatively, you can -amend your PATH environment variable, by adding something like the -following line to C:\AUTOEXEC.BAT: - - PATH=%PATH%;C:\DIRECTORY\WHERE\FILES\ARE - - -RUNNING: -======== - -For non-Windows specific usage information, see the file README. - -Potrace on Windows runs in much the same way as under Linux and other -Unix-like operating systems. You must run Potrace from the command -line (also known as the MSDOS Prompt). File names can be given in Unix -style or Windows style, thus the following will both work: - - potrace h:/data/file.txt - potrace h:\data\file.txt - -Wildcards can also be used, as in: - - potrace h:\data\*.* - potrace h:/data/*.* diff --git a/Build/source/libs/potrace/potrace-src/config.h.in b/Build/source/libs/potrace/potrace-src/config.h.in deleted file mode 100644 index 9375fca7207..00000000000 --- a/Build/source/libs/potrace/potrace-src/config.h.in +++ /dev/null @@ -1,109 +0,0 @@ -/* config.h.in. Generated from configure.ac by autoheader. */ - -/* Use the simplified progress bar? */ -#undef DUMB_TTY - -/* Define to 1 if you have the header file. */ -#undef HAVE_DLFCN_H - -/* Does the C compiler have gcc bug 12243? */ -#undef HAVE_GCC_LOOP_BUG - -/* Can we use Intel 386 optimizations? */ -#undef HAVE_I386 - -/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H - -/* Do we have the zlib library? */ -#undef HAVE_ZLIB - -/* Define to the sub-directory where libtool stores uninstalled libraries. */ -#undef LT_OBJDIR - -/* Name of the mkbitmap binary */ -#undef MKBITMAP - -/* Define if missing from math.h */ -#undef M_PI - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the home page for this package. */ -#undef PACKAGE_URL - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* Name of the potrace binary */ -#undef POTRACE - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Use a4 papersize by default? */ -#undef USE_A4 - -/* Use metric units by default? */ -#undef USE_METRIC - -/* Version number of package */ -#undef VERSION - -/* Define for Solaris 2.5.1 so the uint64_t typedef from , - , or is not used. If the typedef were allowed, the - #define below would cause a syntax error. */ -#undef _UINT64_T - -/* Define to `__inline__' or `__inline' if that's what the C compiler - calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef __cplusplus -#undef inline -#endif - -/* Replacement function for strcasecmp */ -#undef strcasecmp - -/* Replacement function for strncasecmp */ -#undef strncasecmp - -/* Define to the type of an unsigned integer type of width exactly 64 bits if - such a type exists and the standard includes do not define it. */ -#undef uint64_t diff --git a/Build/source/libs/potrace/potrace-src/configure.ac b/Build/source/libs/potrace/potrace-src/configure.ac deleted file mode 100644 index 354a640d536..00000000000 --- a/Build/source/libs/potrace/potrace-src/configure.ac +++ /dev/null @@ -1,285 +0,0 @@ -dnl Copyright (C) 2001-2017 Peter Selinger. -dnl This file is part of Potrace. It is free software and it is covered -dnl by the GNU General Public License. See the file COPYING for details. - -dnl Process this file with autoconf to produce a configure script. - -dnl ---------------------------------------------------------------------- -dnl Package info -AC_INIT([potrace],[1.15],[selinger at users.sourceforge.net]) -AC_CONFIG_SRCDIR(src/trace.c) -AM_INIT_AUTOMAKE -AC_CONFIG_HEADER(config.h) -AC_CONFIG_MACRO_DIR([m4]) - -DATE="August 2017" - -dnl ---------------------------------------------------------------------- -dnl The names of the installed executables are defined here, but -dnl should not normally be changed. - -POTRACE=potrace -AC_DEFINE_UNQUOTED(POTRACE,"$POTRACE",Name of the potrace binary) - -MKBITMAP=mkbitmap -AC_DEFINE_UNQUOTED(MKBITMAP,"$MKBITMAP",Name of the mkbitmap binary) - -dnl ---------------------------------------------------------------------- -dnl figure out compiler options - -dnl Check for compiler -AC_PROG_CC([clang gcc cc c99 mgcc c89 pcc opencc sunc99 suncc]) - -dnl Also add CADD to the CFLAGS at configure time or compile time -AC_SUBST(CADD) - -AC_MSG_CHECKING(what compiler options to use) -AC_MSG_RESULT($CADD $CFLAGS) - -dnl ---------------------------------------------------------------------- -dnl check if --with-libpotrace was given - this must be done -dnl before LT_INIT so that we can avoid building shared libraries -dnl when they are not going to be installed. - -AC_ARG_WITH(libpotrace, - AS_HELP_STRING([--with-libpotrace],[install Potrace library and headers [default=no]])) - -if test "$with_libpotrace" != yes; then - enable_shared=no -fi - -dnl ---------------------------------------------------------------------- -dnl Figure out how to build libraries - -AC_LIBTOOL_WIN32_DLL -LT_INIT - -dnl ---------------------------------------------------------------------- -dnl Figure out whether to install libraries (default: no) - -AC_MSG_CHECKING(whether to install the Potrace library) -if test "$with_libpotrace" = yes; then - AC_MSG_RESULT(yes) - INSTLIBS="libpotrace.la" - INSTHEADERS="potracelib.h" -else - AC_MSG_RESULT(no) -fi -AC_SUBST(INSTLIBS) -AC_SUBST(INSTHEADERS) - -dnl ---------------------------------------------------------------------- -dnl check for compiler bugs. - -dnl The GCC compiler used to have a loop optimization bug that affected -dnl potrace. This bug had been present since gcc-2.X and was still -dnl pending (as of gcc version 3.3.1). Since the presence of this bug -dnl cannot be reliably tested, and I am not sure in which version it was -dnl fixed, we simply assume (conservatively) that all gcc compilers may -dnl have this bug. In future: add a test that checks the compiler -dnl version. - -if test "$GCC" = "yes"; then - AC_MSG_CHECKING([whether gcc has bug number 12243]) - AC_DEFINE(HAVE_GCC_LOOP_BUG,, [Does the C compiler have gcc bug 12243?]) - AC_MSG_RESULT(maybe) -fi - -dnl ---------------------------------------------------------------------- -dnl check for features - -AC_MSG_CHECKING(whether to use zlib) -AC_ARG_ENABLE(zlib, - AS_HELP_STRING([--disable-zlib],[disable PostScript level 3 compression])) -if test "$enable_zlib" != no; then - AC_DEFINE(HAVE_ZLIB,, Do we have the zlib library?) - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - -dnl Set optional defaults -AC_MSG_CHECKING(whether to default to metric units) -AC_ARG_ENABLE(metric, - AS_HELP_STRING([--enable-metric],[use metric units (centimeters) as default])) -if test "$enable_metric" = yes; then - AC_DEFINE(USE_METRIC,, Use metric units by default?) - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - -AC_MSG_CHECKING(whether to default to a4 paper size) -AC_ARG_ENABLE(a4, - AS_HELP_STRING([--enable-a4],[use a4 as the default papersize])) -if test "$enable_a4" = yes; then - AC_DEFINE(USE_A4,, Use a4 papersize by default?) - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - -AC_MSG_CHECKING(whether to use the simplified progress bar) -AC_ARG_ENABLE(dumb-tty, - AS_HELP_STRING([--enable-dumb-tty], [use simplified ASCII-only progress bar])) -dumb_tty="$enable_dumb_tty" -if test -z "$dumb_tty"; then - AC_CANONICAL_HOST - if test "$host_os" = "mingw32"; then - dumb_tty="yes" - fi -fi -if test "$dumb_tty" = "yes"; then - AC_DEFINE(DUMB_TTY,, Use the simplified progress bar?) - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - -dnl ---------------------------------------------------------------------- -dnl Calculate value of "prefix", to aid guessing of include file and -dnl library locations. - -USERPREFIX="$prefix" -if test "$USERPREFIX" = "NONE"; then - USERPREFIX="$ac_default_prefix" -fi - -dnl ---------------------------------------------------------------------- -dnl Check for header files - -if test "$enable_zlib" != no; then - AC_CHECK_HEADER(zlib.h, true, - [AC_MSG_WARN([zlib.h not found in standard location. -Trying again with -I$USERPREFIX/include]) - CPPFLAGS="$CPPFLAGS -I$USERPREFIX/include" - dnl need to unset cached value to repeat the test - unset ac_cv_header_zlib_h - AC_CHECK_HEADER(zlib.h, true, - [AC_MSG_ERROR([cannot find zlib.h. -Rerun ./configure with CPPFLAGS=-I if you have the header -file in a non-standard directory, or with --disable-zlib to disable -support for PostScript level 3 compression.]) - ]) - ]) -fi - -dnl ---------------------------------------------------------------------- -dnl Check for symbols -AC_CHECK_DECL(M_PI, , - AC_DEFINE(M_PI, 3.14159265358979323846, [Define if missing from math.h]), - [#include ]) - -dnl ---------------------------------------------------------------------- -dnl Check for libraries - -if test "$enable_zlib" != no; then - AC_CHECK_LIB(z, deflate, EXTRA_LIBS="$EXTRA_LIBS -lz", - [AC_MSG_WARN([libz library not found in standard location. -Trying again with -L$USERPREFIX/lib]) - LDFLAGS="$LDFLAGS -L$USERPREFIX/lib" - dnl need to unset cached value to repeat the test - unset ac_cv_lib_z_deflate - AC_CHECK_LIB(z, deflate, EXTRA_LIBS="$EXTRA_LIBS -lz", - [AC_MSG_ERROR([cannot find the libz library (-lz). -Rerun ./configure with LDFLAGS=-L if you have the library in -a non-standard directory, or with --disable-zlib to disable support -for PostScript level 3 compression.]) - ]) - ]) -fi - -AC_CHECK_LIB(m, floor, true, AC_MSG_ERROR([cannot find the m library (-lm)])) - -dnl ---------------------------------------------------------------------- -dnl Check for types - -AC_TYPE_UINT64_T - -dnl ---------------------------------------------------------------------- -dnl Check for library functions. - -dnl Check for getopt_long -AC_CHECK_FUNC(getopt_long, have_getopt_long=yes, have_getopt_long=no) -if test "$have_getopt_long" = "yes"; then - dnl Check whether getopt_long reorders its arguments - AC_MSG_CHECKING([whether getopt_long reorders its arguments]) - AC_RUN_IFELSE([AC_LANG_PROGRAM( - [[ #include - static struct option longopts[] = { - {"help", 0, 0, 'h'}, - {0, 0, 0, 0} - }; - ]], - [[ int ac = 3; - char *av[] = { "main", "file", "-h" }; - return 'h' == getopt_long(ac, av, "h", longopts, (int *)0) ? 0 : 1; - ]])], - [AC_MSG_RESULT(yes)], - [AC_MSG_RESULT(no) - have_getopt_long=no], - [AC_MSG_RESULT(maybe (cross-compiling)) - have_getopt_long=no]) -fi - -AC_ARG_ENABLE(local-getopt, - AS_HELP_STRING([--enable-local-getopt],[avoid using the system-wide getopt library])) - -AC_MSG_CHECKING(whether to use local getopt) -if test "$have_getopt_long" != "yes" || test "$enable_local_getopt" = yes; then - EXTRA_OBJS="$EXTRA_OBJS getopt.o getopt1.o" - EXTRA_INCLUDES="$EXTRA_INCLUDES -I\$(srcdir)/include/getopt" - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - -AC_CHECK_FUNC(strcasecmp, , - [AC_CHECK_FUNC(stricmp, - [AC_DEFINE_UNQUOTED(strcasecmp, stricmp, [Replacement function for strcasecmp])], - [AC_MSG_ERROR([cannot find a replacement for strcasecmp])] - )] -) -AC_CHECK_FUNC(strncasecmp, , - [AC_CHECK_FUNC(strnicmp, - [AC_DEFINE_UNQUOTED(strncasecmp, strnicmp, [Replacement function for strncasecmp])], - [AC_MSG_ERROR([cannot find a replacement for strncasecmp])] - )] -) - -dnl ---------------------------------------------------------------------- -dnl Check whether we have i386 features -AC_MSG_CHECKING([for Intel 386]) -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[int x; - asm("bsf %1,%0\njnz 0f\nmovl $32,%0\n0:":"=r"(x):"r"(x)); - return x; /* need this so that -O2 does not optimize the asm away */ -]])],[AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_I386,, Can we use Intel 386 optimizations?) -],[AC_MSG_RESULT(no)]) - - -dnl ---------------------------------------------------------------------- -dnl Check whether compiler supports inlining - -AC_C_INLINE - -dnl ---------------------------------------------------------------------- -dnl Set up substitutions of non-standard configuration parameters -AC_SUBST(DATE) -AC_SUBST(POTRACE) -AC_SUBST(MKBITMAP) -AC_SUBST(EXTRA_OBJS) -AC_SUBST(EXTRA_INCLUDES) -AC_SUBST(EXTRA_LIBS) -AC_SUBST(AM_CPPFLAGS) -AC_SUBST(POTRACELIB_VERSION) - -dnl ---------------------------------------------------------------------- -AC_CONFIG_FILES([Makefile - src/Makefile - doc/Makefile - check/Makefile - doc/potrace.1 - doc/mkbitmap.1 - ]) -AC_OUTPUT diff --git a/Build/source/libs/potrace/potrace-src/src/Makefile.am b/Build/source/libs/potrace/potrace-src/src/Makefile.am deleted file mode 100644 index e83bfc14fe1..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/Makefile.am +++ /dev/null @@ -1,59 +0,0 @@ -## Copyright (C) 2001-2017 Peter Selinger. -## This file is part of Potrace. It is free software and it is covered -## by the GNU General Public License. See the file COPYING for details. - -## Process this file with automake to produce Makefile.in - -AM_CFLAGS = $(CADD) - -#---------------------------------------------------------------------- -# programs: - -bin_PROGRAMS = potrace mkbitmap -EXTRA_PROGRAMS = potracelib_demo - -potrace_SOURCES = main.c main.h bitmap_io.c bitmap_io.h backend_eps.c \ - backend_eps.h flate.c flate.h lists.h greymap.c greymap.h render.c \ - render.h backend_pgm.c backend_pgm.h backend_svg.c backend_svg.h \ - backend_xfig.c backend_xfig.h backend_dxf.c backend_dxf.h \ - backend_pdf.c backend_pdf.h backend_geojson.c backend_geojson.h \ - lzw.c lzw.h bitops.h auxiliary.h potracelib.h bitmap.h curve.h \ - platform.h progress.h progress_bar.c progress_bar.h bbox.c bbox.h \ - trans.c trans.h -potrace_LDADD = libpotrace.la @EXTRA_OBJS@ -lm @EXTRA_LIBS@ -potrace_DEPENDENCIES = libpotrace.la @EXTRA_OBJS@ - -mkbitmap_SOURCES = mkbitmap.c bitmap_io.c bitmap_io.h greymap.c \ - greymap.h platform.h bitmap.h potracelib.h bitops.h -mkbitmap_LDADD = @EXTRA_OBJS@ -lm -mkbitmap_DEPENDENCIES = @EXTRA_OBJS@ - -potracelib_demo_SOURCES = potracelib_demo.c -potracelib_demo_LDADD = libpotrace.la -lm -potracelib_demo_DEPENDENCIES = libpotrace.la - -AM_CPPFLAGS = @EXTRA_INCLUDES@ - -#---------------------------------------------------------------------- -# Potrace library: - -libsources = curve.c curve.h trace.c trace.h decompose.c \ - decompose.h potracelib.c potracelib.h lists.h auxiliary.h bitmap.h \ - progress.h - -lib_LTLIBRARIES = $(INSTLIBS) -EXTRA_LTLIBRARIES = libpotrace.la -libpotrace_la_SOURCES = $(libsources) -libpotrace_la_LDFLAGS = -version-info 0:5:0 -rpath '$(libdir)' \ - -export-symbols $(srcdir)/libpotrace-export.sym -no-undefined -libpotrace_la_LIBADD = -lm -MOSTLYCLEANFILES = libpotrace.la - -# header files to install -include_HEADERS = $(INSTHEADERS) -EXTRA_HEADERS = potracelib.h - -#---------------------------------------------------------------------- -# other stuff to distribute - -EXTRA_DIST = getopt.c getopt1.c include/getopt/getopt.h libpotrace-export.sym diff --git a/Build/source/libs/potrace/potrace-src/src/auxiliary.h b/Build/source/libs/potrace/potrace-src/src/auxiliary.h deleted file mode 100644 index bb0c6e03cb9..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/auxiliary.h +++ /dev/null @@ -1,80 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -/* This header file collects some general-purpose macros (and static - inline functions) that are used in various places. */ - -#ifndef AUXILIARY_H -#define AUXILIARY_H - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include - -/* ---------------------------------------------------------------------- */ -/* point arithmetic */ - -#include "potracelib.h" - -struct point_s { - long x; - long y; -}; -typedef struct point_s point_t; - -typedef potrace_dpoint_t dpoint_t; - -/* convert point_t to dpoint_t */ -static inline dpoint_t dpoint(point_t p) { - dpoint_t res; - res.x = p.x; - res.y = p.y; - return res; -} - -/* range over the straight line segment [a,b] when lambda ranges over [0,1] */ -static inline dpoint_t interval(double lambda, dpoint_t a, dpoint_t b) { - dpoint_t res; - - res.x = a.x + lambda * (b.x - a.x); - res.y = a.y + lambda * (b.y - a.y); - return res; -} - -/* ---------------------------------------------------------------------- */ -/* some useful macros. Note: the "mod" macro works correctly for - negative a. Also note that the test for a>=n, while redundant, - speeds up the mod function by 70% in the average case (significant - since the program spends about 16% of its time here - or 40% - without the test). The "floordiv" macro returns the largest integer - <= a/n, and again this works correctly for negative a, as long as - a,n are integers and n>0. */ - -/* integer arithmetic */ - -static inline int mod(int a, int n) { - return a>=n ? a%n : a>=0 ? a : n-1-(-1-a)%n; -} - -static inline int floordiv(int a, int n) { - return a>=0 ? a/n : -1-(-1-a)/n; -} - -/* Note: the following work for integers and other numeric types. */ -#undef sign -#undef abs -#undef min -#undef max -#undef sq -#undef cu -#define sign(x) ((x)>0 ? 1 : (x)<0 ? -1 : 0) -#define abs(a) ((a)>0 ? (a) : -(a)) -#define min(a,b) ((a)<(b) ? (a) : (b)) -#define max(a,b) ((a)>(b) ? (a) : (b)) -#define sq(a) ((a)*(a)) -#define cu(a) ((a)*(a)*(a)) - -#endif /* AUXILIARY_H */ diff --git a/Build/source/libs/potrace/potrace-src/src/backend_dxf.c b/Build/source/libs/potrace/potrace-src/src/backend_dxf.c deleted file mode 100644 index 978f6d120a8..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/backend_dxf.c +++ /dev/null @@ -1,278 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -/* The DXF backend of Potrace. */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include - -#include "main.h" -#include "backend_dxf.h" -#include "potracelib.h" -#include "lists.h" -#include "auxiliary.h" -#include "trans.h" - -#ifndef M_PI -#define M_PI 3.14159265358979323846 -#endif - -/* ---------------------------------------------------------------------- */ -/* auxiliary linear algebra functions */ - -/* subtract two vectors */ -static dpoint_t sub(dpoint_t v, dpoint_t w) { - dpoint_t r; - - r.x = v.x - w.x; - r.y = v.y - w.y; - return r; -} - -/* inner product */ -static double iprod(dpoint_t v, dpoint_t w) { - return v.x * w.x + v.y * w.y; -} - -/* cross product */ -static double xprod(dpoint_t v, dpoint_t w) { - return v.x * w.y - v.y * w.x; -} - -/* calculate the DXF polyline "bulge" value corresponding to the angle - between two vectors. In case of "infinity" return 0.0. */ -static double bulge(dpoint_t v, dpoint_t w) { - double v2, w2, vw, vxw, nvw; - - v2 = iprod(v, v); - w2 = iprod(w, w); - vw = iprod(v, w); - vxw = xprod(v, w); - nvw = sqrt(v2 * w2); - - if (vxw == 0.0) { - return 0.0; - } - - return (nvw - vw) / vxw; -} - -/* ---------------------------------------------------------------------- */ -/* DXF output synthesis */ - -/* print with group code: the low-level DXF file format */ -static int ship(FILE *fout, int gc, const char *fmt, ...) { - va_list args; - int r; - int c; - - r = fprintf(fout, "%3d\n", gc); - if (r < 0) { - return r; - } - c = r; - va_start(args, fmt); - r = vfprintf(fout, fmt, args); - va_end(args); - if (r < 0) { - return r; - } - c += r; - r = fprintf(fout, "\n"); - if (r < 0) { - return r; - } - c += r; - return c; -} - -/* output the start of a polyline */ -static void ship_polyline(FILE *fout, const char *layer, int closed) { - ship(fout, 0, "POLYLINE"); - ship(fout, 8, "%s", layer); - ship(fout, 66, "%d", 1); - ship(fout, 70, "%d", closed ? 1 : 0); -} - -/* output a vertex */ -static void ship_vertex(FILE *fout, const char *layer, dpoint_t v, double bulge) { - ship(fout, 0, "VERTEX"); - ship(fout, 8, "%s", layer); - ship(fout, 10, "%f", v.x); - ship(fout, 20, "%f", v.y); - ship(fout, 42, "%f", bulge); -} - -/* output the end of a polyline */ -static void ship_seqend(FILE *fout) { - ship(fout, 0, "SEQEND"); -} - -/* output a comment */ -static void ship_comment(FILE *fout, const char *comment) { - ship(fout, 999, "%s", comment); -} - -/* output the start of a section */ -static void ship_section(FILE *fout, const char *name) { - ship(fout, 0, "SECTION"); - ship(fout, 2, "%s", name); -} - -static void ship_endsec(FILE *fout) { - ship(fout, 0, "ENDSEC"); -} - -static void ship_eof(FILE *fout) { - ship(fout, 0, "EOF"); -} - -/* ---------------------------------------------------------------------- */ -/* Simulated quadratic and bezier curves */ - -/* Output vertices (with bulges) corresponding to a smooth pair of - circular arcs from A to B, tangent to AC at A and to CB at - B. Segments are meant to be concatenated, so don't output the final - vertex. */ -static void pseudo_quad(FILE *fout, const char *layer, dpoint_t A, dpoint_t C, dpoint_t B) { - dpoint_t v, w; - double v2, w2, vw, vxw, nvw; - double a, b, c, y; - dpoint_t G; - double bulge1, bulge2; - - v = sub(A, C); - w = sub(B, C); - - v2 = iprod(v, v); - w2 = iprod(w, w); - vw = iprod(v, w); - vxw = xprod(v, w); - nvw = sqrt(v2 * w2); - - a = v2 + 2*vw + w2; - b = v2 + 2*nvw + w2; - c = 4*nvw; - if (vxw == 0 || a == 0) { - goto degenerate; - } - /* assert: a,b,c >= 0, b*b - a*c >= 0, and 0 <= b - sqrt(b*b - a*c) <= a */ - y = (b - sqrt(b*b - a*c)) / a; - G = interval(y, C, interval(0.5, A, B)); - - bulge1 = bulge(sub(A,G), v); - bulge2 = bulge(w, sub(B,G)); - - ship_vertex(fout, layer, A, -bulge1); - ship_vertex(fout, layer, G, -bulge2); - return; - - degenerate: - ship_vertex(fout, layer, A, 0); - - return; -} - -/* produce a smooth from A to D, tangent to AB at A and to CD at D. - This is similar to a Bezier curve, except that our curve will be - made up of up to 4 circular arcs. This is particularly intended for - the case when AD and BC are parallel. Like arcs(), don't output the - final vertex. */ -static void pseudo_bezier(FILE *fout, const char *layer, dpoint_t A, dpoint_t B, dpoint_t C, dpoint_t D) { - dpoint_t E = interval(0.75, A, B); - dpoint_t G = interval(0.75, D, C); - dpoint_t F = interval(0.5, E, G); - - pseudo_quad(fout, layer, A, E, F); - pseudo_quad(fout, layer, F, G, D); - return; -} - -/* ---------------------------------------------------------------------- */ -/* functions for converting a path to a DXF polyline */ - -/* do one path. */ -static int dxf_path(FILE *fout, const char *layer, potrace_curve_t *curve, trans_t t) { - int i; - dpoint_t *c, *c1; - int n = curve->n; - - ship_polyline(fout, layer, 1); - - for (i=0; ic[i]; - c1 = curve->c[mod(i-1,n)]; - switch (curve->tag[i]) { - case POTRACE_CORNER: - ship_vertex(fout, layer, trans(c1[2], t), 0); - ship_vertex(fout, layer, trans(c[1], t), 0); - break; - case POTRACE_CURVETO: - pseudo_bezier(fout, layer, trans(c1[2], t), trans(c[0], t), trans(c[1], t), trans(c[2], t)); - break; - } - } - ship_seqend(fout); - return 0; -} - -/* ---------------------------------------------------------------------- */ -/* Backend. */ - -/* public interface for DXF */ -int page_dxf(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo) { - potrace_path_t *p; - trans_t t; - const char *layer = "0"; - - /* set up the coordinate transform (rotation) */ - t.bb[0] = imginfo->trans.bb[0]+imginfo->lmar+imginfo->rmar; - t.bb[1] = imginfo->trans.bb[1]+imginfo->tmar+imginfo->bmar; - t.orig[0] = imginfo->trans.orig[0]+imginfo->lmar; - t.orig[1] = imginfo->trans.orig[1]+imginfo->bmar; - t.x[0] = imginfo->trans.x[0]; - t.x[1] = imginfo->trans.x[1]; - t.y[0] = imginfo->trans.y[0]; - t.y[1] = imginfo->trans.y[1]; - - ship_comment(fout, "DXF data, created by " POTRACE " " VERSION ", written by Peter Selinger 2001-2017"); - - /* header section */ - ship_section(fout, "HEADER"); - - /* variables */ - ship(fout, 9, "$ACADVER"); - ship(fout, 1, "AC1006"); - ship(fout, 9, "$EXTMIN"); - ship(fout, 10, "%f", 0.0); - ship(fout, 20, "%f", 0.0); - ship(fout, 30, "%f", 0.0); - ship(fout, 9, "$EXTMAX"); - ship(fout, 10, "%f", t.bb[0]); - ship(fout, 20, "%f", t.bb[1]); - ship(fout, 30, "%f", 0.0); - - ship_endsec(fout); - - /* entities section */ - ship_section(fout, "ENTITIES"); - - /* write paths */ - list_forall (p, plist) { - dxf_path(fout, layer, &p->curve, t); - } - - ship_endsec(fout); - ship_eof(fout); - - fflush(fout); - return 0; -} - diff --git a/Build/source/libs/potrace/potrace-src/src/backend_dxf.h b/Build/source/libs/potrace/potrace-src/src/backend_dxf.h deleted file mode 100644 index f7784485915..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/backend_dxf.h +++ /dev/null @@ -1,15 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -#ifndef BACKEND_DXF_H -#define BACKEND_DXF_H - -#include "potracelib.h" -#include "main.h" - -int page_dxf(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo); - -#endif /* BACKEND_DXF_H */ - diff --git a/Build/source/libs/potrace/potrace-src/src/backend_eps.c b/Build/source/libs/potrace/potrace-src/src/backend_eps.c deleted file mode 100644 index d1f0cf3bec9..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/backend_eps.c +++ /dev/null @@ -1,863 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -/* The Postscript backend of Potrace. This can produce "ps" or "eps" - output, and different kinds of graphical debugging - output. Postscript compression is optionally supplied via the - functions in flate.c. */ - -#ifndef _POSIX_C_SOURCE -#define _POSIX_C_SOURCE 200809L -#endif - -#ifndef _NETBSD_SOURCE -#define _NETBSD_SOURCE 1 -#endif - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include -#include - -#include "potracelib.h" -#include "curve.h" -#include "main.h" -#include "backend_eps.h" -#include "flate.h" -#include "lists.h" -#include "auxiliary.h" - -#define SAFE_CALLOC(var, n, typ) \ - if ((var = (typ *)calloc(n, sizeof(typ))) == NULL) goto calloc_error - -typedef int color_t; - -#define black 0x000000 -#define red 0xff0000 -#define green 0x008000 -#define blue 0x0000ff - -#define TRY(x) if (x) goto try_error - -/* ---------------------------------------------------------------------- */ -/* functions for interfacing with compression backend */ - -/* xship: callback function that must be initialized before calling - any other functions of the "ship" family. xship_file must be - initialized too. */ - -/* print the token to f, but filtered through a compression - filter in case filter!=0 */ -static int (*xship)(FILE *f, int filter, const char *s, int len); -static FILE *xship_file; - -/* ship postscript code, filtered */ -static int ship(const char *fmt, ...) { - va_list args; - static char buf[4096]; /* static string limit is okay here because - we only use constant format strings - for - the same reason, it is okay to use - vsprintf instead of vsnprintf below. */ - va_start(args, fmt); - vsprintf(buf, fmt, args); - buf[4095] = 0; - va_end(args); - - xship(xship_file, 1, buf, strlen(buf)); - return 0; -} - -/* ship a postscript comment, unfiltered */ -static int shipcom(const char *fmt, ...) { - static char buf[4096]; - va_list args; - - va_start(args, fmt); - vsprintf(buf, fmt, args); - buf[4095] = 0; - va_end(args); - - xship(xship_file, 0, buf, strlen(buf)); - return 0; -} - -/* set all callback functions */ -static void eps_callbacks(FILE *fout) { - if (info.compress && info.pslevel==2) { - xship = lzw_xship; - } else if (info.compress && info.pslevel==3) { - xship = flate_xship; - } else { - xship = dummy_xship; - } - xship_file = fout; -} - -/* ---------------------------------------------------------------------- */ -/* postscript path-drawing auxiliary functions */ - -/* coordinate quantization */ -static inline point_t unit(dpoint_t p) { - point_t q; - - q.x = (long)(floor(p.x*info.unit+.5)); - q.y = (long)(floor(p.y*info.unit+.5)); - return q; -} - -/* current point */ -static point_t cur; - -static void eps_coords(dpoint_t p) { - cur = unit(p); - ship("%ld %ld ", cur.x, cur.y); -} - -static void eps_rcoords(dpoint_t p) { - point_t q; - - q = unit(p); - ship("%ld %ld ", q.x-cur.x, q.y-cur.y); - cur = q; -} - -static void eps_moveto(dpoint_t p) { - eps_coords(p); - ship("moveto\n"); -} - -/* move to point + offset */ -static void eps_moveto_offs(dpoint_t p, double xoffs, double yoffs) { - /* note: structs are passed by value, so the following assignment - does not modify the original struct in the caller */ - p.x += xoffs; - p.y += yoffs; - eps_coords(p); - ship("moveto\n"); -} - -static void eps_lineto(dpoint_t p) { - eps_rcoords(p); - ship("rlineto\n"); -} - -static void eps_curveto(dpoint_t p1, dpoint_t p2, dpoint_t p3) { - point_t q1, q2, q3; - - q1 = unit(p1); - q2 = unit(p2); - q3 = unit(p3); - - ship("%ld %ld %ld %ld %ld %ld rcurveto\n", q1.x-cur.x, q1.y-cur.y, q2.x-cur.x, q2.y-cur.y, q3.x-cur.x, q3.y-cur.y); - - cur = q3; -} - -/* this procedure returns a statically allocated string */ -static const char *eps_colorstring(const color_t col) { - double r, g, b; - static char buf[100]; - - r = (col & 0xff0000) >> 16; - g = (col & 0x00ff00) >> 8; - b = (col & 0x0000ff) >> 0; - - if (r==0 && g==0 && b==0) { - return "0 setgray"; - } else if (r==255 && g==255 && b==255) { - return "1 setgray"; - } else if (r == g && g == b) { - sprintf(buf, "%.3f setgray", r/255.0); - return buf; - } else { - sprintf(buf, "%.3f %.3f %.3f setrgbcolor", r/255.0, g/255.0, b/255.0); - return buf; - } -} - -static color_t eps_color = -1; -static double eps_width = -1; - -static void eps_setcolor(const color_t col) { - if (col == eps_color) { - return; - } - eps_color = col; - - ship("%s\n", eps_colorstring(col)); -} - -static void eps_linewidth(double w) { - if (w == eps_width) { - return; - } - eps_width = w; - ship("%f setlinewidth\n", w * info.unit); -} - -/* ---------------------------------------------------------------------- */ -/* functions for converting a path to postscript code */ - -/* ---------------------------------------------------------------------- */ -/* ASCII encoding */ - -/* explicit encoding, does not use special macros */ -static int eps_path_long(privcurve_t *curve) { - int i; - dpoint_t *c; - int m = curve->n; - - c = curve->c[m-1]; - eps_moveto(c[2]); - - for (i=0; ic[i]; - switch (curve->tag[i]) { - case POTRACE_CORNER: - eps_lineto(c[1]); - eps_lineto(c[2]); - break; - case POTRACE_CURVETO: - eps_curveto(c[0], c[1], c[2]); - break; - } - } - return 0; -} - -/* size-optimized encoding relies on special macros */ -static int eps_path_short(privcurve_t *curve) { - int i, i1; - long int *bq = NULL; /* bq[m] */ - long int *aq = NULL; /* aq[m] */ - point_t *v = NULL; /* v[m] */ - dpoint_t *q = NULL; /* q[m] */ - double M; - int m = curve->n; - - SAFE_CALLOC(bq, m, long int); - SAFE_CALLOC(aq, m, long int); - SAFE_CALLOC(v, m, point_t); - SAFE_CALLOC(q, m, dpoint_t); - - /* quantize vertices */ - for (i=0; ivertex[i]); - } - - /* quantize beta */ - for (i=0; ibeta[i] + 0.5); - if (curve->beta[i] != 0.5) { - q[i1] = interval(bq[i]/M, dpoint(v[i]), dpoint(v[i1])); - } else { - q[i1] = interval(0.5, dpoint(v[i]), dpoint(v[i1])); - } - } - - /* quantize alpha */ - for (i=0; itag[i] == POTRACE_CURVETO) { - aq[i] = (int)(M * curve->alpha[i] + 0.5); - if (aq[i] > M) { - aq[i]--; - } - } - } - - /* generate output */ - ship("%ld %ld ", v[m-1].x, v[m-1].y); - ship("%ld %ld ", v[0].x - v[m-1].x, v[0].y - v[m-1].y); - if (curve->beta[m-1] == 0.5) { - ship("i\n"); - } else { - ship("%ld I\n", bq[m-1]); - } - for (i=0; ibeta[i] != 0.5) { - ship("%ld ", bq[i]); - } - } - if (curve->tag[i] == POTRACE_CURVETO) { - ship(curve->beta[i] == 0.5 ? "%ld c\n" : "%ld C\n", aq[i]); - } else { - ship(curve->beta[i] == 0.5 ? "v\n" : "V\n"); - } - } - - free(bq); - free(aq); - free(v); - free(q); - return 0; - - calloc_error: - free(bq); - free(aq); - free(v); - free(q); - return 1; -} - -static int eps_path(privcurve_t *curve) { - if (info.longcoding==0 && curve->alphacurve) { - return eps_path_short(curve); - } else { - return eps_path_long(curve); - } -} - -/* ---------------------------------------------------------------------- */ -/* functions for rendering various internal data structures, used to - generate debugging output */ - -/* output jaggie curve in grey */ -static void eps_jaggy(potrace_path_t *plist) { - potrace_path_t *p; - int i; - - ship(".9 setgray\n"); - list_forall (p, plist) { - point_t *pt = p->priv->pt; - point_t cur, prev; - - if (p->sign == '+') { - cur = prev = pt[p->priv->len-1]; - eps_moveto(dpoint(cur)); - for (i=0; ipriv->len; i++) { - if (pt[i].x != cur.x && pt[i].y != cur.y) { - cur = prev; - eps_lineto(dpoint(cur)); - } - prev = pt[i]; - } - eps_lineto(dpoint(pt[p->priv->len-1])); - } else { - cur = prev = pt[0]; - eps_moveto(dpoint(cur)); - for (i=p->priv->len-1; i>=0; i--) { - if (pt[i].x != cur.x && pt[i].y != cur.y) { - cur = prev; - eps_lineto(dpoint(cur)); - } - prev = pt[i]; - } - eps_lineto(dpoint(pt[0])); - } - if (p->next == NULL || p->next->sign == '+') { - ship("fill\n"); - } - } -} - -/* output polygon */ -static void eps_polygon(privcurve_t *curve, const color_t col) { - int i; - int m = curve->n; - - eps_linewidth(.02); - eps_setcolor(col); - eps_moveto(curve->vertex[m-1]); - for (i=0; ivertex[i]); - } - ship("stroke\n"); -} - -/* output lines L and parameter alpha */ -static void eps_L(privcurve_t *curve, const color_t col) { - int i, i1; - double gamma; - dpoint_t p1, p4, p1l, p4l; - int m = curve->n; - - for (i=0; ialpha0[i1] * 0.75; - - p1 = curve->c[i][2]; - p4 = curve->c[i1][2]; - p1l = interval(gamma, p1, curve->vertex[i1]); - p4l = interval(gamma, p4, curve->vertex[i1]); - eps_linewidth(.02); - eps_setcolor(col); - eps_moveto(p1l); - eps_lineto(p4l); - ship("stroke\n"); - eps_moveto_offs(curve->vertex[i1], -.4, -.4); - ship("times (%.2f) show\n", curve->alpha0[i1]); - } -} - -/* ---------------------------------------------------------------------- */ -/* postscript macros */ - -/* special macros for size-optimized rendering of Bezier curves */ -static const char *optimacros = - "/D{bind def}def\n" - "/R{roll}D\n" - "/K{copy}D\n" - "/P{pop}D\n" - "/p{3 2 R add 3 1 R add exch}D\n" - "/t{dup 4 3 R mul 3 1 R mul}D\n" - "/a{dup 1 sub neg 4 1 R t 5 2 R t p}D\n" - "/m{2 K le{exch}if P}D\n" - "/n{abs exch abs m}D\n" - "/d{-1 t p n}D\n" - "/s{[4 2 R] cvx def}D\n" - "/g{7 K P 4 K P P d 5 1 R d 10 m m div 5 K 12 8 R 5 4 R a 9 4 R 3 2 R a 6 4 R curveto}D\n" - "/e{4 2 R lineto lineto P P}D\n" - "/q{3 K P n 10 m div}D\n" - "/f{x y 7 4 R 5 1 R 4 K p /y s 7 2 R 2 K 9 7 R 7 6 R t p 2 K /x s}D\n" - "/C{4 1 R q f 7 6 R g}D\n" - "/V{q f e}D\n" - "/c{3 1 R .5 f 7 6 R g}D\n" - "/v{.5 f e}D\n" - "/j{5 K P p /y s 3 K t 7 5 R p /x s x moveto P}D\n" - "/i{.5 j}D\n" - "/I{dup 6 1 R q j 3 2 R}D\n" - "/z{closepath}D\n" - "/b{%s z fill}D\n" - "/w{%s z fill}D\n"; - -/* special macros for debug output */ -static const char *debugmacros = - "/unit { %f } def\n" - "/box { newpath 0 0 moveto 0 1 lineto 1 1 lineto 1 0 lineto closepath } def\n" - "/circ { newpath 0 0 1 0 360 arc closepath } def\n" - "/dot { gsave .15 mul dup scale circ fill grestore } def\n" - "/sq { gsave unit unit scale -.5 -.5 translate box .02 setlinewidth stroke grestore } def\n" - "/sq1 { gsave translate sq unit .6 mul dot grestore } def\n" - "/dot2 { gsave translate unit dot grestore } def\n" - "/usq { gsave unit unit scale -.5 -.5 rmoveto 0 1 rlineto 1 0 rlineto 0 -1 rlineto closepath .02 setlinewidth stroke grestore } def\n" - "/dot1 { gsave translate unit .3 mul dup scale circ fill grestore } def\n" - "/times { /Times-Roman findfont unit .3 mul scalefont setfont } def\n" - "/times1 { /Times-Roman findfont unit 10 mul scalefont setfont 0 0 0 setrgbcolor } def\n" - "/times2 { /Times-Roman findfont unit 2 mul scalefont setfont 0 0 0 setrgbcolor } def\n"; - -/* ---------------------------------------------------------------------- */ -/* Backends for various types of output. */ - -/* Normal output: black on transparent */ -static int render0(potrace_path_t *plist) { - potrace_path_t *p; - - if (info.longcoding) { - eps_setcolor(info.color); - list_forall (p, plist) { - TRY(eps_path(p->priv->fcurve)); - ship("closepath\n"); - if (p->next == NULL || p->next->sign == '+') { - ship("fill\n"); - } - } - } else { - list_forall (p, plist) { - TRY(eps_path(p->priv->fcurve)); - if (p->next == NULL || p->next->sign == '+') { - ship("b\n"); - } else { - ship("z\n"); - } - } - } - return 0; - - try_error: - return 1; -} - -/* Opaque output: alternating black and white */ -static int render0_opaque(potrace_path_t *plist) { - potrace_path_t *p; - - if (info.longcoding) { - list_forall (p, plist) { - TRY(eps_path(p->priv->fcurve)); - ship("closepath\n"); - eps_setcolor(p->sign=='+' ? info.color : info.fillcolor); - ship("fill\n"); - } - } else { - list_forall (p, plist) { - TRY(eps_path(p->priv->fcurve)); - ship(p->sign=='+' ? "b\n" : "w\n"); - } - } - return 0; - - try_error: - return 1; -} - -/* Debug output type 1 (show optimal polygon) */ -static int render1(potrace_path_t *plist) { - potrace_path_t *p; - int i; - - eps_jaggy(plist); - - list_forall (p, plist) { - - point_t *pt = p->priv->pt; - int n = p->priv->len; - int m = p->priv->m; - int *po = p->priv->po; - - eps_linewidth(.02); - eps_setcolor(black); - /* output jaggie curve in boxed style */ - for (i=1; ipriv->curve, black); - eps_L(&p->priv->curve, black); - - /* output the vertex unit squares */ - for (i=0; ipriv->curve.n; i++) { - eps_moveto(p->priv->curve.vertex[i]); - ship("usq\n"); - } - - /* output the path */ - eps_linewidth(.1); - eps_setcolor(blue); - TRY(eps_path(&p->priv->curve)); - ship("closepath\n"); - ship("stroke\n"); - - if (info.param->opticurve && info.debug == 3) { - - /* output opticurve */ - eps_linewidth(.05); - eps_setcolor(red); - TRY(eps_path(&p->priv->ocurve)); - ship("closepath\n"); - ship("stroke\n"); - - /* output dots */ - for (i=0; ipriv->ocurve.n; i++) { - eps_coords(p->priv->ocurve.c[i][2]); - ship("dot1\n"); - } - } - } - return 0; - - try_error: - return 1; -} - -/* Free-style debug output */ -static int render_debug(potrace_path_t *plist) { - potrace_path_t *p; - int count; - int i; - - /* output original bitmap in grey */ - eps_jaggy(plist); - - count = -1; - list_forall (p, plist) { - count++; - - /* output path numbers */ - eps_moveto_offs(p->priv->curve.vertex[0], 0, 5); - ship("times1 (%d) show\n", count); - - /* output polygon with corrected edges, lines L, and parameter alpha */ - eps_polygon(&p->priv->curve, black); - eps_L(&p->priv->curve, black); - - /* output the vertex unit squares */ - for (i=0; ipriv->curve.n; i++) { - eps_moveto(p->priv->curve.vertex[i]); - ship("usq\n"); - } - - /* output the vertex numbers */ - for (i=0; ipriv->curve.n; i++) { - eps_moveto_offs(p->priv->curve.vertex[i], +1, +1); - ship("times2 (%d) show\n", i); - } - - /* output the path */ - eps_linewidth(.1); - eps_setcolor(blue); - TRY(eps_path(&p->priv->curve)); - ship("closepath\n"); - ship("stroke\n"); - - if (info.param->opticurve) { - - /* output the opti-verteces polygon */ - eps_polygon(&p->priv->ocurve, green); - - /* output opticurve */ - eps_linewidth(.05); - eps_setcolor(red); - TRY(eps_path(&p->priv->ocurve)); - ship("closepath\n"); - ship("stroke\n"); - - /* output dots */ - for (i=0; ipriv->ocurve.n; i++) { - eps_coords(p->priv->ocurve.c[i][2]); - ship("dot1\n"); - } - - /* output beta parameters */ - for (i=0; ipriv->ocurve.n; i++) { - eps_moveto_offs(p->priv->ocurve.c[i][2], +.4, -.4); - ship("times (%.2f) show\n", p->priv->ocurve.beta[i]); - } - } - } - return 0; - - try_error: - return 1; -} - -/* select the appropriate rendering function from above */ -static int eps_render(potrace_path_t *plist) { - int r; - - switch (info.debug) { - case 0: - if (info.opaque) { - r = render0_opaque(plist); - } else { - r = render0(plist); - } - break; - case 1: - r = render1(plist); - break; - case 2: case 3: - r = render2(plist); - break; - default: - r = render_debug(plist); - break; - } - return r; -} - -/* ---------------------------------------------------------------------- */ -/* EPS header and footer */ - -static int eps_init(imginfo_t *imginfo) { - double origx = imginfo->trans.orig[0] + imginfo->lmar; - double origy = imginfo->trans.orig[1] + imginfo->bmar; - double scalex = imginfo->trans.scalex / info.unit; - double scaley = imginfo->trans.scaley / info.unit; - char *c0, *c1; - - shipcom("%%!PS-Adobe-3.0 EPSF-3.0\n"); - shipcom("%%%%Creator: " POTRACE " " VERSION ", written by Peter Selinger 2001-2017\n"); - shipcom("%%%%LanguageLevel: %d\n", info.pslevel); - shipcom("%%%%BoundingBox: 0 0 %.0f %.0f\n", - ceil(imginfo->trans.bb[0]+imginfo->lmar+imginfo->rmar), - ceil(imginfo->trans.bb[1]+imginfo->tmar+imginfo->bmar)); - shipcom("%%%%HiResBoundingBox: 0 0 %f %f\n", - imginfo->trans.bb[0]+imginfo->lmar+imginfo->rmar, - imginfo->trans.bb[1]+imginfo->tmar+imginfo->bmar); - shipcom("%%%%Pages: 1\n"); - shipcom("%%%%EndComments\n"); - - shipcom("%%%%Page: 1 1\n"); - ship("save\n"); - if (!info.longcoding) { - c0 = strdup(eps_colorstring(info.color)); - c1 = strdup(eps_colorstring(info.fillcolor)); - if (!c0 || !c1) { - free(c0); - free(c1); - return 1; - } - ship(optimacros, c0, c1); - free(c0); - free(c1); - } - if (info.debug) { - ship(debugmacros, info.unit); - } - if (origx != 0 || origy != 0) { - ship("%f %f translate\n", origx, origy); - } - if (info.angle != 0) { - ship("%.2f rotate\n", info.angle); - } - ship("%f %f scale\n", scalex, scaley); - - return 0; -} - -static void eps_term(void) { - ship("restore\n"); - shipcom("%%%%EOF\n"); -} - -/* public interface for EPS */ -int page_eps(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo) { - eps_callbacks(fout); - - TRY(eps_init(imginfo)); - TRY(eps_render(plist)); - eps_term(); - return 0; - - try_error: - return 1; -} - -/* ---------------------------------------------------------------------- */ -/* PostScript header and footer */ - -static int eps_pagenumber; - -int init_ps(FILE *fout) { - char *c0, *c1; - - /* set callback functions for shipping routines */ - eps_callbacks(fout); - - shipcom("%%!PS-Adobe-3.0\n"); - shipcom("%%%%Creator: " POTRACE " " VERSION ", written by Peter Selinger 2001-2017\n"); - shipcom("%%%%LanguageLevel: %d\n", info.pslevel); - shipcom("%%%%BoundingBox: 0 0 %d %d\n", info.paperwidth, info.paperheight); - shipcom("%%%%Pages: (atend)\n"); - shipcom("%%%%EndComments\n"); - if (!info.longcoding || info.debug) { - shipcom("%%%%BeginSetup\n"); - if (!info.longcoding) { - c0 = strdup(eps_colorstring(info.color)); - c1 = strdup(eps_colorstring(info.fillcolor)); - if (!c0 || !c1) { - free(c0); - free(c1); - return 1; - } - ship(optimacros, c0, c1); - free(c0); - free(c1); - } - if (info.debug) { - ship(debugmacros, info.unit); - } - shipcom("%%%%EndSetup\n"); - } - eps_pagenumber = 0; - fflush(fout); - return 0; -} - -int term_ps(FILE *fout) { - eps_callbacks(fout); - - shipcom("%%%%Trailer\n"); - shipcom("%%%%Pages: %d\n", eps_pagenumber); - shipcom("%%%%EOF\n"); - fflush(fout); - - return 0; -} - -static void eps_pageinit_ps(imginfo_t *imginfo) { - double origx = imginfo->trans.orig[0] + imginfo->lmar; - double origy = imginfo->trans.orig[1] + imginfo->bmar; - double scalex = imginfo->trans.scalex / info.unit; - double scaley = imginfo->trans.scaley / info.unit; - - eps_pagenumber++; - eps_color = -1; - eps_width = -1; - - shipcom("%%%%Page: %d %d\n", eps_pagenumber, eps_pagenumber); - ship("save\n"); - if (origx != 0 || origy != 0) { - ship("%f %f translate\n", origx, origy); - } - if (info.angle != 0) { - ship("%.2f rotate\n", info.angle); - } - ship("%f %f scale\n", scalex, scaley); -} - -static void eps_pageterm_ps(void) { - ship("restore\n"); - ship("showpage\n"); -} - -int page_ps(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo) { - int r; - - eps_callbacks(fout); - - eps_pageinit_ps(imginfo); - - r = eps_render(plist); - if (r) { - return r; - } - - eps_pageterm_ps(); - - shipcom(""); - - fflush(fout); - - return 0; -} diff --git a/Build/source/libs/potrace/potrace-src/src/backend_eps.h b/Build/source/libs/potrace/potrace-src/src/backend_eps.h deleted file mode 100644 index d0dfd650b22..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/backend_eps.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -#ifndef BACKEND_EPS_H -#define BACKEND_EPS_H - -#include "potracelib.h" -#include "main.h" - -int init_ps(FILE *fout); -int page_ps(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo); -int term_ps(FILE *fout); - -int page_eps(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo); - -#endif /* BACKEND_EPS_H */ - diff --git a/Build/source/libs/potrace/potrace-src/src/backend_geojson.c b/Build/source/libs/potrace/potrace-src/src/backend_geojson.c deleted file mode 100644 index b929653d97c..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/backend_geojson.c +++ /dev/null @@ -1,223 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -/* The GeoJSON backend of Potrace. */ -/* Written 2012 by Christoph Hormann */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include - -#include "potracelib.h" -#include "curve.h" -#include "main.h" -#include "backend_geojson.h" -#include "lists.h" -#include "auxiliary.h" - -/* ---------------------------------------------------------------------- */ -/* auxiliary */ - -/* return a point on a 1-dimensional Bezier segment */ -static inline double bezier(double t, double x0, double x1, double x2, double x3) { - double s = 1-t; - return s*s*s*x0 + 3*(s*s*t)*x1 + 3*(t*t*s)*x2 + t*t*t*x3; -} - -static const char *format = "%f"; - -/* Convert a floating-point number to a string, using a pre-determined - format. The format must be previously set with set_format(). - Returns one of a small number of statically allocated strings. */ -static char *round_to_unit(double x) { - static int n = 0; - static char buf[4][100]; - - n++; - if (n >= 4) { - n = 0; - } - sprintf(buf[n], format, x); - return buf[n]; -} - -/* Select a print format for floating point numbers, appropriate for - the given scaling and info.unit. Note: the format must be so that - the resulting number fits into a buffer of size 100. */ -static void set_format(trans_t tr) { - double s; - int d; - static char buf[10]; - - s = min(fabs(tr.scalex), fabs(tr.scaley)); - if (info.unit != 0.0 && s != 0.0) { - d = (int)ceil(log(info.unit/s) / log(10)); - } else { - d = 0; - } - if (d <= 0) { - format = "%.0f"; - } else if (d <= 20) { - sprintf(buf, "%%.%df", d); - format = buf; - } else { - format = "%e"; - } -} - -/* ---------------------------------------------------------------------- */ -/* path-drawing auxiliary functions */ - -static dpoint_t cur; - -static void geojson_moveto(FILE *fout, dpoint_t p, trans_t tr) { - dpoint_t q; - - q = trans(p, tr); - - fprintf(fout, "[%s, %s]", round_to_unit(q.x), round_to_unit(q.y)); - - cur = q; -} - -static void geojson_lineto(FILE *fout, dpoint_t p, trans_t tr) { - dpoint_t q; - - q = trans(p, tr); - - fprintf(fout, ", [%s, %s]", round_to_unit(q.x), round_to_unit(q.y)); - - cur = q; -} - -static void geojson_curveto(FILE *fout, dpoint_t p1, dpoint_t p2, dpoint_t p3, trans_t tr) { - dpoint_t q1; - dpoint_t q2; - dpoint_t q3; - double step, t; - int i; - double x, y; - - q1 = trans(p1, tr); - q2 = trans(p2, tr); - q3 = trans(p3, tr); - - step = 1.0 / 8.0; - - for (i=0, t=step; i<8; i++, t+=step) { - x = bezier(t, cur.x, q1.x, q2.x, q3.x); - y = bezier(t, cur.y, q1.y, q2.y, q3.y); - - fprintf(fout, ", [%s, %s]", round_to_unit(x), round_to_unit(y)); - } - - cur = q3; -} - -/* ---------------------------------------------------------------------- */ -/* functions for converting a path to an SVG path element */ - -static int geojson_path(FILE *fout, potrace_curve_t *curve, trans_t tr) { - int i; - dpoint_t *c; - int m = curve->n; - - fprintf(fout, " ["); - - c = curve->c[m-1]; - geojson_moveto(fout, c[2], tr); - - for (i=0; ic[i]; - switch (curve->tag[i]) { - case POTRACE_CORNER: - geojson_lineto(fout, c[1], tr); - geojson_lineto(fout, c[2], tr); - break; - case POTRACE_CURVETO: - geojson_curveto(fout, c[0], c[1], c[2], tr); - break; - } - } - - fprintf(fout, " ]"); - - return 0; -} - - -static void write_polygons(FILE *fout, potrace_path_t *tree, trans_t tr, int first) { - potrace_path_t *p, *q; - - for (p=tree; p; p=p->sibling) { - - if (!first) fprintf(fout, ",\n"); - - fprintf(fout, "{ \"type\": \"Feature\",\n"); - fprintf(fout, " \"properties\": { },\n"); - fprintf(fout, " \"geometry\": {\n"); - fprintf(fout, " \"type\": \"Polygon\",\n"); - fprintf(fout, " \"coordinates\": [\n"); - - geojson_path(fout, &p->curve, tr); - - for (q=p->childlist; q; q=q->sibling) { - fprintf(fout, ",\n"); - geojson_path(fout, &q->curve, tr); - } - - fprintf(fout, " ]\n"); - fprintf(fout, " }\n"); - fprintf(fout, "}"); - - for (q=p->childlist; q; q=q->sibling) { - write_polygons(fout, q->childlist, tr, 0); - } - - first = 0; - } -} - -/* ---------------------------------------------------------------------- */ -/* Backend. */ - -/* public interface for GeoJSON */ -int page_geojson(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo) { - - trans_t tr; - - /* set up the coordinate transform (rotation) */ - tr.bb[0] = imginfo->trans.bb[0]+imginfo->lmar+imginfo->rmar; - tr.bb[1] = imginfo->trans.bb[1]+imginfo->tmar+imginfo->bmar; - tr.orig[0] = imginfo->trans.orig[0]+imginfo->lmar; - tr.orig[1] = imginfo->trans.orig[1]+imginfo->bmar; - tr.x[0] = imginfo->trans.x[0]; - tr.x[1] = imginfo->trans.x[1]; - tr.y[0] = imginfo->trans.y[0]; - tr.y[1] = imginfo->trans.y[1]; - - /* set the print format for floating point numbers */ - set_format(imginfo->trans); - - /* header */ - fprintf(fout, "{\n"); - fprintf(fout, "\"type\": \"FeatureCollection\",\n"); - fprintf(fout, "\"features\": [\n"); - - write_polygons(fout, plist, tr, 1); - - /* write footer */ - fprintf(fout, "\n]\n"); - fprintf(fout, "}\n"); - - fflush(fout); - - return 0; -} - diff --git a/Build/source/libs/potrace/potrace-src/src/backend_geojson.h b/Build/source/libs/potrace/potrace-src/src/backend_geojson.h deleted file mode 100644 index 02be534ef93..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/backend_geojson.h +++ /dev/null @@ -1,15 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -#ifndef BACKEND_GEO_H -#define BACKEND_GEO_H - -#include "potracelib.h" -#include "main.h" - -int page_geojson(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo); - -#endif /* BACKEND_GEO_H */ - diff --git a/Build/source/libs/potrace/potrace-src/src/backend_pdf.c b/Build/source/libs/potrace/potrace-src/src/backend_pdf.c deleted file mode 100644 index 2cbdd70da4e..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/backend_pdf.c +++ /dev/null @@ -1,441 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -/* The PDF backend of Potrace. Stream compression is optionally - supplied via the functions in flate.c. */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include -#include - -#include "main.h" -#include "backend_pdf.h" -#include "flate.h" -#include "lists.h" -#include "potracelib.h" -#include "auxiliary.h" - -typedef int color_t; - -#define TRY(x) if (x) goto try_error - -/* ---------------------------------------------------------------------- */ -/* auxiliary: growing arrays */ - -struct intarray_s { - int size; - int *data; -}; -typedef struct intarray_s intarray_t; - -static inline void intarray_init(intarray_t *ar) { - ar->size = 0; - ar->data = NULL; -} - -static inline void intarray_term(intarray_t *ar) { - free(ar->data); - ar->size = 0; - ar->data = NULL; -} - -/* Set ar[n]=val. Expects n>=0. Grows array if necessary. Return 0 on - success and -1 on error with errno set. */ -static inline int intarray_set(intarray_t *ar, int n, int val) { - int *p; - int s; - - if (n >= ar->size) { - s = n+1024; - p = (int *)realloc(ar->data, s * sizeof(int)); - if (!p) { - return -1; - } - ar->data = p; - ar->size = s; - } - ar->data[n] = val; - return 0; -} - -/* ---------------------------------------------------------------------- */ -/* some global variables */ - -static intarray_t xref; -static int nxref = 0; -static intarray_t pages; -static int npages; -static int streamofs; -static size_t outcount; /* output file position */ - -/* ---------------------------------------------------------------------- */ -/* functions for interfacing with compression backend */ - -/* xship: callback function that must be initialized before calling - any other functions of the "ship" family. xship_file must be - initialized too. */ - -/* print the token to f, but filtered through a compression - filter in case filter!=0 */ -static int (*xship)(FILE *f, int filter, const char *s, int len); -static FILE *xship_file; - -/* ship PDF code, filtered */ -static int ship(const char *fmt, ...) { - va_list args; - static char buf[4096]; /* static string limit is okay here because - we only use constant format strings - for - the same reason, it is okay to use - vsprintf instead of vsnprintf below. */ - va_start(args, fmt); - vsprintf(buf, fmt, args); - buf[4095] = 0; - va_end(args); - - outcount += xship(xship_file, 1, buf, strlen(buf)); - return 0; -} - -/* ship PDF code, unfiltered */ -static int shipclear(const char *fmt, ...) { - static char buf[4096]; - va_list args; - - va_start(args, fmt); - vsprintf(buf, fmt, args); - buf[4095] = 0; - va_end(args); - - outcount += xship(xship_file, 0, buf, strlen(buf)); - return 0; -} - -/* set all callback functions */ -static void pdf_callbacks(FILE *fout) { - - if (info.compress) { - xship = pdf_xship; - } else { - xship = dummy_xship; - } - xship_file = fout; -} - -/* ---------------------------------------------------------------------- */ -/* PDF path-drawing auxiliary functions */ - -/* coordinate quantization */ -static inline point_t unit(dpoint_t p) { - point_t q; - - q.x = (long)(floor(p.x*info.unit+.5)); - q.y = (long)(floor(p.y*info.unit+.5)); - return q; -} - -static void pdf_coords(dpoint_t p) { - point_t cur = unit(p); - ship("%ld %ld ", cur.x, cur.y); -} - -static void pdf_moveto(dpoint_t p) { - pdf_coords(p); - ship("m\n"); -} - -static void pdf_lineto(dpoint_t p) { - pdf_coords(p); - ship("l\n"); -} - -static void pdf_curveto(dpoint_t p1, dpoint_t p2, dpoint_t p3) { - point_t q1, q2, q3; - - q1 = unit(p1); - q2 = unit(p2); - q3 = unit(p3); - - ship("%ld %ld %ld %ld %ld %ld c\n", q1.x, q1.y, q2.x, q2.y, q3.x, q3.y); -} - -/* this procedure returns a statically allocated string */ -static const char *pdf_colorstring(const color_t col) { - double r, g, b; - static char buf[100]; - - r = (col & 0xff0000) >> 16; - g = (col & 0x00ff00) >> 8; - b = (col & 0x0000ff) >> 0; - - if (r==0 && g==0 && b==0) { - return "0 g"; - } else if (r==255 && g==255 && b==255) { - return "1 g"; - } else if (r == g && g == b) { - sprintf(buf, "%.3f g", r/255.0); - return buf; - } else { - sprintf(buf, "%.3f %.3f %.3f rg", r/255.0, g/255.0, b/255.0); - return buf; - } -} - -static color_t pdf_color = -1; - -static void pdf_setcolor(const color_t col) { - if (col == pdf_color) { - return; - } - pdf_color = col; - - ship("%s\n", pdf_colorstring(col)); -} - -/* explicit encoding, does not use special macros */ -static int pdf_path(potrace_curve_t *curve) { - int i; - dpoint_t *c; - int m = curve->n; - - c = curve->c[m-1]; - pdf_moveto(c[2]); - - for (i=0; ic[i]; - switch (curve->tag[i]) { - case POTRACE_CORNER: - pdf_lineto(c[1]); - pdf_lineto(c[2]); - break; - case POTRACE_CURVETO: - pdf_curveto(c[0], c[1], c[2]); - break; - } - } - return 0; -} - -/* ---------------------------------------------------------------------- */ -/* Backends for various types of output. */ - -/* Normal output: black on transparent */ -static int render0(potrace_path_t *plist) { - potrace_path_t *p; - - pdf_setcolor(info.color); - list_forall (p, plist) { - pdf_path(&p->curve); - ship("h\n"); - if (p->next == NULL || p->next->sign == '+') { - ship("f\n"); - } - } - return 0; -} - -/* Opaque output: alternating black and white */ -static int render0_opaque(potrace_path_t *plist) { - potrace_path_t *p; - - list_forall (p, plist) { - pdf_path(&p->curve); - ship("h\n"); - pdf_setcolor(p->sign=='+' ? info.color : info.fillcolor); - ship("f\n"); - } - return 0; -} - -/* select the appropriate rendering function from above */ -static int pdf_render(potrace_path_t *plist) -{ - if (info.opaque) { - return render0_opaque(plist); - } - return render0(plist); -} - -/* ---------------------------------------------------------------------- */ -/* PDF header and footer */ - -int init_pdf(FILE *fout) -{ - intarray_init(&xref); - intarray_init(&pages); - nxref = 0; - npages = 0; - - /* set callback functions for shipping routines */ - pdf_callbacks(fout); - outcount = 0; - - shipclear("%%PDF-1.3\n"); - - TRY(intarray_set(&xref, nxref++, outcount)); - shipclear("1 0 obj\n<>\nendobj\n"); - - TRY(intarray_set(&xref, nxref++, outcount)); - shipclear("2 0 obj\n" - "<>\n" - "endobj\n"); - - /* delay obj #3 (pages) until end */ - nxref++; - - fflush(fout); - return 0; - - try_error: - return 1; -} - -int term_pdf(FILE *fout) -{ - int startxref; - int i; - - pdf_callbacks(fout); - - TRY(intarray_set(&xref, 2, outcount)); - shipclear("3 0 obj\n" - "<>\nendobj\n"); - - startxref = outcount; - - shipclear("xref\n0 %d\n", nxref + 1); - shipclear("0000000000 65535 f \n"); - for (i = 0; i < nxref; i++) - shipclear("%0.10d 00000 n \n", xref.data[i]); - - shipclear("trailer\n<>\n", nxref + 1); - shipclear("startxref\n%d\n%%%%EOF\n", startxref); - - fflush(fout); - intarray_term(&xref); - intarray_term(&pages); - return 0; - - try_error: - return 1; -} - -/* if largebbox is set, set bounding box to pagesize. Return 0 on - success or 1 on error with errno set. */ -static int pdf_pageinit(imginfo_t *imginfo, int largebbox) -{ - double origx = imginfo->trans.orig[0] + imginfo->lmar; - double origy = imginfo->trans.orig[1] + imginfo->bmar; - double dxx = imginfo->trans.x[0] / info.unit; - double dxy = imginfo->trans.x[1] / info.unit; - double dyx = imginfo->trans.y[0] / info.unit; - double dyy = imginfo->trans.y[1] / info.unit; - - double pagew = imginfo->trans.bb[0]+imginfo->lmar+imginfo->rmar; - double pageh = imginfo->trans.bb[1]+imginfo->tmar+imginfo->bmar; - - pdf_color = -1; - - TRY(intarray_set(&xref, nxref++, outcount)); - shipclear("%d 0 obj\n", nxref); - shipclear("<>"); - if (largebbox) { - shipclear("/MediaBox[0 0 %d %d]", info.paperwidth, info.paperheight); - } else { - shipclear("/MediaBox[0 0 %f %f]", pagew, pageh); - } - shipclear("/Contents %d 0 R>>\n", nxref + 1); - shipclear("endobj\n"); - - TRY(intarray_set(&pages, npages++, nxref)); - - TRY(intarray_set(&xref, nxref++, outcount)); - shipclear("%d 0 obj\n", nxref); - if (info.compress) - shipclear("<>\n", nxref + 1); - else - shipclear("<>\n", nxref + 1); - shipclear("stream\n"); - - streamofs = outcount; - - ship("%f %f %f %f %f %f cm\n", dxx, dxy, dyx, dyy, origx, origy); - return 0; - - try_error: - return 1; -} - -/* Return 0 on success or 1 on error with errno set. */ -static int pdf_pageterm(void) -{ - int streamlen; - - shipclear(""); - - streamlen = outcount - streamofs; - shipclear("endstream\nendobj\n"); - - TRY(intarray_set(&xref, nxref++, outcount)); - shipclear("%d 0 obj\n%d\nendobj\n", nxref, streamlen); - return 0; - - try_error: - return 1; -} - -int page_pdf(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo) -{ - int r; - - pdf_callbacks(fout); - - TRY(pdf_pageinit(imginfo, 0)); - - r = pdf_render(plist); - if (r) { - return r; - } - - TRY(pdf_pageterm()); - - fflush(fout); - return 0; - - try_error: - return 1; -} - -int page_pdfpage(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo) -{ - int r; - - pdf_callbacks(fout); - - TRY(pdf_pageinit(imginfo, 1)); - - r = pdf_render(plist); - if (r) { - return r; - } - - TRY(pdf_pageterm()); - - fflush(fout); - return 0; - - try_error: - return 1; -} - diff --git a/Build/source/libs/potrace/potrace-src/src/backend_pdf.h b/Build/source/libs/potrace/potrace-src/src/backend_pdf.h deleted file mode 100644 index c14c55a9c62..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/backend_pdf.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -#ifndef BACKEND_PDF_H -#define BACKEND_PDF_H - -#include "potracelib.h" -#include "main.h" - -int init_pdf(FILE *fout); -int page_pdf(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo); -int term_pdf(FILE *fout); - -int page_pdf(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo); -int page_pdfpage(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo); - -#endif /* BACKEND_PDF_H */ - diff --git a/Build/source/libs/potrace/potrace-src/src/backend_pgm.c b/Build/source/libs/potrace/potrace-src/src/backend_pgm.c deleted file mode 100644 index 60f17c232e5..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/backend_pgm.c +++ /dev/null @@ -1,106 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -/* The PGM backend of Potrace. Here we custom-render a set of Bezier - curves and output the result as a greymap. This is merely a - convenience, as the same could be achieved by piping the EPS output - through ghostscript. */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include - -#include "backend_pgm.h" -#include "potracelib.h" -#include "lists.h" -#include "greymap.h" -#include "render.h" -#include "main.h" -#include "auxiliary.h" -#include "trans.h" - -#ifndef M_PI -#define M_PI 3.14159265358979323846 -#endif - -static void pgm_path(potrace_curve_t *curve, trans_t t, render_t *rm) { - dpoint_t *c, c1[3]; - int i; - int m = curve->n; - - c = curve->c[m-1]; - c1[2] = trans(c[2], t); - render_moveto(rm, c1[2].x, c1[2].y); - - for (i=0; ic[i]; - switch (curve->tag[i]) { - case POTRACE_CORNER: - c1[1] = trans(c[1], t); - c1[2] = trans(c[2], t); - render_lineto(rm, c1[1].x, c1[1].y); - render_lineto(rm, c1[2].x, c1[2].y); - break; - case POTRACE_CURVETO: - c1[0] = trans(c[0], t); - c1[1] = trans(c[1], t); - c1[2] = trans(c[2], t); - render_curveto(rm, c1[0].x, c1[0].y, c1[1].x, c1[1].y, c1[2].x, c1[2].y); - break; - } - } -} - -int page_pgm(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo) { - potrace_path_t *p; - greymap_t *gm; - render_t *rm; - int w, h; - trans_t t; - int mode; - const char *comment = "created by " POTRACE " " VERSION ", written by Peter Selinger 2001-2017"; - - t.bb[0] = imginfo->trans.bb[0]+imginfo->lmar+imginfo->rmar; - t.bb[1] = imginfo->trans.bb[1]+imginfo->tmar+imginfo->bmar; - t.orig[0] = imginfo->trans.orig[0]+imginfo->lmar; - t.orig[1] = imginfo->trans.orig[1]+imginfo->bmar; - t.x[0] = imginfo->trans.x[0]; - t.x[1] = imginfo->trans.x[1]; - t.y[0] = imginfo->trans.y[0]; - t.y[1] = imginfo->trans.y[1]; - - w = (int)ceil(t.bb[0]); - h = (int)ceil(t.bb[1]); - - gm = gm_new(w, h); - if (!gm) { - return 1; - } - rm = render_new(gm); - if (!rm) { - return 1; - } - - gm_clear(gm, 255); /* white */ - - list_forall(p, plist) { - pgm_path(&p->curve, t, rm); - } - - render_close(rm); - - /* if negative orientation, make sure to invert effect of rendering */ - mode = imginfo->width * imginfo->height < 0 ? GM_MODE_NEGATIVE : GM_MODE_POSITIVE; - - gm_writepgm(fout, rm->gm, comment, 1, mode, info.gamma); - - render_free(rm); - gm_free(gm); - - return 0; -} - diff --git a/Build/source/libs/potrace/potrace-src/src/backend_pgm.h b/Build/source/libs/potrace/potrace-src/src/backend_pgm.h deleted file mode 100644 index db3545b15ff..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/backend_pgm.h +++ /dev/null @@ -1,16 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -#ifndef BACKEND_PGM_H -#define BACKEND_PGM_H - -#include - -#include "potracelib.h" -#include "main.h" - -int page_pgm(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo); - -#endif /* BACKEND_PGM_H */ diff --git a/Build/source/libs/potrace/potrace-src/src/backend_svg.c b/Build/source/libs/potrace/potrace-src/src/backend_svg.c deleted file mode 100644 index 717f58aa396..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/backend_svg.c +++ /dev/null @@ -1,342 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -/* The SVG backend of Potrace. */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include - -#include "potracelib.h" -#include "curve.h" -#include "main.h" -#include "backend_svg.h" -#include "lists.h" -#include "auxiliary.h" - -/* ---------------------------------------------------------------------- */ -/* path-drawing auxiliary functions */ - -/* coordinate quantization */ -static inline point_t unit(dpoint_t p) { - point_t q; - - q.x = (long)(floor(p.x*info.unit+.5)); - q.y = (long)(floor(p.y*info.unit+.5)); - return q; -} - -static point_t cur; -static char lastop = 0; -static int column = 0; -static int newline = 1; - -static void shiptoken(FILE *fout, const char *token) { - int c = strlen(token); - if (!newline && column+c+1 > 75) { - fprintf(fout, "\n"); - column = 0; - newline = 1; - } else if (!newline) { - fprintf(fout, " "); - column++; - } - fprintf(fout, "%s", token); - column += c; - newline = 0; -} - -static void ship(FILE *fout, const char *fmt, ...) { - va_list args; - static char buf[4096]; /* static string limit is okay here because - we only use constant format strings - for - the same reason, it is okay to use - vsprintf instead of vsnprintf below. */ - char *p, *q; - - va_start(args, fmt); - vsprintf(buf, fmt, args); - buf[4095] = 0; - va_end(args); - - p = buf; - while ((q = strchr(p, ' ')) != NULL) { - *q = 0; - shiptoken(fout, p); - p = q+1; - } - shiptoken(fout, p); -} - -static void svg_moveto(FILE *fout, dpoint_t p) { - cur = unit(p); - - ship(fout, "M%ld %ld", cur.x, cur.y); - lastop = 'M'; -} - -static void svg_rmoveto(FILE *fout, dpoint_t p) { - point_t q; - - q = unit(p); - ship(fout, "m%ld %ld", q.x-cur.x, q.y-cur.y); - cur = q; - lastop = 'm'; -} - -static void svg_lineto(FILE *fout, dpoint_t p) { - point_t q; - - q = unit(p); - - if (lastop != 'l') { - ship(fout, "l%ld %ld", q.x-cur.x, q.y-cur.y); - } else { - ship(fout, "%ld %ld", q.x-cur.x, q.y-cur.y); - } - cur = q; - lastop = 'l'; -} - -static void svg_curveto(FILE *fout, dpoint_t p1, dpoint_t p2, dpoint_t p3) { - point_t q1, q2, q3; - - q1 = unit(p1); - q2 = unit(p2); - q3 = unit(p3); - - if (lastop != 'c') { - ship(fout, "c%ld %ld %ld %ld %ld %ld", q1.x-cur.x, q1.y-cur.y, q2.x-cur.x, q2.y-cur.y, q3.x-cur.x, q3.y-cur.y); - } else { - ship(fout, "%ld %ld %ld %ld %ld %ld", q1.x-cur.x, q1.y-cur.y, q2.x-cur.x, q2.y-cur.y, q3.x-cur.x, q3.y-cur.y); - } - cur = q3; - lastop = 'c'; -} - -/* ---------------------------------------------------------------------- */ -/* functions for converting a path to an SVG path element */ - -/* Explicit encoding. If abs is set, move to first coordinate - absolutely. */ -static int svg_path(FILE *fout, potrace_curve_t *curve, int abs) { - int i; - dpoint_t *c; - int m = curve->n; - - c = curve->c[m-1]; - if (abs) { - svg_moveto(fout, c[2]); - } else { - svg_rmoveto(fout, c[2]); - } - - for (i=0; ic[i]; - switch (curve->tag[i]) { - case POTRACE_CORNER: - svg_lineto(fout, c[1]); - svg_lineto(fout, c[2]); - break; - case POTRACE_CURVETO: - svg_curveto(fout, c[0], c[1], c[2]); - break; - } - } - newline = 1; - shiptoken(fout, "z"); - return 0; -} - -/* produce a jaggy path - for debugging. If abs is set, move to first - coordinate absolutely. If abs is not set, move to first coordinate - relatively, and traverse path in the opposite direction. */ -static int svg_jaggy_path(FILE *fout, point_t *pt, int n, int abs) { - int i; - point_t cur, prev; - - if (abs) { - cur = prev = pt[n-1]; - svg_moveto(fout, dpoint(cur)); - for (i=0; i=0; i--) { - if (pt[i].x != cur.x && pt[i].y != cur.y) { - cur = prev; - svg_lineto(fout, dpoint(cur)); - } - prev = pt[i]; - } - svg_lineto(fout, dpoint(pt[0])); - } - newline = 1; - shiptoken(fout, "z"); - return 0; -} - -static void write_paths_opaque(FILE *fout, potrace_path_t *tree) { - potrace_path_t *p, *q; - - for (p=tree; p; p=p->sibling) { - if (info.grouping == 2) { - fprintf(fout, "\n"); - fprintf(fout, "\n"); - } - column = fprintf(fout, "priv->pt, p->priv->len, 1); - } else { - svg_path(fout, &p->curve, 1); - } - fprintf(fout, "\"/>\n"); - for (q=p->childlist; q; q=q->sibling) { - column = fprintf(fout, "priv->pt, q->priv->len, 1); - } else { - svg_path(fout, &q->curve, 1); - } - fprintf(fout, "\"/>\n"); - } - if (info.grouping == 2) { - fprintf(fout, "\n"); - } - for (q=p->childlist; q; q=q->sibling) { - write_paths_opaque(fout, q->childlist); - } - if (info.grouping == 2) { - fprintf(fout, "\n"); - } - } -} - -static void write_paths_transparent_rec(FILE *fout, potrace_path_t *tree) { - potrace_path_t *p, *q; - - for (p=tree; p; p=p->sibling) { - if (info.grouping == 2) { - fprintf(fout, "\n"); - } - if (info.grouping != 0) { - column = fprintf(fout, "priv->pt, p->priv->len, 1); - } else { - svg_path(fout, &p->curve, 1); - } - for (q=p->childlist; q; q=q->sibling) { - if (info.debug == 1) { - svg_jaggy_path(fout, q->priv->pt, q->priv->len, 0); - } else { - svg_path(fout, &q->curve, 0); - } - } - if (info.grouping != 0) { - fprintf(fout, "\"/>\n"); - } - for (q=p->childlist; q; q=q->sibling) { - write_paths_transparent_rec(fout, q->childlist); - } - if (info.grouping == 2) { - fprintf(fout, "\n"); - } - } -} - -static void write_paths_transparent(FILE *fout, potrace_path_t *tree) { - if (info.grouping == 0) { - column = fprintf(fout, "\n"); - } -} - -/* ---------------------------------------------------------------------- */ -/* Backend. */ - -/* public interface for SVG */ -int page_svg(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo) { - - double bboxx = imginfo->trans.bb[0]+imginfo->lmar+imginfo->rmar; - double bboxy = imginfo->trans.bb[1]+imginfo->tmar+imginfo->bmar; - double origx = imginfo->trans.orig[0] + imginfo->lmar; - double origy = bboxy - imginfo->trans.orig[1] - imginfo->bmar; - double scalex = imginfo->trans.scalex / info.unit; - double scaley = -imginfo->trans.scaley / info.unit; - - /* header */ - fprintf(fout, "\n"); - fprintf(fout, "\n"); - - /* set bounding box and namespace */ - fprintf(fout, "\n"); - - /* metadata: creator */ - fprintf(fout, "\n"); - fprintf(fout, "Created by " POTRACE " " VERSION ", written by Peter Selinger 2001-2017\n"); - fprintf(fout, "\n"); - - /* use a "group" tag to establish coordinate system and style */ - fprintf(fout, "\n", info.color); - - if (info.opaque) { - write_paths_opaque(fout, plist); - } else { - write_paths_transparent(fout, plist); - } - - /* write footer */ - fprintf(fout, "\n"); - fprintf(fout, "\n"); - fflush(fout); - - return 0; -} - -/* the Gimppath backend is identical, except that it disables - --opaque, enables --flat, and the dimensions are pixel-based */ -int page_gimp(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo) { - info.opaque = 0; - info.grouping = 0; - return page_svg(fout, plist, imginfo); -} diff --git a/Build/source/libs/potrace/potrace-src/src/backend_svg.h b/Build/source/libs/potrace/potrace-src/src/backend_svg.h deleted file mode 100644 index 2e0817846c0..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/backend_svg.h +++ /dev/null @@ -1,16 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -#ifndef BACKEND_SVG_H -#define BACKEND_SVG_H - -#include "potracelib.h" -#include "main.h" - -int page_svg(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo); -int page_gimp(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo); - -#endif /* BACKEND_SVG_H */ - diff --git a/Build/source/libs/potrace/potrace-src/src/backend_xfig.c b/Build/source/libs/potrace/potrace-src/src/backend_xfig.c deleted file mode 100644 index bd9a4904c24..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/backend_xfig.c +++ /dev/null @@ -1,252 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -/* The xfig backend of Potrace. */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include - -#include "main.h" -#include "backend_xfig.h" -#include "potracelib.h" -#include "lists.h" -#include "auxiliary.h" -#include "trans.h" - -#ifndef M_PI -#define M_PI 3.14159265358979323846 -#endif - -struct pageformat_s { - const char *name; - int w, h; -}; -typedef struct pageformat_s pageformat_t; - -/* page formats known by xfig, and their dimensions in postscript points */ -static pageformat_t pageformat[] = { - { "A9", 105, 149 }, - { "A8", 149, 211 }, - { "A7", 211, 298 }, - { "A6", 298, 421 }, - { "A5", 421, 595 }, - { "A4", 595, 842 }, - { "A3", 842, 1191 }, - { "A2", 1191, 1685 }, - { "A1", 1685, 2383 }, - { "A0", 2383, 3370 }, - - { "B10", 91, 129 }, - { "B9", 129, 182 }, - { "B8", 182, 258 }, - { "B7", 258, 365 }, - { "B6", 365, 516 }, - { "B5", 516, 730 }, - { "B4", 730, 1032 }, - { "B3", 1032, 1460 }, - { "B2", 1460, 2064 }, - { "B1", 2064, 2920 }, - { "B0", 2920, 4127 }, - - { "Letter", 612, 792 }, - { "Legal", 612, 1008 }, - { "Tabloid", 792, 1224 }, - { "A", 612, 792 }, - { "B", 792, 1224 }, - { "C", 1224, 1584 }, - { "D", 1584, 2448 }, - { "E", 2448, 3168 }, - - { NULL, 0, 0 }, -}; - -/* ---------------------------------------------------------------------- */ -/* path-drawing auxiliary functions */ - -/* coordinate quantization */ -static inline point_t unit(dpoint_t p) { - point_t q; - - q.x = (long)(floor(p.x+.5)); - q.y = (long)(floor(p.y+.5)); - return q; -} - -static void xfig_point(FILE *fout, dpoint_t p, trans_t t) { - point_t q; - - q = unit(trans(p, t)); - - fprintf(fout, "%ld %ld\n", q.x, q.y); -} - -/* ---------------------------------------------------------------------- */ -/* functions for converting a path to a xfig */ - -/* calculate number of xfig control points in this path */ -static int npoints(potrace_curve_t *curve, int m) { - int i; - int n=0; - - for (i=0; itag[i]) { - case POTRACE_CORNER: - n += 1; - break; - case POTRACE_CURVETO: - n += 2; - break; - } - } - return n; -} - -/* do one path. */ -static void xfig_path(FILE *fout, potrace_curve_t *curve, trans_t t, int sign, int depth) { - int i; - dpoint_t *c; - int m = curve->n; - - fprintf(fout, "3 1 0 0 0 %d %d 0 20 0.000 0 0 0 %d\n", sign=='+' ? 32 : 33, depth, npoints(curve, m)); - - for (i=0; ic[i]; - switch (curve->tag[i]) { - case POTRACE_CORNER: - xfig_point(fout, c[1], t); - break; - case POTRACE_CURVETO: - xfig_point(fout, c[0], t); - xfig_point(fout, c[1], t); - break; - } - } - for (i=0; itag[i]) { - case POTRACE_CORNER: - fprintf(fout, "0\n"); - break; - case POTRACE_CURVETO: - fprintf(fout, "1 1\n"); - break; - } - } -} - -/* render a whole tree */ -static void xfig_write_paths(FILE *fout, potrace_path_t *plist, trans_t t, int depth) { - potrace_path_t *p, *q; - - for (p=plist; p; p=p->sibling) { - xfig_path(fout, &p->curve, t, p->sign, depth); - for (q=p->childlist; q; q=q->sibling) { - xfig_path(fout, &q->curve, t, q->sign, depth >= 1 ? depth-1 : 0); - } - for (q=p->childlist; q; q=q->sibling) { - xfig_write_paths(fout, q->childlist, t, depth >= 2 ? depth-2 : 0); - } - } -} - -/* calculate the depth of a tree. Call with d=0. */ -static int xfig_get_depth(potrace_path_t *plist) { - potrace_path_t *p; - int max =0; - int d; - - for (p=plist; p; p=p->sibling) { - d = xfig_get_depth(p->childlist); - if (d > max) { - max = d; - } - } - return max + 1; -} - -/* ---------------------------------------------------------------------- */ -/* Backend. */ - -/* public interface for XFIG */ -int page_xfig(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo) { - trans_t t; - double origx = imginfo->trans.orig[0] + imginfo->lmar; - double origy = - imginfo->trans.orig[1] - imginfo->bmar + info.paperheight; - const char *formatname; - int best, penalty; - pageformat_t *f; - int i; - int x0, y0, x1, y1; /* in xfig's coordinates */ - int depth; - - t.orig[0] = 1200/72.0 * origx; - t.orig[1] = 1200/72.0 * origy; - t.x[0] = 1200/72.0 * imginfo->trans.x[0]; - t.x[1] = -1200/72.0 * imginfo->trans.x[1]; - t.y[0] = 1200/72.0 * imginfo->trans.y[0]; - t.y[1] = -1200/72.0 * imginfo->trans.y[1]; - - x0 = (int)(1200/72.0 * (origx - imginfo->trans.orig[0])); - y0 = (int)(1200/72.0 * (origy + imginfo->trans.orig[1])); - x1 = x0 + (int)(1200/72.0 * imginfo->trans.bb[0]); - y1 = y0 - (int)(1200/72.0 * imginfo->trans.bb[1]); - - best = -1; - formatname = "Letter"; - - /* find closest page format */ - for (i=0; pageformat[i].name; i++) { - f = &pageformat[i]; - if (f->w >= info.paperwidth-1 && f->h >= info.paperheight-1) { - penalty = f->w + f->h; - if (best == -1 || penalty < best) { - best = penalty; - formatname = f->name; - } - } - } - - /* header */ - fprintf(fout, "#FIG 3.2\n"); - fprintf(fout, "#created by " POTRACE " " VERSION ", written by Peter Selinger 2001-2017\n"); - fprintf(fout, "Portrait\n"); - fprintf(fout, "Center\n"); - fprintf(fout, "Inches\n"); - fprintf(fout, "%s\n", formatname); - fprintf(fout, "100.0\n"); - fprintf(fout, "Single\n"); - fprintf(fout, "-2\n"); - fprintf(fout, "1200 2\n"); /* 1200 pixels per inch */ - fprintf(fout, "0 32 #%06x\n", info.color); - fprintf(fout, "0 33 #%06x\n", info.fillcolor); - fprintf(fout, "6 %d %d %d %d\n", x0-75, y1-35, x1+75, y0+35); /* bounding box */ - - /* determine depth of the tree */ - depth = xfig_get_depth(plist); - - /* figure out appropriate xfig starting depth. Note: xfig only has 1000 depths available */ - if (depth <= 40) { - depth = 50; - } else if (depth < 990) { - depth += 10; - } else { - depth = 999; - } - - /* write paths. Note: can never use "opticurve" with this backend - - it just does not approximate Bezier curves closely enough. */ - xfig_write_paths(fout, plist, t, depth); - - fprintf(fout, "-6\n"); /* end bounding box */ - - fflush(fout); - - return 0; -} diff --git a/Build/source/libs/potrace/potrace-src/src/backend_xfig.h b/Build/source/libs/potrace/potrace-src/src/backend_xfig.h deleted file mode 100644 index ce8df41a99a..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/backend_xfig.h +++ /dev/null @@ -1,15 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -#ifndef BACKEND_XFIG_H -#define BACKEND_XFIG_H - -#include "potracelib.h" -#include "main.h" - -int page_xfig(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo); - -#endif /* BACKEND_XFIG_H */ - diff --git a/Build/source/libs/potrace/potrace-src/src/bbox.c b/Build/source/libs/potrace/potrace-src/src/bbox.c deleted file mode 100644 index 45783c80739..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/bbox.c +++ /dev/null @@ -1,154 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -/* figure out the true bounding box of a vector image */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include - -#include "bbox.h" -#include "potracelib.h" -#include "lists.h" - -/* ---------------------------------------------------------------------- */ -/* intervals */ - -/* initialize the interval to [min, max] */ -static void interval(interval_t *i, double min, double max) { - i->min = min; - i->max = max; -} - -/* initialize the interval to [x, x] */ -static inline void singleton(interval_t *i, double x) { - interval(i, x, x); -} - -/* extend the interval to include the number x */ -static inline void extend(interval_t *i, double x) { - if (x < i->min) { - i->min = x; - } else if (x > i->max) { - i->max = x; - } -} - -static inline int in_interval(interval_t *i, double x) { - return i->min <= x && x <= i->max; -} - -/* ---------------------------------------------------------------------- */ -/* inner product */ - -typedef potrace_dpoint_t dpoint_t; - -static double iprod(dpoint_t a, dpoint_t b) { - return a.x * b.x + a.y * b.y; -} - -/* ---------------------------------------------------------------------- */ -/* linear Bezier segments */ - -/* return a point on a 1-dimensional Bezier segment */ -static inline double bezier(double t, double x0, double x1, double x2, double x3) { - double s = 1-t; - return s*s*s*x0 + 3*(s*s*t)*x1 + 3*(t*t*s)*x2 + t*t*t*x3; -} - -/* Extend the interval i to include the minimum and maximum of a - 1-dimensional Bezier segment given by control points x0..x3. For - efficiency, x0 in i is assumed as a precondition. */ -static void bezier_limits(double x0, double x1, double x2, double x3, interval_t *i) { - double a, b, c, d, r; - double t, x; - - /* the min and max of a cubic curve segment are attained at one of - at most 4 critical points: the 2 endpoints and at most 2 local - extrema. We don't check the first endpoint, because all our - curves are cyclic so it's more efficient not to check endpoints - twice. */ - - /* endpoint */ - extend(i, x3); - - /* optimization: don't bother calculating extrema if all control - points are already in i */ - if (in_interval(i, x1) && in_interval(i, x2)) { - return; - } - - /* solve for extrema. at^2 + bt + c = 0 */ - a = -3*x0 + 9*x1 - 9*x2 + 3*x3; - b = 6*x0 - 12*x1 + 6*x2; - c = -3*x0 + 3*x1; - d = b*b - 4*a*c; - if (d > 0) { - r = sqrt(d); - t = (-b-r)/(2*a); - if (t > 0 && t < 1) { - x = bezier(t, x0, x1, x2, x3); - extend(i, x); - } - t = (-b+r)/(2*a); - if (t > 0 && t < 1) { - x = bezier(t, x0, x1, x2, x3); - extend(i, x); - } - } - return; -} - -/* ---------------------------------------------------------------------- */ -/* Potrace segments, curves, and pathlists */ - -/* extend the interval i to include the inner product for - all points v on the segment. Assume precondition a in i. */ -static inline void segment_limits(int tag, dpoint_t a, dpoint_t c[3], dpoint_t dir, interval_t *i) { - switch (tag) { - case POTRACE_CORNER: - extend(i, iprod(c[1], dir)); - extend(i, iprod(c[2], dir)); - break; - case POTRACE_CURVETO: - bezier_limits(iprod(a, dir), iprod(c[0], dir), iprod(c[1], dir), iprod(c[2], dir), i); - break; - } -} - -/* extend the interval i to include for all points v on the - curve. */ -static void curve_limits(potrace_curve_t *curve, dpoint_t dir, interval_t *i) { - int k; - int n = curve->n; - - segment_limits(curve->tag[0], curve->c[n-1][2], curve->c[0], dir, i); - for (k=1; ktag[k], curve->c[k-1][2], curve->c[k], dir, i); - } -} - -/* compute the interval i to be the smallest interval including all for points in the pathlist. If the pathlist is empty, return - the singleton interval [0,0]. */ -void path_limits(potrace_path_t *path, dpoint_t dir, interval_t *i) { - potrace_path_t *p; - - /* empty image? */ - if (path == NULL) { - interval(i, 0, 0); - return; - } - - /* initialize interval to a point on the first curve */ - singleton(i, iprod(path->curve.c[0][2], dir)); - - /* iterate */ - list_forall(p, path) { - curve_limits(&p->curve, dir, i); - } -} diff --git a/Build/source/libs/potrace/potrace-src/src/bbox.h b/Build/source/libs/potrace/potrace-src/src/bbox.h deleted file mode 100644 index 30b71ba6930..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/bbox.h +++ /dev/null @@ -1,18 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -#ifndef BBOX_H -#define BBOX_H - -#include "potracelib.h" - -/* an interval [min, max] */ -struct interval_s { - double min, max; -}; -typedef struct interval_s interval_t; - -void path_limits(potrace_path_t *path, potrace_dpoint_t dir, interval_t *i); - -#endif /* BBOX_H */ diff --git a/Build/source/libs/potrace/potrace-src/src/bitmap.h b/Build/source/libs/potrace/potrace-src/src/bitmap.h deleted file mode 100644 index 2e91ab1e7d7..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/bitmap.h +++ /dev/null @@ -1,228 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -#ifndef BITMAP_H -#define BITMAP_H - -#include -#include -#include -#include - -/* The bitmap type is defined in potracelib.h */ -#include "potracelib.h" - -/* The present file defines some convenient macros and static inline - functions for accessing bitmaps. Since they only produce inline - code, they can be conveniently shared by the library and frontends, - if desired */ - -/* ---------------------------------------------------------------------- */ -/* some measurements */ - -#define BM_WORDSIZE ((int)sizeof(potrace_word)) -#define BM_WORDBITS (8*BM_WORDSIZE) -#define BM_HIBIT (((potrace_word)1)<<(BM_WORDBITS-1)) -#define BM_ALLBITS (~(potrace_word)0) - -/* macros for accessing pixel at index (x,y). U* macros omit the - bounds check. */ - -#define bm_scanline(bm, y) ((bm)->map + (ptrdiff_t)(y)*(ptrdiff_t)(bm)->dy) -#define bm_index(bm, x, y) (&bm_scanline(bm, y)[(x)/BM_WORDBITS]) -#define bm_mask(x) (BM_HIBIT >> ((x) & (BM_WORDBITS-1))) -#define bm_range(x, a) ((int)(x) >= 0 && (int)(x) < (a)) -#define bm_safe(bm, x, y) (bm_range(x, (bm)->w) && bm_range(y, (bm)->h)) -#define BM_UGET(bm, x, y) ((*bm_index(bm, x, y) & bm_mask(x)) != 0) -#define BM_USET(bm, x, y) (*bm_index(bm, x, y) |= bm_mask(x)) -#define BM_UCLR(bm, x, y) (*bm_index(bm, x, y) &= ~bm_mask(x)) -#define BM_UINV(bm, x, y) (*bm_index(bm, x, y) ^= bm_mask(x)) -#define BM_UPUT(bm, x, y, b) ((b) ? BM_USET(bm, x, y) : BM_UCLR(bm, x, y)) -#define BM_GET(bm, x, y) (bm_safe(bm, x, y) ? BM_UGET(bm, x, y) : 0) -#define BM_SET(bm, x, y) (bm_safe(bm, x, y) ? BM_USET(bm, x, y) : 0) -#define BM_CLR(bm, x, y) (bm_safe(bm, x, y) ? BM_UCLR(bm, x, y) : 0) -#define BM_INV(bm, x, y) (bm_safe(bm, x, y) ? BM_UINV(bm, x, y) : 0) -#define BM_PUT(bm, x, y, b) (bm_safe(bm, x, y) ? BM_UPUT(bm, x, y, b) : 0) - -/* calculate the size, in bytes, required for the data area of a - bitmap of the given dy and h. Assume h >= 0. Return -1 if the size - does not fit into the ptrdiff_t type. */ -static inline ptrdiff_t getsize(int dy, int h) { - ptrdiff_t size; - - if (dy < 0) { - dy = -dy; - } - - size = (ptrdiff_t)dy * (ptrdiff_t)h * (ptrdiff_t)BM_WORDSIZE; - - /* check for overflow error */ - if (size < 0 || (h != 0 && dy != 0 && size / h / dy != BM_WORDSIZE)) { - return -1; - } - - return size; -} - -/* return the size, in bytes, of the data area of the bitmap. Return - -1 if the size does not fit into the ptrdiff_t type; however, this - cannot happen if the bitmap is well-formed, i.e., if created with - bm_new or bm_dup. */ -static inline ptrdiff_t bm_size(const potrace_bitmap_t *bm) { - return getsize(bm->dy, bm->h); -} - -/* calculate the base address of the bitmap data. Assume that the - bitmap is well-formed, i.e., its size fits into the ptrdiff_t type. - This is the case if created with bm_new or bm_dup. The base address - may differ from bm->map if dy is negative */ -static inline potrace_word *bm_base(const potrace_bitmap_t *bm) { - int dy = bm->dy; - - if (dy >= 0 || bm->h == 0) { - return bm->map; - } else { - return bm_scanline(bm, bm->h - 1); - } -} - -/* free the given bitmap. Leaves errno untouched. */ -static inline void bm_free(potrace_bitmap_t *bm) { - if (bm && bm->map) { - free(bm_base(bm)); - } - free(bm); -} - -/* return new bitmap initialized to 0. NULL with errno on error. - Assumes w, h >= 0. */ -static inline potrace_bitmap_t *bm_new(int w, int h) { - potrace_bitmap_t *bm; - int dy = w == 0 ? 0 : (w - 1) / BM_WORDBITS + 1; - ptrdiff_t size; - - size = getsize(dy, h); - if (size < 0) { - errno = ENOMEM; - return NULL; - } - if (size == 0) { - size = 1; /* make sure calloc() doesn't return NULL */ - } - - bm = (potrace_bitmap_t *) malloc(sizeof(potrace_bitmap_t)); - if (!bm) { - return NULL; - } - bm->w = w; - bm->h = h; - bm->dy = dy; - bm->map = (potrace_word *) calloc(1, size); - if (!bm->map) { - free(bm); - return NULL; - } - return bm; -} - -/* clear the given bitmap. Set all bits to c. Assumes a well-formed - bitmap. */ -static inline void bm_clear(potrace_bitmap_t *bm, int c) { - /* Note: if the bitmap was created with bm_new, then it is - guaranteed that size will fit into the ptrdiff_t type. */ - ptrdiff_t size = bm_size(bm); - memset(bm_base(bm), c ? -1 : 0, size); -} - -/* duplicate the given bitmap. Return NULL on error with errno - set. Assumes a well-formed bitmap. */ -static inline potrace_bitmap_t *bm_dup(const potrace_bitmap_t *bm) { - potrace_bitmap_t *bm1 = bm_new(bm->w, bm->h); - int y; - - if (!bm1) { - return NULL; - } - for (y=0; y < bm->h; y++) { - memcpy(bm_scanline(bm1, y), bm_scanline(bm, y), (size_t)bm1->dy * (size_t)BM_WORDSIZE); - } - return bm1; -} - -/* invert the given bitmap. */ -static inline void bm_invert(potrace_bitmap_t *bm) { - int dy = bm->dy; - int y; - int i; - potrace_word *p; - - if (dy < 0) { - dy = -dy; - } - - for (y=0; y < bm->h; y++) { - p = bm_scanline(bm, y); - for (i=0; i < dy; i++) { - p[i] ^= BM_ALLBITS; - } - } -} - -/* turn the given bitmap upside down. This does not move the bitmap - data or change the bm_base() address. */ -static inline void bm_flip(potrace_bitmap_t *bm) { - int dy = bm->dy; - - if (bm->h == 0 || bm->h == 1) { - return; - } - - bm->map = bm_scanline(bm, bm->h - 1); - bm->dy = -dy; -} - -/* resize the bitmap to the given new height. The bitmap data remains - bottom-aligned (truncated at the top) when dy >= 0 and top-aligned - (truncated at the bottom) when dy < 0. Return 0 on success, or 1 on - error with errno set. If the new height is <= the old one, no error - should occur. If the new height is larger, the additional bitmap - data is *not* initialized. */ -static inline int bm_resize(potrace_bitmap_t *bm, int h) { - int dy = bm->dy; - ptrdiff_t newsize; - potrace_word *newmap; - - if (dy < 0) { - bm_flip(bm); - } - - newsize = getsize(dy, h); - if (newsize < 0) { - errno = ENOMEM; - goto error; - } - if (newsize == 0) { - newsize = 1; /* make sure realloc() doesn't return NULL */ - } - - newmap = (potrace_word *)realloc(bm->map, newsize); - if (newmap == NULL) { - goto error; - } - bm->map = newmap; - bm->h = h; - - if (dy < 0) { - bm_flip(bm); - } - return 0; - - error: - if (dy < 0) { - bm_flip(bm); - } - return 1; -} - -#endif /* BITMAP_H */ diff --git a/Build/source/libs/potrace/potrace-src/src/bitmap_io.c b/Build/source/libs/potrace/potrace-src/src/bitmap_io.c deleted file mode 100644 index f965b733212..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/bitmap_io.c +++ /dev/null @@ -1,880 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -/* Routines for manipulating bitmaps, including reading pbm files. */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include - -#include "bitmap.h" -#include "bitops.h" -#include "bitmap_io.h" - -#define INTBITS (8*sizeof(int)) - -static int bm_readbody_bmp(FILE *f, double threshold, potrace_bitmap_t **bmp); -static int bm_readbody_pnm(FILE *f, double threshold, potrace_bitmap_t **bmp, int magic); - -#define TRY(x) if (x) goto try_error -#define TRY_EOF(x) if (x) goto eof -#define TRY_STD(x) if (x) goto std_error - -/* ---------------------------------------------------------------------- */ -/* routines for reading pnm streams */ - -/* read next character after whitespace and comments. Return EOF on - end of file or error. */ -static int fgetc_ws(FILE *f) { - int c; - - while (1) { - c = fgetc(f); - if (c=='#') { - while (1) { - c = fgetc(f); - if (c=='\n' || c==EOF) { - break; - } - } - } - /* space, tab, line feed, carriage return, form-feed */ - if (c!=' ' && c!='\t' && c!='\r' && c!='\n' && c!=12) { - return c; - } - } -} - -/* skip whitespace and comments, then read a non-negative decimal - number from a stream. Return -1 on EOF. Tolerate other errors (skip - bad characters). Do not the read any characters following the - number (put next character back into the stream) */ - -static int readnum(FILE *f) { - int c; - int acc; - - /* skip whitespace and comments */ - while (1) { - c = fgetc_ws(f); - if (c==EOF) { - return -1; - } - if (c>='0' && c<='9') { - break; - } - } - - /* first digit is already in c */ - acc = c-'0'; - while (1) { - c = fgetc(f); - if (c==EOF) { - break; - } - if (c<'0' || c>'9') { - ungetc(c, f); - break; - } - acc *= 10; - acc += c-'0'; - } - return acc; -} - -/* similar to readnum, but read only a single 0 or 1, and do not read - any characters after it. */ - -static int readbit(FILE *f) { - int c; - - /* skip whitespace and comments */ - while (1) { - c = fgetc_ws(f); - if (c==EOF) { - return -1; - } - if (c>='0' && c<='1') { - break; - } - } - - return c-'0'; -} - -/* ---------------------------------------------------------------------- */ - -/* read a PNM stream: P1-P6 format (see pnm(5)), or a BMP stream, and - convert the output to a bitmap. Return bitmap in *bmp. Return 0 on - success, -1 on error with errno set, -2 on bad file format (with - error message in bm_read_error), and 1 on premature end of file, -3 - on empty file (including files which contain only whitespace and - comments), -4 if wrong magic number. If the return value is >=0, - *bmp is valid. */ - -const char *bm_read_error = NULL; - -int bm_read(FILE *f, double threshold, potrace_bitmap_t **bmp) { - int magic[2]; - - /* read magic number. We ignore whitespace and comments before the - magic, for the benefit of concatenated files in P1-P3 format. - Multiple P1-P3 images in a single file are not formally allowed - by the PNM standard, but there is no harm in being lenient. */ - - magic[0] = fgetc_ws(f); - if (magic[0] == EOF) { - return -3; - } - magic[1] = fgetc(f); - if (magic[0] == 'P' && magic[1] >= '1' && magic[1] <= '6') { - return bm_readbody_pnm(f, threshold, bmp, magic[1]); - } - if (magic[0] == 'B' && magic[1] == 'M') { - return bm_readbody_bmp(f, threshold, bmp); - } - return -4; -} - -/* ---------------------------------------------------------------------- */ -/* read PNM format */ - -/* read PNM stream after magic number. Return values as for bm_read */ -static int bm_readbody_pnm(FILE *f, double threshold, potrace_bitmap_t **bmp, int magic) { - potrace_bitmap_t *bm; - int x, y, i, b, b1, sum; - int bpr; /* bytes per row (as opposed to 4*bm->c) */ - int w, h, max; - int realheight; /* in case of incomplete file, keeps track of how - many scan lines actually contain data */ - - bm = NULL; - - w = readnum(f); - if (w<0) { - goto format_error; - } - - h = readnum(f); - if (h<0) { - goto format_error; - } - - /* allocate bitmap */ - bm = bm_new(w, h); - if (!bm) { - goto std_error; - } - - realheight = 0; - - switch (magic) { - default: - /* not reached */ - goto format_error; - - case '1': - /* read P1 format: PBM ascii */ - - for (y=0; y threshold * max ? 0 : 1); - } - } - break; - - case '3': - /* read P3 format: PPM ascii */ - - max = readnum(f); - if (max<1) { - goto format_error; - } - - for (y=0; y 3 * threshold * max ? 0 : 1); - } - } - break; - - case '4': - /* read P4 format: PBM raw */ - - b = fgetc(f); /* read single white-space character after height */ - if (b==EOF) { - goto format_error; - } - - bpr = (w+7)/8; - - for (y=0; y=256) { - b <<= 8; - b1 = fgetc(f); - if (b1==EOF) - goto eof; - b |= b1; - } - BM_UPUT(bm, x, y, b > threshold * max ? 0 : 1); - } - } - break; - - case '6': - /* read P6 format: PPM raw */ - - max = readnum(f); - if (max<1) { - goto format_error; - } - - b = fgetc(f); /* read single white-space character after max */ - if (b==EOF) { - goto format_error; - } - - for (y=0; y=256) { - b <<= 8; - b1 = fgetc(f); - if (b1==EOF) - goto eof; - b |= b1; - } - sum += b; - } - BM_UPUT(bm, x, y, sum > 3 * threshold * max ? 0 : 1); - } - } - break; - } - - bm_flip(bm); - *bmp = bm; - return 0; - - eof: - TRY_STD(bm_resize(bm, realheight)); - bm_flip(bm); - *bmp = bm; - return 1; - - format_error: - bm_free(bm); - if (magic == '1' || magic == '4') { - bm_read_error = "invalid pbm file"; - } else if (magic == '2' || magic == '5') { - bm_read_error = "invalid pgm file"; - } else { - bm_read_error = "invalid ppm file"; - } - return -2; - - std_error: - bm_free(bm); - return -1; -} - -/* ---------------------------------------------------------------------- */ -/* read BMP format */ - -struct bmp_info_s { - unsigned int FileSize; - unsigned int reserved; - unsigned int DataOffset; - unsigned int InfoSize; - unsigned int w; /* width */ - unsigned int h; /* height */ - unsigned int Planes; - unsigned int bits; /* bits per sample */ - unsigned int comp; /* compression mode */ - unsigned int ImageSize; - unsigned int XpixelsPerM; - unsigned int YpixelsPerM; - unsigned int ncolors; /* number of colors in palette */ - unsigned int ColorsImportant; - unsigned int RedMask; - unsigned int GreenMask; - unsigned int BlueMask; - unsigned int AlphaMask; - unsigned int ctbits; /* sample size for color table */ - int topdown; /* top-down mode? */ -}; -typedef struct bmp_info_s bmp_info_t; - -/* auxiliary */ - -static int bmp_count = 0; /* counter for byte padding */ -static int bmp_pos = 0; /* counter from start of BMP data */ - -/* read n-byte little-endian integer. Return 1 on EOF or error, else - 0. Assume n<=4. */ -static int bmp_readint(FILE *f, int n, unsigned int *p) { - int i; - unsigned int sum = 0; - int b; - - for (i=0; i= 108) { /* V4 and V5 bitmaps */ - TRY(bmp_readint(f, 4, &bmpinfo.RedMask)); - TRY(bmp_readint(f, 4, &bmpinfo.GreenMask)); - TRY(bmp_readint(f, 4, &bmpinfo.BlueMask)); - TRY(bmp_readint(f, 4, &bmpinfo.AlphaMask)); - } - if (bmpinfo.w > 0x7fffffff) { - goto format_error; - } - if (bmpinfo.h > 0x7fffffff) { - bmpinfo.h = (-bmpinfo.h) & 0xffffffff; - bmpinfo.topdown = 1; - } else { - bmpinfo.topdown = 0; - } - if (bmpinfo.h > 0x7fffffff) { - goto format_error; - } - } else if (bmpinfo.InfoSize == 12) { - /* old OS/2 format */ - bmpinfo.ctbits = 24; /* sample size in color table */ - TRY(bmp_readint(f, 2, &bmpinfo.w)); - TRY(bmp_readint(f, 2, &bmpinfo.h)); - TRY(bmp_readint(f, 2, &bmpinfo.Planes)); - TRY(bmp_readint(f, 2, &bmpinfo.bits)); - bmpinfo.comp = 0; - bmpinfo.ncolors = 0; - bmpinfo.topdown = 0; - } else { - goto format_error; - } - - if (bmpinfo.comp == 3 && bmpinfo.InfoSize < 108) { - /* bitfield feature is only understood with V4 and V5 format */ - goto format_error; - } - - if (bmpinfo.comp > 3 || bmpinfo.bits > 32) { - goto format_error; - } - - /* forward to color table (e.g., if bmpinfo.InfoSize == 64) */ - TRY(bmp_forward(f, 14+bmpinfo.InfoSize)); - - if (bmpinfo.Planes != 1) { - bm_read_error = "cannot handle bmp planes"; - goto format_error; /* can't handle planes */ - } - - if (bmpinfo.ncolors == 0 && bmpinfo.bits <= 8) { - bmpinfo.ncolors = 1 << bmpinfo.bits; - } - - /* color table, present only if bmpinfo.bits <= 8. */ - if (bmpinfo.bits <= 8) { - coltable = (int *) calloc(bmpinfo.ncolors, sizeof(int)); - if (!coltable) { - goto std_error; - } - /* NOTE: since we are reading a bitmap, we can immediately convert - the color table entries to bits. */ - for (i=0; i>16) & 0xff) + ((c>>8) & 0xff) + (c & 0xff); - coltable[i] = (c > 3 * threshold * 255 ? 0 : 1); - if (i<2) { - col1[i] = c; - } - } - } - - /* forward to data */ - if (bmpinfo.InfoSize != 12) { /* not old OS/2 format */ - TRY(bmp_forward(f, bmpinfo.DataOffset)); - } - - /* allocate bitmap */ - bm = bm_new(bmpinfo.w, bmpinfo.h); - if (!bm) { - goto std_error; - } - - realheight = 0; - - switch (bmpinfo.bits + 0x100*bmpinfo.comp) { - - default: - goto format_error; - break; - - case 0x001: /* monochrome palette */ - if (col1[0] < col1[1]) { /* make the darker color black */ - mask = 0xff; - } else { - mask = 0; - } - - /* raster data */ - for (y=0; y> (INTBITS - bmpinfo.bits); - bitbuf <<= bmpinfo.bits; - n -= bmpinfo.bits; - BM_UPUT(bm, x, y, COLTABLE(b)); - } - TRY(bmp_pad(f)); - } - break; - - case 0x010: /* 16-bit encoding */ - /* can't do this format because it is not well-documented and I - don't have any samples */ - bm_read_error = "cannot handle bmp 16-bit coding"; - goto format_error; - break; - - case 0x018: /* 24-bit encoding */ - case 0x020: /* 32-bit encoding */ - for (y=0; y>16) & 0xff) + ((c>>8) & 0xff) + (c & 0xff); - BM_UPUT(bm, x, y, c > 3 * threshold * 255 ? 0 : 1); - } - TRY(bmp_pad(f)); - } - break; - - case 0x320: /* 32-bit encoding with bitfields */ - if (bmpinfo.RedMask == 0 || bmpinfo.GreenMask == 0 || bmpinfo.BlueMask == 0) { - goto format_error; - } - - redshift = lobit(bmpinfo.RedMask); - greenshift = lobit(bmpinfo.GreenMask); - blueshift = lobit(bmpinfo.BlueMask); - - for (y=0; y> redshift) + ((c & bmpinfo.GreenMask) >> greenshift) + ((c & bmpinfo.BlueMask) >> blueshift); - BM_UPUT(bm, x, y, c > 3 * threshold * 255 ? 0 : 1); - } - TRY(bmp_pad(f)); - } - break; - - case 0x204: /* 4-bit runlength compressed encoding (RLE4) */ - x = 0; - y = 0; - - while (1) { - TRY_EOF(bmp_readint(f, 1, &b)); /* opcode */ - TRY_EOF(bmp_readint(f, 1, &c)); /* argument */ - if (b>0) { - /* repeat count */ - col[0] = COLTABLE((c>>4) & 0xf); - col[1] = COLTABLE(c & 0xf); - for (i=0; i=bmpinfo.w) { - x=0; - y++; - } - if (x>=bmpinfo.w || y>=bmpinfo.h) { - break; - } - realheight = y+1; - BM_PUT(bm, x, y, col[i&1]); - x++; - } - } else if (c == 0) { - /* end of line */ - y++; - x = 0; - } else if (c == 1) { - /* end of bitmap */ - break; - } else if (c == 2) { - /* "delta": skip pixels in x and y directions */ - TRY_EOF(bmp_readint(f, 1, &b)); /* x offset */ - TRY_EOF(bmp_readint(f, 1, &c)); /* y offset */ - x += b; - y += c; - } else { - /* verbatim segment */ - for (i=0; i=bmpinfo.w) { - x=0; - y++; - } - if (x>=bmpinfo.w || y>=bmpinfo.h) { - break; - } - realheight = y+1; - BM_PUT(bm, x, y, COLTABLE((b>>(4-4*(i&1))) & 0xf)); - x++; - } - if ((c+1) & 2) { - /* pad to 16-bit boundary */ - TRY_EOF(bmp_readint(f, 1, &b)); - } - } - } - break; - - case 0x108: /* 8-bit runlength compressed encoding (RLE8) */ - x = 0; - y = 0; - while (1) { - TRY_EOF(bmp_readint(f, 1, &b)); /* opcode */ - TRY_EOF(bmp_readint(f, 1, &c)); /* argument */ - if (b>0) { - /* repeat count */ - for (i=0; i=bmpinfo.w) { - x=0; - y++; - } - if (x>=bmpinfo.w || y>=bmpinfo.h) { - break; - } - realheight = y+1; - BM_PUT(bm, x, y, COLTABLE(c)); - x++; - } - } else if (c == 0) { - /* end of line */ - y++; - x = 0; - } else if (c == 1) { - /* end of bitmap */ - break; - } else if (c == 2) { - /* "delta": skip pixels in x and y directions */ - TRY_EOF(bmp_readint(f, 1, &b)); /* x offset */ - TRY_EOF(bmp_readint(f, 1, &c)); /* y offset */ - x += b; - y += c; - } else { - /* verbatim segment */ - for (i=0; i=bmpinfo.w) { - x=0; - y++; - } - if (x>=bmpinfo.w || y>=bmpinfo.h) { - break; - } - realheight = y+1; - BM_PUT(bm, x, y, COLTABLE(b)); - x++; - } - if (c & 1) { - /* pad input to 16-bit boundary */ - TRY_EOF(bmp_readint(f, 1, &b)); - } - } - } - break; - - } /* switch */ - - /* skip any potential junk after the data section, but don't - complain in case EOF is encountered */ - bmp_forward(f, bmpinfo.FileSize); - - free(coltable); - if (bmpinfo.topdown) { - bm_flip(bm); - } - *bmp = bm; - return 0; - - eof: - TRY_STD(bm_resize(bm, realheight)); - free(coltable); - if (bmpinfo.topdown) { - bm_flip(bm); - } - *bmp = bm; - return 1; - - format_error: - try_error: - free(coltable); - bm_free(bm); - if (!bm_read_error) { - bm_read_error = "invalid bmp file"; - } - return -2; - - std_error: - free(coltable); - bm_free(bm); - return -1; -} - -/* ---------------------------------------------------------------------- */ -/* output pbm format */ - -void bm_writepbm(FILE *f, potrace_bitmap_t *bm) { - int w, h, bpr, y, i, c; - - w = bm->w; - h = bm->h; - - bpr = (w+7)/8; - - fprintf(f, "P4\n%d %d\n", w, h); - for (y=h-1; y>=0; y--) { - for (i=0; i> (8*(BM_WORDSIZE-1-(i % BM_WORDSIZE)))) & 0xff; - fputc(c, f); - } - } - return; -} - -/* ---------------------------------------------------------------------- */ -/* output - for primitive debugging purposes only! */ - -/* print bitmap to screen */ -int bm_print(FILE *f, potrace_bitmap_t *bm) { - int x, y; - int xx, yy; - int d; - int sw, sh; - - sw = bm->w < 79 ? bm->w : 79; - sh = bm->w < 79 ? bm->h : bm->h*sw*44/(79*bm->w); - - for (yy=sh-1; yy>=0; yy--) { - for (xx=0; xxw/sw; x<(xx+1)*bm->w/sw; x++) { - for (y=yy*bm->h/sh; y<(yy+1)*bm->h/sh; y++) { - if (BM_GET(bm, x, y)) { - d++; - } - } - } - fputc(d ? '*' : ' ', f); - } - fputc('\n', f); - } - return 0; -} - diff --git a/Build/source/libs/potrace/potrace-src/src/bitmap_io.h b/Build/source/libs/potrace/potrace-src/src/bitmap_io.h deleted file mode 100644 index 5bfa5af0c3a..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/bitmap_io.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -/* bitmap input/output functions */ - -#ifndef BITMAP_IO_H -#define BITMAP_IO_H - -#include -#include "bitmap.h" - -/* Note that bitmaps are stored bottom to top, i.e., the first - scanline is the bottom-most one */ - -extern const char *bm_read_error; - -int bm_read(FILE *f, double blacklevel, potrace_bitmap_t **bmp); -void bm_writepbm(FILE *f, potrace_bitmap_t *bm); -int bm_print(FILE *f, potrace_bitmap_t *bm); - -#endif /* BITMAP_IO_H */ - diff --git a/Build/source/libs/potrace/potrace-src/src/bitops.h b/Build/source/libs/potrace/potrace-src/src/bitops.h deleted file mode 100644 index e7e7ed36247..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/bitops.h +++ /dev/null @@ -1,83 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -/* bits.h: this file defines some macros for bit manipulations. We - provide a generic implementation, as well as machine- and - compiler-specific fast implementations */ - -/* lobit: return the position of the rightmost "1" bit of an int, or - 32 if none. hibit: return 1 + the position of the leftmost "1" bit - of an int, or 0 if none. Note: these functions work on 32-bit - integers. */ - -#ifndef BITOPS_H -#define BITOPS_H - -#ifdef HAVE_CONFIG_H -#include -#endif - -/* ---------------------------------------------------------------------- */ -/* machine specific macros */ - -#if defined(HAVE_I386) - -static inline unsigned int lobit(unsigned int x) { - unsigned int res; - asm ("bsf %1,%0\n\t" - "jnz 0f\n\t" - "movl $32,%0\n" - "0:" - : "=r" (res) - : "r" (x) - : "cc"); - return res; -} - -static inline unsigned int hibit(unsigned int x) { - unsigned int res; - - asm ("bsr %1,%0\n\t" - "jnz 0f\n\t" - "movl $-1,%0\n" - "0:" - : "=r" (res) - : "r" (x) - : "cc"); - return res+1; -} - -/* ---------------------------------------------------------------------- */ -#else /* generic macros */ - -static inline unsigned int lobit(unsigned int x) { - unsigned int res = 32; - while (x & 0xffffff) { - x <<= 8; - res -= 8; - } - while (x) { - x <<= 1; - res -= 1; - } - return res; -} - -static inline unsigned int hibit(unsigned int x) { - unsigned int res = 0; - while (x > 0xff) { - x >>= 8; - res += 8; - } - while (x) { - x >>= 1; - res += 1; - } - return res; -} - -#endif - -#endif /* BITOPS_H */ diff --git a/Build/source/libs/potrace/potrace-src/src/curve.c b/Build/source/libs/potrace/potrace-src/src/curve.c deleted file mode 100644 index 0f415559589..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/curve.c +++ /dev/null @@ -1,112 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -/* private part of the path and curve data structures */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include - -#include "potracelib.h" -#include "lists.h" -#include "curve.h" - -#define SAFE_CALLOC(var, n, typ) \ - if ((var = (typ *)calloc(n, sizeof(typ))) == NULL) goto calloc_error - -/* ---------------------------------------------------------------------- */ -/* allocate and free path objects */ - -path_t *path_new(void) { - path_t *p = NULL; - privpath_t *priv = NULL; - - SAFE_CALLOC(p, 1, path_t); - memset(p, 0, sizeof(path_t)); - SAFE_CALLOC(priv, 1, privpath_t); - memset(priv, 0, sizeof(privpath_t)); - p->priv = priv; - return p; - - calloc_error: - free(p); - free(priv); - return NULL; -} - -/* free the members of the given curve structure. Leave errno unchanged. */ -static void privcurve_free_members(privcurve_t *curve) { - free(curve->tag); - free(curve->c); - free(curve->vertex); - free(curve->alpha); - free(curve->alpha0); - free(curve->beta); -} - -/* free a path. Leave errno untouched. */ -void path_free(path_t *p) { - if (p) { - if (p->priv) { - free(p->priv->pt); - free(p->priv->lon); - free(p->priv->sums); - free(p->priv->po); - privcurve_free_members(&p->priv->curve); - privcurve_free_members(&p->priv->ocurve); - } - free(p->priv); - /* do not free p->fcurve ! */ - } - free(p); -} - -/* free a pathlist, leaving errno untouched. */ -void pathlist_free(path_t *plist) { - path_t *p; - - list_forall_unlink(p, plist) { - path_free(p); - } -} - -/* ---------------------------------------------------------------------- */ -/* initialize and finalize curve structures */ - -typedef dpoint_t dpoint3_t[3]; - -/* initialize the members of the given curve structure to size m. - Return 0 on success, 1 on error with errno set. */ -int privcurve_init(privcurve_t *curve, int n) { - memset(curve, 0, sizeof(privcurve_t)); - curve->n = n; - SAFE_CALLOC(curve->tag, n, int); - SAFE_CALLOC(curve->c, n, dpoint3_t); - SAFE_CALLOC(curve->vertex, n, dpoint_t); - SAFE_CALLOC(curve->alpha, n, double); - SAFE_CALLOC(curve->alpha0, n, double); - SAFE_CALLOC(curve->beta, n, double); - return 0; - - calloc_error: - free(curve->tag); - free(curve->c); - free(curve->vertex); - free(curve->alpha); - free(curve->alpha0); - free(curve->beta); - return 1; -} - -/* copy private to public curve structure */ -void privcurve_to_curve(privcurve_t *pc, potrace_curve_t *c) { - c->n = pc->n; - c->tag = pc->tag; - c->c = pc->c; -} - diff --git a/Build/source/libs/potrace/potrace-src/src/curve.h b/Build/source/libs/potrace/potrace-src/src/curve.h deleted file mode 100644 index 00f042cc228..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/curve.h +++ /dev/null @@ -1,77 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -#ifndef CURVE_H -#define CURVE_H - -#include "auxiliary.h" - -/* vertex is c[1] for tag=POTRACE_CORNER, and the intersection of - .c[-1][2]..c[0] and c[1]..c[2] for tag=POTRACE_CURVETO. alpha is only - defined for tag=POTRACE_CURVETO and is the alpha parameter of the curve: - .c[-1][2]..c[0] = alpha*(.c[-1][2]..vertex), and - c[2]..c[1] = alpha*(c[2]..vertex). - Beta is so that (.beta[i])[.vertex[i],.vertex[i+1]] = .c[i][2]. -*/ - -struct privcurve_s { - int n; /* number of segments */ - int *tag; /* tag[n]: POTRACE_CORNER or POTRACE_CURVETO */ - dpoint_t (*c)[3]; /* c[n][i]: control points. - c[n][0] is unused for tag[n]=POTRACE_CORNER */ - /* the remainder of this structure is special to privcurve, and is - used in EPS debug output and special EPS "short coding". These - fields are valid only if "alphacurve" is set. */ - int alphacurve; /* have the following fields been initialized? */ - dpoint_t *vertex; /* for POTRACE_CORNER, this equals c[1] */ - double *alpha; /* only for POTRACE_CURVETO */ - double *alpha0; /* "uncropped" alpha parameter - for debug output only */ - double *beta; -}; -typedef struct privcurve_s privcurve_t; - -struct sums_s { - double x; - double y; - double x2; - double xy; - double y2; -}; -typedef struct sums_s sums_t; - -/* the path structure is filled in with information about a given path - as it is accumulated and passed through the different stages of the - Potrace algorithm. Backends only need to read the fcurve and fm - fields of this data structure, but debugging backends may read - other fields. */ -struct potrace_privpath_s { - int len; - point_t *pt; /* pt[len]: path as extracted from bitmap */ - int *lon; /* lon[len]: (i,lon[i]) = longest straight line from i */ - - int x0, y0; /* origin for sums */ - sums_t *sums; /* sums[len+1]: cache for fast summing */ - - int m; /* length of optimal polygon */ - int *po; /* po[m]: optimal polygon */ - - privcurve_t curve; /* curve[m]: array of curve elements */ - privcurve_t ocurve; /* ocurve[om]: array of curve elements */ - privcurve_t *fcurve; /* final curve: this points to either curve or - ocurve. Do not free this separately. */ -}; -typedef struct potrace_privpath_s potrace_privpath_t; - -/* shorter names */ -typedef potrace_privpath_t privpath_t; -typedef potrace_path_t path_t; - -path_t *path_new(void); -void path_free(path_t *p); -void pathlist_free(path_t *plist); -int privcurve_init(privcurve_t *curve, int n); -void privcurve_to_curve(privcurve_t *pc, potrace_curve_t *c); - -#endif /* CURVE_H */ - diff --git a/Build/source/libs/potrace/potrace-src/src/decompose.c b/Build/source/libs/potrace/potrace-src/src/decompose.c deleted file mode 100644 index 5439ad51f3a..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/decompose.c +++ /dev/null @@ -1,521 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include -#ifdef HAVE_INTTYPES_H -#include -#endif - -#include "potracelib.h" -#include "curve.h" -#include "lists.h" -#include "bitmap.h" -#include "decompose.h" -#include "progress.h" - -/* ---------------------------------------------------------------------- */ -/* deterministically and efficiently hash (x,y) into a pseudo-random bit */ - -static inline int detrand(int x, int y) { - unsigned int z; - static const unsigned char t[256] = { - /* non-linear sequence: constant term of inverse in GF(8), - mod x^8+x^4+x^3+x+1 */ - 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, - 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, - 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, - 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, - 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, - 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, - 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, - 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, - }; - - /* 0x04b3e375 and 0x05a8ef93 are chosen to contain every possible - 5-bit sequence */ - z = ((0x04b3e375 * x) ^ y) * 0x05a8ef93; - z = t[z & 0xff] ^ t[(z>>8) & 0xff] ^ t[(z>>16) & 0xff] ^ t[(z>>24) & 0xff]; - return z; -} - -/* ---------------------------------------------------------------------- */ -/* auxiliary bitmap manipulations */ - -/* set the excess padding to 0 */ -static void bm_clearexcess(potrace_bitmap_t *bm) { - potrace_word mask; - int y; - - if (bm->w % BM_WORDBITS != 0) { - mask = BM_ALLBITS << (BM_WORDBITS - (bm->w % BM_WORDBITS)); - for (y=0; yh; y++) { - *bm_index(bm, bm->w, y) &= mask; - } - } -} - -struct bbox_s { - int x0, x1, y0, y1; /* bounding box */ -}; -typedef struct bbox_s bbox_t; - -/* clear the bm, assuming the bounding box is set correctly (faster - than clearing the whole bitmap) */ -static void clear_bm_with_bbox(potrace_bitmap_t *bm, bbox_t *bbox) { - int imin = (bbox->x0 / BM_WORDBITS); - int imax = ((bbox->x1 + BM_WORDBITS-1) / BM_WORDBITS); - int i, y; - - for (y=bbox->y0; yy1; y++) { - for (i=imin; i0) { - return 1; - } else if (ct<0) { - return 0; - } - } - return 0; -} - -/* ---------------------------------------------------------------------- */ -/* decompose image into paths */ - -/* efficiently invert bits [x,infty) and [xa,infty) in line y. Here xa - must be a multiple of BM_WORDBITS. */ -static void xor_to_ref(potrace_bitmap_t *bm, int x, int y, int xa) { - int xhi = x & -BM_WORDBITS; - int xlo = x & (BM_WORDBITS-1); /* = x % BM_WORDBITS */ - int i; - - if (xhipriv->len <= 0) { /* a path of length 0 is silly, but legal */ - return; - } - - y1 = p->priv->pt[p->priv->len-1].y; - - xa = p->priv->pt[0].x & -BM_WORDBITS; - for (k=0; kpriv->len; k++) { - x = p->priv->pt[k].x; - y = p->priv->pt[k].y; - - if (y != y1) { - /* efficiently invert the rectangle [x,xa] x [y,y1] */ - xor_to_ref(bm, x, min(y,y1), xa); - y1 = y; - } - } -} - -/* Find the bounding box of a given path. Path is assumed to be of - non-zero length. */ -static void setbbox_path(bbox_t *bbox, path_t *p) { - int x, y; - int k; - - bbox->y0 = INT_MAX; - bbox->y1 = 0; - bbox->x0 = INT_MAX; - bbox->x1 = 0; - - for (k=0; kpriv->len; k++) { - x = p->priv->pt[k].x; - y = p->priv->pt[k].y; - - if (x < bbox->x0) { - bbox->x0 = x; - } - if (x > bbox->x1) { - bbox->x1 = x; - } - if (y < bbox->y0) { - bbox->y0 = y; - } - if (y > bbox->y1) { - bbox->y1 = y; - } - } -} - -/* compute a path in the given pixmap, separating black from white. - Start path at the point (x0,x1), which must be an upper left corner - of the path. Also compute the area enclosed by the path. Return a - new path_t object, or NULL on error (note that a legitimate path - cannot have length 0). Sign is required for correct interpretation - of turnpolicies. */ -static path_t *findpath(potrace_bitmap_t *bm, int x0, int y0, int sign, int turnpolicy) { - int x, y, dirx, diry, len, size; - uint64_t area; - int c, d, tmp; - point_t *pt, *pt1; - path_t *p = NULL; - - x = x0; - y = y0; - dirx = 0; - diry = -1; - - len = size = 0; - pt = NULL; - area = 0; - - while (1) { - /* add point to path */ - if (len>=size) { - size += 100; - size = (int)(1.3 * size); - pt1 = (point_t *)realloc(pt, size * sizeof(point_t)); - if (!pt1) { - goto error; - } - pt = pt1; - } - pt[len].x = x; - pt[len].y = y; - len++; - - /* move to next point */ - x += dirx; - y += diry; - area += x*diry; - - /* path complete? */ - if (x==x0 && y==y0) { - break; - } - - /* determine next direction */ - c = BM_GET(bm, x + (dirx+diry-1)/2, y + (diry-dirx-1)/2); - d = BM_GET(bm, x + (dirx-diry-1)/2, y + (diry+dirx-1)/2); - - if (c && !d) { /* ambiguous turn */ - if (turnpolicy == POTRACE_TURNPOLICY_RIGHT - || (turnpolicy == POTRACE_TURNPOLICY_BLACK && sign == '+') - || (turnpolicy == POTRACE_TURNPOLICY_WHITE && sign == '-') - || (turnpolicy == POTRACE_TURNPOLICY_RANDOM && detrand(x,y)) - || (turnpolicy == POTRACE_TURNPOLICY_MAJORITY && majority(bm, x, y)) - || (turnpolicy == POTRACE_TURNPOLICY_MINORITY && !majority(bm, x, y))) { - tmp = dirx; /* right turn */ - dirx = diry; - diry = -tmp; - } else { - tmp = dirx; /* left turn */ - dirx = -diry; - diry = tmp; - } - } else if (c) { /* right turn */ - tmp = dirx; - dirx = diry; - diry = -tmp; - } else if (!d) { /* left turn */ - tmp = dirx; - dirx = -diry; - diry = tmp; - } - } /* while this path */ - - /* allocate new path object */ - p = path_new(); - if (!p) { - goto error; - } - - p->priv->pt = pt; - p->priv->len = len; - p->area = area <= INT_MAX ? area : INT_MAX; /* avoid overflow */ - p->sign = sign; - - return p; - - error: - free(pt); - return NULL; -} - -/* Give a tree structure to the given path list, based on "insideness" - testing. I.e., path A is considered "below" path B if it is inside - path B. The input pathlist is assumed to be ordered so that "outer" - paths occur before "inner" paths. The tree structure is stored in - the "childlist" and "sibling" components of the path_t - structure. The linked list structure is also changed so that - negative path components are listed immediately after their - positive parent. Note: some backends may ignore the tree - structure, others may use it e.g. to group path components. We - assume that in the input, point 0 of each path is an "upper left" - corner of the path, as returned by bm_to_pathlist. This makes it - easy to find an "interior" point. The bm argument should be a - bitmap of the correct size (large enough to hold all the paths), - and will be used as scratch space. Return 0 on success or -1 on - error with errno set. */ - -static void pathlist_to_tree(path_t *plist, potrace_bitmap_t *bm) { - path_t *p, *p1; - path_t *heap, *heap1; - path_t *cur; - path_t *head; - path_t **plist_hook; /* for fast appending to linked list */ - path_t **hook_in, **hook_out; /* for fast appending to linked list */ - bbox_t bbox; - - bm_clear(bm, 0); - - /* save original "next" pointers */ - list_forall(p, plist) { - p->sibling = p->next; - p->childlist = NULL; - } - - heap = plist; - - /* the heap holds a list of lists of paths. Use "childlist" field - for outer list, "next" field for inner list. Each of the sublists - is to be turned into a tree. This code is messy, but it is - actually fast. Each path is rendered exactly once. We use the - heap to get a tail recursive algorithm: the heap holds a list of - pathlists which still need to be transformed. */ - - while (heap) { - /* unlink first sublist */ - cur = heap; - heap = heap->childlist; - cur->childlist = NULL; - - /* unlink first path */ - head = cur; - cur = cur->next; - head->next = NULL; - - /* render path */ - xor_path(bm, head); - setbbox_path(&bbox, head); - - /* now do insideness test for each element of cur; append it to - head->childlist if it's inside head, else append it to - head->next. */ - hook_in=&head->childlist; - hook_out=&head->next; - list_forall_unlink(p, cur) { - if (p->priv->pt[0].y <= bbox.y0) { - list_insert_beforehook(p, hook_out); - /* append the remainder of the list to hook_out */ - *hook_out = cur; - break; - } - if (BM_GET(bm, p->priv->pt[0].x, p->priv->pt[0].y-1)) { - list_insert_beforehook(p, hook_in); - } else { - list_insert_beforehook(p, hook_out); - } - } - - /* clear bm */ - clear_bm_with_bbox(bm, &bbox); - - /* now schedule head->childlist and head->next for further - processing */ - if (head->next) { - head->next->childlist = heap; - heap = head->next; - } - if (head->childlist) { - head->childlist->childlist = heap; - heap = head->childlist; - } - } - - /* copy sibling structure from "next" to "sibling" component */ - p = plist; - while (p) { - p1 = p->sibling; - p->sibling = p->next; - p = p1; - } - - /* reconstruct a new linked list ("next") structure from tree - ("childlist", "sibling") structure. This code is slightly messy, - because we use a heap to make it tail recursive: the heap - contains a list of childlists which still need to be - processed. */ - heap = plist; - if (heap) { - heap->next = NULL; /* heap is a linked list of childlists */ - } - plist = NULL; - plist_hook = &plist; - while (heap) { - heap1 = heap->next; - for (p=heap; p; p=p->sibling) { - /* p is a positive path */ - /* append to linked list */ - list_insert_beforehook(p, plist_hook); - - /* go through its children */ - for (p1=p->childlist; p1; p1=p1->sibling) { - /* append to linked list */ - list_insert_beforehook(p1, plist_hook); - /* append its childlist to heap, if non-empty */ - if (p1->childlist) { - list_append(path_t, heap1, p1->childlist); - } - } - } - heap = heap1; - } - - return; -} - -/* find the next set pixel in a row <= y. Pixels are searched first - left-to-right, then top-down. In other words, (x,y)<(x',y') if y>y' - or y=y' and x=0; y--) { - for (x=x0; xw && x>=0; x+=(unsigned)BM_WORDBITS) { - if (*bm_index(bm, x, y)) { - while (!BM_GET(bm, x, y)) { - x++; - } - /* found */ - *xp = x; - *yp = y; - return 0; - } - } - x0 = 0; - } - /* not found */ - return 1; -} - -/* Decompose the given bitmap into paths. Returns a linked list of - path_t objects with the fields len, pt, area, sign filled - in. Returns 0 on success with plistp set, or -1 on error with errno - set. */ - -int bm_to_pathlist(const potrace_bitmap_t *bm, path_t **plistp, const potrace_param_t *param, progress_t *progress) { - int x; - int y; - path_t *p; - path_t *plist = NULL; /* linked list of path objects */ - path_t **plist_hook = &plist; /* used to speed up appending to linked list */ - potrace_bitmap_t *bm1 = NULL; - int sign; - - bm1 = bm_dup(bm); - if (!bm1) { - goto error; - } - - /* be sure the byte padding on the right is set to 0, as the fast - pixel search below relies on it */ - bm_clearexcess(bm1); - - /* iterate through components */ - x = 0; - y = bm1->h - 1; - while (findnext(bm1, &x, &y) == 0) { - /* calculate the sign by looking at the original */ - sign = BM_GET(bm, x, y) ? '+' : '-'; - - /* calculate the path */ - p = findpath(bm1, x, y+1, sign, param->turnpolicy); - if (p==NULL) { - goto error; - } - - /* update buffered image */ - xor_path(bm1, p); - - /* if it's a turd, eliminate it, else append it to the list */ - if (p->area <= param->turdsize) { - path_free(p); - } else { - list_insert_beforehook(p, plist_hook); - } - - if (bm1->h > 0) { /* to be sure */ - progress_update(1-y/(double)bm1->h, progress); - } - } - - pathlist_to_tree(plist, bm1); - bm_free(bm1); - *plistp = plist; - - progress_update(1.0, progress); - - return 0; - - error: - bm_free(bm1); - list_forall_unlink(p, plist) { - path_free(p); - } - return -1; -} diff --git a/Build/source/libs/potrace/potrace-src/src/decompose.h b/Build/source/libs/potrace/potrace-src/src/decompose.h deleted file mode 100644 index a80a480ccbf..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/decompose.h +++ /dev/null @@ -1,16 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -#ifndef DECOMPOSE_H -#define DECOMPOSE_H - -#include "potracelib.h" -#include "progress.h" -#include "curve.h" - -int bm_to_pathlist(const potrace_bitmap_t *bm, path_t **plistp, const potrace_param_t *param, progress_t *progress); - -#endif /* DECOMPOSE_H */ - diff --git a/Build/source/libs/potrace/potrace-src/src/flate.c b/Build/source/libs/potrace/potrace-src/src/flate.c deleted file mode 100644 index 5c81894d910..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/flate.c +++ /dev/null @@ -1,380 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -/* the PostScript compression module of Potrace. The basic interface - is through the *_xship function, which processes a byte array and - outputs it in compressed or verbatim form, depending on whether - filter is 1 or 0. To flush the output, simply call with the empty - string and filter=0. filter=2 is used to output encoded text but - without the PostScript header to turn on the encoding. Each - function has variants for shipping a single character, a - null-terminated string, or a byte array. */ - -/* different compression algorithms are available. There is - dummy_xship, which is just the identity, and flate_xship, which - uses zlib compression. Also, lzw_xship provides LZW compression - from the file lzw.c/h. a85_xship provides a85-encoding without - compression. Each function returns the actual number of characters - written. */ - -/* note: the functions provided here have global state and are not - reentrant */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include - -#ifdef HAVE_ZLIB -#include -#endif - -#include "flate.h" -#include "lzw.h" - -#define OUTSIZE 1000 - -static int a85init(FILE *f); -static int a85finish(FILE *f); -static int a85write(FILE *f, const char *buf, int n); -static int a85out(FILE *f, int n); -static int a85spool(FILE *f, char c); - -/* ---------------------------------------------------------------------- */ -/* dummy interface: no encoding */ - -int dummy_xship(FILE *f, int filter, const char *s, int len) { - fwrite(s, 1, len, f); - return len; -} - -/* ---------------------------------------------------------------------- */ -/* flate interface: zlib (=postscript level 3) compression and a85 */ - -#ifdef HAVE_ZLIB - -int pdf_xship(FILE *f, int filter, const char *s, int len) { - static int fstate = 0; - static z_stream c_stream; - char outbuf[OUTSIZE]; - int err; - int n=0; - - if (filter && !fstate) { - /* switch on filtering */ - c_stream.zalloc = Z_NULL; - c_stream.zfree = Z_NULL; - c_stream.opaque = Z_NULL; - err = deflateInit(&c_stream, 9); - if (err != Z_OK) { - fprintf(stderr, "deflateInit: %s (%d)\n", c_stream.msg, err); - exit(2); - } - c_stream.avail_in = 0; - fstate = 1; - } else if (!filter && fstate) { - /* switch off filtering */ - /* flush stream */ - do { - c_stream.next_out = (Bytef*)outbuf; - c_stream.avail_out = OUTSIZE; - - err = deflate(&c_stream, Z_FINISH); - if (err != Z_OK && err != Z_STREAM_END) { - fprintf(stderr, "deflate: %s (%d)\n", c_stream.msg, err); - exit(2); - } - n += fwrite(outbuf, 1, OUTSIZE-c_stream.avail_out, f); - } while (err != Z_STREAM_END); - - fstate = 0; - } - if (!fstate) { - fwrite(s, 1, len, f); - return n+len; - } - - /* do the actual compression */ - c_stream.next_in = (Bytef*) s; - c_stream.avail_in = len; - - do { - c_stream.next_out = (Bytef*) outbuf; - c_stream.avail_out = OUTSIZE; - - err = deflate(&c_stream, Z_NO_FLUSH); - if (err != Z_OK) { - fprintf(stderr, "deflate: %s (%d)\n", c_stream.msg, err); - exit(2); - } - n += fwrite(outbuf, 1, OUTSIZE-c_stream.avail_out, f); - } while (!c_stream.avail_out); - - return n; -} - -/* ship len bytes from s using zlib compression. */ -int flate_xship(FILE *f, int filter, const char *s, int len) { - static int fstate = 0; - static z_stream c_stream; - char outbuf[OUTSIZE]; - int err; - int n=0; - - if (filter && !fstate) { - /* switch on filtering */ - if (filter == 1) { - n += fprintf(f, "currentfile /ASCII85Decode filter /FlateDecode filter cvx exec\n"); - } - c_stream.zalloc = Z_NULL; - c_stream.zfree = Z_NULL; - c_stream.opaque = Z_NULL; - err = deflateInit(&c_stream, 9); - if (err != Z_OK) { - fprintf(stderr, "deflateInit: %s (%d)\n", c_stream.msg, err); - exit(2); - } - c_stream.avail_in = 0; - n += a85init(f); - fstate = 1; - } else if (!filter && fstate) { - /* switch off filtering */ - /* flush stream */ - do { - c_stream.next_out = (Bytef*)outbuf; - c_stream.avail_out = OUTSIZE; - - err = deflate(&c_stream, Z_FINISH); - if (err != Z_OK && err != Z_STREAM_END) { - fprintf(stderr, "deflate: %s (%d)\n", c_stream.msg, err); - exit(2); - } - n += a85write(f, outbuf, OUTSIZE-c_stream.avail_out); - } while (err != Z_STREAM_END); - - n += a85finish(f); - - fstate = 0; - } - if (!fstate) { - fwrite(s, 1, len, f); - return n+len; - } - - /* do the actual compression */ - c_stream.next_in = (Bytef*) s; - c_stream.avail_in = len; - - do { - c_stream.next_out = (Bytef*) outbuf; - c_stream.avail_out = OUTSIZE; - - err = deflate(&c_stream, Z_NO_FLUSH); - if (err != Z_OK) { - fprintf(stderr, "deflate: %s (%d)\n", c_stream.msg, err); - exit(2); - } - n += a85write(f, outbuf, OUTSIZE-c_stream.avail_out); - } while (!c_stream.avail_out); - - return n; -} - -#else /* HAVE_ZLIB */ - -int pdf_xship(FILE *f, int filter, const char *s, int len) { - return dummy_xship(f, filter, s, len); -} - -int flate_xship(FILE *f, int filter, const char *s, int len) { - return dummy_xship(f, filter, s, len); -} - -#endif /* HAVE_ZLIB */ - -/* ---------------------------------------------------------------------- */ -/* lzw interface: LZW (=postscript level 2) compression with a85. - This relies on lzw.c/h to do the actual compression. */ - -/* use Postscript level 2 compression. Ship len bytes from str. */ -int lzw_xship(FILE *f, int filter, const char *str, int len) { - static int fstate = 0; - static lzw_stream_t *s = NULL; - char outbuf[OUTSIZE]; - int err; - int n=0; - - if (filter && !fstate) { - /* switch on filtering */ - if (filter == 1) { - n += fprintf(f, "currentfile /ASCII85Decode filter /LZWDecode filter cvx exec\n"); - } - s = lzw_init(); - if (s == NULL) { - fprintf(stderr, "lzw_init: %s\n", strerror(errno)); - exit(2); - } - n += a85init(f); - fstate = 1; - } else if (!filter && fstate) { - /* switch off filtering */ - /* flush stream */ - s->next_in = 0; - s->avail_in = 0; - do { - s->next_out = outbuf; - s->avail_out = OUTSIZE; - - err = lzw_compress(s, LZW_EOD); - if (err) { - fprintf(stderr, "lzw_compress: %s\n", strerror(errno)); - exit(2); - } - n += a85write(f, outbuf, OUTSIZE - s->avail_out); - } while (s->avail_out == 0); - - n += a85finish(f); - - lzw_free(s); - s = NULL; - - fstate = 0; - } - if (!fstate) { - fwrite(str, 1, len, f); - return n+len; - } - - /* do the actual compression */ - s->next_in = str; - s->avail_in = len; - - do { - s->next_out = outbuf; - s->avail_out = OUTSIZE; - - err = lzw_compress(s, LZW_NORMAL); - if (err) { - fprintf(stderr, "lzw_compress: %s\n", strerror(errno)); - exit(2); - } - n += a85write(f, outbuf, OUTSIZE - s->avail_out); - } while (s->avail_out == 0); - - return n; -} - -/* ---------------------------------------------------------------------- */ -/* a85 interface: a85 encoding without compression */ - -/* ship len bytes from s using a85 encoding only. */ -int a85_xship(FILE *f, int filter, const char *s, int len) { - static int fstate = 0; - int n=0; - - if (filter && !fstate) { - /* switch on filtering */ - if (filter == 1) { - n += fprintf(f, "currentfile /ASCII85Decode filter cvx exec\n"); - } - n += a85init(f); - fstate = 1; - } else if (!filter && fstate) { - /* switch off filtering */ - /* flush stream */ - n += a85finish(f); - fstate = 0; - } - if (!fstate) { - fwrite(s, 1, len, f); - return n+len; - } - - n += a85write(f, s, len); - - return n; -} - -/* ---------------------------------------------------------------------- */ -/* low-level a85 backend */ - -static unsigned long a85buf[4]; -static int a85n; -static int a85col; - -static int a85init(FILE *f) { - a85n = 0; - a85col = 0; - return 0; -} - -static int a85finish(FILE *f) { - int r=0; - - if (a85n) { - r+=a85out(f, a85n); - } - fputs("~>\n", f); - return r+2; -} - -static int a85write(FILE *f, const char *buf, int n) { - int i; - int r=0; - - for (i=0; i=0; i--) { - out[i] = s % 85; - s /= 85; - } - for (i=0; i70) { - fputc('\n', f); - a85col=0; - return 2; - } - - return 1; -} diff --git a/Build/source/libs/potrace/potrace-src/src/flate.h b/Build/source/libs/potrace/potrace-src/src/flate.h deleted file mode 100644 index d3a9961bcfd..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/flate.h +++ /dev/null @@ -1,15 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -#ifndef FLATE_H -#define FLATE_H - -int dummy_xship(FILE *f, int filter, const char *s, int len); -int flate_xship(FILE *f, int filter, const char *s, int len); -int pdf_xship(FILE *f, int filter, const char *s, int len); -int lzw_xship(FILE *f, int filter, const char *s, int len); -int a85_xship(FILE *f, int filter, const char *s, int len); - -#endif /* FLATE_H */ diff --git a/Build/source/libs/potrace/potrace-src/src/getopt.c b/Build/source/libs/potrace/potrace-src/src/getopt.c deleted file mode 100644 index d889c3c8686..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/getopt.c +++ /dev/null @@ -1,1041 +0,0 @@ -/* Getopt for GNU. - NOTE: getopt is now part of the C library, so if you don't know what - "Keep this file name-space clean" means, talk to drepper@gnu.org - before changing it! - - Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000 - Free Software Foundation, Inc. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* This tells Alpha OSF/1 not to define a getopt prototype in . - Ditto for AIX 3.2 and . */ -#ifndef _NO_PROTO -# define _NO_PROTO -#endif - -#ifdef HAVE_CONFIG_H -# include -#endif - -#if !defined __STDC__ || !__STDC__ -/* This is a separate conditional since some stdc systems - reject `defined (const)'. */ -# ifndef const -# define const -# endif -#endif - -#include - -/* This needs to come after some library #include - to get __GNU_LIBRARY__ defined. */ -#ifdef __GNU_LIBRARY__ -/* Don't include stdlib.h for non-GNU C libraries because some of them - contain conflicting prototypes for getopt. */ -# include -# include -#endif /* GNU C library. */ - -#ifdef VMS -# include -# if HAVE_STRING_H - 0 -# include -# endif -#endif - -#ifndef _ -/* This is for other GNU distributions with internationalized messages. */ -# if defined HAVE_LIBINTL_H || defined _LIBC -# include -# ifndef _ -# define _(msgid) gettext (msgid) -# endif -# else -# define _(msgid) (msgid) -# endif -#endif - -/* This version of `getopt' appears to the caller like standard Unix `getopt' - but it behaves differently for the user, since it allows the user - to intersperse the options with the other arguments. - - As `getopt' works, it permutes the elements of ARGV so that, - when it is done, all the options precede everything else. Thus - all application programs are extended to handle flexible argument order. - - Setting the environment variable POSIXLY_CORRECT disables permutation. - Then the behavior is completely standard. - - GNU application programs can use a third alternative mode in which - they can distinguish the relative order of options and other arguments. */ - -#include "getopt.h" - -/* For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. */ - -char *optarg; - -/* Index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - - On entry to `getopt', zero means this is the first call; initialize. - - When `getopt' returns -1, this is the index of the first of the - non-option elements that the caller should itself scan. - - Otherwise, `optind' communicates from one call to the next - how much of ARGV has been scanned so far. */ - -/* 1003.2 says this must be 1 before any call. */ -int optind = 1; - -/* Formerly, initialization of getopt depended on optind==0, which - causes problems with re-calling getopt as programs generally don't - know that. */ - -int __getopt_initialized; - -/* The next char to be scanned in the option-element - in which the last option character we returned was found. - This allows us to pick up the scan where we left off. - - If this is zero, or a null string, it means resume the scan - by advancing to the next ARGV-element. */ - -static char *nextchar; - -/* Callers store zero here to inhibit the error message - for unrecognized options. */ - -int opterr = 1; - -/* Set to an option character which was unrecognized. - This must be initialized on some systems to avoid linking in the - system's own getopt implementation. */ - -int optopt = '?'; - -/* Describe how to deal with options that follow non-option ARGV-elements. - - If the caller did not specify anything, - the default is REQUIRE_ORDER if the environment variable - POSIXLY_CORRECT is defined, PERMUTE otherwise. - - REQUIRE_ORDER means don't recognize them as options; - stop option processing when the first non-option is seen. - This is what Unix does. - This mode of operation is selected by either setting the environment - variable POSIXLY_CORRECT, or using `+' as the first character - of the list of option characters. - - PERMUTE is the default. We permute the contents of ARGV as we scan, - so that eventually all the non-options are at the end. This allows options - to be given in any order, even with programs that were not written to - expect this. - - RETURN_IN_ORDER is an option available to programs that were written - to expect options and other ARGV-elements in any order and that care about - the ordering of the two. We describe each non-option ARGV-element - as if it were the argument of an option with character code 1. - Using `-' as the first character of the list of option characters - selects this mode of operation. - - The special argument `--' forces an end of option-scanning regardless - of the value of `ordering'. In the case of RETURN_IN_ORDER, only - `--' can cause `getopt' to return -1 with `optind' != ARGC. */ - -static enum -{ - REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER -} ordering; - -/* Value of POSIXLY_CORRECT environment variable. */ -static char *posixly_correct; - -#ifdef __GNU_LIBRARY__ -/* We want to avoid inclusion of string.h with non-GNU libraries - because there are many ways it can cause trouble. - On some systems, it contains special magic macros that don't work - in GCC. */ -# include -# define my_index strchr -#else - -# if HAVE_STRING_H -# include -# else -# include -# endif - -/* Avoid depending on library functions or files - whose names are inconsistent. */ - -#ifndef getenv -extern char *getenv (); -#endif - -static char * -my_index (str, chr) - const char *str; - int chr; -{ - while (*str) - { - if (*str == chr) - return (char *) str; - str++; - } - return 0; -} - -/* If using GCC, we can safely declare strlen this way. - If not using GCC, it is ok not to declare it. */ -#ifdef __GNUC__ -/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h. - That was relevant to code that was here before. */ -# if (!defined __STDC__ || !__STDC__) && !defined strlen -/* gcc with -traditional declares the built-in strlen to return int, - and has done so at least since version 2.4.5. -- rms. */ -extern int strlen (const char *); -# endif /* not __STDC__ */ -#endif /* __GNUC__ */ - -#endif /* not __GNU_LIBRARY__ */ - -/* Handle permutation of arguments. */ - -/* Describe the part of ARGV that contains non-options that have - been skipped. `first_nonopt' is the index in ARGV of the first of them; - `last_nonopt' is the index after the last of them. */ - -static int first_nonopt; -static int last_nonopt; - -#ifdef _LIBC -/* Bash 2.0 gives us an environment variable containing flags - indicating ARGV elements that should not be considered arguments. */ - -/* Defined in getopt_init.c */ -extern char *__getopt_nonoption_flags; - -static int nonoption_flags_max_len; -static int nonoption_flags_len; - -static int original_argc; -static char *const *original_argv; - -/* Make sure the environment variable bash 2.0 puts in the environment - is valid for the getopt call we must make sure that the ARGV passed - to getopt is that one passed to the process. */ -static void -__attribute__ ((unused)) -store_args_and_env (int argc, char *const *argv) -{ - /* XXX This is no good solution. We should rather copy the args so - that we can compare them later. But we must not use malloc(3). */ - original_argc = argc; - original_argv = argv; -} -# ifdef text_set_element -text_set_element (__libc_subinit, store_args_and_env); -# endif /* text_set_element */ - -# define SWAP_FLAGS(ch1, ch2) \ - if (nonoption_flags_len > 0) \ - { \ - char __tmp = __getopt_nonoption_flags[ch1]; \ - __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \ - __getopt_nonoption_flags[ch2] = __tmp; \ - } -#else /* !_LIBC */ -# define SWAP_FLAGS(ch1, ch2) -#endif /* _LIBC */ - -/* Exchange two adjacent subsequences of ARGV. - One subsequence is elements [first_nonopt,last_nonopt) - which contains all the non-options that have been skipped so far. - The other is elements [last_nonopt,optind), which contains all - the options processed since those non-options were skipped. - - `first_nonopt' and `last_nonopt' are relocated so that they describe - the new indices of the non-options in ARGV after they are moved. */ - -#if defined __STDC__ && __STDC__ -static void exchange (char **); -#endif - -static void -exchange (argv) - char **argv; -{ - int bottom = first_nonopt; - int middle = last_nonopt; - int top = optind; - char *tem; - - /* Exchange the shorter segment with the far end of the longer segment. - That puts the shorter segment into the right place. - It leaves the longer segment in the right place overall, - but it consists of two parts that need to be swapped next. */ - -#ifdef _LIBC - /* First make sure the handling of the `__getopt_nonoption_flags' - string can work normally. Our top argument must be in the range - of the string. */ - if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len) - { - /* We must extend the array. The user plays games with us and - presents new arguments. */ - char *new_str = malloc (top + 1); - if (new_str == NULL) - nonoption_flags_len = nonoption_flags_max_len = 0; - else - { - memset (__mempcpy (new_str, __getopt_nonoption_flags, - nonoption_flags_max_len), - '\0', top + 1 - nonoption_flags_max_len); - nonoption_flags_max_len = top + 1; - __getopt_nonoption_flags = new_str; - } - } -#endif - - while (top > middle && middle > bottom) - { - if (top - middle > middle - bottom) - { - /* Bottom segment is the short one. */ - int len = middle - bottom; - register int i; - - /* Swap it with the top part of the top segment. */ - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[top - (middle - bottom) + i]; - argv[top - (middle - bottom) + i] = tem; - SWAP_FLAGS (bottom + i, top - (middle - bottom) + i); - } - /* Exclude the moved bottom segment from further swapping. */ - top -= len; - } - else - { - /* Top segment is the short one. */ - int len = top - middle; - register int i; - - /* Swap it with the bottom part of the bottom segment. */ - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[middle + i]; - argv[middle + i] = tem; - SWAP_FLAGS (bottom + i, middle + i); - } - /* Exclude the moved top segment from further swapping. */ - bottom += len; - } - } - - /* Update records for the slots the non-options now occupy. */ - - first_nonopt += (optind - last_nonopt); - last_nonopt = optind; -} - -/* Initialize the internal data when the first call is made. */ - -#if defined __STDC__ && __STDC__ -static const char *_getopt_initialize (int, char *const *, const char *); -#endif -static const char * -_getopt_initialize (argc, argv, optstring) - int argc; - char *const *argv; - const char *optstring; -{ - /* Start processing options with ARGV-element 1 (since ARGV-element 0 - is the program name); the sequence of previously skipped - non-option ARGV-elements is empty. */ - - first_nonopt = last_nonopt = optind; - - nextchar = NULL; - - posixly_correct = getenv ("POSIXLY_CORRECT"); - - /* Determine how to handle the ordering of options and nonoptions. */ - - if (optstring[0] == '-') - { - ordering = RETURN_IN_ORDER; - ++optstring; - } - else if (optstring[0] == '+') - { - ordering = REQUIRE_ORDER; - ++optstring; - } - else if (posixly_correct != NULL) - ordering = REQUIRE_ORDER; - else - ordering = PERMUTE; - -#ifdef _LIBC - if (posixly_correct == NULL - && argc == original_argc && argv == original_argv) - { - if (nonoption_flags_max_len == 0) - { - if (__getopt_nonoption_flags == NULL - || __getopt_nonoption_flags[0] == '\0') - nonoption_flags_max_len = -1; - else - { - const char *orig_str = __getopt_nonoption_flags; - int len = nonoption_flags_max_len = strlen (orig_str); - if (nonoption_flags_max_len < argc) - nonoption_flags_max_len = argc; - __getopt_nonoption_flags = - (char *) malloc (nonoption_flags_max_len); - if (__getopt_nonoption_flags == NULL) - nonoption_flags_max_len = -1; - else - memset (__mempcpy (__getopt_nonoption_flags, orig_str, len), - '\0', nonoption_flags_max_len - len); - } - } - nonoption_flags_len = nonoption_flags_max_len; - } - else - nonoption_flags_len = 0; -#endif - - return optstring; -} - -/* Scan elements of ARGV (whose length is ARGC) for option characters - given in OPTSTRING. - - If an element of ARGV starts with '-', and is not exactly "-" or "--", - then it is an option element. The characters of this element - (aside from the initial '-') are option characters. If `getopt' - is called repeatedly, it returns successively each of the option characters - from each of the option elements. - - If `getopt' finds another option character, it returns that character, - updating `optind' and `nextchar' so that the next call to `getopt' can - resume the scan with the following option character or ARGV-element. - - If there are no more option characters, `getopt' returns -1. - Then `optind' is the index in ARGV of the first ARGV-element - that is not an option. (The ARGV-elements have been permuted - so that those that are not options now come last.) - - OPTSTRING is a string containing the legitimate option characters. - If an option character is seen that is not listed in OPTSTRING, - return '?' after printing an error message. If you set `opterr' to - zero, the error message is suppressed but we still return '?'. - - If a char in OPTSTRING is followed by a colon, that means it wants an arg, - so the following text in the same ARGV-element, or the text of the following - ARGV-element, is returned in `optarg'. Two colons mean an option that - wants an optional arg; if there is text in the current ARGV-element, - it is returned in `optarg', otherwise `optarg' is set to zero. - - If OPTSTRING starts with `-' or `+', it requests different methods of - handling the non-option ARGV-elements. - See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. - - Long-named options begin with `--' instead of `-'. - Their names may be abbreviated as long as the abbreviation is unique - or is an exact match for some defined option. If they have an - argument, it follows the option name in the same ARGV-element, separated - from the option name by a `=', or else the in next ARGV-element. - When `getopt' finds a long-named option, it returns 0 if that option's - `flag' field is nonzero, the value of the option's `val' field - if the `flag' field is zero. - - The elements of ARGV aren't really const, because we permute them. - But we pretend they're const in the prototype to be compatible - with other systems. - - LONGOPTS is a vector of `struct option' terminated by an - element containing a name which is zero. - - LONGIND returns the index in LONGOPT of the long-named option found. - It is only valid when a long-named option has been found by the most - recent call. - - If LONG_ONLY is nonzero, '-' as well as '--' can introduce - long-named options. */ - -int -_getopt_internal (argc, argv, optstring, longopts, longind, long_only) - int argc; - char *const *argv; - const char *optstring; - const struct option *longopts; - int *longind; - int long_only; -{ - int print_errors = opterr; - if (optstring[0] == ':') - print_errors = 0; - - if (argc < 1) - return -1; - - optarg = NULL; - - if (optind == 0 || !__getopt_initialized) - { - if (optind == 0) - optind = 1; /* Don't scan ARGV[0], the program name. */ - optstring = _getopt_initialize (argc, argv, optstring); - __getopt_initialized = 1; - } - - /* Test whether ARGV[optind] points to a non-option argument. - Either it does not have option syntax, or there is an environment flag - from the shell indicating it is not an option. The later information - is only used when the used in the GNU libc. */ -#ifdef _LIBC -# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \ - || (optind < nonoption_flags_len \ - && __getopt_nonoption_flags[optind] == '1')) -#else -# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0') -#endif - - if (nextchar == NULL || *nextchar == '\0') - { - /* Advance to the next ARGV-element. */ - - /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been - moved back by the user (who may also have changed the arguments). */ - if (last_nonopt > optind) - last_nonopt = optind; - if (first_nonopt > optind) - first_nonopt = optind; - - if (ordering == PERMUTE) - { - /* If we have just processed some options following some non-options, - exchange them so that the options come first. */ - - if (first_nonopt != last_nonopt && last_nonopt != optind) - exchange ((char **) argv); - else if (last_nonopt != optind) - first_nonopt = optind; - - /* Skip any additional non-options - and extend the range of non-options previously skipped. */ - - while (optind < argc && NONOPTION_P) - optind++; - last_nonopt = optind; - } - - /* The special ARGV-element `--' means premature end of options. - Skip it like a null option, - then exchange with previous non-options as if it were an option, - then skip everything else like a non-option. */ - - if (optind != argc && !strcmp (argv[optind], "--")) - { - optind++; - - if (first_nonopt != last_nonopt && last_nonopt != optind) - exchange ((char **) argv); - else if (first_nonopt == last_nonopt) - first_nonopt = optind; - last_nonopt = argc; - - optind = argc; - } - - /* If we have done all the ARGV-elements, stop the scan - and back over any non-options that we skipped and permuted. */ - - if (optind == argc) - { - /* Set the next-arg-index to point at the non-options - that we previously skipped, so the caller will digest them. */ - if (first_nonopt != last_nonopt) - optind = first_nonopt; - return -1; - } - - /* If we have come to a non-option and did not permute it, - either stop the scan or describe it to the caller and pass it by. */ - - if (NONOPTION_P) - { - if (ordering == REQUIRE_ORDER) - return -1; - optarg = argv[optind++]; - return 1; - } - - /* We have found another option-ARGV-element. - Skip the initial punctuation. */ - - nextchar = (argv[optind] + 1 - + (longopts != NULL && argv[optind][1] == '-')); - } - - /* Decode the current option-ARGV-element. */ - - /* Check whether the ARGV-element is a long option. - - If long_only and the ARGV-element has the form "-f", where f is - a valid short option, don't consider it an abbreviated form of - a long option that starts with f. Otherwise there would be no - way to give the -f short option. - - On the other hand, if there's a long option "fubar" and - the ARGV-element is "-fu", do consider that an abbreviation of - the long option, just like "--fu", and not "-f" with arg "u". - - This distinction seems to be the most useful approach. */ - - if (longopts != NULL - && (argv[optind][1] == '-' - || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1]))))) - { - char *nameend; - const struct option *p; - const struct option *pfound = NULL; - int exact = 0; - int ambig = 0; - int indfound = -1; - int option_index; - - for (nameend = nextchar; *nameend && *nameend != '='; nameend++) - /* Do nothing. */ ; - - /* Test all long options for either exact match - or abbreviated matches. */ - for (p = longopts, option_index = 0; p->name; p++, option_index++) - if (!strncmp (p->name, nextchar, nameend - nextchar)) - { - if ((unsigned int) (nameend - nextchar) - == (unsigned int) strlen (p->name)) - { - /* Exact match found. */ - pfound = p; - indfound = option_index; - exact = 1; - break; - } - else if (pfound == NULL) - { - /* First nonexact match found. */ - pfound = p; - indfound = option_index; - } - else if (long_only - || pfound->has_arg != p->has_arg - || pfound->flag != p->flag - || pfound->val != p->val) - /* Second or later nonexact match found. */ - ambig = 1; - } - - if (ambig && !exact) - { - if (print_errors) - fprintf (stderr, _("%s: option `%s' is ambiguous\n"), - argv[0], argv[optind]); - nextchar += strlen (nextchar); - optind++; - optopt = 0; - return '?'; - } - - if (pfound != NULL) - { - option_index = indfound; - optind++; - if (*nameend) - { - /* Don't test has_arg with >, because some C compilers don't - allow it to be used on enums. */ - if (pfound->has_arg) - optarg = nameend + 1; - else - { - if (print_errors) - { - if (argv[optind - 1][1] == '-') - /* --option */ - fprintf (stderr, - _("%s: option `--%s' doesn't allow an argument\n"), - argv[0], pfound->name); - else - /* +option or -option */ - fprintf (stderr, - _("%s: option `%c%s' doesn't allow an argument\n"), - argv[0], argv[optind - 1][0], pfound->name); - } - - nextchar += strlen (nextchar); - - optopt = pfound->val; - return '?'; - } - } - else if (pfound->has_arg == 1) - { - if (optind < argc) - optarg = argv[optind++]; - else - { - if (print_errors) - fprintf (stderr, - _("%s: option `%s' requires an argument\n"), - argv[0], argv[optind - 1]); - nextchar += strlen (nextchar); - optopt = pfound->val; - return optstring[0] == ':' ? ':' : '?'; - } - } - nextchar += strlen (nextchar); - if (longind != NULL) - *longind = option_index; - if (pfound->flag) - { - *(pfound->flag) = pfound->val; - return 0; - } - return pfound->val; - } - - /* Can't find it as a long option. If this is not getopt_long_only, - or the option starts with '--' or is not a valid short - option, then it's an error. - Otherwise interpret it as a short option. */ - if (!long_only || argv[optind][1] == '-' - || my_index (optstring, *nextchar) == NULL) - { - if (print_errors) - { - if (argv[optind][1] == '-') - /* --option */ - fprintf (stderr, _("%s: unrecognized option `--%s'\n"), - argv[0], nextchar); - else - /* +option or -option */ - fprintf (stderr, _("%s: unrecognized option `%c%s'\n"), - argv[0], argv[optind][0], nextchar); - } - nextchar = (char *) ""; - optind++; - optopt = 0; - return '?'; - } - } - - /* Look at and handle the next short option-character. */ - - { - char c = *nextchar++; - char *temp = my_index (optstring, c); - - /* Increment `optind' when we start to process its last character. */ - if (*nextchar == '\0') - ++optind; - - if (temp == NULL || c == ':') - { - if (print_errors) - { - if (posixly_correct) - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, _("%s: illegal option -- %c\n"), - argv[0], c); - else - fprintf (stderr, _("%s: invalid option -- %c\n"), - argv[0], c); - } - optopt = c; - return '?'; - } - /* Convenience. Treat POSIX -W foo same as long option --foo */ - if (temp[0] == 'W' && temp[1] == ';') - { - char *nameend; - const struct option *p; - const struct option *pfound = NULL; - int exact = 0; - int ambig = 0; - int indfound = 0; - int option_index; - - /* This is an option that requires an argument. */ - if (*nextchar != '\0') - { - optarg = nextchar; - /* If we end this ARGV-element by taking the rest as an arg, - we must advance to the next element now. */ - optind++; - } - else if (optind == argc) - { - if (print_errors) - { - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, _("%s: option requires an argument -- %c\n"), - argv[0], c); - } - optopt = c; - if (optstring[0] == ':') - c = ':'; - else - c = '?'; - return c; - } - else - /* We already incremented `optind' once; - increment it again when taking next ARGV-elt as argument. */ - optarg = argv[optind++]; - - /* optarg is now the argument, see if it's in the - table of longopts. */ - - for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++) - /* Do nothing. */ ; - - /* Test all long options for either exact match - or abbreviated matches. */ - for (p = longopts, option_index = 0; p->name; p++, option_index++) - if (!strncmp (p->name, nextchar, nameend - nextchar)) - { - if ((unsigned int) (nameend - nextchar) == strlen (p->name)) - { - /* Exact match found. */ - pfound = p; - indfound = option_index; - exact = 1; - break; - } - else if (pfound == NULL) - { - /* First nonexact match found. */ - pfound = p; - indfound = option_index; - } - else - /* Second or later nonexact match found. */ - ambig = 1; - } - if (ambig && !exact) - { - if (print_errors) - fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"), - argv[0], argv[optind]); - nextchar += strlen (nextchar); - optind++; - return '?'; - } - if (pfound != NULL) - { - option_index = indfound; - if (*nameend) - { - /* Don't test has_arg with >, because some C compilers don't - allow it to be used on enums. */ - if (pfound->has_arg) - optarg = nameend + 1; - else - { - if (print_errors) - fprintf (stderr, _("%s: option `-W %s' doesn't allow an argument\n"), - argv[0], pfound->name); - - nextchar += strlen (nextchar); - return '?'; - } - } - else if (pfound->has_arg == 1) - { - if (optind < argc) - optarg = argv[optind++]; - else - { - if (print_errors) - fprintf (stderr, - _("%s: option `%s' requires an argument\n"), - argv[0], argv[optind - 1]); - nextchar += strlen (nextchar); - return optstring[0] == ':' ? ':' : '?'; - } - } - nextchar += strlen (nextchar); - if (longind != NULL) - *longind = option_index; - if (pfound->flag) - { - *(pfound->flag) = pfound->val; - return 0; - } - return pfound->val; - } - nextchar = NULL; - return 'W'; /* Let the application handle it. */ - } - if (temp[1] == ':') - { - if (temp[2] == ':') - { - /* This is an option that accepts an argument optionally. */ - if (*nextchar != '\0') - { - optarg = nextchar; - optind++; - } - else - optarg = NULL; - nextchar = NULL; - } - else - { - /* This is an option that requires an argument. */ - if (*nextchar != '\0') - { - optarg = nextchar; - /* If we end this ARGV-element by taking the rest as an arg, - we must advance to the next element now. */ - optind++; - } - else if (optind == argc) - { - if (print_errors) - { - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, - _("%s: option requires an argument -- %c\n"), - argv[0], c); - } - optopt = c; - if (optstring[0] == ':') - c = ':'; - else - c = '?'; - } - else - /* We already incremented `optind' once; - increment it again when taking next ARGV-elt as argument. */ - optarg = argv[optind++]; - nextchar = NULL; - } - } - return c; - } -} - -int -getopt (argc, argv, optstring) - int argc; - char *const *argv; - const char *optstring; -{ - return _getopt_internal (argc, argv, optstring, - (const struct option *) 0, - (int *) 0, - 0); -} - - -#ifdef TEST - -/* Compile with -DTEST to make an executable for use in testing - the above definition of `getopt'. */ - -int -main (argc, argv) - int argc; - char **argv; -{ - int c; - int digit_optind = 0; - - while (1) - { - int this_option_optind = optind ? optind : 1; - - c = getopt (argc, argv, "abc:d:0123456789"); - if (c == -1) - break; - - switch (c) - { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (digit_optind != 0 && digit_optind != this_option_optind) - printf ("digits occur in two different argv-elements.\n"); - digit_optind = this_option_optind; - printf ("option %c\n", c); - break; - - case 'a': - printf ("option a\n"); - break; - - case 'b': - printf ("option b\n"); - break; - - case 'c': - printf ("option c with value `%s'\n", optarg); - break; - - case '?': - break; - - default: - printf ("?? getopt returned character code 0%o ??\n", c); - } - } - - if (optind < argc) - { - printf ("non-option ARGV-elements: "); - while (optind < argc) - printf ("%s ", argv[optind++]); - printf ("\n"); - } - - exit (0); -} - -#endif /* TEST */ diff --git a/Build/source/libs/potrace/potrace-src/src/getopt1.c b/Build/source/libs/potrace/potrace-src/src/getopt1.c deleted file mode 100644 index d983d120ac0..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/getopt1.c +++ /dev/null @@ -1,168 +0,0 @@ -/* getopt_long and getopt_long_only entry points for GNU getopt. - Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98 - Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "getopt.h" - -#if !defined __STDC__ || !__STDC__ -/* This is a separate conditional since some stdc systems - reject `defined (const)'. */ -#ifndef const -#define const -#endif -#endif - -#include - -/* This needs to come after some library #include - to get __GNU_LIBRARY__ defined. */ -#ifdef __GNU_LIBRARY__ -#include -#endif - -#ifndef NULL -#define NULL 0 -#endif - -int -getopt_long (argc, argv, options, long_options, opt_index) - int argc; - char *const *argv; - const char *options; - const struct option *long_options; - int *opt_index; -{ - return _getopt_internal (argc, argv, options, long_options, opt_index, 0); -} - -/* Like getopt_long, but '-' as well as '--' can indicate a long option. - If an option that starts with '-' (not '--') doesn't match a long option, - but does match a short option, it is parsed as a short option - instead. */ - -int -getopt_long_only (argc, argv, options, long_options, opt_index) - int argc; - char *const *argv; - const char *options; - const struct option *long_options; - int *opt_index; -{ - return _getopt_internal (argc, argv, options, long_options, opt_index, 1); -} - - - -#ifdef TEST - -#include - -int -main (argc, argv) - int argc; - char **argv; -{ - int c; - int digit_optind = 0; - - while (1) - { - int this_option_optind = optind ? optind : 1; - int option_index = 0; - static struct option long_options[] = - { - {"add", 1, 0, 0}, - {"append", 0, 0, 0}, - {"delete", 1, 0, 0}, - {"verbose", 0, 0, 0}, - {"create", 0, 0, 0}, - {"file", 1, 0, 0}, - {0, 0, 0, 0} - }; - - c = getopt_long (argc, argv, "abc:d:0123456789", - long_options, &option_index); - if (c == -1) - break; - - switch (c) - { - case 0: - printf ("option %s", long_options[option_index].name); - if (optarg) - printf (" with arg %s", optarg); - printf ("\n"); - break; - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (digit_optind != 0 && digit_optind != this_option_optind) - printf ("digits occur in two different argv-elements.\n"); - digit_optind = this_option_optind; - printf ("option %c\n", c); - break; - - case 'a': - printf ("option a\n"); - break; - - case 'b': - printf ("option b\n"); - break; - - case 'c': - printf ("option c with value `%s'\n", optarg); - break; - - case 'd': - printf ("option d with value `%s'\n", optarg); - break; - - case '?': - break; - - default: - printf ("?? getopt returned character code 0%o ??\n", c); - } - } - - if (optind < argc) - { - printf ("non-option ARGV-elements: "); - while (optind < argc) - printf ("%s ", argv[optind++]); - printf ("\n"); - } - - exit (0); -} - -#endif /* TEST */ diff --git a/Build/source/libs/potrace/potrace-src/src/greymap.c b/Build/source/libs/potrace/potrace-src/src/greymap.c deleted file mode 100644 index 0f97f12056e..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/greymap.c +++ /dev/null @@ -1,1084 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -/* Routines for manipulating greymaps, including reading pgm files. We - only deal with greymaps of depth 8 bits. */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include -#include - -#include "greymap.h" -#include "bitops.h" - -#define INTBITS (8*sizeof(int)) - -#define mod(a,n) ((a)>=(n) ? (a)%(n) : (a)>=0 ? (a) : (n)-1-(-1-(a))%(n)) - -static int gm_readbody_pnm(FILE *f, greymap_t **gmp, int magic); -static int gm_readbody_bmp(FILE *f, greymap_t **gmp); - -#define TRY(x) if (x) goto try_error -#define TRY_EOF(x) if (x) goto eof -#define TRY_STD(x) if (x) goto std_error - -/* ---------------------------------------------------------------------- */ -/* basic greymap routines */ - -/* calculate the size, in bytes, required for the data area of a - greymap of the given dy and h. Assume h >= 0. Return -1 if the size - does not fit into the ptrdiff_t type. */ -static inline ptrdiff_t getsize(int dy, int h) { - ptrdiff_t size; - - if (dy < 0) { - dy = -dy; - } - - size = (ptrdiff_t)dy * (ptrdiff_t)h * (ptrdiff_t)sizeof(gm_sample_t); - - /* check for overflow error */ - if (size < 0 || (h != 0 && dy != 0 && size / h / dy != sizeof(gm_sample_t))) { - return -1; - } - - return size; -} - -/* return the size, in bytes, of the data area of the greymap. Return - -1 if the size does not fit into the ptrdiff_t type; however, this - cannot happen if the bitmap is well-formed, i.e., if created with - gm_new or gm_dup. */ -static inline ptrdiff_t gm_size(const greymap_t *gm) { - return getsize(gm->dy, gm->h); -} - - - -/* return new greymap initialized to 0. NULL with errno on error. - Assumes w, h >= 0. */ -greymap_t *gm_new(int w, int h) { - greymap_t *gm; - int dy = w; - ptrdiff_t size; - - size = getsize(dy, h); - if (size < 0) { - errno = ENOMEM; - return NULL; - } - if (size == 0) { - size = 1; /* make surecmalloc() doesn't return NULL */ - } - - gm = (greymap_t *) malloc(sizeof(greymap_t)); - if (!gm) { - return NULL; - } - gm->w = w; - gm->h = h; - gm->dy = dy; - gm->base = (gm_sample_t *) calloc(1, size); - if (!gm->base) { - free(gm); - return NULL; - } - gm->map = gm->base; - return gm; -} - -/* free the given greymap */ -void gm_free(greymap_t *gm) { - if (gm) { - free(gm->base); - } - free(gm); -} - -/* duplicate the given greymap. Return NULL on error with errno set. */ -greymap_t *gm_dup(greymap_t *gm) { - greymap_t *gm1 = gm_new(gm->w, gm->h); - int y; - - if (!gm1) { - return NULL; - } - for (y=0; yh; y++) { - memcpy(gm_scanline(gm1, y), gm_scanline(gm, y), (size_t)gm1->dy * sizeof(gm_sample_t)); - } - return gm1; -} - -/* clear the given greymap to color b. */ -void gm_clear(greymap_t *gm, int b) { - ptrdiff_t size = gm_size(gm); - int x, y; - - if (b==0) { - memset(gm->base, 0, size); - } else { - for (y=0; yh; y++) { - for (x=0; xw; x++) { - GM_UPUT(gm, x, y, b); - } - } - } -} - -/* turn the given greymap upside down. This does not move the pixel - data or change the base address. */ -static inline void gm_flip(greymap_t *gm) { - int dy = gm->dy; - - if (gm->h == 0 || gm->h == 1) { - return; - } - - gm->map = gm_scanline(gm, gm->h - 1); - gm->dy = -dy; -} - -/* resize the greymap to the given new height. The pixel data remains - bottom-aligned (truncated at the top) when dy >= 0 and top-aligned - (truncated at the bottom) when dy < 0. Return 0 on success, or 1 on - error with errno set. If the new height is <= the old one, no error - should occur. If the new height is larger, the additional pixel - data is *not* initialized. */ -static inline int gm_resize(greymap_t *gm, int h) { - int dy = gm->dy; - ptrdiff_t newsize; - gm_sample_t *newbase; - - if (dy < 0) { - gm_flip(gm); - } - - newsize = getsize(dy, h); - if (newsize < 0) { - errno = ENOMEM; - goto error; - } - if (newsize == 0) { - newsize = 1; /* make sure realloc() doesn't return NULL */ - } - - newbase = (gm_sample_t *)realloc(gm->base, newsize); - if (newbase == NULL) { - goto error; - } - gm->base = newbase; - gm->map = newbase; - gm->h = h; - - if (dy < 0) { - gm_flip(gm); - } - return 0; - - error: - if (dy < 0) { - gm_flip(gm); - } - return 1; -} - - -/* ---------------------------------------------------------------------- */ -/* routines for reading pnm streams */ - -/* read next character after whitespace and comments. Return EOF on - end of file or error. */ -static int fgetc_ws(FILE *f) { - int c; - - while (1) { - c = fgetc(f); - if (c=='#') { - while (1) { - c = fgetc(f); - if (c=='\n' || c==EOF) { - break; - } - } - } - /* space, tab, line feed, carriage return, form-feed */ - if (c!=' ' && c!='\t' && c!='\r' && c!='\n' && c!=12) { - return c; - } - } -} - -/* skip whitespace and comments, then read a non-negative decimal - number from a stream. Return -1 on EOF. Tolerate other errors (skip - bad characters). Do not the read any characters following the - number (put next character back into the stream) */ - -static int readnum(FILE *f) { - int c; - int acc; - - /* skip whitespace and comments */ - while (1) { - c = fgetc_ws(f); - if (c==EOF) { - return -1; - } - if (c>='0' && c<='9') { - break; - } - } - - /* first digit is already in c */ - acc = c-'0'; - while (1) { - c = fgetc(f); - if (c==EOF) { - break; - } - if (c<'0' || c>'9') { - ungetc(c, f); - break; - } - acc *= 10; - acc += c-'0'; - } - return acc; -} - -/* similar to readnum, but read only a single 0 or 1, and do not read - any characters after it. */ - -static int readbit(FILE *f) { - int c; - - /* skip whitespace and comments */ - while (1) { - c = fgetc_ws(f); - if (c==EOF) { - return -1; - } - if (c>='0' && c<='1') { - break; - } - } - - return c-'0'; -} - -/* ---------------------------------------------------------------------- */ - -/* read a PNM stream: P1-P6 format (see pnm(5)), or a BMP stream, and - convert the output to a greymap. Return greymap in *gmp. Return 0 - on success, -1 on error with errno set, -2 on bad file format (with - error message in gm_read_error), and 1 on premature end of file, -3 - on empty file (including files with only whitespace and comments), - -4 if wrong magic number. If the return value is >=0, *gmp is - valid. */ - -const char *gm_read_error = NULL; - -int gm_read(FILE *f, greymap_t **gmp) { - int magic[2]; - - /* read magic number. We ignore whitespace and comments before the - magic, for the benefit of concatenated files in P1-P3 format. - Multiple P1-P3 images in a single file are not formally allowed - by the PNM standard, but there is no harm in being lenient. */ - - magic[0] = fgetc_ws(f); - if (magic[0] == EOF) { - /* files which contain only comments and whitespace count as "empty" */ - return -3; - } - magic[1] = fgetc(f); - if (magic[0] == 'P' && magic[1] >= '1' && magic[1] <= '6') { - return gm_readbody_pnm(f, gmp, magic[1]); - } - if (magic[0] == 'B' && magic[1] == 'M') { - return gm_readbody_bmp(f, gmp); - } - return -4; -} - -/* ---------------------------------------------------------------------- */ -/* read PNM format */ - -/* read PNM stream after magic number. Return values as for gm_read */ -static int gm_readbody_pnm(FILE *f, greymap_t **gmp, int magic) { - greymap_t *gm; - int x, y, i, j, b, b1, sum; - int bpr; /* bytes per row (as opposed to 4*gm->c) */ - int w, h, max; - int realheight; /* in case of incomplete file, keeps track of how - many scan lines actually contain data */ - - gm = NULL; - - w = readnum(f); - if (w<0) { - goto format_error; - } - - h = readnum(f); - if (h<0) { - goto format_error; - } - - /* allocate greymap */ - gm = gm_new(w, h); - if (!gm) { - goto std_error; - } - - realheight = 0; - - switch (magic) { - default: - /* not reached */ - goto format_error; - - case '1': - /* read P1 format: PBM ascii */ - - for (y=0; y> j) ? 0 : 255); - } - } - } - break; - - case '5': - /* read P5 format: PGM raw */ - - max = readnum(f); - if (max<1) { - goto format_error; - } - - b = fgetc(f); /* read single white-space character after max */ - if (b==EOF) { - goto format_error; - } - - for (y=0; y=256) { - b <<= 8; - b1 = fgetc(f); - if (b1==EOF) - goto eof; - b |= b1; - } - GM_UPUT(gm, x, y, b*255/max); - } - } - break; - - case '6': - /* read P6 format: PPM raw */ - - max = readnum(f); - if (max<1) { - goto format_error; - } - - b = fgetc(f); /* read single white-space character after max */ - if (b==EOF) { - goto format_error; - } - - for (y=0; y=256) { - b <<= 8; - b1 = fgetc(f); - if (b1==EOF) - goto eof; - b |= b1; - } - sum += b; - } - GM_UPUT(gm, x, y, sum*(255/3)/max); - } - } - break; - } - - gm_flip(gm); - *gmp = gm; - return 0; - - eof: - TRY_STD(gm_resize(gm, realheight)); - gm_flip(gm); - *gmp = gm; - return 1; - - format_error: - gm_free(gm); - if (magic == '1' || magic == '4') { - gm_read_error = "invalid pbm file"; - } else if (magic == '2' || magic == '5') { - gm_read_error = "invalid pgm file"; - } else { - gm_read_error = "invalid ppm file"; - } - return -2; - - std_error: - gm_free(gm); - return -1; -} - -/* ---------------------------------------------------------------------- */ -/* read BMP format */ - -struct bmp_info_s { - unsigned int FileSize; - unsigned int reserved; - unsigned int DataOffset; - unsigned int InfoSize; - unsigned int w; /* width */ - unsigned int h; /* height */ - unsigned int Planes; - unsigned int bits; /* bits per sample */ - unsigned int comp; /* compression mode */ - unsigned int ImageSize; - unsigned int XpixelsPerM; - unsigned int YpixelsPerM; - unsigned int ncolors; /* number of colors in palette */ - unsigned int ColorsImportant; - unsigned int RedMask; - unsigned int GreenMask; - unsigned int BlueMask; - unsigned int AlphaMask; - unsigned int ctbits; /* sample size for color table */ - int topdown; /* top-down mode? */ -}; -typedef struct bmp_info_s bmp_info_t; - -/* auxiliary */ - -static int bmp_count = 0; /* counter for byte padding */ -static int bmp_pos = 0; /* counter from start of BMP data */ - -/* read n-byte little-endian integer. Return 1 on EOF or error, else - 0. Assume n<=4. */ -static int bmp_readint(FILE *f, int n, unsigned int *p) { - int i; - unsigned int sum = 0; - int b; - - for (i=0; i= 108) { /* V4 and V5 bitmaps */ - TRY(bmp_readint(f, 4, &bmpinfo.RedMask)); - TRY(bmp_readint(f, 4, &bmpinfo.GreenMask)); - TRY(bmp_readint(f, 4, &bmpinfo.BlueMask)); - TRY(bmp_readint(f, 4, &bmpinfo.AlphaMask)); - } - if (bmpinfo.w > 0x7fffffff) { - goto format_error; - } - if (bmpinfo.h > 0x7fffffff) { - bmpinfo.h = (-bmpinfo.h) & 0xffffffff; - bmpinfo.topdown = 1; - } else { - bmpinfo.topdown = 0; - } - if (bmpinfo.h > 0x7fffffff) { - goto format_error; - } - } else if (bmpinfo.InfoSize == 12) { - /* old OS/2 format */ - bmpinfo.ctbits = 24; /* sample size in color table */ - TRY(bmp_readint(f, 2, &bmpinfo.w)); - TRY(bmp_readint(f, 2, &bmpinfo.h)); - TRY(bmp_readint(f, 2, &bmpinfo.Planes)); - TRY(bmp_readint(f, 2, &bmpinfo.bits)); - bmpinfo.comp = 0; - bmpinfo.ncolors = 0; - bmpinfo.topdown = 0; - } else { - goto format_error; - } - - if (bmpinfo.comp == 3 && bmpinfo.InfoSize < 108) { - /* bitfield feature is only understood with V4 and V5 format */ - goto format_error; - } - - if (bmpinfo.comp > 3 || bmpinfo.bits > 32) { - goto format_error; - } - - /* forward to color table (e.g., if bmpinfo.InfoSize == 64) */ - TRY(bmp_forward(f, 14+bmpinfo.InfoSize)); - - if (bmpinfo.Planes != 1) { - gm_read_error = "cannot handle bmp planes"; - goto format_error; /* can't handle planes */ - } - - if (bmpinfo.ncolors == 0 && bmpinfo.bits <= 8) { - bmpinfo.ncolors = 1 << bmpinfo.bits; - } - - /* color table, present only if bmpinfo.bits <= 8. */ - if (bmpinfo.bits <= 8) { - coltable = (int *) calloc(bmpinfo.ncolors, sizeof(int)); - if (!coltable) { - goto std_error; - } - /* NOTE: since we are reading a greymap, we can immediately convert - the color table entries to grey values. */ - for (i=0; i>16) & 0xff) + ((c>>8) & 0xff) + (c & 0xff); - coltable[i] = c/3; - } - } - - /* forward to data */ - if (bmpinfo.InfoSize != 12) { /* not old OS/2 format */ - TRY(bmp_forward(f, bmpinfo.DataOffset)); - } - - /* allocate greymap */ - gm = gm_new(bmpinfo.w, bmpinfo.h); - if (!gm) { - goto std_error; - } - - realheight = 0; - - switch (bmpinfo.bits + 0x100*bmpinfo.comp) { - - default: - goto format_error; - break; - - case 0x001: /* monochrome palette */ - - /* raster data */ - for (y=0; y> j) ? COLTABLE(1) : COLTABLE(0)); - } - } - TRY(bmp_pad(f)); - } - break; - - case 0x002: /* 2-bit to 8-bit palettes */ - case 0x003: - case 0x004: - case 0x005: - case 0x006: - case 0x007: - case 0x008: - for (y=0; y> (INTBITS - bmpinfo.bits); - bitbuf <<= bmpinfo.bits; - n -= bmpinfo.bits; - GM_UPUT(gm, x, y, COLTABLE(b)); - } - TRY(bmp_pad(f)); - } - break; - - case 0x010: /* 16-bit encoding */ - /* can't do this format because it is not well-documented and I - don't have any samples */ - gm_read_error = "cannot handle bmp 16-bit coding"; - goto format_error; - break; - - case 0x018: /* 24-bit encoding */ - case 0x020: /* 32-bit encoding */ - for (y=0; y>16) & 0xff) + ((c>>8) & 0xff) + (c & 0xff); - GM_UPUT(gm, x, y, c/3); - } - TRY(bmp_pad(f)); - } - break; - - case 0x320: /* 32-bit encoding with bitfields */ - redshift = lobit(bmpinfo.RedMask); - greenshift = lobit(bmpinfo.GreenMask); - blueshift = lobit(bmpinfo.BlueMask); - - for (y=0; y> redshift) + ((c & bmpinfo.GreenMask) >> greenshift) + ((c & bmpinfo.BlueMask) >> blueshift); - GM_UPUT(gm, x, y, c/3); - } - TRY(bmp_pad(f)); - } - break; - - case 0x204: /* 4-bit runlength compressed encoding (RLE4) */ - x = 0; - y = 0; - while (1) { - TRY_EOF(bmp_readint(f, 1, &b)); /* opcode */ - TRY_EOF(bmp_readint(f, 1, &c)); /* argument */ - if (b>0) { - /* repeat count */ - col[0] = COLTABLE((c>>4) & 0xf); - col[1] = COLTABLE(c & 0xf); - for (i=0; i=bmpinfo.w) { - x=0; - y++; - } - if (x>=bmpinfo.w || y>=bmpinfo.h) { - break; - } - realheight = y+1; - GM_PUT(gm, x, y, col[i&1]); - x++; - } - } else if (c == 0) { - /* end of line */ - y++; - x = 0; - } else if (c == 1) { - /* end of greymap */ - break; - } else if (c == 2) { - /* "delta": skip pixels in x and y directions */ - TRY_EOF(bmp_readint(f, 1, &b)); /* x offset */ - TRY_EOF(bmp_readint(f, 1, &c)); /* y offset */ - x += b; - y += c; - } else { - /* verbatim segment */ - for (i=0; i=bmpinfo.w) { - x=0; - y++; - } - if (x>=bmpinfo.w || y>=bmpinfo.h) { - break; - } - realheight = y+1; - GM_PUT(gm, x, y, COLTABLE((b>>(4-4*(i&1))) & 0xf)); - x++; - } - if ((c+1) & 2) { - /* pad to 16-bit boundary */ - TRY_EOF(bmp_readint(f, 1, &b)); - } - } - } - break; - - case 0x108: /* 8-bit runlength compressed encoding (RLE8) */ - x = 0; - y = 0; - while (1) { - TRY_EOF(bmp_readint(f, 1, &b)); /* opcode */ - TRY_EOF(bmp_readint(f, 1, &c)); /* argument */ - if (b>0) { - /* repeat count */ - for (i=0; i=bmpinfo.w) { - x=0; - y++; - } - if (x>=bmpinfo.w || y>=bmpinfo.h) { - break; - } - realheight = y+1; - GM_PUT(gm, x, y, COLTABLE(c)); - x++; - } - } else if (c == 0) { - /* end of line */ - y++; - x = 0; - } else if (c == 1) { - /* end of greymap */ - break; - } else if (c == 2) { - /* "delta": skip pixels in x and y directions */ - TRY_EOF(bmp_readint(f, 1, &b)); /* x offset */ - TRY_EOF(bmp_readint(f, 1, &c)); /* y offset */ - x += b; - y += c; - } else { - /* verbatim segment */ - for (i=0; i=bmpinfo.w) { - x=0; - y++; - } - if (x>=bmpinfo.w || y>=bmpinfo.h) { - break; - } - realheight = y+1; - GM_PUT(gm, x, y, COLTABLE(b)); - x++; - } - if (c & 1) { - /* pad input to 16-bit boundary */ - TRY_EOF(bmp_readint(f, 1, &b)); - } - } - } - break; - - } /* switch */ - - /* skip any potential junk after the data section, but don't - complain in case EOF is encountered */ - bmp_forward(f, bmpinfo.FileSize); - - free(coltable); - if (bmpinfo.topdown) { - gm_flip(gm); - } - *gmp = gm; - return 0; - - eof: - TRY_STD(gm_resize(gm, realheight)); - free(coltable); - if (bmpinfo.topdown) { - gm_flip(gm); - } - *gmp = gm; - return 1; - - format_error: - try_error: - free(coltable); - gm_free(gm); - if (!gm_read_error) { - gm_read_error = "invalid bmp file"; - } - return -2; - - std_error: - free(coltable); - gm_free(gm); - return -1; -} - -/* ---------------------------------------------------------------------- */ - -/* write a pgm stream, either P2 or (if raw != 0) P5 format. Include - one-line comment if non-NULL. Mode determines how out-of-range - color values are converted. Gamma is the desired gamma correction, - if any (set to 2.2 if the image is to look optimal on a CRT monitor, - 2.8 for LCD). Set to 1.0 for no gamma correction */ - -int gm_writepgm(FILE *f, greymap_t *gm, const char *comment, int raw, int mode, double gamma) { - int x, y, v; - int gammatable[256]; - - /* prepare gamma correction lookup table */ - if (gamma != 1.0) { - gammatable[0] = 0; - for (v=1; v<256; v++) { - gammatable[v] = (int)(255 * exp(log(v/255.0)/gamma) + 0.5); - } - } else { - for (v=0; v<256; v++) { - gammatable[v] = v; - } - } - - fprintf(f, raw ? "P5\n" : "P2\n"); - if (comment && *comment) { - fprintf(f, "# %s\n", comment); - } - fprintf(f, "%d %d 255\n", gm->w, gm->h); - for (y=gm->h-1; y>=0; y--) { - for (x=0; xw; x++) { - v = GM_UGET(gm, x, y); - if (mode == GM_MODE_NONZERO) { - if (v > 255) { - v = 510 - v; - } - if (v < 0) { - v = 0; - } - } else if (mode == GM_MODE_ODD) { - v = mod(v, 510); - if (v > 255) { - v = 510 - v; - } - } else if (mode == GM_MODE_POSITIVE) { - if (v < 0) { - v = 0; - } else if (v > 255) { - v = 255; - } - } else if (mode == GM_MODE_NEGATIVE) { - v = 510 - v; - if (v < 0) { - v = 0; - } else if (v > 255) { - v = 255; - } - } - v = gammatable[v]; - - if (raw) { - fputc(v, f); - } else { - fprintf(f, x == gm->w-1 ? "%d\n" : "%d ", v); - } - } - } - return 0; -} - -/* ---------------------------------------------------------------------- */ -/* output - for primitive debugging purposes only! */ - -/* print greymap to screen */ -int gm_print(FILE *f, greymap_t *gm) { - int x, y; - int xx, yy; - int d, t; - int sw, sh; - - sw = gm->w < 79 ? gm->w : 79; - sh = gm->w < 79 ? gm->h : gm->h*sw*44/(79*gm->w); - - for (yy=sh-1; yy>=0; yy--) { - for (xx=0; xxw/sw; x<(xx+1)*gm->w/sw; x++) { - for (y=yy*gm->h/sh; y<(yy+1)*gm->h/sh; y++) { - d += GM_GET(gm, x, y); - t += 256; - } - } - fputc("*#=- "[5*d/t], f); /* what a cute trick :) */ - } - fputc('\n', f); - } - return 0; -} diff --git a/Build/source/libs/potrace/potrace-src/src/greymap.h b/Build/source/libs/potrace/potrace-src/src/greymap.h deleted file mode 100644 index a1cea516338..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/greymap.h +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -#ifndef GREYMAP_H -#define GREYMAP_H - -#include -#include -#include - -/* type for greymap samples */ -typedef signed short int gm_sample_t; - -/* internal format for greymaps. Note: in this format, rows are - ordered from bottom to top. The pixels in each row are given from - left to right. */ -struct greymap_s { - int w; /* width, in pixels */ - int h; /* height, in pixels */ - int dy; /* offset between scanlines (in samples); - can be negative */ - gm_sample_t *base; /* root of allocated data */ - gm_sample_t *map; /* points to the lower left pixel */ -}; -typedef struct greymap_s greymap_t; - -/* macros for accessing pixel at index (x,y). Note that the origin is - in the *lower* left corner. U* macros omit the bounds check. */ - -#define gm_scanline(gm, y) ((gm)->map + (ptrdiff_t)(y)*(ptrdiff_t)(gm)->dy) -#define gm_index(gm, x, y) (gm_scanline(gm, y) + (x)) -#define gm_safe(gm, x, y) ((int)(x)>=0 && (int)(x)<(gm)->w && (int)(y)>=0 && (int)(y)<(gm)->h) -#define gm_bound(x, m) ((x)<0 ? 0 : (x)>=(m) ? (m)-1 : (x)) -#define GM_UGET(gm, x, y) (*gm_index(gm, x, y)) -#define GM_UINC(gm, x, y, b) (*gm_index(gm, x, y) += (gm_sample_t)(b)) -#define GM_UINV(gm, x, y) (*gm_index(gm, x, y) = 255 - *gm_index(gm, x, y)) -#define GM_UPUT(gm, x, y, b) (*gm_index(gm, x, y) = (gm_sample_t)(b)) -#define GM_GET(gm, x, y) (gm_safe(gm, x, y) ? GM_UGET(gm, x, y) : 0) -#define GM_INC(gm, x, y, b) (gm_safe(gm, x, y) ? GM_UINC(gm, x, y, b) : 0) -#define GM_INV(gm, x, y) (gm_safe(gm, x, y) ? GM_UINV(gm, x, y) : 0) -#define GM_PUT(gm, x, y, b) (gm_safe(gm, x, y) ? GM_UPUT(gm, x, y, b) : 0) -#define GM_BGET(gm, x, y) ((gm)->w == 0 || (gm)->h == 0 ? 0 : GM_UGET(gm, gm_bound(x, (gm)->w), gm_bound(y, (gm)->h))) - -/* modes for cutting off out-of-range values. The following names - refer to winding numbers. I.e., make a pixel black if winding - number is nonzero, odd, or positive, respectively. We assume that 0 - winding number corresponds to white (255). */ -#define GM_MODE_NONZERO 1 -#define GM_MODE_ODD 2 -#define GM_MODE_POSITIVE 3 -#define GM_MODE_NEGATIVE 4 - -extern const char *gm_read_error; - -greymap_t *gm_new(int w, int h); -greymap_t *gm_dup(greymap_t *gm); -void gm_free(greymap_t *gm); -void gm_clear(greymap_t *gm, int b); -int gm_read(FILE *f, greymap_t **gmp); -int gm_writepgm(FILE *f, greymap_t *gm, const char *comment, int raw, int mode, double gamma); -int gm_print(FILE *f, greymap_t *gm); - -#endif /* GREYMAP_H */ diff --git a/Build/source/libs/potrace/potrace-src/src/include/getopt/getopt.h b/Build/source/libs/potrace/potrace-src/src/include/getopt/getopt.h deleted file mode 100644 index 20daef6168b..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/include/getopt/getopt.h +++ /dev/null @@ -1,180 +0,0 @@ -/* Declarations for getopt. - Copyright (C) 1989,90,91,92,93,94,96,97,98,99 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ - -#ifndef _GETOPT_H - -#ifndef __need_getopt -# define _GETOPT_H 1 -#endif - -/* If __GNU_LIBRARY__ is not already defined, either we are being used - standalone, or this is the first header included in the source file. - If we are being used with glibc, we need to include , but - that does not exist if we are standalone. So: if __GNU_LIBRARY__ is - not defined, include , which will pull in for us - if it's from glibc. (Why ctype.h? It's guaranteed to exist and it - doesn't flood the namespace with stuff the way some other headers do.) */ -#if !defined __GNU_LIBRARY__ -# include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. */ - -extern char *optarg; - -/* Index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - - On entry to `getopt', zero means this is the first call; initialize. - - When `getopt' returns -1, this is the index of the first of the - non-option elements that the caller should itself scan. - - Otherwise, `optind' communicates from one call to the next - how much of ARGV has been scanned so far. */ - -extern int optind; - -/* Callers store zero here to inhibit the error message `getopt' prints - for unrecognized options. */ - -extern int opterr; - -/* Set to an option character which was unrecognized. */ - -extern int optopt; - -#ifndef __need_getopt -/* Describe the long-named options requested by the application. - The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector - of `struct option' terminated by an element containing a name which is - zero. - - The field `has_arg' is: - no_argument (or 0) if the option does not take an argument, - required_argument (or 1) if the option requires an argument, - optional_argument (or 2) if the option takes an optional argument. - - If the field `flag' is not NULL, it points to a variable that is set - to the value given in the field `val' when the option is found, but - left unchanged if the option is not found. - - To have a long-named option do something other than set an `int' to - a compiled-in constant, such as set a value from `optarg', set the - option's `flag' field to zero and its `val' field to a nonzero - value (the equivalent single-letter option character, if there is - one). For long options that have a zero `flag' field, `getopt' - returns the contents of the `val' field. */ - -struct option -{ -# if defined __STDC__ && __STDC__ - const char *name; -# else - char *name; -# endif - /* has_arg can't be an enum because some compilers complain about - type mismatches in all the code that assumes it is an int. */ - int has_arg; - int *flag; - int val; -}; - -/* Names for the values of the `has_arg' field of `struct option'. */ - -# define no_argument 0 -# define required_argument 1 -# define optional_argument 2 -#endif /* need getopt */ - - -/* Get definitions and prototypes for functions to process the - arguments in ARGV (ARGC of them, minus the program name) for - options given in OPTS. - - Return the option character from OPTS just read. Return -1 when - there are no more options. For unrecognized options, or options - missing arguments, `optopt' is set to the option letter, and '?' is - returned. - - The OPTS string is a list of characters which are recognized option - letters, optionally followed by colons, specifying that that letter - takes an argument, to be placed in `optarg'. - - If a letter in OPTS is followed by two colons, its argument is - optional. This behavior is specific to the GNU `getopt'. - - The argument `--' causes premature termination of argument - scanning, explicitly telling `getopt' that there are no more - options. - - If OPTS begins with `--', then non-option arguments are treated as - arguments to the option '\0'. This behavior is specific to the GNU - `getopt'. */ - -#if defined __STDC__ && __STDC__ -# ifdef __GNU_LIBRARY__ -/* Many other libraries have conflicting prototypes for getopt, with - differences in the consts, in stdlib.h. To avoid compilation - errors, only prototype getopt for the GNU C library. */ -extern int getopt (int argc, char *const *argv, const char *shortopts); -# else /* not __GNU_LIBRARY__ */ -extern int getopt (); -# endif /* __GNU_LIBRARY__ */ - -# ifndef __need_getopt -extern int getopt_long (int argc, char *const *argv, const char *shortopts, - const struct option *longopts, int *longind); -extern int getopt_long_only (int argc, char *const *argv, - const char *shortopts, - const struct option *longopts, int *longind); - -/* Internal only. Users should not call this directly. */ -extern int _getopt_internal (int argc, char *const *argv, - const char *shortopts, - const struct option *longopts, int *longind, - int long_only); -# endif -#else /* not __STDC__ */ -extern int getopt (); -# ifndef __need_getopt -extern int getopt_long (); -extern int getopt_long_only (); - -extern int _getopt_internal (); -# endif -#endif /* __STDC__ */ - -#ifdef __cplusplus -} -#endif - -/* Make sure we later can get all the definitions and declarations. */ -#undef __need_getopt - -#endif /* getopt.h */ diff --git a/Build/source/libs/potrace/potrace-src/src/libpotrace-export.sym b/Build/source/libs/potrace/potrace-src/src/libpotrace-export.sym deleted file mode 100644 index 74d55c87482..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/libpotrace-export.sym +++ /dev/null @@ -1,5 +0,0 @@ -potrace_state_free -potrace_param_default -potrace_trace -potrace_param_free -potrace_version diff --git a/Build/source/libs/potrace/potrace-src/src/lists.h b/Build/source/libs/potrace/potrace-src/src/lists.h deleted file mode 100644 index f76bdcde14b..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/lists.h +++ /dev/null @@ -1,285 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -#ifndef _PS_LISTS_H -#define _PS_LISTS_H - -/* here we define some general list macros. Because they are macros, - they should work on any datatype with a "->next" component. Some of - them use a "hook". If elt and list are of type t* then hook is of - type t**. A hook stands for an insertion point in the list, i.e., - either before the first element, or between two elements, or after - the last element. If an operation "sets the hook" for an element, - then the hook is set to just before the element. One can insert - something at a hook. One can also unlink at a hook: this means, - unlink the element just after the hook. By "to unlink", we mean the - element is removed from the list, but not deleted. Thus, it and its - components still need to be freed. */ - -/* Note: these macros are somewhat experimental. Only the ones that - are actually *used* have been tested. So be careful to test any - that you use. Looking at the output of the preprocessor, "gcc -E" - (possibly piped though "indent"), might help too. Also: these - macros define some internal (local) variables that start with - "_". */ - -/* we enclose macro definitions whose body consists of more than one - statement in MACRO_BEGIN and MACRO_END, rather than '{' and '}'. The - reason is that we want to be able to use the macro in a context - such as "if (...) macro(...); else ...". If we didn't use this obscure - trick, we'd have to omit the ";" in such cases. */ - -#define MACRO_BEGIN do { -#define MACRO_END } while (0) - -/* ---------------------------------------------------------------------- */ -/* macros for singly-linked lists */ - -/* traverse list. At the end, elt is set to NULL. */ -#define list_forall(elt, list) for (elt=list; elt!=NULL; elt=elt->next) - -/* set elt to the first element of list satisfying boolean condition - c, or NULL if not found */ -#define list_find(elt, list, c) \ - MACRO_BEGIN list_forall(elt, list) if (c) break; MACRO_END - -/* like forall, except also set hook for elt. */ -#define list_forall2(elt, list, hook) \ - for (elt=list, hook=&list; elt!=NULL; hook=&elt->next, elt=elt->next) - -/* same as list_find, except also set hook for elt. */ -#define list_find2(elt, list, c, hook) \ - MACRO_BEGIN list_forall2(elt, list, hook) if (c) break; MACRO_END - -/* same, except only use hook. */ -#define _list_forall_hook(list, hook) \ - for (hook=&list; *hook!=NULL; hook=&(*hook)->next) - -/* same, except only use hook. Note: c may only refer to *hook, not elt. */ -#define _list_find_hook(list, c, hook) \ - MACRO_BEGIN _list_forall_hook(list, hook) if (c) break; MACRO_END - -/* insert element after hook */ -#define list_insert_athook(elt, hook) \ - MACRO_BEGIN elt->next = *hook; *hook = elt; MACRO_END - -/* insert element before hook */ -#define list_insert_beforehook(elt, hook) \ - MACRO_BEGIN elt->next = *hook; *hook = elt; hook=&elt->next; MACRO_END - -/* unlink element after hook, let elt be unlinked element, or NULL. - hook remains. */ -#define list_unlink_athook(list, elt, hook) \ - MACRO_BEGIN \ - elt = hook ? *hook : NULL; if (elt) { *hook = elt->next; elt->next = NULL; }\ - MACRO_END - -/* unlink the specific element, if it is in the list. Otherwise, set - elt to NULL */ -#define list_unlink(listtype, list, elt) \ - MACRO_BEGIN \ - listtype **_hook; \ - _list_find_hook(list, *_hook==elt, _hook); \ - list_unlink_athook(list, elt, _hook); \ - MACRO_END - -/* prepend elt to list */ -#define list_prepend(list, elt) \ - MACRO_BEGIN elt->next = list; list = elt; MACRO_END - -/* append elt to list. */ -#define list_append(listtype, list, elt) \ - MACRO_BEGIN \ - listtype **_hook; \ - _list_forall_hook(list, _hook) {} \ - list_insert_athook(elt, _hook); \ - MACRO_END - -/* unlink the first element that satisfies the condition. */ -#define list_unlink_cond(listtype, list, elt, c) \ - MACRO_BEGIN \ - listtype **_hook; \ - list_find2(elt, list, c, _hook); \ - list_unlink_athook(list, elt, _hook); \ - MACRO_END - -/* let elt be the nth element of the list, starting to count from 0. - Return NULL if out of bounds. */ -#define list_nth(elt, list, n) \ - MACRO_BEGIN \ - int _x; /* only evaluate n once */ \ - for (_x=(n), elt=list; _x && elt; _x--, elt=elt->next) {} \ - MACRO_END - -/* let elt be the nth element of the list, starting to count from 0. - Return NULL if out of bounds. */ -#define list_nth_hook(elt, list, n, hook) \ - MACRO_BEGIN \ - int _x; /* only evaluate n once */ \ - for (_x=(n), elt=list, hook=&list; _x && elt; _x--, hook=&elt->next, elt=elt->next) {} \ - MACRO_END - -/* set n to the length of the list */ -#define list_length(listtype, list, n) \ - MACRO_BEGIN \ - listtype *_elt; \ - n=0; \ - list_forall(_elt, list) \ - n++; \ - MACRO_END - -/* set n to the index of the first element satisfying cond, or -1 if - none found. Also set elt to the element, or NULL if none found. */ -#define list_index(list, n, elt, c) \ - MACRO_BEGIN \ - n=0; \ - list_forall(elt, list) { \ - if (c) break; \ - n++; \ - } \ - if (!elt) \ - n=-1; \ - MACRO_END - -/* set n to the number of elements in the list that satisfy condition c */ -#define list_count(list, n, elt, c) \ - MACRO_BEGIN \ - n=0; \ - list_forall(elt, list) { \ - if (c) n++; \ - } \ - MACRO_END - -/* let elt be each element of the list, unlinked. At the end, set list=NULL. */ -#define list_forall_unlink(elt, list) \ - for (elt=list; elt ? (list=elt->next, elt->next=NULL), 1 : 0; elt=list) - -/* reverse a list (efficient) */ -#define list_reverse(listtype, list) \ - MACRO_BEGIN \ - listtype *_list1=NULL, *elt; \ - list_forall_unlink(elt, list) \ - list_prepend(_list1, elt); \ - list = _list1; \ - MACRO_END - -/* insert the element ELT just before the first element TMP of the - list for which COND holds. Here COND must be a condition of ELT and - TMP. Typical usage is to insert an element into an ordered list: - for instance, list_insert_ordered(listtype, list, elt, tmp, - elt->size <= tmp->size). Note: if we give a "less than or equal" - condition, the new element will be inserted just before a sequence - of equal elements. If we give a "less than" condition, the new - element will be inserted just after a list of equal elements. - Note: it is much more efficient to construct a list with - list_prepend and then order it with list_merge_sort, than to - construct it with list_insert_ordered. */ -#define list_insert_ordered(listtype, list, elt, tmp, cond) \ - MACRO_BEGIN \ - listtype **_hook; \ - _list_find_hook(list, (tmp=*_hook, (cond)), _hook); \ - list_insert_athook(elt, _hook); \ - MACRO_END - -/* sort the given list, according to the comparison condition. - Typical usage is list_sort(listtype, list, a, b, a->size < - b->size). Note: if we give "less than or equal" condition, each - segment of equal elements will be reversed in order. If we give a - "less than" condition, each segment of equal elements will retain - the original order. The latter is slower but sometimes - prettier. Average running time: n*n/2. */ -#define list_sort(listtype, list, a, b, cond) \ - MACRO_BEGIN \ - listtype *_newlist=NULL; \ - list_forall_unlink(a, list) \ - list_insert_ordered(listtype, _newlist, a, b, cond); \ - list = _newlist; \ - MACRO_END - -/* a much faster sort algorithm (merge sort, n log n worst case). It - is required that the list type has an additional, unused next1 - component. Note there is no curious reversal of order of equal - elements as for list_sort. */ - -#define list_mergesort(listtype, list, a, b, cond) \ - MACRO_BEGIN \ - listtype *_elt, **_hook1; \ - \ - for (_elt=list; _elt; _elt=_elt->next1) { \ - _elt->next1 = _elt->next; \ - _elt->next = NULL; \ - } \ - do { \ - _hook1 = &(list); \ - while ((a = *_hook1) != NULL && (b = a->next1) != NULL ) { \ - _elt = b->next1; \ - _list_merge_cond(listtype, a, b, cond, *_hook1); \ - _hook1 = &((*_hook1)->next1); \ - *_hook1 = _elt; \ - } \ - } while (_hook1 != &(list)); \ - MACRO_END - -/* merge two sorted lists. Store result at &result */ -#define _list_merge_cond(listtype, a, b, cond, result) \ - MACRO_BEGIN \ - listtype **_hook; \ - _hook = &(result); \ - while (1) { \ - if (a==NULL) { \ - *_hook = b; \ - break; \ - } else if (b==NULL) { \ - *_hook = a; \ - break; \ - } else if (cond) { \ - *_hook = a; \ - _hook = &(a->next); \ - a = a->next; \ - } else { \ - *_hook = b; \ - _hook = &(b->next); \ - b = b->next; \ - } \ - } \ - MACRO_END - -/* ---------------------------------------------------------------------- */ -/* macros for doubly-linked lists */ - -#define dlist_append(head, end, elt) \ - MACRO_BEGIN \ - elt->prev = end; \ - elt->next = NULL; \ - if (end) { \ - end->next = elt; \ - } else { \ - head = elt; \ - } \ - end = elt; \ - MACRO_END - -/* let elt be each element of the list, unlinked. At the end, set list=NULL. */ -#define dlist_forall_unlink(elt, head, end) \ - for (elt=head; elt ? (head=elt->next, elt->next=NULL, elt->prev=NULL), 1 : (end=NULL, 0); elt=head) - -/* unlink the first element of the list */ -#define dlist_unlink_first(head, end, elt) \ - MACRO_BEGIN \ - elt = head; \ - if (head) { \ - head = head->next; \ - if (head) { \ - head->prev = NULL; \ - } else { \ - end = NULL; \ - } \ - elt->prev = NULL; \ - elt->next = NULL; \ - } \ - MACRO_END - -#endif /* _PS_LISTS_H */ - diff --git a/Build/source/libs/potrace/potrace-src/src/lzw.c b/Build/source/libs/potrace/potrace-src/src/lzw.c deleted file mode 100644 index dc9d6f761d1..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/lzw.c +++ /dev/null @@ -1,415 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -/* code for adaptive LZW compression, as used in PostScript. */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include - -#include "lists.h" -#include "bitops.h" -#include "lzw.h" - -/* ---------------------------------------------------------------------- */ -/* compression state specification */ - -/* The compression algorithm follows the following specification, - expressed as a state machine. A state is a triple {s,d,n}, where s - is a string of input symbols, d is a dictionary, which is a - function from strings to output symbols, and n is the dictionary - size, or equivalently, the next unused output symbol. There are - also special states init and stop. emit[b, code] is a function - which emits the code 'code' as a b-bit value into the output - bitstream. hibit(n) returns the least number of binary digits - required to represent n. - - init ---> {[], newdict, 258} - - where [] is the empty string, and newdict maps each of the 256 - singleton strings to itself. (Note that there are two special - output symbols 256 and 257, so that the next available one is - 258). Note: hibit(258)=9. - - {[], d, n} (input c) ---> (emit[hibit(n), 256]) {c, d, n} - - {s,d,n} (input c) ---> {s*c,d,n} - - if s!=[], s*c is in the domain of d. Here s*c is the strings s - extended by the character c. - - {s,d,n} (input c) ---> (emit[hibit(n), d(s)]) {c,d',n+1} - - if s!=[], s*c is not in the domain of d, and hibit(n+2) <= 12. - Here d'=d+{s*c->n}. - - {s,d,n} (input c) ---> - (emit[hibit(n), d(s)]) (emit[hibit(n+1), 256]) {c, newdict, 258} - - if s!=[], s*c is not in the domain of d, and hibit(n+2) > 12. - - {s,d,n} (input EOD) ---> (emit[hibit(n), d(s)]) (emit[hibit(n+1), 257]) stop - - where s != []. Here, EOD stands for end-of-data. - - {[],d,n} (input EOD) ---> (emit[hibit(n), 256]) (emit[hibit(n), 257]) stop - - Notes: - - * Each reachable state {s,d,n} satisfies hibit(n+1) <= 12. - * Only codes of 12 or fewer bits are emitted. - * Each reachable state {s,d,n} satisfies s=[] or s is in the domain of d. - * The domain of d is always prefix closed (except for the empty prefix) - * The state machine is deterministic and non-blocking. - -*/ - - -/* ---------------------------------------------------------------------- */ -/* private state */ - -#define BITBUF_TYPE unsigned int - -/* the dictionary is implemented as a tree of strings under the prefix - order. The tree is in turns represented as a linked list of - lzw_dict_t structures, with "children" pointing to a node's first - child, and "next" pointing to a node's next sibling. As an - optimization, the top-level nodes (singleton strings) are - implemented lazily, i.e., the corresponding entry is not actually - created until it is accessed. */ - -struct lzw_dict_s { - char c; /* last character of string represented by this entry */ - unsigned int code; /* code for the string represented by this entry */ - int freq; /* how often searched? For optimization only */ - struct lzw_dict_s *children; /* list of sub-entries */ - struct lzw_dict_s *next; /* for making a linked list */ -}; -typedef struct lzw_dict_s lzw_dict_t; - -/* A state {s,d,n} is represented by the "dictionary state" part of - the lzw_state_t structure. Here, s is a pointer directly to the node - of the dictionary structure corresponding to the string s, or NULL - if s=[]. Further, the lzw_state_t structure contains a buffer of - pending output bits, and a flag indicating whether the EOD (end of - data) has been reached in the input. */ - -struct lzw_state_s { - /* dictionary state */ - int n; /* current size of the dictionary */ - lzw_dict_t *d; /* pointer to dictionary */ - lzw_dict_t *s; /* pointer to current string, or NULL at beginning */ - - /* buffers for pending output */ - BITBUF_TYPE buf; /* bits scheduled for output - left aligned, 0 padded */ - int bufsize; /* number of bits scheduled for output. */ - int eod; /* flush buffer? */ -}; -typedef struct lzw_state_s lzw_state_t; - -/* ---------------------------------------------------------------------- */ -/* auxiliary functions which operate on dictionary states */ - -/* recursively free an lzw_dict_t object */ -static void lzw_free_dict(lzw_dict_t *s) { - lzw_dict_t *e; - - list_forall_unlink(e, s) { - lzw_free_dict(e->children); - free(e); - } -} - -/* re-initialize the lzw state's dictionary state to "newdict", - freeing any old dictionary. */ -static void lzw_clear_table(lzw_state_t *st) { - - lzw_free_dict(st->d); - st->d = NULL; - st->n = 258; - st->s = NULL; -} - -/* ---------------------------------------------------------------------- */ -/* auxiliary functions for reading/writing the bit buffer */ - -/* write the code to the bit buffer. Precondition st->bufsize <= 7. - Note: this does not change the dictionary state; in particular, - n must be updated between consecutive calls. */ -static inline void lzw_emit(unsigned int code, lzw_state_t *st) { - BITBUF_TYPE mask; - int bits = hibit(st->n); - - /* fill bit buffer */ - mask = (1 << bits) - 1; - code &= mask; - - st->buf |= code << (8*sizeof(BITBUF_TYPE) - st->bufsize - bits); - st->bufsize += bits; -} - -/* transfer one byte from bit buffer to output. Precondition: - s->avail_out > 0. */ -static inline void lzw_read_bitbuf(lzw_stream_t *s) { - int ch; - lzw_state_t *st = (lzw_state_t *)s->internal; - - ch = st->buf >> (8*sizeof(BITBUF_TYPE)-8); - st->buf <<= 8; - st->bufsize -= 8; - - s->next_out[0] = ch; - s->next_out++; - s->avail_out--; -} - -/* ---------------------------------------------------------------------- */ -/* The following functions implement the state machine. */ - -/* perform state transition of the state st on input character - ch. This updates the dictionary state and/or writes to the bit - buffer. Precondition: st->bufsize <= 7. Return 0 on success, or 1 - on error with errno set. */ -static int lzw_encode_char(lzw_state_t *st, char c) { - lzw_dict_t *e; - - /* st = {s,d,n}. hibit(n+1)<=12. */ - - /* {[], d, n} (input c) ---> (emit[hibit(n), 256]) {c, d, n} */ - if (st->s == NULL) { - lzw_emit(256, st); - goto singleton; /* enter singleton state c */ - } - - /* {s,d,n} (input c) ---> {s*c,d,n} */ - list_find(e, st->s->children, e->c == c); - if (e) { - e->freq++; - st->s = e; - return 0; - } - - /* {s,d,n} (input c) ---> (emit[hibit(n), d(s)]) {c,d',n+1} */ - /* {s,d,n} (input c) ---> - (emit[hibit(n), d(s)]) (emit[hibit(n+1), 256]) {c, newdict, 258} */ - - lzw_emit(st->s->code, st); /* 9-12 bits */ - if (st->n >= 4094) { /* hibit(n+2) > 12 */ - st->n++; - lzw_emit(256, st); - goto dictfull; /* reset dictionary and enter singleton state c */ - } - - /* insert new code in dictionary, if possible */ - e = (lzw_dict_t *)malloc(sizeof(lzw_dict_t)); - if (!e) { - return 1; - } - e->c = c; - e->code = st->n; - e->freq = 1; - e->children = NULL; - list_prepend(st->s->children, e); - st->n++; - goto singleton; /* enter singleton state c */ - - dictfull: /* reset dictionary and enter singleton state c */ - lzw_clear_table(st); - /* fall through */ - - singleton: /* enter singleton state c */ - list_find(e, st->d, e->c == c); - if (!e) { /* not found: lazily add it */ - e = (lzw_dict_t *)malloc(sizeof(lzw_dict_t)); - if (!e) { - return 1; - } - e->c = c; - e->code = (unsigned char)c; - e->freq = 0; - e->children = NULL; - list_prepend(st->d, e); - } - e->freq++; - st->s = e; - return 0; -} - -/* perform state transition of the state st on input EOD. The leaves - the dictionary state undefined and writes to the bit buffer. - Precondition: st->bufsize <= 7. This function must be called - exactly once, at the end of the stream. */ -static void lzw_encode_eod(lzw_state_t *st) { - - /* {[],d,n} (input EOD) ---> - (emit[hibit(n), 256]) (emit[hibit(n), 257]) stop */ - if (st->s == NULL) { - lzw_emit(256, st); /* 9 bits */ - st->n=258; - lzw_emit(257, st); /* 9 bits */ - return; - } - - /* {s,d,n} (input EOD) ---> - (emit[hibit(n), code]) (emit[hibit(n+1), 257]) stop */ - - lzw_emit(st->s->code, st); /* 9-12 bits */ - st->n++; - lzw_emit(257, st); /* 9-12 bits */ - return; -} - -/* ---------------------------------------------------------------------- */ -/* User visible functions. These implement a buffer interface. See - lzw.h for the API description. */ - -lzw_stream_t *lzw_init(void) { - lzw_stream_t *s = NULL; - lzw_state_t *st = NULL; - - s = (lzw_stream_t *)malloc(sizeof(lzw_stream_t)); - if (s==NULL) { - goto fail; - } - st = (lzw_state_t *)malloc(sizeof(lzw_state_t)); - if (st==NULL) { - goto fail; - } - st->buf = 0; - st->bufsize = 0; - st->eod = 0; - st->d = NULL; - lzw_clear_table(st); - s->internal = (void *) st; - return s; - - fail: - free(s); - free(st); - return NULL; -} - -int lzw_compress(lzw_stream_t *s, int mode) { - int r; - lzw_state_t *st = (lzw_state_t *)s->internal; - - while (st->eod == 0) { - /* empty bit buffer */ - while (st->bufsize > 7) { - if (s->avail_out == 0) { - return 0; - } else { - lzw_read_bitbuf(s); - } - } - /* fill bit buffer */ - if (s->avail_in == 0) { - break; - } else { - r = lzw_encode_char(st, s->next_in[0]); - if (r) { - if (r==2) { - errno = EINVAL; - } - return 1; - } - s->next_in++; - s->avail_in--; - } - } - - if (mode==LZW_EOD && st->eod == 0) { - st->eod = 1; - lzw_encode_eod(st); - } - - /* flush bit buffer */ - if (st->eod) { - while (st->bufsize > 0) { - if (s->avail_out == 0) { - return 0; - } else { - lzw_read_bitbuf(s); - } - } - } - - return 0; -} - -void lzw_free(lzw_stream_t *s) { - lzw_state_t *st = (lzw_state_t *)s->internal; - - lzw_free_dict(st->d); - free(st); - free(s); -} - -/* ---------------------------------------------------------------------- */ -/* main function for testing and illustration purposes */ - -#ifdef LZW_MAIN - -int main() { - lzw_stream_t *s; - int ch; - char inbuf[100]; - char outbuf[100]; - int i, r; - int mode; - - s = lzw_init(); - if (!s) { - goto error; - } - mode = LZW_NORMAL; - - while (1) { - /* fill inbuf */ - for (i=0; i<100; i++) { - ch = fgetc(stdin); - if (ch==EOF) { - break; - } - inbuf[i] = ch; - } - if (i<100) { /* end of input */ - mode = LZW_EOD; - } - - /* compress */ - s->next_in = inbuf; - s->avail_in = i; - do { - s->next_out = outbuf; - s->avail_out = 100; - r = lzw_compress(s, mode); - if (r) { - goto error; - } - fwrite(outbuf, 1, 100-s->avail_out, stdout); - } while (s->avail_out==0); - if (mode == LZW_EOD) { - break; - } - } - fflush(stdout); - lzw_free(s); - - return 0; - - error: - fprintf(stderr, "lzw: %s\n", strerror(errno)); - lzw_free(s); - return 1; - -} -#endif - diff --git a/Build/source/libs/potrace/potrace-src/src/lzw.h b/Build/source/libs/potrace/potrace-src/src/lzw.h deleted file mode 100644 index f30fc49ad34..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/lzw.h +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -#define LZW_NORMAL 0 -#define LZW_EOD 1 - -/* user visible state */ - -struct lzw_stream_s { - const char *next_in; /* pointer to next input character */ - int avail_in; /* number of input chars available */ - char *next_out; /* pointer to next free byte in output buffer */ - int avail_out; /* remaining size of output buffer */ - - void *internal; /* internal state, not user accessible */ -}; -typedef struct lzw_stream_s lzw_stream_t; - -/* user visible functions */ - -/* The interface for compression and decompression is the same. The - application must first call lzw_init to create and initialize a - compression object. Then it calls lzw_compress on this object - repeatedly, as follows: next_in and next_out must point to valid, - non-overlapping regions of memory of size at least avail_in and - avail_out, respectively. The lzw_compress function will read and - process as many input bytes as possible as long as there is room in - the output buffer. It will update next_in, avail_in, next_out, and - avail_out accordingly. Some input may be consumed without producing - any output, or some output may be produced without consuming any - input. However, the lzw_compress function makes progress in the - sense that, after calling this function, at least one of avail_in - or avail_out is guaranteed to be 0. The mode flag is normally set - to LZW_NORMAL. It can be set to LZW_EOD (end of data) to indicate - that the current input buffer represents the entire remaining input - data stream. When called with mode=LZW_EOD, and avail_out is - non-zero after the call, then the application may conclude that the - end of output has been reached. (However, if avail_out==0 after the - call, then lzw_compress should be called again with the remaining - input, if any). Finally, lzw_free should be called to deallocate - the lzw_stream. Lzw_init returns NULL on error, with errno - set. Lzw_compress returns 0 on success, and 1 on error with errno - set. EINVAL is used to indicate an internal error, which should not - happen. */ - -lzw_stream_t *lzw_init(void); -int lzw_compress(lzw_stream_t *s, int mode); -void lzw_free(lzw_stream_t *s); diff --git a/Build/source/libs/potrace/potrace-src/src/main.c b/Build/source/libs/potrace/potrace-src/src/main.c deleted file mode 100644 index 1722e69af19..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/main.c +++ /dev/null @@ -1,1274 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -#ifndef _POSIX_C_SOURCE -#define _POSIX_C_SOURCE 200809L -#endif - -#ifndef _NETBSD_SOURCE -#define _NETBSD_SOURCE 1 -#endif - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include -#include -#include -#include - -#include "main.h" -#include "potracelib.h" -#include "backend_pdf.h" -#include "backend_eps.h" -#include "backend_pgm.h" -#include "backend_svg.h" -#include "backend_xfig.h" -#include "backend_dxf.h" -#include "backend_geojson.h" -#include "potracelib.h" -#include "bitmap_io.h" -#include "bitmap.h" -#include "platform.h" -#include "auxiliary.h" -#include "progress_bar.h" -#include "trans.h" - -#ifndef M_PI -#define M_PI 3.14159265358979323846 -#endif - -#define UNDEF ((double)(1e30)) /* a value to represent "undefined" */ - -struct info_s info; - -/* ---------------------------------------------------------------------- */ -/* some data structures for option processing */ - -struct pageformat_s { - const char *name; - int w, h; -}; -typedef struct pageformat_s pageformat_t; - -/* dimensions of the various page formats, in postscript points */ -static pageformat_t pageformat[] = { - { "a4", 595, 842 }, - { "a3", 842, 1191 }, - { "a5", 421, 595 }, - { "b5", 516, 729 }, - { "letter", 612, 792 }, - { "legal", 612, 1008 }, - { "tabloid", 792, 1224 }, - { "statement", 396, 612 }, - { "executive", 540, 720 }, - { "folio", 612, 936 }, - { "quarto", 610, 780 }, - { "10x14", 720, 1008 }, - { NULL, 0, 0 }, -}; - -struct turnpolicy_s { - const char *name; - int n; -}; -typedef struct turnpolicy_s turnpolicy_t; - -/* names of turn policies */ -static turnpolicy_t turnpolicy[] = { - {"black", POTRACE_TURNPOLICY_BLACK}, - {"white", POTRACE_TURNPOLICY_WHITE}, - {"left", POTRACE_TURNPOLICY_LEFT}, - {"right", POTRACE_TURNPOLICY_RIGHT}, - {"minority", POTRACE_TURNPOLICY_MINORITY}, - {"majority", POTRACE_TURNPOLICY_MAJORITY}, - {"random", POTRACE_TURNPOLICY_RANDOM}, - {NULL, 0}, -}; - -/* backends and their characteristics */ -struct backend_s { - const char *name; /* name of this backend */ - const char *ext; /* file extension */ - int fixed; /* fixed page size backend? */ - int pixel; /* pixel-based backend? */ - int multi; /* multi-page backend? */ - int (*init_f)(FILE *fout); /* initialization function */ - int (*page_f)(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo); - /* per-bitmap function */ - int (*term_f)(FILE *fout); /* finalization function */ - int opticurve; /* opticurve capable (true Bezier curves?) */ -}; -typedef struct backend_s backend_t; - -static backend_t backend[] = { - { "svg", ".svg", 0, 0, 0, NULL, page_svg, NULL, 1 }, - { "pdf", ".pdf", 0, 0, 1, init_pdf, page_pdf, term_pdf, 1 }, - { "pdfpage", ".pdf", 1, 0, 1, init_pdf, page_pdfpage, term_pdf, 1 }, - { "eps", ".eps", 0, 0, 0, NULL, page_eps, NULL, 1 }, - { "postscript", ".ps", 1, 0, 1, init_ps, page_ps, term_ps, 1 }, - { "ps", ".ps", 1, 0, 1, init_ps, page_ps, term_ps, 1 }, - { "dxf", ".dxf", 0, 1, 0, NULL, page_dxf, NULL, 1 }, - { "geojson", ".json",0, 1, 0, NULL, page_geojson, NULL, 1 }, - { "pgm", ".pgm", 0, 1, 1, NULL, page_pgm, NULL, 1 }, - { "gimppath", ".svg", 0, 1, 0, NULL, page_gimp, NULL, 1 }, - { "xfig", ".fig", 1, 0, 0, NULL, page_xfig, NULL, 0 }, - { NULL, NULL, 0, 0, 0, NULL, NULL, NULL, 0 }, -}; - -/* look up a backend by name. If found, return 0 and set *bp. If not - found leave *bp unchanged and return 1, or 2 on ambiguous - prefix. */ -static int backend_lookup(const char *name, backend_t **bp) { - int i; - int m=0; /* prefix matches */ - backend_t *b = NULL; - - for (i=0; backend[i].name; i++) { - if (strcasecmp(backend[i].name, name)==0) { - *bp = &backend[i]; - return 0; - } else if (strncasecmp(backend[i].name, name, strlen(name))==0) { - m++; - b = &backend[i]; - } - } - /* if there was no exact match, and exactly one prefix match, use that */ - if (m==1) { - *bp = b; - return 0; - } else if (m) { - return 2; - } else { - return 1; - } -} - -/* list all available backends by name, in a comma separated list. - Assume the cursor starts in column j, and break lines at length - linelen. Do not output any trailing punctuation. Return the column - the cursor is in. */ -static int backend_list(FILE *fout, int j, int linelen) { - int i; - - for (i=0; backend[i].name; i++) { - if (j + (int)strlen(backend[i].name) > linelen) { - fprintf(fout, "\n"); - j = 0; - } - j += fprintf(fout, "%s", backend[i].name); - if (backend[i+1].name) { - j += fprintf(fout, ", "); - } - } - return j; -} - -/* ---------------------------------------------------------------------- */ -/* some info functions */ - -static void license(FILE *f) { - fprintf(f, - "This program is free software; you can redistribute it and/or modify\n" - "it under the terms of the GNU General Public License as published by\n" - "the Free Software Foundation; either version 2 of the License, or\n" - "(at your option) any later version.\n" - "\n" - "This program is distributed in the hope that it will be useful,\n" - "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" - "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" - "GNU General Public License for more details.\n" - "\n" - "You should have received a copy of the GNU General Public License\n" - "along with this program; if not, write to the Free Software Foundation\n" - "Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" - ); -} - -static void show_defaults(FILE *f) { - fprintf(f, "Default unit: " DEFAULT_DIM_NAME "\n"); - fprintf(f, "Default page size: " DEFAULT_PAPERFORMAT "\n"); -} - -static void usage(FILE *f) { - int j; - - fprintf(f, "Usage: " POTRACE " [options] [filename...]\n"); - fprintf(f, "General options:\n"); - fprintf(f, " -h, --help - print this help message and exit\n"); - fprintf(f, " -v, --version - print version info and exit\n"); - fprintf(f, " -l, --license - print license info and exit\n"); - fprintf(f, "File selection:\n"); - fprintf(f, " - an input file\n"); - fprintf(f, " -o, --output - write all output to this file\n"); - fprintf(f, " -- - end of options; 0 or more input filenames follow\n"); - fprintf(f, "Backend selection:\n"); - fprintf(f, " -b, --backend - select backend by name\n"); - fprintf(f, " -b svg, -s, --svg - SVG backend (scalable vector graphics)\n"); - fprintf(f, " -b pdf - PDF backend (portable document format)\n"); - fprintf(f, " -b pdfpage - fixed page-size PDF backend\n"); - fprintf(f, " -b eps, -e, --eps - EPS backend (encapsulated PostScript) (default)\n"); - fprintf(f, " -b ps, -p, --postscript - PostScript backend\n"); - fprintf(f, " -b pgm, -g, --pgm - PGM backend (portable greymap)\n"); - fprintf(f, " -b dxf - DXF backend (drawing interchange format)\n"); - fprintf(f, " -b geojson - GeoJSON backend\n"); - fprintf(f, " -b gimppath - Gimppath backend (GNU Gimp)\n"); - fprintf(f, " -b xfig - XFig backend\n"); - fprintf(f, "Algorithm options:\n"); - fprintf(f, " -z, --turnpolicy - how to resolve ambiguities in path decomposition\n"); - fprintf(f, " -t, --turdsize - suppress speckles of up to this size (default 2)\n"); - fprintf(f, " -a, --alphamax - corner threshold parameter (default 1)\n"); - fprintf(f, " -n, --longcurve - turn off curve optimization\n"); - fprintf(f, " -O, --opttolerance - curve optimization tolerance (default 0.2)\n"); - fprintf(f, " -u, --unit - quantize output to 1/unit pixels (default 10)\n"); - fprintf(f, " -d, --debug - produce debugging output of type n (n=1,2,3)\n"); - fprintf(f, "Scaling and placement options:\n"); - fprintf(f, " -P, --pagesize - page size (default is " DEFAULT_PAPERFORMAT ")\n"); - fprintf(f, " -W, --width - width of output image\n"); - fprintf(f, " -H, --height - height of output image\n"); - fprintf(f, " -r, --resolution [x] - resolution (in dpi) (dimension-based backends)\n"); - fprintf(f, " -x, --scale [x] - scaling factor (pixel-based backends)\n"); - fprintf(f, " -S, --stretch - yresolution/xresolution\n"); - fprintf(f, " -A, --rotate - rotate counterclockwise by angle\n"); - fprintf(f, " -M, --margin - margin\n"); - fprintf(f, " -L, --leftmargin - left margin\n"); - fprintf(f, " -R, --rightmargin - right margin\n"); - fprintf(f, " -T, --topmargin - top margin\n"); - fprintf(f, " -B, --bottommargin - bottom margin\n"); - fprintf(f, " --tight - remove whitespace around the input image\n"); - fprintf(f, "Color options, supported by some backends:\n"); - fprintf(f, " -C, --color #rrggbb - set foreground color (default black)\n"); - fprintf(f, " --fillcolor #rrggbb - set fill color (default transparent)\n"); - fprintf(f, " --opaque - make white shapes opaque\n"); - fprintf(f, "SVG options:\n"); - fprintf(f, " --group - group related paths together\n"); - fprintf(f, " --flat - whole image as a single path\n"); - fprintf(f, "Postscript/EPS/PDF options:\n"); - fprintf(f, " -c, --cleartext - do not compress the output\n"); - fprintf(f, " -2, --level2 - use postscript level 2 compression (default)\n"); -#ifdef HAVE_ZLIB - fprintf(f, " -3, --level3 - use postscript level 3 compression\n"); -#endif - fprintf(f, " -q, --longcoding - do not optimize for file size\n"); - fprintf(f, "PGM options:\n"); - fprintf(f, " -G, --gamma - gamma value for anti-aliasing (default 2.2)\n"); - fprintf(f, "Frontend options:\n"); - fprintf(f, " -k, --blacklevel - black/white cutoff in input file (default 0.5)\n"); - fprintf(f, " -i, --invert - invert bitmap\n"); - fprintf(f, "Progress bar options:\n"); - fprintf(f, " --progress - show progress bar\n"); - fprintf(f, " --tty - progress bar rendering: vt100 or dumb\n"); - fprintf(f, "\n"); - fprintf(f, "Dimensions can have optional units, e.g. 6.5in, 15cm, 100pt.\n"); - fprintf(f, "Default is " DEFAULT_DIM_NAME " (or pixels for pgm, dxf, and gimppath backends).\n"); - fprintf(f, "Possible input file formats are: pnm (pbm, pgm, ppm), bmp.\n"); - j = fprintf(f, "Backends are: "); - backend_list(f, j, 78); - fprintf(f, ".\n"); -} - -/* ---------------------------------------------------------------------- */ -/* auxiliary functions for parameter parsing */ - -/* parse a dimension of the kind "1.5in", "7cm", etc. Return result in - postscript points (=1/72 in). If endptr!=NULL, store pointer to - next character in *endptr in the manner of strtod(3). */ -static dim_t parse_dimension(char *s, char **endptr) { - char *p; - dim_t res; - - res.x = strtod(s, &p); - res.d = 0; - if (p!=s) { - if (!strncasecmp(p, "in", 2)) { - res.d = DIM_IN; - p += 2; - } else if (!strncasecmp(p, "cm", 2)) { - res.d = DIM_CM; - p += 2; - } else if (!strncasecmp(p, "mm", 2)) { - res.d = DIM_MM; - p += 2; - } else if (!strncasecmp(p, "pt", 2)) { - res.d = DIM_PT; - p += 2; - } - } - if (endptr!=NULL) { - *endptr = p; - } - return res; -} - -/* parse a pair of dimensions, such as "8.5x11in", "30mmx4cm" */ -static void parse_dimensions(char *s, char **endptr, dim_t *dxp, dim_t *dyp) { - char *p, *q; - dim_t dx, dy; - - dx = parse_dimension(s, &p); - if (p==s) { - goto fail; - } - if (*p != 'x') { - goto fail; - } - p++; - dy = parse_dimension(p, &q); - if (q==p) { - goto fail; - } - if (dx.d && !dy.d) { - dy.d = dx.d; - } else if (!dx.d && dy.d) { - dx.d = dy.d; - } - *dxp = dx; - *dyp = dy; - if (endptr != NULL) { - *endptr = q; - } - return; - - fail: - dx.x = dx.d = dy.x = dy.d = 0; - *dxp = dx; - *dyp = dy; - if (endptr != NULL) { - *endptr = s; - } - return; -} - -static inline double double_of_dim(dim_t d, double def) { - if (d.d) { - return d.x * d.d; - } else { - return d.x * def; - } -} - -static int parse_color(char *s) { - int i, d; - int col = 0; - - if (s[0] != '#' || strlen(s) != 7) { - return -1; - } - for (i=0; i<6; i++) { - d = s[6-i]; - if (d >= '0' && d <= '9') { - col |= (d-'0') << (4*i); - } else if (d >= 'a' && d <= 'f') { - col |= (d-'a'+10) << (4*i); - } else if (d >= 'A' && d <= 'F') { - col |= (d-'A'+10) << (4*i); - } else { - return -1; - } - } - return col; -} - -/* ---------------------------------------------------------------------- */ -/* option processing */ - -/* codes for options that don't have short form */ -enum { - OPT_TIGHT = 300, - OPT_FILLCOLOR, - OPT_OPAQUE, - OPT_GROUP, - OPT_FLAT, - OPT_PROGRESS, - OPT_TTY -}; - -static struct option longopts[] = { - {"help", 0, 0, 'h'}, - {"version", 0, 0, 'v'}, - {"show-defaults", 0, 0, 'V'}, /* undocumented option for compatibility */ - {"license", 0, 0, 'l'}, - {"width", 1, 0, 'W'}, - {"height", 1, 0, 'H'}, - {"resolution", 1, 0, 'r'}, - {"scale", 1, 0, 'x'}, - {"stretch", 1, 0, 'S'}, - {"margin", 1, 0, 'M'}, - {"leftmargin", 1, 0, 'L'}, - {"rightmargin", 1, 0, 'R'}, - {"topmargin", 1, 0, 'T'}, - {"bottommargin", 1, 0, 'B'}, - {"tight", 0, 0, OPT_TIGHT}, - {"rotate", 1, 0, 'A'}, - {"pagesize", 1, 0, 'P'}, - {"turdsize", 1, 0, 't'}, - {"unit", 1, 0, 'u'}, - {"cleartext", 0, 0, 'c'}, - {"level2", 0, 0, '2'}, - {"level3", 0, 0, '3'}, - {"eps", 0, 0, 'e'}, - {"postscript", 0, 0, 'p'}, - {"svg", 0, 0, 's'}, - {"pgm", 0, 0, 'g'}, - {"backend", 1, 0, 'b'}, - {"debug", 1, 0, 'd'}, - {"color", 1, 0, 'C'}, - {"fillcolor", 1, 0, OPT_FILLCOLOR}, - {"turnpolicy", 1, 0, 'z'}, - {"gamma", 1, 0, 'G'}, - {"longcurve", 0, 0, 'n'}, - {"longcoding", 0, 0, 'q'}, - {"alphamax", 1, 0, 'a'}, - {"opttolerance", 1, 0, 'O'}, - {"output", 1, 0, 'o'}, - {"blacklevel", 1, 0, 'k'}, - {"invert", 0, 0, 'i'}, - {"opaque", 0, 0, OPT_OPAQUE}, - {"group", 0, 0, OPT_GROUP}, - {"flat", 0, 0, OPT_FLAT}, - {"progress", 0, 0, OPT_PROGRESS}, - {"tty", 1, 0, OPT_TTY}, - - {0, 0, 0, 0} -}; - -static const char *shortopts = "hvVlW:H:r:x:S:M:L:R:T:B:A:P:t:u:c23epsgb:d:C:z:G:nqa:O:o:k:i"; - -static void dopts(int ac, char *av[]) { - int c; - char *p; - int i, j, r; - dim_t dim, dimx, dimy; - int matches, bestmatch; - - /* defaults */ - backend_lookup("eps", &info.backend); - info.debug = 0; - info.width_d.x = UNDEF; - info.height_d.x = UNDEF; - info.rx = UNDEF; - info.ry = UNDEF; - info.sx = UNDEF; - info.sy = UNDEF; - info.stretch = 1; - info.lmar_d.x = UNDEF; - info.rmar_d.x = UNDEF; - info.tmar_d.x = UNDEF; - info.bmar_d.x = UNDEF; - info.angle = 0; - info.paperwidth = DEFAULT_PAPERWIDTH; - info.paperheight = DEFAULT_PAPERHEIGHT; - info.tight = 0; - info.unit = 10; - info.compress = 1; - info.pslevel = 2; - info.color = 0x000000; - info.gamma = 2.2; - info.param = potrace_param_default(); - if (!info.param) { - fprintf(stderr, "" POTRACE ": %s\n", strerror(errno)); - exit(2); - } - info.longcoding = 0; - info.outfile = NULL; - info.blacklevel = 0.5; - info.invert = 0; - info.opaque = 0; - info.grouping = 1; - info.fillcolor = 0xffffff; - info.progress = 0; - info.progress_bar = DEFAULT_PROGRESS_BAR; - - while ((c = getopt_long(ac, av, shortopts, longopts, NULL)) != -1) { - switch (c) { - case 'h': - fprintf(stdout, "" POTRACE " " VERSION ". Transforms bitmaps into vector graphics.\n\n"); - usage(stdout); - exit(0); - break; - case 'v': - case 'V': - fprintf(stdout, "" POTRACE " " VERSION ". Copyright (C) 2001-2017 Peter Selinger.\n"); - fprintf(stdout, "Library version: %s\n", potrace_version()); - show_defaults(stdout); - exit(0); - break; - case 'l': - fprintf(stdout, "" POTRACE " " VERSION ". Copyright (C) 2001-2017 Peter Selinger.\n\n"); - license(stdout); - exit(0); - break; - case 'W': - info.width_d = parse_dimension(optarg, &p); - if (*p) { - fprintf(stderr, "" POTRACE ": invalid dimension -- %s\n", optarg); - exit(1); - } - break; - case 'H': - info.height_d = parse_dimension(optarg, &p); - if (*p) { - fprintf(stderr, "" POTRACE ": invalid dimension -- %s\n", optarg); - exit(1); - } - break; - case 'r': - parse_dimensions(optarg, &p, &dimx, &dimy); - if (*p == 0 && dimx.d == 0 && dimy.d == 0 && dimx.x != 0.0 && dimy.x != 0.0) { - info.rx = dimx.x; - info.ry = dimy.x; - break; - } - dim = parse_dimension(optarg, &p); - if (*p == 0 && dim.d == 0 && dim.x != 0.0) { - info.rx = info.ry = dim.x; - break; - } - fprintf(stderr, "" POTRACE ": invalid resolution -- %s\n", optarg); - exit(1); - break; - case 'x': - parse_dimensions(optarg, &p, &dimx, &dimy); - if (*p == 0 && dimx.d == 0 && dimy.d == 0) { - info.sx = dimx.x; - info.sy = dimy.x; - break; - } - dim = parse_dimension(optarg, &p); - if (*p == 0 && dim.d == 0) { - info.sx = info.sy = dim.x; - break; - } - fprintf(stderr, "" POTRACE ": invalid scaling factor -- %s\n", optarg); - exit(1); - break; - case 'S': - info.stretch = atof(optarg); - break; - case 'M': - info.lmar_d = parse_dimension(optarg, &p); - if (*p) { - fprintf(stderr, "" POTRACE ": invalid dimension -- %s\n", optarg); - exit(1); - } - info.rmar_d = info.tmar_d = info.bmar_d = info.lmar_d; - break; - case 'L': - info.lmar_d = parse_dimension(optarg, &p); - if (*p) { - fprintf(stderr, "" POTRACE ": invalid dimension -- %s\n", optarg); - exit(1); - } - break; - case 'R': - info.rmar_d = parse_dimension(optarg, &p); - if (*p) { - fprintf(stderr, "" POTRACE ": invalid dimension -- %s\n", optarg); - exit(1); - } - break; - case 'T': - info.tmar_d = parse_dimension(optarg, &p); - if (*p) { - fprintf(stderr, "" POTRACE ": invalid dimension -- %s\n", optarg); - exit(1); - } - break; - case 'B': - info.bmar_d = parse_dimension(optarg, &p); - if (*p) { - fprintf(stderr, "" POTRACE ": invalid dimension -- %s\n", optarg); - exit(1); - } - break; - case OPT_TIGHT: - info.tight = 1; - break; - case 'A': - info.angle = strtod(optarg, &p); - if (*p) { - fprintf(stderr, "" POTRACE ": invalid angle -- %s\n", optarg); - exit(1); - } - break; - case 'P': - matches = 0; - bestmatch = 0; - for (i=0; pageformat[i].name!=NULL; i++) { - if (strcasecmp(pageformat[i].name, optarg)==0) { - matches = 1; - bestmatch = i; - break; - } else if (strncasecmp(pageformat[i].name, optarg, strlen(optarg))==0) { - /* don't allow partial match on "10x14" */ - if (optarg[0] != '1') { - matches++; - bestmatch = i; - } - } - } - if (matches == 1) { - info.paperwidth = pageformat[bestmatch].w; - info.paperheight = pageformat[bestmatch].h; - break; - } - parse_dimensions(optarg, &p, &dimx, &dimy); - if (*p == 0) { - info.paperwidth = (int)round(double_of_dim(dimx, DEFAULT_DIM)); - info.paperheight = (int)round(double_of_dim(dimy, DEFAULT_DIM)); - break; - } - if (matches == 0) { - fprintf(stderr, "" POTRACE ": unrecognized page format -- %s\n", optarg); - } else { - fprintf(stderr, "" POTRACE ": ambiguous page format -- %s\n", optarg); - } - j = fprintf(stderr, "Use one of: "); - for (i=0; pageformat[i].name!=NULL; i++) { - if (j + strlen(pageformat[i].name) > 75) { - fprintf(stderr, "\n"); - j = 0; - } - j += fprintf(stderr, "%s, ", pageformat[i].name); - } - fprintf(stderr, "or specify x.\n"); - exit(1); - break; - case 't': - info.param->turdsize = atoi(optarg); - break; - case 'u': - info.unit = strtod(optarg, &p); - if (*p) { - fprintf(stderr, "" POTRACE ": invalid unit -- %s\n", optarg); - exit(1); - } - break; - case 'c': - info.pslevel = 2; - info.compress = 0; - break; - case '2': - info.pslevel = 2; - info.compress = 1; - break; - case '3': -#ifdef HAVE_ZLIB - info.pslevel = 3; - info.compress = 1; -#else - fprintf(stderr, "" POTRACE ": option -3 not supported, using -2 instead.\n"); - fflush(stderr); - info.pslevel = 2; - info.compress = 1; -#endif - break; - case 'e': - backend_lookup("eps", &info.backend); - break; - case 'p': - backend_lookup("postscript", &info.backend); - break; - case 's': - backend_lookup("svg", &info.backend); - break; - case 'g': - backend_lookup("pgm", &info.backend); - break; - case 'b': - r = backend_lookup(optarg, &info.backend); - if (r==1 || r==2) { - if (r==1) { - fprintf(stderr, "" POTRACE ": unrecognized backend -- %s\n", optarg); - } else { - fprintf(stderr, "" POTRACE ": ambiguous backend -- %s\n", optarg); - } - j = fprintf(stderr, "Use one of: "); - backend_list(stderr, j, 70); - fprintf(stderr, ".\n"); - exit(1); - } - break; - case 'd': - info.debug = atoi(optarg); - break; - case 'C': - info.color = parse_color(optarg); - if (info.color == -1) { - fprintf(stderr, "" POTRACE ": invalid color -- %s\n", optarg); - exit(1); - } - break; - case OPT_FILLCOLOR: - info.fillcolor = parse_color(optarg); - if (info.fillcolor == -1) { - fprintf(stderr, "" POTRACE ": invalid color -- %s\n", optarg); - exit(1); - } - info.opaque = 1; - break; - case 'z': - matches = 0; - bestmatch = 0; - for (i=0; turnpolicy[i].name!=NULL; i++) { - if (strcasecmp(turnpolicy[i].name, optarg)==0) { - matches = 1; - bestmatch = i; - break; - } else if (strncasecmp(turnpolicy[i].name, optarg, strlen(optarg))==0) { - matches++; - bestmatch = i; - } - } - if (matches == 1) { - info.param->turnpolicy = turnpolicy[bestmatch].n; - break; - } - if (matches == 0) { - fprintf(stderr, "" POTRACE ": unrecognized turnpolicy -- %s\n", optarg); - } else { - fprintf(stderr, "" POTRACE ": ambiguous turnpolicy -- %s\n", optarg); - } - j = fprintf(stderr, "Use one of: "); - for (i=0; turnpolicy[i].name!=NULL; i++) { - if (j + strlen(turnpolicy[i].name) > 75) { - fprintf(stderr, "\n"); - j = 0; - } - j += fprintf(stderr, "%s%s", turnpolicy[i].name, turnpolicy[i+1].name ? ", " : ""); - } - fprintf(stderr, ".\n"); - exit(1); - break; - case 'G': - info.gamma = atof(optarg); - break; - case 'n': - info.param->opticurve = 0; - break; - case 'q': - info.longcoding = 1; - break; - case 'a': - info.param->alphamax = strtod(optarg, &p); - if (*p) { - fprintf(stderr, "" POTRACE ": invalid alphamax -- %s\n", optarg); - exit(1); - } - break; - case 'O': - info.param->opttolerance = strtod(optarg, &p); - if (*p) { - fprintf(stderr, "" POTRACE ": invalid opttolerance -- %s\n", optarg); - exit(1); - } - break; - case 'o': - free(info.outfile); - info.outfile = strdup(optarg); - if (!info.outfile) { - fprintf(stderr, "" POTRACE ": %s\n", strerror(errno)); - exit(2); - } - break; - case 'k': - info.blacklevel = strtod(optarg, &p); - if (*p) { - fprintf(stderr, "" POTRACE ": invalid blacklevel -- %s\n", optarg); - exit(1); - } - break; - case 'i': - info.invert = 1; - break; - case OPT_OPAQUE: - info.opaque = 1; - break; - case OPT_GROUP: - info.grouping = 2; - break; - case OPT_FLAT: - info.grouping = 0; - break; - case OPT_PROGRESS: - info.progress = 1; - break; - case OPT_TTY: - if (strcmp(optarg, "dumb") == 0) { - info.progress_bar = progress_bar_simplified; - } else if (strcmp(optarg, "vt100") == 0) { - info.progress_bar = progress_bar_vt100; - } else { - fprintf(stderr, "" POTRACE ": invalid tty mode -- %s. Try --help for more info\n", optarg); - exit(1); - } - break; - case '?': - fprintf(stderr, "Try --help for more info\n"); - exit(1); - break; - default: - fprintf(stderr, "" POTRACE ": Unimplemented option -- %c\n", c); - exit(1); - } - } - info.infiles = &av[optind]; - info.infilecount = ac-optind; - info.some_infiles = info.infilecount ? 1 : 0; - - /* if "--" was used, even an empty list of filenames is considered - "some" filenames. */ - if (strcmp(av[optind-1], "--") == 0) { - info.some_infiles = 1; - } -} - -/* ---------------------------------------------------------------------- */ -/* calculations with bitmap dimensions, positioning etc */ - -/* determine the dimensions of the output based on command line and - image dimensions, and optionally, based on the actual image outline. */ -static void calc_dimensions(imginfo_t *imginfo, potrace_path_t *plist) { - double dim_def; - double maxwidth, maxheight, sc; - int default_scaling = 0; - - /* we take care of a special case: if one of the image dimensions is - 0, we change it to 1. Such an image is empty anyway, so there - will be 0 paths in it. Changing the dimensions avoids division by - 0 error in calculating scaling factors, bounding boxes and - such. This doesn't quite do the right thing in all cases, but it - is better than causing overflow errors or "nan" output in - backends. Human users don't tend to process images of size 0 - anyway; they might occur in some pipelines. */ - if (imginfo->pixwidth == 0) { - imginfo->pixwidth = 1; - } - if (imginfo->pixheight == 0) { - imginfo->pixheight = 1; - } - - /* set the default dimension for width, height, margins */ - if (info.backend->pixel) { - dim_def = DIM_PT; - } else { - dim_def = DEFAULT_DIM; - } - - /* apply default dimension to width, height, margins */ - imginfo->width = info.width_d.x == UNDEF ? UNDEF : double_of_dim(info.width_d, dim_def); - imginfo->height = info.height_d.x == UNDEF ? UNDEF : double_of_dim(info.height_d, dim_def); - imginfo->lmar = info.lmar_d.x == UNDEF ? UNDEF : double_of_dim(info.lmar_d, dim_def); - imginfo->rmar = info.rmar_d.x == UNDEF ? UNDEF : double_of_dim(info.rmar_d, dim_def); - imginfo->tmar = info.tmar_d.x == UNDEF ? UNDEF : double_of_dim(info.tmar_d, dim_def); - imginfo->bmar = info.bmar_d.x == UNDEF ? UNDEF : double_of_dim(info.bmar_d, dim_def); - - /* start with a standard rectangle */ - trans_from_rect(&imginfo->trans, imginfo->pixwidth, imginfo->pixheight); - - /* if info.tight is set, tighten the bounding box */ - if (info.tight) { - trans_tighten(&imginfo->trans, plist); - } - - /* sx/rx is just an alternate way to specify width; sy/ry is just an - alternate way to specify height. */ - if (info.backend->pixel) { - if (imginfo->width == UNDEF && info.sx != UNDEF) { - imginfo->width = imginfo->trans.bb[0] * info.sx; - } - if (imginfo->height == UNDEF && info.sy != UNDEF) { - imginfo->height = imginfo->trans.bb[1] * info.sy; - } - } else { - if (imginfo->width == UNDEF && info.rx != UNDEF) { - imginfo->width = imginfo->trans.bb[0] / info.rx * 72; - } - if (imginfo->height == UNDEF && info.ry != UNDEF) { - imginfo->height = imginfo->trans.bb[1] / info.ry * 72; - } - } - - /* if one of width/height is specified, use stretch to determine the - other */ - if (imginfo->width == UNDEF && imginfo->height != UNDEF) { - imginfo->width = imginfo->height / imginfo->trans.bb[1] * imginfo->trans.bb[0] / info.stretch; - } else if (imginfo->width != UNDEF && imginfo->height == UNDEF) { - imginfo->height = imginfo->width / imginfo->trans.bb[0] * imginfo->trans.bb[1] * info.stretch; - } - - /* if width and height are still variable, tenatively use the - default scaling factor of 72dpi (for dimension-based backends) or - 1 (for pixel-based backends). For fixed-size backends, this will - be adjusted later to fit the page. */ - if (imginfo->width == UNDEF && imginfo->height == UNDEF) { - imginfo->width = imginfo->trans.bb[0]; - imginfo->height = imginfo->trans.bb[1] * info.stretch; - default_scaling = 1; - } - - /* apply scaling */ - trans_scale_to_size(&imginfo->trans, imginfo->width, imginfo->height); - - /* apply rotation, and tighten the bounding box again, if necessary */ - if (info.angle != 0.0) { - trans_rotate(&imginfo->trans, info.angle); - if (info.tight) { - trans_tighten(&imginfo->trans, plist); - } - } - - /* for fixed-size backends, if default scaling was in effect, - further adjust the scaling to be the "best fit" for the given - page size and margins. */ - if (default_scaling && info.backend->fixed) { - - /* try to squeeze it between margins */ - maxwidth = UNDEF; - maxheight = UNDEF; - - if (imginfo->lmar != UNDEF && imginfo->rmar != UNDEF) { - maxwidth = info.paperwidth - imginfo->lmar - imginfo->rmar; - } - if (imginfo->bmar != UNDEF && imginfo->tmar != UNDEF) { - maxheight = info.paperheight - imginfo->bmar - imginfo->tmar; - } - if (maxwidth == UNDEF && maxheight == UNDEF) { - maxwidth = max(info.paperwidth - 144, info.paperwidth * 0.75); - maxheight = max(info.paperheight - 144, info.paperheight * 0.75); - } - - if (maxwidth == UNDEF) { - sc = maxheight / imginfo->trans.bb[1]; - } else if (maxheight == UNDEF) { - sc = maxwidth / imginfo->trans.bb[0]; - } else { - sc = min(maxwidth / imginfo->trans.bb[0], maxheight / imginfo->trans.bb[1]); - } - - /* re-scale coordinate system */ - imginfo->width *= sc; - imginfo->height *= sc; - trans_rescale(&imginfo->trans, sc); - } - - /* adjust margins */ - if (info.backend->fixed) { - if (imginfo->lmar == UNDEF && imginfo->rmar == UNDEF) { - imginfo->lmar = (info.paperwidth-imginfo->trans.bb[0])/2; - } else if (imginfo->lmar == UNDEF) { - imginfo->lmar = (info.paperwidth-imginfo->trans.bb[0]-imginfo->rmar); - } else if (imginfo->lmar != UNDEF && imginfo->rmar != UNDEF) { - imginfo->lmar += (info.paperwidth-imginfo->trans.bb[0]-imginfo->lmar-imginfo->rmar)/2; - } - if (imginfo->bmar == UNDEF && imginfo->tmar == UNDEF) { - imginfo->bmar = (info.paperheight-imginfo->trans.bb[1])/2; - } else if (imginfo->bmar == UNDEF) { - imginfo->bmar = (info.paperheight-imginfo->trans.bb[1]-imginfo->tmar); - } else if (imginfo->bmar != UNDEF && imginfo->tmar != UNDEF) { - imginfo->bmar += (info.paperheight-imginfo->trans.bb[1]-imginfo->bmar-imginfo->tmar)/2; - } - } else { - if (imginfo->lmar == UNDEF) { - imginfo->lmar = 0; - } - if (imginfo->rmar == UNDEF) { - imginfo->rmar = 0; - } - if (imginfo->bmar == UNDEF) { - imginfo->bmar = 0; - } - if (imginfo->tmar == UNDEF) { - imginfo->tmar = 0; - } - } -} - -/* ---------------------------------------------------------------------- */ -/* auxiliary functions for file handling */ - -/* open a file for reading. Return stdin if filename is NULL or "-" */ -static FILE *my_fopen_read(const char *filename) { - if (filename == NULL || strcmp(filename, "-") == 0) { - return stdin; - } - return fopen(filename, "rb"); -} - -/* open a file for writing. Return stdout if filename is NULL or "-" */ -static FILE *my_fopen_write(const char *filename) { - if (filename == NULL || strcmp(filename, "-") == 0) { - return stdout; - } - return fopen(filename, "wb"); -} - -/* close a file, but do nothing is filename is NULL or "-" */ -static void my_fclose(FILE *f, const char *filename) { - if (filename == NULL || strcmp(filename, "-") == 0) { - return; - } - fclose(f); -} - -/* make output filename from input filename. Return an allocated value. */ -static char *make_outfilename(const char *infile, const char *ext) { - char *outfile; - char *p; - - if (strcmp(infile, "-") == 0) { - return strdup("-"); - } - - outfile = (char *) malloc(strlen(infile)+strlen(ext)+5); - if (!outfile) { - return NULL; - } - strcpy(outfile, infile); - p = strrchr(outfile, '.'); - if (p) { - *p = 0; - } - strcat(outfile, ext); - - /* check that input and output filenames are different */ - if (strcmp(infile, outfile) == 0) { - strcpy(outfile, infile); - strcat(outfile, "-out"); - } - - return outfile; -} - -/* ---------------------------------------------------------------------- */ -/* Process one infile */ - -/* Process one or more bitmaps from fin, and write the results to fout - using the page_f function of the appropriate backend. */ - -static void process_file(backend_t *b, const char *infile, const char *outfile, FILE *fin, FILE *fout) { - int r; - potrace_bitmap_t *bm = NULL; - imginfo_t imginfo; - int eof_flag = 0; /* to indicate premature eof */ - int count; /* number of bitmaps successfully processed, this file */ - potrace_state_t *st; - - for (count=0; ; count++) { - /* read a bitmap */ - r = bm_read(fin, info.blacklevel, &bm); - switch (r) { - case -1: /* system error */ - fprintf(stderr, "" POTRACE ": %s: %s\n", infile, strerror(errno)); - exit(2); - case -2: /* corrupt file format */ - fprintf(stderr, "" POTRACE ": %s: file format error: %s\n", infile, bm_read_error); - exit(2); - case -3: /* empty file */ - if (count>0) { /* end of file */ - return; - } - fprintf(stderr, "" POTRACE ": %s: empty file\n", infile); - exit(2); - case -4: /* wrong magic */ - if (count>0) { - fprintf(stderr, "" POTRACE ": %s: warning: junk at end of file\n", infile); - return; - } - fprintf(stderr, "" POTRACE ": %s: file format not recognized\n", infile); - fprintf(stderr, "Possible input file formats are: pnm (pbm, pgm, ppm), bmp.\n"); - exit(2); - case 1: /* unexpected end of file */ - fprintf(stderr, "" POTRACE ": warning: %s: premature end of file\n", infile); - eof_flag = 1; - break; - } - - /* prepare progress bar, if requested */ - if (info.progress) { - r = info.progress_bar->init(&info.param->progress, infile, count); - if (r) { - fprintf(stderr, "" POTRACE ": %s\n", strerror(errno)); - exit(2); - } - } else { - info.param->progress.callback = NULL; - } - - if (info.invert) { - bm_invert(bm); - } - - /* process the image */ - st = potrace_trace(info.param, bm); - if (!st || st->status != POTRACE_STATUS_OK) { - fprintf(stderr, "" POTRACE ": %s: %s\n", infile, strerror(errno)); - exit(2); - } - - /* calculate image dimensions */ - imginfo.pixwidth = bm->w; - imginfo.pixheight = bm->h; - bm_free(bm); - - calc_dimensions(&imginfo, st->plist); - - r = b->page_f(fout, st->plist, &imginfo); - if (r) { - fprintf(stderr, "" POTRACE ": %s: %s\n", outfile, strerror(errno)); - exit(2); - } - - potrace_state_free(st); - - if (info.progress) { - info.progress_bar->term(&info.param->progress); - } - - if (eof_flag || !b->multi) { - return; - } - } - /* not reached */ -} - -/* ---------------------------------------------------------------------- */ -/* main: handle file i/o */ - -#define TRY(x) if (x) goto try_error - -int main(int ac, char *av[]) { - backend_t *b; /* backend info */ - FILE *fin, *fout; - int i; - char *outfile; - - /* platform-specific initializations, e.g., set file i/o to binary */ - platform_init(); - - /* process options */ - dopts(ac, av); - - b = info.backend; - if (b==NULL) { - fprintf(stderr, "" POTRACE ": internal error: selected backend not found\n"); - exit(1); - } - - /* fix some parameters */ - /* if backend cannot handle opticurve, disable it */ - if (b->opticurve == 0) { - info.param->opticurve = 0; - } - - /* there are several ways to call us: - potrace -- stdin to stdout - potrace -o outfile -- stdin to outfile - potrace file... -- encode each file and generate outfile names - potrace -o outfile file... -- concatenate files and write to outfile - - The latter form is only allowed one file for single-page - backends. For multi-page backends, each file must contain 0 or - more complete bitmaps. - */ - - if (!info.some_infiles) { /* read from stdin */ - - fout = my_fopen_write(info.outfile); - if (!fout) { - fprintf(stderr, "" POTRACE ": %s: %s\n", info.outfile ? info.outfile : "stdout", strerror(errno)); - exit(2); - } - if (b->init_f) { - TRY(b->init_f(fout)); - } - process_file(b, "stdin", info.outfile ? info.outfile : "stdout", stdin, fout); - if (b->term_f) { - TRY(b->term_f(fout)); - } - my_fclose(fout, info.outfile); - free(info.outfile); - potrace_param_free(info.param); - return 0; - - } else if (!info.outfile) { /* infiles -> multiple outfiles */ - - for (i=0; iext); - if (!outfile) { - fprintf(stderr, "" POTRACE ": %s\n", strerror(errno)); - exit(2); - } - fin = my_fopen_read(info.infiles[i]); - if (!fin) { - fprintf(stderr, "" POTRACE ": %s: %s\n", info.infiles[i], strerror(errno)); - exit(2); - } - fout = my_fopen_write(outfile); - if (!fout) { - fprintf(stderr, "" POTRACE ": %s: %s\n", outfile, strerror(errno)); - exit(2); - } - if (b->init_f) { - TRY(b->init_f(fout)); - } - process_file(b, info.infiles[i], outfile, fin, fout); - if (b->term_f) { - TRY(b->term_f(fout)); - } - my_fclose(fin, info.infiles[i]); - my_fclose(fout, outfile); - free(outfile); - } - potrace_param_free(info.param); - return 0; - - } else { /* infiles to single outfile */ - - if (!b->multi && info.infilecount >= 2) { - fprintf(stderr, "" POTRACE ": cannot use multiple input files with -o in %s mode\n", b->name); - exit(1); - } - if (info.infilecount == 0) { - fprintf(stderr, "" POTRACE ": cannot use empty list of input files with -o\n"); - exit(1); - } - - fout = my_fopen_write(info.outfile); - if (!fout) { - fprintf(stderr, "" POTRACE ": %s: %s\n", info.outfile, strerror(errno)); - exit(2); - } - if (b->init_f) { - TRY(b->init_f(fout)); - } - for (i=0; iterm_f) { - TRY(b->term_f(fout)); - } - my_fclose(fout, info.outfile); - free(info.outfile); - potrace_param_free(info.param); - return 0; - - } - - /* not reached */ - - try_error: - fprintf(stderr, "" POTRACE ": %s\n", strerror(errno)); - exit(2); -} diff --git a/Build/source/libs/potrace/potrace-src/src/main.h b/Build/source/libs/potrace/potrace-src/src/main.h deleted file mode 100644 index a80359b67b9..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/main.h +++ /dev/null @@ -1,109 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -#ifndef MAIN_H -#define MAIN_H - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "potracelib.h" -#include "progress_bar.h" -#include "auxiliary.h" -#include "trans.h" - -/* structure to hold a dimensioned value */ -struct dim_s { - double x; /* value */ - double d; /* dimension (in pt), or 0 if not given */ -}; -typedef struct dim_s dim_t; - -#define DIM_IN (72) -#define DIM_CM (72 / 2.54) -#define DIM_MM (72 / 25.4) -#define DIM_PT (1) - -/* set some configurable defaults */ - -#ifdef USE_METRIC -#define DEFAULT_DIM DIM_CM -#define DEFAULT_DIM_NAME "centimeters" -#else -#define DEFAULT_DIM DIM_IN -#define DEFAULT_DIM_NAME "inches" -#endif - -#ifdef USE_A4 -#define DEFAULT_PAPERWIDTH 595 -#define DEFAULT_PAPERHEIGHT 842 -#define DEFAULT_PAPERFORMAT "a4" -#else -#define DEFAULT_PAPERWIDTH 612 -#define DEFAULT_PAPERHEIGHT 792 -#define DEFAULT_PAPERFORMAT "letter" -#endif - -#ifdef DUMB_TTY -#define DEFAULT_PROGRESS_BAR progress_bar_simplified -#else -#define DEFAULT_PROGRESS_BAR progress_bar_vt100 -#endif - - - -struct backend_s; - -/* structure to hold command line options */ -struct info_s { - struct backend_s *backend; /* type of backend (eps,ps,pgm etc) */ - potrace_param_t *param; /* tracing parameters, see potracelib.h */ - int debug; /* type of output (0-2) (for BACKEND_PS/EPS only) */ - dim_t width_d; /* desired width of image */ - dim_t height_d; /* desired height of image */ - double rx; /* desired x resolution (in dpi) */ - double ry; /* desired y resolution (in dpi) */ - double sx; /* desired x scaling factor */ - double sy; /* desired y scaling factor */ - double stretch; /* ry/rx, if not otherwise determined */ - dim_t lmar_d, rmar_d, tmar_d, bmar_d; /* margins */ - double angle; /* rotate by this many degrees */ - int paperwidth, paperheight; /* paper size for ps backend (in pt) */ - int tight; /* should bounding box follow actual vector outline? */ - double unit; /* granularity of output grid */ - int compress; /* apply compression? */ - int pslevel; /* postscript level to use: affects only compression */ - int color; /* rgb color code 0xrrggbb: line color */ - int fillcolor; /* rgb color code 0xrrggbb: fill color */ - double gamma; /* gamma value for pgm backend */ - int longcoding; /* do not optimize for file size? */ - char *outfile; /* output filename, if given */ - char **infiles; /* array of input filenames */ - int infilecount; /* number of input filenames */ - int some_infiles; /* do we process a list of input filenames? */ - double blacklevel; /* 0 to 1: black/white cutoff in input file */ - int invert; /* invert bitmap? */ - int opaque; /* paint white shapes opaquely? */ - int grouping; /* 0=flat; 1=connected components; 2=hierarchical */ - int progress; /* should we display a progress bar? */ - progress_bar_t *progress_bar; /* which progress bar to use */ -}; -typedef struct info_s info_t; - -extern info_t info; - -/* structure to hold per-image information, set e.g. by calc_dimensions */ -struct imginfo_s { - int pixwidth; /* width of input pixmap */ - int pixheight; /* height of input pixmap */ - double width; /* desired width of image (in pt or pixels) */ - double height; /* desired height of image (in pt or pixels) */ - double lmar, rmar, tmar, bmar; /* requested margins (in pt) */ - trans_t trans; /* specify relative position of a tilted rectangle */ -}; -typedef struct imginfo_s imginfo_t; - -#endif /* MAIN_H */ diff --git a/Build/source/libs/potrace/potrace-src/src/mkbitmap.c b/Build/source/libs/potrace/potrace-src/src/mkbitmap.c deleted file mode 100644 index 4b1b1a3294d..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/mkbitmap.c +++ /dev/null @@ -1,802 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -/* mkbitmap.c: a standalone program for converting greymaps to bitmaps - while optionally applying the following enhancements: highpass - filter (evening out background gradients), lowpass filter - (smoothing foreground details), interpolated scaling, inversion. */ - -#ifndef _POSIX_C_SOURCE -#define _POSIX_C_SOURCE 200809L -#endif - -#ifndef _NETBSD_SOURCE -#define _NETBSD_SOURCE 1 -#endif - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include -#include -#include - -#include "greymap.h" -#include "bitmap_io.h" -#include "platform.h" - -#define SAFE_CALLOC(var, n, typ) \ - if ((var = (typ *)calloc(n, sizeof(typ))) == NULL) goto calloc_error - -/* structure to hold command line options */ -struct info_s { - char *outfile; /* output file */ - char **infiles; /* input files */ - int infilecount; /* how many input files? */ - int invert; /* invert input? */ - int highpass; /* use highpass filter? */ - double lambda; /* highpass filter radius */ - int lowpass; /* use lowpass filter? */ - double lambda1; /* lowpass filter radius */ - int scale; /* scaling factor */ - int linear; /* linear scaling? */ - int bilevel; /* convert to bilevel? */ - double level; /* cutoff grey level */ - const char *outext; /* default output file extension */ -}; -typedef struct info_s info_t; - -static info_t info; - -/* apply lowpass filter (an approximate Gaussian blur) to greymap. - Lambda is the standard deviation of the kernel of the filter (i.e., - the approximate filter radius). */ -static void lowpass(greymap_t *gm, double lambda) { - double f, g; - double c, d; - double B; - int x, y; - - if (gm->h == 0 || gm->w == 0) { - return; - } - - /* calculate filter coefficients from given lambda */ - B = 1+2/(lambda*lambda); - c = B-sqrt(B*B-1); - d = 1-c; - - for (y=0; yh; y++) { - /* apply low-pass filter to row y */ - /* left-to-right */ - f = g = 0; - for (x=0; xw; x++) { - f = f*c + GM_UGET(gm, x, y)*d; - g = g*c + f*d; - GM_UPUT(gm, x, y, g); - } - - /* right-to-left */ - for (x=gm->w-1; x>=0; x--) { - f = f*c + GM_UGET(gm, x, y)*d; - g = g*c + f*d; - GM_UPUT(gm, x, y, g); - } - - /* left-to-right mop-up */ - for (x=0; xw; x++) { - f = f*c; - g = g*c + f*d; - if (f+g < 1/255.0) { - break; - } - GM_UPUT(gm, x, y, GM_UGET(gm, x, y)+g); - } - } - - for (x=0; xw; x++) { - /* apply low-pass filter to column x */ - /* bottom-to-top */ - f = g = 0; - for (y=0; yh; y++) { - f = f*c + GM_UGET(gm, x, y)*d; - g = g*c + f*d; - GM_UPUT(gm, x, y, g); - } - - /* top-to-bottom */ - for (y=gm->h-1; y>=0; y--) { - f = f*c + GM_UGET(gm, x, y)*d; - g = g*c + f*d; - GM_UPUT(gm, x, y, g); - } - - /* bottom-to-top mop-up */ - for (y=0; yh; y++) { - f = f*c; - g = g*c + f*d; - if (f+g < 1/255.0) { - break; - } - GM_UPUT(gm, x, y, GM_UGET(gm, x, y)+g); - } - } -} - -/* apply highpass filter to greymap. Return 0 on success, 1 on error - with errno set. */ -static int highpass(greymap_t *gm, double lambda) { - greymap_t *gm1; - double f; - int x, y; - - if (gm->h == 0 || gm->w == 0) { - return 0; - } - - /* create a copy */ - gm1 = gm_dup(gm); - if (!gm1) { - return 1; - } - - /* apply lowpass filter to the copy */ - lowpass(gm1, lambda); - - /* subtract copy from original */ - for (y=0; yh; y++) { - for (x=0; xw; x++) { - f = GM_UGET(gm, x, y); - f -= GM_UGET(gm1, x, y); - f += 128; /* normalize! */ - GM_UPUT(gm, x, y, f); - } - } - gm_free(gm1); - return 0; -} - -/* Convert greymap to bitmap by using cutoff threshold c (0=black, - 1=white). On error, return NULL with errno set. */ -static potrace_bitmap_t *threshold(greymap_t *gm, double c) { - int w, h; - potrace_bitmap_t *bm_out = NULL; - double c1; - int x, y; - double p; - - w = gm->w; - h = gm->h; - - /* allocate output bitmap */ - bm_out = bm_new(w, h); - if (!bm_out) { - return NULL; - } - - /* thresholding */ - c1 = c * 255; - - for (y=0; yw; - h = gm->h; - - /* allocate output bitmap/greymap */ - if (bilevel) { - bm_out = bm_new(w*s, h*s); - if (!bm_out) { - return NULL; - } - c1 = c * 255; - } else { - gm_out = gm_new(w*s, h*s); - if (!gm_out) { - return NULL; - } - } - - /* interpolate */ - for (i=0; i= c1 && p01 >= c1 && p10 >= c1 && p11 >= c1) { - continue; - } - } - - /* the general case */ - for (x=0; xw; - h = gm->h; - - /* allocate output bitmap/greymap */ - if (bilevel) { - bm_out = bm_new(w*s, h*s); - if (!bm_out) { - goto calloc_error; - } - c1 = c * 255; - } else { - gm_out = gm_new(w*s, h*s); - if (!gm_out) { - goto calloc_error; - } - } - - /* pre-calculate interpolation polynomials */ - for (k=0; k=w) { - break; - } - for (i=0; i<3; i++) { - for (k=0; k0) { /* end of file */ - return; - } - fprintf(stderr, "" MKBITMAP ": %s: empty file\n", infile); - exit(2); - case -4: /* wrong magic */ - if (count>0) { - fprintf(stderr, "" MKBITMAP ": %s: warning: junk at end of file\n", infile); - return; - } - fprintf(stderr, "" MKBITMAP ": %s: file format not recognized\n", infile); - fprintf(stderr, "Possible input file formats are: pnm (pbm, pgm, ppm), bmp.\n"); - exit(2); - case 1: /* unexpected end of file */ - fprintf(stderr, "" MKBITMAP ": %s: warning: premature end of file\n", infile); - break; - } - - if (info.invert) { - for (y=0; yh; y++) { - for (x=0; xw; x++) { - GM_UPUT(gm, x, y, 255-GM_UGET(gm, x, y)); - } - } - } - - if (info.highpass) { - r = highpass(gm, info.lambda); - if (r) { - fprintf(stderr, "" MKBITMAP ": %s: %s\n", infile, strerror(errno)); - exit(2); - } - } - - if (info.lowpass) { - lowpass(gm, info.lambda1); - } - - if (info.scale == 1 && info.bilevel) { /* no interpolation necessary */ - sm = threshold(gm, info.level); - gm_free(gm); - } else if (info.scale == 1) { - sm = gm; - } else if (info.linear) { /* linear interpolation */ - sm = interpolate_linear(gm, info.scale, info.bilevel, info.level); - gm_free(gm); - } else { /* cubic interpolation */ - sm = interpolate_cubic(gm, info.scale, info.bilevel, info.level); - gm_free(gm); - } - if (!sm) { - fprintf(stderr, "" MKBITMAP ": %s: %s\n", infile, strerror(errno)); - exit(2); - } - - if (info.bilevel) { - bm = (potrace_bitmap_t *)sm; - bm_writepbm(fout, bm); - bm_free(bm); - } else { - gm = (greymap_t *)sm; - gm_writepgm(fout, gm, NULL, 1, GM_MODE_POSITIVE, 1.0); - gm_free(gm); - } - } -} - -/* ---------------------------------------------------------------------- */ -/* some info functions and option processing */ - -static int license(FILE *f) { - fprintf(f, - "This program is free software; you can redistribute it and/or modify\n" - "it under the terms of the GNU General Public License as published by\n" - "the Free Software Foundation; either version 2 of the License, or\n" - "(at your option) any later version.\n" - "\n" - "This program is distributed in the hope that it will be useful,\n" - "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" - "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" - "GNU General Public License for more details.\n" - "\n" - "You should have received a copy of the GNU General Public License\n" - "along with this program; if not, write to the Free Software Foundation\n" - "Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" - ); - return 0; -} - -static int usage(FILE *f) { - fprintf(f, "Usage: " MKBITMAP " [options] [file...]\n"); - fprintf(f, "Options:\n"); - fprintf(f, " -h, --help - print this help message and exit\n"); - fprintf(f, " -v, --version - print version info and exit\n"); - fprintf(f, " -l, --license - print license info and exit\n"); - fprintf(f, " -o, --output - output to file\n"); - fprintf(f, " -x, --nodefaults - turn off default options\n"); - fprintf(f, "Inversion:\n"); - fprintf(f, " -i, --invert - invert the input (undo 'blackboard' effect)\n"); - fprintf(f, "Highpass filtering:\n"); - fprintf(f, " -f, --filter - apply highpass filter with radius n (default 4)\n"); - fprintf(f, " -n, --nofilter - no highpass filtering\n"); - fprintf(f, " -b, --blur - apply lowpass filter with radius n (default: none)\n"); - fprintf(f, "Scaling:\n"); - fprintf(f, " -s, --scale - scale by integer factor n (default 2)\n"); - fprintf(f, " -1, --linear - use linear interpolation\n"); - fprintf(f, " -3, --cubic - use cubic interpolation (default)\n"); - fprintf(f, "Thresholding:\n"); - fprintf(f, " -t, --threshold - set threshold for bilevel conversion (default 0.45)\n"); - fprintf(f, " -g, --grey - no bilevel conversion, output a greymap\n"); - - fprintf(f, "\n"); - fprintf(f, "Possible input file formats are: pnm (pbm, pgm, ppm), bmp.\n"); - fprintf(f, "The default options are: -f 4 -s 2 -3 -t 0.45\n"); - - return 0; -} - -static struct option longopts[] = { - {"help", 0, 0, 'h'}, - {"version", 0, 0, 'v'}, - {"license", 0, 0, 'l'}, - {"output", 1, 0, 'o'}, - {"reset", 0, 0, 'x'}, - {"invert", 0, 0, 'i'}, - {"filter", 1, 0, 'f'}, - {"nofilter", 0, 0, 'n'}, - {"blur", 1, 0, 'b'}, - {"scale", 1, 0, 's'}, - {"linear", 0, 0, '1'}, - {"cubic", 0, 0, '3'}, - {"grey", 0, 0, 'g'}, - {"threshold", 1, 0, 't'}, - {0, 0, 0, 0} -}; - -static const char *shortopts = "hvlo:xif:nb:s:13gt:"; - -/* process options. On error, print error message to stderr and exit - with code 1 */ -static void dopts(int ac, char *av[]) { - int c; - char *p; - - /* set defaults for command line parameters */ - info.outfile = NULL; /* output file */ - info.infiles = NULL; /* input files */ - info.infilecount = 0; /* how many input files? */ - info.invert = 0; /* invert input? */ - info.highpass = 1; /* use highpass filter? */ - info.lambda = 4; /* highpass filter radius */ - info.lowpass = 0; /* use lowpass filter? */ - info.lambda1 = 0; /* lowpass filter radius */ - info.scale = 2; /* scaling factor */ - info.linear = 0; /* linear scaling? */ - info.bilevel = 1; /* convert to bilevel? */ - info.level = 0.45; /* cutoff grey level */ - info.outext = ".pbm"; /* output file extension */ - - while ((c = getopt_long(ac, av, shortopts, longopts, NULL)) != -1) { - switch (c) { - case 'h': - fprintf(stdout, "" MKBITMAP " " VERSION ". Transforms images into bitmaps with scaling and filtering.\n\n"); - usage(stdout); - exit(0); - break; - case 'v': - fprintf(stdout, "" MKBITMAP " " VERSION ". Copyright (C) 2001-2017 Peter Selinger.\n"); - exit(0); - break; - case 'l': - fprintf(stdout, "" MKBITMAP " " VERSION ". Copyright (C) 2001-2017 Peter Selinger.\n\n"); - license(stdout); - exit(0); - break; - case 'o': - free(info.outfile); - info.outfile = strdup(optarg); - if (!info.outfile) { - fprintf(stderr, "" MKBITMAP ": %s\n", strerror(errno)); - exit(2); - } - break; - case 'x': - info.invert = 0; - info.highpass = 0; - info.scale = 1; - info.bilevel = 0; - info.outext = ".pgm"; - break; - case 'i': - info.invert = 1; - break; - case 'f': - info.highpass = 1; - info.lambda = strtod(optarg, &p); - if (*p || info.lambda<0) { - fprintf(stderr, "" MKBITMAP ": invalid filter radius -- %s\n", optarg); - exit(1); - } - break; - case 'n': - info.highpass = 0; - break; - case 'b': - info.lowpass = 1; - info.lambda1 = strtod(optarg, &p); - if (*p || info.lambda1<0) { - fprintf(stderr, "" MKBITMAP ": invalid filter radius -- %s\n", optarg); - exit(1); - } - break; - case 's': - info.scale = strtol(optarg, &p, 0); - if (*p || info.scale<=0) { - fprintf(stderr, "" MKBITMAP ": invalid scaling factor -- %s\n", optarg); - exit(1); - } - break; - case '1': - info.linear = 1; - break; - case '3': - info.linear = 0; - break; - case 'g': - info.bilevel = 0; - info.outext = ".pgm"; - break; - case 't': - info.bilevel = 1; - info.outext = ".pbm"; - info.level = strtod(optarg, &p); - if (*p || info.level<0) { - fprintf(stderr, "" MKBITMAP ": invalid threshold -- %s\n", optarg); - exit(1); - } - break; - case '?': - fprintf(stderr, "Try --help for more info\n"); - exit(1); - break; - default: - fprintf(stderr, "" MKBITMAP ": Unimplemented option -- %c\n", c); - exit(1); - } - } - info.infiles = &av[optind]; - info.infilecount = ac-optind; - return; -} - -/* ---------------------------------------------------------------------- */ -/* auxiliary functions for file handling */ - -/* open a file for reading. Return stdin if filename is NULL or "-" */ -static FILE *my_fopen_read(const char *filename) { - if (filename == NULL || strcmp(filename, "-") == 0) { - return stdin; - } - return fopen(filename, "rb"); -} - -/* open a file for writing. Return stdout if filename is NULL or "-" */ -static FILE *my_fopen_write(const char *filename) { - if (filename == NULL || strcmp(filename, "-") == 0) { - return stdout; - } - return fopen(filename, "wb"); -} - -/* close a file, but do nothing is filename is NULL or "-" */ -static void my_fclose(FILE *f, const char *filename) { - if (filename == NULL || strcmp(filename, "-") == 0) { - return; - } - fclose(f); -} - -/* make output filename from input filename. Return an allocated value. */ -static char *make_outfilename(const char *infile, const char *ext) { - char *outfile; - char *p; - - if (strcmp(infile, "-") == 0) { - return strdup("-"); - } - - outfile = (char *) malloc(strlen(infile)+strlen(ext)+5); - if (!outfile) { - return NULL; - } - strcpy(outfile, infile); - p = strrchr(outfile, '.'); - if (p) { - *p = 0; - } - strcat(outfile, ext); - - /* check that input and output filenames are different */ - if (strcmp(infile, outfile) == 0) { - strcpy(outfile, infile); - strcat(outfile, "-out"); - } - - return outfile; -} - -/* ---------------------------------------------------------------------- */ -/* Main function */ - -int main(int ac, char *av[]) { - FILE *fin, *fout; - int i; - char *outfile; - - /* platform-specific initializations, e.g., set file i/o to binary */ - platform_init(); - - /* process options */ - dopts(ac, av); - - /* there are several ways to call us: - mkbitmap -- stdin to stdout - mkbitmap -o outfile -- stdin to outfile - mkbitmap file... -- encode each file and generate outfile names - mkbitmap file... -o outfile -- concatenate files and write to outfile - */ - - if (info.infilecount == 0 && info.outfile == NULL) { /* stdin to stdout */ - - process_file(stdin, stdout, "stdin", "stdout"); - return 0; - - } else if (info.infilecount == 0) { /* stdin to outfile */ - - fout = my_fopen_write(info.outfile); - if (!fout) { - fprintf(stderr, "" MKBITMAP ": %s: %s\n", info.outfile, strerror(errno)); - exit(2); - } - process_file(stdin, fout, "stdin", info.outfile); - my_fclose(fout, info.outfile); - free(info.outfile); - return 0; - - } else if (info.outfile == NULL) { /* infiles -> multiple outfiles */ - - for (i=0; i -#endif - -/* in Windows, set all file i/o to binary */ -#ifdef __MINGW32__ -#include -unsigned int _CRT_fmode = _O_BINARY; -static inline void platform_init(void) { - _setmode(_fileno(stdin), _O_BINARY); - _setmode(_fileno(stdout), _O_BINARY); -} -#else - -#ifdef __CYGWIN__ -#include -#include -static inline void platform_init(void) { - setmode(0,O_BINARY); - setmode(1,O_BINARY); -} -#else -static inline void platform_init(void) { - /* NOP */ -} -#endif -#endif - -#endif /* PLATFORM_H */ diff --git a/Build/source/libs/potrace/potrace-src/src/potracelib.c b/Build/source/libs/potrace/potrace-src/src/potracelib.c deleted file mode 100644 index 7dc9fe940ab..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/potracelib.c +++ /dev/null @@ -1,114 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include - -#include "potracelib.h" -#include "curve.h" -#include "decompose.h" -#include "trace.h" -#include "progress.h" - -/* default parameters */ -static const potrace_param_t param_default = { - 2, /* turdsize */ - POTRACE_TURNPOLICY_MINORITY, /* turnpolicy */ - 1.0, /* alphamax */ - 1, /* opticurve */ - 0.2, /* opttolerance */ - { - NULL, /* callback function */ - NULL, /* callback data */ - 0.0, 1.0, /* progress range */ - 0.0, /* granularity */ - }, -}; - -/* Return a fresh copy of the set of default parameters, or NULL on - failure with errno set. */ -potrace_param_t *potrace_param_default(void) { - potrace_param_t *p; - - p = (potrace_param_t *) malloc(sizeof(potrace_param_t)); - if (!p) { - return NULL; - } - memcpy(p, ¶m_default, sizeof(potrace_param_t)); - return p; -} - -/* On success, returns a Potrace state st with st->status == - POTRACE_STATUS_OK. On failure, returns NULL if no Potrace state - could be created (with errno set), or returns an incomplete Potrace - state (with st->status == POTRACE_STATUS_INCOMPLETE, and with errno - set). Complete or incomplete Potrace state can be freed with - potrace_state_free(). */ -potrace_state_t *potrace_trace(const potrace_param_t *param, const potrace_bitmap_t *bm) { - int r; - path_t *plist = NULL; - potrace_state_t *st; - progress_t prog; - progress_t subprog; - - /* prepare private progress bar state */ - prog.callback = param->progress.callback; - prog.data = param->progress.data; - prog.min = param->progress.min; - prog.max = param->progress.max; - prog.epsilon = param->progress.epsilon; - prog.d_prev = param->progress.min; - - /* allocate state object */ - st = (potrace_state_t *)malloc(sizeof(potrace_state_t)); - if (!st) { - return NULL; - } - - progress_subrange_start(0.0, 0.1, &prog, &subprog); - - /* process the image */ - r = bm_to_pathlist(bm, &plist, param, &subprog); - if (r) { - free(st); - return NULL; - } - - st->status = POTRACE_STATUS_OK; - st->plist = plist; - st->priv = NULL; /* private state currently unused */ - - progress_subrange_end(&prog, &subprog); - - progress_subrange_start(0.1, 1.0, &prog, &subprog); - - /* partial success. */ - r = process_path(plist, param, &subprog); - if (r) { - st->status = POTRACE_STATUS_INCOMPLETE; - } - - progress_subrange_end(&prog, &subprog); - - return st; -} - -/* free a Potrace state, without disturbing errno. */ -void potrace_state_free(potrace_state_t *st) { - pathlist_free(st->plist); - free(st); -} - -/* free a parameter list, without disturbing errno. */ -void potrace_param_free(potrace_param_t *p) { - free(p); -} - -const char *potrace_version(void) { - return "potracelib " VERSION ""; -} diff --git a/Build/source/libs/potrace/potrace-src/src/potracelib.h b/Build/source/libs/potrace/potrace-src/src/potracelib.h deleted file mode 100644 index 003297740af..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/potracelib.h +++ /dev/null @@ -1,139 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -#ifndef POTRACELIB_H -#define POTRACELIB_H - -/* this file defines the API for the core Potrace library. For a more - detailed description of the API, see potracelib.pdf */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* ---------------------------------------------------------------------- */ -/* tracing parameters */ - -/* turn policies */ -#define POTRACE_TURNPOLICY_BLACK 0 -#define POTRACE_TURNPOLICY_WHITE 1 -#define POTRACE_TURNPOLICY_LEFT 2 -#define POTRACE_TURNPOLICY_RIGHT 3 -#define POTRACE_TURNPOLICY_MINORITY 4 -#define POTRACE_TURNPOLICY_MAJORITY 5 -#define POTRACE_TURNPOLICY_RANDOM 6 - -/* structure to hold progress bar callback data */ -struct potrace_progress_s { - void (*callback)(double progress, void *privdata); /* callback fn */ - void *data; /* callback function's private data */ - double min, max; /* desired range of progress, e.g. 0.0 to 1.0 */ - double epsilon; /* granularity: can skip smaller increments */ -}; -typedef struct potrace_progress_s potrace_progress_t; - -/* structure to hold tracing parameters */ -struct potrace_param_s { - int turdsize; /* area of largest path to be ignored */ - int turnpolicy; /* resolves ambiguous turns in path decomposition */ - double alphamax; /* corner threshold */ - int opticurve; /* use curve optimization? */ - double opttolerance; /* curve optimization tolerance */ - potrace_progress_t progress; /* progress callback function */ -}; -typedef struct potrace_param_s potrace_param_t; - -/* ---------------------------------------------------------------------- */ -/* bitmaps */ - -/* native word size */ -typedef unsigned long potrace_word; - -/* Internal bitmap format. The n-th scanline starts at scanline(n) = - (map + n*dy). Raster data is stored as a sequence of potrace_words - (NOT bytes). The leftmost bit of scanline n is the most significant - bit of scanline(n)[0]. */ -struct potrace_bitmap_s { - int w, h; /* width and height, in pixels */ - int dy; /* words per scanline (not bytes) */ - potrace_word *map; /* raw data, dy*h words */ -}; -typedef struct potrace_bitmap_s potrace_bitmap_t; - -/* ---------------------------------------------------------------------- */ -/* curves */ - -/* point */ -struct potrace_dpoint_s { - double x, y; -}; -typedef struct potrace_dpoint_s potrace_dpoint_t; - -/* segment tags */ -#define POTRACE_CURVETO 1 -#define POTRACE_CORNER 2 - -/* closed curve segment */ -struct potrace_curve_s { - int n; /* number of segments */ - int *tag; /* tag[n]: POTRACE_CURVETO or POTRACE_CORNER */ - potrace_dpoint_t (*c)[3]; /* c[n][3]: control points. - c[n][0] is unused for tag[n]=POTRACE_CORNER */ -}; -typedef struct potrace_curve_s potrace_curve_t; - -/* Linked list of signed curve segments. Also carries a tree structure. */ -struct potrace_path_s { - int area; /* area of the bitmap path */ - int sign; /* '+' or '-', depending on orientation */ - potrace_curve_t curve; /* this path's vector data */ - - struct potrace_path_s *next; /* linked list structure */ - - struct potrace_path_s *childlist; /* tree structure */ - struct potrace_path_s *sibling; /* tree structure */ - - struct potrace_privpath_s *priv; /* private state */ -}; -typedef struct potrace_path_s potrace_path_t; - -/* ---------------------------------------------------------------------- */ -/* Potrace state */ - -#define POTRACE_STATUS_OK 0 -#define POTRACE_STATUS_INCOMPLETE 1 - -struct potrace_state_s { - int status; - potrace_path_t *plist; /* vector data */ - - struct potrace_privstate_s *priv; /* private state */ -}; -typedef struct potrace_state_s potrace_state_t; - -/* ---------------------------------------------------------------------- */ -/* API functions */ - -/* get default parameters */ -potrace_param_t *potrace_param_default(void); - -/* free parameter set */ -void potrace_param_free(potrace_param_t *p); - -/* trace a bitmap */ -potrace_state_t *potrace_trace(const potrace_param_t *param, - const potrace_bitmap_t *bm); - -/* free a Potrace state */ -void potrace_state_free(potrace_state_t *st); - -/* return a static plain text version string identifying this version - of potracelib */ -const char *potrace_version(void); - -#ifdef __cplusplus -} /* end of extern "C" */ -#endif - -#endif /* POTRACELIB_H */ diff --git a/Build/source/libs/potrace/potrace-src/src/potracelib_demo.c b/Build/source/libs/potrace/potrace-src/src/potracelib_demo.c deleted file mode 100644 index 49fe075e8ad..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/potracelib_demo.c +++ /dev/null @@ -1,148 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -/* A simple and self-contained demo of the potracelib API */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include - -#include "potracelib.h" - -#define WIDTH 250 -#define HEIGHT 250 - -/* ---------------------------------------------------------------------- */ -/* auxiliary bitmap functions */ - -/* macros for writing individual bitmap pixels */ -#define BM_WORDSIZE ((int)sizeof(potrace_word)) -#define BM_WORDBITS (8*BM_WORDSIZE) -#define BM_HIBIT (((potrace_word)1)<<(BM_WORDBITS-1)) -#define bm_scanline(bm, y) ((bm)->map + (y)*(bm)->dy) -#define bm_index(bm, x, y) (&bm_scanline(bm, y)[(x)/BM_WORDBITS]) -#define bm_mask(x) (BM_HIBIT >> ((x) & (BM_WORDBITS-1))) -#define bm_range(x, a) ((int)(x) >= 0 && (int)(x) < (a)) -#define bm_safe(bm, x, y) (bm_range(x, (bm)->w) && bm_range(y, (bm)->h)) -#define BM_USET(bm, x, y) (*bm_index(bm, x, y) |= bm_mask(x)) -#define BM_UCLR(bm, x, y) (*bm_index(bm, x, y) &= ~bm_mask(x)) -#define BM_UPUT(bm, x, y, b) ((b) ? BM_USET(bm, x, y) : BM_UCLR(bm, x, y)) -#define BM_PUT(bm, x, y, b) (bm_safe(bm, x, y) ? BM_UPUT(bm, x, y, b) : 0) - -/* return new un-initialized bitmap. NULL with errno on error */ -static potrace_bitmap_t *bm_new(int w, int h) { - potrace_bitmap_t *bm; - int dy = (w + BM_WORDBITS - 1) / BM_WORDBITS; - - bm = (potrace_bitmap_t *) malloc(sizeof(potrace_bitmap_t)); - if (!bm) { - return NULL; - } - bm->w = w; - bm->h = h; - bm->dy = dy; - bm->map = (potrace_word *) calloc(h, dy * BM_WORDSIZE); - if (!bm->map) { - free(bm); - return NULL; - } - return bm; -} - -/* free a bitmap */ -static void bm_free(potrace_bitmap_t *bm) { - if (bm != NULL) { - free(bm->map); - } - free(bm); -} - -/* ---------------------------------------------------------------------- */ -/* demo */ - -int main() { - int x, y, i; - potrace_bitmap_t *bm; - potrace_param_t *param; - potrace_path_t *p; - potrace_state_t *st; - int n, *tag; - potrace_dpoint_t (*c)[3]; - - /* create a bitmap */ - bm = bm_new(WIDTH, HEIGHT); - if (!bm) { - fprintf(stderr, "Error allocating bitmap: %s\n", strerror(errno)); - return 1; - } - - /* fill the bitmap with some pattern */ - for (y=0; yturdsize = 0; - - /* trace the bitmap */ - st = potrace_trace(param, bm); - if (!st || st->status != POTRACE_STATUS_OK) { - fprintf(stderr, "Error tracing bitmap: %s\n", strerror(errno)); - return 1; - } - bm_free(bm); - - /* output vector data, e.g. as a rudimentary EPS file */ - printf("%%!PS-Adobe-3.0 EPSF-3.0\n"); - printf("%%%%BoundingBox: 0 0 %d %d\n", WIDTH, HEIGHT); - printf("gsave\n"); - - /* draw each curve */ - p = st->plist; - while (p != NULL) { - n = p->curve.n; - tag = p->curve.tag; - c = p->curve.c; - printf("%f %f moveto\n", c[n-1][2].x, c[n-1][2].y); - for (i=0; inext == NULL || p->next->sign == '+') { - printf("0 setgray fill\n"); - } - p = p->next; - } - printf("grestore\n"); - printf("%%EOF\n"); - - potrace_state_free(st); - potrace_param_free(param); - - return 0; -} diff --git a/Build/source/libs/potrace/potrace-src/src/progress.h b/Build/source/libs/potrace/potrace-src/src/progress.h deleted file mode 100644 index cdd637694c1..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/progress.h +++ /dev/null @@ -1,79 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -/* operations on potrace_progress_t objects, which are defined in - potracelib.h. Note: the code attempts to minimize runtime overhead - when no progress monitoring was requested. It also tries to - minimize excessive progress calculations beneath the "epsilon" - threshold. */ - -#ifndef PROGRESS_H -#define PROGRESS_H - -/* structure to hold progress bar callback data */ -struct progress_s { - void (*callback)(double progress, void *privdata); /* callback fn */ - void *data; /* callback function's private data */ - double min, max; /* desired range of progress, e.g. 0.0 to 1.0 */ - double epsilon; /* granularity: can skip smaller increments */ - double b; /* upper limit of subrange in superrange units */ - double d_prev; /* previous value of d */ -}; -typedef struct progress_s progress_t; - -/* notify given progress object of current progress. Note that d is - given in the 0.0-1.0 range, which will be scaled and translated to - the progress object's range. */ -static inline void progress_update(double d, progress_t *prog) { - double d_scaled; - - if (prog != NULL && prog->callback != NULL) { - d_scaled = prog->min * (1-d) + prog->max * d; - if (d == 1.0 || d_scaled >= prog->d_prev + prog->epsilon) { - prog->callback(prog->min * (1-d) + prog->max * d, prog->data); - prog->d_prev = d_scaled; - } - } -} - -/* start a subrange of the given progress object. The range is - narrowed to [a..b], relative to 0.0-1.0 coordinates. If new range - is below granularity threshold, disable further subdivisions. */ -static inline void progress_subrange_start(double a, double b, const progress_t *prog, progress_t *sub) { - double min, max; - - if (prog == NULL || prog->callback == NULL) { - sub->callback = NULL; - return; - } - - min = prog->min * (1-a) + prog->max * a; - max = prog->min * (1-b) + prog->max * b; - - if (max - min < prog->epsilon) { - sub->callback = NULL; /* no further progress info in subrange */ - sub->b = b; - return; - } - sub->callback = prog->callback; - sub->data = prog->data; - sub->epsilon = prog->epsilon; - sub->min = min; - sub->max = max; - sub->d_prev = prog->d_prev; - return; -} - -static inline void progress_subrange_end(progress_t *prog, progress_t *sub) { - if (prog != NULL && prog->callback != NULL) { - if (sub->callback == NULL) { - progress_update(sub->b, prog); - } else { - prog->d_prev = sub->d_prev; - } - } -} - -#endif /* PROGRESS_H */ - diff --git a/Build/source/libs/potrace/potrace-src/src/progress_bar.c b/Build/source/libs/potrace/potrace-src/src/progress_bar.c deleted file mode 100644 index 091269487a4..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/progress_bar.c +++ /dev/null @@ -1,207 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -/* functions to render a progress bar for main.c. We provide a - standard and a simplified progress bar. */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include - -#include "potracelib.h" -#include "progress_bar.h" - -/* ---------------------------------------------------------------------- */ -/* vt100 progress bar */ - -#define COL0 "\033[G" /* reset cursor to column 0 */ - -struct vt100_progress_s { - char name[22]; /* filename for status bar */ - double dnext; /* threshold value for next tick */ -}; -typedef struct vt100_progress_s vt100_progress_t; - -/* print a progress bar using vt100 control characters. This is a - callback function that is potentially called often; thus, it has - been optimized for the typical case, which is when the progress bar - does not need updating. */ -static void vt100_progress(double d, void *data) { - vt100_progress_t *p = (vt100_progress_t *)data; - static char b[] = "========================================"; - int tick; /* number of visible tickmarks, 0..40 */ - int perc; /* visible percentage, 0..100 */ - - /* note: the 0.01 and 0.025 ensure that we always end on 40 - tickmarks and 100%, despite any rounding errors. The 0.995 - ensures that tick always increases when d >= p->dnext. */ - if (d >= p->dnext) { - tick = (int) floor(d*40+0.01); - perc = (int) floor(d*100+0.025); - fprintf(stderr, "%-21s |%-40s| %d%% " COL0 "", p->name, b+40-tick, perc); - fflush(stderr); - p->dnext = (tick+0.995) / 40.0; - } -} - -/* Initialize progress bar. Return 0 on success or 1 on failure with - errno set. */ -static int init_vt100_progress(potrace_progress_t *prog, const char *filename, int count) { - vt100_progress_t *p; - const char *q, *s; - int len; - - p = (vt100_progress_t *) malloc(sizeof(vt100_progress_t)); - if (!p) { - return 1; - } - - /* initialize callback function's data */ - p->dnext = 0; - - if (count != 0) { - sprintf(p->name, " (p.%d):", count+1); - } else { - s = filename; - if ((q = strrchr(s, '/')) != NULL) { - s = q+1; - } - len = strlen(s); - strncpy(p->name, s, 21); - p->name[20] = 0; - if (len > 20) { - p->name[17] = '.'; - p->name[18] = '.'; - p->name[19] = '.'; - } - strcat(p->name, ":"); - } - - /* initialize progress parameters */ - prog->callback = &vt100_progress; - prog->data = (void *)p; - prog->min = 0.0; - prog->max = 1.0; - prog->epsilon = 0.0; - - /* draw first progress bar */ - vt100_progress(0.0, prog->data); - return 0; -} - -/* Finalize the progress bar. */ -static void term_vt100_progress(potrace_progress_t *prog) { - fprintf(stderr, "\n"); - fflush(stderr); - free(prog->data); - return; -} - -/* progress bar interface structure */ -static progress_bar_t progress_bar_vt100_struct = { - init_vt100_progress, - term_vt100_progress, -}; -progress_bar_t *progress_bar_vt100 = &progress_bar_vt100_struct; - -/* ---------------------------------------------------------------------- */ -/* another progress bar for dumb terminals */ - -struct simplified_progress_s { - int n; /* number of ticks displayed so far */ - double dnext; /* threshold value for next tick */ -}; -typedef struct simplified_progress_s simplified_progress_t; - -/* print a simplified progress bar, not using any special tty control - codes. Optimized for frequent calling. */ -static void simplified_progress(double d, void *data) { - simplified_progress_t *p = (simplified_progress_t *)data; - int tick; /* number of visible tickmarks, 0..40 */ - - /* note: the 0.01 and 0.025 ensure that we always end on 40 - tickmarks and 100%, despite any rounding errors. The 0.995 - ensures that tick always increases when d >= p->dnext. */ - if (d >= p->dnext) { - tick = (int) floor(d*40+0.01); - while (p->n < tick) { - fputc('=', stderr); - p->n++; - } - fflush(stderr); - p->dnext = (tick+0.995) / 40.0; - } -} - -/* Initialize parameters for simplified progress bar. Return 0 on - success or 1 on error with errno set. */ -static int init_simplified_progress(potrace_progress_t *prog, const char *filename, int count) { - simplified_progress_t *p; - const char *q, *s; - int len; - char buf[22]; - - p = (simplified_progress_t *) malloc(sizeof(simplified_progress_t)); - if (!p) { - return 1; - } - - /* initialize callback function's data */ - p->n = 0; - p->dnext = 0; - - if (count != 0) { - sprintf(buf, " (p.%d):", count+1); - } else { - s = filename; - if ((q = strrchr(s, '/')) != NULL) { - s = q+1; - } - len = strlen(s); - strncpy(buf, s, 21); - buf[20] = 0; - if (len > 20) { - buf[17] = '.'; - buf[18] = '.'; - buf[19] = '.'; - } - strcat(buf, ":"); - } - - fprintf(stderr, "%-21s |", buf); - - /* initialize progress parameters */ - prog->callback = &simplified_progress; - prog->data = (void *)p; - prog->min = 0.0; - prog->max = 1.0; - prog->epsilon = 0.0; - - /* draw first progress bar */ - simplified_progress(0.0, prog->data); - return 0; -} - -static void term_simplified_progress(potrace_progress_t *prog) { - simplified_progress_t *p = (simplified_progress_t *)prog->data; - - simplified_progress(1.0, (void *)p); - fprintf(stderr, "| 100%%\n"); - fflush(stderr); - free(p); - return; -} - -/* progress bar interface structure */ -static progress_bar_t progress_bar_simplified_struct = { - init_simplified_progress, - term_simplified_progress, -}; -progress_bar_t *progress_bar_simplified = &progress_bar_simplified_struct; - diff --git a/Build/source/libs/potrace/potrace-src/src/progress_bar.h b/Build/source/libs/potrace/potrace-src/src/progress_bar.h deleted file mode 100644 index e34a578339c..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/progress_bar.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -/* functions to render a progress bar for main.c. We provide a - standard and a simplified progress bar. */ - -#ifndef PROGRESS_BAR_H -#define PROGRESS_BAR_H - -#include "potracelib.h" - -/* structure to hold a progress bar interface */ -struct progress_bar_s { - int (*init)(potrace_progress_t *prog, const char *filename, int count); - void (*term)(potrace_progress_t *prog); -}; -typedef struct progress_bar_s progress_bar_t; - -extern progress_bar_t *progress_bar_vt100; -extern progress_bar_t *progress_bar_simplified; - - - -#endif /* PROGRESS_BAR_H */ - diff --git a/Build/source/libs/potrace/potrace-src/src/render.c b/Build/source/libs/potrace/potrace-src/src/render.c deleted file mode 100644 index ff66b0f4f56..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/render.c +++ /dev/null @@ -1,245 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include - -#include "render.h" -#include "greymap.h" -#include "auxiliary.h" - -/* ---------------------------------------------------------------------- */ -/* routines for anti-aliased rendering of curves */ - -/* we use the following method. Given a point (x,y) (with real-valued - coordinates) in the plane, let (xi,yi) be the integer part of the - coordinates, i.e., xi=floor(x), yi=floor(y). Define a path from - (x,y) to infinity as follows: path(x,y) = - (x,y)--(xi+1,y)--(xi+1,yi)--(+infty,yi). Now as the point (x,y) - moves smoothly across the plane, the path path(x,y) sweeps - (non-smoothly) across a certain area. We proportionately blacken - the area as the path moves "downward", and we whiten the area as - the path moves "upward". This way, after the point has traversed a - closed curve, the interior of the curve has been darkened - (counterclockwise movement) or lightened (clockwise movement). (The - "grey shift" is actually proportional to the winding number). By - choosing the above path with mostly integer coordinates, we achieve - that only pixels close to (x,y) receive grey values and are subject - to round-off errors. The grey value of pixels far away from (x,y) - is always in "integer" (where 0=black, 1=white). As a special - trick, we keep an accumulator rm->a1, which holds a double value to - be added to the grey value to be added to the current pixel - (xi,yi). Only when changing "current" pixels, we convert this - double value to an integer. This way we avoid round-off errors at - the meeting points of line segments. Another speedup measure is - that we sometimes use the rm->incrow_buf array to postpone - incrementing or decrementing an entire row. If incrow_buf[y]=x+1!=0, - then all the pixels (x,y),(x+1,y),(x+2,y),... are scheduled to be - incremented/decremented (which one is the case will be clear from - context). This keeps the greymap operations reasonably local. */ - -/* allocate a new rendering state */ -render_t *render_new(greymap_t *gm) { - render_t *rm; - - rm = (render_t *) malloc(sizeof(render_t)); - if (!rm) { - return NULL; - } - memset(rm, 0, sizeof(render_t)); - rm->gm = gm; - rm->incrow_buf = (int *) calloc(gm->h, sizeof(int)); - if (!rm->incrow_buf) { - free(rm); - return NULL; - } - return rm; -} - -/* free a given rendering state. Note: this does not free the - underlying greymap. */ -void render_free(render_t *rm) { - free(rm->incrow_buf); - free(rm); -} - -/* close path */ -void render_close(render_t *rm) { - if (rm->x0 != rm->x1 || rm->y0 != rm->y1) { - render_lineto(rm, rm->x0, rm->y0); - } - GM_INC(rm->gm, rm->x0i, rm->y0i, (rm->a0+rm->a1)*255); - - /* assert (rm->x0i != rm->x1i || rm->y0i != rm->y1i); */ - - /* the persistent state is now undefined */ -} - -/* move point */ -void render_moveto(render_t *rm, double x, double y) { - /* close the previous path */ - render_close(rm); - - rm->x0 = rm->x1 = x; - rm->y0 = rm->y1 = y; - rm->x0i = (int)floor(rm->x0); - rm->x1i = (int)floor(rm->x1); - rm->y0i = (int)floor(rm->y0); - rm->y1i = (int)floor(rm->y1); - rm->a0 = rm->a1 = 0; -} - -/* add b to pixels (x,y) and all pixels to the right of it. However, - use rm->incrow_buf as a buffer to economize on multiple calls */ -static void incrow(render_t *rm, int x, int y, int b) { - int i, x0; - - if (y < 0 || y >= rm->gm->h) { - return; - } - - if (x < 0) { - x = 0; - } else if (x > rm->gm->w) { - x = rm->gm->w; - } - if (rm->incrow_buf[y] == 0) { - rm->incrow_buf[y] = x+1; /* store x+1 so that we can use 0 for "vacant" */ - return; - } - x0 = rm->incrow_buf[y]-1; - rm->incrow_buf[y] = 0; - if (x0 < x) { - for (i=x0; igm, i, y, -b); - } - } else { - for (i=x; igm, i, y, b); - } - } -} - -/* render a straight line */ -void render_lineto(render_t *rm, double x2, double y2) { - int x2i, y2i; - double t0=2, s0=2; - int sn, tn; - double ss=2, ts=2; - double r0, r1; - int i, j; - int rxi, ryi; - int s; - - x2i = (int)floor(x2); - y2i = (int)floor(y2); - - sn = abs(x2i - rm->x1i); - tn = abs(y2i - rm->y1i); - - if (sn) { - s0 = ((x2>rm->x1 ? rm->x1i+1 : rm->x1i) - rm->x1)/(x2-rm->x1); - ss = fabs(1.0/(x2-rm->x1)); - } - if (tn) { - t0 = ((y2>rm->y1 ? rm->y1i+1 : rm->y1i) - rm->y1)/(y2-rm->y1); - ts = fabs(1.0/(y2-rm->y1)); - } - - r0 = 0; - - i = 0; - j = 0; - - rxi = rm->x1i; - ryi = rm->y1i; - - while (i=tn || (ix1,rm->y1)..(x2,y2) */ - - /* move point to r1 */ - rm->a1 += (r1-r0)*(y2-rm->y1)*(rxi+1-((r0+r1)/2.0*(x2-rm->x1)+rm->x1)); - - /* move point across pixel boundary */ - if (s && x2>rm->x1) { - GM_INC(rm->gm, rxi, ryi, rm->a1*255); - rm->a1 = 0; - rxi++; - rm->a1 += rm->y1+r1*(y2-rm->y1)-ryi; - } else if (!s && y2>rm->y1) { - GM_INC(rm->gm, rxi, ryi, rm->a1*255); - rm->a1 = 0; - incrow(rm, rxi+1, ryi, 255); - ryi++; - } else if (s && x2<=rm->x1) { - rm->a1 -= rm->y1+r1*(y2-rm->y1)-ryi; - GM_INC(rm->gm, rxi, ryi, rm->a1*255); - rm->a1 = 0; - rxi--; - } else if (!s && y2<=rm->y1) { - GM_INC(rm->gm, rxi, ryi, rm->a1*255); - rm->a1 = 0; - ryi--; - incrow(rm, rxi+1, ryi, -255); - } - - r0 = r1; - } - - /* move point to (x2,y2) */ - - r1 = 1; - rm->a1 += (r1-r0)*(y2-rm->y1)*(rxi+1-((r0+r1)/2.0*(x2-rm->x1)+rm->x1)); - - rm->x1i = x2i; - rm->y1i = y2i; - rm->x1 = x2; - rm->y1 = y2; - - /* assert (rxi != rm->x1i || ryi != rm->y1i); */ -} - -/* render a Bezier curve. */ -void render_curveto(render_t *rm, double x2, double y2, double x3, double y3, double x4, double y4) { - double x1, y1, dd0, dd1, dd, delta, e2, epsilon, t; - - x1 = rm->x1; /* starting point */ - y1 = rm->y1; - - /* we approximate the curve by small line segments. The interval - size, epsilon, is determined on the fly so that the distance - between the true curve and its approximation does not exceed the - desired accuracy delta. */ - - delta = .1; /* desired accuracy, in pixels */ - - /* let dd = maximal value of 2nd derivative over curve - this must - occur at an endpoint. */ - dd0 = sq(x1-2*x2+x3) + sq(y1-2*y2+y3); - dd1 = sq(x2-2*x3+x4) + sq(y2-2*y3+y4); - dd = 6*sqrt(max(dd0, dd1)); - e2 = 8*delta <= dd ? 8*delta/dd : 1; - epsilon = sqrt(e2); /* necessary interval size */ - - for (t=epsilon; t<1; t+=epsilon) { - render_lineto(rm, x1*cu(1-t)+3*x2*sq(1-t)*t+3*x3*(1-t)*sq(t)+x4*cu(t), - y1*cu(1-t)+3*y2*sq(1-t)*t+3*y3*(1-t)*sq(t)+y4*cu(t)); - } - render_lineto(rm, x4, y4); -} diff --git a/Build/source/libs/potrace/potrace-src/src/render.h b/Build/source/libs/potrace/potrace-src/src/render.h deleted file mode 100644 index 719fdf17068..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/render.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -#ifndef RENDER_H -#define RENDER_H - -#include "greymap.h" - -struct render_s { - greymap_t *gm; - double x0, y0, x1, y1; - int x0i, y0i, x1i, y1i; - double a0, a1; - int *incrow_buf; -}; -typedef struct render_s render_t; - -render_t *render_new(greymap_t *gm); -void render_free(render_t *rm); -void render_close(render_t *rm); -void render_moveto(render_t *rm, double x, double y); -void render_lineto(render_t *rm, double x, double y); -void render_curveto(render_t *rm, double x2, double y2, double x3, double y3, double x4, double y4); - -#endif /* RENDER_H */ diff --git a/Build/source/libs/potrace/potrace-src/src/trace.c b/Build/source/libs/potrace/potrace-src/src/trace.c deleted file mode 100644 index b0b9944ae6a..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/trace.c +++ /dev/null @@ -1,1249 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -/* transform jaggy paths into smooth curves */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include - -#include "potracelib.h" -#include "curve.h" -#include "lists.h" -#include "auxiliary.h" -#include "trace.h" -#include "progress.h" - -#define INFTY 10000000 /* it suffices that this is longer than any - path; it need not be really infinite */ -#define COS179 -0.999847695156 /* the cosine of 179 degrees */ - -/* ---------------------------------------------------------------------- */ -#define SAFE_CALLOC(var, n, typ) \ - if ((var = (typ *)calloc(n, sizeof(typ))) == NULL) goto calloc_error - -/* ---------------------------------------------------------------------- */ -/* auxiliary functions */ - -/* return a direction that is 90 degrees counterclockwise from p2-p0, - but then restricted to one of the major wind directions (n, nw, w, etc) */ -static inline point_t dorth_infty(dpoint_t p0, dpoint_t p2) { - point_t r; - - r.y = sign(p2.x-p0.x); - r.x = -sign(p2.y-p0.y); - - return r; -} - -/* return (p1-p0)x(p2-p0), the area of the parallelogram */ -static inline double dpara(dpoint_t p0, dpoint_t p1, dpoint_t p2) { - double x1, y1, x2, y2; - - x1 = p1.x-p0.x; - y1 = p1.y-p0.y; - x2 = p2.x-p0.x; - y2 = p2.y-p0.y; - - return x1*y2 - x2*y1; -} - -/* ddenom/dpara have the property that the square of radius 1 centered - at p1 intersects the line p0p2 iff |dpara(p0,p1,p2)| <= ddenom(p0,p2) */ -static inline double ddenom(dpoint_t p0, dpoint_t p2) { - point_t r = dorth_infty(p0, p2); - - return r.y*(p2.x-p0.x) - r.x*(p2.y-p0.y); -} - -/* return 1 if a <= b < c < a, in a cyclic sense (mod n) */ -static inline int cyclic(int a, int b, int c) { - if (a<=c) { - return (a<=b && blen; - sums_t *sums = pp->sums; - - double x, y, x2, xy, y2; - double k; - double a, b, c, lambda2, l; - int r=0; /* rotations from i to j */ - - while (j>=n) { - j-=n; - r+=1; - } - while (i>=n) { - i-=n; - r-=1; - } - while (j<0) { - j+=n; - r-=1; - } - while (i<0) { - i+=n; - r+=1; - } - - x = sums[j+1].x-sums[i].x+r*sums[n].x; - y = sums[j+1].y-sums[i].y+r*sums[n].y; - x2 = sums[j+1].x2-sums[i].x2+r*sums[n].x2; - xy = sums[j+1].xy-sums[i].xy+r*sums[n].xy; - y2 = sums[j+1].y2-sums[i].y2+r*sums[n].y2; - k = j+1-i+r*n; - - ctr->x = x/k; - ctr->y = y/k; - - a = (x2-(double)x*x/k)/k; - b = (xy-(double)x*y/k)/k; - c = (y2-(double)y*y/k)/k; - - lambda2 = (a+c+sqrt((a-c)*(a-c)+4*b*b))/2; /* larger e.value */ - - /* now find e.vector for lambda2 */ - a -= lambda2; - c -= lambda2; - - if (fabs(a) >= fabs(c)) { - l = sqrt(a*a+b*b); - if (l!=0) { - dir->x = -b/l; - dir->y = a/l; - } - } else { - l = sqrt(c*c+b*b); - if (l!=0) { - dir->x = -c/l; - dir->y = b/l; - } - } - if (l==0) { - dir->x = dir->y = 0; /* sometimes this can happen when k=4: - the two eigenvalues coincide */ - } -} - -/* the type of (affine) quadratic forms, represented as symmetric 3x3 - matrices. The value of the quadratic form at a vector (x,y) is v^t - Q v, where v = (x,y,1)^t. */ -typedef double quadform_t[3][3]; - -/* Apply quadratic form Q to vector w = (w.x,w.y) */ -static inline double quadform(quadform_t Q, dpoint_t w) { - double v[3]; - int i, j; - double sum; - - v[0] = w.x; - v[1] = w.y; - v[2] = 1; - sum = 0.0; - - for (i=0; i<3; i++) { - for (j=0; j<3; j++) { - sum += v[i] * Q[i][j] * v[j]; - } - } - return sum; -} - -/* calculate p1 x p2 */ -static inline int xprod(point_t p1, point_t p2) { - return p1.x*p2.y - p1.y*p2.x; -} - -/* calculate (p1-p0)x(p3-p2) */ -static inline double cprod(dpoint_t p0, dpoint_t p1, dpoint_t p2, dpoint_t p3) { - double x1, y1, x2, y2; - - x1 = p1.x - p0.x; - y1 = p1.y - p0.y; - x2 = p3.x - p2.x; - y2 = p3.y - p2.y; - - return x1*y2 - x2*y1; -} - -/* calculate (p1-p0)*(p2-p0) */ -static inline double iprod(dpoint_t p0, dpoint_t p1, dpoint_t p2) { - double x1, y1, x2, y2; - - x1 = p1.x - p0.x; - y1 = p1.y - p0.y; - x2 = p2.x - p0.x; - y2 = p2.y - p0.y; - - return x1*x2 + y1*y2; -} - -/* calculate (p1-p0)*(p3-p2) */ -static inline double iprod1(dpoint_t p0, dpoint_t p1, dpoint_t p2, dpoint_t p3) { - double x1, y1, x2, y2; - - x1 = p1.x - p0.x; - y1 = p1.y - p0.y; - x2 = p3.x - p2.x; - y2 = p3.y - p2.y; - - return x1*x2 + y1*y2; -} - -/* calculate distance between two points */ -static inline double ddist(dpoint_t p, dpoint_t q) { - return sqrt(sq(p.x-q.x)+sq(p.y-q.y)); -} - -/* calculate point of a bezier curve */ -static inline dpoint_t bezier(double t, dpoint_t p0, dpoint_t p1, dpoint_t p2, dpoint_t p3) { - double s = 1-t; - dpoint_t res; - - /* Note: a good optimizing compiler (such as gcc-3) reduces the - following to 16 multiplications, using common subexpression - elimination. */ - - res.x = s*s*s*p0.x + 3*(s*s*t)*p1.x + 3*(t*t*s)*p2.x + t*t*t*p3.x; - res.y = s*s*s*p0.y + 3*(s*s*t)*p1.y + 3*(t*t*s)*p2.y + t*t*t*p3.y; - - return res; -} - -/* calculate the point t in [0..1] on the (convex) bezier curve - (p0,p1,p2,p3) which is tangent to q1-q0. Return -1.0 if there is no - solution in [0..1]. */ -static double tangent(dpoint_t p0, dpoint_t p1, dpoint_t p2, dpoint_t p3, dpoint_t q0, dpoint_t q1) { - double A, B, C; /* (1-t)^2 A + 2(1-t)t B + t^2 C = 0 */ - double a, b, c; /* a t^2 + b t + c = 0 */ - double d, s, r1, r2; - - A = cprod(p0, p1, q0, q1); - B = cprod(p1, p2, q0, q1); - C = cprod(p2, p3, q0, q1); - - a = A - 2*B + C; - b = -2*A + 2*B; - c = A; - - d = b*b - 4*a*c; - - if (a==0 || d<0) { - return -1.0; - } - - s = sqrt(d); - - r1 = (-b + s) / (2 * a); - r2 = (-b - s) / (2 * a); - - if (r1 >= 0 && r1 <= 1) { - return r1; - } else if (r2 >= 0 && r2 <= 1) { - return r2; - } else { - return -1.0; - } -} - -/* ---------------------------------------------------------------------- */ -/* Preparation: fill in the sum* fields of a path (used for later - rapid summing). Return 0 on success, 1 with errno set on - failure. */ -static int calc_sums(privpath_t *pp) { - int i, x, y; - int n = pp->len; - - SAFE_CALLOC(pp->sums, pp->len+1, sums_t); - - /* origin */ - pp->x0 = pp->pt[0].x; - pp->y0 = pp->pt[0].y; - - /* preparatory computation for later fast summing */ - pp->sums[0].x2 = pp->sums[0].xy = pp->sums[0].y2 = pp->sums[0].x = pp->sums[0].y = 0; - for (i=0; ipt[i].x - pp->x0; - y = pp->pt[i].y - pp->y0; - pp->sums[i+1].x = pp->sums[i].x + x; - pp->sums[i+1].y = pp->sums[i].y + y; - pp->sums[i+1].x2 = pp->sums[i].x2 + (double)x*x; - pp->sums[i+1].xy = pp->sums[i].xy + (double)x*y; - pp->sums[i+1].y2 = pp->sums[i].y2 + (double)y*y; - } - return 0; - - calloc_error: - return 1; -} - -/* ---------------------------------------------------------------------- */ -/* Stage 1: determine the straight subpaths (Sec. 2.2.1). Fill in the - "lon" component of a path object (based on pt/len). For each i, - lon[i] is the furthest index such that a straight line can be drawn - from i to lon[i]. Return 1 on error with errno set, else 0. */ - -/* this algorithm depends on the fact that the existence of straight - subpaths is a triplewise property. I.e., there exists a straight - line through squares i0,...,in iff there exists a straight line - through i,j,k, for all i0<=i= 0 and xprod(constraint[1], - cur) <= 0. */ - -/* Remark for Potrace 1.1: the current implementation of calc_lon is - more complex than the implementation found in Potrace 1.0, but it - is considerably faster. The introduction of the "nc" data structure - means that we only have to test the constraints for "corner" - points. On a typical input file, this speeds up the calc_lon - function by a factor of 31.2, thereby decreasing its time share - within the overall Potrace algorithm from 72.6% to 7.82%, and - speeding up the overall algorithm by a factor of 3.36. On another - input file, calc_lon was sped up by a factor of 6.7, decreasing its - time share from 51.4% to 13.61%, and speeding up the overall - algorithm by a factor of 1.78. In any case, the savings are - substantial. */ - -/* returns 0 on success, 1 on error with errno set */ -static int calc_lon(privpath_t *pp) { - point_t *pt = pp->pt; - int n = pp->len; - int i, j, k, k1; - int ct[4], dir; - point_t constraint[2]; - point_t cur; - point_t off; - int *pivk = NULL; /* pivk[n] */ - int *nc = NULL; /* nc[n]: next corner */ - point_t dk; /* direction of k-k1 */ - int a, b, c, d; - - SAFE_CALLOC(pivk, n, int); - SAFE_CALLOC(nc, n, int); - - /* initialize the nc data structure. Point from each point to the - furthest future point to which it is connected by a vertical or - horizontal segment. We take advantage of the fact that there is - always a direction change at 0 (due to the path decomposition - algorithm). But even if this were not so, there is no harm, as - in practice, correctness does not depend on the word "furthest" - above. */ - k = 0; - for (i=n-1; i>=0; i--) { - if (pt[i].x != pt[k].x && pt[i].y != pt[k].y) { - k = i+1; /* necessarily ilon, n, int); - - /* determine pivot points: for each i, let pivk[i] be the furthest k - such that all j with i=0; i--) { - ct[0] = ct[1] = ct[2] = ct[3] = 0; - - /* keep track of "directions" that have occurred */ - dir = (3+3*(pt[mod(i+1,n)].x-pt[i].x)+(pt[mod(i+1,n)].y-pt[i].y))/2; - ct[dir]++; - - constraint[0].x = 0; - constraint[0].y = 0; - constraint[1].x = 0; - constraint[1].y = 0; - - /* find the next k such that no straight line from i to k */ - k = nc[i]; - k1 = i; - while (1) { - - dir = (3+3*sign(pt[k].x-pt[k1].x)+sign(pt[k].y-pt[k1].y))/2; - ct[dir]++; - - /* if all four "directions" have occurred, cut this path */ - if (ct[0] && ct[1] && ct[2] && ct[3]) { - pivk[i] = k1; - goto foundk; - } - - cur.x = pt[k].x - pt[i].x; - cur.y = pt[k].y - pt[i].y; - - /* see if current constraint is violated */ - if (xprod(constraint[0], cur) < 0 || xprod(constraint[1], cur) > 0) { - goto constraint_viol; - } - - /* else, update constraint */ - if (abs(cur.x) <= 1 && abs(cur.y) <= 1) { - /* no constraint */ - } else { - off.x = cur.x + ((cur.y>=0 && (cur.y>0 || cur.x<0)) ? 1 : -1); - off.y = cur.y + ((cur.x<=0 && (cur.x<0 || cur.y<0)) ? 1 : -1); - if (xprod(constraint[0], off) >= 0) { - constraint[0] = off; - } - off.x = cur.x + ((cur.y<=0 && (cur.y<0 || cur.x<0)) ? 1 : -1); - off.y = cur.y + ((cur.x>=0 && (cur.x>0 || cur.y<0)) ? 1 : -1); - if (xprod(constraint[1], off) <= 0) { - constraint[1] = off; - } - } - k1 = k; - k = nc[k1]; - if (!cyclic(k,i,k1)) { - break; - } - } - constraint_viol: - /* k1 was the last "corner" satisfying the current constraint, and - k is the first one violating it. We now need to find the last - point along k1..k which satisfied the constraint. */ - dk.x = sign(pt[k].x-pt[k1].x); - dk.y = sign(pt[k].y-pt[k1].y); - cur.x = pt[k1].x - pt[i].x; - cur.y = pt[k1].y - pt[i].y; - /* find largest integer j such that xprod(constraint[0], cur+j*dk) - >= 0 and xprod(constraint[1], cur+j*dk) <= 0. Use bilinearity - of xprod. */ - a = xprod(constraint[0], cur); - b = xprod(constraint[0], dk); - c = xprod(constraint[1], cur); - d = xprod(constraint[1], dk); - /* find largest integer j such that a+j*b>=0 and c+j*d<=0. This - can be solved with integer arithmetic. */ - j = INFTY; - if (b<0) { - j = floordiv(a,-b); - } - if (d>0) { - j = min(j, floordiv(-c,d)); - } - pivk[i] = mod(k1+j,n); - foundk: - ; - } /* for i */ - - /* clean up: for each i, let lon[i] be the largest k such that for - all i' with i<=i'lon[n-1]=j; - for (i=n-2; i>=0; i--) { - if (cyclic(i+1,pivk[i],j)) { - j=pivk[i]; - } - pp->lon[i]=j; - } - - for (i=n-1; cyclic(mod(i+1,n),j,pp->lon[i]); i--) { - pp->lon[i] = j; - } - - free(pivk); - free(nc); - return 0; - - calloc_error: - free(pivk); - free(nc); - return 1; -} - - -/* ---------------------------------------------------------------------- */ -/* Stage 2: calculate the optimal polygon (Sec. 2.2.2-2.2.4). */ - -/* Auxiliary function: calculate the penalty of an edge from i to j in - the given path. This needs the "lon" and "sum*" data. */ - -static double penalty3(privpath_t *pp, int i, int j) { - int n = pp->len; - point_t *pt = pp->pt; - sums_t *sums = pp->sums; - - /* assume 0<=i=n) { - j -= n; - r = 1; - } - - /* critical inner loop: the "if" gives a 4.6 percent speedup */ - if (r == 0) { - x = sums[j+1].x - sums[i].x; - y = sums[j+1].y - sums[i].y; - x2 = sums[j+1].x2 - sums[i].x2; - xy = sums[j+1].xy - sums[i].xy; - y2 = sums[j+1].y2 - sums[i].y2; - k = j+1 - i; - } else { - x = sums[j+1].x - sums[i].x + sums[n].x; - y = sums[j+1].y - sums[i].y + sums[n].y; - x2 = sums[j+1].x2 - sums[i].x2 + sums[n].x2; - xy = sums[j+1].xy - sums[i].xy + sums[n].xy; - y2 = sums[j+1].y2 - sums[i].y2 + sums[n].y2; - k = j+1 - i + n; - } - - px = (pt[i].x + pt[j].x) / 2.0 - pt[0].x; - py = (pt[i].y + pt[j].y) / 2.0 - pt[0].y; - ey = (pt[j].x - pt[i].x); - ex = -(pt[j].y - pt[i].y); - - a = ((x2 - 2*x*px) / k + px*px); - b = ((xy - x*py - y*px) / k + px*py); - c = ((y2 - 2*y*py) / k + py*py); - - s = ex*ex*a + 2*ex*ey*b + ey*ey*c; - - return sqrt(s); -} - -/* find the optimal polygon. Fill in the m and po components. Return 1 - on failure with errno set, else 0. Non-cyclic version: assumes i=0 - is in the polygon. Fixme: implement cyclic version. */ -static int bestpolygon(privpath_t *pp) -{ - int i, j, m, k; - int n = pp->len; - double *pen = NULL; /* pen[n+1]: penalty vector */ - int *prev = NULL; /* prev[n+1]: best path pointer vector */ - int *clip0 = NULL; /* clip0[n]: longest segment pointer, non-cyclic */ - int *clip1 = NULL; /* clip1[n+1]: backwards segment pointer, non-cyclic */ - int *seg0 = NULL; /* seg0[m+1]: forward segment bounds, m<=n */ - int *seg1 = NULL; /* seg1[m+1]: backward segment bounds, m<=n */ - double thispen; - double best; - int c; - - SAFE_CALLOC(pen, n+1, double); - SAFE_CALLOC(prev, n+1, int); - SAFE_CALLOC(clip0, n, int); - SAFE_CALLOC(clip1, n+1, int); - SAFE_CALLOC(seg0, n+1, int); - SAFE_CALLOC(seg1, n+1, int); - - /* calculate clipped paths */ - for (i=0; ilon[mod(i-1,n)]-1,n); - if (c == i) { - c = mod(i+1,n); - } - if (c < i) { - clip0[i] = n; - } else { - clip0[i] = c; - } - } - - /* calculate backwards path clipping, non-cyclic. j <= clip0[i] iff - clip1[j] <= i, for i,j=0..n. */ - j = 1; - for (i=0; i0; j--) { - seg1[j] = i; - i = clip1[i]; - } - seg1[0] = 0; - - /* now find the shortest path with m segments, based on penalty3 */ - /* note: the outer 2 loops jointly have at most n iterations, thus - the worst-case behavior here is quadratic. In practice, it is - close to linear since the inner loop tends to be short. */ - pen[0]=0; - for (j=1; j<=m; j++) { - for (i=seg1[j]; i<=seg0[j]; i++) { - best = -1; - for (k=seg0[j-1]; k>=clip1[i]; k--) { - thispen = penalty3(pp, k, i) + pen[k]; - if (best < 0 || thispen < best) { - prev[i] = k; - best = thispen; - } - } - pen[i] = best; - } - } - - pp->m = m; - SAFE_CALLOC(pp->po, m, int); - - /* read off shortest path */ - for (i=n, j=m-1; i>0; j--) { - i = prev[i]; - pp->po[j] = i; - } - - free(pen); - free(prev); - free(clip0); - free(clip1); - free(seg0); - free(seg1); - return 0; - - calloc_error: - free(pen); - free(prev); - free(clip0); - free(clip1); - free(seg0); - free(seg1); - return 1; -} - -/* ---------------------------------------------------------------------- */ -/* Stage 3: vertex adjustment (Sec. 2.3.1). */ - -/* Adjust vertices of optimal polygon: calculate the intersection of - the two "optimal" line segments, then move it into the unit square - if it lies outside. Return 1 with errno set on error; 0 on - success. */ - -static int adjust_vertices(privpath_t *pp) { - int m = pp->m; - int *po = pp->po; - int n = pp->len; - point_t *pt = pp->pt; - int x0 = pp->x0; - int y0 = pp->y0; - - dpoint_t *ctr = NULL; /* ctr[m] */ - dpoint_t *dir = NULL; /* dir[m] */ - quadform_t *q = NULL; /* q[m] */ - double v[3]; - double d; - int i, j, k, l; - dpoint_t s; - int r; - - SAFE_CALLOC(ctr, m, dpoint_t); - SAFE_CALLOC(dir, m, dpoint_t); - SAFE_CALLOC(q, m, quadform_t); - - r = privcurve_init(&pp->curve, m); - if (r) { - goto calloc_error; - } - - /* calculate "optimal" point-slope representation for each line - segment */ - for (i=0; iQ[1][1]) { - v[0] = -Q[0][1]; - v[1] = Q[0][0]; - } else if (Q[1][1]) { - v[0] = -Q[1][1]; - v[1] = Q[1][0]; - } else { - v[0] = 1; - v[1] = 0; - } - d = sq(v[0]) + sq(v[1]); - v[2] = - v[1] * s.y - v[0] * s.x; - for (l=0; l<3; l++) { - for (k=0; k<3; k++) { - Q[l][k] += v[l] * v[k] / d; - } - } - } - dx = fabs(w.x-s.x); - dy = fabs(w.y-s.y); - if (dx <= .5 && dy <= .5) { - pp->curve.vertex[i].x = w.x+x0; - pp->curve.vertex[i].y = w.y+y0; - continue; - } - - /* the minimum was not in the unit square; now minimize quadratic - on boundary of square */ - min = quadform(Q, s); - xmin = s.x; - ymin = s.y; - - if (Q[0][0] == 0.0) { - goto fixx; - } - for (z=0; z<2; z++) { /* value of the y-coordinate */ - w.y = s.y-0.5+z; - w.x = - (Q[0][1] * w.y + Q[0][2]) / Q[0][0]; - dx = fabs(w.x-s.x); - cand = quadform(Q, w); - if (dx <= .5 && cand < min) { - min = cand; - xmin = w.x; - ymin = w.y; - } - } - fixx: - if (Q[1][1] == 0.0) { - goto corners; - } - for (z=0; z<2; z++) { /* value of the x-coordinate */ - w.x = s.x-0.5+z; - w.y = - (Q[1][0] * w.x + Q[1][2]) / Q[1][1]; - dy = fabs(w.y-s.y); - cand = quadform(Q, w); - if (dy <= .5 && cand < min) { - min = cand; - xmin = w.x; - ymin = w.y; - } - } - corners: - /* check four corners */ - for (l=0; l<2; l++) { - for (k=0; k<2; k++) { - w.x = s.x-0.5+l; - w.y = s.y-0.5+k; - cand = quadform(Q, w); - if (cand < min) { - min = cand; - xmin = w.x; - ymin = w.y; - } - } - } - - pp->curve.vertex[i].x = xmin + x0; - pp->curve.vertex[i].y = ymin + y0; - continue; - } - - free(ctr); - free(dir); - free(q); - return 0; - - calloc_error: - free(ctr); - free(dir); - free(q); - return 1; -} - -/* ---------------------------------------------------------------------- */ -/* Stage 4: smoothing and corner analysis (Sec. 2.3.3) */ - -/* reverse orientation of a path */ -static void reverse(privcurve_t *curve) { - int m = curve->n; - int i, j; - dpoint_t tmp; - - for (i=0, j=m-1; ivertex[i]; - curve->vertex[i] = curve->vertex[j]; - curve->vertex[j] = tmp; - } -} - -/* Always succeeds */ -static void smooth(privcurve_t *curve, double alphamax) { - int m = curve->n; - - int i, j, k; - double dd, denom, alpha; - dpoint_t p2, p3, p4; - - /* examine each vertex and find its best fit */ - for (i=0; ivertex[k], curve->vertex[j]); - - denom = ddenom(curve->vertex[i], curve->vertex[k]); - if (denom != 0.0) { - dd = dpara(curve->vertex[i], curve->vertex[j], curve->vertex[k]) / denom; - dd = fabs(dd); - alpha = dd>1 ? (1 - 1.0/dd) : 0; - alpha = alpha / 0.75; - } else { - alpha = 4/3.0; - } - curve->alpha0[j] = alpha; /* remember "original" value of alpha */ - - if (alpha >= alphamax) { /* pointed corner */ - curve->tag[j] = POTRACE_CORNER; - curve->c[j][1] = curve->vertex[j]; - curve->c[j][2] = p4; - } else { - if (alpha < 0.55) { - alpha = 0.55; - } else if (alpha > 1) { - alpha = 1; - } - p2 = interval(.5+.5*alpha, curve->vertex[i], curve->vertex[j]); - p3 = interval(.5+.5*alpha, curve->vertex[k], curve->vertex[j]); - curve->tag[j] = POTRACE_CURVETO; - curve->c[j][0] = p2; - curve->c[j][1] = p3; - curve->c[j][2] = p4; - } - curve->alpha[j] = alpha; /* store the "cropped" value of alpha */ - curve->beta[j] = 0.5; - } - curve->alphacurve = 1; - - return; -} - -/* ---------------------------------------------------------------------- */ -/* Stage 5: Curve optimization (Sec. 2.4) */ - -/* a private type for the result of opti_penalty */ -struct opti_s { - double pen; /* penalty */ - dpoint_t c[2]; /* curve parameters */ - double t, s; /* curve parameters */ - double alpha; /* curve parameter */ -}; -typedef struct opti_s opti_t; - -/* calculate best fit from i+.5 to j+.5. Assume icurve.n; - int k, k1, k2, conv, i1; - double area, alpha, d, d1, d2; - dpoint_t p0, p1, p2, p3, pt; - double A, R, A1, A2, A3, A4; - double s, t; - - /* check convexity, corner-freeness, and maximum bend < 179 degrees */ - - if (i==j) { /* sanity - a full loop can never be an opticurve */ - return 1; - } - - k = i; - i1 = mod(i+1, m); - k1 = mod(k+1, m); - conv = convc[k1]; - if (conv == 0) { - return 1; - } - d = ddist(pp->curve.vertex[i], pp->curve.vertex[i1]); - for (k=k1; k!=j; k=k1) { - k1 = mod(k+1, m); - k2 = mod(k+2, m); - if (convc[k1] != conv) { - return 1; - } - if (sign(cprod(pp->curve.vertex[i], pp->curve.vertex[i1], pp->curve.vertex[k1], pp->curve.vertex[k2])) != conv) { - return 1; - } - if (iprod1(pp->curve.vertex[i], pp->curve.vertex[i1], pp->curve.vertex[k1], pp->curve.vertex[k2]) < d * ddist(pp->curve.vertex[k1], pp->curve.vertex[k2]) * COS179) { - return 1; - } - } - - /* the curve we're working in: */ - p0 = pp->curve.c[mod(i,m)][2]; - p1 = pp->curve.vertex[mod(i+1,m)]; - p2 = pp->curve.vertex[mod(j,m)]; - p3 = pp->curve.c[mod(j,m)][2]; - - /* determine its area */ - area = areac[j] - areac[i]; - area -= dpara(pp->curve.vertex[0], pp->curve.c[i][2], pp->curve.c[j][2])/2; - if (i>=j) { - area += areac[m]; - } - - /* find intersection o of p0p1 and p2p3. Let t,s such that o = - interval(t,p0,p1) = interval(s,p3,p2). Let A be the area of the - triangle (p0,o,p3). */ - - A1 = dpara(p0, p1, p2); - A2 = dpara(p0, p1, p3); - A3 = dpara(p0, p2, p3); - /* A4 = dpara(p1, p2, p3); */ - A4 = A1+A3-A2; - - if (A2 == A1) { /* this should never happen */ - return 1; - } - - t = A3/(A3-A4); - s = A2/(A2-A1); - A = A2 * t / 2.0; - - if (A == 0.0) { /* this should never happen */ - return 1; - } - - R = area / A; /* relative area */ - alpha = 2 - sqrt(4 - R / 0.3); /* overall alpha for p0-o-p3 curve */ - - res->c[0] = interval(t * alpha, p0, p1); - res->c[1] = interval(s * alpha, p3, p2); - res->alpha = alpha; - res->t = t; - res->s = s; - - p1 = res->c[0]; - p2 = res->c[1]; /* the proposed curve is now (p0,p1,p2,p3) */ - - res->pen = 0; - - /* calculate penalty */ - /* check tangency with edges */ - for (k=mod(i+1,m); k!=j; k=k1) { - k1 = mod(k+1,m); - t = tangent(p0, p1, p2, p3, pp->curve.vertex[k], pp->curve.vertex[k1]); - if (t<-.5) { - return 1; - } - pt = bezier(t, p0, p1, p2, p3); - d = ddist(pp->curve.vertex[k], pp->curve.vertex[k1]); - if (d == 0.0) { /* this should never happen */ - return 1; - } - d1 = dpara(pp->curve.vertex[k], pp->curve.vertex[k1], pt) / d; - if (fabs(d1) > opttolerance) { - return 1; - } - if (iprod(pp->curve.vertex[k], pp->curve.vertex[k1], pt) < 0 || iprod(pp->curve.vertex[k1], pp->curve.vertex[k], pt) < 0) { - return 1; - } - res->pen += sq(d1); - } - - /* check corners */ - for (k=i; k!=j; k=k1) { - k1 = mod(k+1,m); - t = tangent(p0, p1, p2, p3, pp->curve.c[k][2], pp->curve.c[k1][2]); - if (t<-.5) { - return 1; - } - pt = bezier(t, p0, p1, p2, p3); - d = ddist(pp->curve.c[k][2], pp->curve.c[k1][2]); - if (d == 0.0) { /* this should never happen */ - return 1; - } - d1 = dpara(pp->curve.c[k][2], pp->curve.c[k1][2], pt) / d; - d2 = dpara(pp->curve.c[k][2], pp->curve.c[k1][2], pp->curve.vertex[k1]) / d; - d2 *= 0.75 * pp->curve.alpha[k1]; - if (d2 < 0) { - d1 = -d1; - d2 = -d2; - } - if (d1 < d2 - opttolerance) { - return 1; - } - if (d1 < d2) { - res->pen += sq(d1 - d2); - } - } - - return 0; -} - -/* optimize the path p, replacing sequences of Bezier segments by a - single segment when possible. Return 0 on success, 1 with errno set - on failure. */ -static int opticurve(privpath_t *pp, double opttolerance) { - int m = pp->curve.n; - int *pt = NULL; /* pt[m+1] */ - double *pen = NULL; /* pen[m+1] */ - int *len = NULL; /* len[m+1] */ - opti_t *opt = NULL; /* opt[m+1] */ - int om; - int i,j,r; - opti_t o; - dpoint_t p0; - int i1; - double area; - double alpha; - double *s = NULL; - double *t = NULL; - - int *convc = NULL; /* conv[m]: pre-computed convexities */ - double *areac = NULL; /* cumarea[m+1]: cache for fast area computation */ - - SAFE_CALLOC(pt, m+1, int); - SAFE_CALLOC(pen, m+1, double); - SAFE_CALLOC(len, m+1, int); - SAFE_CALLOC(opt, m+1, opti_t); - SAFE_CALLOC(convc, m, int); - SAFE_CALLOC(areac, m+1, double); - - /* pre-calculate convexity: +1 = right turn, -1 = left turn, 0 = corner */ - for (i=0; icurve.tag[i] == POTRACE_CURVETO) { - convc[i] = sign(dpara(pp->curve.vertex[mod(i-1,m)], pp->curve.vertex[i], pp->curve.vertex[mod(i+1,m)])); - } else { - convc[i] = 0; - } - } - - /* pre-calculate areas */ - area = 0.0; - areac[0] = 0.0; - p0 = pp->curve.vertex[0]; - for (i=0; icurve.tag[i1] == POTRACE_CURVETO) { - alpha = pp->curve.alpha[i1]; - area += 0.3*alpha*(4-alpha)*dpara(pp->curve.c[i][2], pp->curve.vertex[i1], pp->curve.c[i1][2])/2; - area += dpara(p0, pp->curve.c[i][2], pp->curve.c[i1][2])/2; - } - areac[i+1] = area; - } - - pt[0] = -1; - pen[0] = 0; - len[0] = 0; - - /* Fixme: we always start from a fixed point -- should find the best - curve cyclically */ - - for (j=1; j<=m; j++) { - /* calculate best path from 0 to j */ - pt[j] = j-1; - pen[j] = pen[j-1]; - len[j] = len[j-1]+1; - - for (i=j-2; i>=0; i--) { - r = opti_penalty(pp, i, mod(j,m), &o, opttolerance, convc, areac); - if (r) { - break; - } - if (len[j] > len[i]+1 || (len[j] == len[i]+1 && pen[j] > pen[i] + o.pen)) { - pt[j] = i; - pen[j] = pen[i] + o.pen; - len[j] = len[i] + 1; - opt[j] = o; - } - } - } - om = len[m]; - r = privcurve_init(&pp->ocurve, om); - if (r) { - goto calloc_error; - } - SAFE_CALLOC(s, om, double); - SAFE_CALLOC(t, om, double); - - j = m; - for (i=om-1; i>=0; i--) { - if (pt[j]==j-1) { - pp->ocurve.tag[i] = pp->curve.tag[mod(j,m)]; - pp->ocurve.c[i][0] = pp->curve.c[mod(j,m)][0]; - pp->ocurve.c[i][1] = pp->curve.c[mod(j,m)][1]; - pp->ocurve.c[i][2] = pp->curve.c[mod(j,m)][2]; - pp->ocurve.vertex[i] = pp->curve.vertex[mod(j,m)]; - pp->ocurve.alpha[i] = pp->curve.alpha[mod(j,m)]; - pp->ocurve.alpha0[i] = pp->curve.alpha0[mod(j,m)]; - pp->ocurve.beta[i] = pp->curve.beta[mod(j,m)]; - s[i] = t[i] = 1.0; - } else { - pp->ocurve.tag[i] = POTRACE_CURVETO; - pp->ocurve.c[i][0] = opt[j].c[0]; - pp->ocurve.c[i][1] = opt[j].c[1]; - pp->ocurve.c[i][2] = pp->curve.c[mod(j,m)][2]; - pp->ocurve.vertex[i] = interval(opt[j].s, pp->curve.c[mod(j,m)][2], pp->curve.vertex[mod(j,m)]); - pp->ocurve.alpha[i] = opt[j].alpha; - pp->ocurve.alpha0[i] = opt[j].alpha; - s[i] = opt[j].s; - t[i] = opt[j].t; - } - j = pt[j]; - } - - /* calculate beta parameters */ - for (i=0; iocurve.beta[i] = s[i] / (s[i] + t[i1]); - } - pp->ocurve.alphacurve = 1; - - free(pt); - free(pen); - free(len); - free(opt); - free(s); - free(t); - free(convc); - free(areac); - return 0; - - calloc_error: - free(pt); - free(pen); - free(len); - free(opt); - free(s); - free(t); - free(convc); - free(areac); - return 1; -} - -/* ---------------------------------------------------------------------- */ - -#define TRY(x) if (x) goto try_error - -/* return 0 on success, 1 on error with errno set. */ -int process_path(path_t *plist, const potrace_param_t *param, progress_t *progress) { - path_t *p; - double nn = 0, cn = 0; - - if (progress->callback) { - /* precompute task size for progress estimates */ - nn = 0; - list_forall (p, plist) { - nn += p->priv->len; - } - cn = 0; - } - - /* call downstream function with each path */ - list_forall (p, plist) { - TRY(calc_sums(p->priv)); - TRY(calc_lon(p->priv)); - TRY(bestpolygon(p->priv)); - TRY(adjust_vertices(p->priv)); - if (p->sign == '-') { /* reverse orientation of negative paths */ - reverse(&p->priv->curve); - } - smooth(&p->priv->curve, param->alphamax); - if (param->opticurve) { - TRY(opticurve(p->priv, param->opttolerance)); - p->priv->fcurve = &p->priv->ocurve; - } else { - p->priv->fcurve = &p->priv->curve; - } - privcurve_to_curve(p->priv->fcurve, &p->curve); - - if (progress->callback) { - cn += p->priv->len; - progress_update(cn/nn, progress); - } - } - - progress_update(1.0, progress); - - return 0; - - try_error: - return 1; -} diff --git a/Build/source/libs/potrace/potrace-src/src/trace.h b/Build/source/libs/potrace/potrace-src/src/trace.h deleted file mode 100644 index 5976453353b..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/trace.h +++ /dev/null @@ -1,15 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -#ifndef TRACE_H -#define TRACE_H - -#include "potracelib.h" -#include "progress.h" -#include "curve.h" - -int process_path(path_t *plist, const potrace_param_t *param, progress_t *progress); - -#endif /* TRACE_H */ diff --git a/Build/source/libs/potrace/potrace-src/src/trans.c b/Build/source/libs/potrace/potrace-src/src/trans.c deleted file mode 100644 index 287808bb0b8..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/trans.c +++ /dev/null @@ -1,127 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - -/* calculations with coordinate transformations and bounding boxes */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include - -#include "trans.h" -#include "bbox.h" - -/* rotate the coordinate system counterclockwise by alpha degrees. The - new bounding box will be the smallest box containing the rotated - old bounding box */ -void trans_rotate(trans_t *r, double alpha) { - double s, c, x0, x1, y0, y1, o0, o1; - trans_t t_struct; - trans_t *t = &t_struct; - - memcpy(t, r, sizeof(trans_t)); - - s = sin(alpha/180*M_PI); - c = cos(alpha/180*M_PI); - - /* apply the transformation matrix to the sides of the bounding box */ - x0 = c * t->bb[0]; - x1 = s * t->bb[0]; - y0 = -s * t->bb[1]; - y1 = c * t->bb[1]; - - /* determine new bounding box, and origin of old bb within new bb */ - r->bb[0] = fabs(x0) + fabs(y0); - r->bb[1] = fabs(x1) + fabs(y1); - o0 = - min(x0,0) - min(y0,0); - o1 = - min(x1,0) - min(y1,0); - - r->orig[0] = o0 + c * t->orig[0] - s * t->orig[1]; - r->orig[1] = o1 + s * t->orig[0] + c * t->orig[1]; - r->x[0] = c * t->x[0] - s * t->x[1]; - r->x[1] = s * t->x[0] + c * t->x[1]; - r->y[0] = c * t->y[0] - s * t->y[1]; - r->y[1] = s * t->y[0] + c * t->y[1]; -} - -/* return the standard cartesian coordinate system for an w x h rectangle. */ -void trans_from_rect(trans_t *r, double w, double h) { - r->bb[0] = w; - r->bb[1] = h; - r->orig[0] = 0.0; - r->orig[1] = 0.0; - r->x[0] = 1.0; - r->x[1] = 0.0; - r->y[0] = 0.0; - r->y[1] = 1.0; - r->scalex = 1.0; - r->scaley = 1.0; -} - -/* rescale the coordinate system r by factor sc >= 0. */ -void trans_rescale(trans_t *r, double sc) { - r->bb[0] *= sc; - r->bb[1] *= sc; - r->orig[0] *= sc; - r->orig[1] *= sc; - r->x[0] *= sc; - r->x[1] *= sc; - r->y[0] *= sc; - r->y[1] *= sc; - r->scalex *= sc; - r->scaley *= sc; -} - -/* rescale the coordinate system to size w x h */ -void trans_scale_to_size(trans_t *r, double w, double h) { - double xsc = w/r->bb[0]; - double ysc = h/r->bb[1]; - - r->bb[0] = w; - r->bb[1] = h; - r->orig[0] *= xsc; - r->orig[1] *= ysc; - r->x[0] *= xsc; - r->x[1] *= ysc; - r->y[0] *= xsc; - r->y[1] *= ysc; - r->scalex *= xsc; - r->scaley *= ysc; - - if (w<0) { - r->orig[0] -= w; - r->bb[0] = -w; - } - if (h<0) { - r->orig[1] -= h; - r->bb[1] = -h; - } -} - -/* adjust the bounding box to the actual vector outline */ -void trans_tighten(trans_t *r, potrace_path_t *plist) { - interval_t i; - dpoint_t dir; - int j; - - /* if pathlist is empty, do nothing */ - if (!plist) { - return; - } - - for (j=0; j<2; j++) { - dir.x = r->x[j]; - dir.y = r->y[j]; - path_limits(plist, dir, &i); - if (i.min == i.max) { - /* make the extent non-zero to avoid later division by zero errors */ - i.max = i.min+0.5; - i.min = i.min-0.5; - } - r->bb[j] = i.max - i.min; - r->orig[j] = -i.min; - } -} diff --git a/Build/source/libs/potrace/potrace-src/src/trans.h b/Build/source/libs/potrace/potrace-src/src/trans.h deleted file mode 100644 index 07d93e6d5e6..00000000000 --- a/Build/source/libs/potrace/potrace-src/src/trans.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (C) 2001-2017 Peter Selinger. - This file is part of Potrace. It is free software and it is covered - by the GNU General Public License. See the file COPYING for details. */ - - -#ifndef TRANS_H -#define TRANS_H - -#include "auxiliary.h" - -/* structure to hold a coordinate transformation */ -struct trans_s { - double bb[2]; /* dimensions of bounding box */ - double orig[2]; /* origin relative to bounding box */ - double x[2]; /* basis vector for the "x" direction */ - double y[2]; /* basis vector for the "y" direction */ - double scalex, scaley; /* redundant info for some backends' benefit */ -}; -typedef struct trans_s trans_t; - -/* apply a coordinate transformation to a point */ -static inline dpoint_t trans(dpoint_t p, trans_t t) { - dpoint_t res; - - res.x = t.orig[0] + p.x * t.x[0] + p.y * t.y[0]; - res.y = t.orig[1] + p.x * t.x[1] + p.y * t.y[1]; - return res; -} - -void trans_rotate(trans_t *r, double alpha); -void trans_from_rect(trans_t *r, double w, double h); -void trans_rescale(trans_t *r, double sc); -void trans_scale_to_size(trans_t *r, double w, double h); -void trans_tighten(trans_t *r, potrace_path_t *plist); - -#endif /* TRANS_H */ diff --git a/Build/source/libs/potrace/potrace.test b/Build/source/libs/potrace/potrace.test deleted file mode 100755 index ee5110ba2e5..00000000000 --- a/Build/source/libs/potrace/potrace.test +++ /dev/null @@ -1,8 +0,0 @@ -#! /bin/sh -vx -# $Id$ -# Copyright 2017 Karl Berry -# Copyright 2013 Peter Breitenlohner -# You may freely use, modify and/or distribute this file. - -./potracetst || exit 1 - diff --git a/Build/source/libs/potrace/potracetst.c b/Build/source/libs/potrace/potracetst.c deleted file mode 100644 index 25197c48132..00000000000 --- a/Build/source/libs/potrace/potracetst.c +++ /dev/null @@ -1,14 +0,0 @@ -/* potracetst.c: Basic test for libpotrace - * - * Copyright (C) 2013 Peter Breitenlohner - * You may freely use, modify and/or distribute this file. - */ - -#include -#include - -int main (int argc, char **argv) -{ - printf ("%s: using %s\n", argv[0], potrace_version ()); - return 0; -} diff --git a/Build/source/libs/potrace/version.ac b/Build/source/libs/potrace/version.ac deleted file mode 100644 index 04d0402ee4f..00000000000 --- a/Build/source/libs/potrace/version.ac +++ /dev/null @@ -1,11 +0,0 @@ -dnl -dnl Copyright (C) 2013-2015 Peter Breitenlohner -dnl -dnl This file is free software; the copyright holder -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl -------------------------------------------------------- -dnl -dnl m4-include this file to define the current potrace version -m4_define([potrace_version], [1.15]) diff --git a/Build/source/m4/ChangeLog b/Build/source/m4/ChangeLog index 30153cae36f..3879271b2ae 100644 --- a/Build/source/m4/ChangeLog +++ b/Build/source/m4/ChangeLog @@ -1,3 +1,9 @@ +2018-08-27 Karl Berry + + * kpse-potrace-flags.m4: remove file, again bundled with dvisvgm. + * kpse-pkgs.m4 (KPSE_ALL_SYSTEM_FLAGS), + (kpse_libs_pkgs): no more potrace. + 2018-02-09 Karl Berry * kpse-pkgs.m4 (kpse_utils_pkgs): add axodraw2. diff --git a/Build/source/m4/kpse-pkgs.m4 b/Build/source/m4/kpse-pkgs.m4 index 1403e29a1a5..02994905f2a 100644 --- a/Build/source/m4/kpse-pkgs.m4 +++ b/Build/source/m4/kpse-pkgs.m4 @@ -36,7 +36,6 @@ mpfr gmp cairo pixman -potrace gd freetype2 libpng @@ -64,7 +63,6 @@ AC_REQUIRE([KPSE_LIBPAPER_SYSTEM_FLAGS])[]dnl AC_REQUIRE([KPSE_LIBPNG_SYSTEM_FLAGS])[]dnl AC_REQUIRE([KPSE_FREETYPE2_SYSTEM_FLAGS])[]dnl AC_REQUIRE([KPSE_GD_SYSTEM_FLAGS])[]dnl -AC_REQUIRE([KPSE_POTRACE_SYSTEM_FLAGS])[]dnl AC_REQUIRE([KPSE_PIXMAN_SYSTEM_FLAGS])[]dnl AC_REQUIRE([KPSE_CAIRO_SYSTEM_FLAGS])[]dnl AC_REQUIRE([KPSE_GMP_SYSTEM_FLAGS])[]dnl diff --git a/Build/source/m4/kpse-potrace-flags.m4 b/Build/source/m4/kpse-potrace-flags.m4 deleted file mode 100644 index 161a90613d3..00000000000 --- a/Build/source/m4/kpse-potrace-flags.m4 +++ /dev/null @@ -1,27 +0,0 @@ -# Public macros for the TeX Live (TL) tree. -# Copyright (C) 2013, 2014 Peter Breitenlohner -# -# This file is free software; the copyright holder -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# KPSE_POTRACE_FLAGS -# ------------------ -# Provide the configure options '--with-system-potrace' (if in the TL tree), -# '--with-potrace-includes', and '--with-potrace-libdir'. -# -# Set the make variables POTRACE_INCLUDES and POTRACE_LIBS to the CPPFLAGS and -# LIBS required for the `-lpotrace' library in libs/potrace/ of the TL tree. -AC_DEFUN([KPSE_POTRACE_FLAGS], [dnl -_KPSE_LIB_FLAGS([potrace], [potrace], [], - [-IBLD/libs/potrace/include], [BLD/libs/potrace/libpotrace.a], [], - [], [${top_builddir}/../../libs/potrace/include/potracelib.h])[]dnl -]) # KPSE_POTRACE_FLAGS - -# KPSE_POTRACE_OPTIONS([WITH-SYSTEM]) -# ----------------------------------- -AC_DEFUN([KPSE_POTRACE_OPTIONS], [_KPSE_LIB_OPTIONS([potrace], [$1])]) - -# KPSE_POTRACE_SYSTEM_FLAGS -# ------------------------- -AC_DEFUN([KPSE_POTRACE_SYSTEM_FLAGS], [_KPSE_LIB_FLAGS_SYSTEM([potrace], [potrace])]) diff --git a/Build/source/texk/Makefile.in b/Build/source/texk/Makefile.in index 16ad3f5af70..4a8e6b00212 100644 --- a/Build/source/texk/Makefile.in +++ b/Build/source/texk/Makefile.in @@ -108,7 +108,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../m4/kpse-cairo-flags.m4 \ $(top_srcdir)/../m4/kpse-pixman-flags.m4 \ $(top_srcdir)/../m4/kpse-pkgs.m4 \ $(top_srcdir)/../m4/kpse-poppler-flags.m4 \ - $(top_srcdir)/../m4/kpse-potrace-flags.m4 \ $(top_srcdir)/../m4/kpse-ptexenc-flags.m4 \ $(top_srcdir)/../m4/kpse-setup.m4 \ $(top_srcdir)/../m4/kpse-teckit-flags.m4 \ @@ -182,7 +181,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../m4/kpse-cairo-flags.m4 \ $(top_srcdir)/../libs/gmp/ac/withenable.ac \ $(top_srcdir)/../libs/cairo/ac/withenable.ac \ $(top_srcdir)/../libs/pixman/ac/withenable.ac \ - $(top_srcdir)/../libs/potrace/ac/withenable.ac \ $(top_srcdir)/../libs/gd/ac/withenable.ac \ $(top_srcdir)/../libs/freetype2/ac/withenable.ac \ $(top_srcdir)/../libs/libpng/ac/withenable.ac \ diff --git a/Build/source/texk/aclocal.m4 b/Build/source/texk/aclocal.m4 index 2386b91a58b..dae4686cafd 100644 --- a/Build/source/texk/aclocal.m4 +++ b/Build/source/texk/aclocal.m4 @@ -1188,7 +1188,6 @@ m4_include([../m4/kpse-options.m4]) m4_include([../m4/kpse-pixman-flags.m4]) m4_include([../m4/kpse-pkgs.m4]) m4_include([../m4/kpse-poppler-flags.m4]) -m4_include([../m4/kpse-potrace-flags.m4]) m4_include([../m4/kpse-ptexenc-flags.m4]) m4_include([../m4/kpse-setup.m4]) m4_include([../m4/kpse-teckit-flags.m4]) diff --git a/Build/source/texk/configure b/Build/source/texk/configure index 7cbea2e5992..1cf681befe9 100755 --- a/Build/source/texk/configure +++ b/Build/source/texk/configure @@ -820,9 +820,6 @@ with_gmp_includes with_gmp_libdir with_system_cairo with_system_pixman -with_system_potrace -with_potrace_includes -with_potrace_libdir with_system_gd with_gd_includes with_gd_libdir @@ -1656,11 +1653,6 @@ Optional Packages: pkg-config) --with-system-pixman use installed pixman headers and library (requires pkg-config) - --with-system-potrace use installed potrace headers and library - --with-potrace-includes=DIR - potrace headers installed in DIR - --with-potrace-libdir=DIR - potrace library installed in DIR --with-system-gd use installed gd headers and library --with-gd-includes=DIR gd headers installed in DIR --with-gd-libdir=DIR gd library installed in DIR @@ -5234,36 +5226,6 @@ $as_echo "$as_me: Assuming installed \`pixman' headers and library" >&6;} ac_configure_args="$ac_configure_args '--with-system-pixman=$with_system_pixman'" fi -## libs/potrace/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/potrace/ -## configure options and TL libraries required for potrace - -# Check whether --with-system-potrace was given. -if test "${with_system_potrace+set}" = set; then : - withval=$with_system_potrace; -fi - -# Check whether --with-potrace-includes was given. -if test "${with_potrace_includes+set}" = set; then : - withval=$with_potrace_includes; -fi - -# Check whether --with-potrace-libdir was given. -if test "${with_potrace_libdir+set}" = set; then : - withval=$with_potrace_libdir; -fi -if test "x$with_system_potrace" = x; then - if test -f $srcdir/../libs/potrace/configure; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Assuming \`potrace' headers and library from TL tree" >&5 -$as_echo "$as_me: Assuming \`potrace' headers and library from TL tree" >&6;} - with_system_potrace=no - else - { $as_echo "$as_me:${as_lineno-$LINENO}: Assuming installed \`potrace' headers and library" >&5 -$as_echo "$as_me: Assuming installed \`potrace' headers and library" >&6;} - with_system_potrace=yes - fi - ac_configure_args="$ac_configure_args '--with-system-potrace=$with_system_potrace'" -fi - ## libs/gd/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/gd/ ## configure options and TL libraries required for gd diff --git a/Build/source/texk/dvisvgm/ChangeLog b/Build/source/texk/dvisvgm/ChangeLog index 78dd5a5e39a..2ad3cbb2123 100644 --- a/Build/source/texk/dvisvgm/ChangeLog +++ b/Build/source/texk/dvisvgm/ChangeLog @@ -1,3 +1,12 @@ +2018-08-30 Karl Berry + + * version.ac: now version 2.5. + * configure.ac: remove POTRACE_FLAGS, library now bundled. + Track upstream configure.ac somewhat more closely. + Implicitly specify (new) --enable-bundled-libs with + --enable-native-texlive-build. + * dvisvgm-src/Makefile.am: import TL-Changes. + 2018-07-19 Akira Kakuto * Import 2.4.2 diff --git a/Build/source/texk/dvisvgm/Makefile.in b/Build/source/texk/dvisvgm/Makefile.in index 1e2c978bab7..ff55288a123 100644 --- a/Build/source/texk/dvisvgm/Makefile.in +++ b/Build/source/texk/dvisvgm/Makefile.in @@ -104,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../../m4/ax_cxx_compile_stdcxx.m4 \ $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \ $(top_srcdir)/../../m4/kpse-freetype2-flags.m4 \ $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \ - $(top_srcdir)/../../m4/kpse-potrace-flags.m4 \ $(top_srcdir)/../../m4/kpse-warnings.m4 \ $(top_srcdir)/../../m4/kpse-win32.m4 \ $(top_srcdir)/../../m4/kpse-zlib-flags.m4 \ @@ -441,7 +440,9 @@ am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AM_LDFLAGS = @AM_LDFLAGS@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -460,6 +461,7 @@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLD = @CXXLD@ CYGPATH_W = @CYGPATH_W@ +DATE = @DATE@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ @@ -516,9 +518,6 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ -POTRACE_DEPEND = @POTRACE_DEPEND@ -POTRACE_INCLUDES = @POTRACE_INCLUDES@ -POTRACE_LIBS = @POTRACE_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ diff --git a/Build/source/texk/dvisvgm/TLpatches/ChangeLog b/Build/source/texk/dvisvgm/TLpatches/ChangeLog index b65dd2b5121..ed28871b415 100644 --- a/Build/source/texk/dvisvgm/TLpatches/ChangeLog +++ b/Build/source/texk/dvisvgm/TLpatches/ChangeLog @@ -1,3 +1,7 @@ +2018-08-30 Karl Berry + + * patch-08-makefiles: adapt to 2.5. + 2018-07-19 Akira Kakuto * Import 2.4.2. @@ -185,4 +189,3 @@ 2013-01-29 Peter Breitenlohner * Import release 1.1. - diff --git a/Build/source/texk/dvisvgm/TLpatches/TL-Changes b/Build/source/texk/dvisvgm/TLpatches/TL-Changes index d131b8295ac..7b49c4a494c 100644 --- a/Build/source/texk/dvisvgm/TLpatches/TL-Changes +++ b/Build/source/texk/dvisvgm/TLpatches/TL-Changes @@ -2,10 +2,11 @@ Changes applied to the original dvisvgm source as obtained from: https://dvisvgm.de/Downloads/ + or (hopefully) https://ctan.org/pkg/dvisvgm Update version in ./version.ac. -mv dvisvgm-src dvisvm-prev +mv dvisvgm-src dvisvgm-prev tar xf dvisvgm-VER.tar.gz mv dvisvgm-VER dvisvgm-src cd dvisvgm-src @@ -13,7 +14,7 @@ cd dvisvgm-src # remove common and generated files: rm ar-lib compile config.guess config.sub depcomp install-sh rm ltmain.sh missing test-driver -rm aclocal.m4 configure # reduce chance of confusion? +rm -r m4 aclocal.m4 configure # reduce chance of confusion? # # files to add: svn status | sed -n 's/^\?//p' diff --git a/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles b/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles index f2b066fad46..c7ebcf1207d 100644 --- a/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles +++ b/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles @@ -1,32 +1,26 @@ -diff -u2r dvisvgm-2.4.2/Makefile.am dvisvgm-src/Makefile.am ---- dvisvgm-2.4.2/Makefile.am Sat Jan 27 22:54:59 2018 -+++ dvisvgm-src/Makefile.am Thu Jul 19 08:20:29 2018 -@@ -6,5 +6,5 @@ - AUTOMAKE_OPTIONS = foreign +diff -u1r dvisvgm-2.5/Makefile.am dvisvgm-src/Makefile.am +--- dvisvgm-2.5/Makefile.am 2018-07-31 07:51:05.000000000 -0700 ++++ dvisvgm-src/Makefile.am 2018-08-27 09:10:41.553596312 -0700 +@@ -7,3 +7,3 @@ EXTRA_DIST = COPYING -SUBDIRS = libs src tests doc +SUBDIRS = libs src #not for TL: tests doc ACLOCAL_AMFLAGS = -I m4 - -diff -u2r dvisvgm-2.4.2/src/Makefile.am dvisvgm-src/src/Makefile.am ---- dvisvgm-2.4.2/src/Makefile.am Thu Jul 19 00:52:27 2018 -+++ dvisvgm-src/src/Makefile.am Thu Jul 19 08:27:05 2018 -@@ -14,8 +14,5 @@ +diff -u1r dvisvgm-2.5/src/Makefile.am dvisvgm-src/src/Makefile.am +--- dvisvgm-2.5/src/Makefile.am 2018-07-31 07:53:41.000000000 -0700 ++++ dvisvgm-src/src/Makefile.am 2018-08-27 16:28:25.615599693 -0700 +@@ -14,6 +14,3 @@ $(noinst_LIBRARIES) \ - ../libs/clipper/libclipper.a \ -- ../libs/xxHash/libxxhash.a \ +- ../libs/clipper/libclipper.a \ - $(FREETYPE_LIBS) \ - $(FONTFORGE_LIBS) \ - $(ZLIB_LIBS) -+ ../libs/xxHash/libxxhash.a ++ ../libs/clipper/libclipper.a - if ENABLE_WOFF -@@ -26,5 +23,14 @@ - endif +@@ -43,3 +40,11 @@ +dvisvgm_LDADD += \ + $(KPATHSEA_LIBS) \ -+ $(POTRACE_LIBS) \ + $(FREETYPE2_LIBS) \ + $(FONTFORGE_LIBS) \ + $(ZLIB_LIBS) \ @@ -35,9 +29,7 @@ diff -u2r dvisvgm-2.4.2/src/Makefile.am dvisvgm-src/src/Makefile.am dvisvgm_DEPENDENCIES = $(noinst_LIBRARIES) +dvisvgm_DEPENDENCIES += $(KPATHSEA_DEPEND) $(ZLIB_DEPEND) $(FREETYPE2_DEPEND) - libdvisvgm_a_SOURCES = \ -@@ -246,35 +252,45 @@ - EXTRA_DIST = options.xml options.dtd iapi.h ierrors.h MiKTeXCom.hpp MiKTeXCom.cpp +@@ -263,18 +268,16 @@ -AM_CFLAGS = -Wall \ - $(ZLIB_CFLAGS) \ @@ -47,7 +39,6 @@ diff -u2r dvisvgm-2.4.2/src/Makefile.am dvisvgm-src/src/Makefile.am -AM_CXXFLAGS = -Wall -Wnon-virtual-dtor -Wno-mismatched-tags \ - -I$(top_srcdir)/libs/clipper \ - -I$(top_srcdir)/libs/variant/include \ -- -I$(top_srcdir)/libs/xxHash \ - $(KPSE_CFLAGS) \ - $(FREETYPE_CFLAGS) \ - $(ZLIB_CFLAGS) \ @@ -55,31 +46,32 @@ diff -u2r dvisvgm-2.4.2/src/Makefile.am dvisvgm-src/src/Makefile.am + $(ZLIB_INCLUDES) \ $(CODE_COVERAGE_CFLAGS) -+AM_CXXFLAGS = $(WARNING_CFLAGS) -Wnon-virtual-dtor \ ++AM_CXXFLAGS = $(WARNING_CFLAGS) -Wnon-virtual-dtor -Wno-mismatched-tags \ + -I$(dvisvgm_srcdir)/libs/clipper \ -+ -I$(dvisvgm_srcdir)/libs/variant/include \ -+ -I$(dvisvgm_srcdir)/libs/xxHash ++ -I$(dvisvgm_srcdir)/libs/variant/include + - AM_LDFLAGS = \ -- $(KPSE_LIBS) \ - $(CODE_COVERAGE_LDFLAGS) - - if ENABLE_WOFF + if USE_BUNDLED_LIBS + AM_CXXFLAGS += \ +- -I$(top_srcdir)/libs/potrace \ +- -I$(top_srcdir)/libs/xxHash ++ -I$(dvisvgm_srcdir)/libs/potrace \ ++ -I$(dvisvgm_srcdir)/libs/xxHash + else +@@ -291,4 +294,4 @@ AM_CFLAGS += \ - -I$(top_srcdir)/libs/ff-woff/fontforge \ - -I$(top_srcdir)/libs/ff-woff/inc + -I$(dvisvgm_srcdir)/libs/ff-woff/fontforge \ + -I$(dvisvgm_srcdir)/libs/ff-woff/inc +@@ -298,4 +301,4 @@ AM_CXXFLAGS += \ - $(TTFAUTOHINT_CFLAGS) \ - -I$(top_srcdir)/libs/brotli/include \ - -I$(top_srcdir)/libs/woff2/include + -I$(dvisvgm_srcdir)/libs/brotli/include \ + -I$(dvisvgm_srcdir)/libs/woff2/include - - AM_LDFLAGS += $(TTFAUTOHINT_LIBS) - endif + else +@@ -309,3 +312,16 @@ +AM_CXXFLAGS += \ + $(KPATHSEA_INCLUDES) \ @@ -88,28 +80,23 @@ diff -u2r dvisvgm-2.4.2/src/Makefile.am dvisvgm-src/src/Makefile.am + $(ZLIB_INCLUDES) \ + $(LIBGS_INCLUDES) \ + $(CODE_COVERAGE_CFLAGS) -+ + +if WIN32 +AM_CXXFLAGS += -DTEXLIVEWIN32 +endif WIN32 - ++ +if ! TEXLIVE_BUILD +# TL: do not try to rebuild these source files. # the command-line parser class is generated from options.xml by opt2cpp - $(srcdir)/CommandLine.hpp: options.xml -@@ -289,6 +305,16 @@ - +@@ -322,2 +338,3 @@ psdefs.ps: ; +endif ! TEXLIVE_BUILD - @CODE_COVERAGE_RULES@ - +@@ -326 +343,8 @@ CLEANFILES = *.gcda *.gcno + +## Rebuild libkpathsea +@KPATHSEA_RULE@ -+## Rebuild libpotrace -+@POTRACE_RULE@ +## Rebuild libfreetype +@FREETYPE2_RULE@ +## Rebuild libz diff --git a/Build/source/texk/dvisvgm/aclocal.m4 b/Build/source/texk/dvisvgm/aclocal.m4 index 37aca6cff37..8e92805971f 100644 --- a/Build/source/texk/dvisvgm/aclocal.m4 +++ b/Build/source/texk/dvisvgm/aclocal.m4 @@ -1234,7 +1234,6 @@ m4_include([../../m4/kpse-common.m4]) m4_include([../../m4/kpse-cxx-hack.m4]) m4_include([../../m4/kpse-freetype2-flags.m4]) m4_include([../../m4/kpse-kpathsea-flags.m4]) -m4_include([../../m4/kpse-potrace-flags.m4]) m4_include([../../m4/kpse-warnings.m4]) m4_include([../../m4/kpse-win32.m4]) m4_include([../../m4/kpse-zlib-flags.m4]) diff --git a/Build/source/texk/dvisvgm/config.h.in b/Build/source/texk/dvisvgm/config.h.in index 0e40d614eed..aae5e156c20 100644 --- a/Build/source/texk/dvisvgm/config.h.in +++ b/Build/source/texk/dvisvgm/config.h.in @@ -6,9 +6,6 @@ /* Set to 1 if PostScript support should be disabled */ #undef DISABLE_GS -/* Define if WOFF support is disabled */ -#undef DISABLE_WOFF - /* Define to 1 if `TIOCGWINSZ' requires . */ #undef GWINSZ_IN_SYS_IOCTL @@ -29,9 +26,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H -/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ -#undef HAVE_DOPRNT - /* Define to 1 if you have the header file. */ #undef HAVE_FLOAT_H @@ -77,10 +71,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H -/* Define to 1 if your system has a GNU libc compatible `malloc' function, and - to 0 otherwise. */ -#undef HAVE_MALLOC - /* Define to 1 if you have the `memcmp' function. */ #undef HAVE_MEMCMP @@ -90,9 +80,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H -/* Define to 1 if you have the `memset' function. */ -#undef HAVE_MEMSET - /* Define to 1 if you have the `mkstemp' function. */ #undef HAVE_MKSTEMP @@ -108,6 +95,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_PWD_H +/* Define to 1 if you have the `sigaction' function. */ +#undef HAVE_SIGACTION + /* Define to 1 if `stat' has the bug that it succeeds when given the zero-length file name argument. */ #undef HAVE_STAT_EMPTY_STRING_BUG @@ -121,9 +111,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H -/* Define to 1 if you have the `strcasecmp' function. */ -#undef HAVE_STRCASECMP - /* Define to 1 if you have the `strchr' function. */ #undef HAVE_STRCHR @@ -136,9 +123,6 @@ /* Define to 1 if you have the `strrchr' function. */ #undef HAVE_STRRCHR -/* Define to 1 if you have the `strtol' function. */ -#undef HAVE_STRTOL - /* Define to 1 if `st_mtim' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_MTIM @@ -165,15 +149,15 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H +/* Define to 1 if you have the `umask' function. */ +#undef HAVE_UMASK + /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the `uselocale' function. */ #undef HAVE_USELOCALE -/* Define to 1 if you have the `vprintf' function. */ -#undef HAVE_VPRINTF - /* Define to 1 if you have the header file. */ #undef HAVE_XLOCALE_H @@ -258,9 +242,6 @@ such a type exists and the standard includes do not define it. */ #undef int64_t -/* Define to rpl_malloc if the replacement function should be used. */ -#undef malloc - /* Define to `unsigned int' if does not define. */ #undef size_t diff --git a/Build/source/texk/dvisvgm/configure b/Build/source/texk/dvisvgm/configure index c466beed29d..4f129103da9 100755 --- a/Build/source/texk/dvisvgm/configure +++ b/Build/source/texk/dvisvgm/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for dvisvgm (TeX Live) 2.4.2. +# Generated by GNU Autoconf 2.69 for dvisvgm (TeX Live) 2.5. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='dvisvgm (TeX Live)' PACKAGE_TARNAME='dvisvgm--tex-live-' -PACKAGE_VERSION='2.4.2' -PACKAGE_STRING='dvisvgm (TeX Live) 2.4.2' +PACKAGE_VERSION='2.5' +PACKAGE_STRING='dvisvgm (TeX Live) 2.5' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -632,13 +632,19 @@ ac_includes_default="\ # include #endif" +ac_func_list= ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS +AM_LDFLAGS +AM_CPPFLAGS +DATE DVISVGM_TREE CODE_COVERAGE_RULES CODE_COVERAGE_ENABLED_FALSE CODE_COVERAGE_ENABLED_TRUE +USE_BUNDLED_LIBS_FALSE +USE_BUNDLED_LIBS_TRUE ENABLE_WOFF_FALSE ENABLE_WOFF_TRUE LIBOBJS @@ -653,10 +659,6 @@ ZLIB_RULE ZLIB_DEPEND ZLIB_LIBS ZLIB_INCLUDES -POTRACE_RULE -POTRACE_DEPEND -POTRACE_LIBS -POTRACE_INCLUDES KPATHSEA_RULE KPATHSEA_DEPEND KPATHSEA_LIBS @@ -812,14 +814,12 @@ enable_libtool_lock enable_largefile enable_cxx_runtime_hack with_system_kpathsea -with_system_potrace -with_potrace_includes -with_potrace_libdir with_system_zlib with_zlib_includes with_zlib_libdir with_system_freetype2 enable_woff +enable_bundled_libs ' ac_precious_vars='build_alias host_alias @@ -1375,7 +1375,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures dvisvgm (TeX Live) 2.4.2 to adapt to many kinds of systems. +\`configure' configures dvisvgm (TeX Live) 2.5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1446,7 +1446,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of dvisvgm (TeX Live) 2.4.2:";; + short | recursive ) echo "Configuration of dvisvgm (TeX Live) 2.5:";; esac cat <<\_ACEOF @@ -1473,7 +1473,9 @@ Optional Features: --disable-libtool-lock avoid locking (might break parallel builds) --disable-largefile omit support for large files --enable-cxx-runtime-hack link C++ runtime statically - --disable-woff Disable WOFF support [no] + --disable-woff Disable WOFF support [default=no] + --enable-bundled-libs use bundled libraries instead of the system ones + [default=no] Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1488,11 +1490,6 @@ Optional Packages: compiler's sysroot if not specified). --with-system-kpathsea use installed kpathsea headers and library (requires pkg-config) - --with-system-potrace use installed potrace headers and library - --with-potrace-includes=DIR - potrace headers installed in DIR - --with-potrace-libdir=DIR - potrace library installed in DIR --with-system-zlib use installed zlib headers and library --with-zlib-includes=DIR zlib headers installed in DIR @@ -1581,7 +1578,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -dvisvgm (TeX Live) configure 2.4.2 +dvisvgm (TeX Live) configure 2.5 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2449,7 +2446,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by dvisvgm (TeX Live) $as_me 2.4.2, which was +It was created by dvisvgm (TeX Live) $as_me 2.5, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2729,6 +2726,11 @@ $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi +as_fn_append ac_func_list " ftime" +as_fn_append ac_func_list " gettimeofday" +as_fn_append ac_func_list " sigaction" +as_fn_append ac_func_list " umask" +as_fn_append ac_func_list " uselocale" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false @@ -2797,7 +2799,9 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu +DATE="August 2018" +ac_config_headers="$ac_config_headers config.h" ac_aux_dir= for ac_dir in ../../build-aux "$srcdir"/../../build-aux; do @@ -2829,7 +2833,6 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - if test "x$enable_texlive_build" = xyes; then TEXLIVE_BUILD_TRUE= TEXLIVE_BUILD_FALSE='#' @@ -2840,7 +2843,7 @@ fi # Common code for all programs using libkpathsea. -# PROG_AR must become before KPSE_COMMON since that calls LT_INIT. +# PROG_AR must be run before KPSE_COMMON, since the latter calls LT_INIT. # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` @@ -8188,7 +8191,7 @@ fi # Define the identity of the package. PACKAGE='dvisvgm--tex-live-' - VERSION='2.4.2' + VERSION='2.5' cat >>confdefs.h <<_ACEOF @@ -13920,8 +13923,6 @@ fi -ac_config_headers="$ac_config_headers config.h" - cat >>confdefs.h <<_ACEOF @@ -20189,7 +20190,7 @@ Usage: $0 [OPTIONS] Report bugs to ." lt_cl_version="\ -dvisvgm (TeX Live) config.lt 2.4.2 +dvisvgm (TeX Live) config.lt 2.5 configured by $0, generated by GNU Autoconf 2.69. Copyright (C) 2011 Free Software Foundation, Inc. @@ -21499,41 +21500,6 @@ if test "x$kpse_cv_kpse_debug" != xyes; then : KPATHSEA_INCLUDES="$KPATHSEA_INCLUDES -DNO_DEBUG" fi -## _KPSE_LIB_FLAGS: Setup potrace (-lpotrace) flags - -# Check whether --with-system-potrace was given. -if test "${with_system_potrace+set}" = set; then : - withval=$with_system_potrace; -fi - -# Check whether --with-potrace-includes was given. -if test "${with_potrace_includes+set}" = set; then : - withval=$with_potrace_includes; -fi - -# Check whether --with-potrace-libdir was given. -if test "${with_potrace_libdir+set}" = set; then : - withval=$with_potrace_libdir; -fi -if test "x$with_system_potrace" = xyes; then - if test "x$with_potrace_includes" != x && test "x$with_potrace_includes" != xyes; then - POTRACE_INCLUDES="-I$with_potrace_includes" -fi -POTRACE_LIBS="-lpotrace" -if test "x$with_potrace_libdir" != x && test "x$with_potrace_libdir" != xyes; then - POTRACE_LIBS="-L$with_potrace_libdir $POTRACE_LIBS" -fi -else - POTRACE_INCLUDES="-I$kpse_BLD/libs/potrace/include" - POTRACE_LIBS="$kpse_BLD/libs/potrace/libpotrace.a" - POTRACE_DEPEND='${top_builddir}/../../libs/potrace/libpotrace.a' - POTRACE_RULE='# Rebuild libpotrace -$(POTRACE_DEPEND): ${top_builddir}/../../libs/potrace/include/potracelib.h - cd ${top_builddir}/../../libs/potrace && $(MAKE) $(AM_MAKEFLAGS) rebuild -${top_builddir}/../../libs/potrace/include/potracelib.h: - cd ${top_builddir}/../../libs/potrace && $(MAKE) $(AM_MAKEFLAGS) rebuild' -fi - ## _KPSE_LIB_FLAGS: Setup zlib (-lz) flags # Check whether --with-system-zlib was given. @@ -21806,7 +21772,7 @@ kpse_save_CPPFLAGS=$CPPFLAGS kpse_save_LIBS=$LIBS -# emacs-page +# emacs-page Ghostscript complexities. LIBGS_INCLUDES= LIBGS_LIBS= if test "x$enable_native_texlive_build" = xyes; then @@ -21868,9 +21834,6 @@ else fi -if test "x$have_libgs" = xyes; then - HAVE_LIBGS=1 -fi if test "x$have_libgs" = "xno"; then : # Ghostscript not found, check for dlopen { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 @@ -22523,129 +22486,6 @@ $as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if ${ac_cv_c_const+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - -#ifndef __cplusplus - /* Ultrix mips cc rejects this sort of thing. */ - typedef int charset[2]; - const charset cs = { 0, 0 }; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *pcpcc; - char **ppc; - /* NEC SVR4.0.2 mips cc rejects this. */ - struct point {int x, y;}; - static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in - an arm of an if-expression whose if-part is not a constant - expression */ - const char *g = "string"; - pcpcc = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++pcpcc; - ppc = (char**) pcpcc; - pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this sort of thing. */ - char tx; - char *t = &tx; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - if (s) return 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; } bx; - struct s *b = &bx; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - if (!foo) return 0; - } - return !cs[0] && !zero.x; -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_const=yes -else - ac_cv_c_const=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 -$as_echo "$ac_cv_c_const" >&6; } -if test $ac_cv_c_const = no; then - -$as_echo "#define const /**/" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 -$as_echo_n "checking for inline... " >&6; } -if ${ac_cv_c_inline+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __cplusplus -typedef int foo_t; -static $ac_kw foo_t static_foo () {return 0; } -$ac_kw foo_t foo () {return 0; } -#endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_inline=$ac_kw -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_inline" != no && break -done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 -$as_echo "$ac_cv_c_inline" >&6; } - -case $ac_cv_c_inline in - inline | yes) ;; - *) - case $ac_cv_c_inline in - no) ac_val=;; - *) ac_val=$ac_cv_c_inline;; - esac - cat >>confdefs.h <<_ACEOF -#ifndef __cplusplus -#define inline $ac_val -#endif -_ACEOF - ;; -esac - ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : @@ -22692,152 +22532,14 @@ $as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h fi +# TL? AC_C_CONST +# TL? AC_C_INLINE +# TL? AC_FUNC_CLOSEDIR_VOID +# TL? AC_FUNC_ERROR_AT_LINE +# TL? AC_FUNC_MALLOC +# TL? AC_FUNC_VPRINTF # Check for library functions. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether closedir returns void" >&5 -$as_echo_n "checking whether closedir returns void... " >&6; } -if ${ac_cv_func_closedir_void+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_closedir_void=yes -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header_dirent> -#ifndef __cplusplus -int closedir (); -#endif - -int -main () -{ -return closedir (opendir (".")) != 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_closedir_void=no -else - ac_cv_func_closedir_void=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_closedir_void" >&5 -$as_echo "$ac_cv_func_closedir_void" >&6; } -if test $ac_cv_func_closedir_void = yes; then - -$as_echo "#define CLOSEDIR_VOID 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5 -$as_echo_n "checking for error_at_line... " >&6; } -if ${ac_cv_lib_error_at_line+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -error_at_line (0, 0, "", 0, "an error occurred"); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_error_at_line=yes -else - ac_cv_lib_error_at_line=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5 -$as_echo "$ac_cv_lib_error_at_line" >&6; } -if test $ac_cv_lib_error_at_line = no; then - case " $LIBOBJS " in - *" error.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS error.$ac_objext" - ;; -esac - -fi - -for ac_header in stdlib.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" -if test "x$ac_cv_header_stdlib_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_STDLIB_H 1 -_ACEOF - -fi - -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 -$as_echo_n "checking for GNU libc compatible malloc... " >&6; } -if ${ac_cv_func_malloc_0_nonnull+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_malloc_0_nonnull=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined STDC_HEADERS || defined HAVE_STDLIB_H -# include -#else -char *malloc (); -#endif - -int -main () -{ -return ! malloc (0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_malloc_0_nonnull=yes -else - ac_cv_func_malloc_0_nonnull=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 -$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } -if test $ac_cv_func_malloc_0_nonnull = yes; then : - -$as_echo "#define HAVE_MALLOC 1" >>confdefs.h - -else - $as_echo "#define HAVE_MALLOC 0" >>confdefs.h - - case " $LIBOBJS " in - *" malloc.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS malloc.$ac_objext" - ;; -esac - - -$as_echo "#define malloc rpl_malloc" >>confdefs.h - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 $as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } if ${ac_cv_func_lstat_dereferences_slashed_symlink+:} false; then : @@ -22946,26 +22648,10 @@ _ACEOF fi -for ac_func in vprintf -do : - ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf" -if test "x$ac_cv_func_vprintf" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_VPRINTF 1 -_ACEOF - -ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" -if test "x$ac_cv_func__doprnt" = xyes; then : -$as_echo "#define HAVE_DOPRNT 1" >>confdefs.h -fi -fi -done - - -for ac_func in ftime gettimeofday memset strcasecmp strtol uselocale + for ac_func in $ac_func_list do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -22978,6 +22664,18 @@ fi done + + + + + + + + + + +# TL? memset strcasecmp strtol + # Check whether --enable-woff was given. if test "${enable_woff+set}" = set; then : enableval=$enable_woff; @@ -22985,7 +22683,6 @@ else enable_woff=yes fi - if test "x$enable_woff" = "xyes"; then ENABLE_WOFF_TRUE= ENABLE_WOFF_FALSE='#' @@ -22994,11 +22691,6 @@ else ENABLE_WOFF_FALSE= fi -if test "x$enable_woff" != "xyes" ; then - -$as_echo "#define DISABLE_WOFF 1" >>confdefs.h - -fi $as_echo "#define HAVE_LIBKPATHSEA 1" >>confdefs.h @@ -23015,7 +22707,26 @@ $as_echo "#define KPSE_CXX_UNSAFE 1" >>confdefs.h fi -# TL: not going to attempt code coverage. +# TL: skip ttfautohint? + +# Add option to enable linking of bundled libraries (brotli, woff2, xxhash). +# Check whether --enable-bundled-libs was given. +if test "${enable_bundled_libs+set}" = set; then : + enableval=$enable_bundled_libs; use_bundled_libs=yes +fi + + if test "x$use_bundled_libs" = "xyes" || test "x$enable_native_texlive_build" = xyes; then + USE_BUNDLED_LIBS_TRUE= + USE_BUNDLED_LIBS_FALSE='#' +else + USE_BUNDLED_LIBS_TRUE='#' + USE_BUNDLED_LIBS_FALSE= +fi + +# that is, use bundled libs for native TL build. + +# TL: not going to build_manpage (which is the default). +# TL: not going to attempt code coverage; need to subst it away. if false; then CODE_COVERAGE_ENABLED_TRUE= CODE_COVERAGE_ENABLED_FALSE='#' @@ -23030,7 +22741,10 @@ CODE_COVERAGE_RULES= DVISVGM_TREE=dvisvgm-src -ac_config_files="$ac_config_files Makefile dvisvgm-src/Makefile dvisvgm-src/libs/Makefile dvisvgm-src/libs/brotli/Makefile dvisvgm-src/libs/clipper/Makefile dvisvgm-src/libs/ff-woff/Makefile dvisvgm-src/libs/variant/Makefile dvisvgm-src/libs/woff2/Makefile dvisvgm-src/libs/xxHash/Makefile dvisvgm-src/src/Makefile dvisvgm-src/src/version.hpp" + + + +ac_config_files="$ac_config_files Makefile dvisvgm-src/Makefile dvisvgm-src/libs/Makefile dvisvgm-src/libs/brotli/Makefile dvisvgm-src/libs/clipper/Makefile dvisvgm-src/libs/ff-woff/Makefile dvisvgm-src/libs/potrace/Makefile dvisvgm-src/libs/variant/Makefile dvisvgm-src/libs/woff2/Makefile dvisvgm-src/libs/xxHash/Makefile dvisvgm-src/src/Makefile dvisvgm-src/src/version.hpp" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -23184,6 +22898,10 @@ if test -z "${ENABLE_WOFF_TRUE}" && test -z "${ENABLE_WOFF_FALSE}"; then as_fn_error $? "conditional \"ENABLE_WOFF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${USE_BUNDLED_LIBS_TRUE}" && test -z "${USE_BUNDLED_LIBS_FALSE}"; then + as_fn_error $? "conditional \"USE_BUNDLED_LIBS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${CODE_COVERAGE_ENABLED_TRUE}" && test -z "${CODE_COVERAGE_ENABLED_FALSE}"; then as_fn_error $? "conditional \"CODE_COVERAGE_ENABLED\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -23585,7 +23303,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by dvisvgm (TeX Live) $as_me 2.4.2, which was +This file was extended by dvisvgm (TeX Live) $as_me 2.5, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -23651,7 +23369,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -dvisvgm (TeX Live) config.status 2.4.2 +dvisvgm (TeX Live) config.status 2.5 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -24165,9 +23883,9 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 for ac_config_target in $ac_config_targets do case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "CXXLD.sh") CONFIG_COMMANDS="$CONFIG_COMMANDS CXXLD.sh" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "dvisvgm-src/Makefile") CONFIG_FILES="$CONFIG_FILES dvisvgm-src/Makefile" ;; @@ -24175,6 +23893,7 @@ do "dvisvgm-src/libs/brotli/Makefile") CONFIG_FILES="$CONFIG_FILES dvisvgm-src/libs/brotli/Makefile" ;; "dvisvgm-src/libs/clipper/Makefile") CONFIG_FILES="$CONFIG_FILES dvisvgm-src/libs/clipper/Makefile" ;; "dvisvgm-src/libs/ff-woff/Makefile") CONFIG_FILES="$CONFIG_FILES dvisvgm-src/libs/ff-woff/Makefile" ;; + "dvisvgm-src/libs/potrace/Makefile") CONFIG_FILES="$CONFIG_FILES dvisvgm-src/libs/potrace/Makefile" ;; "dvisvgm-src/libs/variant/Makefile") CONFIG_FILES="$CONFIG_FILES dvisvgm-src/libs/variant/Makefile" ;; "dvisvgm-src/libs/woff2/Makefile") CONFIG_FILES="$CONFIG_FILES dvisvgm-src/libs/woff2/Makefile" ;; "dvisvgm-src/libs/xxHash/Makefile") CONFIG_FILES="$CONFIG_FILES dvisvgm-src/libs/xxHash/Makefile" ;; diff --git a/Build/source/texk/dvisvgm/configure.ac b/Build/source/texk/dvisvgm/configure.ac index 1f73c8c77f4..91bdab925f4 100644 --- a/Build/source/texk/dvisvgm/configure.ac +++ b/Build/source/texk/dvisvgm/configure.ac @@ -12,22 +12,23 @@ dnl dnl Adapted for TeX Live from original dvisvgm configure.ac dnl Copyright 2005-2018 Martin Gieseking dnl +AC_PREREQ([2.65]) m4_include([version.ac])[] dnl define dvisvgm_version AC_INIT([dvisvgm (TeX Live)], dvisvgm_version, [tex-k@tug.org]) -AC_PREREQ([2.65]) +DATE="August 2018" AC_CONFIG_SRCDIR([dvisvgm-src/src/dvisvgm.cpp]) +AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_MACRO_DIRS([../../m4])dnl not just _DIR AC_CONFIG_AUX_DIR([../../build-aux]) -AC_CONFIG_MACRO_DIRS([../../m4]) AM_CONDITIONAL([TEXLIVE_BUILD], [test "x$enable_texlive_build" = xyes]) # Common code for all programs using libkpathsea. -# PROG_AR must become before KPSE_COMMON since that calls LT_INIT. +# PROG_AR must be run before KPSE_COMMON, since the latter calls LT_INIT. AM_PROG_AR KPSE_COMMON([dvisvgm]) -AC_CONFIG_HEADERS([config.h]) - +AH_TEMPLATE([TARGET_SYSTEM], [The machine triplet of the target system]) AC_DEFINE_UNQUOTED([TARGET_SYSTEM], ["$host"], [The machine triplet of the target system.]) @@ -46,13 +47,12 @@ AC_HEADER_TIOCGWINSZ KPSE_COND_WIN32 KPSE_KPATHSEA_FLAGS -KPSE_POTRACE_FLAGS KPSE_FREETYPE2_FLAGS KPSE_ZLIB_FLAGS KPSE_SAVE_FLAGS -# emacs-page +# emacs-page Ghostscript complexities. LIBGS_INCLUDES= LIBGS_LIBS= if test "x$enable_native_texlive_build" = xyes; then @@ -63,9 +63,6 @@ have_libgs=yes AC_CHECK_HEADER([ghostscript/iapi.h], [AC_CHECK_LIB(gs, gsapi_revision,, [have_libgs=no])], [have_libgs=no]) -if test "x$have_libgs" = xyes; then - HAVE_LIBGS=1 -fi AS_IF([test "x$have_libgs" = "xno"], # Ghostscript not found, check for dlopen [AC_CHECK_LIB(dl, dlopen,, @@ -159,28 +156,25 @@ AC_CHECK_HEADERS([libintl.h stdlib.h string.h strings.h unistd.h]) # Check for typedefs, structures, and compiler characteristics. AC_HEADER_STDBOOL -AC_C_CONST -AC_C_INLINE AC_TYPE_SIZE_T AC_STRUCT_TM +# TL? AC_C_CONST +# TL? AC_C_INLINE +# TL? AC_FUNC_CLOSEDIR_VOID +# TL? AC_FUNC_ERROR_AT_LINE +# TL? AC_FUNC_MALLOC +# TL? AC_FUNC_VPRINTF # Check for library functions. -AC_FUNC_CLOSEDIR_VOID -AC_FUNC_ERROR_AT_LINE -AC_FUNC_MALLOC AC_FUNC_STAT -AC_FUNC_VPRINTF -AC_CHECK_FUNCS([ftime gettimeofday memset strcasecmp strtol uselocale]) +AC_CHECK_FUNCS_ONCE([ftime gettimeofday sigaction umask uselocale]) +# TL? memset strcasecmp strtol AC_ARG_ENABLE([woff], - [AS_HELP_STRING([--disable-woff], [Disable WOFF support @<:@no@:>@])], + [AS_HELP_STRING([--disable-woff], [Disable WOFF support @<:@default=no@:>@])], [], [enable_woff=yes]) - AM_CONDITIONAL([ENABLE_WOFF], [test "x$enable_woff" = "xyes"]) -if test "x$enable_woff" != "xyes" ; then - AC_DEFINE([DISABLE_WOFF], 1, [Define if WOFF support is disabled]) -fi AC_DEFINE([HAVE_LIBKPATHSEA], 1, [Define to 1 if you have the `kpathsea' library (-lkpathsea).]) AC_DEFINE([HAVE_LIBFREETYPE], 1, [Define to 1 if you have the `freetype2' library (-lfreetype).]) @@ -189,19 +183,34 @@ if false; then AC_DEFINE([KPSE_CXX_UNSAFE], 1, [Define to 1 if the kpathsea headers are not C++ safe.]) fi -# TL: not going to attempt code coverage. +# TL: skip ttfautohint? + +# Add option to enable linking of bundled libraries (brotli, woff2, xxhash). +AC_ARG_ENABLE([bundled-libs], + [AS_HELP_STRING([--enable-bundled-libs], [use bundled libraries instead of the system ones @<:@default=no@:>@])], + [use_bundled_libs=yes]) +AM_CONDITIONAL([USE_BUNDLED_LIBS], [test "x$use_bundled_libs" = "xyes" dnl + || test "x$enable_native_texlive_build" = xyes]) +# that is, use bundled libs for native TL build. + +# TL: not going to build_manpage (which is the default). +# TL: not going to attempt code coverage; need to subst it away. AM_CONDITIONAL([CODE_COVERAGE_ENABLED], false) CODE_COVERAGE_RULES= AC_SUBST([CODE_COVERAGE_RULES]) AC_SUBST([DVISVGM_TREE], [dvisvgm-src]) +AC_SUBST(DATE) +AC_SUBST(AM_CPPFLAGS) +AC_SUBST(AM_LDFLAGS) AC_CONFIG_FILES([Makefile dvisvgm-src/Makefile dvisvgm-src/libs/Makefile dvisvgm-src/libs/brotli/Makefile dvisvgm-src/libs/clipper/Makefile dvisvgm-src/libs/ff-woff/Makefile + dvisvgm-src/libs/potrace/Makefile dvisvgm-src/libs/variant/Makefile dvisvgm-src/libs/woff2/Makefile dvisvgm-src/libs/xxHash/Makefile diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/AUTHORS b/Build/source/texk/dvisvgm/dvisvgm-src/AUTHORS index 6fe5ecc9245..cf134e303f7 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/AUTHORS +++ b/Build/source/texk/dvisvgm/dvisvgm-src/AUTHORS @@ -6,9 +6,8 @@ Yann Collet https://github.com/Cyan4973/xxHash Google Inc. - libs/woff2/brotli/* - libs/woff2/include/* - libs/woff2/src/* + libs/brotli/* + libs/woff2/* https://github.com/google/brotli https://github.com/google/woff2 @@ -20,6 +19,10 @@ Michael Park libs/variant/include/mpark/* https://github.com/mpark/variant +Peter Selinger + libs/potrace/* + http://potrace.sourceforge.net + George Williams libs/ff-woff/* https://github.com/fontforge/fontforge diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/ChangeLog b/Build/source/texk/dvisvgm/dvisvgm-src/ChangeLog deleted file mode 100644 index 3946c2c8fb7..00000000000 --- a/Build/source/texk/dvisvgm/dvisvgm-src/ChangeLog +++ /dev/null @@ -1,7916 +0,0 @@ -2018-07-18 Martin Gieseking - - * configure.ac, doc/Makefile.am: - don't try to build manpage if required tools are missing - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.4.2 - - * NEWS: - updated NEWS - -2018-07-17 Martin Gieseking - - * src/HyperlinkManager.cpp: - reduced extent of hyperlinked areas to get a tight bbox - -2018-07-15 Martin Gieseking - - * src/PsSpecialHandler.cpp: - use unique_ptr in bbox debug code - - * src/PSPreviewFilter.cpp, src/PSPreviewFilter.hpp: - removed redundant method PSPreviewFilter::getBorders() - - * src/PSPreviewFilter.cpp, src/PsSpecialHandler.cpp: - fixed computation of preview extents (closes #89) - - * src/PsSpecialHandler.cpp: - prevent warning about missing psfile "/dev/null" - -2018-07-07 Martin Gieseking - - * NEWS: - updated NEWS - - * .gitattributes: - added linguist settings to - .gitattributes - -https://github.com/github/linguist - -2018-07-06 Martin Gieseking - - * libs/brotli/Makefile.am, libs/brotli/common/dictionary.c, - libs/brotli/common/platform.h, libs/brotli/common/transform.c, - libs/brotli/common/version.h, libs/brotli/enc/backward_references.c, - libs/brotli/enc/brotli_bit_stream.h, libs/brotli/enc/command.h, - libs/brotli/enc/compress_fragment.c, - libs/brotli/enc/compress_fragment_two_pass.c, libs/brotli/enc/encode.c, - libs/brotli/enc/encoder_dict.h, libs/brotli/enc/fast_log.h, - libs/brotli/enc/hash.h, libs/brotli/enc/hash_composite_inc.h, - libs/brotli/enc/hash_rolling_inc.h, libs/brotli/enc/quality.h, - libs/brotli/enc/static_dict.c, libs/brotli/enc/write_bits.h, - libs/brotli/include/brotli/port.h, libs/brotli/include/brotli/types.h: - updated brotli to version 1.0.5 - - * README, README.md, doc/dvisvgm.txt.in, libs/ff-woff/README.md: - updated links to new project website dvisvgm.de - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.4.1 - -2018-07-04 Martin Gieseking - - * doc/dvisvgm.txt.in: - manpage: updated external links - -2018-06-23 Martin Gieseking - - * libs/woff2/include/woff2/version.h, libs/woff2/src/font.cc, - libs/woff2/src/normalize.cc, libs/woff2/src/woff2_enc.cc: - updated woff2 to 1.0.2 - -2018-06-08 Martin Gieseking - - * src/SourceInput.cpp, src/SourceInput.hpp: - moved handling of temporary files to separate class - -2018-05-30 Martin Gieseking - - * src/DVIToSVGActions.cpp, src/ImageToSVG.cpp: - fixed evaluation of progress delay - -2018-05-09 Martin Gieseking - - * doc/dvisvgm.txt.in: - minor fixes in manpage - -2018-05-04 Martin Gieseking - - * doc/conf-dblatex-pdf.xsl: - list options and specials in PDF bookmarks of manpage - - * doc/dvisvgm.txt.in: - manpage: ordered options alphabetically according to long name - -2018-05-03 Martin Gieseking - - * NEWS, README, README.md: - updated NEWS and README - -2018-05-02 Martin Gieseking - - * src/Calculator.cpp: - catch exception by reference rather than by value - -2018-04-30 Martin Gieseking - - * src/EPSFile.cpp, src/EPSFile.hpp, src/EPSToSVG.cpp: - changed signature of EPSFile::bbox() - - * src/CLCommandLine.cpp: - cmdline: fixed handling of 'usage' section - - * src/EPSToSVG.cpp, src/EPSToSVG.hpp, src/ImageToSVG.cpp, - src/ImageToSVG.hpp, src/Makefile.am: - derive EPSToSVG from abstract class ImageToSVG - - * doc/dvisvgm.txt.in, src/CommandLine.hpp, src/Makefile.am, - src/PDFToSVG.hpp, src/PSInterpreter.cpp, src/PSInterpreter.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, src/dvisvgm.cpp, - src/options.xml, src/psdefs.cpp, tests/CommandLineTest.cpp, - tests/PSInterpreterTest.cpp: - added option --pdf to convert PDF files to SVG - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.4 - -2018-04-28 Martin Gieseking - - * src/BoundingBox.cpp: - swap wrongly assigned variables (doesn't affect behavior) - -2018-04-26 Martin Gieseking - - * src/PsSpecialHandler.cpp: - psfile: use operator 'run' to simplify execution of (E)PS files - - * src/PSInterpreter.cpp, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.hpp, src/psdefs.cpp, tests/PSInterpreterTest.cpp: - added special pdffile to embed PDF graphics - - * src/PsSpecialHandler.cpp: - apply outer transformations to psfile/pdffile graphics - -2018-04-20 Martin Gieseking - - * src/Ghostscript.cpp, src/Ghostscript.hpp, src/dvisvgm.cpp, - tests/GhostscriptTest.cpp: - added function to get numeric GS revision - - * src/PSInterpreter.cpp, src/PSInterpreter.hpp: - moved GS init options to init method - - * src/PsSpecialHandler.cpp: - replaced str2double() with stod(); added check for zero bbox - - * src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.hpp, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.hpp, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.hpp, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.hpp, - src/HtmlSpecialHandler.cpp, src/HtmlSpecialHandler.hpp, - src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.hpp, - src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.hpp, - src/PdfSpecialHandler.cpp, src/PdfSpecialHandler.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, - src/SpecialHandler.hpp, src/SpecialManager.cpp, - src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.hpp, - tests/ColorSpecialTest.cpp, tests/DvisvgmSpecialTest.cpp, - tests/PapersizeSpecialTest.cpp, tests/TpicSpecialTest.cpp: - changed type of \special prefix from const char* to string - - * src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.hpp, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.hpp, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.hpp, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.hpp, - src/HtmlSpecialHandler.cpp, src/HtmlSpecialHandler.hpp, - src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.hpp, - src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.hpp, - src/PdfSpecialHandler.cpp, src/PdfSpecialHandler.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, - src/SpecialHandler.hpp, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.hpp: - removed const from result vector of SpecialHandler::prefixes() - -2018-04-19 Martin Gieseking - - * libs/xxHash/xxhash.c, libs/xxHash/xxhash.h: - updated xxHash to version 0.6.5 - - * src/psdefs.cpp: - fixed handling of PS operator 'setgstate' - -2018-04-16 Martin Gieseking - - * m4/ax_cxx_compile_stdcxx.m4: - updated ax_cxx_compile_stdcxx.m4 to version 8 - -2018-04-13 Martin Gieseking - - * src/BgColorSpecialHandler.hpp, src/DvisvgmSpecialHandler.hpp, - src/EmSpecialHandler.hpp, src/HtmlSpecialHandler.hpp, - src/NoPsSpecialHandler.hpp, src/PapersizeSpecialHandler.hpp, - src/PdfSpecialHandler.hpp, src/PsSpecialHandler.hpp, - src/SpecialHandler.hpp, src/SpecialManager.cpp, src/SpecialManager.hpp, - src/TpicSpecialHandler.hpp: - merged listener methods into SpecialHandler class - - * src/CommandLine.hpp: - made opt2cpp compatible with Python 3 - -2018-04-11 Martin Gieseking - - * libs/brotli/Makefile.am, libs/brotli/common/constants.h, - libs/brotli/common/platform.h, libs/brotli/common/version.h, - libs/brotli/enc/backward_references.c, - libs/brotli/enc/backward_references_hq.c, libs/brotli/enc/command.h, - libs/brotli/enc/context.h, libs/brotli/enc/encode.c, - libs/brotli/enc/memory.h, libs/brotli/enc/metablock.c, - libs/brotli/enc/metablock.h, libs/brotli/enc/params.h, - libs/brotli/enc/port.h, libs/brotli/enc/quality.h, - libs/brotli/enc/write_bits.h, libs/brotli/include/brotli/decode.h, - libs/brotli/include/brotli/encode.h: - updated brotli to version 1.0.4 - -2018-03-29 Martin Gieseking - - * doc/dvisvgm.txt.in, src/SVGOutput.cpp, src/ZLibOutputStream.hpp, - src/dvisvgm.cpp: - enabled to output compressed SVG data to stdout - - * src/dvisvgm.cpp: - renamed SourceInput variable - -2018-03-28 Martin Gieseking - - * src/dvisvgm.cpp: - simplified main() function - -2018-03-27 Martin Gieseking - - * doc/dvisvgm.txt.in, src/CLCommandLine.cpp, src/CLCommandLine.hpp, - src/CommandLine.hpp, src/EPSFile.cpp, src/EPSFile.hpp, src/EPSToSVG.cpp, - src/EPSToSVG.hpp, src/FileSystem.cpp, src/Makefile.am, - src/PsSpecialHandler.cpp, src/SVGOutput.cpp, src/SVGOutput.hpp, - src/SourceInput.cpp, src/SourceInput.hpp, src/dvisvgm.cpp, - src/options.xml, tests/CommandLineTest.cpp, tests/SVGOutputTest.cpp: - added option to read DVI/EPS input from stdin (closes #86) - -2018-03-26 Martin Gieseking - - * src/PSInterpreter.cpp, src/PSInterpreter.hpp, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.hpp, src/psdefs.cpp, tests/PSInterpreterTest.cpp: - PS handler: added processing of .setshapealpha and .setblendmode - -2018-03-23 Martin Gieseking - - * src/Matrix.cpp, src/Matrix.hpp, tests/MatrixTest.cpp: - added initlist constructor to class Matrix - - * src/PSInterpreter.cpp, src/PSInterpreter.hpp, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.hpp, src/psdefs.cpp, tests/PSInterpreterTest.cpp: - psfile special: added evaluation of operator 'setpagedevice' - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.3.5 - - * NEWS: - updated NEWS - -2018-03-21 Martin Gieseking - - * src/PsSpecialHandler.cpp: - added missing PS header required to evaluate color names - - * src/PSInterpreter.cpp, src/psdefs.cpp: - drop GS option -dSAFER to stay compatible with GS 9.23 - -2018-03-13 Martin Gieseking - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.3.4 - - * NEWS: - updated NEWS - -2018-03-12 Martin Gieseking - - * tests/data/Makefile.am: - add required test file cmr10.pfb to source tarballs (closes #87) - -2018-03-07 Martin Gieseking - - * src/EmSpecialHandler.hpp, src/XMLDocument.hpp, src/dvisvgm.cpp: - replaced memory-inefficient lists with vectors - - * src/XMLNode.cpp, src/XMLNode.hpp: - replaced lists of XML element pointers with deques - - * src/CLCommandLine.cpp: - fixed message printed if command-line contains an isolated '-' - -2018-03-03 Martin Gieseking - - * libs/brotli/Makefile.am, libs/brotli/common/constants.h, - libs/brotli/common/context.h, libs/brotli/common/dictionary.h, - libs/brotli/common/platform.h, libs/brotli/common/transform.h, - libs/brotli/common/version.h, libs/brotli/enc/backward_references.c, - libs/brotli/enc/backward_references.h, - libs/brotli/enc/backward_references_hq.c, - libs/brotli/enc/backward_references_hq.h, - libs/brotli/enc/backward_references_inc.h, libs/brotli/enc/bit_cost.c, - libs/brotli/enc/bit_cost.h, libs/brotli/enc/block_encoder_inc.h, - libs/brotli/enc/block_splitter.c, libs/brotli/enc/block_splitter.h, - libs/brotli/enc/block_splitter_inc.h, - libs/brotli/enc/brotli_bit_stream.c, libs/brotli/enc/brotli_bit_stream.h, - libs/brotli/enc/cluster.c, libs/brotli/enc/cluster.h, - libs/brotli/enc/command.h, libs/brotli/enc/compress_fragment.c, - libs/brotli/enc/compress_fragment.h, - libs/brotli/enc/compress_fragment_two_pass.c, - libs/brotli/enc/compress_fragment_two_pass.h, - libs/brotli/enc/dictionary_hash.c, libs/brotli/enc/encode.c, - libs/brotli/enc/encoder_dict.c, libs/brotli/enc/encoder_dict.h, - libs/brotli/enc/entropy_encode.c, libs/brotli/enc/entropy_encode.h, - libs/brotli/enc/entropy_encode_static.h, libs/brotli/enc/fast_log.h, - libs/brotli/enc/find_match_length.h, libs/brotli/enc/hash.h, - libs/brotli/enc/hash_forgetful_chain_inc.h, - libs/brotli/enc/hash_longest_match64_inc.h, - libs/brotli/enc/hash_longest_match_inc.h, - libs/brotli/enc/hash_longest_match_quickly_inc.h, - libs/brotli/enc/hash_to_binary_tree_inc.h, libs/brotli/enc/histogram.c, - libs/brotli/enc/histogram.h, libs/brotli/enc/histogram_inc.h, - libs/brotli/enc/literal_cost.c, libs/brotli/enc/literal_cost.h, - libs/brotli/enc/memory.c, libs/brotli/enc/memory.h, - libs/brotli/enc/metablock.c, libs/brotli/enc/metablock.h, - libs/brotli/enc/metablock_inc.h, libs/brotli/enc/params.h, - libs/brotli/enc/prefix.h, libs/brotli/enc/quality.h, - libs/brotli/enc/ringbuffer.h, libs/brotli/enc/static_dict.c, - libs/brotli/enc/static_dict.h, libs/brotli/enc/static_dict_lut.h, - libs/brotli/enc/utf8_util.c, libs/brotli/enc/utf8_util.h, - libs/brotli/enc/write_bits.h, libs/brotli/include/brotli/decode.h, - libs/brotli/include/brotli/encode.h, libs/brotli/include/brotli/port.h: - updated brotli to version 1.0.3 - -2018-02-20 Martin Gieseking - - * doc/dvisvgm.txt.in: - minor changes of the manpage - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.3.3 - - * NEWS: - updated NEWS - -2018-02-19 Martin Gieseking - - * src/PdfSpecialHandler.cpp, src/PdfSpecialHandler.hpp: - don't remove fontmap definitions before processing pdf:mapXXX specials - - * src/FontEngine.cpp: - prevent creating string from nullptr - -2018-02-09 Martin Gieseking - - * src/FileSystem.cpp, src/FontCache.cpp, src/FontMap.cpp, - src/GFGlyphTracer.cpp, src/MetafontWrapper.cpp, src/PsSpecialHandler.cpp, - src/utility.cpp, tests/DVIReaderTest.cpp, tests/GFReaderTest.cpp, - tests/JFMReaderTest.cpp, tests/TFMReaderTest.cpp: - removed calls of c_str() redundant since C++11 - - * src/StreamReader.cpp: - replaced c_str() with data() in StreamReader - -2018-02-08 Martin Gieseking - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.3.2 - - * src/TpicSpecialHandler.cpp: - prevent potential division by 0 - - * src/dvisvgm.cpp: - prevent dereferencing nullptr (CACHE_PATH) - - * NEWS: - updated NEWS - -2018-02-05 Martin Gieseking - - * src/DVIActions.hpp, src/DVIReader.cpp, src/DVIReader.hpp, - src/DVIToSVG.cpp, src/DVIToSVG.hpp, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.hpp: - don't update the SVG position after DVIActions::setChar() -Otherwise, all - characters get an explicit x position assigned even if it's -already - reached by applying the character's advance width. - -2018-01-27 Hironobu Yamashita - - * src/JFM.cpp: - JFM.cpp: support new JFM spec introduced in TeX Live r46452 - - * src/JFM.cpp, src/JFM.hpp, tests/JFMReaderTest.cpp: - adapted types to conform new JFM format - - * src/options.xml: - updated year in options.xml - - * src/FileFinder.cpp, src/Process.cpp: - relaxed reading from process pipe; fixed getting output of kpsewhich - (Win only) - -2018-01-16 Martin Gieseking - - * src/CMap.hpp, src/RangeMap.hpp, src/ToUnicodeMap.cpp, - tests/RangeMapTest.cpp, tests/ToUnicodeMapTest.cpp: - renamed RangeMap::size() to RangeMap::numRanges() - -2018-01-14 Martin Gieseking - - * src/RangeMap.cpp, src/RangeMap.hpp: - added iterator and some getters to RangeMap - -2018-01-12 Martin Gieseking - - * .appveyor.yml: - AppVeyor: updated to FreeType 2.9 and ttfautohint 1.8.1 - - * .appveyor.yml: - AppVeyor: fixed download link of ttfautohint-dll - - * NEWS: - updated NEWS - -2018-01-11 Martin Gieseking - - * doc/dvisvgm.txt.in: - manpage: reworded info about option --bbox=preview (closes #83) - -2018-01-09 Martin Gieseking - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.3.1 - -2018-01-03 Martin Gieseking - - * src/CMapReader.cpp, src/Directory.cpp, src/Directory.hpp, - src/DvisvgmSpecialHandler.cpp, src/FileFinder.cpp, src/FileFinder.hpp, - src/FilePath.cpp, src/FilePath.hpp, src/FileSystem.cpp, - src/FileSystem.hpp, src/Font.cpp, src/FontCache.cpp, src/FontCache.hpp, - src/FontMap.cpp, src/FontMetrics.cpp, src/FontMetrics.hpp, - src/MetafontWrapper.cpp: - replaced some C string parameters with C++ strings - -2018-01-02 Martin Gieseking - - * Makefile.am, README, README.md, configure.ac, doc/Makefile.am, - doc/conf-dblatex-man.xsl, doc/conf-dblatex-pdf.xsl, doc/db2html.xsl, - doc/dvisvgm.txt.in, doc/tweak-db-article.xsl, doc/tweak-db-refentry.xsl, - doc/tweak-dblatex-pdf.xsl, libs/Makefile.am, - libs/ff-woff/fontforge/tmpfile2.cpp, src/AGLTable.hpp, - src/BasicDVIReader.cpp, src/BasicDVIReader.hpp, src/Bezier.cpp, - src/Bezier.hpp, src/BgColorSpecialHandler.cpp, - src/BgColorSpecialHandler.hpp, src/Bitmap.cpp, src/Bitmap.hpp, - src/BoundingBox.cpp, src/BoundingBox.hpp, src/CLCommandLine.cpp, - src/CLCommandLine.hpp, src/CLOption.hpp, src/CMap.cpp, src/CMap.hpp, - src/CMapManager.cpp, src/CMapManager.hpp, src/CMapReader.cpp, - src/CMapReader.hpp, src/CRC32.cpp, src/CRC32.hpp, src/Calculator.cpp, - src/Calculator.hpp, src/CharMapID.cpp, src/CharMapID.hpp, - src/Character.hpp, src/Color.cpp, src/Color.hpp, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.hpp, - src/CommandLine.hpp, src/DLLoader.cpp, src/DLLoader.hpp, - src/DVIActions.hpp, src/DVIReader.cpp, src/DVIReader.hpp, - src/DVIToSVG.cpp, src/DVIToSVG.hpp, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.hpp, src/DependencyGraph.hpp, src/Directory.cpp, - src/Directory.hpp, src/DvisvgmSpecialHandler.cpp, - src/DvisvgmSpecialHandler.hpp, src/EPSFile.cpp, src/EPSFile.hpp, - src/EPSToSVG.cpp, src/EPSToSVG.hpp, src/EmSpecialHandler.cpp, - src/EmSpecialHandler.hpp, src/EncFile.cpp, src/EncFile.hpp, - src/FileFinder.cpp, src/FileFinder.hpp, src/FilePath.cpp, - src/FilePath.hpp, src/FileSystem.cpp, src/FileSystem.hpp, - src/FixWord.hpp, src/Font.cpp, src/Font.hpp, src/FontCache.cpp, - src/FontCache.hpp, src/FontEncoding.cpp, src/FontEncoding.hpp, - src/FontEngine.cpp, src/FontEngine.hpp, src/FontManager.cpp, - src/FontManager.hpp, src/FontMap.cpp, src/FontMap.hpp, - src/FontMetrics.cpp, src/FontMetrics.hpp, src/FontStyle.hpp, - src/FontWriter.cpp, src/FontWriter.hpp, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.hpp, src/GFReader.cpp, src/GFReader.hpp, - src/GFTracer.cpp, src/GFTracer.hpp, src/Ghostscript.cpp, - src/Ghostscript.hpp, src/Glyph.hpp, src/GlyphTracerMessages.hpp, - src/GraphicsPath.hpp, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.hpp, src/HyperlinkManager.cpp, - src/HyperlinkManager.hpp, src/InputBuffer.cpp, src/InputBuffer.hpp, - src/InputReader.cpp, src/InputReader.hpp, src/JFM.cpp, src/JFM.hpp, - src/Length.cpp, src/Length.hpp, src/Makefile.am, src/MapLine.cpp, - src/MapLine.hpp, src/Matrix.cpp, src/Matrix.hpp, src/Message.cpp, - src/Message.hpp, src/MessageException.hpp, src/MetafontWrapper.cpp, - src/MetafontWrapper.hpp, src/MiKTeXCom.cpp, src/MiKTeXCom.hpp, - src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.hpp, - src/NumericRanges.hpp, src/PDFParser.cpp, src/PDFParser.hpp, - src/PSFilter.hpp, src/PSInterpreter.cpp, src/PSInterpreter.hpp, - src/PSPattern.cpp, src/PSPattern.hpp, src/PSPreviewFilter.cpp, - src/PSPreviewFilter.hpp, src/PageRanges.cpp, src/PageRanges.hpp, - src/PageSize.cpp, src/PageSize.hpp, src/Pair.hpp, - src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.hpp, - src/PathClipper.cpp, src/PathClipper.hpp, src/PdfSpecialHandler.cpp, - src/PdfSpecialHandler.hpp, src/PreScanDVIReader.cpp, - src/PreScanDVIReader.hpp, src/Process.cpp, src/Process.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, src/RangeMap.cpp, - src/RangeMap.hpp, src/SVGCharHandler.cpp, src/SVGCharHandler.hpp, - src/SVGCharHandlerFactory.cpp, src/SVGCharHandlerFactory.hpp, - src/SVGCharPathHandler.cpp, src/SVGCharPathHandler.hpp, - src/SVGCharTspanTextHandler.cpp, src/SVGCharTspanTextHandler.hpp, - src/SVGOutput.cpp, src/SVGOutput.hpp, src/SVGSingleCharTextHandler.cpp, - src/SVGSingleCharTextHandler.hpp, src/SVGTree.cpp, src/SVGTree.hpp, - src/ShadingPatch.cpp, src/ShadingPatch.hpp, src/SignalHandler.cpp, - src/SignalHandler.hpp, src/SpecialActions.hpp, src/SpecialHandler.hpp, - src/SpecialManager.cpp, src/SpecialManager.hpp, src/StreamReader.cpp, - src/StreamReader.hpp, src/StreamWriter.cpp, src/StreamWriter.hpp, - src/Subfont.cpp, src/Subfont.hpp, src/System.cpp, src/System.hpp, - src/TFM.cpp, src/TFM.hpp, src/TTFAutohint.cpp, src/TTFAutohint.hpp, - src/TensorProductPatch.cpp, src/TensorProductPatch.hpp, src/Terminal.cpp, - src/Terminal.hpp, src/ToUnicodeMap.cpp, src/ToUnicodeMap.hpp, - src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.hpp, - src/TriangularPatch.cpp, src/TriangularPatch.hpp, src/TrueTypeFont.cpp, - src/TrueTypeFont.hpp, src/Unicode.cpp, src/Unicode.hpp, - src/VFActions.hpp, src/VFReader.cpp, src/VFReader.hpp, - src/VectorIterator.hpp, src/VectorStream.hpp, src/XMLDocument.cpp, - src/XMLDocument.hpp, src/XMLNode.cpp, src/XMLNode.hpp, src/XMLString.cpp, - src/XMLString.hpp, src/ZLibOutputStream.hpp, src/dvisvgm.cpp, - src/ffwrapper.c, src/ffwrapper.h, src/macros.hpp, src/options.dtd, - src/options.xml, src/psdefs.cpp, src/utility.cpp, src/utility.hpp, - src/version.hpp, src/version.hpp.in, src/windows.hpp, - tests/BezierTest.cpp, tests/BitmapTest.cpp, tests/BoundingBoxTest.cpp, - tests/CMapManagerTest.cpp, tests/CMapReaderTest.cpp, tests/CMapTest.cpp, - tests/CRC32Test.cpp, tests/CalculatorTest.cpp, - tests/ColorSpecialTest.cpp, tests/ColorTest.cpp, - tests/CommandLineTest.cpp, tests/DVIReaderTest.cpp, - tests/DependencyGraphTest.cpp, tests/DirectoryTest.cpp, - tests/DvisvgmSpecialTest.cpp, tests/EmSpecialTest.cpp, - tests/FileFinderTest.cpp, tests/FilePathTest.cpp, - tests/FileSystemTest.cpp, tests/FontCacheTest.cpp, - tests/FontManagerTest.cpp, tests/FontMapTest.cpp, - tests/GFGlyphTracerTest.cpp, tests/GFReaderTest.cpp, - tests/GhostscriptTest.cpp, tests/GraphicsPathTest.cpp, - tests/JFMReaderTest.cpp, tests/LengthTest.cpp, tests/Makefile.am, - tests/MapLineTest.cpp, tests/MatrixTest.cpp, - tests/MessageExceptionTest.cpp, tests/PDFParserTest.cpp, - tests/PSInterpreterTest.cpp, tests/PageRagesTest.cpp, - tests/PageSizeTest.cpp, tests/PairTest.cpp, - tests/PapersizeSpecialTest.cpp, tests/RangeMapTest.cpp, - tests/SVGOutputTest.cpp, tests/ShadingPatchTest.cpp, - tests/SpecialManagerTest.cpp, tests/SplittedCharInputBufferTest.cpp, - tests/StreamInputBufferTest.cpp, tests/StreamReaderTest.cpp, - tests/StreamWriterTest.cpp, tests/StringMatcherTest.cpp, - tests/SubfontTest.cpp, tests/TFMReaderTest.cpp, - tests/TensorProductPatchTest.cpp, tests/ToUnicodeMapTest.cpp, - tests/TpicSpecialTest.cpp, tests/TriangularPatchTest.cpp, - tests/UnicodeTest.cpp, tests/UtilityTest.cpp, - tests/VectorIteratorTest.cpp, tests/VectorStreamTest.cpp, - tests/XMLNodeTest.cpp, tests/XMLStringTest.cpp, tests/check-conv, - tests/create-makefile, tests/data/Makefile.am, tests/genhashcheck.py, - tests/normalize.xsl, tests/testmain.cpp: - updated year in copyright statements to 2018 - - * src/dvisvgm.cpp: - avoid potential dangling string pointer to --fontmap argument - - * src/Font.cpp: - fixed char width of fonts slanted by style option (closes #82) - -2017-12-31 Martin Gieseking - - * src/TTFAutohint.hpp: - don't declare member variables of TTFAutohint if ttfautohint is not - available - - * src/FontWriter.cpp: - keep unhinted TTF if autohinting failed - -2017-12-28 Martin Gieseking - - * .appveyor.yml: - AppVeyor: download and install ttfautohint headers - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.3 - - * NEWS, README, README.md: - updated README and NEWS - -2017-12-27 Martin Gieseking - - * src/DLLoader.cpp, src/DLLoader.hpp, src/Ghostscript.cpp, - src/TTFAutohint.cpp: - simplify function to load a symbol from a dynamic library - -2017-12-23 Martin Gieseking - - * configure.ac, src/DLLoader.cpp, src/DLLoader.hpp, src/FontWriter.cpp, - src/Makefile.am, src/TTFAutohint.cpp, src/TTFAutohint.hpp, - src/dvisvgm.cpp: - added code to load libttfautohint dynamically at runtime - -2017-12-22 Martin Gieseking - - * libs/xxHash/xxhash.c, libs/xxHash/xxhash.h: - updated xxHash to version 0.6.4 - -2017-12-21 Martin Gieseking - - * tests/gtest/include/gtest/gtest-param-test.h, - tests/gtest/include/gtest/gtest-printers.h, - tests/gtest/include/gtest/gtest-spi.h, - tests/gtest/include/gtest/gtest-typed-test.h, - tests/gtest/include/gtest/gtest.h, - tests/gtest/include/gtest/internal/custom/gtest-port.h, - tests/gtest/include/gtest/internal/custom/gtest.h, - tests/gtest/include/gtest/internal/gtest-internal.h, - tests/gtest/include/gtest/internal/gtest-param-util-generated.h, - tests/gtest/include/gtest/internal/gtest-param-util.h, - tests/gtest/include/gtest/internal/gtest-port-arch.h, - tests/gtest/include/gtest/internal/gtest-port.h, - tests/gtest/src/gtest-death-test.cc, - tests/gtest/src/gtest-internal-inl.h, tests/gtest/src/gtest-port.cc, - tests/gtest/src/gtest-printers.cc, tests/gtest/src/gtest.cc: - updated gtest - -2017-12-19 Martin Gieseking - - * configure.ac: - configure: dropped check of outdated Ghostscript version - - * configure.ac, src/Makefile.am: - configure: added --with-kpathsea to set the path of the kpathsea devel - files -closes #71 - -2017-12-18 Martin Gieseking - - * src/psdefs.cpp: - psdefs: replaced '6 array' with 'matrix' - -2017-12-17 Martin Gieseking - - * libs/woff2/Makefile.am, libs/woff2/include/woff2/file.h, - src/FontWriter.cpp, src/FontWriter.hpp, src/Makefile.am, - src/StreamReader.hpp, src/StreamWriter.cpp, src/StreamWriter.hpp, - src/TrueTypeFont.cpp, src/TrueTypeFont.hpp, src/ffwrapper.c, - src/ffwrapper.h, src/utility.cpp, src/utility.hpp: - replaced ff_sfd_to_woff() with TrueTypeFont::writeWOFF() - - * configure.ac, src/FontWriter.cpp, src/Makefile.am, src/dvisvgm.cpp: - added optional support for ttfautohint - -2017-12-14 Martin Gieseking - - * configure.ac, libs/Makefile.am, libs/brotli/LICENSE, - libs/brotli/Makefile.am, libs/brotli/common/constants.h, - libs/brotli/common/dictionary.c, libs/brotli/common/dictionary.h, - libs/brotli/common/version.h, libs/brotli/enc/backward_references.c, - libs/brotli/enc/backward_references.h, - libs/brotli/enc/backward_references_hq.c, - libs/brotli/enc/backward_references_hq.h, - libs/brotli/enc/backward_references_inc.h, libs/brotli/enc/bit_cost.c, - libs/brotli/enc/bit_cost.h, libs/brotli/enc/bit_cost_inc.h, - libs/brotli/enc/block_encoder_inc.h, libs/brotli/enc/block_splitter.c, - libs/brotli/enc/block_splitter.h, libs/brotli/enc/block_splitter_inc.h, - libs/brotli/enc/brotli_bit_stream.c, libs/brotli/enc/brotli_bit_stream.h, - libs/brotli/enc/cluster.c, libs/brotli/enc/cluster.h, - libs/brotli/enc/cluster_inc.h, libs/brotli/enc/command.h, - libs/brotli/enc/compress_fragment.c, libs/brotli/enc/compress_fragment.h, - libs/brotli/enc/compress_fragment_two_pass.c, - libs/brotli/enc/compress_fragment_two_pass.h, libs/brotli/enc/context.h, - libs/brotli/enc/dictionary_hash.c, libs/brotli/enc/dictionary_hash.h, - libs/brotli/enc/encode.c, libs/brotli/enc/entropy_encode.c, - libs/brotli/enc/entropy_encode.h, - libs/brotli/enc/entropy_encode_static.h, libs/brotli/enc/fast_log.h, - libs/brotli/enc/find_match_length.h, libs/brotli/enc/hash.h, - libs/brotli/enc/hash_forgetful_chain_inc.h, - libs/brotli/enc/hash_longest_match64_inc.h, - libs/brotli/enc/hash_longest_match_inc.h, - libs/brotli/enc/hash_longest_match_quickly_inc.h, - libs/brotli/enc/hash_to_binary_tree_inc.h, libs/brotli/enc/histogram.c, - libs/brotli/enc/histogram.h, libs/brotli/enc/histogram_inc.h, - libs/brotli/enc/literal_cost.c, libs/brotli/enc/literal_cost.h, - libs/brotli/enc/memory.c, libs/brotli/enc/memory.h, - libs/brotli/enc/metablock.c, libs/brotli/enc/metablock.h, - libs/brotli/enc/metablock_inc.h, libs/brotli/enc/port.h, - libs/brotli/enc/prefix.h, libs/brotli/enc/quality.h, - libs/brotli/enc/ringbuffer.h, libs/brotli/enc/static_dict.c, - libs/brotli/enc/static_dict.h, libs/brotli/enc/static_dict_lut.h, - libs/brotli/enc/utf8_util.c, libs/brotli/enc/utf8_util.h, - libs/brotli/enc/write_bits.h, libs/brotli/include/brotli/decode.h, - libs/brotli/include/brotli/encode.h, libs/brotli/include/brotli/port.h, - libs/brotli/include/brotli/types.h, libs/woff2/Makefile.am, - libs/woff2/brotli/LICENSE, libs/woff2/brotli/Makefile.am, - libs/woff2/brotli/common/constants.h, - libs/woff2/brotli/common/dictionary.c, - libs/woff2/brotli/common/dictionary.h, - libs/woff2/brotli/common/version.h, - libs/woff2/brotli/enc/backward_references.c, - libs/woff2/brotli/enc/backward_references.h, - libs/woff2/brotli/enc/backward_references_hq.c, - libs/woff2/brotli/enc/backward_references_hq.h, - libs/woff2/brotli/enc/backward_references_inc.h, - libs/woff2/brotli/enc/bit_cost.c, libs/woff2/brotli/enc/bit_cost.h, - libs/woff2/brotli/enc/bit_cost_inc.h, - libs/woff2/brotli/enc/block_encoder_inc.h, - libs/woff2/brotli/enc/block_splitter.c, - libs/woff2/brotli/enc/block_splitter.h, - libs/woff2/brotli/enc/block_splitter_inc.h, - libs/woff2/brotli/enc/brotli_bit_stream.c, - libs/woff2/brotli/enc/brotli_bit_stream.h, - libs/woff2/brotli/enc/cluster.c, libs/woff2/brotli/enc/cluster.h, - libs/woff2/brotli/enc/cluster_inc.h, libs/woff2/brotli/enc/command.h, - libs/woff2/brotli/enc/compress_fragment.c, - libs/woff2/brotli/enc/compress_fragment.h, - libs/woff2/brotli/enc/compress_fragment_two_pass.c, - libs/woff2/brotli/enc/compress_fragment_two_pass.h, - libs/woff2/brotli/enc/context.h, libs/woff2/brotli/enc/dictionary_hash.c, - libs/woff2/brotli/enc/dictionary_hash.h, libs/woff2/brotli/enc/encode.c, - libs/woff2/brotli/enc/entropy_encode.c, - libs/woff2/brotli/enc/entropy_encode.h, - libs/woff2/brotli/enc/entropy_encode_static.h, - libs/woff2/brotli/enc/fast_log.h, - libs/woff2/brotli/enc/find_match_length.h, libs/woff2/brotli/enc/hash.h, - libs/woff2/brotli/enc/hash_forgetful_chain_inc.h, - libs/woff2/brotli/enc/hash_longest_match64_inc.h, - libs/woff2/brotli/enc/hash_longest_match_inc.h, - libs/woff2/brotli/enc/hash_longest_match_quickly_inc.h, - libs/woff2/brotli/enc/hash_to_binary_tree_inc.h, - libs/woff2/brotli/enc/histogram.c, libs/woff2/brotli/enc/histogram.h, - libs/woff2/brotli/enc/histogram_inc.h, - libs/woff2/brotli/enc/literal_cost.c, - libs/woff2/brotli/enc/literal_cost.h, libs/woff2/brotli/enc/memory.c, - libs/woff2/brotli/enc/memory.h, libs/woff2/brotli/enc/metablock.c, - libs/woff2/brotli/enc/metablock.h, libs/woff2/brotli/enc/metablock_inc.h, - libs/woff2/brotli/enc/port.h, libs/woff2/brotli/enc/prefix.h, - libs/woff2/brotli/enc/quality.h, libs/woff2/brotli/enc/ringbuffer.h, - libs/woff2/brotli/enc/static_dict.c, libs/woff2/brotli/enc/static_dict.h, - libs/woff2/brotli/enc/static_dict_lut.h, - libs/woff2/brotli/enc/utf8_util.c, libs/woff2/brotli/enc/utf8_util.h, - libs/woff2/brotli/enc/write_bits.h, - libs/woff2/brotli/include/brotli/decode.h, - libs/woff2/brotli/include/brotli/encode.h, - libs/woff2/brotli/include/brotli/port.h, - libs/woff2/brotli/include/brotli/types.h, src/Makefile.am, - tests/Makefile.am, tests/create-makefile: - moved brotli from woff2 to libs folder - -2017-12-12 Martin Gieseking - - * libs/variant/include/mpark/config.hpp, - libs/variant/include/mpark/lib.hpp, - libs/variant/include/mpark/variant.hpp: - updated mpark::variant to - https://github.com/mpark/variant/commit/382014b -fixes a build error - introduced with MSVC 19.12 - -2017-12-11 Martin Gieseking - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.2.3 - - * NEWS: - updated NEWS - -2017-11-29 Martin Gieseking - - * libs/woff2/brotli/common/dictionary.h, - libs/woff2/brotli/common/version.h, - libs/woff2/brotli/enc/backward_references_hq.c, - libs/woff2/brotli/enc/backward_references_hq.h, - libs/woff2/brotli/enc/port.h, libs/woff2/brotli/enc/quality.h, - libs/woff2/brotli/include/brotli/decode.h, - libs/woff2/brotli/include/brotli/encode.h: - updated brotli to version 1.0.2 - -2017-11-24 Martin Gieseking - - * src/BgColorSpecialHandler.cpp, src/BoundingBox.cpp, src/BoundingBox.hpp, - src/Color.cpp, src/PathClipper.cpp, src/SVGTree.cpp, - tests/BoundingBoxTest.cpp: - minor code cleanup and improvements - - * src/DependencyGraph.hpp: - simplified DependencyGraph::GraphNode - -2017-11-23 Martin Gieseking - - * tests/TpicSpecialTest.cpp: - added missing initializers in TpicSpecialTest - - * tests/EmSpecialTest.cpp: - added missing initializers in EmSpecialTest - - * src/DependencyGraph.hpp: - fixed dangling pointer issue in DependencyGraph - - * src/Makefile.am, tests/Makefile.am, tests/create-makefile: - suppress warnings regarding 'mismatched tags' - (class/struct) -https://gcc.gnu.org/wiki/FAQ#Why_GCC_does_not_warn_for_mismatch_between_struct_and_class_.28-Wmismatched-tags.29_.3F - -2017-11-22 Martin Gieseking - - * src/PSPattern.cpp, src/SVGCharHandler.cpp, src/SVGTree.cpp, - src/TpicSpecialHandler.cpp: - removed redundant calls of std::move() - - * src/Subfont.cpp, src/Subfont.hpp, tests/CMapManagerTest.cpp, - tests/FileFinderTest.cpp, tests/FontManagerTest.cpp, tests/Makefile.am, - tests/MapLineTest.cpp, tests/SubfontTest.cpp, tests/create-makefile, - tests/testmain.cpp, tests/testutil.hpp: - tests: moved common initializations to testmain.cpp - - * src/DVIReader.hpp, tests/DVIReaderTest.cpp, tests/Makefile.am, - tests/data/Makefile.am, tests/data/cmr10.pfb, tests/data/sample_v2.dvi, - tests/data/sample_v3.dvi: - added test for DVIReader - -2017-11-21 Martin Gieseking - - * Makefile.am: - removed redundant lcov statement from Makefile - -2017-11-20 Martin Gieseking - - * tests/CMapTest.cpp, tests/GFReaderTest.cpp, tests/JFMReaderTest.cpp, - tests/RangeMapTest.cpp, tests/TFMReaderTest.cpp, - tests/TensorProductPatchTest.cpp, tests/ToUnicodeMapTest.cpp, - tests/VectorStreamTest.cpp: - tests: few code improvements - - * README.md: - added donation badge to readme - -2017-11-17 Martin Gieseking - - * src/Font.cpp, src/Font.hpp: - prevent dangling pointers to font map entries (closes #79) - - * src/CMapManager.cpp, src/FileFinder.cpp, src/Font.cpp, src/Font.hpp, - src/FontEngine.cpp, src/FontManager.cpp, src/FontMap.cpp, - src/FontMap.hpp, src/Ghostscript.cpp, src/MiKTeXCom.cpp, src/XMLNode.cpp: - replaced null pointer constants with 'nullptr' - - * src/XMLString.cpp, tests/TensorProductPatchTest.cpp, - tests/XMLStringTest.cpp: - avoid scientific notation when printing floats/doubles - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.2.2 - - * NEWS: - updated NEWS - -2017-11-13 Martin Gieseking - - * doc/Makefile.am: - ensure tweak-db-refentry.xsl is put into the tarball - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.2.1 - - * NEWS, README.md: - updated NEWS and README - - * libs/variant/include/mpark/lib.hpp, - libs/variant/include/mpark/variant.hpp: - updated mpark::variant to commit - ea542a0 -https://github.com/mpark/variant/commit/ea542a0fef86fb8c1696238b95bdaddb8ff2337c - -2017-11-10 Martin Gieseking - - * README, README.md, doc/dvisvgm.txt.in: - minor additions/fixes of manpage and README - -2017-11-02 Martin Gieseking - - * doc/Makefile.am, doc/db2html.xsl, doc/tweak-db-refentry.xsl: - manpage: avoid using 'stats' to improve portability (closes #72) - -2017-10-31 Martin Gieseking - - * src/InputReader.cpp, src/InputReader.hpp, src/PSInterpreter.cpp: - simplified code to lookup PS operators - -2017-10-30 Martin Gieseking - - * src/PsSpecialHandler.hpp, src/psdefs.cpp, tests/PSInterpreterTest.cpp: - properly apply CTM to linewidth (closes #77) - - * src/PsSpecialHandler.hpp, src/psdefs.cpp, tests/PSInterpreterTest.cpp: - call applyscalevals on every change of the CTM - -2017-10-27 Martin Gieseking - - * src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, src/DVIToSVGActions.hpp, - src/DvisvgmSpecialHandler.cpp, src/EPSToSVG.cpp, src/EPSToSVG.hpp, - src/EmSpecialHandler.cpp, src/HyperlinkManager.cpp, src/PSPattern.cpp, - src/PSPattern.hpp, src/PsSpecialHandler.cpp, src/SVGCharHandler.cpp, - src/SVGCharHandler.hpp, src/SVGCharPathHandler.cpp, - src/SVGCharTspanTextHandler.cpp, src/SVGSingleCharTextHandler.cpp, - src/SVGTree.cpp, src/SVGTree.hpp, src/ShadingPatch.hpp, - src/SpecialActions.hpp, src/TpicSpecialHandler.cpp, src/XMLDocument.cpp, - src/XMLDocument.hpp, src/XMLNode.cpp, src/XMLNode.hpp, src/utility.hpp, - tests/DvisvgmSpecialTest.cpp, tests/EmSpecialTest.cpp, - tests/TpicSpecialTest.cpp, tests/XMLNodeTest.cpp: - replaced raw XMLNode pointers with unique_ptrs -which helps to ensure - proper ownership and simplifies deleting the corresponding objects - - * src/DependencyGraph.hpp, src/SVGTree.cpp, tests/DependencyGraphTest.cpp: - manage heap memory in DependencyGraph with unique_ptrs - -2017-10-21 Martin Gieseking - - * libs/ff-woff/fontforge/macbinary.c: - updated link to CTAN:/tools/macutils/crc - -2017-10-20 Martin Gieseking - - * libs/woff2/include/woff2/version.h: - replaced CRLF line endings - -2017-10-17 Martin Gieseking - - * src/CMapManager.cpp, src/CMapReader.cpp, src/CMapReader.hpp, - src/DVIActions.hpp, src/DVIToSVG.cpp, src/DVIToSVG.hpp, - src/DVIToSVGActions.hpp, src/FileFinder.cpp, src/Font.cpp, src/Font.hpp, - src/FontEncoding.cpp, src/FontEncoding.hpp, src/FontEngine.cpp, - src/FontEngine.hpp, src/FontManager.cpp, src/FontMetrics.cpp, - src/FontMetrics.hpp, src/PSPattern.hpp, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.hpp, src/SVGCharHandlerFactory.cpp, - src/SVGCharHandlerFactory.hpp, src/SVGOutput.cpp, - src/SVGSingleCharTextHandler.hpp, src/SVGTree.cpp, src/ShadingPatch.cpp, - src/ShadingPatch.hpp, src/SignalHandler.cpp, src/Subfont.cpp, - src/Subfont.hpp, src/XMLNode.cpp, tests/CMapReaderTest.cpp, - tests/ShadingPatchTest.cpp: - replaced several bare new/delete statements with unique pointers - - * src/dvisvgm.cpp: - fixed output of option --version - - * src/Length.hpp, src/PageSize.cpp: - added user-defined literals for some length units - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.2 - - * NEWS, README, README.md: - updated NEWS and README - -2017-10-16 Martin Gieseking - - * src/FontWriter.cpp: - added missing #include of config.h - - * src/Message.cpp: - check for '\0' at end of DVISVGM_COLORS - - * src/Subfont.cpp: - don't access unique_ptr after it has been moved - -2017-10-15 Martin Gieseking - - * src/PDFParser.cpp, src/PDFParser.hpp: - replaced shared_ptr with unique_ptr in PDFParser - -2017-10-13 Martin Gieseking - - * AUTHORS, configure.ac, doc/dvisvgm.txt.in, libs/Makefile.am, - libs/variant/CMakeLists.txt, libs/variant/LICENSE.md, - libs/variant/Makefile.am, libs/variant/include/mpark/in_place.hpp, - libs/variant/include/mpark/lib.hpp, - libs/variant/include/mpark/variant.hpp, src/HyperlinkManager.cpp, - src/HyperlinkManager.hpp, src/InputReader.hpp, src/Makefile.am, - src/PDFParser.cpp, src/PDFParser.hpp, src/PdfSpecialHandler.cpp, - src/PdfSpecialHandler.hpp, tests/Makefile.am, tests/PDFParserTest.cpp, - tests/SpecialManagerTest.cpp, tests/create-makefile: - added evaluation of PDF hyperlink specials (closes #74) - - * libs/variant/include/mpark/config.hpp: - added missing config file - - * .travis.yml: - Travis: use gcc 4.9 rather than 4.8 to compile mpark::variant correctly - - * tests/Makefile.am, tests/create-makefile, tests/testmain.cpp: - add custom testmain to gtest.a - -2017-10-11 Martin Gieseking - - * src/HtmlSpecialHandler.cpp, src/HtmlSpecialHandler.hpp, - src/HyperlinkManager.cpp, src/HyperlinkManager.hpp, src/Makefile.am, - src/dvisvgm.cpp: - separated hyperlink functionality from HtmlSpecialHandler to - HyperlinkManager - -2017-10-09 Martin Gieseking - - * libs/woff2/src/font.cc, libs/woff2/src/normalize.cc, - libs/woff2/src/woff2_enc.cc: - woff2: removed unused variables to prevent compiler warnings - - * libs/woff2/src/font.cc, libs/woff2/src/normalize.cc, - libs/woff2/src/woff2_enc.cc: - woff2: removed unused variables to prevent compiler warnings - -2017-10-08 Martin Gieseking - - * libs/woff2/Makefile.am, libs/woff2/include/woff2/decode.h, - libs/woff2/include/woff2/encode.h, libs/woff2/include/woff2/file.h, - libs/woff2/include/woff2/output.h, libs/woff2/include/woff2/version.h, - libs/woff2/src/buffer.h, libs/woff2/src/file.h, libs/woff2/src/font.cc, - libs/woff2/src/font.h, libs/woff2/src/glyph.cc, libs/woff2/src/glyph.h, - libs/woff2/src/normalize.cc, libs/woff2/src/normalize.h, - libs/woff2/src/port.h, libs/woff2/src/round.h, - libs/woff2/src/store_bytes.h, libs/woff2/src/table_tags.cc, - libs/woff2/src/table_tags.h, libs/woff2/src/transform.cc, - libs/woff2/src/transform.h, libs/woff2/src/variable_length.cc, - libs/woff2/src/variable_length.h, libs/woff2/src/woff2_common.cc, - libs/woff2/src/woff2_common.h, libs/woff2/src/woff2_dec.h, - libs/woff2/src/woff2_enc.cc, libs/woff2/src/woff2_enc.h, - libs/woff2/src/woff2_out.cc, libs/woff2/src/woff2_out.h, - src/FontWriter.cpp, src/Makefile.am, src/dvisvgm.cpp: - updated woff2 to version 1.0.1 - -2017-10-06 Martin Gieseking - - * src/CRC32.hpp, src/SpecialManager.hpp, src/Subfont.hpp, src/XMLNode.hpp: - use delete/default to remove/implement constructors - - * src/XMLNode.cpp, src/XMLNode.hpp: - added move constructor to XMLElementNode - - * src/Subfont.cpp, src/Subfont.hpp, src/utility.hpp: - removed stream-based constructor of SubfontException - -2017-09-29 Martin Gieseking - - * doc/dvisvgm.txt.in, src/PapersizeSpecialHandler.cpp, - src/PapersizeSpecialHandler.hpp, src/PdfSpecialHandler.cpp, - src/PdfSpecialHandler.hpp, src/SpecialManager.cpp, - src/SpecialManager.hpp, tests/PapersizeSpecialTest.cpp: - added evaluation of pdf:pagesize specials - -2017-09-28 Martin Gieseking - - * src/DVIToSVG.cpp, src/Length.hpp, src/PageSize.cpp, src/PageSize.hpp, - src/utility.hpp, tests/PageSizeTest.cpp: - use class Length in PageSize rather than plain numbers - - * src/BoundingBox.cpp, src/BoundingBox.hpp, src/DVIToSVG.cpp, - src/utility.cpp, src/utility.hpp, tests/BoundingBoxTest.cpp, - tests/UtilityTest.cpp: - rewrite of BoundingBox::extractLengths() - -2017-09-21 Martin Gieseking - - * src/TpicSpecialHandler.cpp: - use isxdigit() to check hex digits - - * src/InputReader.cpp, src/InputReader.hpp, tests/Makefile.am, - tests/SplittedCharInputBufferTest.cpp, tests/StreamInputBufferTest.cpp, - tests/StringMatcherTest.cpp: - use Knuth-Morris-Pratt algorithm to find a string in a stream - - * libs/woff2/brotli/common/constants.h, - libs/woff2/brotli/common/dictionary.c, - libs/woff2/brotli/common/dictionary.h, - libs/woff2/brotli/common/version.h, - libs/woff2/brotli/enc/backward_references.c, - libs/woff2/brotli/enc/backward_references_hq.c, - libs/woff2/brotli/enc/backward_references_hq.h, - libs/woff2/brotli/enc/backward_references_inc.h, - libs/woff2/brotli/enc/block_splitter.c, - libs/woff2/brotli/enc/block_splitter_inc.h, - libs/woff2/brotli/enc/brotli_bit_stream.c, - libs/woff2/brotli/enc/brotli_bit_stream.h, - libs/woff2/brotli/enc/cluster_inc.h, libs/woff2/brotli/enc/command.h, - libs/woff2/brotli/enc/compress_fragment.c, - libs/woff2/brotli/enc/compress_fragment_two_pass.c, - libs/woff2/brotli/enc/encode.c, - libs/woff2/brotli/enc/find_match_length.h, libs/woff2/brotli/enc/hash.h, - libs/woff2/brotli/enc/hash_forgetful_chain_inc.h, - libs/woff2/brotli/enc/hash_longest_match64_inc.h, - libs/woff2/brotli/enc/hash_longest_match_inc.h, - libs/woff2/brotli/enc/hash_longest_match_quickly_inc.h, - libs/woff2/brotli/enc/hash_to_binary_tree_inc.h, - libs/woff2/brotli/enc/memory.h, libs/woff2/brotli/enc/port.h, - libs/woff2/brotli/enc/write_bits.h, - libs/woff2/brotli/include/brotli/decode.h, - libs/woff2/brotli/include/brotli/encode.h: - updated Brotli to version 1.0.1 - -2017-09-15 Martin Gieseking - - * src/DVIToSVG.cpp, src/SpecialManager.cpp, src/SpecialManager.hpp, - src/utility.hpp, tests/Makefile.am, tests/SpecialManagerTest.cpp: - use smart pointers to allocate/deallocate SpecialHandlers - - * src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.hpp, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.hpp, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.hpp, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.hpp, - src/HtmlSpecialHandler.cpp, src/HtmlSpecialHandler.hpp, - src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.hpp, - src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.hpp, - src/PdfSpecialHandler.cpp, src/PdfSpecialHandler.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, - src/SpecialHandler.hpp, src/SpecialManager.cpp, - src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.hpp, - tests/ColorSpecialTest.cpp, tests/PapersizeSpecialTest.cpp: - changed return value of SpecialHandler::prefixes() to std::vector - - * .appveyor.yml: - AppVeyor: updated FreeType to version 2.8.1 - -2017-09-13 Martin Gieseking - - * tests/FileSystemTest.cpp: - close streams before removing corresponding files - -2017-09-09 Martin Gieseking - - * src/dvisvgm.cpp: - fixed number of dashes printed by option -V1 - -2017-09-08 Martin Gieseking - - * src/DependencyGraph.hpp, src/SVGTree.cpp, tests/DependencyGraphTest.cpp: - DependencyGraph::getKeys(): return result, don't use reference parameter - - * src/FileFinder.cpp, src/Makefile.am: - added missing #include; added windows.hpp to Makefile.am - - * tests/Makefile.am, tests/create-makefile, tests/testmain.cpp: - define variable TEST_ARGV0 to make argv[0] of main() available in - tests -this is required to initialize kpathsea properly, for example - - * src/FileFinder.cpp, src/FileFinder.hpp, tests/CMapManagerTest.cpp, - tests/FileFinderTest.cpp, tests/FontManagerTest.cpp, - tests/MapLineTest.cpp, tests/SubfontTest.cpp: - init libkpathsea correctly in tests to prevent assertion failures - - * libs/xxHash/xxhash.c, libs/xxHash/xxhash.h: - updated xxHash to version 0.6.3 - -2017-09-07 Martin Gieseking - - * tests/FontCacheTest.cpp, tests/Makefile.am, tests/create-makefile: - fixed path issue in FontCacheTest - - * src/GFReader.cpp: - fixed incorrect integer type in GFReader; insert CharInfos with emplace - - * src/MapLine.cpp, tests/MapLineTest.cpp: - treat prefix "<<" in a mapline as "<[" (skip second char) - - * doc/dvisvgm.txt.in, src/dvisvgm.cpp: - added pdftex.map to default mapfiles - -2017-09-06 Martin Gieseking - - * src/BasicDVIReader.cpp, src/BgColorSpecialHandler.cpp, src/Bitmap.cpp, - src/BoundingBox.cpp, src/CMap.cpp, src/CMapReader.cpp, src/CRC32.cpp, - src/Calculator.cpp, src/ColorSpecialHandler.cpp, src/DLLoader.cpp, - src/DVIReader.cpp, src/Directory.cpp, src/EPSFile.cpp, src/EPSToSVG.cpp, - src/EmSpecialHandler.cpp, src/EncFile.cpp, src/FileFinder.cpp, - src/FilePath.cpp, src/Font.cpp, src/FontCache.cpp, src/FontEncoding.cpp, - src/FontEngine.cpp, src/FontManager.cpp, src/FontMap.cpp, - src/FontMap.hpp, src/FontMetrics.cpp, src/FontWriter.cpp, - src/GFGlyphTracer.cpp, src/GFTracer.cpp, src/HtmlSpecialHandler.cpp, - src/InputBuffer.cpp, src/InputReader.cpp, src/JFM.cpp, src/MapLine.cpp, - src/Message.cpp, src/MetafontWrapper.cpp, src/MiKTeXCom.cpp, - src/NoPsSpecialHandler.cpp, src/PSInterpreter.cpp, src/PSPattern.cpp, - src/PSPreviewFilter.cpp, src/PageRanges.cpp, src/PageSize.cpp, - src/PathClipper.cpp, src/PdfSpecialHandler.cpp, src/SVGTree.cpp, - src/SpecialManager.cpp, src/StreamWriter.cpp, src/TFM.cpp, - src/VFReader.cpp, src/XMLDocument.cpp, src/XMLNode.cpp, - src/XMLString.cpp, src/dvisvgm.cpp: - removed redundant #includes of config.h - - * src/DLLoader.hpp, src/Directory.cpp, src/Directory.hpp, - src/FileSystem.cpp, src/MiKTeXCom.hpp, src/Process.cpp, src/Terminal.cpp, - src/windows.hpp: - disable macros min/max defined in windows.h - - * src/CLCommandLine.cpp, src/CMapManager.cpp, src/CMapManager.hpp, - src/Calculator.cpp, src/Calculator.hpp, src/DVIToSVG.cpp, - src/DVIToSVGActions.hpp, src/DependencyGraph.hpp, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.hpp, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.hpp, src/FileFinder.cpp, - src/Font.cpp, src/Font.hpp, src/FontCache.hpp, src/FontEncoding.cpp, - src/FontManager.cpp, src/FontManager.hpp, src/FontMap.hpp, - src/GFReader.hpp, src/HtmlSpecialHandler.cpp, src/HtmlSpecialHandler.hpp, - src/InputReader.cpp, src/InputReader.hpp, src/Message.cpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, src/SVGTree.cpp, - src/SVGTree.hpp, src/SpecialManager.hpp, src/Subfont.cpp, - src/Subfont.hpp, tests/StreamInputBufferTest.cpp: - replaced std::map with std::unordered_map where possible to increase - performance - -2017-09-05 Martin Gieseking - - * tests/DvisvgmSpecialTest.cpp: - replaced constexpr with const to make clang happy - - * doc/dvisvgm.txt.in, src/DvisvgmSpecialHandler.cpp, - tests/DvisvgmSpecialTest.cpp: - allow all common length units in dvisvgm specials - -2017-08-27 Martin Gieseking - - * src/AGLTable.hpp, src/CMapReader.cpp, src/Color.cpp, - src/CommandLine.hpp, src/FontWriter.cpp, tests/genhashcheck.py: - use list initialization on constant std::arrays - - * tests/MapLineTest.cpp: - added braces to prevent compiler warnings - -2017-08-25 Martin Gieseking - - * src/CMapManager.cpp, src/DvisvgmSpecialHandler.cpp, src/Font.cpp, - src/Ghostscript.cpp, src/PsSpecialHandler.cpp, src/dvisvgm.cpp, - tests/DvisvgmSpecialTest.cpp: - use range-based for to iterate over a fixed sequence of items - -2017-08-17 Martin Gieseking - - * m4/ax_code_coverage.m4: - updated ax_code_coverage.m4 to version 25 - -2017-08-06 Martin Gieseking - - * .appveyor.yml: - AppVeyor: updated potrace to version 1.15 - -2017-08-01 Martin Gieseking - - * libs/woff2/src/font.cc, libs/woff2/src/normalize.cc, - libs/woff2/src/port.h, libs/woff2/src/store_bytes.h, - libs/woff2/src/woff2_common.cc, libs/woff2/src/woff2_enc.cc: - updated woff2 to https://github.com/google/woff2/commits/2e09253 - -2017-06-26 Martin Gieseking - - * .appveyor.yml: - AppVeyor: changed build image to VS 2017; updated FreeType to 2.8 - -2017-06-20 Martin Gieseking - - * src/PsSpecialHandler.cpp: - psfile: fixed sign of y coordinates - -2017-06-12 Martin Gieseking - - * src/PsSpecialHandler.hpp: - use bp units for line width and miter limit - -2017-06-09 Martin Gieseking - - * src/EPSToSVG.cpp: - remove redundant clipPath elements also when converting EPS files - -2017-05-30 Martin Gieseking - - * src/GraphicsPath.hpp: - replaced vector with deque in class GraphicsPath -due to cheaper front - insertions/deletions - - * src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp: - manage memory of ClippingStack with shared pointers -- automatically - deletes unreferenced path objects -- avoids keeping popped (and no longer - required) paths in the pool vector - -2017-05-26 Martin Gieseking - - * src/Pair.hpp, tests/PairTest.cpp: - added abs() and negation operator to class Pair - - * src/Matrix.hpp, src/PsSpecialHandler.cpp: - respect transformation of PS state in computation of psfile position - (fixes #70) - - * src/FileFinder.cpp, src/PsSpecialHandler.cpp: - lookup psfile in texmf tree if it's not present in cwd (fixes #69) - -2017-05-16 Martin Gieseking - - * tests/FontCacheTest.cpp, tests/Makefile.am, tests/create-makefile: - FontCacheTest: write test output to $builddir/data -$srcdir/data may be - read-only so that the tests fail unintentionally - -2017-05-15 Martin Gieseking - - * libs/woff2/brotli/LICENSE, libs/woff2/brotli/Makefile.am, - libs/woff2/brotli/common/constants.h, - libs/woff2/brotli/common/dictionary.c, - libs/woff2/brotli/common/dictionary.h, - libs/woff2/brotli/common/version.h, - libs/woff2/brotli/enc/backward_references.c, - libs/woff2/brotli/enc/backward_references.h, - libs/woff2/brotli/enc/backward_references_hq.c, - libs/woff2/brotli/enc/backward_references_hq.h, - libs/woff2/brotli/enc/backward_references_inc.h, - libs/woff2/brotli/enc/block_splitter_inc.h, - libs/woff2/brotli/enc/command.h, - libs/woff2/brotli/enc/compress_fragment.c, - libs/woff2/brotli/enc/compress_fragment.h, - libs/woff2/brotli/enc/compress_fragment_two_pass.c, - libs/woff2/brotli/enc/compress_fragment_two_pass.h, - libs/woff2/brotli/enc/context.h, libs/woff2/brotli/enc/dictionary_hash.c, - libs/woff2/brotli/enc/dictionary_hash.h, libs/woff2/brotli/enc/encode.c, - libs/woff2/brotli/enc/fast_log.h, libs/woff2/brotli/enc/hash.h, - libs/woff2/brotli/enc/hash_forgetful_chain_inc.h, - libs/woff2/brotli/enc/hash_longest_match64_inc.h, - libs/woff2/brotli/enc/hash_longest_match_inc.h, - libs/woff2/brotli/enc/hash_longest_match_quickly_inc.h, - libs/woff2/brotli/enc/hash_to_binary_tree_inc.h, - libs/woff2/brotli/enc/histogram.c, libs/woff2/brotli/enc/literal_cost.c, - libs/woff2/brotli/enc/memory.h, libs/woff2/brotli/enc/metablock.c, - libs/woff2/brotli/enc/metablock.h, libs/woff2/brotli/enc/quality.h, - libs/woff2/brotli/enc/static_dict.c, libs/woff2/brotli/enc/static_dict.h, - libs/woff2/brotli/include/brotli/decode.h, - libs/woff2/brotli/include/brotli/encode.h, - libs/woff2/brotli/include/brotli/port.h, - libs/woff2/brotli/include/brotli/types.h: - updated brotli to version 0.6.0 - -2017-05-11 Martin Gieseking - - * src/Process.cpp: - close pipe if fork() fails - -2017-05-08 Martin Gieseking - - * configure.ac, src/SignalHandler.cpp, src/SignalHandler.hpp: - use sigaction() rather than signal() if possible - - * src/Process.cpp, src/Process.hpp: - refactored Process class -- use separate class to encapsulate - system-dependent stuff and to ensure - proper termination in case of - signals or errors -- prevent blocking if subprocess doesn't write anything - to stdout/stderr - -2017-04-28 Martin Gieseking - - * src/Process.cpp: - quit Process::run() if child process terminated unexpectedly (fixes #68) - -2017-04-27 Martin Gieseking - - * tests/Makefile.am, tests/create-makefile: - added the FontWriter dependencies to the tests - -2017-04-24 Martin Gieseking - - * src/Color.cpp, src/Color.hpp, src/PSPattern.cpp, - tests/ColorSpecialTest.cpp: - avoid implicit conversion of Color object to RGB integer - - * src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.hpp, - tests/Makefile.am, tests/TpicSpecialTest.cpp: - improved the TPIC special handler and added tests for it - - * src/TpicSpecialHandler.cpp, tests/TpicSpecialTest.cpp: - added evaluation of TPIC's 'tx' special command - -2017-04-23 Martin Gieseking - - * src/BasicDVIReader.hpp, src/BgColorSpecialHandler.hpp, - src/CLCommandLine.hpp, src/CMapManager.hpp, src/DVIToSVGActions.hpp, - src/DependencyGraph.hpp, src/DvisvgmSpecialHandler.hpp, src/FilePath.hpp, - src/Font.hpp, src/FontCache.cpp, src/FontCache.hpp, src/FontEngine.cpp, - src/FontManager.hpp, src/Ghostscript.hpp, src/Glyph.hpp, - src/GraphicsPath.hpp, src/HtmlSpecialHandler.hpp, src/NumericRanges.hpp, - src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.hpp, - src/PathClipper.cpp, src/PathClipper.hpp, src/PsSpecialHandler.hpp, - src/RangeMap.hpp, src/SVGCharPathHandler.hpp, src/ShadingPatch.hpp, - src/SpecialManager.hpp, src/Subfont.hpp, src/VFReader.hpp, - src/XMLNode.cpp, src/XMLNode.hpp, src/dvisvgm.cpp: - replaced typedefs with 'using' statements - -2017-04-20 Martin Gieseking - - * src/Ghostscript.cpp: - simplify code for looking up libgs (closes #66) - -2017-04-14 Martin Gieseking - - * src/DLLoader.cpp, src/DLLoader.hpp: - added DLLoader::loadLibrary() to assign a different library - - * src/DLLoader.cpp, src/DLLoader.hpp, src/Ghostscript.cpp: - replaced c-string parameters of DLLoader() and loadLibrary() with - std::string - -2017-04-13 Toby Fleming - - * src/Ghostscript.cpp: - Auto-detect ghostscript dynamic library on macOS - -2017-03-22 Martin Gieseking - - * m4/ax_code_coverage.m4, m4/ax_cxx_compile_stdcxx.m4: - updated m4 scripts - -2017-03-03 Martin Gieseking - - * src/FileFinder.cpp, tests/FileFinderTest.cpp: - fixed handling of absolute additional directories in FileFinder - - * tests/FilePathTest.cpp, tests/FontCacheTest.cpp, - tests/SVGOutputTest.cpp: - tests: minor path improvements - -2017-03-02 Martin Gieseking - - * libs/woff2/src/normalize.cc, libs/woff2/src/woff2_enc.cc: - woff2: removed unused variables - - * src/Makefile.am, src/dvisvgm.cpp: - improved generation of list showing the library versions - - * src/Color.cpp, src/FilePath.cpp, src/FontWriter.cpp, src/PageSize.cpp, - src/dvisvgm.cpp, src/utility.cpp, src/utility.hpp, tests/UtilityTest.cpp: - removed side-effect from util::to_lower(); returns new modified string - instead - -2017-03-01 Martin Gieseking - - * libs/ff-woff/fontforge/nowakowskittfinstr.c: - ff-woff: removed redundant variables - - * libs/woff2/Makefile.am, libs/woff2/brotli/Makefile.am, - libs/woff2/brotli/common/constants.h, - libs/woff2/brotli/common/dictionary.c, - libs/woff2/brotli/common/dictionary.h, - libs/woff2/brotli/common/version.h, - libs/woff2/brotli/enc/backward_references.c, - libs/woff2/brotli/enc/backward_references.cc, - libs/woff2/brotli/enc/backward_references.h, - libs/woff2/brotli/enc/backward_references_inc.h, - libs/woff2/brotli/enc/bit_cost.c, libs/woff2/brotli/enc/bit_cost.h, - libs/woff2/brotli/enc/bit_cost_inc.h, - libs/woff2/brotli/enc/block_encoder_inc.h, - libs/woff2/brotli/enc/block_splitter.c, - libs/woff2/brotli/enc/block_splitter.cc, - libs/woff2/brotli/enc/block_splitter.h, - libs/woff2/brotli/enc/block_splitter_inc.h, - libs/woff2/brotli/enc/brotli_bit_stream.c, - libs/woff2/brotli/enc/brotli_bit_stream.cc, - libs/woff2/brotli/enc/brotli_bit_stream.h, - libs/woff2/brotli/enc/cluster.c, libs/woff2/brotli/enc/cluster.h, - libs/woff2/brotli/enc/cluster_inc.h, libs/woff2/brotli/enc/command.h, - libs/woff2/brotli/enc/compress_fragment.c, - libs/woff2/brotli/enc/compress_fragment.cc, - libs/woff2/brotli/enc/compress_fragment.h, - libs/woff2/brotli/enc/compress_fragment_two_pass.c, - libs/woff2/brotli/enc/compress_fragment_two_pass.cc, - libs/woff2/brotli/enc/compress_fragment_two_pass.h, - libs/woff2/brotli/enc/compressor.h, libs/woff2/brotli/enc/context.h, - libs/woff2/brotli/enc/dictionary.cc, libs/woff2/brotli/enc/dictionary.h, - libs/woff2/brotli/enc/dictionary_hash.h, libs/woff2/brotli/enc/encode.c, - libs/woff2/brotli/enc/encode.cc, libs/woff2/brotli/enc/encode.h, - libs/woff2/brotli/enc/encode_parallel.cc, - libs/woff2/brotli/enc/encode_parallel.h, - libs/woff2/brotli/enc/entropy_encode.c, - libs/woff2/brotli/enc/entropy_encode.cc, - libs/woff2/brotli/enc/entropy_encode.h, - libs/woff2/brotli/enc/entropy_encode_static.h, - libs/woff2/brotli/enc/fast_log.h, - libs/woff2/brotli/enc/find_match_length.h, libs/woff2/brotli/enc/hash.h, - libs/woff2/brotli/enc/hash_forgetful_chain_inc.h, - libs/woff2/brotli/enc/hash_longest_match_inc.h, - libs/woff2/brotli/enc/hash_longest_match_quickly_inc.h, - libs/woff2/brotli/enc/histogram.c, libs/woff2/brotli/enc/histogram.cc, - libs/woff2/brotli/enc/histogram.h, libs/woff2/brotli/enc/histogram_inc.h, - libs/woff2/brotli/enc/literal_cost.c, - libs/woff2/brotli/enc/literal_cost.cc, - libs/woff2/brotli/enc/literal_cost.h, libs/woff2/brotli/enc/memory.c, - libs/woff2/brotli/enc/memory.h, libs/woff2/brotli/enc/metablock.c, - libs/woff2/brotli/enc/metablock.cc, libs/woff2/brotli/enc/metablock.h, - libs/woff2/brotli/enc/metablock_inc.h, libs/woff2/brotli/enc/port.h, - libs/woff2/brotli/enc/prefix.h, libs/woff2/brotli/enc/quality.h, - libs/woff2/brotli/enc/ringbuffer.h, libs/woff2/brotli/enc/static_dict.c, - libs/woff2/brotli/enc/static_dict.cc, - libs/woff2/brotli/enc/static_dict.h, - libs/woff2/brotli/enc/static_dict_lut.h, - libs/woff2/brotli/enc/streams.cc, libs/woff2/brotli/enc/streams.h, - libs/woff2/brotli/enc/transform.h, libs/woff2/brotli/enc/types.h, - libs/woff2/brotli/enc/utf8_util.c, libs/woff2/brotli/enc/utf8_util.cc, - libs/woff2/brotli/enc/utf8_util.h, libs/woff2/brotli/enc/write_bits.h, - libs/woff2/brotli/include/brotli/decode.h, - libs/woff2/brotli/include/brotli/encode.h, - libs/woff2/brotli/include/brotli/port.h, - libs/woff2/brotli/include/brotli/types.h, libs/woff2/src/buffer.h, - libs/woff2/src/font.cc, libs/woff2/src/glyph.cc, - libs/woff2/src/variable_length.cc, libs/woff2/src/woff2_dec.h, - libs/woff2/src/woff2_enc.cc, src/Makefile.am: - updated woff2 to https://github.com/google/woff2/commit/68e9ab5 - -2017-02-23 Martin Gieseking - - * tests/BezierTest.cpp, tests/BitmapTest.cpp, tests/BoundingBoxTest.cpp, - tests/CMapManagerTest.cpp, tests/CMapReaderTest.cpp, tests/CMapTest.cpp, - tests/CRC32Test.cpp, tests/ColorTest.cpp, tests/CommandLineTest.cpp, - tests/DirectoryTest.cpp, tests/FileSystemTest.cpp, - tests/GraphicsPathTest.cpp, tests/JFMReaderTest.cpp, - tests/MatrixTest.cpp, tests/PageRagesTest.cpp, tests/RangeMapTest.cpp, - tests/SVGOutputTest.cpp, tests/SplittedCharInputBufferTest.cpp, - tests/StreamInputBufferTest.cpp, tests/StreamReaderTest.cpp, - tests/StreamWriterTest.cpp, tests/SubfontTest.cpp, - tests/TFMReaderTest.cpp, tests/ToUnicodeMapTest.cpp, - tests/UnicodeTest.cpp, tests/VectorIteratorTest.cpp, - tests/XMLNodeTest.cpp: - fixed signed/unsigned warnings in tests - -2017-02-22 Martin Gieseking - - * libs/woff2/brotli/tools/bro.cc, libs/woff2/brotli/tools/rfc-format.py, - libs/woff2/brotli/tools/version.h: - removed redundant files - -2017-02-20 Martin Gieseking - - * .appveyor.yml, .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.1.3 - - * NEWS: - updated NEWS - -2017-02-18 Martin Gieseking - - * libs/ff-woff/inc/ffintl.h: - ff-woff: removed redundant defines and prototypes to fix build failure - on Solaris - - * tests/genhashcheck.py: - reformatted genhashcheck - - * tests/BezierTest.cpp, tests/CRC32Test.cpp, tests/ToUnicodeMapTest.cpp, - tests/UnicodeTest.cpp, tests/VectorIteratorTest.cpp, - tests/XMLNodeTest.cpp: - minor additions to some tests - -2017-02-15 Martin Gieseking - - * configure.ac, libs/ff-woff/Makefile.am, - libs/ff-woff/fontforge/fflocale.c, libs/ff-woff/fontforge/fflocale.h, - libs/ff-woff/fontforge/sfd.c, libs/ff-woff/fontforge/splinefont.h, - libs/ff-woff/fontforge/tottf.c: - ff-woff: only call uselocale() if present, use setlocale() otherwise - -2017-02-14 Martin Gieseking - - * README, README.md: - added information on required C++11 compiler to README - - * tests/genhashcheck.py: - made genhashcheck.py compatible with Python 3 (plus few minor changes) - -2017-02-13 Martin Gieseking - - * src/MapLine.cpp, src/MapLine.hpp, tests/ColorSpecialTest.cpp, - tests/FontMapTest.cpp, tests/LengthTest.cpp, tests/MapLineTest.cpp: - improved a couple of test cases - - * src/Color.cpp, src/Matrix.cpp, src/TpicSpecialHandler.cpp, - src/utility.hpp: - replaced non-standard constant M_PI with own definition - - * src/Color.cpp, src/Matrix.cpp, src/utility.hpp: - replaced local copies of deg2rad with global function - -2017-02-12 Martin Gieseking - - * .appveyor.yml, .travis.yml, appveyor.yml: - exclude branch 'tmp' from CI builds - -2017-02-11 Martin Gieseking - - * libs/ff-woff/Makefile.am, libs/ff-woff/fontforge/fontforge.h, - libs/ff-woff/inc/ffintl.h, libs/ff-woff/inc/intl.h: - don't try to #include libintl.h - - * .travis.yml: - Travis: enable clang builds again - - * NEWS: - updated NEWS - -2017-02-10 Martin Gieseking - - * src/Calculator.cpp: - fixed number parsing in Calculator class (failed on Mac) - - * tests/StreamReaderTest.cpp: - clear istream flags to prevent failure of StreamReaderTest - - * libs/xxHash/xxhash.c, libs/xxHash/xxhash.h: - removed 'restrict' keyword from xxHash - - * .travis.yml, appveyor.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.1.2 - -2017-02-09 Martin Gieseking - - * .gitignore, .travis.yml, Makefile.am, configure.ac, tests/Makefile.am, - tests/create-makefile, tests/gtest/LICENSE, - tests/gtest/include/gtest/gtest-death-test.h, - tests/gtest/include/gtest/gtest-message.h, - tests/gtest/include/gtest/gtest-param-test.h, - tests/gtest/include/gtest/gtest-printers.h, - tests/gtest/include/gtest/gtest-spi.h, - tests/gtest/include/gtest/gtest-test-part.h, - tests/gtest/include/gtest/gtest-typed-test.h, - tests/gtest/include/gtest/gtest.h, - tests/gtest/include/gtest/gtest_pred_impl.h, - tests/gtest/include/gtest/gtest_prod.h, - tests/gtest/include/gtest/internal/custom/gtest-port.h, - tests/gtest/include/gtest/internal/custom/gtest-printers.h, - tests/gtest/include/gtest/internal/custom/gtest.h, - tests/gtest/include/gtest/internal/gtest-death-test-internal.h, - tests/gtest/include/gtest/internal/gtest-filepath.h, - tests/gtest/include/gtest/internal/gtest-internal.h, - tests/gtest/include/gtest/internal/gtest-linked_ptr.h, - tests/gtest/include/gtest/internal/gtest-param-util-generated.h, - tests/gtest/include/gtest/internal/gtest-param-util.h, - tests/gtest/include/gtest/internal/gtest-port-arch.h, - tests/gtest/include/gtest/internal/gtest-port.h, - tests/gtest/include/gtest/internal/gtest-string.h, - tests/gtest/include/gtest/internal/gtest-tuple.h, - tests/gtest/include/gtest/internal/gtest-type-util.h, - tests/gtest/src/gtest-all.cc, tests/gtest/src/gtest-death-test.cc, - tests/gtest/src/gtest-filepath.cc, tests/gtest/src/gtest-internal-inl.h, - tests/gtest/src/gtest-port.cc, tests/gtest/src/gtest-printers.cc, - tests/gtest/src/gtest-test-part.cc, tests/gtest/src/gtest-typed-test.cc, - tests/gtest/src/gtest.cc, tests/gtest/src/gtest_main.cc: - bundle gtest with the sources to simplify building and running the tests - - * src/Directory.cpp, tests/DirectoryTest.cpp: - prevent calling closedir() with null pointer argument - - * src/VectorStream.hpp: - don't access first vector component if the vector is empty - - * src/GFReader.cpp, src/StreamReader.cpp, tests/GFReaderTest.cpp, - tests/StreamReaderTest.cpp: - improved implementation of getString() - - * src/CLCommandLine.cpp: - reset status flags before changing the sstream source - -2017-02-08 Martin Gieseking - - * tests/CommandLineTest.cpp: - removed redundant function - - * src/XMLString.cpp, tests/EmSpecialTest.cpp, tests/GFGlyphTracerTest.cpp: - avoid negative zeros (-0) in SVG output - - * src/BoundingBox.cpp: - fixed memory issue in BoundingBox class - - * src/CMapReader.cpp, src/InputReader.cpp, src/InputReader.hpp, - tests/SplittedCharInputBufferTest.cpp, tests/StreamInputBufferTest.cpp: - fixed potential number overflow issue - - * tests/CMapReaderTest.cpp: - fixed memory leak in CMapReaderTest - - * src/Subfont.cpp: - fixed memory leak in Subfont class - - * src/XMLNode.cpp: - fixed memory leak in class XMLElementNode - -2017-02-07 Martin Gieseking - - * configure.ac: - replaced deprecated AC_CONFIG_HEADER - - * NEWS: - updated NEWS - - * libs/clipper/License.txt: - fixed line endings of clipper/License.txt - -2017-02-06 Martin Gieseking - - * .travis.yml, appveyor.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.1.1 - -2017-02-04 Martin Gieseking - - * tests/FontCacheTest.cpp: - fixed FontCacheTest ('make distcheck' failed) - -2017-02-03 Martin Gieseking - - * src/Color.cpp, src/Color.hpp, src/VectorIterator.hpp, - tests/ColorTest.cpp, tests/VectorIteratorTest.cpp: - increased coverage of ColorTest - - * configure.ac, libs/ff-woff/fontforge/splinefont.h: - include xlocale.h in ff-woff if available (fixes #65) - -2017-02-02 Martin Gieseking - - * src/Makefile.am: - removed spurious colon from src/Makefile.am - - * configure.ac: - allow C++11 language extensions if necessary - - * src/Font.cpp, src/Font.hpp: - report Metafont failures only once for each font - -2017-01-31 Martin Gieseking - - * README, README.md: - README: updated links, added release badge - -2017-01-30 Martin Gieseking - - * tests/FontManagerTest.cpp, tests/data/cmr10.pfb: - prevent FontManagerTest to fail due to missing font files - -2017-01-26 Martin Gieseking - - * src/Matrix.cpp, tests/MatrixTest.cpp: - minor changes of matrix class; improved MatrixTest - -2017-01-25 Martin Gieseking - - * src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.hpp, - tests/Makefile.am, tests/PapersizeSpecialTest.cpp, tests/create-makefile: - added PapersizeSpecialTest - - * tests/CMapManagerTest.cpp, tests/CMapReaderTest.cpp, - tests/DvisvgmSpecialTest.cpp, tests/EmSpecialTest.cpp, - tests/FileFinderTest.cpp, tests/FontManagerTest.cpp, - tests/JFMReaderTest.cpp, tests/MapLineTest.cpp, tests/SubfontTest.cpp, - tests/TFMReaderTest.cpp, tests/TensorProductPatchTest.cpp: - added 'override' specifier to gtest methods - - * src/FontCache.cpp, src/FontCache.hpp, tests/FontCacheTest.cpp, - tests/Makefile.am: - added FontCacheTest - - * tests/Makefile.am, tests/create-makefile: - removed redundant linker flag from tests - - * m4/ax_code_coverage.m4, m4/ax_cxx_compile_stdcxx.m4: - updated m4 scripts to latest versions - -2017-01-23 Martin Gieseking - - * README.md, appveyor.yml: - added basic appveyor.yml - -2017-01-20 Martin Gieseking - - * libs/ff-woff/Makefile.am, libs/ff-woff/fontforge/fontforge.h, - libs/ff-woff/fontforge/tmpfile2.cpp, libs/ff-woff/fontforge/utils.c, - src/dvisvgm.cpp: - improved error handling of tmpfile2() in ff-woff -The FontForge library - doesn't check the return value of tmpfile() which may lead -to segfaults. - The replacement function tmpfile2() throws an exception or calls -exit() - so that dvisvgm can terminate more cleanly. - -2017-01-18 Martin Gieseking - - * src/BoundingBox.cpp, src/Color.cpp, src/DVIToSVGActions.cpp, - src/FilePath.cpp, src/FileSystem.cpp, src/FontWriter.cpp, - src/Makefile.am, src/PageSize.cpp, src/SVGOutput.cpp, src/utility.cpp, - src/utility.hpp, tests/Makefile.am, tests/UtilityTest.cpp: - moved common utility functions to separate compilation unit and - namespace - - * src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, src/EPSToSVG.cpp: - get program name and version from version.hpp, avoid using macros from - config.h - - * .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.1 - - * NEWS: - updated NEWS - -2017-01-17 Martin Gieseking - - * libs/ff-woff/fontforge/utils.c, src/FileSystem.cpp, src/FileSystem.hpp, - src/Font.cpp, src/FontWriter.cpp, src/GlyphTracerMessages.hpp, - src/MetafontWrapper.cpp, src/MetafontWrapper.hpp, src/Process.cpp, - src/Process.hpp, src/SVGOutput.cpp, src/SVGOutput.hpp: - create temp files in the system's temp folder rather than in cwd (closes - #63) - - * doc/dvisvgm.txt.in, src/CommandLine.hpp, src/dvisvgm.cpp, - src/options.xml: - added option --tmpdir to select a different temp folder - - * src/FontWriter.cpp, src/FontWriter.hpp: - print error message if FontWriter can't write temporary files - -2017-01-12 Martin Gieseking - - * src/FilePath.cpp, src/FilePath.hpp, tests/FilePathTest.cpp, - tests/SVGOutputTest.cpp: - retain letter case of filenames (Windows) - - * src/DVIToSVG.cpp, src/EPSToSVG.cpp, src/SVGTree.hpp: - print warning message if output file could not be written - - * tests/GhostscriptTest.cpp: - disable GS banner in GhostscriptTest - -2017-01-10 Martin Gieseking - - * src/PsSpecialHandler.cpp, src/dvisvgm.cpp: - added missing newlines in messages; fixed typo - -2017-01-05 Martin Gieseking - - * src/AGLTable.hpp: - updated AGL table and removed colliding codepoints (closes #64) - -2017-01-03 Martin Gieseking - - * Makefile.am, README, README.md, configure.ac, doc/Makefile.am, - doc/conf-dblatex-man.xsl, doc/conf-dblatex-pdf.xsl, doc/db2html.xsl, - doc/dvisvgm.txt.in, doc/tweak-db-article.xsl, doc/tweak-dblatex-pdf.xsl, - libs/Makefile.am, src/AGLTable.hpp, src/BasicDVIReader.cpp, - src/BasicDVIReader.hpp, src/Bezier.cpp, src/Bezier.hpp, - src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.hpp, - src/Bitmap.cpp, src/Bitmap.hpp, src/BoundingBox.cpp, src/BoundingBox.hpp, - src/CLCommandLine.cpp, src/CLCommandLine.hpp, src/CLOption.hpp, - src/CMap.cpp, src/CMap.hpp, src/CMapManager.cpp, src/CMapManager.hpp, - src/CMapReader.cpp, src/CMapReader.hpp, src/CRC32.cpp, src/CRC32.hpp, - src/Calculator.cpp, src/Calculator.hpp, src/CharMapID.cpp, - src/CharMapID.hpp, src/Character.hpp, src/Color.cpp, src/Color.hpp, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.hpp, - src/CommandLine.hpp, src/DLLoader.cpp, src/DLLoader.hpp, - src/DVIActions.hpp, src/DVIReader.cpp, src/DVIReader.hpp, - src/DVIToSVG.cpp, src/DVIToSVG.hpp, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.hpp, src/DependencyGraph.hpp, src/Directory.cpp, - src/Directory.hpp, src/DvisvgmSpecialHandler.cpp, - src/DvisvgmSpecialHandler.hpp, src/EPSFile.cpp, src/EPSFile.hpp, - src/EPSToSVG.cpp, src/EPSToSVG.hpp, src/EmSpecialHandler.cpp, - src/EmSpecialHandler.hpp, src/EncFile.cpp, src/EncFile.hpp, - src/FileFinder.cpp, src/FileFinder.hpp, src/FilePath.cpp, - src/FilePath.hpp, src/FileSystem.cpp, src/FileSystem.hpp, - src/FixWord.hpp, src/Font.cpp, src/Font.hpp, src/FontCache.cpp, - src/FontCache.hpp, src/FontEncoding.cpp, src/FontEncoding.hpp, - src/FontEngine.cpp, src/FontEngine.hpp, src/FontManager.cpp, - src/FontManager.hpp, src/FontMap.cpp, src/FontMap.hpp, - src/FontMetrics.cpp, src/FontMetrics.hpp, src/FontStyle.hpp, - src/FontWriter.cpp, src/FontWriter.hpp, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.hpp, src/GFReader.cpp, src/GFReader.hpp, - src/GFTracer.cpp, src/GFTracer.hpp, src/Ghostscript.cpp, - src/Ghostscript.hpp, src/Glyph.hpp, src/GlyphTracerMessages.hpp, - src/GraphicsPath.hpp, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.hpp, src/InputBuffer.cpp, src/InputBuffer.hpp, - src/InputReader.cpp, src/InputReader.hpp, src/JFM.cpp, src/JFM.hpp, - src/Length.cpp, src/Length.hpp, src/Makefile.am, src/MapLine.cpp, - src/MapLine.hpp, src/Matrix.cpp, src/Matrix.hpp, src/Message.cpp, - src/Message.hpp, src/MessageException.hpp, src/MetafontWrapper.cpp, - src/MetafontWrapper.hpp, src/MiKTeXCom.cpp, src/MiKTeXCom.hpp, - src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.hpp, - src/NumericRanges.hpp, src/PSFilter.hpp, src/PSInterpreter.cpp, - src/PSInterpreter.hpp, src/PSPattern.cpp, src/PSPattern.hpp, - src/PSPreviewFilter.cpp, src/PSPreviewFilter.hpp, src/PageRanges.cpp, - src/PageRanges.hpp, src/PageSize.cpp, src/PageSize.hpp, src/Pair.hpp, - src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.hpp, - src/PathClipper.cpp, src/PathClipper.hpp, src/PdfSpecialHandler.cpp, - src/PdfSpecialHandler.hpp, src/PreScanDVIReader.cpp, - src/PreScanDVIReader.hpp, src/Process.cpp, src/Process.hpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.hpp, src/RangeMap.cpp, - src/RangeMap.hpp, src/SVGCharHandler.cpp, src/SVGCharHandler.hpp, - src/SVGCharHandlerFactory.cpp, src/SVGCharHandlerFactory.hpp, - src/SVGCharPathHandler.cpp, src/SVGCharPathHandler.hpp, - src/SVGCharTspanTextHandler.cpp, src/SVGCharTspanTextHandler.hpp, - src/SVGOutput.cpp, src/SVGOutput.hpp, src/SVGSingleCharTextHandler.cpp, - src/SVGSingleCharTextHandler.hpp, src/SVGTree.cpp, src/SVGTree.hpp, - src/ShadingPatch.cpp, src/ShadingPatch.hpp, src/SignalHandler.cpp, - src/SignalHandler.hpp, src/SpecialActions.hpp, src/SpecialHandler.hpp, - src/SpecialManager.cpp, src/SpecialManager.hpp, src/StreamReader.cpp, - src/StreamReader.hpp, src/StreamWriter.cpp, src/StreamWriter.hpp, - src/Subfont.cpp, src/Subfont.hpp, src/System.cpp, src/System.hpp, - src/TFM.cpp, src/TFM.hpp, src/TensorProductPatch.cpp, - src/TensorProductPatch.hpp, src/Terminal.cpp, src/Terminal.hpp, - src/ToUnicodeMap.cpp, src/ToUnicodeMap.hpp, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.hpp, src/TriangularPatch.cpp, - src/TriangularPatch.hpp, src/Unicode.cpp, src/Unicode.hpp, - src/VFActions.hpp, src/VFReader.cpp, src/VFReader.hpp, - src/VectorIterator.hpp, src/VectorStream.hpp, src/XMLDocument.cpp, - src/XMLDocument.hpp, src/XMLNode.cpp, src/XMLNode.hpp, src/XMLString.cpp, - src/XMLString.hpp, src/ZLibOutputStream.hpp, src/dvisvgm.cpp, - src/ffwrapper.c, src/ffwrapper.h, src/macros.hpp, src/options.dtd, - src/options.xml, src/psdefs.cpp, src/version.hpp, src/version.hpp.in, - tests/BezierTest.cpp, tests/BitmapTest.cpp, tests/BoundingBoxTest.cpp, - tests/CMapManagerTest.cpp, tests/CMapReaderTest.cpp, tests/CMapTest.cpp, - tests/CRC32Test.cpp, tests/CalculatorTest.cpp, - tests/ColorSpecialTest.cpp, tests/ColorTest.cpp, - tests/CommandLineTest.cpp, tests/DependencyGraphTest.cpp, - tests/DirectoryTest.cpp, tests/DvisvgmSpecialTest.cpp, - tests/EmSpecialTest.cpp, tests/FileFinderTest.cpp, - tests/FilePathTest.cpp, tests/FileSystemTest.cpp, - tests/FontManagerTest.cpp, tests/FontMapTest.cpp, - tests/GFGlyphTracerTest.cpp, tests/GFReaderTest.cpp, - tests/GraphicsPathTest.cpp, tests/JFMReaderTest.cpp, - tests/LengthTest.cpp, tests/Makefile.am, tests/MapLineTest.cpp, - tests/MatrixTest.cpp, tests/MessageExceptionTest.cpp, - tests/PSInterpreterTest.cpp, tests/PageRagesTest.cpp, - tests/PageSizeTest.cpp, tests/PairTest.cpp, tests/RangeMapTest.cpp, - tests/SVGOutputTest.cpp, tests/ShadingPatchTest.cpp, - tests/SplittedCharInputBufferTest.cpp, tests/StreamInputBufferTest.cpp, - tests/StreamReaderTest.cpp, tests/StreamWriterTest.cpp, - tests/SubfontTest.cpp, tests/TFMReaderTest.cpp, - tests/TensorProductPatchTest.cpp, tests/ToUnicodeMapTest.cpp, - tests/TriangularPatchTest.cpp, tests/UnicodeTest.cpp, - tests/VectorIteratorTest.cpp, tests/VectorStreamTest.cpp, - tests/XMLNodeTest.cpp, tests/XMLStringTest.cpp, tests/check-conv, - tests/create-makefile, tests/data/Makefile.am, tests/genhashcheck.py, - tests/normalize.xsl: - updated year in copyright statements to 2017 - -2016-12-20 Martin Gieseking - - * doc/Makefile.am, doc/conf-dblatex-pdf.xsl, doc/db2html.xsl, - doc/dvisvgm.txt.in, doc/dvisvgm.xpr, doc/tweak-db-article.xsl: - manpage: minor refactorings of the XSLT scripts; added generation of - epub - -2016-12-16 Martin Gieseking - - * doc/conf-dblatex-man.xsl, doc/conf-dblatex-pdf.xsl, doc/db2html.xsl, - doc/tweak-dblatex-pdf.xsl: - added missing email address to copyright headers - - * doc/conf-dblatex-man.xsl, doc/conf-dblatex-pdf.xsl, - doc/tweak-dblatex-pdf.xsl: - indent with tabs rather than spaces - - * doc/db2html.xsl: - manpage: replace icon of Author section - - * doc/conf-dblatex-pdf.xsl, doc/tweak-dblatex-pdf.xsl: - manpage: use mixed case titles in pdf output - -2016-12-15 Martin Gieseking - - * doc/db2html.xsl, doc/dvisvgm.xpr: - manpage: preserve whitespace in list of supported specials - -2016-11-16 Martin Gieseking - - * configure.ac: - ensure compiling C files with --std=c99 - -2016-11-14 Martin Gieseking - - * NEWS: - updated NEWS - -2016-11-12 Martin Gieseking - - * doc/dvisvgm.txt.in: - minor changes in manpage - - * README, README.md, configure.ac, libs/Makefile.am, libs/ff-woff/LICENSE, - libs/ff-woff/Makefile.am, libs/ff-woff/README.md, - libs/ff-woff/fontforge/PfEd.h, libs/ff-woff/fontforge/alphabet.c, - libs/ff-woff/fontforge/asmfpst.c, libs/ff-woff/fontforge/autohint.c, - libs/ff-woff/fontforge/char.c, libs/ff-woff/fontforge/cjk.c, - libs/ff-woff/fontforge/configure-fontforge.h, - libs/ff-woff/fontforge/cvundoes.c, libs/ff-woff/fontforge/dumppfa.c, - libs/ff-woff/fontforge/edgelist.h, libs/ff-woff/fontforge/edgelist2.h, - libs/ff-woff/fontforge/encoding.c, libs/ff-woff/fontforge/encoding.h, - libs/ff-woff/fontforge/fontforge-config.h, - libs/ff-woff/fontforge/fontforge.h, libs/ff-woff/fontforge/fontforgevw.h, - libs/ff-woff/fontforge/fvfonts.c, libs/ff-woff/fontforge/gwwiconv.c, - libs/ff-woff/fontforge/libffstamp.h, libs/ff-woff/fontforge/lookups.c, - libs/ff-woff/fontforge/macbinary.c, libs/ff-woff/fontforge/macenc.c, - libs/ff-woff/fontforge/mathconstants.c, libs/ff-woff/fontforge/memory.c, - libs/ff-woff/fontforge/mm.c, libs/ff-woff/fontforge/namehash.h, - libs/ff-woff/fontforge/namelist.c, libs/ff-woff/fontforge/nouiutil.c, - libs/ff-woff/fontforge/nowakowskittfinstr.c, - libs/ff-woff/fontforge/parsepfa.c, libs/ff-woff/fontforge/parsettf.c, - libs/ff-woff/fontforge/parsettfatt.c, libs/ff-woff/fontforge/psfont.h, - libs/ff-woff/fontforge/psread.c, libs/ff-woff/fontforge/pua.c, - libs/ff-woff/fontforge/sd.h, libs/ff-woff/fontforge/sfd.c, - libs/ff-woff/fontforge/sfd1.c, libs/ff-woff/fontforge/sfd1.h, - libs/ff-woff/fontforge/splinechar.c, libs/ff-woff/fontforge/splinefont.c, - libs/ff-woff/fontforge/splinefont.h, - libs/ff-woff/fontforge/splineorder2.c, - libs/ff-woff/fontforge/splineoverlap.c, - libs/ff-woff/fontforge/splinerefigure.c, - libs/ff-woff/fontforge/splinesave.c, - libs/ff-woff/fontforge/splinesaveafm.c, - libs/ff-woff/fontforge/splineutil.c, - libs/ff-woff/fontforge/splineutil2.c, libs/ff-woff/fontforge/start.c, - libs/ff-woff/fontforge/stemdb.c, libs/ff-woff/fontforge/stemdb.h, - libs/ff-woff/fontforge/tables.h, libs/ff-woff/fontforge/tottf.c, - libs/ff-woff/fontforge/tottfaat.c, libs/ff-woff/fontforge/tottfgpos.c, - libs/ff-woff/fontforge/tottfvar.c, libs/ff-woff/fontforge/ttf.h, - libs/ff-woff/fontforge/ttfinstrs.c, libs/ff-woff/fontforge/ttfinstrs.h, - libs/ff-woff/fontforge/ttfspecial.c, - libs/ff-woff/fontforge/uiinterface.h, libs/ff-woff/fontforge/unialt.c, - libs/ff-woff/fontforge/ustring.c, libs/ff-woff/fontforge/utils.c, - libs/ff-woff/fontforge/utype.c, libs/ff-woff/fontforge/woff.c, - libs/ff-woff/inc/basics.h, libs/ff-woff/inc/chardata.h, - libs/ff-woff/inc/charset.h, libs/ff-woff/inc/dlist.h, - libs/ff-woff/inc/gimage.h, libs/ff-woff/inc/gnetwork.h, - libs/ff-woff/inc/gwwiconv.h, libs/ff-woff/inc/intl.h, - libs/ff-woff/inc/ustring.h, libs/ff-woff/inc/utype.h, src/Makefile.am: - bundle reduced fontforge library (ff-woff) - - * configure.ac, libs/Makefile.am, libs/clipper/Makefile.am, - libs/ff-woff/Makefile.am, libs/woff2/Makefile.am, - libs/woff2/brotli/Makefile.am, libs/woff2/brotli/enc/Makefile.am, - libs/woff2/src/Makefile.am, src/Makefile.am: - added license files of bundled libraries; relocated Makefiles - - * .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.0.4 - -2016-11-07 Martin Gieseking - - * src/CommandLine.hpp, src/options.xml: - fixed a typo in the --help output - - * src/BasicDVIReader.cpp, src/BasicDVIReader.hpp, src/DVIReader.cpp, - src/DVIReader.hpp: - use const variables for DVI opcodes rather than the values directly - -2016-11-01 Martin Gieseking - - * src/FontWriter.cpp: - few cosmetic changes; added comments - -2016-09-27 Martin Gieseking - - * .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.0.3 - - * NEWS, README, README.md: - updated NEWS and README - -2016-09-23 Martin Gieseking - - * src/DVIReader.cpp, src/DVIReader.hpp, src/DVIToSVG.cpp, - src/DVIToSVG.hpp: - dropped tracking of previous DVI state from DVIReader - - * src/DVIReader.cpp: - fixed positioning of rules - -2016-09-22 Martin Gieseking - - * src/DVIReader.cpp, src/DVIReader.hpp, src/DVIToSVG.cpp: - fixed regression in character positioning of of virtual fonts - -2016-09-18 Martin Gieseking - - * src/DVIReader.cpp: - fixed type regression in computation of DVI positions (closes #61) - - * .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.0.2 - - * NEWS, README.md: - updated NEWS and README - -2016-09-16 Martin Gieseking - - * src/Font.cpp: - fixed sign of character depth computed for native fonts - -2016-09-03 Martin Gieseking - - * .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.0.1 - - * NEWS, README, README.md: - updated NEWS and README - -2016-08-31 Martin Gieseking - - * README, README.md: - added link to reduced FF library to README - - * doc/dvisvgm.txt.in, src/FontWriter.cpp, src/FontWriter.hpp, - src/SVGTree.cpp, src/SVGTree.hpp, src/ffwrapper.c: - added option to autohint fonts created by the FontForge library - -2016-08-30 Martin Gieseking - - * src/DVIToSVGActions.hpp, src/FontManager.hpp, src/MetafontWrapper.hpp: - adapted struct/class forward declarations - -2016-08-28 Martin Gieseking - - * src/FileFinder.cpp, src/FileFinder.hpp: - removed unused variable - - * src/CLCommandLine.cpp: - added missing cast to avoid compiler warning - - * .travis.yml, configure.ac, src/Doxyfile, src/version.hpp: - set version to 2.0 - - * README, README.md: - updated README files - - * NEWS: - updated NEWS - -2016-08-27 Martin Gieseking - - * .travis.yml: - use Ubuntu Trusty for Travis builds - - * .travis.yml: - Travis: prevent rebuilding files in folder 'src' when calling 'make - check' - - * src/FontWriter.cpp, src/FontWriter.hpp, src/ffwrapper.c, - src/ffwrapper.h: - added missing copyright headers - -2016-08-25 Martin Gieseking - - * Makefile.am, clipper/License.txt, clipper/Makefile.am, - clipper/clipper.cpp, clipper/clipper.hpp, configure.ac, libs/Makefile.am, - libs/clipper/License.txt, libs/clipper/Makefile.am, - libs/clipper/clipper.cpp, libs/clipper/clipper.hpp, libs/xxHash/LICENSE, - libs/xxHash/Makefile.am, libs/xxHash/xxhash.c, libs/xxHash/xxhash.h, - src/Makefile.am, tests/Makefile.am, tests/create-makefile, - xxHash/LICENSE, xxHash/Makefile.am, xxHash/xxhash.c, xxHash/xxhash.h: - moved bundled libraries (clipper, xxHash) to subfolder 'libs' - - * configure.ac, doc/dvisvgm.txt.in, libs/Makefile.am, libs/woff2/LICENSE, - libs/woff2/brotli/LICENSE, libs/woff2/brotli/enc/Makefile.am, - libs/woff2/brotli/enc/backward_references.cc, - libs/woff2/brotli/enc/backward_references.h, - libs/woff2/brotli/enc/bit_cost.h, - libs/woff2/brotli/enc/block_splitter.cc, - libs/woff2/brotli/enc/block_splitter.h, - libs/woff2/brotli/enc/brotli_bit_stream.cc, - libs/woff2/brotli/enc/brotli_bit_stream.h, - libs/woff2/brotli/enc/cluster.h, libs/woff2/brotli/enc/command.h, - libs/woff2/brotli/enc/compress_fragment.cc, - libs/woff2/brotli/enc/compress_fragment.h, - libs/woff2/brotli/enc/compress_fragment_two_pass.cc, - libs/woff2/brotli/enc/compress_fragment_two_pass.h, - libs/woff2/brotli/enc/compressor.h, libs/woff2/brotli/enc/context.h, - libs/woff2/brotli/enc/dictionary.cc, libs/woff2/brotli/enc/dictionary.h, - libs/woff2/brotli/enc/dictionary_hash.h, libs/woff2/brotli/enc/encode.cc, - libs/woff2/brotli/enc/encode.h, libs/woff2/brotli/enc/encode_parallel.cc, - libs/woff2/brotli/enc/encode_parallel.h, - libs/woff2/brotli/enc/entropy_encode.cc, - libs/woff2/brotli/enc/entropy_encode.h, - libs/woff2/brotli/enc/entropy_encode_static.h, - libs/woff2/brotli/enc/fast_log.h, - libs/woff2/brotli/enc/find_match_length.h, libs/woff2/brotli/enc/hash.h, - libs/woff2/brotli/enc/histogram.cc, libs/woff2/brotli/enc/histogram.h, - libs/woff2/brotli/enc/literal_cost.cc, - libs/woff2/brotli/enc/literal_cost.h, libs/woff2/brotli/enc/metablock.cc, - libs/woff2/brotli/enc/metablock.h, libs/woff2/brotli/enc/port.h, - libs/woff2/brotli/enc/prefix.h, libs/woff2/brotli/enc/ringbuffer.h, - libs/woff2/brotli/enc/static_dict.cc, - libs/woff2/brotli/enc/static_dict.h, - libs/woff2/brotli/enc/static_dict_lut.h, - libs/woff2/brotli/enc/streams.cc, libs/woff2/brotli/enc/streams.h, - libs/woff2/brotli/enc/transform.h, libs/woff2/brotli/enc/types.h, - libs/woff2/brotli/enc/utf8_util.cc, libs/woff2/brotli/enc/utf8_util.h, - libs/woff2/brotli/enc/write_bits.h, libs/woff2/brotli/tools/bro.cc, - libs/woff2/brotli/tools/rfc-format.py, libs/woff2/brotli/tools/version.h, - libs/woff2/src/Makefile.am, libs/woff2/src/buffer.h, - libs/woff2/src/file.h, libs/woff2/src/font.cc, libs/woff2/src/font.h, - libs/woff2/src/glyph.cc, libs/woff2/src/glyph.h, - libs/woff2/src/normalize.cc, libs/woff2/src/normalize.h, - libs/woff2/src/port.h, libs/woff2/src/round.h, - libs/woff2/src/store_bytes.h, libs/woff2/src/table_tags.cc, - libs/woff2/src/table_tags.h, libs/woff2/src/transform.cc, - libs/woff2/src/transform.h, libs/woff2/src/variable_length.cc, - libs/woff2/src/variable_length.h, libs/woff2/src/woff2_common.cc, - libs/woff2/src/woff2_common.h, libs/woff2/src/woff2_dec.h, - libs/woff2/src/woff2_enc.cc, libs/woff2/src/woff2_enc.h, - libs/woff2/src/woff2_out.cc, libs/woff2/src/woff2_out.h, - src/FontWriter.cpp, src/FontWriter.hpp, src/Makefile.am: - added support for embedding WOFF2 fonts - -2016-08-24 Martin Gieseking - - * src/XMLNode.hpp: - added move constructors to XMLNode classes - -2016-08-23 Martin Gieseking - - * src/FontEngine.cpp: - fixed sign of the font descender - - * configure.ac, doc/dvisvgm.txt.in, src/CommandLine.hpp, - src/FontWriter.cpp, src/FontWriter.hpp, src/GraphicsPath.hpp, - src/Makefile.am, src/SVGTree.cpp, src/SVGTree.hpp, src/XMLNode.cpp, - src/XMLNode.hpp, src/dvisvgm.cpp, src/ffwrapper.c, src/ffwrapper.h, - src/options.xml: - added option --font-format to select the file format used to embed fonts - -2016-08-22 Martin Gieseking - - * xxHash/xxhash.c, xxHash/xxhash.h: - updated xxHash to version 0.6.2 - -2016-08-17 Martin Gieseking - - * src/FixWord.hpp, src/Font.cpp, src/FontMetrics.hpp, src/SVGTree.cpp, - src/TFM.cpp, src/TFM.hpp: - added getters for ascent and descent to TFM-based fonts - -2016-08-14 Martin Gieseking - - * src/Ghostscript.hpp: - removed copy constructor of class Ghostscript - - * src/PathClipper.cpp: - added missing initializers - -2016-08-13 Martin Gieseking - - * configure.ac, src/CLCommandLine.cpp, src/CLCommandLine.hpp, - src/CommandLine.hpp, src/Makefile.am, src/dvisvgm.cpp, src/options.dtd, - src/options.xml, src/version.hpp, src/version.hpp.in: - added version.hpp to provide the current version number - -2016-08-08 Martin Gieseking - - * src/DVIReader.cpp, src/DVIReader.hpp, src/Directory.cpp, - src/Directory.hpp, src/FilePath.cpp, src/FilePath.hpp, src/Font.cpp, - src/Font.hpp, src/FontManager.cpp, src/FontManager.hpp, src/GFReader.hpp, - src/PageRanges.cpp, src/PageRanges.hpp, src/PageSize.cpp, - src/PageSize.hpp, src/SVGOutput.cpp, src/SVGOutput.hpp, - src/VFActions.hpp, src/VFReader.cpp: - pass string parameters by reference if possible - - * src/System.cpp, src/dvisvgm.cpp: - minor refactorings of dvisvgm.cpp - - * src/Ghostscript.cpp, src/MiKTeXCom.cpp: - replaced __WIN64__ with pre-defined _WIN64 - -2016-08-02 Martin Gieseking - - * src/CLCommandLine.cpp, src/CLCommandLine.hpp, src/CLOption.hpp, - src/CmdLineParserBase.cpp, src/CmdLineParserBase.hpp, - src/CommandLine.cpp, src/CommandLine.hpp, src/Makefile.am, - src/dvisvgm.cpp, src/options.dtd, src/options.xml, - tests/CommandLineTest.cpp: - reimplemented the CommandLine parser class - - * src/CMap.cpp, src/CMapManager.cpp, src/CMapReader.cpp, src/EncFile.cpp, - src/FileFinder.cpp, src/FileFinder.hpp, src/Font.cpp, - src/FontEncoding.cpp, src/FontManager.cpp, src/FontMap.cpp, - src/FontMetrics.cpp, src/Ghostscript.cpp, src/MetafontWrapper.cpp, - src/PsSpecialHandler.cpp, src/Subfont.cpp, src/dvisvgm.cpp, - tests/CMapManagerTest.cpp, tests/FileFinderTest.cpp, - tests/MapLineTest.cpp, tests/SubfontTest.cpp: - made FileFinder a singleton again - -2016-07-27 Martin Gieseking - - * src/BgColorSpecialHandler.cpp, src/BoundingBox.cpp, - src/DvisvgmSpecialHandler.cpp, src/EmSpecialHandler.cpp, - src/FileSystem.cpp, src/FontCache.cpp, src/FontEngine.cpp, - src/FontManager.cpp, src/GraphicsPath.hpp, src/PSInterpreter.cpp, - src/PapersizeSpecialHandler.cpp, src/PathClipper.cpp, src/RangeMap.cpp, - src/Subfont.cpp, src/TpicSpecialHandler.cpp, src/XMLDocument.cpp, - src/XMLNode.cpp: - replaced insert/push_back with emplace/emplace_back where useful - -2016-07-23 Martin Gieseking - - * src/PathClipper.cpp: - some minor refactorings of class PathClipper - - * src/CMapReader.cpp: - minor refactoring of class CMapReader - -2016-07-22 Martin Gieseking - - * src/FontMap.cpp, src/FontMap.hpp: - some syntactic refactorings of class FontMap - - * src/FontManager.cpp, src/FontManager.hpp: - use unique_ptr to automatically release Font objects in class - FontManager - -2016-07-21 Martin Gieseking - - * src/AGLTable.h, src/AGLTable.hpp, src/BasicDVIReader.cpp, - src/BasicDVIReader.h, src/BasicDVIReader.hpp, src/Bezier.cpp, - src/Bezier.h, src/Bezier.hpp, src/BgColorSpecialHandler.cpp, - src/BgColorSpecialHandler.h, src/BgColorSpecialHandler.hpp, - src/Bitmap.cpp, src/Bitmap.h, src/Bitmap.hpp, src/BoundingBox.cpp, - src/BoundingBox.h, src/BoundingBox.hpp, src/CMap.cpp, src/CMap.h, - src/CMap.hpp, src/CMapManager.cpp, src/CMapManager.h, - src/CMapManager.hpp, src/CMapReader.cpp, src/CMapReader.h, - src/CMapReader.hpp, src/CRC32.cpp, src/CRC32.h, src/CRC32.hpp, - src/Calculator.cpp, src/Calculator.h, src/Calculator.hpp, - src/CharMapID.cpp, src/CharMapID.h, src/CharMapID.hpp, src/Character.h, - src/Character.hpp, src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, - src/CmdLineParserBase.hpp, src/Color.cpp, src/Color.h, src/Color.hpp, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/ColorSpecialHandler.hpp, src/CommandLine.cpp, src/CommandLine.h, - src/CommandLine.hpp, src/DLLoader.cpp, src/DLLoader.h, src/DLLoader.hpp, - src/DVIActions.h, src/DVIActions.hpp, src/DVIReader.cpp, src/DVIReader.h, - src/DVIReader.hpp, src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVG.hpp, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/DVIToSVGActions.hpp, - src/DependencyGraph.h, src/DependencyGraph.hpp, src/Directory.cpp, - src/Directory.h, src/Directory.hpp, src/DvisvgmSpecialHandler.cpp, - src/DvisvgmSpecialHandler.h, src/DvisvgmSpecialHandler.hpp, - src/EPSFile.cpp, src/EPSFile.h, src/EPSFile.hpp, src/EPSToSVG.cpp, - src/EPSToSVG.h, src/EPSToSVG.hpp, src/EmSpecialHandler.cpp, - src/EmSpecialHandler.h, src/EmSpecialHandler.hpp, src/EncFile.cpp, - src/EncFile.h, src/EncFile.hpp, src/FileFinder.cpp, src/FileFinder.h, - src/FileFinder.hpp, src/FilePath.cpp, src/FilePath.h, src/FilePath.hpp, - src/FileSystem.cpp, src/FileSystem.h, src/FileSystem.hpp, src/FixWord.h, - src/FixWord.hpp, src/Font.cpp, src/Font.h, src/Font.hpp, - src/FontCache.cpp, src/FontCache.h, src/FontCache.hpp, - src/FontEncoding.cpp, src/FontEncoding.h, src/FontEncoding.hpp, - src/FontEngine.cpp, src/FontEngine.h, src/FontEngine.hpp, - src/FontManager.cpp, src/FontManager.h, src/FontManager.hpp, - src/FontMap.cpp, src/FontMap.h, src/FontMap.hpp, src/FontMetrics.cpp, - src/FontMetrics.h, src/FontMetrics.hpp, src/FontStyle.h, - src/FontStyle.hpp, src/GFGlyphTracer.cpp, src/GFGlyphTracer.h, - src/GFGlyphTracer.hpp, src/GFReader.cpp, src/GFReader.h, - src/GFReader.hpp, src/GFTracer.cpp, src/GFTracer.h, src/GFTracer.hpp, - src/Ghostscript.cpp, src/Ghostscript.h, src/Ghostscript.hpp, src/Glyph.h, - src/Glyph.hpp, src/GlyphTracerMessages.h, src/GlyphTracerMessages.hpp, - src/GraphicsPath.h, src/GraphicsPath.hpp, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.h, src/HtmlSpecialHandler.hpp, - src/InputBuffer.cpp, src/InputBuffer.h, src/InputBuffer.hpp, - src/InputReader.cpp, src/InputReader.h, src/InputReader.hpp, src/JFM.cpp, - src/JFM.h, src/JFM.hpp, src/Length.cpp, src/Length.h, src/Length.hpp, - src/Makefile.am, src/MapLine.cpp, src/MapLine.h, src/MapLine.hpp, - src/Matrix.cpp, src/Matrix.h, src/Matrix.hpp, src/Message.cpp, - src/Message.h, src/Message.hpp, src/MessageException.h, - src/MessageException.hpp, src/MetafontWrapper.cpp, src/MetafontWrapper.h, - src/MetafontWrapper.hpp, src/MiKTeXCom.cpp, src/MiKTeXCom.h, - src/MiKTeXCom.hpp, src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.h, - src/NoPsSpecialHandler.hpp, src/NumericRanges.h, src/NumericRanges.hpp, - src/PSFilter.h, src/PSFilter.hpp, src/PSInterpreter.cpp, - src/PSInterpreter.h, src/PSInterpreter.hpp, src/PSPattern.cpp, - src/PSPattern.h, src/PSPattern.hpp, src/PSPreviewFilter.cpp, - src/PSPreviewFilter.h, src/PSPreviewFilter.hpp, src/PageRanges.cpp, - src/PageRanges.h, src/PageRanges.hpp, src/PageSize.cpp, src/PageSize.h, - src/PageSize.hpp, src/Pair.h, src/Pair.hpp, - src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.h, - src/PapersizeSpecialHandler.hpp, src/PathClipper.cpp, src/PathClipper.h, - src/PathClipper.hpp, src/PdfSpecialHandler.cpp, src/PdfSpecialHandler.h, - src/PdfSpecialHandler.hpp, src/PreScanDVIReader.cpp, - src/PreScanDVIReader.h, src/PreScanDVIReader.hpp, src/Process.cpp, - src/Process.h, src/Process.hpp, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/PsSpecialHandler.hpp, src/RangeMap.cpp, - src/RangeMap.h, src/RangeMap.hpp, src/SVGCharHandler.cpp, - src/SVGCharHandler.h, src/SVGCharHandler.hpp, - src/SVGCharHandlerFactory.cpp, src/SVGCharHandlerFactory.h, - src/SVGCharHandlerFactory.hpp, src/SVGCharPathHandler.cpp, - src/SVGCharPathHandler.h, src/SVGCharPathHandler.hpp, - src/SVGCharTspanTextHandler.cpp, src/SVGCharTspanTextHandler.h, - src/SVGCharTspanTextHandler.hpp, src/SVGOutput.cpp, src/SVGOutput.h, - src/SVGOutput.hpp, src/SVGSingleCharTextHandler.cpp, - src/SVGSingleCharTextHandler.h, src/SVGSingleCharTextHandler.hpp, - src/SVGTree.cpp, src/SVGTree.h, src/SVGTree.hpp, src/ShadingPatch.cpp, - src/ShadingPatch.h, src/ShadingPatch.hpp, src/SignalHandler.cpp, - src/SignalHandler.h, src/SignalHandler.hpp, src/SpecialActions.h, - src/SpecialActions.hpp, src/SpecialHandler.h, src/SpecialHandler.hpp, - src/SpecialManager.cpp, src/SpecialManager.h, src/SpecialManager.hpp, - src/StreamReader.cpp, src/StreamReader.h, src/StreamReader.hpp, - src/StreamWriter.cpp, src/StreamWriter.h, src/StreamWriter.hpp, - src/Subfont.cpp, src/Subfont.h, src/Subfont.hpp, src/System.cpp, - src/System.h, src/System.hpp, src/TFM.cpp, src/TFM.h, src/TFM.hpp, - src/TensorProductPatch.cpp, src/TensorProductPatch.h, - src/TensorProductPatch.hpp, src/Terminal.cpp, src/Terminal.h, - src/Terminal.hpp, src/ToUnicodeMap.cpp, src/ToUnicodeMap.h, - src/ToUnicodeMap.hpp, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.h, src/TpicSpecialHandler.hpp, - src/TriangularPatch.cpp, src/TriangularPatch.h, src/TriangularPatch.hpp, - src/Unicode.cpp, src/Unicode.h, src/Unicode.hpp, src/VFActions.h, - src/VFActions.hpp, src/VFReader.cpp, src/VFReader.h, src/VFReader.hpp, - src/VectorIterator.h, src/VectorIterator.hpp, src/VectorStream.h, - src/VectorStream.hpp, src/XMLDocument.cpp, src/XMLDocument.h, - src/XMLDocument.hpp, src/XMLNode.cpp, src/XMLNode.h, src/XMLNode.hpp, - src/XMLString.cpp, src/XMLString.h, src/XMLString.hpp, - src/ZLibOutputStream.h, src/ZLibOutputStream.hpp, src/dvisvgm.cpp, - src/macros.h, src/macros.hpp, src/psdefs.cpp, tests/BezierTest.cpp, - tests/BitmapTest.cpp, tests/BoundingBoxTest.cpp, - tests/CMapManagerTest.cpp, tests/CMapReaderTest.cpp, tests/CMapTest.cpp, - tests/CRC32Test.cpp, tests/CalculatorTest.cpp, - tests/ColorSpecialTest.cpp, tests/ColorTest.cpp, - tests/CommandLineTest.cpp, tests/DependencyGraphTest.cpp, - tests/DirectoryTest.cpp, tests/DvisvgmSpecialTest.cpp, - tests/EmSpecialTest.cpp, tests/FileFinderTest.cpp, - tests/FilePathTest.cpp, tests/FileSystemTest.cpp, - tests/FontManagerTest.cpp, tests/FontMapTest.cpp, - tests/GFGlyphTracerTest.cpp, tests/GFReaderTest.cpp, - tests/GhostscriptTest.cpp, tests/GraphicsPathTest.cpp, - tests/JFMReaderTest.cpp, tests/LengthTest.cpp, tests/Makefile.am, - tests/MapLineTest.cpp, tests/MatrixTest.cpp, - tests/MessageExceptionTest.cpp, tests/PSInterpreterTest.cpp, - tests/PageRagesTest.cpp, tests/PageSizeTest.cpp, tests/PairTest.cpp, - tests/RangeMapTest.cpp, tests/SVGOutputTest.cpp, - tests/ShadingPatchTest.cpp, tests/SplittedCharInputBufferTest.cpp, - tests/StreamInputBufferTest.cpp, tests/StreamReaderTest.cpp, - tests/StreamWriterTest.cpp, tests/SubfontTest.cpp, - tests/TFMReaderTest.cpp, tests/TensorProductPatchTest.cpp, - tests/ToUnicodeMapTest.cpp, tests/TriangularPatchTest.cpp, - tests/UnicodeTest.cpp, tests/VectorIteratorTest.cpp, - tests/VectorStreamTest.cpp, tests/XMLNodeTest.cpp, - tests/XMLStringTest.cpp, tests/create-makefile: - renamed filename extension of C++ headers to .hpp - -2016-07-20 Martin Gieseking - - * src/CMapManager.cpp, src/CMapManager.h, src/FileFinder.cpp, - src/Font.cpp, src/Font.h, src/XMLDocument.cpp, src/XMLDocument.h, - src/XMLNode.cpp, src/XMLNode.h, tests/XMLNodeTest.cpp: - use smart pointers to release heap memory - - * src/DVIToSVGActions.cpp, src/DVIToSVGActions.h: - create BoxMap object directly, avoid new/delete - -2016-07-19 Martin Gieseking - - * src/AGLTable.h, src/Color.cpp, src/Unicode.cpp, tests/genhashcheck.py: - replaced repeated binary search implementations with calls of - lower_bound() - -2016-07-13 Martin Gieseking - - * src/FileFinder.cpp, src/Message.cpp: - initialize maps with initializer-lists - -2016-07-05 Martin Gieseking - - * src/Length.cpp, src/TpicSpecialHandler.cpp: - replaced 'id macros' with constexpr functions - -2016-07-04 Martin Gieseking - - * src/TFM.cpp: - added missing initializers - - * src/dvisvgm.cpp: - catch exception in set_cache_dir() - - * .travis.yml, configure.ac, src/Doxyfile: - set version to 1.16 - - * NEWS, README.md: - updated NEWS and README - -2016-07-03 Martin Gieseking - - * configure.ac, m4/ax_cxx_compile_stdcxx.m4: - switch from C++03 to C++11 - - * src/NumericRanges.h, src/PapersizeSpecialHandler.cpp, src/Unicode.cpp, - src/VFReader.cpp: - replaced static callback functions with lambdas - - * src/CMapReader.cpp, src/CMapReader.h, src/CmdLineParserBase.cpp, - src/CmdLineParserBase.h, src/Color.cpp, src/Color.h, src/CommandLine.cpp, - src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, - src/EmSpecialHandler.cpp, src/Font.cpp, src/Font.h, src/FontManager.cpp, - src/GraphicsPath.h, src/HtmlSpecialHandler.cpp, src/HtmlSpecialHandler.h, - src/Length.cpp, src/Length.h, src/PathClipper.cpp, - src/PsSpecialHandler.cpp, src/SVGTree.cpp, src/ShadingPatch.cpp, - src/TensorProductPatch.h, tests/BoundingBoxTest.cpp, - tests/LengthTest.cpp, tests/ShadingPatchTest.cpp, - tests/TensorProductPatchTest.cpp, tests/TriangularPatchTest.cpp: - replaced some enums with enum classes - - * clipper/clipper.hpp, src/AGLTable.h, src/BasicDVIReader.cpp, - src/Bitmap.cpp, src/Bitmap.h, src/BoundingBox.h, src/CMap.cpp, - src/CMap.h, src/CMapReader.cpp, src/CRC32.cpp, src/CRC32.h, - src/CharMapID.h, src/Character.h, src/Color.cpp, src/Color.h, - src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, - src/DVIToSVG.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, - src/EPSFile.cpp, src/EPSFile.h, src/EncFile.cpp, src/EncFile.h, - src/FileSystem.cpp, src/FileSystem.h, src/FixWord.h, src/Font.cpp, - src/Font.h, src/FontCache.cpp, src/FontCache.h, src/FontEncoding.cpp, - src/FontEncoding.h, src/FontEngine.cpp, src/FontEngine.h, - src/FontManager.cpp, src/FontManager.h, src/FontMetrics.cpp, - src/FontMetrics.h, src/GFGlyphTracer.cpp, src/GFGlyphTracer.h, - src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, src/GFTracer.h, - src/Glyph.h, src/GlyphTracerMessages.h, src/InputBuffer.cpp, - src/InputBuffer.h, src/JFM.cpp, src/JFM.h, src/Makefile.am, - src/Message.h, src/Pair.h, src/PathClipper.cpp, src/PreScanDVIReader.cpp, - src/PsSpecialHandler.h, src/RangeMap.cpp, src/RangeMap.h, - src/SVGCharHandler.h, src/SVGCharPathHandler.cpp, - src/SVGCharPathHandler.h, src/SVGCharTspanTextHandler.cpp, - src/SVGCharTspanTextHandler.h, src/SVGSingleCharTextHandler.cpp, - src/SVGSingleCharTextHandler.h, src/StreamReader.cpp, src/StreamReader.h, - src/StreamWriter.cpp, src/StreamWriter.h, src/Subfont.cpp, src/Subfont.h, - src/TFM.cpp, src/TFM.h, src/ToUnicodeMap.cpp, src/ToUnicodeMap.h, - src/Unicode.cpp, src/Unicode.h, src/VFActions.h, src/VFReader.cpp, - src/VFReader.h, src/XMLString.cpp, src/types.h, tests/BitmapTest.cpp, - tests/CRC32Test.cpp, tests/ColorSpecialTest.cpp, tests/ColorTest.cpp, - tests/GFGlyphTracerTest.cpp, tests/GFReaderTest.cpp, - tests/JFMReaderTest.cpp, tests/Makefile.am, tests/StreamReaderTest.cpp, - tests/TriangularPatchTest.cpp, tests/TypesTest.cpp, - tests/UnicodeTest.cpp: - replaced own fixed-sized integer types with types from cstdint - - * AUTHORS, LGPL-2.1.txt, Makefile.am, gzstream/COPYING.LIB, - gzstream/Makefile, gzstream/README, gzstream/gzstream.cpp, - gzstream/gzstream.h, gzstream/index.html, gzstream/logo.gif, - gzstream/test_gunzip.C, gzstream/test_gzip.C, gzstream/version, - src/Makefile.am, src/SVGOutput.cpp, src/SVGOutput.h, - src/ZLibOutputStream.h, src/dvisvgm.cpp, src/gzstream.cpp, - src/gzstream.h, tests/Makefile.am, tests/SVGOutputTest.cpp, - tests/create-makefile: - replaced old gzstream classes - - * src/DVIReader.cpp, src/DVIReader.h, src/Font.cpp, src/Font.h, - src/FontManager.cpp, src/FontManager.h, src/VFActions.h, - src/VFReader.cpp: - transfer DVI snippet of a VF char by move semantics rather than by heap - pointer - -2016-07-02 Martin Gieseking - - * src/Bitmap.cpp, src/BoundingBox.h, src/CMapManager.cpp, - src/CmdLineParserBase.cpp, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/DependencyGraph.h, - src/DvisvgmSpecialHandler.cpp, src/EmSpecialHandler.cpp, - src/FileFinder.cpp, src/FilePath.cpp, src/FilePath.h, src/Font.cpp, - src/FontCache.cpp, src/FontEncoding.cpp, src/FontManager.cpp, - src/FontMap.cpp, src/FontMap.h, src/GFReader.cpp, src/GFReader.h, - src/GraphicsPath.h, src/HtmlSpecialHandler.cpp, src/NumericRanges.h, - src/PSPattern.cpp, src/PsSpecialHandler.cpp, src/SVGTree.cpp, - src/SVGTree.h, src/SpecialManager.cpp, src/SpecialManager.h, - src/Subfont.cpp, src/Subfont.h, src/TpicSpecialHandler.cpp, - src/XMLDocument.cpp, src/XMLNode.cpp, src/XMLString.cpp, src/macros.h: - use range-based 'for' loop to iterate over containers; drop FORALL macro - - * clipper/clipper.hpp, src/BgColorSpecialHandler.h, src/Bitmap.cpp, - src/CMap.h, src/CmdLineParserBase.h, src/ColorSpecialHandler.h, - src/CommandLine.h, src/DVIReader.h, src/DVIToSVG.h, - src/DVIToSVGActions.h, src/DvisvgmSpecialHandler.h, src/EPSToSVG.h, - src/EmSpecialHandler.h, src/EncFile.h, src/Font.h, src/FontCache.cpp, - src/FontEncoding.h, src/FontMetrics.h, src/GFGlyphTracer.h, - src/GFReader.h, src/GFTracer.h, src/GlyphTracerMessages.h, - src/GraphicsPath.h, src/HtmlSpecialHandler.h, src/InputBuffer.h, - src/InputReader.h, src/JFM.h, src/MessageException.h, - src/NoPsSpecialHandler.h, src/PSPattern.h, src/PSPreviewFilter.h, - src/PapersizeSpecialHandler.h, src/PathClipper.cpp, - src/PdfSpecialHandler.h, src/PreScanDVIReader.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, - src/SVGCharPathHandler.h, src/SVGCharTspanTextHandler.h, src/SVGOutput.h, - src/SVGSingleCharTextHandler.h, src/SpecialActions.h, src/TFM.h, - src/TensorProductPatch.h, src/TpicSpecialHandler.h, - src/TriangularPatch.h, src/VectorStream.h, src/XMLNode.h: - mark overridden methods with 'override' keyword - - * src/PsSpecialHandler.cpp: - use unique_ptr rather than deprecated auto_ptr - - * src/BasicDVIReader.h, src/Bitmap.h, src/CMap.h, src/CmdLineParserBase.h, - src/DVIActions.h, src/Font.h, src/FontEncoding.h, src/FontMetrics.h, - src/GFGlyphTracer.h, src/GFReader.h, src/GFTracer.h, src/GraphicsPath.h, - src/InputBuffer.h, src/InputReader.h, src/MessageException.h, - src/PSFilter.h, src/PSInterpreter.h, src/PSPattern.h, - src/SVGCharHandler.h, src/SVGOutput.h, src/ShadingPatch.h, - src/SpecialActions.h, src/SpecialHandler.h, src/StreamReader.h, - src/StreamWriter.h, src/Subfont.h, src/VFActions.h, src/XMLNode.h: - replaced empty virtual destructors with default ones - -2016-07-01 Martin Gieseking - - * src/BasicDVIReader.h, src/DVIActions.h, src/DVIReader.cpp, - src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/FontManager.cpp, - src/FontManager.h, src/PreScanDVIReader.h, src/dvisvgm.cpp: - refactored the DVI reader classes -- added higher-level template methods - to process the DVI commands more safely -- moved triggering of DVIActions - from DVIReader to DVIToSVG - -2016-06-29 Martin Gieseking - - * src/BoundingBox.cpp, src/BoundingBox.h, src/DVIToSVG.cpp, - src/dvisvgm.cpp: - fixed computation of bounding boxes modified by relative --bbox argument - - * xxHash/xxhash.c, xxHash/xxhash.h: - updated xxHash to version 0.6.1 - -2016-06-17 Martin Gieseking - - * src/TFM.cpp, tests/JFMReaderTest.cpp, tests/TFMReaderTest.cpp: - minor improvements to TFM/JFM tests - -2016-06-16 Martin Gieseking - - * src/DVIReader.cpp, src/VectorStream.h, tests/VectorStreamTest.cpp: - refactored VectorStreamBuffer to keep constness of assigned vector - - * src/GFReader.cpp: - ensure validity of postpost command in GFReader::executePostamble() - -2016-06-14 Martin Gieseking - - * src/DvisvgmSpecialHandler.cpp, src/TFM.cpp, src/VFReader.cpp: - replaced local definitions of pt2bp with Length::pt2bp - - * src/XMLNode.h: - added ouput operators for the XML node objects - - * src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, - tests/EmSpecialTest.cpp, tests/Makefile.am: - improved the emTeX special handler; added EmSpecialTest - - * src/BoundingBox.cpp, src/BoundingBox.h, tests/BoundingBoxTest.cpp: - fixed unit conversion in BoundingBox class - -2016-06-13 Martin Gieseking - - * doc/dvisvgm.txt.in, src/Length.cpp, src/Length.h, tests/LengthTest.cpp: - added dd, cc, and sp units to class Length; fixed factor pt2pc - -2016-06-12 Martin Gieseking - - * xxHash/xxhash.c, xxHash/xxhash.h: - updated xxHash to version 0.6.0 - - * src/DLLoader.cpp, src/DLLoader.h, src/Directory.cpp, src/Directory.h, - src/FilePath.cpp, src/FilePath.h, src/FileSystem.cpp, src/GFTracer.cpp, - src/Ghostscript.cpp, src/Ghostscript.h, src/Message.cpp, - src/MetafontWrapper.cpp, src/Process.cpp, src/Terminal.cpp, - src/Terminal.h, src/dvisvgm.cpp: - cleaned up Windows-related #defines - -2016-06-10 Martin Gieseking - - * src/CommandLine.cpp: - removed redundant #includes - - * src/Length.cpp, src/Length.h, tests/LengthTest.cpp: - added functions to convert between Length::Unit and std::string - -2016-06-07 Martin Gieseking - - * src/CMapManager.cpp, src/CMapManager.h, src/DVIActions.h, - src/DVIToSVGActions.h, src/DvisvgmSpecialHandler.h, src/Font.h, - src/FontEngine.h, src/FontManager.h, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.h, src/PSPattern.h, src/PSPreviewFilter.h, - src/SVGCharHandler.cpp, src/SVGCharHandler.h, src/SVGCharPathHandler.cpp, - src/SVGCharTspanTextHandler.cpp, src/SVGSingleCharTextHandler.cpp, - src/SVGTree.h, src/SpecialActions.h, src/SpecialHandler.h, - src/SpecialManager.h, src/XMLDocument.cpp, src/XMLNode.h, - tests/XMLNodeTest.cpp: - changed some structs to classes and replaced #includes with forward - declarations - - * src/SVGCharHandler.h: - added missing initializer to class SVGCharHandler - -2016-06-03 Martin Gieseking - - * src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, src/DVIToSVG.cpp, - src/DVIToSVGActions.cpp, src/DvisvgmSpecialHandler.cpp, - src/DvisvgmSpecialHandler.h, src/EPSToSVG.cpp, src/EmSpecialHandler.cpp, - src/EmSpecialHandler.h, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.h, src/NoPsSpecialHandler.cpp, - src/NoPsSpecialHandler.h, src/PSPattern.cpp, src/PSPattern.h, - src/PdfSpecialHandler.cpp, src/PdfSpecialHandler.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/SpecialHandler.h, - src/SpecialManager.cpp, src/SpecialManager.h, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.h, tests/ColorSpecialTest.cpp, - tests/DvisvgmSpecialTest.cpp: - refactored handling of SpecialAction objects - - * src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/SVGTree.cpp, - src/SVGTree.h: - refactored processing of end-of-page (eop) commands - - * doc/dvisvgm.txt.in, src/DVIToSVG.cpp, src/Makefile.am, - src/PapersizeSpecialHandler.cpp, src/PapersizeSpecialHandler.h, - src/PsSpecialHandler.cpp, src/dvisvgm.cpp: - added evaluation of PS special 'papersize=' - -2016-06-02 Martin Gieseking - - * src/DVIToSVG.cpp: - fixed transformation of background color rectange - -2016-05-31 Martin Gieseking - - * src/DVIToSVG.cpp, src/EPSToSVG.cpp: - reworded messages printed after finishing a conversion - -2016-05-30 Martin Gieseking - - * src/DVIToSVGActions.cpp, src/Font.cpp, src/Makefile.am, - src/SVGCharHandler.cpp, src/SVGCharHandler.h, - src/SVGCharHandlerFactory.cpp, src/SVGCharHandlerFactory.h, - src/SVGCharPathHandler.cpp, src/SVGCharPathHandler.h, - src/SVGCharTspanTextHandler.cpp, src/SVGCharTspanTextHandler.h, - src/SVGSingleCharTextHandler.cpp, src/SVGSingleCharTextHandler.h, - src/SVGTree.cpp, src/SVGTree.h, src/dvisvgm.cpp: - replaced static SVG text backend by specialized handler classes - - * src/BasicDVIReader.cpp, src/BasicDVIReader.h, src/Bezier.h, - src/TensorProductPatch.h, src/TriangularPatch.h: - replaced leading spaces with tabs - -2016-05-29 Martin Gieseking - - * src/BasicDVIReader.cpp, src/DVIReader.cpp: - fixed handling of subfont index in native font definition of XDV 7 - -2016-05-27 Martin Gieseking - - * src/XMLDocument.cpp, src/XMLNode.cpp, src/XMLNode.h, - tests/DvisvgmSpecialTest.cpp: - prevent line wrapping inside text nodes - -2016-05-26 Martin Gieseking - - * README.md, doc/dvisvgm.txt.in, src/BasicDVIReader.cpp, - src/BasicDVIReader.h, src/DVIReader.cpp, src/DVIToSVG.cpp: - reworded 'DVI format' to 'DVI (format) version' - - * README.md, doc/dvisvgm.txt.in, src/BasicDVIReader.cpp, - src/BasicDVIReader.h, src/DVIReader.cpp: - added support for XDV version 7 introduced by XeTeX 0.99995 - -2016-05-25 Martin Gieseking - - * src/TFM.cpp: - prevent reading more than 7 TFM param values (fixes #58) - - * .travis.yml: - temporarily drop clang from Travis builds - -2016-05-24 Martin Gieseking - - * src/JFM.cpp, src/JFM.h, src/TFM.cpp, src/TFM.h: - TFM: store design size in bp units rather than as fixword - - * src/FontMetrics.h, src/JFM.cpp, src/TFM.cpp, src/TFM.h: - added methods to query space-related parameters from TFM/JFM files - - * src/TFM.cpp, tests/JFMReaderTest.cpp, tests/TFMReaderTest.cpp: - fixed calculation of character dimensions in TFM class - -2016-04-22 Martin Gieseking - - * src/Process.cpp: - fixed collecting stdout/stderr output when executing a process - -2016-04-20 Martin Gieseking - - * src/CMap.h, src/CMapReader.cpp, tests/CMapManagerTest.cpp, - tests/Makefile.am, tests/data/Makefile.am, tests/data/ot1.cmap: - added CMapManagerTest - -2016-04-19 Martin Gieseking - - * .travis.yml, configure.ac, src/Doxyfile: - set version to 1.15.1 - - * NEWS, README, README.md: - updated NEWS and README - -2016-04-18 Martin Gieseking - - * src/Calculator.cpp, src/Matrix.cpp: - use std::ws to skip whitespace in istreams - - * src/Matrix.cpp: - avoid adding trailing EOF characters when parsing parameters of - transformation commands - - * tests/CMapReaderTest.cpp: - improved CMapReaderTest - -2016-04-11 Martin Gieseking - - * src/AGLTable.h, src/Makefile.am, src/Unicode.cpp, tests/Makefile.am, - tests/create-makefile, tests/genhashcheck.py: - moved AGL hash table from Unicode.cpp to a separate file - -2016-04-07 Martin Gieseking - - * src/XMLDocument.cpp: - explicitly specify UTF-8 encoding in XML declaration (closes #54) - - * src/Unicode.cpp, tests/UnicodeTest.cpp: - added support for the AGL character names 'uniFOO' and 'uFOO' - -2016-03-17 Martin Gieseking - - * src/GraphicsPath.h: - renamed GraphicsPath::sconito/scubicto - -2016-03-14 Martin Gieseking - - * doc/db2html.xsl: - adapted db2html to insert anchors for each option entry - - * src/DVIActions.h, src/DVIReader.cpp, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/SVGTree.cpp, src/SVGTree.h: - changed font parameter of setFont() methods from pointer to reference - - * src/SVGTree.cpp, src/SVGTree.h: - split text and path section of SVGTree::appendChar() into seperate - methods - -2016-02-27 Martin Gieseking - - * NEWS: - updated NEWS - -2016-02-26 Martin Gieseking - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h, - src/Font.cpp, src/Font.h, src/SVGTree.cpp, src/SVGTree.h, - src/dvisvgm.cpp, src/options.xml: - added option --comments (adds comments with additional information to - the SVG file - - * src/Font.cpp, src/Unicode.cpp, src/Unicode.h, tests/UnicodeTest.cpp: - renamed Unicode::psNameToCodepoint() to Unicode::aglNameToCodepoint - - * src/FileFinder.cpp, src/FilePath.cpp, src/FileSystem.cpp, - src/FileSystem.h, src/Font.cpp, src/MetafontWrapper.cpp, src/dvisvgm.cpp: - changed string parameters of FileSystem functions to type std::string - - * .travis.yml, configure.ac, src/Doxyfile: - set version to 1.15 - -2016-02-23 Martin Gieseking - - * src/FontEngine.cpp: - reworded error messages of class FontEngine - - * src/MetafontWrapper.cpp, src/Process.cpp: - avoid reading Metafont logfiles to extract the GF filename - - * configure.ac, src/FileFinder.cpp, src/FileFinder.h, - tests/FileFinderTest.cpp, tests/GFGlyphTracerTest.cpp, - tests/GFReaderTest.cpp, tests/JFMReaderTest.cpp, tests/Makefile.am, - tests/TFMReaderTest.cpp, tests/cidjmgr0-h.tfm, tests/cmr10.600gf, - tests/cmr10.tfm, tests/create-makefile, tests/data/Makefile.am, - tests/data/cidjmgr0-h.tfm, tests/data/cmr10.600gf, tests/data/cmr10.tfm, - tests/data/dvipdfm_test.map, tests/data/dvips_test.map, - tests/data/frktest-nf-cmp.svg, tests/data/frktest-wf-cmp.svg, - tests/data/frktest.dvi, tests/data/sample-nf-cmp.svg, - tests/data/sample-wf-cmp.svg, tests/data/sample.dvi, - tests/data/sample.sfd, tests/dvipdfm_test.map, tests/dvips_test.map, - tests/frktest-nf-cmp.svg, tests/frktest-wf-cmp.svg, tests/frktest.dvi, - tests/sample-nf-cmp.svg, tests/sample-wf-cmp.svg, tests/sample.dvi, - tests/sample.sfd: - moved test data files to subfolder - -2016-02-22 Martin Gieseking - - * tests/FileFinderTest.cpp, tests/GFReaderTest.cpp, - tests/SVGOutputTest.cpp: - avoid implicit casts of ifstream/ozstream objects in tests - - * src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, - tests/CommandLineTest.cpp: - minor improvements of class CommandLineTest - - * src/XMLNode.cpp, tests/DvisvgmSpecialTest.cpp: - improved DvisvgmSpecialTest - - * src/FontEngine.cpp, src/FontEngine.h: - removed redundant code from class FontEngine - -2016-02-05 Martin Gieseking - - * src/PsSpecialHandler.cpp: - don't remove clipping paths that consist of single moveto commands only - -2016-02-01 Martin Gieseking - - * src/Bitmap.cpp, src/BoundingBox.cpp, src/CMap.cpp, src/CMapManager.cpp, - src/Calculator.cpp, src/CommandLine.cpp, src/DVIReader.cpp, - src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp, - src/Directory.cpp, src/Directory.h, src/EPSToSVG.cpp, src/EncFile.cpp, - src/FileFinder.cpp, src/Font.cpp, src/FontCache.h, src/FontEngine.cpp, - src/FontManager.cpp, src/FontMap.cpp, src/FontMetrics.cpp, - src/GFGlyphTracer.cpp, src/GFReader.cpp, src/GFTracer.cpp, - src/HtmlSpecialHandler.cpp, src/InputReader.cpp, src/MapLine.cpp, - src/MetafontWrapper.cpp, src/PSInterpreter.cpp, - src/PdfSpecialHandler.cpp, src/Process.cpp, src/PsSpecialHandler.cpp, - src/SVGTree.cpp, src/SpecialManager.cpp, src/StreamReader.cpp, - src/StreamWriter.cpp, src/Subfont.cpp, src/TFM.cpp, - src/TensorProductPatch.cpp, src/TpicSpecialHandler.cpp, src/VFReader.cpp, - src/XMLDocument.cpp, src/dvisvgm.cpp, tests/XMLStringTest.cpp: - minor code cleanup (removed redundant includes, added casts) - -2016-01-21 Martin Gieseking - - * m4/ax_code_coverage.m4: - updated m4 code coverage script to latest version - - * src/JFM.h, tests/JFMReaderTest.cpp, tests/Makefile.am, - tests/TFMReaderTest.cpp, tests/cidjmgr0-h.tfm, tests/cmr10.tfm, - tests/create-makefile: - added tests for the TFM and JFM classes - -2016-01-19 Martin Gieseking - - * src/GraphicsPath.h, tests/GraphicsPathTest.cpp: - fixed access of invalid iterator - - * .travis.yml, configure.ac, src/Doxyfile: - set version to 1.14.2 - - * NEWS, README.md: - updated NEWS - -2016-01-18 Martin Gieseking - - * doc/dvisvgm.txt.in: - added generic info about the command-line interface to the manpage - - * doc/db2html.xsl: - updated links to Bootstrap and Font Awesome in stylesheet db2html.xsl - - * src/dvisvgm.cpp, xxHash/xxhash.c, xxHash/xxhash.h: - updated xxHash to version 0.5.0 - - * tests/Makefile.am, tests/create-makefile, tests/genhashcheck.py: - added test to check the validity of the char name hashes used in - Unicode.cpp - -2016-01-15 Martin Gieseking - - * src/BgColorSpecialHandler.cpp, src/ColorSpecialHandler.cpp, - src/ColorSpecialHandler.h, tests/ColorSpecialTest.cpp: - removed check for 'background' special from ColorSpecialHandler - -2016-01-13 Martin Gieseking - - * src/DVIReader.h, src/FontStyle.h, src/SVGTree.cpp, - src/TriangularPatch.cpp: - updated/fixed some comments - - * src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, src/DVIToSVG.cpp, - src/SpecialHandler.h, src/SpecialManager.cpp, src/SpecialManager.h: - corrected handling of background color special across DVI pages - -2016-01-05 Martin Gieseking - - * src/GFReader.cpp, src/GFReader.h: - added checks for misplaced GF commands - - * NEWS: - updated NEWS - -2016-01-04 Martin Gieseking - - * .travis.yml: - force Travis to use legacy builds due to an issue with clang and gtest - - * Makefile.am, README, README.md, configure.ac, doc/Makefile.am, - doc/conf-dblatex-man.xsl, doc/conf-dblatex-pdf.xsl, doc/db2html.xsl, - doc/dvisvgm.txt.in, src/BasicDVIReader.cpp, src/BasicDVIReader.h, - src/Bezier.cpp, src/Bezier.h, src/BgColorSpecialHandler.cpp, - src/BgColorSpecialHandler.h, src/Bitmap.cpp, src/Bitmap.h, - src/BoundingBox.cpp, src/BoundingBox.h, src/CMap.cpp, src/CMap.h, - src/CMapManager.cpp, src/CMapManager.h, src/CMapReader.cpp, - src/CMapReader.h, src/CRC32.cpp, src/CRC32.h, src/Calculator.cpp, - src/Calculator.h, src/CharMapID.cpp, src/CharMapID.h, src/Character.h, - src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/Color.cpp, - src/Color.h, src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/CommandLine.cpp, src/CommandLine.h, src/DLLoader.cpp, src/DLLoader.h, - src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, - src/DVIToSVG.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, - src/DependencyGraph.h, src/Directory.cpp, src/Directory.h, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h, - src/EPSFile.cpp, src/EPSFile.h, src/EPSToSVG.cpp, src/EPSToSVG.h, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, src/EncFile.cpp, - src/EncFile.h, src/FileFinder.cpp, src/FileFinder.h, src/FilePath.cpp, - src/FilePath.h, src/FileSystem.cpp, src/FileSystem.h, src/Font.cpp, - src/Font.h, src/FontCache.cpp, src/FontCache.h, src/FontEncoding.cpp, - src/FontEncoding.h, src/FontEngine.cpp, src/FontEngine.h, - src/FontManager.cpp, src/FontManager.h, src/FontMap.cpp, src/FontMap.h, - src/FontMetrics.cpp, src/FontMetrics.h, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.h, src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, - src/GFTracer.h, src/Ghostscript.cpp, src/Ghostscript.h, src/Glyph.h, - src/GlyphTracerMessages.h, src/GraphicsPath.h, - src/HtmlSpecialHandler.cpp, src/HtmlSpecialHandler.h, - src/InputBuffer.cpp, src/InputBuffer.h, src/InputReader.cpp, - src/InputReader.h, src/JFM.cpp, src/JFM.h, src/Length.cpp, src/Length.h, - src/Makefile.am, src/MapLine.cpp, src/MapLine.h, src/Matrix.cpp, - src/Matrix.h, src/Message.cpp, src/Message.h, src/MessageException.h, - src/MetafontWrapper.cpp, src/MetafontWrapper.h, src/MiKTeXCom.cpp, - src/MiKTeXCom.h, src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.h, - src/NumericRanges.h, src/PSFilter.h, src/PSInterpreter.cpp, - src/PSInterpreter.h, src/PSPattern.cpp, src/PSPattern.h, - src/PSPreviewFilter.cpp, src/PSPreviewFilter.h, src/PageRanges.cpp, - src/PageRanges.h, src/PageSize.cpp, src/PageSize.h, src/Pair.h, - src/PathClipper.cpp, src/PathClipper.h, src/PdfSpecialHandler.cpp, - src/PdfSpecialHandler.h, src/PreScanDVIReader.cpp, - src/PreScanDVIReader.h, src/Process.cpp, src/Process.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/RangeMap.cpp, - src/RangeMap.h, src/SVGOutput.cpp, src/SVGOutput.h, src/SVGTree.cpp, - src/SVGTree.h, src/ShadingPatch.cpp, src/ShadingPatch.h, - src/SignalHandler.cpp, src/SignalHandler.h, src/SpecialActions.h, - src/SpecialHandler.h, src/SpecialManager.cpp, src/SpecialManager.h, - src/StreamReader.cpp, src/StreamReader.h, src/StreamWriter.cpp, - src/StreamWriter.h, src/Subfont.cpp, src/Subfont.h, src/System.cpp, - src/System.h, src/TFM.cpp, src/TFM.h, src/TensorProductPatch.cpp, - src/TensorProductPatch.h, src/Terminal.cpp, src/Terminal.h, - src/ToUnicodeMap.cpp, src/ToUnicodeMap.h, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.h, src/TriangularPatch.cpp, src/TriangularPatch.h, - src/Unicode.cpp, src/Unicode.h, src/VFActions.h, src/VFReader.cpp, - src/VFReader.h, src/VectorIterator.h, src/VectorStream.h, - src/XMLDocument.cpp, src/XMLDocument.h, src/XMLNode.cpp, src/XMLNode.h, - src/XMLString.cpp, src/XMLString.h, src/dvisvgm.cpp, src/macros.h, - src/options.dtd, src/options.xml, src/psdefs.cpp, src/types.h, - tests/BezierTest.cpp, tests/BitmapTest.cpp, tests/BoundingBoxTest.cpp, - tests/CMapReaderTest.cpp, tests/CMapTest.cpp, tests/CRC32Test.cpp, - tests/CalculatorTest.cpp, tests/ColorSpecialTest.cpp, - tests/ColorTest.cpp, tests/CommandLineTest.cpp, - tests/DependencyGraphTest.cpp, tests/DirectoryTest.cpp, - tests/DvisvgmSpecialTest.cpp, tests/FileFinderTest.cpp, - tests/FilePathTest.cpp, tests/FileSystemTest.cpp, - tests/FontManagerTest.cpp, tests/FontMapTest.cpp, - tests/GFGlyphTracerTest.cpp, tests/GFReaderTest.cpp, - tests/GraphicsPathTest.cpp, tests/LengthTest.cpp, tests/Makefile.am, - tests/MapLineTest.cpp, tests/MatrixTest.cpp, - tests/MessageExceptionTest.cpp, tests/PSInterpreterTest.cpp, - tests/PageRagesTest.cpp, tests/PageSizeTest.cpp, tests/PairTest.cpp, - tests/RangeMapTest.cpp, tests/SVGOutputTest.cpp, - tests/ShadingPatchTest.cpp, tests/SplittedCharInputBufferTest.cpp, - tests/StreamInputBufferTest.cpp, tests/StreamReaderTest.cpp, - tests/StreamWriterTest.cpp, tests/SubfontTest.cpp, - tests/TensorProductPatchTest.cpp, tests/ToUnicodeMapTest.cpp, - tests/TriangularPatchTest.cpp, tests/TypesTest.cpp, - tests/UnicodeTest.cpp, tests/VectorIteratorTest.cpp, - tests/VectorStreamTest.cpp, tests/XMLNodeTest.cpp, - tests/XMLStringTest.cpp, tests/check-conv, tests/create-makefile, - tests/normalize.xsl: - updated year in copyright statements to 2016 - - * .travis.yml, configure.ac, src/Doxyfile: - set version to 1.14.1 - -2015-12-31 Martin Gieseking - - * src/PsSpecialHandler.cpp, src/PsSpecialHandler.h: - reset PS graphics state at end of every DVI page - -2015-12-28 Martin Gieseking - - * .travis.yml, configure.ac, src/Doxyfile: - set version to 1.14 - - * NEWS: - updated NEWS - -2015-12-27 Martin Gieseking - - * src/PsSpecialHandler.cpp: - added evaluation of PSTricks specials 'pst:' and 'PST:' - -2015-12-26 Martin Gieseking - - * src/FileFinder.cpp: - lookup files in the current working directory before searching the texmf - tree - - * src/GraphicsPath.h, tests/GraphicsPathTest.cpp: - fixed memory issue in class GraphicsPath - -2015-12-17 Martin Gieseking - - * doc/dvisvgm.txt.in, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/EPSToSVG.h, - src/PSPreviewFilter.cpp, src/PSPreviewFilter.h, src/PsSpecialHandler.cpp, - src/SpecialActions.h, src/dvisvgm.cpp: - added option --bbox=preview; adapt preview data if --bbox=min - -2015-12-09 Martin Gieseking - - * src/FileFinder.cpp: - return entire kpathsea version string if it doesn't start with - 'kpathsea' - - * tests/GhostscriptTest.cpp: - prevent opening a graphics window when running GhostscriptTest - -2015-12-08 Martin Gieseking - - * .travis.yml, configure.ac, src/Doxyfile: - set version to 1.13 - - * NEWS: - updated NEWS - - * clipper/clipper.cpp, clipper/clipper.hpp: - replaced DOS line endings of the Clipper sources to Unix ones - -2015-12-02 Martin Gieseking - - * src/Font.cpp, src/Font.h, src/Glyph.h, src/GraphicPath.h, - src/GraphicsPath.h, src/Makefile.am, src/PathClipper.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/ShadingPatch.h, - src/TensorProductPatch.cpp, src/TensorProductPatch.h, - src/TpicSpecialHandler.cpp, src/TriangularPatch.cpp, - src/TriangularPatch.h, tests/GraphicPathTest.cpp, - tests/GraphicsPathTest.cpp, tests/Makefile.am, - tests/TensorProductPatchTest.cpp, tests/TriangularPatchTest.cpp: - renamed class GraphicPath to GraphicsPath - -2015-11-30 Martin Gieseking - - * doc/dvisvgm.txt.in: - added a couple of links to the manpage - - * src/GraphicPath.h, src/PsSpecialHandler.cpp: - remove redundant moveto commands from graphics paths - -2015-11-25 Martin Gieseking - - * src/DVIToSVGActions.cpp, src/EPSToSVG.cpp: - remove progress message before printing a PS error message - - * src/DVIToSVGActions.cpp, src/DVIToSVGActions.h: - removed redundant methods - -2015-11-24 Martin Gieseking - - * src/psdefs.cpp: - added evaluation of PS operators ashow, awidthshow, and widthshow (fixes - #49) - - * xxHash/xxhash.c: - updated xxHash to version r42 - -2015-11-23 Martin Gieseking - - * src/PsSpecialHandler.cpp, src/psdefs.cpp: - minor code cleanup and reordering - - * src/psdefs.cpp: - reduce rounding errors produced by PS operator 'charpath' - - * src/psdefs.cpp: - propagate call of PS operator 'setcolor' to the PS handler - -2015-11-18 Martin Gieseking - - * .travis.yml, configure.ac, src/Doxyfile: - set version to 1.12 - - * NEWS: - updated NEWS - -2015-11-16 Martin Gieseking - - * src/FontManager.cpp: - removed redundant #include - - * src/FontEngine.cpp: - treat character code as character index if no font mapping is set - -2015-11-12 Martin Gieseking - - * README, README.md: - updated links to Google Test framework - -2015-11-09 Martin Gieseking - - * src/Color.cpp, src/Color.h, src/ColorSpecialHandler.cpp, - src/HtmlSpecialHandler.cpp, tests/ColorTest.cpp: - renamed Color::setName() to Color::setPSName() - - * tests/Makefile.am, tests/ShadingPatch.cpp, tests/ShadingPatchTest.cpp: - renamed ShadingPatchTest - - * doc/dvisvgm.txt.in, src/Color.cpp, src/Color.h, src/CommandLine.cpp, - src/CommandLine.h, src/DVIToSVGActions.cpp, - src/DvisvgmSpecialHandler.cpp, src/EmSpecialHandler.cpp, - src/HtmlSpecialHandler.cpp, src/PSPattern.cpp, src/PsSpecialHandler.cpp, - src/SVGTree.cpp, src/TpicSpecialHandler.cpp, src/dvisvgm.cpp, - src/options.xml, tests/ColorTest.cpp: - added option --colornames to replace RGB color values with SVG color - names - -2015-10-27 Martin Gieseking - - * src/Process.cpp, src/Process.h: - fixed invalid access to freed string memory - -2015-10-06 Martin Gieseking - - * doc/dvisvgm.txt.in: - minor improvements of the manual page - -2015-09-21 Martin Gieseking - - * NEWS, README, README.md: - updated NEWS and README files - -2015-09-18 Martin Gieseking - - * .travis.yml, configure.ac, src/Doxyfile: - set version to 1.11 - -2015-09-14 Martin Gieseking - - * src/Font.cpp, src/ToUnicodeMap.cpp, src/Unicode.cpp, src/Unicode.h, - tests/UnicodeTest.cpp: - improved handling of invalid Unicode points - - * src/Font.cpp, src/Unicode.cpp, src/Unicode.h, tests/UnicodeTest.cpp: - renamed Unicode::psName2Codepoint to Unicode::psNameToCodepoint - -2015-09-10 Martin Gieseking - - * src/Font.cpp: - prevent creating 0x00 codepoints if PS character name is unknown - - * src/HtmlSpecialHandler.cpp: - quote XML metacharacters in xlink:title attributes - - * src/CmdLineParserBase.h, src/InputReader.h: - changed 'struct InputReader' to 'class InputReader' - -2015-09-09 Martin Gieseking - - * src/SVGTree.cpp: - force creating a new text element after appending a different node to - the page - -2015-08-13 Martin Gieseking - - * README, README.md: - minor updates to README and README.md - -2015-07-29 Martin Gieseking - - * tests/GhostscriptTest.cpp, tests/Makefile.am: - added GhostscriptTest - - * tests/UnicodeTest.cpp: - improved UnicodeTest - - * tests/CommandLineTest.cpp, tests/MessageExceptionTest.cpp: - use ASSERT_STREQ in tests - -2015-07-22 Martin Gieseking - - * README, README.md, doc/dvisvgm.txt.in: - updated links to project website again (relocated to - dvisvgm.bplaced.net) - -2015-07-20 Martin Gieseking - - * README, README.md, doc/dvisvgm.txt.in: - updated info about new project website - -2015-07-14 Martin Gieseking - - * .travis.yml, configure.ac, src/Doxyfile: - set version to 1.10 - - * NEWS: - updated NEWS - -2015-07-12 Martin Gieseking - - * README.md, doc/dvisvgm.txt.in, src/BasicDVIReader.cpp, - src/BasicDVIReader.h, src/DVIReader.cpp, src/DVIReader.h, src/Font.h, - src/FontManager.cpp, src/FontManager.h: - added support for new XDV format 6 - -2015-07-11 Martin Gieseking - - * README, README.md: - updated README - -2015-07-03 Martin Gieseking - - * src/dvisvgm.cpp: - check for option --help before initializing the FileFinder - - * src/MiKTeXCom.cpp: - added some comments to MiKTeXCom.cpp - -2015-07-02 Martin Gieseking - - * tests/BezierTest.cpp: - removed #include "debug.h" from test - - * Makefile.am, configure.ac, xxHash/LICENSE, xxHash/Makefile.am, - xxHash/xxhash.c, xxHash/xxhash.h: - added xxHash library (https://github.com/Cyan4973/xxHash) - - * src/Font.cpp, src/Makefile.am, src/Unicode.cpp, src/Unicode.h, - tests/Makefile.am, tests/create-makefile: - added mapping from character names to unicode for PostScript fonts - -2015-04-07 Martin Gieseking - - * .travis.yml, configure.ac, src/Doxyfile: - set version to 1.9.2 - - * NEWS, README.md: - updated NEWS and README.md - - * src/SVGTree.cpp: - apply --precision settings to font-size attributes too - -2015-04-04 Martin Gieseking - - * tests/SVGOutputTest.cpp: - remove output files created by SVGOutputTest::getPageStream() - -2015-04-02 Martin Gieseking - - * README.md: - minor additions to README.md - -2015-03-26 Martin Gieseking - - * src/GlyphTracerMessages.h: - always skip tracer message if no glyphs have been traced - - * src/GFReader.cpp, src/GFReader.h, tests/GFReaderTest.cpp: - improved GFReaderTest - -2015-03-25 Martin Gieseking - - * src/GFGlyphTracer.cpp, src/GFTracer.h, tests/GFGlyphTracerTest.cpp, - tests/Makefile.am: - ensure GFGlyphTracer::executeChar() returns the correct status; added - GFGlyphtracerTest - - * src/DVIToSVG.cpp: - avoid retracing of fonts if option --no-fonts is given - -2015-03-22 Martin Gieseking - - * tests/StreamWriterTest.cpp: - fixed StreamWriterTest - - * tests/SVGOutputTest.cpp: - improved SVGOutputTest - -2015-03-19 Martin Gieseking - - * tests/Makefile.am, tests/ShadingPatch.cpp: - added ShadingPatchTest - -2015-03-18 Martin Gieseking - - * src/ShadingPatch.h, src/TensorProductPatch.cpp, - src/TensorProductPatch.h, src/TriangularPatch.cpp, src/TriangularPatch.h, - tests/Makefile.am, tests/TriangularPatchTest.cpp: - added test for class TriangularPatch - - * src/Bezier.cpp, src/Bezier.h, src/TensorProductPatch.cpp, - src/TriangularPatch.cpp, src/TriangularPatch.h, - tests/TriangularPatchTest.cpp: - renamed method pointAt() of class Bezier and TriangularPatch to - valueAt() - - * src/TensorProductPatch.h, tests/TensorProductPatchTest.cpp: - improved TensorProductPatchTest - -2015-03-17 Martin Gieseking - - * m4/ax_code_coverage.m4: - added missing file ax_code_coverage.m4 - - * autogen.sh: - updated autogen.sh - -2015-03-15 Martin Gieseking - - * src/XMLNode.cpp, src/XMLNode.h, tests/Makefile.am, - tests/XMLNodeTest.cpp: - fixed a few issues in class XMLElementNode; added XMLNodeTest - - * .gitignore, Makefile.am, clipper/Makefile.am, configure.ac, - src/Makefile.am, tests/Makefile.am, tests/create-makefile: - extended build system to generate coverage reports - - * tests/Makefile.am, tests/VectorIteratorTest.cpp: - added VectorIteratorTest - -2015-03-13 Martin Gieseking - - * tests/XMLStringTest.cpp: - fixed test class name of XMLString - -2015-03-09 Martin Gieseking - - * tests/CRC32Test.cpp: - added test for 'compute' methods of class CRC32 - - * tests/GraphicPathTest.cpp: - extended tests of class GraphicPath - -2015-03-08 Martin Gieseking - - * src/Unicode.cpp, tests/Makefile.am, tests/UnicodeTest.cpp: - fixed UTF-8 encoding of 0xfffe and 0xffff; added UnicodeTest - - * tests/StreamReaderTest.cpp: - exteded StreamReader tests - -2015-03-07 Martin Gieseking - - * src/XMLString.cpp, tests/Makefile.am, tests/XMLStringTest.cpp: - fixed conversion from C and C++ strings to XMLString; added - XMLStringTest - - * .gitignore: - added .gitignore - -2015-03-06 Martin Gieseking - - * src/Bitmap.cpp, src/Bitmap.h, tests/BitmapTest.cpp, - tests/GFReaderTest.cpp, tests/Makefile.am: - small refactorings of class Bitmap; added tests for class Bitmap - - * src/BoundingBox.cpp, src/BoundingBox.h, tests/BoundingBoxTest.cpp: - improved BoundingBox tests - -2015-03-04 Martin Gieseking - - * src/Bezier.cpp, src/BoundingBox.cpp, src/BoundingBox.h, - tests/BezierTest.cpp, tests/Makefile.am: - fixed Bezier::reduceDegree() for degree 1 and added BezierTest class - -2015-03-01 Martin Gieseking - - * .travis.yml: - Travis conf: added configuration data for Coverity Scan - - * README.md: - added license badge to README.md - -2015-02-28 Martin Gieseking - - * NEWS, README.md: - updated NEWS and README.md - -2015-02-27 Martin Gieseking - - * src/Calculator.cpp: - replaced while(1) with for(;;) for consistency - -2015-02-26 Martin Gieseking - - * configure.ac, src/Doxyfile: - set version to 1.9.1 - -2015-02-25 Martin Gieseking - - * src/Ghostscript.cpp: - disable lookup of GS library in Windows registry for old gcc versions - -2015-02-20 Martin Gieseking - - * src/DVIToSVG.cpp, src/EPSToSVG.cpp, src/Makefile.am, src/SVGOutput.cpp, - src/SVGOutput.h, src/SVGOutputBase.h, src/dvisvgm.cpp: - moved class SVGOutput to separate compilation unit - - * doc/dvisvgm.txt.in, src/SVGOutput.cpp, src/SVGOutput.h, - tests/Makefile.am, tests/SVGOutputTest.cpp, tests/create-makefile: - added width specifiers and exression evaluation to --output patterns - - * doc/dvisvgm.txt.in: - minor additions and formatting changes of the manpage - - * doc/Makefile.am, doc/conf-dblatex-man.xsl, doc/conf-dblatex-pdf.xsl, - doc/dvisvgm.sty, doc/dvisvgm.xpr, doc/tweak-dblatex-pdf.xsl: - improved the layout of the pdf manpage - - * doc/Makefile.am, doc/db2html.xsl, doc/dvisvgm.css: - create html manpage with a separate stylesheet matching the new website - theme - -2015-02-19 Martin Gieseking - - * .travis.yml: - added configuration file for Travis CI - - * .travis.yml: - added dependency 'python-lxml' to Travis configuration - - * .travis.yml: - added dependency 'libgtest-dev' to Travis configuration; ensure call of - 'make check' - - * .travis.yml: - Travis conf: added missing call of 'configure' - - * .travis.yml: - Travis conf: build gtest libraries since Ubuntu doesn't provide the - binaries - -2015-02-18 Martin Gieseking - - * src/TpicSpecialHandler.cpp: - use constant M_PI rather than computing PI locally - -2015-02-17 Martin Gieseking - - * README, README.md: - updated README and README.md - -2015-01-26 Martin Gieseking - - * src/ShadingPatch.h: - removed redundant methods from class ShadingPatch - -2015-01-21 Martin Gieseking - - * src/TensorProductPatch.cpp, src/TriangularPatch.cpp: - renamed static helper function clip() to snap() - -2015-01-15 Martin Gieseking - - * src/Color.cpp: - resolved ambiguous call of pow (patch by Peter Breitenlohner) - -2015-01-12 Martin Gieseking - - * src/VectorIterator.h: - removed redundant method VectorIterator::distanceToLast() - -2014-12-30 Martin Gieseking - - * Makefile.am, README, README.md, configure.ac, doc/Makefile.am, - doc/dvisvgm.txt.in, src/BasicDVIReader.cpp, src/BasicDVIReader.h, - src/Bezier.cpp, src/Bezier.h, src/BgColorSpecialHandler.cpp, - src/BgColorSpecialHandler.h, src/Bitmap.cpp, src/Bitmap.h, - src/BoundingBox.cpp, src/BoundingBox.h, src/CMap.cpp, src/CMap.h, - src/CMapManager.cpp, src/CMapManager.h, src/CMapReader.cpp, - src/CMapReader.h, src/CRC32.cpp, src/CRC32.h, src/Calculator.cpp, - src/Calculator.h, src/CharMapID.cpp, src/CharMapID.h, src/Character.h, - src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/Color.cpp, - src/Color.h, src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/CommandLine.cpp, src/CommandLine.h, src/DLLoader.cpp, src/DLLoader.h, - src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, - src/DVIToSVG.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, - src/DependencyGraph.h, src/Directory.cpp, src/Directory.h, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h, - src/EPSFile.cpp, src/EPSFile.h, src/EPSToSVG.cpp, src/EPSToSVG.h, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, src/EncFile.cpp, - src/EncFile.h, src/FileFinder.cpp, src/FileFinder.h, src/FilePath.cpp, - src/FilePath.h, src/FileSystem.cpp, src/FileSystem.h, src/Font.cpp, - src/Font.h, src/FontCache.cpp, src/FontCache.h, src/FontEncoding.cpp, - src/FontEncoding.h, src/FontEngine.cpp, src/FontEngine.h, - src/FontManager.cpp, src/FontManager.h, src/FontMap.cpp, src/FontMap.h, - src/FontMetrics.cpp, src/FontMetrics.h, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.h, src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, - src/GFTracer.h, src/Ghostscript.cpp, src/Ghostscript.h, src/Glyph.h, - src/GlyphTracerMessages.h, src/GraphicPath.h, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.h, src/InputBuffer.cpp, src/InputBuffer.h, - src/InputReader.cpp, src/InputReader.h, src/JFM.cpp, src/JFM.h, - src/Length.cpp, src/Length.h, src/Makefile.am, src/MapLine.cpp, - src/MapLine.h, src/Matrix.cpp, src/Matrix.h, src/Message.cpp, - src/Message.h, src/MessageException.h, src/MetafontWrapper.cpp, - src/MetafontWrapper.h, src/MiKTeXCom.cpp, src/MiKTeXCom.h, - src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.h, - src/NumericRanges.h, src/PSFilter.h, src/PSInterpreter.cpp, - src/PSInterpreter.h, src/PSPattern.cpp, src/PSPattern.h, - src/PSPreviewFilter.cpp, src/PSPreviewFilter.h, src/PageRanges.cpp, - src/PageRanges.h, src/PageSize.cpp, src/PageSize.h, src/Pair.h, - src/PathClipper.cpp, src/PathClipper.h, src/PdfSpecialHandler.cpp, - src/PdfSpecialHandler.h, src/PreScanDVIReader.cpp, - src/PreScanDVIReader.h, src/Process.cpp, src/Process.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/RangeMap.cpp, - src/RangeMap.h, src/SVGOutputBase.h, src/SVGTree.cpp, src/SVGTree.h, - src/ShadingPatch.cpp, src/ShadingPatch.h, src/SignalHandler.cpp, - src/SignalHandler.h, src/SpecialActions.h, src/SpecialHandler.h, - src/SpecialManager.cpp, src/SpecialManager.h, src/StreamReader.cpp, - src/StreamReader.h, src/StreamWriter.cpp, src/StreamWriter.h, - src/Subfont.cpp, src/Subfont.h, src/System.cpp, src/System.h, - src/TFM.cpp, src/TFM.h, src/TensorProductPatch.cpp, - src/TensorProductPatch.h, src/Terminal.cpp, src/Terminal.h, - src/ToUnicodeMap.cpp, src/ToUnicodeMap.h, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.h, src/TriangularPatch.cpp, src/TriangularPatch.h, - src/Unicode.cpp, src/Unicode.h, src/VFActions.h, src/VFReader.cpp, - src/VFReader.h, src/VectorIterator.h, src/VectorStream.h, - src/XMLDocument.cpp, src/XMLDocument.h, src/XMLNode.cpp, src/XMLNode.h, - src/XMLString.cpp, src/XMLString.h, src/dvisvgm.cpp, src/macros.h, - src/options.dtd, src/options.xml, src/psdefs.cpp, src/types.h, - tests/BoundingBoxTest.cpp, tests/CMapReaderTest.cpp, tests/CMapTest.cpp, - tests/CRC32Test.cpp, tests/CalculatorTest.cpp, - tests/ColorSpecialTest.cpp, tests/ColorTest.cpp, - tests/CommandLineTest.cpp, tests/DependencyGraphTest.cpp, - tests/DirectoryTest.cpp, tests/DvisvgmSpecialTest.cpp, - tests/FileFinderTest.cpp, tests/FilePathTest.cpp, - tests/FileSystemTest.cpp, tests/FontManagerTest.cpp, - tests/FontMapTest.cpp, tests/GFReaderTest.cpp, tests/GraphicPathTest.cpp, - tests/LengthTest.cpp, tests/Makefile.am, tests/MapLineTest.cpp, - tests/MatrixTest.cpp, tests/MessageExceptionTest.cpp, - tests/PSInterpreterTest.cpp, tests/PageRagesTest.cpp, - tests/PageSizeTest.cpp, tests/PairTest.cpp, tests/RangeMapTest.cpp, - tests/SplittedCharInputBufferTest.cpp, tests/StreamInputBufferTest.cpp, - tests/StreamReaderTest.cpp, tests/StreamWriterTest.cpp, - tests/SubfontTest.cpp, tests/TensorProductPatchTest.cpp, - tests/ToUnicodeMapTest.cpp, tests/TypesTest.cpp, - tests/VectorStreamTest.cpp, tests/check-conv, tests/create-makefile, - tests/normalize.xsl: - updated year in copyright statements to 2015 - -2014-12-28 Martin Gieseking - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/ShadingPatch.h, - src/TensorProductPatch.cpp, src/TensorProductPatch.h, - src/TriangularPatch.cpp, src/TriangularPatch.h, src/dvisvgm.cpp, - src/options.xml: - added command-line options --grad-overlap, --grad-segments, and - --grad-simplify - - * src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/EPSToSVG.cpp, - src/EPSToSVG.h, src/SpecialActions.h, src/SpecialManager.cpp, - src/dvisvgm.cpp: - show PS instruction counter when processing EPS files with option - --progress - - * src/dvisvgm.cpp: - clear line before printing the message about user interruption to avoid - trailing text fragments - - * configure.ac, src/Doxyfile: - set version to 1.9 - - * NEWS: - updated NEWS - -2014-12-20 Martin Gieseking - - * src/DVIReader.cpp: - check validity of DVI file before trying to collect the BOPs - -2014-12-18 Martin Gieseking - - * src/Makefile.am, src/TriangularPatch.cpp, src/TriangularPatch.h: - added class to compute triangular shading patches - - * src/Makefile.am, src/PsSpecialHandler.cpp, src/ShadingPatch.cpp, - src/ShadingPatch.h, src/TensorProductPatch.cpp, src/TensorProductPatch.h: - extracted common interface class ShadingPatch from TensorProductPatch - - * src/Color.cpp, src/Color.h, src/Makefile.am, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/VectorIterator.h, src/psdefs.cpp: - extended PS operator 'shfill' to support triangular patch meshes - -2014-12-16 Martin Gieseking - - * src/PsSpecialHandler.cpp, src/PsSpecialHandler.h: - added processing of the optional 'BBox' entry in a PS shading dictionary - -2014-12-03 Martin Gieseking - - * src/CommandLine.cpp, src/CommandLine.h, src/dvisvgm.cpp, - src/options.xml: - disable option --clipjoin if PS support is disabled - - * src/Color.cpp, tests/ColorSpecialTest.cpp, tests/ColorTest.cpp: - fixed CMYK to RGB approximation - -2014-11-27 Martin Gieseking - - * src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/psdefs.cpp, tests/PSInterpreterTest.cpp: - added evaluation of PS operator shfill (Coons and tensor product patches - only) - -2014-11-24 Martin Gieseking - - * README.md: - added list of features and a download button to README.md - -2014-11-09 Martin Gieseking - - * clipper/clipper.cpp, clipper/clipper.hpp: - updated clipper library to version 6.2.1 - -2014-11-08 Martin Gieseking - - * src/Bezier.cpp, src/Bezier.h, src/BoundingBox.h, src/GraphicPath.h, - src/Makefile.am, src/TensorProductPatch.cpp, src/TensorProductPatch.h, - tests/Makefile.am, tests/TensorProductPatchTest.cpp: - added code to compute tensor-product patches required for gradient fills - -2014-11-06 Martin Gieseking - - * src/Matrix.cpp: - use constant M_PI rather than defining PI locally - -2014-10-23 Martin Gieseking - - * src/Color.cpp, src/Color.h, src/ColorSpecialHandler.cpp, - src/PsSpecialHandler.cpp, tests/ColorTest.cpp: - replaced float by double in class Color - - * src/Color.cpp, src/Color.h, src/ColorSpecialHandler.cpp, - src/DVIReader.cpp, src/HtmlSpecialHandler.cpp, src/PsSpecialHandler.cpp, - tests/ColorTest.cpp: - renamed RGB setters/getters of class Color - - * src/Color.cpp, src/Color.h: - replaced vectors with valarrays in class Color - - * src/Color.cpp, src/Color.h, tests/ColorTest.cpp: - added deltaE and L*a*b* color space methods to class Color - -2014-10-17 Martin Gieseking - - * clipper/clipper.cpp, clipper/clipper.hpp: - updated clipper library to version 6.2.0 - - * src/GraphicPath.h, src/PathClipper.cpp, src/PathClipper.h, - src/XMLNode.h: - fixed a couple of doxygen comments; removed redundant - PathClipperException - -2014-10-08 Martin Gieseking - - * src/CommandLine.cpp: - updated CommandLine.cpp with description of option --no-merge - - * src/Ghostscript.cpp: - try to lookup the location of the GS DLL in the Windows registry - -2014-10-01 Martin Gieseking - - * doc/dvisvgm.txt.in, src/options.xml: - added info about option --no-merge to the manpage - -2014-09-24 Khaled Hosny - - * src/Makefile.am: - Add an opt2cpp Python script - -A very ugly script that should work as a - drop in replacement for the -opt2cpp XSLT. - -2014-09-15 Martin Gieseking - - * src/PsSpecialHandler.cpp, src/PsSpecialHandler.h: - ensure that colors set by a color special are always considered by the - PS handler - -2014-09-10 Martin Gieseking - - * src/BasicDVIReader.cpp, src/DVIReader.cpp, src/FontCache.cpp, - src/GFReader.cpp, src/dvisvgm.cpp: - replaced namespace 'ios_base' with 'ios' - -2014-08-29 Martin Gieseking - - * src/PsSpecialHandler.cpp: - added missing whitespace boundaries in PS code - - * src/FontEngine.cpp, tests/PageRagesTest.cpp: - removed unused static functions - - * configure.ac, src/Doxyfile: - set version to 1.8.1 - - * NEWS: - updated NEWS - -2014-08-18 Martin Gieseking - - * src/DVIToSVG.cpp, src/DependencyGraph.h, src/Makefile.am, - src/SVGTree.cpp, src/SVGTree.h, src/XMLNode.cpp, src/XMLNode.h, - tests/DependencyGraphTest.cpp, tests/Makefile.am: - remove redundant clipPath elements from generated SVG files - -2014-08-16 Martin Gieseking - - * src/PSPattern.cpp, src/XMLNode.cpp, src/XMLNode.h: - renamed XMLElementNode::findDescendants() and made it constant - -2014-08-11 Martin Gieseking - - * tests/Makefile.am, tests/create-makefile: - link tests against FreeType library - - * README.md: - minor fixed to README.md - -2014-08-10 Khaled Hosny - - * configure.ac, src/Makefile.am: - Don't override CXXFLAGS in configure script - -Breaks standard things - like: - - make CXXFLAGS="-g -O0 -pg" - - * configure.ac, src/Makefile.am: - Don't override CPPFLAGS and LDFLAGS in configure - -For the same reasons - as the previous commit - -2014-08-07 Martin Gieseking - - * src/dvisvgm.cpp: - removed old code that moved cache files to new location - - * src/XMLDocument.cpp, src/XMLDocument.h, src/XMLNode.cpp, src/XMLNode.h: - removed unused emit() methods from XML classes - -2014-07-31 Martin Gieseking - - * src/PsSpecialHandler.cpp, src/psdefs.cpp: - prevent side-effects caused by bop/eop operators present in PS specials - -2014-07-29 Martin Gieseking - - * NEWS: - updated NEWS - -2014-07-28 Martin Gieseking - - * src/GraphicPath.h, src/PSInterpreter.cpp, src/PSInterpreter.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/psdefs.cpp, - tests/PSInterpreterTest.cpp: - added evaluation of PS operator 'clippath' (copies clipping path into - graphics path) - - * configure.ac, src/Doxyfile: - set version to 1.8 - -2014-07-26 Martin Gieseking - - * src/Font.cpp, src/GFGlyphTracer.cpp, src/GraphicPath.h, - src/PsSpecialHandler.cpp: - renamed GraphicPath::newpath() to GraphicPath::clear() - -2014-07-24 Martin Gieseking - - * src/InputReader.cpp, src/PSInterpreter.cpp: - ensure that InputReader::compare() checks whole and not just partial - words - -2014-07-22 Martin Gieseking - - * src/DVIToSVG.h, src/dvisvgm.cpp: - prevent throwing a DVIException when option -l is present - - * Makefile.am, clipper/License.txt, clipper/Makefile.am, - clipper/clipper.cpp, clipper/clipper.hpp, configure.ac, src/Makefile.am: - added slightly modified sources of clipper library (computes boolops on - polygons) - - * src/GraphicPath.h: - added field to store the winding rule to class GraphicPath - - * README, README.md, src/Bezier.cpp, src/Bezier.h, src/GraphicPath.h, - src/Makefile.am, src/PathClipper.cpp, src/PathClipper.h, src/dvisvgm.cpp: - added class PathClipper to compute intersections of closed curved - graphics paths - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/dvisvgm.cpp, - src/options.xml: - added option --clippath to compute the intersection of clipping paths - -2014-07-20 Khaled Hosny - - * src/FontEngine.cpp: - Free existing FT_Face before creating a new one - -FontEngine was never - destroying the FT_Face's it creates, except the -very last one that was - destroyed by the destructor. For some reason, -this was causing - FT_New_Face() to fail on Windows after processing the -first hundred or so - pages of DVI files. - -2014-07-18 Martin Gieseking - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h, - src/GraphicPath.h, src/PsSpecialHandler.cpp, src/SVGTree.cpp, - src/SVGTree.h, src/dvisvgm.cpp, src/options.xml, - tests/GraphicPathTest.cpp: - added option to create relative rather than absolute path commands - - * src/TpicSpecialHandler.cpp: - TPIC handler: use class GraphicPath to create SVG path commands - -2014-07-07 Martin Gieseking - - * src/DVIToSVGActions.h, src/Doxyfile, src/HtmlSpecialHandler.h, - src/RangeMap.cpp, src/SpecialManager.cpp, src/ToUnicodeMap.cpp: - fixed a couple of broken doxygen comments - -2014-06-25 Martin Gieseking - - * src/Ghostscript.cpp: - get proper name of Ghostscript library when building for Cygwin - -2014-06-23 Martin Gieseking - - * README.md: - added markdown version of README - -2014-06-20 Martin Gieseking - - * src/psdefs.cpp: - suppress output of PS operator ':show' to prevent the creation of - additional graphic elements - -2014-06-17 Martin Gieseking - - * src/SpecialManager.cpp, src/SpecialManager.h: - removed redundant method SpecialManager::leavePSHeaderSection() - - * doc/dvisvgm.txt.in, src/DVIToSVGActions.cpp, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h, - tests/DvisvgmSpecialTest.cpp, tests/Makefile.am: - added/improved dvisvgm::raw* specials - - * src/InputReader.cpp: - added missing include - - * configure.ac, src/Doxyfile: - set version to 1.7 - - * NEWS: - updated NEWS - -2014-06-12 Martin Gieseking - - * src/XMLNode.cpp, src/XMLNode.h: - added clear() to XMLNode classes; added XMLTextNode::getText() - -2014-06-11 Martin Gieseking - - * src/InputReader.cpp, src/InputReader.h: - added InputReader::getLine() - - * src/DVIToSVG.cpp, src/SpecialHandler.h, src/SpecialManager.cpp, - src/SpecialManager.h: - added listener to allow SpecialHandlers being notified when - pre-processing has finished - -2014-06-10 Martin Gieseking - - * src/SpecialActions.h, tests/ColorSpecialTest.cpp: - renamed class SpecialEmptyActions to EmptySpecialActions - -2014-06-09 Martin Gieseking - - * src/DVIReader.cpp, src/Ghostscript.cpp: - removed unused variable; call Ghostscript::exit() with explicitely given - object - - * src/DVIToSVG.h, src/SpecialManager.h: - removed redundant definition of assignment operators - -2014-06-05 Martin Gieseking - - * src/BasicDVIReader.cpp, src/BasicDVIReader.h, src/DVIReader.cpp, - src/DVIReader.h, src/Makefile.am: - moved basic funtionality of DVIReader to base class BasicDVIReader - - * src/BasicDVIReader.h, src/DVIReader.cpp, src/DVIToSVG.cpp, - src/DVIToSVG.h, src/dvisvgm.cpp: - moved call of executePreamble() and executePostamble() from DVIToSVG to - DVIReader - - * src/DVIActions.h, src/DVIReader.cpp, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Makefile.am, - src/PreScanDVIReader.cpp, src/PreScanDVIReader.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/SpecialHandler.h, - src/SpecialManager.cpp, src/SpecialManager.h, src/StreamReader.cpp, - src/StreamReader.h: - pre-process DVI file to collect required data not present in the page - ranges to be converted - - * src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp, - src/SpecialManager.cpp, src/SpecialManager.h, src/dvisvgm.cpp: - made class SpecialManager a singleton - - * src/BasicDVIReader.h, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h: - allow to replace the DVI reader assigned to an instance of - DVIToSVGActions - - * doc/dvisvgm.txt.in, src/BasicDVIReader.h, src/DVIToSVG.cpp, - src/DVIToSVG.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, - src/EPSToSVG.cpp, src/EPSToSVG.h, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.h, src/PreScanDVIReader.cpp, - src/PreScanDVIReader.h, src/SpecialActions.h: - process hyperref anchors and links across pages - - * src/BasicDVIReader.cpp, src/BasicDVIReader.h, src/Bitmap.h, - src/BoundingBox.h, src/CMap.h, src/CMapManager.cpp, src/CMapManager.h, - src/CMapReader.h, src/CRC32.h, src/Calculator.cpp, src/Calculator.h, - src/CmdLineParserBase.h, src/Color.cpp, src/ColorSpecialHandler.cpp, - src/ColorSpecialHandler.h, src/CommandLine.cpp, src/CommandLine.h, - src/DLLoader.h, src/DVIReader.cpp, src/DVIToSVG.h, src/DVIToSVGActions.h, - src/Directory.h, src/DvisvgmSpecialHandler.h, src/EmSpecialHandler.cpp, - src/EmSpecialHandler.h, src/EncFile.h, src/FileFinder.h, - src/FileSystem.cpp, src/Font.cpp, src/Font.h, src/FontCache.h, - src/FontEncoding.cpp, src/FontEngine.cpp, src/FontEngine.h, - src/FontManager.cpp, src/FontManager.h, src/FontMap.cpp, src/FontMap.h, - src/GFGlyphTracer.cpp, src/GFGlyphTracer.h, src/GFReader.cpp, - src/GFReader.h, src/GFTracer.h, src/Ghostscript.cpp, src/Ghostscript.h, - src/GraphicPath.h, src/HtmlSpecialHandler.h, src/InputBuffer.cpp, - src/InputBuffer.h, src/JFM.h, src/Length.cpp, src/Length.h, - src/MapLine.cpp, src/MapLine.h, src/Matrix.cpp, src/Matrix.h, - src/MessageException.h, src/MetafontWrapper.cpp, src/MetafontWrapper.h, - src/NoPsSpecialHandler.h, src/NumericRanges.h, src/PSInterpreter.h, - src/PSPattern.h, src/PSPreviewFilter.h, src/PageRanges.h, src/PageSize.h, - src/Pair.h, src/PdfSpecialHandler.cpp, src/PdfSpecialHandler.h, - src/Process.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, - src/SVGTree.h, src/SignalHandler.h, src/SpecialActions.h, - src/SpecialManager.h, src/StreamWriter.h, src/Subfont.cpp, src/Subfont.h, - src/TFM.h, src/ToUnicodeMap.h, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.h, src/VFReader.cpp, src/VectorStream.h, - src/XMLDocument.h, src/XMLNode.h, src/XMLString.cpp, src/XMLString.h, - src/dvisvgm.cpp, src/types.h: - replaced leading spaces by tabs; removed trailing whitespace - -2014-06-03 Martin Gieseking - - * src/DVIReader.cpp, src/DVIReader.h: - removed redundant variable DVIReader::_prevBop - - * src/PsSpecialHandler.cpp: - fixed incorrect extent values shown when applying a preview bbox - (bp->pt) - -2014-06-01 Martin Gieseking - - * src/EPSFile.cpp, src/GFReader.cpp: - replaced relative variant of seekg() by absolute one where possible - - * src/DVIReader.cpp, src/DVIReader.h: - removed redundant code from DVIReader::evalCommand() - -2014-05-31 Martin Gieseking - - * src/DVIReader.cpp, src/VFReader.cpp: - few code adjustments - - * src/DVIReader.cpp, src/StreamReader.cpp, src/StreamReader.h, - src/VFReader.cpp: - removed StreamReader::in() - - * src/DVIReader.cpp, src/StreamReader.h, src/VFReader.cpp: - renamed some methods of class StreamReader - -2014-05-29 Martin Gieseking - - * src/DVIReader.cpp, src/DVIReader.h, src/StreamReader.h: - collect all DVI BOP offsets to reach them quickly - - * src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h: - removed DVIReader::_totalPages; use number of BOP offsets instead - - * src/DVIReader.cpp, src/DVIReader.h, src/dvisvgm.cpp: - simplified computation of progress ratio - - * src/DVIReader.cpp, src/DVIReader.h: - simplified DVIReader::executePage; removed DVIReader::executePages - -2014-05-22 Martin Gieseking - - * src/Font.cpp, src/Makefile.am, src/Unicode.cpp, src/Unicode.h, - src/XMLString.cpp: - moved unicode-related funtions to separate class - - * src/CharMap.cpp, src/CharMap.h, src/Font.cpp, src/FontEngine.cpp, - src/FontEngine.h: - removed redundant method CharMap::invert() - - * src/CMap.cpp, src/CMap.h, src/Makefile.am, src/RangeMap.cpp, - src/RangeMap.h, tests/Makefile.am, tests/RangeMapTest.cpp: - extracted class RangeMap previously implemented as part of SegmentedCMap - - * src/RangeMap.cpp: - fixed right joins of touching ranges in a RangeMap - - * src/CharMap.cpp, src/CharMap.h, src/Font.cpp, src/Font.h, - src/FontEngine.cpp, src/FontEngine.h, src/Makefile.am: - replaced class CharMap with more generic class RangeMap - - * src/DVIToSVG.cpp, src/Makefile.am, src/NumericRanges.h, - src/PageRanges.cpp, src/PageRanges.h, tests/PageRagesTest.cpp: - extracted functionality of class PageRanges to separate class - NumericRanges - - * src/Makefile.am, src/RangeMap.h, src/ToUnicodeMap.cpp, - src/ToUnicodeMap.h, tests/Makefile.am, tests/ToUnicodeMapTest.cpp: - added class ToUnicodeMap to handle mappings from character indexes to - unicode points - - * src/Makefile.am: - Makefile: put source files on separate lines - -2014-04-30 Martin Gieseking - - * src/CharMapID.cpp, src/CharMapID.h, src/DVIReader.cpp, src/Font.cpp, - src/Font.h, src/FontEngine.cpp, src/FontEngine.h: - try to add unicode mappings missing in a font's cmap table - -2014-04-29 Martin Gieseking - - * src/SVGTree.cpp: - don't add unnecessary element 'missing-glyph' to SVG files - -2014-04-24 Martin Gieseking - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/options.xml: - renamed argument of option --linkmark from 'type' to 'style' - -2014-04-23 Martin Gieseking - - * src/System.h: - removed redundant semicolon - -2014-04-22 Martin Gieseking - - * configure.ac, src/Doxyfile: - set version to 1.6 - - * NEWS: - updated NEWS - -2014-04-21 Martin Gieseking - - * doc/dvisvgm.txt.in, src/DVIToSVG.cpp, src/EPSToSVG.cpp: - removed date and machine triplet from generated SVG files - -2014-04-18 Martin Gieseking - - * doc/dvisvgm.txt.in, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.h: - added optional selection of line/box colors to option --linkmark - -2014-04-17 Martin Gieseking - - * src/CommandLine.h, src/DVIToSVG.cpp, src/EPSToSVG.cpp: - don't link GS messages unnecessarily if HAVE_LIBGS is defined - - * src/DVIReader.h, src/DVIToSVGActions.h, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.h, src/SpecialActions.h: - only split hyperlink boxes on line breaks - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/options.xml: - changed default argument of option --linkmark to 'box' - -2014-04-16 Martin Gieseking - - * src/DLLoader.cpp: - prevent calling dlopen() if the length of the string argument is 0 - - * doc/dvisvgm.txt.in, src/Ghostscript.cpp: - if libgs is loaded during runtime, look for libgs.so.X instead of - libgs.so - - * src/Ghostscript.cpp, src/dvisvgm.cpp: - moved lookup of MiKTeX's GS DLL to get_libgs() - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h, - src/SVGTree.cpp, src/SVGTree.h, src/dvisvgm.cpp, src/options.xml: - added command-line option --zoom - -2014-04-11 Martin Gieseking - - * src/CMap.cpp, src/CmdLineParserBase.cpp, src/ColorSpecialHandler.cpp, - src/DVIReader.cpp, src/DVIToSVGActions.cpp, src/Doxyfile, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h, - src/EPSFile.cpp, src/EmSpecialHandler.cpp, src/FileFinder.cpp, - src/FileSystem.cpp, src/Font.cpp, src/FontCache.cpp, src/FontEncoding.h, - src/FontEngine.cpp, src/FontMap.cpp, src/GraphicPath.h, - src/PSInterpreter.cpp, src/PageRanges.cpp, src/PsSpecialHandler.cpp, - src/SVGTree.cpp, src/SVGTree.h, src/SpecialManager.cpp, src/Subfont.cpp, - src/TFM.cpp, src/TpicSpecialHandler.cpp, src/XMLDocument.cpp, - src/XMLNode.cpp, src/dvisvgm.cpp: - fixed issues in the doxygen documentation - - * configure.ac, src/Doxyfile: - set version to 1.5.3 - - * NEWS: - updated NEWS - -2014-04-09 Martin Gieseking - - * src/DVIToSVGActions.cpp: - equalize implementations of moveToX and moveToY - - * src/BoundingBox.h, src/DVIActions.cpp, src/DVIActions.h, - src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, - src/DvisvgmSpecialHandler.cpp, src/EPSToSVG.cpp, - src/EmSpecialHandler.cpp, src/Font.h, src/FontManager.cpp, - src/GFGlyphTracer.cpp, src/GFReader.cpp, src/GFTracer.cpp, - src/GFTracer.h, src/GraphicPath.h, src/HtmlSpecialHandler.h, - src/Makefile.am, src/PSPattern.cpp, src/PSPreviewFilter.cpp, - src/PSPreviewFilter.h, src/PageSize.cpp, src/PageSize.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/SVGTree.cpp, - src/SpecialHandler.h, src/SpecialManager.cpp, src/SpecialManager.h, - src/TFM.cpp, src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h, - src/VFReader.cpp: - switched internal computations from TeX points (pt) to PS points (bp) - -2014-02-05 Martin Gieseking - - * src/DVIReader.cpp, src/DVIReader.h: - ensure updating the SVG cursor position when executing DVI command - set_rule - -2014-01-13 Martin Gieseking - - * src/Ghostscript.cpp: - check if library given by --libgs is actually a GS library - -2014-01-10 Martin Gieseking - - * NEWS: - updated NEWS - -2014-01-03 Martin Gieseking - - * src/FileFinder.cpp: - catch exceptions thrown by MiKTeXCom object - - * src/Directory.cpp: - initialize Directory member variables (Win only) - - * src/FileFinder.cpp: - return 'unknown' if MiKTeX version can't be retrieved - - * configure.ac, src/Doxyfile: - set version to 1.5.2 - -2014-01-02 Martin Gieseking - - * Makefile.am, README, configure.ac, doc/Makefile.am, doc/dvisvgm.txt.in, - src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h, - src/Bitmap.cpp, src/Bitmap.h, src/BoundingBox.cpp, src/BoundingBox.h, - src/CMap.cpp, src/CMap.h, src/CMapManager.cpp, src/CMapManager.h, - src/CMapReader.cpp, src/CMapReader.h, src/CRC32.cpp, src/CRC32.h, - src/Calculator.cpp, src/Calculator.h, src/CharMap.cpp, src/CharMap.h, - src/CharMapID.cpp, src/CharMapID.h, src/Character.h, - src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/Color.cpp, - src/Color.h, src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/CommandLine.cpp, src/CommandLine.h, src/DLLoader.cpp, src/DLLoader.h, - src/DVIActions.cpp, src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, - src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/Directory.cpp, src/Directory.h, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h, - src/EPSFile.cpp, src/EPSFile.h, src/EPSToSVG.cpp, src/EPSToSVG.h, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, src/EncFile.cpp, - src/EncFile.h, src/FileFinder.cpp, src/FileFinder.h, src/FilePath.cpp, - src/FilePath.h, src/FileSystem.cpp, src/FileSystem.h, src/Font.cpp, - src/Font.h, src/FontCache.cpp, src/FontCache.h, src/FontEncoding.cpp, - src/FontEncoding.h, src/FontEngine.cpp, src/FontEngine.h, - src/FontManager.cpp, src/FontManager.h, src/FontMap.cpp, src/FontMap.h, - src/FontMetrics.cpp, src/FontMetrics.h, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.h, src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, - src/GFTracer.h, src/Ghostscript.cpp, src/Ghostscript.h, src/Glyph.h, - src/GlyphTracerMessages.h, src/GraphicPath.h, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.h, src/InputBuffer.cpp, src/InputBuffer.h, - src/InputReader.cpp, src/InputReader.h, src/JFM.cpp, src/JFM.h, - src/Length.cpp, src/Length.h, src/Makefile.am, src/MapLine.cpp, - src/MapLine.h, src/Matrix.cpp, src/Matrix.h, src/Message.cpp, - src/Message.h, src/MessageException.h, src/MetafontWrapper.cpp, - src/MetafontWrapper.h, src/MiKTeXCom.cpp, src/MiKTeXCom.h, - src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.h, src/PSFilter.h, - src/PSInterpreter.cpp, src/PSInterpreter.h, src/PSPattern.cpp, - src/PSPattern.h, src/PSPreviewFilter.cpp, src/PSPreviewFilter.h, - src/PageRanges.cpp, src/PageRanges.h, src/PageSize.cpp, src/PageSize.h, - src/Pair.h, src/PdfSpecialHandler.cpp, src/PdfSpecialHandler.h, - src/Process.cpp, src/Process.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/SVGOutputBase.h, src/SVGTree.cpp, - src/SVGTree.h, src/SignalHandler.cpp, src/SignalHandler.h, - src/SpecialActions.h, src/SpecialHandler.h, src/SpecialManager.cpp, - src/SpecialManager.h, src/StreamReader.cpp, src/StreamReader.h, - src/StreamWriter.cpp, src/StreamWriter.h, src/Subfont.cpp, src/Subfont.h, - src/System.cpp, src/System.h, src/TFM.cpp, src/TFM.h, src/Terminal.cpp, - src/Terminal.h, src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h, - src/VFActions.h, src/VFReader.cpp, src/VFReader.h, src/VectorStream.h, - src/XMLDocument.cpp, src/XMLDocument.h, src/XMLNode.cpp, src/XMLNode.h, - src/XMLString.cpp, src/XMLString.h, src/dvisvgm.cpp, src/macros.h, - src/options.dtd, src/options.xml, src/psdefs.cpp, src/types.h, - tests/BoundingBoxTest.cpp, tests/CMapReaderTest.cpp, tests/CMapTest.cpp, - tests/CRC32Test.cpp, tests/CalculatorTest.cpp, - tests/ColorSpecialTest.cpp, tests/ColorTest.cpp, - tests/CommandLineTest.cpp, tests/DirectoryTest.cpp, - tests/FileFinderTest.cpp, tests/FilePathTest.cpp, - tests/FileSystemTest.cpp, tests/FontManagerTest.cpp, - tests/FontMapTest.cpp, tests/GFReaderTest.cpp, tests/GraphicPathTest.cpp, - tests/LengthTest.cpp, tests/Makefile.am, tests/MapLineTest.cpp, - tests/MatrixTest.cpp, tests/MessageExceptionTest.cpp, - tests/PSInterpreterTest.cpp, tests/PageRagesTest.cpp, - tests/PageSizeTest.cpp, tests/PairTest.cpp, - tests/SplittedCharInputBufferTest.cpp, tests/StreamInputBufferTest.cpp, - tests/StreamReaderTest.cpp, tests/StreamWriterTest.cpp, - tests/SubfontTest.cpp, tests/TypesTest.cpp, tests/VectorStreamTest.cpp, - tests/check-conv, tests/create-makefile, tests/normalize.xsl: - updated year in copyright statements to 2014 - -2014-01-01 Martin Gieseking - - * src/MiKTeXCom.cpp: - prevent releasing MiKTeX object if its initialization failed - -2013-12-29 Martin Gieseking - - * src/Font.cpp: - check if units per EM are not 0 to prevent divisions by zero - - * src/Directory.cpp, src/Directory.h, src/FontMap.cpp, - tests/DirectoryTest.cpp: - changed directory entry types from char to enums - - * src/FontCache.cpp: - catch potential StreamReaderException - -2013-12-18 Martin Gieseking - - * src/BoundingBox.cpp: - explicitely initialize BoundingBox fields - - * src/FontCache.cpp: - avoid accessing strings constructed from temporaries - - * src/Matrix.cpp: - ensure return value of istream::get() is assigned to int vars - - * src/DVIReader.cpp: - check if denominator of DVI unit is non-zero - - * src/DvisvgmSpecialHandler.cpp, src/FontCache.cpp: - ensure null pointer checks before dereferencing - - * src/FontCache.cpp, src/SpecialManager.cpp: - restore stream format flags - - * src/DVIReader.cpp, src/Directory.cpp, src/GFReader.cpp: - added missing initializations of member variables - -2013-12-09 Martin Gieseking - - * src/BgColorSpecialHandler.h, src/Bitmap.h, src/BoundingBox.h, - src/CMap.h, src/CMapManager.h, src/CMapReader.h, src/Calculator.h, - src/CharMap.h, src/CharMapID.h, src/Character.h, src/CmdLineParserBase.h, - src/Color.h, src/ColorSpecialHandler.h, src/CommandLine.h, - src/DLLoader.h, src/DVIActions.h, src/DVIReader.h, src/DVIToSVG.h, - src/DVIToSVGActions.h, src/Directory.h, src/DvisvgmSpecialHandler.h, - src/EPSFile.h, src/EPSToSVG.h, src/EmSpecialHandler.h, src/EncFile.h, - src/FileFinder.h, src/FilePath.h, src/FileSystem.h, src/Font.h, - src/FontCache.h, src/FontEncoding.h, src/FontEngine.h, src/FontManager.h, - src/FontMap.h, src/FontMetrics.h, src/GFGlyphTracer.h, src/GFReader.h, - src/GFTracer.h, src/Ghostscript.h, src/Glyph.h, - src/GlyphTracerMessages.h, src/GraphicPath.h, src/HtmlSpecialHandler.h, - src/InputBuffer.h, src/InputReader.h, src/JFM.h, src/Length.h, - src/MapLine.h, src/Matrix.h, src/Message.h, src/MessageException.h, - src/MetafontWrapper.h, src/MiKTeXCom.h, src/NoPsSpecialHandler.h, - src/PSFilter.h, src/PSInterpreter.h, src/PSPattern.h, - src/PSPreviewFilter.h, src/PageRanges.h, src/PageSize.h, src/Pair.h, - src/PdfSpecialHandler.h, src/Process.h, src/PsSpecialHandler.h, - src/SVGOutputBase.h, src/SVGTree.h, src/SignalHandler.h, - src/SpecialActions.h, src/SpecialHandler.h, src/SpecialManager.h, - src/StreamReader.h, src/StreamWriter.h, src/Subfont.h, src/System.h, - src/TFM.h, src/Terminal.h, src/TpicSpecialHandler.h, src/VFActions.h, - src/VFReader.h, src/VectorStream.h, src/XMLDocument.h, src/XMLNode.h, - src/XMLString.h, src/macros.h, src/types.h: - prefixed include guards with DVISVGM_ to prevent ambiguities with - external headers - -2013-11-16 Martin Gieseking - - * src/DVIReader.cpp, src/SVGTree.cpp, src/SVGTree.h: - don't let global font colors interfere with color specials - -2013-10-29 Martin Gieseking - - * NEWS: - updated NEWS - -2013-10-28 Martin Gieseking - - * src/Bitmap.cpp, src/Color.cpp, src/JFM.cpp, src/Matrix.cpp: - added missing #includes of header file - - * src/FileSystem.cpp, src/MetafontWrapper.cpp: - added explicit casts from ifstream to bool - - * src/DVIReader.cpp: - temporarily reactivated processing of font definitions located in the - postamble - - * configure.ac, src/Doxyfile: - set version to 1.5.1 - -2013-10-27 Martin Gieseking - - * src/DVIToSVG.cpp: - suppress output of logical page number if it equals physical page number - -2013-10-16 Martin Gieseking - - * src/PSPreviewFilter.cpp, src/PsSpecialHandler.cpp: - ensure proper evaluation of tightpage data if multiple pages are - processed - -2013-10-12 Martin Gieseking - - * src/InputBuffer.h: - don't check unsigned variables for negative values - - * src/Color.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h: - added 'const' to read-only methods - -2013-09-21 Martin Gieseking - - * src/FontCache.cpp, src/FontCache.h: - renamed FontCache::VERSION to FontCache::FORMAT_VERSION - - * src/DVIToSVG.cpp, src/Ghostscript.h, src/dvisvgm.cpp: - added missing guards and functions to prevent compilation errors if - DISABLE_GS is set - - * src/DVIToSVG.cpp: - changed warning message that appears if PS support has been disabled - permanently - -2013-09-01 Martin Gieseking - - * src/BgColorSpecialHandler.cpp, src/Bitmap.cpp, src/BoundingBox.cpp, - src/CMap.cpp, src/CMapManager.cpp, src/CMapReader.cpp, src/CRC32.cpp, - src/Calculator.cpp, src/CharMap.cpp, src/CmdLineParserBase.cpp, - src/Color.cpp, src/ColorSpecialHandler.cpp, src/CommandLine.cpp, - src/CommandLine.h, src/DLLoader.cpp, src/DVIActions.cpp, - src/DVIReader.cpp, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, - src/Directory.cpp, src/DvisvgmSpecialHandler.cpp, src/EPSFile.cpp, - src/EPSToSVG.cpp, src/EmSpecialHandler.cpp, src/EncFile.cpp, - src/FileFinder.cpp, src/FilePath.cpp, src/FileSystem.cpp, src/Font.cpp, - src/FontCache.cpp, src/FontEncoding.cpp, src/FontEngine.cpp, - src/FontManager.cpp, src/FontMap.cpp, src/FontMetrics.cpp, - src/GFGlyphTracer.cpp, src/GFReader.cpp, src/GFTracer.cpp, - src/Ghostscript.cpp, src/Ghostscript.h, src/HtmlSpecialHandler.cpp, - src/InputBuffer.cpp, src/InputReader.cpp, src/JFM.cpp, src/Length.cpp, - src/MapLine.cpp, src/Matrix.cpp, src/Message.cpp, - src/MetafontWrapper.cpp, src/MiKTeXCom.cpp, src/NoPsSpecialHandler.cpp, - src/PSInterpreter.cpp, src/PSPattern.cpp, src/PSPreviewFilter.cpp, - src/PageRanges.cpp, src/PageSize.cpp, src/PdfSpecialHandler.cpp, - src/Process.cpp, src/PsSpecialHandler.cpp, src/SVGTree.cpp, - src/SignalHandler.cpp, src/SpecialManager.cpp, src/StreamReader.cpp, - src/StreamWriter.cpp, src/Subfont.cpp, src/System.cpp, src/TFM.cpp, - src/Terminal.cpp, src/TpicSpecialHandler.cpp, src/VFReader.cpp, - src/XMLDocument.cpp, src/XMLNode.cpp, src/XMLString.cpp, src/dvisvgm.cpp: - include config.h at the top of every translation unit - - * src/DLLoader.h, src/Directory.h: - moved #define NOMINMAX to Windows config.h - - * configure.ac, src/Doxyfile: - set version to 1.5 - - * NEWS: - updated NEWS - -2013-08-30 Martin Gieseking - - * src/FontMetrics.h, src/JFM.cpp, src/JFM.h, src/TFM.h: - added retrieval of vertical mode flag to class FontMetrics - - * src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Font.cpp, src/Font.h, - src/FontEngine.cpp, src/FontEngine.h, src/FontMetrics.h, src/JFM.h, - src/SVGTree.cpp, src/SVGTree.h, src/TFM.h, src/dvisvgm.cpp: - added support for DVI format 3 (pTeX, vertical mode) - - * src/DVIReader.cpp, src/DVIReader.h, src/Font.cpp, src/Font.h, - src/FontEngine.cpp, src/FontEngine.h, src/FontManager.cpp, - src/FontManager.h, src/FontStyle.h, src/SVGTree.cpp, src/dvisvgm.cpp: - added support for XDV (DVI format 5) files - - * src/Font.cpp, src/Font.h, src/XMLString.cpp: - replaced entity references by corresponding UTF-8 characters; use - correct unicode points rather than DVI charcodes - - * doc/dvisvgm.txt.in: - updated manpage - -2013-08-29 Martin Gieseking - - * src/CharMap.cpp, src/CharMap.h, src/Font.cpp, src/Font.h, - src/FontEncoding.h, src/FontEngine.cpp, src/FontEngine.h, - src/FontManager.cpp, src/Makefile.am: - replaced local std::map tables used in Font classes with new class - CharMap - -2013-08-23 Martin Gieseking - - * src/SVGTree.cpp: - appended px unit to font-size attributes in style section - -2013-08-22 Martin Gieseking - - * src/XMLString.cpp: - replace very small floating point numbers by 0 - -2013-08-20 Martin Gieseking - - * src/FileFinder.cpp: - suppress error messages from makeFOO tools - -2013-08-13 Martin Gieseking - - * src/CMap.cpp, src/CMap.h, src/CMapManager.cpp, src/CMapManager.h, - src/EncFile.h, src/Font.cpp, src/Font.h, src/FontEncoding.cpp, - src/FontEncoding.h, src/FontManager.cpp, src/FontMap.cpp, src/FontMap.h: - derive EncodingPair from FontEncoding - - * src/Font.cpp, src/Font.h, src/FontEncoding.cpp, src/FontEncoding.h, - src/FontManager.cpp, src/FontMap.cpp, src/FontMap.h: - moved assignment of base font map to Font class - -2013-08-11 Martin Gieseking - - * configure.ac, src/FileFinder.cpp: - check if the kpathsea library is C++-safe (patch by Peter Breitenlohner) - - * src/dvisvgm.cpp: - fix number of dashes printed by -V1 - -2013-08-08 Martin Gieseking - - * src/Matrix.cpp, src/Matrix.h: - renamed Matrix skewing methods - -2013-08-04 Martin Gieseking - - * src/Font.cpp, src/Font.h, src/FontEngine.cpp, src/FontManager.cpp, - src/FontMap.cpp, src/FontMap.h, src/FontStyle.h, src/Makefile.am: - store pointers to font map and encoding in Font objects to speed up - looking them up - - * src/Ghostscript.h, src/PSPreviewFilter.cpp, src/PsSpecialHandler.cpp: - added missing variable initializations - -2013-08-03 Martin Gieseking - - * src/CMapManager.cpp, src/CMapManager.h, src/FontManager.cpp: - avoid const_cast in CMapManager - -2013-08-02 Martin Gieseking - - * src/DVIActions.h, src/DVIReader.cpp, src/DVIToSVG.cpp: - disable font processing while scanning PS header specials - - * src/CMap.h, src/CMapManager.cpp: - properly handle 'unicode' encoding entries set in font map - -2013-08-01 Martin Gieseking - - * src/XMLDocument.cpp, src/XMLString.cpp: - changed encoding of SVG files from ISO-8859-1 to UTF-8 - - * src/DVIToSVG.cpp, src/Makefile.am, src/SVGTree.cpp, - src/XMLDocTypeNode.h: - removed DOCTYPE declaration from generated files as suggested by the SVG - specification - - * src/DVIToSVG.cpp: - removed redundant #include statements - - * src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.h, src/EPSToSVG.h, - src/Matrix.cpp, src/Matrix.h, src/PsSpecialHandler.cpp, - src/SpecialActions.h, src/dvisvgm.cpp: - apply page transformations to width, height, and depth of preview bbox - - * NEWS: - updated NEWS - - * configure.ac, src/Doxyfile: - set version to 1.4 - -2013-07-31 Martin Gieseking - - * src/CMap.cpp, src/CMap.h, src/CMapManager.cpp, src/CMapManager.h, - src/CMapReader.cpp, src/CMapReader.h, src/FontManager.cpp, - src/Makefile.am, tests/CMapTest.cpp, tests/Makefile.am: - added classes to handle CMap files - - * src/CMap.cpp, src/CMap.h, src/CMapManager.h, src/EncFile.cpp, - src/EncFile.h, src/FileFinder.cpp, src/Font.cpp, src/Font.h, - src/FontEncoding.cpp, src/FontEncoding.h, src/FontEngine.cpp, - src/FontEngine.h, src/FontManager.cpp, src/Makefile.am, - tests/CMapTest.cpp: - derive .enc encoding vectors and CMaps from common base class - FontEncoding - - * src/CMap.cpp, src/CMap.h, src/Character.h, src/EncFile.h, src/Font.cpp, - src/Font.h, src/FontEncoding.h, src/FontEngine.cpp, src/FontEngine.h, - src/Makefile.am, tests/CMapTest.cpp: - added Character class to handle character names, codes, and indexes - consistently - - * src/FileFinder.cpp, src/Font.cpp, src/Font.h, src/FontManager.cpp: - added support for OTF fonts - - * src/Font.cpp, src/Font.h, src/FontMetric.cpp, src/FontMetric.h, - src/FontMetrics.cpp, src/FontMetrics.h, src/Makefile.am, src/TFM.h: - renamed class FontMetric to FontMetrics - - * src/CMap.cpp, src/CMap.h, src/CMapReader.cpp, src/CMapReader.h, - tests/CMapReaderTest.cpp, tests/CMapTest.cpp, tests/Makefile.am: - added evaluation of base font (bf) sections in CMap files - - * src/CMap.h, src/CMapManager.cpp, src/CMapManager.h, src/CMapReader.cpp, - src/CharMapID.cpp, src/CharMapID.h, src/Font.cpp, src/Font.h, - src/FontEngine.cpp, src/FontEngine.h, src/FontManager.cpp, - src/FontMap.cpp, src/FontMap.h, src/Makefile.am: - try to decode characters of non-CID fonts that have a CMap assigned in - the fontmap - -2013-07-27 Martin Gieseking - - * src/Font.cpp, src/Font.h, src/FontEncoding.cpp, src/FontEncoding.h: - moved lookup of the encoding of a font to the Font class - - * src/JFM.cpp: - fixed retrieval of char indexes if a JFM contains entries of chartype 0 - only - - * src/BgColorSpecialHandler.h, src/DVIToSVG.cpp, src/PSInterpreter.cpp, - src/PSInterpreter.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, - src/SpecialManager.cpp, src/SpecialManager.h: - ensure that PS header code is evaluated before the page/body code; also - execute bop-hook and eop-hook - - * src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp: - added funtion to execute PS code snippets and retrieve their results - - * doc/dvisvgm.txt.in, src/DVIActions.h, src/DVIReader.cpp, - src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, - src/EPSToSVG.cpp, src/Makefile.am, src/PSFilter.h, src/PSInterpreter.cpp, - src/PSInterpreter.h, src/PSPreviewFilter.cpp, src/PSPreviewFilter.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/SpecialActions.h, - src/SpecialHandler.h, src/SpecialManager.cpp, src/SpecialManager.h: - added evaluation of bounding box information created by preview package - -2013-07-23 Martin Gieseking - - * src/EPSToSVG.cpp: - print warning message if height or width of EPS bbox is 0 - - * src/psdefs.cpp: - PS handler: call newpath before executing charpath in operator show - - * src/FontMap.cpp: - check for EOF prior to try to parse another mapline - -2013-07-18 Martin Gieseking - - * src/psdefs.cpp: - replaced PS operator prval with =only in psdefs - -2013-07-17 Martin Gieseking - - * src/DVIToSVG.cpp: - ensure catching PSExceptions while processing PS header specials to - prevent segfaults - - * src/psdefs.cpp: - properly store PS operator applyscalevals in systemdict - -2013-07-14 Martin Gieseking - - * src/Process.cpp, src/Process.h: - extended Process::run() to grab the output written to stdout - - * src/FileFinder.cpp, src/FileFinder.h: - FileFinder: added lookup of cmap files - -2013-07-08 Martin Gieseking - - * src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/CommandLine.cpp: - command-line parser: changed type of argument mode from char to enum - -2013-06-17 Martin Gieseking - - * src/FileFinder.cpp: - removed redundant 'using namespace std' - -2013-06-03 Martin Gieseking - - * doc/dvisvgm.txt.in, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.h, src/dvisvgm.cpp: - extend option --linkmark to highlight linked areas by a given background - color - -2013-06-01 Martin Gieseking - - * src/Color.cpp, src/Color.h, src/ColorSpecialHandler.cpp, - src/ColorSpecialHandler.h, src/SpecialActions.h, - tests/ColorSpecialTest.cpp, tests/ColorTest.cpp, tests/Makefile.am: - use Color class in ColorSpecialHandler rather than local code; added - ColorTest - -2013-05-22 Martin Gieseking - - * src/dvisvgm.cpp: - added a missing (underlining) hyphen to the output of -V1 - -2013-05-17 Martin Gieseking - - * src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.h: - added missing NoPsSpecialhandler files - -2013-05-13 Martin Gieseking - - * src/Font.cpp, src/Font.h, src/FontManager.h, src/FontMetric.cpp, - src/FontMetric.h, src/Makefile.am, src/TFM.cpp, src/TFM.h: - handle invalid TFM files properly - - * src/Font.cpp, src/FontMetric.cpp, src/FontMetric.h, src/JFM.cpp, - src/JFM.h, src/Makefile.am, src/StreamReader.h, src/TFM.cpp, src/TFM.h: - added support for Japanese font metric (JFM) files - - * src/FileFinder.cpp, src/MiKTeXCom.cpp, src/MiKTeXCom.h, src/dvisvgm.cpp: - try to load the Ghostscript library that comes with MiKTeX - - * doc/dvisvgm.txt.in, src/DVIToSVG.cpp, src/HtmlSpecialHandler.cpp, - src/HtmlSpecialHandler.h, src/Makefile.am, src/SpecialManager.cpp: - added support of hyperref specials - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h, - src/HtmlSpecialHandler.cpp, src/dvisvgm.cpp, src/options.xml: - added option --linkmark to select the highlighing variant for hyperlinks - - * configure.ac, src/Doxyfile: - set version to 1.3 - - * NEWS: - updated NEWS - -2013-05-02 Martin Gieseking - - * AUTHORS, Makefile.am, README, configure.ac, potracelib/Makefile.am, - potracelib/auxiliary.h, potracelib/bitmap.h, potracelib/curve.c, - potracelib/curve.h, potracelib/decompose.c, potracelib/decompose.h, - potracelib/lists.h, potracelib/potracelib.c, potracelib/potracelib.h, - potracelib/progress.h, potracelib/trace.c, potracelib/trace.h: - removed bundled potrace library - - * src/SVGTree.cpp, src/SVGTree.h: - added methods to push and pop 'context elements' to a page that wrap - parts of the page contents - - * src/DVIToSVGActions.h, src/EPSToSVG.h, src/SpecialActions.h: - provide the context push/pop methods of class SVGTree to special - handlers - - * src/InputReader.cpp, src/InputReader.h: - added optional parameter 'quotechar' to InputReader::parseAttributes() - - * src/EmSpecialHandler.h, src/NoPsSpecialHandler.h, src/SpecialHandler.h, - src/SpecialManager.cpp, src/SpecialManager.h, src/TpicSpecialHandler.h: - moved DVI listener methods to dedicated listener interface classes - - * src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, - src/DVIToSVG.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, - src/NoPsSpecialHandler.cpp, src/NoPsSpecialHandler.h, - src/SpecialHandler.h, src/SpecialManager.cpp, src/SpecialManager.h, - src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h: - added page number parameter to DVIEndPageListener::dviEndPage() - -2013-05-01 Martin Gieseking - - * src/DVIToSVGActions.cpp, src/Terminal.cpp, src/Terminal.h: - disable cursor when showing the progress indicator (Windows only) - -2013-04-26 Martin Gieseking - - * src/DVIToSVG.cpp: - don't link NoPsSpecialHandler if HAVE_LIBGS - -2013-04-25 Martin Gieseking - - * src/FontEncoding.cpp: - fixed bracketing bug that prevented lookup of fontmap files - -2013-04-24 Martin Gieseking - - * src/BoundingBox.cpp, src/BoundingBox.h, src/Calculator.cpp, - src/Calculator.h, src/Matrix.cpp, src/Matrix.h, src/MessageException.h, - src/PageSize.cpp, src/PageSize.h, src/StreamReader.cpp, - src/StreamReader.h, src/VFReader.cpp, src/VFReader.h, src/VectorStream.h, - src/XMLDocument.cpp, src/XMLDocument.h: - added missing underscores to private member variables - - * configure.ac, src/Doxyfile: - set version to 1.2.2 - - * NEWS: - updated NEWS - -2013-04-23 Martin Gieseking - - * src/DVIToSVG.cpp, src/EPSToSVG.cpp, src/dvisvgm.cpp: - avoid output of empty parentheses if TARGET_SYSTEM is not set - - * doc/dvisvgm.txt.in, src/CmdLineParserBase.cpp, src/CommandLine.cpp, - src/options.dtd, src/options.xml: - added information about 'dvisvgm -E' to usage line - - * src/BoundingBox.cpp, src/BoundingBox.h, src/Calculator.h, - src/CmdLineParserBase.h, src/DVIToSVGActions.cpp, src/Message.cpp, - src/VFReader.cpp: - added missing member initializations to some classes - -2013-04-20 Martin Gieseking - - * src/DVIToSVG.cpp, src/Makefile.am, src/SpecialManager.cpp: - print a warning message if PS specials are found but ignored - -2013-04-15 Martin Gieseking - - * src/FileFinder.cpp, src/dvisvgm.cpp: - catch MessageException if MiKTeX version can't be obtained - -2013-04-09 Martin Gieseking - - * tests/Makefile.am, tests/create-makefile: - updated tests/Makefile.am to honor system potracelib if present - - * configure.ac, src/Doxyfile: - set version to 1.2.1 - - * NEWS: - updated NEWS - -2013-04-08 Martin Gieseking - - * doc/dvisvgm.txt.in, src/Color.cpp, src/Color.h, src/DVIToSVGActions.cpp: - allow the background color special to insert white rectancles - - * src/PageRanges.h: - dropped unused variable PageRanges::_max - -2013-04-04 Martin Gieseking - - * src/XMLNode.cpp, src/XMLNode.h: - unhide derived method XMLDeclarationNode::append - -2013-03-10 Martin Gieseking - - * Makefile.am, configure.ac: - don't build bundled potracelib if system library is used (patch by - Alexis Ballier) - -2013-03-03 Martin Gieseking - - * potracelib/auxiliary.h, potracelib/bitmap.h, potracelib/curve.c, - potracelib/curve.h, potracelib/decompose.c, potracelib/decompose.h, - potracelib/lists.h, potracelib/potracelib.c, potracelib/potracelib.h, - potracelib/progress.h, potracelib/trace.c, potracelib/trace.h: - updated bundled potrace library to version 1.11 - -2013-03-02 Martin Gieseking - - * potracelib/auxiliary.h, potracelib/bitmap.h, potracelib/curve.c, - potracelib/decompose.h, potracelib/lists.h, potracelib/progress.h, - potracelib/trace.c, potracelib/trace.h, src/EPSFile.cpp, - src/EPSToSVG.cpp, src/EPSToSVG.h, src/PSPattern.cpp, src/PSPattern.h, - src/SVGOutputBase.h: - converted DOS line endings - -2013-02-28 Martin Gieseking - - * src/Makefile.am, src/PSInterpreter.cpp, src/PSInterpreter.h, - src/PSPattern.cpp, src/PSPattern.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/psdefs.psc, tests/PSInterpreterTest.cpp: - PS handler: added support of tiling patterns - - * src/Makefile.am, src/PSInterpreter.cpp, src/psdefs.cpp, src/psdefs.psc: - make psdefs a separate compilation unit - - * tests/MapLineTest.cpp: - prevent MapLineTest from failing if file UGBK.sfd is not available - - * src/psdefs.cpp: - improved processing of PS operator 'show' - - * configure.ac, src/Doxyfile: - set version to 1.2 - - * NEWS: - updated NEWS - -2013-02-21 Martin Gieseking - - * src/XMLNode.cpp, src/XMLNode.h: - added virtual constructor XMLNode::clone() - - * src/XMLNode.cpp, src/XMLNode.h: - added methods to lookup attribute values and selected descendant XML - nodes - -2013-02-19 Martin Gieseking - - * src/PSInterpreter.cpp, src/PSInterpreter.h: - added PSInterpreter::limit() to limit the number of bytes to be - processed - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h, - src/DVIToSVG.cpp, src/DVIToSVG.h, src/EPSFile.cpp, src/EPSFile.h, - src/EPSToSVG.cpp, src/EPSToSVG.h, src/Makefile.am, - src/PsSpecialHandler.cpp, src/SVGOutputBase.h, src/dvisvgm.cpp, - src/options.xml: - add option to directly convert EPS files to SVG - - * src/FilePath.cpp: - adapt path separators on Windows systems to get the correct output path - -2013-02-11 Martin Gieseking - - * src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/CommandLine.cpp, - src/CommandLine.h: - applied a few refactorings to the command-line parser - -2013-02-07 Martin Gieseking - - * doc/dvisvgm.txt.in, src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, - src/CommandLine.cpp, src/CommandLine.h, src/dvisvgm.cpp, src/options.xml: - added optional parameter to option --help to specify output format - -2013-02-06 Martin Gieseking - - * doc/dvisvgm.txt.in, src/BoundingBox.cpp, src/CommandLine.cpp, - src/CommandLine.h, src/EmSpecialHandler.cpp, src/GraphicPath.h, - src/Matrix.cpp, src/PsSpecialHandler.cpp, src/TpicSpecialHandler.cpp, - src/XMLString.cpp, src/XMLString.h, src/dvisvgm.cpp, src/options.xml: - added option --precision to set the number of decimal places applied to - attribute values - -2013-01-30 Martin Gieseking - - * src/CommandLine.cpp: - fixed alignment of --help text - -2013-01-22 Martin Gieseking - - * src/FileFinder.cpp, src/FontEngine.cpp, src/Makefile.am, - src/MiKTeXCom.cpp, src/MiKTeXCom.h: - moved MiKTeX COM code to separate class - -2013-01-21 Martin Gieseking - - * src/DVIReader.cpp, src/DVIToSVG.cpp, src/FileFinder.cpp, src/Font.cpp, - src/Font.h, src/FontEncoding.cpp, src/FontEngine.cpp, src/FontEngine.h, - src/FontManager.cpp, src/FontMap.cpp, src/FontMap.h, src/Makefile.am, - src/MapLine.cpp, src/MapLine.h, src/Subfont.cpp, src/Subfont.h, - tests/FontMapTest.cpp, tests/Makefile.am, tests/MapLineTest.cpp, - tests/SubfontTest.cpp, tests/create-makefile, tests/sample.sfd: - added support for subfont definitions and multi-font (.ttc) files - - * src/FontManager.cpp, src/FontMap.cpp, src/FontMap.h, src/MapLine.h: - replaced FontMap entries by pointers; initialize entries with MapLine - objects - - * src/CommandLine.cpp, src/Font.cpp, src/Font.h, src/FontEngine.cpp, - src/FontEngine.h, src/FontManager.cpp, src/FontMap.cpp, src/FontMap.h, - src/MapLine.cpp, src/MapLine.h, tests/MapLineTest.cpp: - implemented evaluation of font style options given in a mapline - - * configure.ac, src/Doxyfile: - set version to 1.1 - - * NEWS, README: - updated NEWS and README - -2013-01-20 Martin Gieseking - - * src/FontEngine.cpp, src/FontEngine.h: - removed unneeded code related to font sizes from class FontEngine - -2013-01-16 Martin Gieseking - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h, - src/FontMap.cpp, src/FontMap.h, src/dvisvgm.cpp, src/options.xml: - renamed option --map-file to --fontmap; allow multiple mapfiles and - modes - - * doc/dvisvgm.txt.in, src/DVIToSVG.cpp, src/FontMap.cpp, src/FontMap.h, - src/Makefile.am, src/PdfSpecialHandler.cpp, src/PdfSpecialHandler.h: - added PdfSpecialHandler to evaluate pdf:mapline and pdf:mapfile specials - -2013-01-10 Martin Gieseking - - * src/Font.cpp, src/FontEncoding.cpp: - fixed a string exception that occurred when an encoding file or an entry - in the encoding table is unavailable - -2013-01-06 Martin Gieseking - - * src/FileFinder.cpp, src/FileFinder.h, src/FontEncoding.cpp, - src/FontEncoding.h: - removed font encoding methods from FileFinder - -2013-01-02 Martin Gieseking - - * Makefile.am, README, configure.ac, doc/Makefile.am, doc/dvisvgm.txt.in, - src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h, - src/Bitmap.cpp, src/Bitmap.h, src/BoundingBox.cpp, src/BoundingBox.h, - src/CRC32.cpp, src/CRC32.h, src/Calculator.cpp, src/Calculator.h, - src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/Color.cpp, - src/Color.h, src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/CommandLine.cpp, src/CommandLine.h, src/DLLoader.cpp, src/DLLoader.h, - src/DVIActions.cpp, src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, - src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/Directory.cpp, src/Directory.h, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, src/FileFinder.cpp, - src/FileFinder.h, src/FilePath.cpp, src/FilePath.h, src/FileSystem.cpp, - src/FileSystem.h, src/Font.cpp, src/Font.h, src/FontCache.cpp, - src/FontCache.h, src/FontEncoding.cpp, src/FontEncoding.h, - src/FontEngine.cpp, src/FontEngine.h, src/FontManager.cpp, - src/FontManager.h, src/FontMap.cpp, src/FontMap.h, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.h, src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, - src/GFTracer.h, src/Ghostscript.cpp, src/Ghostscript.h, src/Glyph.h, - src/GlyphTracerMessages.h, src/GraphicPath.h, src/InputBuffer.cpp, - src/InputBuffer.h, src/InputReader.cpp, src/InputReader.h, - src/Length.cpp, src/Length.h, src/Makefile.am, src/Matrix.cpp, - src/Matrix.h, src/Message.cpp, src/Message.h, src/MessageException.h, - src/MetafontWrapper.cpp, src/MetafontWrapper.h, src/MiKTeXCom.cpp, - src/MiKTeXCom.h, src/PSInterpreter.cpp, src/PSInterpreter.h, - src/PageRanges.cpp, src/PageRanges.h, src/PageSize.cpp, src/PageSize.h, - src/Pair.h, src/Process.cpp, src/Process.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/SVGTree.cpp, src/SVGTree.h, - src/SignalHandler.cpp, src/SignalHandler.h, src/SpecialActions.h, - src/SpecialHandler.h, src/SpecialManager.cpp, src/SpecialManager.h, - src/StreamReader.cpp, src/StreamReader.h, src/StreamWriter.cpp, - src/StreamWriter.h, src/System.cpp, src/System.h, src/TFM.cpp, src/TFM.h, - src/Terminal.cpp, src/Terminal.h, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.h, src/VFActions.h, src/VFReader.cpp, - src/VFReader.h, src/VectorStream.h, src/XMLDocTypeNode.h, - src/XMLDocument.cpp, src/XMLDocument.h, src/XMLNode.cpp, src/XMLNode.h, - src/XMLString.cpp, src/XMLString.h, src/dvisvgm.cpp, src/macros.h, - src/options.dtd, src/options.xml, src/psdefs.psc, src/types.h, - tests/BoundingBoxTest.cpp, tests/CRC32Test.cpp, tests/CalculatorTest.cpp, - tests/ColorSpecialTest.cpp, tests/CommandLineTest.cpp, - tests/DirectoryTest.cpp, tests/FileFinderTest.cpp, - tests/FilePathTest.cpp, tests/FileSystemTest.cpp, - tests/FontManagerTest.cpp, tests/FontMapTest.cpp, tests/GFReaderTest.cpp, - tests/GraphicPathTest.cpp, tests/LengthTest.cpp, tests/Makefile.am, - tests/MatrixTest.cpp, tests/MessageExceptionTest.cpp, - tests/PSInterpreterTest.cpp, tests/PageRagesTest.cpp, - tests/PageSizeTest.cpp, tests/PairTest.cpp, - tests/SplittedCharInputBufferTest.cpp, tests/StreamInputBufferTest.cpp, - tests/StreamReaderTest.cpp, tests/StreamWriterTest.cpp, - tests/TypesTest.cpp, tests/VectorStreamTest.cpp, tests/create-makefile: - updated year in copyright statements to 2013 - -2012-12-23 Martin Gieseking - - * src/FontCache.cpp, src/PsSpecialHandler.cpp, src/TpicSpecialHandler.cpp: - check emptiness of containers with empty() instead of size() - - * src/FileFinder.cpp, src/MiKTeXCom.cpp, src/Process.cpp: - avoid creating copies of exception objects - - * src/CmdLineParserBase.h, src/Directory.cpp, src/GFReader.cpp, - src/PsSpecialHandler.cpp: - initialize uninitialized member variables - - * src/FileFinder.cpp, src/Message.cpp, src/dvisvgm.cpp: - reduced scope of some variables - -2012-12-12 Martin Gieseking - - * src/FontCache.cpp: - replaced 'char' with 'glyph' in font cache listing - - * src/SpecialManager.cpp: - clear all corresponding containers when calling - SpecialHandler::unregisterHandlers() - -2012-12-03 Martin Gieseking - - * src/Ghostscript.cpp: - added explicit cast to avoid signed/unsigned comparison warning - -2012-12-02 Martin Gieseking - - * src/FilePath.cpp, tests/FilePathTest.cpp: - strip drive letter if it's not set (Windows only) - - * tests/FileSystemTest.cpp, tests/GFReaderTest.cpp: - ensure that tests work properly on Windows - - * src/macros.h: - removed SHOW() from macros.h - - * doc/dvisvgm.txt.in, src/Ghostscript.cpp: - use gsdll64.dll for 64-bit builds; added info about gsdll64.dll to - manpage - -2012-11-24 Martin Gieseking - - * src/Message.cpp: - don't wrap message lines explicitly on Windows -* * * - -2012-11-23 Martin Gieseking - - * src/Ghostscript.cpp, src/Ghostscript.h, src/PSInterpreter.cpp, - src/PSInterpreter.h, src/dvisvgm.cpp: - print an error message if the execution of PS code fails - - * src/PSInterpreter.cpp, src/psdefs.psc: - print operand stack in case of a PS error - -2012-11-22 Martin Gieseking - - * src/Message.cpp: - handle wrapping of messages containing newlines correctly - -2012-11-21 Martin Gieseking - - * src/DLLoader.cpp, src/DLLoader.h, src/Ghostscript.cpp: - renamed DLLoader::loadFunction() to DLLoader::loadSymbol() - -2012-11-19 Martin Gieseking - - * src/FontEngine.cpp, src/FontEngine.h: - renamed FontEngine::fname to FontEngine::_fontname - - * src/Font.cpp, src/Font.h, src/FontManager.cpp: - print warning if font checksums don't match - -2012-11-16 Martin Gieseking - - * src/Directory.h: - undefine macro max() to avoid compilation problems on Windows - -2012-11-15 Martin Gieseking - - * src/FileFinder.cpp, src/FileFinder.h, src/FontMap.cpp, src/FontMap.h, - tests/FontMapTest.cpp: - made class FontMap a singleton - - * src/FileFinder.cpp, src/FileFinder.h, src/dvisvgm.cpp: - moved initialization of FontMap from FileFinder to dvisvgm.cpp - - * src/Makefile.am, src/MapLine.cpp, src/MapLine.h, tests/Makefile.am, - tests/MapLineTest.cpp: - added new class MapLine to parse and evaluate a single line of a map - file - - * src/FileFinder.cpp, src/FontManager.cpp, src/FontMap.cpp, src/FontMap.h, - tests/FontMapTest.cpp: - adapted code to use new MapLine class; introduced support of map line - modes - -2012-11-14 Martin Gieseking - - * src/FileFinder.cpp: - initialize Ghostscript when compiled for TeX Live Win32 (patch by Peter - Breitenlohner) - - * src/FileFinder.cpp, src/FileFinder.h, src/dvisvgm.cpp, - tests/FileFinderTest.cpp, tests/FontManagerTest.cpp: - initialize second parameter of kpse_set_program_name() correctly - - * src/DVIToSVG.cpp: - prevent compilation error when using a C++11 compiler (patch by Peter - Breitenlohner) - -2012-11-11 Martin Gieseking - - * src/InputBuffer.cpp, src/InputBuffer.h, src/InputReader.cpp, - src/InputReader.h, src/PsSpecialHandler.cpp, - tests/StreamInputBufferTest.cpp: - some refactorings of class InputReader; added InputReader::find() - -2012-10-24 Martin Gieseking - - * src/DVIToSVG.cpp, src/DVIToSVG.h, src/dvisvgm.cpp: - don't show warning about disabled PS support in list of special handlers - -2012-09-27 Martin Gieseking - - * configure.ac, src/Doxyfile: - set version to 1.0.12 - - * NEWS: - updated NEWS - - * src/options.ggo: - removed deprecated file options.ggo - -2012-09-20 Martin Gieseking - - * src/DVIToSVG.cpp: - show warning if processing of PS specials is disabled - - * src/PsSpecialHandler.cpp, src/PsSpecialHandler.h: - removed Ghostscript info from ps entry in list of special handlers - -2012-09-19 Martin Gieseking - - * src/psdefs.psc: - ignore dvips bop operators that might be present in PS specials - -2012-09-17 Martin Gieseking - - * src/StreamReader.cpp: - fixed reading invalid number of string characters - -2012-04-17 Martin Gieseking - - * doc/Makefile.am: - keep manpage when calling 'make clean' - -2012-04-04 Martin Gieseking - - * src/DVIToSVGActions.cpp, src/SVGTree.cpp, src/SVGTree.h, - tests/frktest-nf-cmp.svg, tests/frktest-wf-cmp.svg, - tests/sample-nf-cmp.svg, tests/sample-wf-cmp.svg: - scale point units in the SVG files to big points (bp) - -2012-04-02 Martin Gieseking - - * src/Matrix.cpp, src/Matrix.h, tests/MatrixTest.cpp: - added Matrix::invert() and det() - -2012-03-29 Martin Gieseking - - * src/Matrix.cpp, src/Matrix.h, tests/MatrixTest.cpp: - added start index parameter to Matrix::set(vector<>) - -2012-03-21 Martin Gieseking - - * src/psdefs.psc: - evaluate PS operators rectclip, rectfill, and rectstroke - -2012-03-09 Martin Gieseking - - * src/Ghostscript.cpp, src/Ghostscript.h: - added optional parameter to Ghostscript::revision() to retrieve the - revision number only - - * src/dvisvgm.cpp: - added Ghostscript to library list printed by --version=yes - - * NEWS: - updated NEWS - -2012-03-08 Martin Gieseking - - * configure.ac, src/Doxyfile: - set version to 1.0.11 - -2012-03-07 Martin Gieseking - - * src/DVIToSVGActions.cpp: - correct location of a rule's bounding box (lp bug #948713) - -2012-02-24 Martin Gieseking - - * doc/dvisvgm.txt.in: - fixed a couple of mistakes and formatting flaws in the manpage - -2012-02-17 Martin Gieseking - - * README: - updated information about bug reporting - -2012-01-26 Martin Gieseking - - * src/CmdLineParserBase.h, src/DVIActions.h, src/DVIReader.h, - src/DVIToSVGActions.h, src/FontEngine.h, src/FontManager.h, - src/MetafontWrapper.h, src/SVGTree.h, src/SpecialActions.h, - src/SpecialHandler.h, src/SpecialManager.h, src/TFM.h, src/VFReader.h: - adapt forward declarations of classes and structs to their corresponding - definition (SF bug #3480013) - -2012-01-16 Martin Gieseking - - * src/miktex-core.def, src/miktex-kps.def, src/miktex-kps.h: - removed outdated files for old MiKTeX bindings - -2012-01-09 Martin Gieseking - - * src/InputReader.cpp, tests/StreamInputBufferTest.cpp: - fixed parsing of negative floating point numbers starting with '-0.' (SF - bug #3471097) - - * src/TpicSpecialHandler.cpp: - added some more comments to methods of class TpicSpecialHandler - -2012-01-06 Martin Gieseking - - * Makefile.am, README, configure.ac, doc/Makefile.am, doc/dvisvgm.txt.in, - src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h, - src/Bitmap.cpp, src/Bitmap.h, src/BoundingBox.cpp, src/BoundingBox.h, - src/CRC32.cpp, src/CRC32.h, src/Calculator.cpp, src/Calculator.h, - src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/Color.cpp, - src/Color.h, src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/CommandLine.cpp, src/CommandLine.h, src/DLLoader.cpp, src/DLLoader.h, - src/DVIActions.cpp, src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, - src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/Directory.cpp, src/Directory.h, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, src/FileFinder.cpp, - src/FileFinder.h, src/FilePath.cpp, src/FilePath.h, src/FileSystem.cpp, - src/FileSystem.h, src/Font.cpp, src/Font.h, src/FontCache.cpp, - src/FontCache.h, src/FontEncoding.cpp, src/FontEncoding.h, - src/FontEngine.cpp, src/FontEngine.h, src/FontManager.cpp, - src/FontManager.h, src/FontMap.cpp, src/FontMap.h, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.h, src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, - src/GFTracer.h, src/Ghostscript.cpp, src/Ghostscript.h, src/Glyph.h, - src/GlyphTracerMessages.h, src/GraphicPath.h, src/InputBuffer.cpp, - src/InputBuffer.h, src/InputReader.cpp, src/InputReader.h, - src/Length.cpp, src/Length.h, src/Makefile.am, src/Matrix.cpp, - src/Matrix.h, src/Message.cpp, src/Message.h, src/MessageException.h, - src/MetafontWrapper.cpp, src/MetafontWrapper.h, src/PSInterpreter.cpp, - src/PSInterpreter.h, src/PageRanges.cpp, src/PageRanges.h, - src/PageSize.cpp, src/PageSize.h, src/Pair.h, src/Process.cpp, - src/Process.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, - src/SVGTree.cpp, src/SVGTree.h, src/SignalHandler.cpp, - src/SignalHandler.h, src/SpecialActions.h, src/SpecialHandler.h, - src/SpecialManager.cpp, src/SpecialManager.h, src/StreamReader.cpp, - src/StreamReader.h, src/StreamWriter.cpp, src/StreamWriter.h, - src/System.cpp, src/System.h, src/TFM.cpp, src/TFM.h, src/Terminal.cpp, - src/Terminal.h, src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h, - src/VFActions.h, src/VFReader.cpp, src/VFReader.h, src/VectorStream.h, - src/XMLDocTypeNode.h, src/XMLDocument.cpp, src/XMLDocument.h, - src/XMLNode.cpp, src/XMLNode.h, src/XMLString.cpp, src/XMLString.h, - src/dvisvgm.cpp, src/macros.h, src/options.dtd, src/options.xml, - src/psdefs.psc, src/types.h, tests/BoundingBoxTest.cpp, - tests/CRC32Test.cpp, tests/CalculatorTest.cpp, - tests/ColorSpecialTest.cpp, tests/CommandLineTest.cpp, - tests/DirectoryTest.cpp, tests/FileFinderTest.cpp, - tests/FilePathTest.cpp, tests/FileSystemTest.cpp, - tests/FontManagerTest.cpp, tests/FontMapTest.cpp, tests/GFReaderTest.cpp, - tests/GraphicPathTest.cpp, tests/LengthTest.cpp, tests/Makefile.am, - tests/MatrixTest.cpp, tests/MessageExceptionTest.cpp, - tests/PSInterpreterTest.cpp, tests/PageRagesTest.cpp, - tests/PageSizeTest.cpp, tests/PairTest.cpp, - tests/SplittedCharInputBufferTest.cpp, tests/StreamInputBufferTest.cpp, - tests/StreamReaderTest.cpp, tests/StreamWriterTest.cpp, - tests/TypesTest.cpp, tests/VectorStreamTest.cpp, tests/check-conv, - tests/create-makefile: - updated year in copyright statements - -2011-12-18 Martin Gieseking - - * tests/Makefile.am, tests/create-makefile: - link tests with -lpthread (required by gtest on Ubuntu) - - * configure.ac, src/Doxyfile: - set version to 1.0.10 - - * NEWS: - updated NEWS - -2011-12-17 Martin Gieseking - - * src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, src/GlyphTracerMessages.h, - src/Message.cpp, src/Message.h, src/MetafontWrapper.cpp, - src/Terminal.cpp, src/Terminal.h, src/dvisvgm.cpp: - allow users to customize the message colors - - * doc/dvisvgm.txt.in: - added documentation on environment variable DVISVGM_COLORS to manpage - -2011-11-22 Martin Gieseking - - * src/GraphicPath.h: - added some more comments to the methods of GraphicPath - -2011-11-18 Martin Gieseking - - * configure.ac: - move linker flag -lfreetype from LDFLAGS to LIBS to avoid linking - problems - -2011-10-28 Martin Gieseking - - * src/FontMap.cpp: - removed unused variable eval_prefix in helper function read_entry() - - * src/SVGTree.cpp: - avoid possible collisions of glyph IDs - -2011-10-13 Martin Gieseking - - * configure.ac, src/Doxyfile: - set version to 1.0.9 - - * NEWS: - updated NEWS - -2011-10-09 Martin Gieseking - - * src/FilePath.cpp: - added some missing comments to methods of class FilePath - - * src/Directory.h: - dropped method Directory::getEntry() - -2011-10-07 Martin Gieseking - - * src/Process.cpp: - added missing include to Process.cpp - - * src/Process.cpp: - exclude definition of split_paramstr() from Windows builds as it's not - used there - -2011-10-03 Martin Gieseking - - * doc/Makefile.am: - add metadata/pdfmarks to pdf version of manpage - -2011-09-06 Martin Gieseking - - * potracelib/auxiliary.h, potracelib/bitmap.h, potracelib/curve.c, - potracelib/curve.h, potracelib/decompose.c, potracelib/decompose.h, - potracelib/lists.h, potracelib/potracelib.c, potracelib/potracelib.h, - potracelib/progress.h, potracelib/trace.c, potracelib/trace.h: - updated bundled potrace library to version 1.10 - -2011-06-04 Martin Gieseking - - * configure.ac, src/Doxyfile: - set version to 1.0.9dev - - * src/FileFinder.cpp, src/MetafontWrapper.cpp: - fixed segfault occured in TeX Live Win32 caused by mf.exe being - unavailable (SF bug #3308473) - -2011-06-01 Martin Gieseking - - * configure.ac: - added AC_LANG_SOURCE to avoid autoconf warnings - -2011-05-31 Martin Gieseking - - * NEWS, configure.ac, src/Doxyfile: - set version to 1.0.8; updated NEWS - - * src/PsSpecialHandler.cpp: - explicitly cast double to int in call of ClippingStack::dup()/pop() - -2011-05-27 Martin Gieseking - - * tests/check-conv, tests/sample-nf-cmp.svg, tests/sample-wf-cmp.svg: - updated conversion tests - -2011-05-23 Martin Gieseking - - * src/Font.cpp, src/Makefile.am, src/MetafontWrapper.cpp, - src/MetafontWrapper.h, src/Process.cpp, src/Process.h, - src/SignalHandler.cpp: - replaced call of system() with Process::run() and kill child process if - necessary - -2011-05-22 Martin Gieseking - - * src/FileFinder.cpp: - MiKTeX: maketfm and makemf have been renamed to miktex-maketfm and - miktex-makemf - - * src/MetafontWrapper.cpp: - dropped '--halt-on-error' in Metafont call to process buggy mf files - completely - -2011-05-19 Martin Gieseking - - * src/DLLoader.h: - added #undef NOMINMAX before (re)defining it - -2011-05-12 Martin Gieseking - - * src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/psdefs.psc, tests/PSInterpreterTest.cpp: - PS handler: implemented evaluation of save, restore, and grestoreall - -2011-05-07 Martin Gieseking - - * configure.ac, src/Doxyfile: - set version to 1.0.8dev - - * src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVGActions.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/SpecialActions.h: - fixed interaction between PS and DVI drawing position - - * src/PsSpecialHandler.cpp: - add definitions in literal PS headers to dictionary TeXDict - - * src/PsSpecialHandler.cpp: - fixed potential segfault caused by invisible zero-length paths - -2011-05-06 Martin Gieseking - - * src/DVIToSVGActions.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, - src/psdefs.psc: - PS handler: added missing unit conversions (pt vs. bp) - - * NEWS, README, configure.ac, src/Doxyfile: - set version to 1.0.7; updated NEWS and README - -2011-05-05 Martin Gieseking - - * src/PSInterpreter.cpp, src/PsSpecialHandler.cpp: - separate PS snippets by newline characters to leave preceding comments - - * src/PsSpecialHandler.h: - corrected scaling formula applied to PS line properties - - * doc/dvisvgm.txt.in: - added info about dvips rounding issues to manpage - -2011-05-04 Martin Gieseking - - * src/PsSpecialHandler.cpp: - don't call Ghostscript::revision() in initialization of static variable - - * src/Ghostscript.cpp, src/Ghostscript.h, src/PSInterpreter.cpp, - src/PSInterpreter.h: - avoid 'this' pointer in initialazation list of - PSInterpreter::PSInterpreter() - - * src/Length.h: - undefine macro IN - -2011-05-03 Martin Gieseking - - * configure.ac, src/Doxyfile: - set version to 1.0.7dev - - * src/psdefs.psc: - catch PS error /nocurrentpoint in operator 'setpos' properly - - * src/psdefs.psc: - PS handler: recognize save/restore operators - - * src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, - src/PSInterpreter.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, - src/SpecialActions.h, src/SpecialHandler.h, src/SpecialManager.cpp, - src/SpecialManager.h, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.h: - replaced methods for DVI position alterations with translation semantics - - * src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/macros.h, src/psdefs.psc, - tests/PSInterpreterTest.cpp: - improved handling of pure PostScript specials - - * src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h: - tpic special 'ip' must not draw the outline of the polygon but only fill - its interior - - * src/DLLoader.cpp, src/DLLoader.h: - don't define min/max macros in windows.h - -2011-04-30 Martin Gieseking - - * src/SpecialManager.cpp: - register special prefix ps:: properly - -2011-04-18 Martin Gieseking - - * src/FileFinder.cpp, src/FileFinder.h, src/dvisvgm.cpp, - tests/FileFinderTest.cpp: - dropped class FileFinder::Impl and simplified FileFinder interface - - * src/DVIReader.cpp, src/Font.cpp, src/GFReader.cpp, src/Makefile.am, - src/MetafontWrapper.cpp, src/PSInterpreter.cpp, src/SignalHandler.cpp, - src/SignalHandler.h, src/TFM.cpp, src/dvisvgm.cpp: - added class SignalHandler for CTRL-C signals - - * NEWS, README, configure.ac, src/Doxyfile: - set version to 1.0.6; updated NEWS and README - -2011-04-14 Martin Gieseking - - * src/DVIToSVGActions.cpp, src/MessageException.h, src/dvisvgm.cpp, - tests/Makefile.am, tests/MessageExceptionTest.cpp: - derived MessageException from std::exception and replaced getMessage() - with what() - -2011-04-13 Martin Gieseking - - * src/XMLNode.cpp, src/XMLNode.h: - prepended member variables of the XMLNode classes with underscore - -2011-03-15 Martin Gieseking - - * src/DVIReader.cpp: - throw DVI exception if set_char/put_char is executed without preceding - font selection - -2011-03-04 Martin Gieseking - - * configure.ac, src/Doxyfile: - set version to 1.0.6dev - - * potracelib/potracelib.c, potracelib/potracelib.h: - changed return type of potrace_version() to 'const char *' in order to - avoid compiler warning - -2011-03-01 Martin Gieseking - - * NEWS, configure.ac, src/Doxyfile: - set version to 1.0.5, updated NEWS - -2011-02-28 Martin Gieseking - - * doc/dvisvgm.txt.in, src/FontCache.cpp, src/FontCache.h, src/dvisvgm.cpp: - added code to remove outdated and corrupted cache files - - * src/Ghostscript.cpp: - fixed formatting of GS version number - -2011-02-21 Martin Gieseking - - * configure.ac, src/Doxyfile: - set version to 1.0.5dev - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h, - src/GraphicPath.h, src/SVGTree.cpp, src/SVGTree.h, src/dvisvgm.cpp, - src/options.xml, tests/CommandLineTest.cpp: - added option to replace use elements with paths - - * src/SVGTree.cpp: - added missing unit in height/width attribute of svg root element - - * tests/frktest-nf-cmp.svg, tests/frktest-wf-cmp.svg, - tests/sample-nf-cmp.svg, tests/sample-wf-cmp.svg: - updated conversion test files - -2011-02-16 Martin Gieseking - - * src/InputBuffer.h: - reference to scanned string in StringInputBuffer is constant now - -2011-02-10 Martin Gieseking - - * src/FileSystem.cpp, src/FileSystem.h, src/dvisvgm.cpp, - tests/FileSystemTest.cpp: - merged FileSystem::move() into FileSystem::copy() - - * src/CRC32.cpp, src/CRC32.h, src/Makefile.am, tests/CRC32Test.cpp, - tests/Makefile.am: - added class CRC32 and corresponding tests - - * src/StreamReader.cpp, src/StreamReader.h, src/StreamWriter.cpp, - src/StreamWriter.h, tests/Makefile.am, tests/StreamReaderTest.cpp, - tests/StreamWriterTest.cpp: - added CRC32 computation methods to StreamReader and StreamWriter - - * src/FontCache.cpp, src/FontCache.h: - added CRC32 checks to cache files - -2011-01-31 Martin Gieseking - - * src/CmdLineParserBase.cpp: - print character instead of ascii value in message of command-line parser - -2011-01-30 Martin Gieseking - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h, - src/FileFinder.cpp, src/FileFinder.h, src/FontEngine.cpp, - src/FontEngine.h, src/dvisvgm.cpp, src/options.xml: - added optional argument to --version - -2011-01-28 Martin Gieseking - - * potracelib/auxiliary.h, potracelib/bitmap.h, potracelib/curve.c, - potracelib/curve.h, potracelib/decompose.c, potracelib/decompose.h, - potracelib/lists.h, potracelib/potracelib.c, potracelib/potracelib.h, - potracelib/progress.h, potracelib/trace.c, potracelib/trace.h: - updated bundled potrace library to version 1.9 - -2011-01-17 Martin Gieseking - - * src/FileSystem.cpp, src/FileSystem.h, tests/FileSystemTest.cpp, - tests/Makefile.am: - added FileSystem::copy and FileSystem::move; added FileSystemTest - - * doc/dvisvgm.txt.in, src/dvisvgm.cpp: - moved cache files to subfolder ($HOME/.dvisvgm/cache) - -2011-01-04 Martin Gieseking - - * Makefile.am, README, configure.ac, doc/Makefile.am, doc/dvisvgm.txt.in, - src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h, - src/Bitmap.cpp, src/Bitmap.h, src/BoundingBox.cpp, src/BoundingBox.h, - src/Calculator.cpp, src/Calculator.h, src/CmdLineParserBase.cpp, - src/CmdLineParserBase.h, src/Color.cpp, src/Color.h, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/CommandLine.cpp, src/CommandLine.h, src/DLLoader.cpp, src/DLLoader.h, - src/DVIActions.cpp, src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, - src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/Directory.cpp, src/Directory.h, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, src/FileFinder.cpp, - src/FileFinder.h, src/FilePath.cpp, src/FilePath.h, src/FileSystem.cpp, - src/FileSystem.h, src/Font.cpp, src/Font.h, src/FontCache.cpp, - src/FontCache.h, src/FontEncoding.cpp, src/FontEncoding.h, - src/FontEngine.cpp, src/FontEngine.h, src/FontManager.cpp, - src/FontManager.h, src/FontMap.cpp, src/FontMap.h, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.h, src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, - src/GFTracer.h, src/Ghostscript.cpp, src/Ghostscript.h, src/Glyph.h, - src/GlyphTracerMessages.h, src/GraphicPath.h, src/InputBuffer.cpp, - src/InputBuffer.h, src/InputReader.cpp, src/InputReader.h, - src/Length.cpp, src/Length.h, src/Makefile.am, src/Matrix.cpp, - src/Matrix.h, src/Message.cpp, src/Message.h, src/MessageException.h, - src/MetafontWrapper.cpp, src/MetafontWrapper.h, src/PSInterpreter.cpp, - src/PSInterpreter.h, src/PageRanges.cpp, src/PageRanges.h, - src/PageSize.cpp, src/PageSize.h, src/Pair.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/SVGTree.cpp, src/SVGTree.h, - src/SpecialActions.h, src/SpecialHandler.h, src/SpecialManager.cpp, - src/SpecialManager.h, src/StreamReader.cpp, src/StreamReader.h, - src/StreamWriter.cpp, src/StreamWriter.h, src/System.cpp, src/System.h, - src/TFM.cpp, src/TFM.h, src/Terminal.cpp, src/Terminal.h, - src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h, src/VFActions.h, - src/VFReader.cpp, src/VFReader.h, src/VectorStream.h, - src/XMLDocTypeNode.h, src/XMLDocument.cpp, src/XMLDocument.h, - src/XMLNode.cpp, src/XMLNode.h, src/XMLString.cpp, src/XMLString.h, - src/dvisvgm.cpp, src/macros.h, src/options.dtd, src/options.xml, - src/psdefs.psc, src/types.h, tests/BoundingBoxTest.cpp, - tests/CalculatorTest.cpp, tests/ColorSpecialTest.cpp, - tests/CommandLineTest.cpp, tests/DirectoryTest.cpp, - tests/FileFinderTest.cpp, tests/FilePathTest.cpp, - tests/FontManagerTest.cpp, tests/FontMapTest.cpp, tests/GFReaderTest.cpp, - tests/GraphicPathTest.cpp, tests/LengthTest.cpp, tests/Makefile.am, - tests/MatrixTest.cpp, tests/PageRagesTest.cpp, tests/PageSizeTest.cpp, - tests/PairTest.cpp, tests/SplittedCharInputBufferTest.cpp, - tests/StreamInputBufferTest.cpp, tests/TypesTest.cpp, - tests/VectorStreamTest.cpp, tests/check-conv, tests/create-makefile: - updated year in copyright info - - * tests/Makefile.am, tests/PSInterpreterTest.cpp: - added basic tests for class PSInterpreter - -2010-12-18 Martin Gieseking - - * src/FileFinder.cpp: - updated to MiKTeX 2.8 SDK - - * src/PsSpecialHandler.cpp: - fixed scaling issue in PS positioning - - * src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/psdefs.psc: - PS handler: added missing scaling of linewidths and dash distances - - * NEWS, configure.ac, src/Doxyfile: - set version to 1.0.4; updated NEWS - - * doc/dvisvgm.txt.in: - minor update to the manpage - -2010-08-18 Martin Gieseking - - * src/FontEngine.cpp: - fixed FreeType version check (patch by Paul Vojta) - -2010-08-11 Martin Gieseking - - * tests/Makefile.am, tests/PairTest.cpp: - added PairTest - -2010-08-06 Martin Gieseking - - * configure.ac, src/Doxyfile: - set version to 1.0.3 - -2010-08-05 Martin Gieseking - - * NEWS, doc/dvisvgm.txt.in: - updated manpage and NEWS - -2010-08-04 Martin Gieseking - - * src/BoundingBox.cpp, src/BoundingBox.h, src/Matrix.cpp, src/Matrix.h, - src/PsSpecialHandler.cpp: - revamped PsSpecialHandler::psfile() to fix a transformation issue (SF - bug #3037372) - -2010-07-28 Martin Gieseking - - * src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp: - added check of DVI format version - -2010-07-26 Martin Gieseking - - * src/PsSpecialHandler.cpp, src/PsSpecialHandler.h: - restore transformation matrix after execution of psfile - -2010-07-13 Martin Gieseking - - * configure.ac, src/Doxyfile: - set version to 1.0.3dev - - * src/InputBuffer.h: - added missing namespace prefix - - * src/Terminal.cpp: - replaced \e with \x1B - - * src/GraphicPath.h, src/PsSpecialHandler.h: - fixed missing initialization of GraphicPath iterator - - * src/Directory.cpp, src/Directory.h, src/GFReader.cpp, src/GFReader.h: - added leading underscore to variables of GFReader - -2010-06-22 Martin Gieseking - - * src/gzstream.cpp, src/gzstream.h: - fixed class variable issue introduced by previous AIX patch - - * NEWS, configure.ac, src/Doxyfile: - set version to 1.0.2 - -2010-06-18 Martin Gieseking - - * src/Bitmap.cpp, tests/DirectoryTest.cpp, tests/GFReaderTest.cpp, - tests/Makefile.am, tests/cmr10.600gf, tests/create-makefile: - added GFReaderTest; updated DirectoryTest - -2010-06-17 Martin Gieseking - - * src/Bitmap.cpp, src/Calculator.cpp, src/CmdLineParserBase.cpp, - src/Color.cpp, src/ColorSpecialHandler.cpp, src/DVIReader.cpp, - src/DVIReader.h, src/DVIToSVGActions.cpp, src/DvisvgmSpecialHandler.cpp, - src/EmSpecialHandler.cpp, src/FontCache.cpp, src/FontEncoding.cpp, - src/GFGlyphTracer.cpp, src/Pair.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/TFM.cpp, src/TFM.h: - fixed some type conversion warnings - - * src/Message.cpp, src/Message.h: - renamed MessageStream::putchar() to MessageStream::putChar() to avoid - name clashes - - * src/types.h, tests/Makefile.am, tests/TypesTest.cpp: - added TypesTest - -2010-06-16 Martin Gieseking - - * potracelib/curve.c, potracelib/curve.h, potracelib/decompose.c: - renamed internal potrace functions path_new() and path_free() to prevent - linker conflicts on OS X - -2010-06-14 Martin Gieseking - - * configure.ac, src/Doxyfile: - set version to 1.0.2dev - - * configure.ac, src/CmdLineParserBase.h, src/FileFinder.h, - src/FontCache.cpp, src/FontCache.h, src/FontEncoding.cpp, - src/FontEngine.cpp, src/GFGlyphTracer.h, src/MetafontWrapper.cpp, - src/gzstream.cpp: - applied latest TL patches from Peter Breitenlohner and Karl Berry - -2010-06-11 Martin Gieseking - - * src/Message.cpp: - suppress ANSI color code by default - - * NEWS, configure.ac, src/Doxyfile: - set version to 1.0.1 - -2010-06-09 Martin Gieseking - - * configure.ac, src/Doxyfile: - set version to 1.0.1dev - - * src/psdefs.psc: - fixed recursion issue in PS operator charpath - -2010-06-08 Martin Gieseking - - * configure.ac, doc/Makefile.am, src/Makefile.am: - cleaned up configuration scripts - - * configure.ac, src/Doxyfile: - set version to 1.0dev - - * doc/dvisvgm.txt.in, src/BoundingBox.cpp, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/DvisvgmSpecialHandler.cpp, - src/EmSpecialHandler.cpp, src/PsSpecialHandler.cpp, src/SpecialActions.h, - src/SpecialManager.cpp, src/TpicSpecialHandler.cpp: - added special for creating local bounding boxes - - * src/FilePath.cpp, src/FilePath.h, src/FileSystem.cpp, src/FileSystem.h, - src/Makefile.am, tests/FilePathTest.cpp, tests/Makefile.am: - added class FilePath - - * src/InputBuffer.h, tests/ColorSpecialTest.cpp, - tests/StreamInputBufferTest.cpp: - added InputBuffer::invalidate() - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h, - src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Makefile.am, - src/PageRanges.cpp, src/PageRanges.h, src/StreamCounter.h, - src/dvisvgm.cpp, src/options.xml, tests/BoundingBoxTest.cpp, - tests/CommandLineTest.cpp, tests/Makefile.am, tests/PageRagesTest.cpp, - tests/StreamCounterTest.cpp: - added conversion of multiple pages - - * configure.ac, doc/Makefile.am, doc/dvisvgm.txt.in, src/CommandLine.cpp, - src/CommandLine.h, src/DVIActions.h, src/DVIToSVG.cpp, src/GFTracer.cpp, - src/GlyphTracerMessages.h, src/Makefile.am, src/Message.cpp, - src/Message.h, src/MetafontWrapper.cpp, src/Terminal.cpp, src/Terminal.h, - src/dvisvgm.cpp, src/options.xml: - improved output of messages including optional colorization - - * src/Font.cpp: - print error message if Metafont failed - - * src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/psdefs.psc: - evaluate Ghostscript operator .setopacityalpha - - * src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h: - added method to compute length of DVI command - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h, - src/DVIActions.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, - src/Makefile.am, src/Message.cpp, src/Message.h, src/PSInterpreter.cpp, - src/PSInterpreter.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, - src/SpecialActions.h, src/System.cpp, src/System.h, src/dvisvgm.cpp, - src/options.xml: - added percentage-based progress indicator - - * doc/Makefile.am, doc/dvisvgm.txt.in: - documented option --help and --version in manpage - - * NEWS, configure.ac, src/Doxyfile: - set version to 1.0 - - * src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h: - fixed PS destructor issue (SF bug #3013392) - -2010-05-09 Martin Gieseking - - * configure.ac: - fixed whitespace issue in CPPFLAGS and LDFLAGS - -2010-05-04 Martin Gieseking - - * configure.ac: - fixed kpathsea check; use pkg-config to check freetype availability - - * tests/FileFinderTest.cpp, tests/FontManagerTest.cpp, tests/check-conv: - fixed segfaults in tests - -2010-04-23 Martin Gieseking - - * NEWS, configure.ac, src/Doxyfile: - set version to 0.9.1 - -2010-04-22 Martin Gieseking - - * src/CommandLine.cpp, src/options.xml: - output of option --help: replaced '(default: FOO)' by '[FOO]' - - * src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, - src/SVGTree.cpp, src/SVGTree.h, src/XMLNode.cpp, src/XMLNode.h: - ignore unused fonts in CSS styles list - - * src/SVGTree.cpp: - fixed broken validity when using SVG fonts - - * src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, - src/DVIToSVG.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h: - print page count and page number of DVI page being processed - - * tests/check-conv, tests/frktest-wf-cmp.svg, tests/sample-wf-cmp.svg: - adapted conversion tests to new output format - -2010-04-20 Martin Gieseking - - * src/FontEncoding.cpp: - fixed memory bug in FontEncoding::encoding() - -2010-04-11 Martin Gieseking - - * configure.ac, src/Doxyfile: - set version to 0.9.1dev - - * src/DVIToSVGActions.cpp: - replaced wrong font pointer that could lead to segfaults - -2010-03-24 Martin Gieseking - - * src/Font.cpp, src/Font.h, src/dvisvgm.cpp: - moved some methods from PhysicalFontImpl to PysicalFont - - * doc/dvisvgm.txt.in, src/BoundingBox.cpp, src/BoundingBox.h, - src/CommandLine.cpp, src/CommandLine.h, src/DVIToSVG.cpp, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Font.cpp, src/Font.h, - src/GlyphTracerMessages.h, src/Makefile.am, src/dvisvgm.cpp, - src/options.xml: - added command-line option --exact - - * src/FontCache.cpp, src/Makefile.am, src/StreamWriter.cpp, - src/StreamWriter.h, src/TFM.cpp: - replaced local stream IO functions by StreamReader/StreamWriter methods - - * src/CmdLineParserBase.cpp, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, - src/FontEngine.cpp, src/GlyphTracerMessages.h, src/Message.cpp, - src/Message.h, src/MetafontWrapper.cpp, src/dvisvgm.cpp: - added class MessageStream, updated message output - - * src/FontCache.cpp, src/GFGlyphTracer.cpp, src/GFReader.cpp: - variable _fontname is now correctly set in class FontCache - - * NEWS, configure.ac, src/Doxyfile: - set version to 0.9 - - * tests/frktest-nf-cmp.svg, tests/frktest-wf-cmp.svg, - tests/sample-nf-cmp.svg, tests/sample-wf-cmp.svg: - updated conversion tests - -2010-03-18 Martin Gieseking - - * src/DVIToSVG.cpp, src/SVGTree.cpp: - moved creation of SVG 'use' elements from class DVIToSVG to class - SVGTree - - * src/DVIToSVG.cpp, src/Font.cpp, src/Font.h, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.h, src/SVGTree.cpp, src/SVGTree.h: - added class GFGlyphTracer::Callback providing an interface used to print - status information about the tracer - - * src/CmdLineParserBase.cpp, src/CmdLineParserBase.h: - added evaluation of boolean and char arguments to the command-line - parser - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h, - src/DVIToSVG.cpp, src/DVIToSVG.h, src/Font.cpp, src/Font.h, - src/dvisvgm.cpp, src/options.xml, tests/CommandLineTest.cpp: - reactivated option --trace-all, and added optional argument 'retrace' to - it - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h, - src/Font.cpp, src/Font.h, src/dvisvgm.cpp, src/options.xml: - added command-line option --keep - -2010-03-17 Martin Gieseking - - * src/GFReader.cpp, src/GFReader.h: - replaced GFReader messages by exceptions - - * src/CharmapTranslator.cpp, src/CharmapTranslator.h, src/DVIToSVG.cpp, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Font.cpp, src/Font.h, - src/Makefile.am, src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, src/SVGTree.cpp, - src/SVGTree.h: - removed class CharmapTranslator - - * src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, - src/DVIToSVGActions.cpp, src/FontManager.cpp, src/FontManager.h, - src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, src/SVGTree.cpp, - src/SVGTree.h, src/VFReader.h, tests/FontManagerTest.cpp: - made FontManager a singleton - - * src/FontCache.cpp, src/FontCache.h: - added method FontCache::write(const char *dir) that updates the cache - file of the current font - - * src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp, src/Font.cpp, - src/Font.h, src/FontEmitter.h, src/GFGlyphTracer.h, src/Makefile.am, - src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, src/SVGTree.cpp, - src/SVGTree.h, src/dvisvgm.cpp, tests/Makefile.am, tests/check-conv, - tests/create-makefile: - removed emitter classes; incorporated their functionality into SVGTree - and PhysicalFontImpl - - * src/BoundingBox.cpp, src/Calculator.cpp, src/Matrix.cpp, - src/PSInterpreter.cpp, src/PSInterpreter.h: - fixed a couple of comments - -2010-02-26 Martin Gieseking - - * src/Font.cpp, src/FontCache.cpp, src/FontCache.h, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.h, src/GFReader.cpp, src/GFReader.h, src/GFTracer.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h: - refactorings of GF tracer class; removed transferGlyph() - -2010-02-21 Martin Gieseking - - * src/Font.h, src/FontEncoding.cpp, src/FontEncoding.h, - src/FontManager.cpp, src/FontManager.h, src/SVGFontEmitter.cpp: - moved method encoding() from class FontManager to class FontEncoding - - * src/CharmapTranslator.cpp, src/CharmapTranslator.h, src/Font.cpp, - src/Font.h, src/FontCache.cpp, src/FontCache.h, src/FontEngine.cpp, - src/FontEngine.h, src/Glyph.cpp, src/Glyph.h, src/Makefile.am, - src/SVGFontEmitter.cpp, src/SVGFontEmitter.h: - removed class Glyph and incorporated its functionality into Font class - -2010-02-05 Martin Gieseking - - * configure.ac, src/Doxyfile: - set version to 0.8.9dev - - * src/psdefs.psc: - removed PS error handler nocurrentpoint - - * src/DVIToSVG.cpp: - added evaluation of literal PS headers to PSHeaderActions - -2010-02-02 Martin Gieseking - - * NEWS, configure.ac, src/Doxyfile: - version updated to 0.8.8 - -2010-02-01 Martin Gieseking - - * tests/check-conv: - skip conversion checks by default - -2010-01-31 Martin Gieseking - - * tests/Makefile.am, tests/check-conv, tests/create-makefile, - tests/frktest-nf-cmp.svg, tests/frktest-wf-cmp.svg, tests/frktest.dvi, - tests/normalize.xsl, tests/sample-nf-cmp.svg, tests/sample-wf-cmp.svg, - tests/sample.dvi: - added tests to check conversion results - - * tests/normalize.xsl: - some improvements to normalize.xsl - -2010-01-29 Martin Gieseking - - * src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/CommandLine.cpp, - src/CommandLine.h: - removed CmdLineParserBase::numOptions() - - * src/GraphicPath.h: - fixed scaling bug in computation of glyph paths when using -n - -2010-01-24 Martin Gieseking - - * doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h, - src/FontCache.h, src/dvisvgm.cpp, src/options.dtd, src/options.xml: - added command-line option --libgs - -2010-01-18 Martin Gieseking - - * src/CommandLine.cpp, src/options.dtd, src/options.xml: - added DTD for options.xml - -2010-01-17 Martin Gieseking - - * configure.ac: - updated type of kpathsea_version_string (patch by lomov_vl) - - * fedora/dvisvgm-gs.patch, fedora/dvisvgm-potrace.patch, - fedora/dvisvgm.spec: - removed fedora directory - - * doc/dvisvgm.txt.in, src/BoundingBox.cpp, src/BoundingBox.h, - src/DVIToSVG.cpp, tests/BoundingBoxTest.cpp, tests/Makefile.am: - added support for enlarging the minimal bbox by a given amount. - - * Makefile.am, README, configure.ac, doc/dvisvgm.txt.in, - src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h, - src/Bitmap.cpp, src/Bitmap.h, src/BoundingBox.cpp, src/BoundingBox.h, - src/Calculator.cpp, src/Calculator.h, src/CharmapTranslator.cpp, - src/CharmapTranslator.h, src/CmdLineParserBase.cpp, - src/CmdLineParserBase.h, src/Color.cpp, src/Color.h, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/CommandLine.cpp, src/CommandLine.h, src/DLLoader.cpp, src/DLLoader.h, - src/DVIActions.cpp, src/DVIActions.h, src/DVIReader.cpp, src/DVIReader.h, - src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/Directory.cpp, src/Directory.h, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, src/FileFinder.cpp, - src/FileFinder.h, src/FileSystem.cpp, src/FileSystem.h, src/Font.cpp, - src/Font.h, src/FontCache.cpp, src/FontCache.h, src/FontEmitter.h, - src/FontEncoding.cpp, src/FontEncoding.h, src/FontEngine.cpp, - src/FontEngine.h, src/FontManager.cpp, src/FontManager.h, - src/FontMap.cpp, src/FontMap.h, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.h, src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, - src/GFTracer.h, src/Ghostscript.cpp, src/Ghostscript.h, src/Glyph.cpp, - src/Glyph.h, src/GraphicPath.h, src/InputBuffer.cpp, src/InputBuffer.h, - src/InputReader.cpp, src/InputReader.h, src/Length.cpp, src/Length.h, - src/Makefile.am, src/Matrix.cpp, src/Matrix.h, src/Message.cpp, - src/Message.h, src/MessageException.h, src/MetafontWrapper.cpp, - src/MetafontWrapper.h, src/PSInterpreter.cpp, src/PSInterpreter.h, - src/PageSize.cpp, src/PageSize.h, src/Pair.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, src/SVGTree.cpp, - src/SVGTree.h, src/SpecialActions.h, src/SpecialHandler.h, - src/SpecialManager.cpp, src/SpecialManager.h, src/StreamCounter.h, - src/StreamReader.cpp, src/StreamReader.h, src/TFM.cpp, src/TFM.h, - src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h, src/VFActions.h, - src/VFReader.cpp, src/VFReader.h, src/VectorStream.h, - src/XMLDocTypeNode.h, src/XMLDocument.cpp, src/XMLDocument.h, - src/XMLNode.cpp, src/XMLNode.h, src/XMLString.cpp, src/XMLString.h, - src/dvisvgm.cpp, src/macros.h, src/options.xml, src/psdefs.psc, - src/types.h, tests/BoundingBoxTest.cpp, tests/CalculatorTest.cpp, - tests/ColorSpecialTest.cpp, tests/CommandLineTest.cpp, - tests/DirectoryTest.cpp, tests/FileFinderTest.cpp, - tests/FontManagerTest.cpp, tests/FontMapTest.cpp, - tests/GraphicPathTest.cpp, tests/LengthTest.cpp, tests/Makefile.am, - tests/MatrixTest.cpp, tests/PageSizeTest.cpp, - tests/SplittedCharInputBufferTest.cpp, tests/StreamCounterTest.cpp, - tests/StreamInputBufferTest.cpp, tests/VectorStreamTest.cpp, - tests/create-makefile: - updated boilerplates - - * doc/dvisvgm.txt.in, src/FileFinder.cpp, src/Ghostscript.cpp, - src/Ghostscript.h, src/dvisvgm.cpp: - environment variable LIBGS can now be used to set the name of the GS - shared library - - * NEWS: - updated NEWS - - * src/Ghostscript.cpp: - fixed typo in variable name - -2009-12-16 Martin Gieseking - - * src/InputReader.cpp: - fixed bug in InputReader::parseUInt() - -2009-12-15 Martin Gieseking - - * configure.ac, src/dvisvgm.cpp: - appied get_time patch sent by Peter Breitenlohner - -2009-12-02 Martin Gieseking - - * src/BoundingBox.h, src/Calculator.h, src/CharmapTranslator.h, - src/DVIReader.h, src/DVIToSVG.h, src/DVIToSVGActions.h, src/Font.h, - src/FontEngine.h, src/FontManager.h, src/FontMap.h, src/GFGlyphTracer.h, - src/GFReader.h, src/MessageException.h, src/MetafontWrapper.h, - src/PageSize.h, src/SVGTree.cpp, src/SVGTree.h, src/StreamReader.h, - src/VFActions.h, src/VFReader.h, src/XMLDocTypeNode.h, src/XMLDocument.h, - src/XMLNode.h, src/XMLString.h: - removed using statements from header files - -2009-11-25 Martin Gieseking - - * src/FontCache.cpp, src/FontCache.h, src/FontEngine.cpp, - src/FontEngine.h, src/FontGlyph.cpp, src/FontGlyph.h, - src/GFGlyphTracer.cpp, src/GFGlyphTracer.h, src/GFTracer.cpp, - src/Glyph.cpp, src/Glyph.h, src/GraphicPath.h, src/Makefile.am, - src/Pair.h, src/SVGFontEmitter.cpp, src/SVGFontTraceEmitter.cpp, - tests/GraphicPathTest.cpp: - removed FEGlyphCommands and replaced separate glyph class implementation - by class GraphicPath - -2009-11-18 Martin Gieseking - - * src/DVIToSVG.cpp, src/Ghostscript.cpp, src/Ghostscript.h: - replaced #if !DISABLE_GS by #if !defined(DISABLE_GS) (Peter - Breitenlohner) - - * src/Ghostscript.cpp, src/Ghostscript.h: - replaced #if HAVE_LIBGS by #if defined(HAVE_LIBGS) - - * src/DLLoader.cpp, src/DLLoader.h: - fixed line endings - -2009-11-17 Martin Gieseking - - * configure.ac, fedora/dvisvgm.spec, src/Doxyfile: - set version number to 0.8.8dev - - * potracelib/potracelib.c, potracelib/potracelib.h: - replaced outdated string constant type char* by const char* in - potrace_version() - - * src/Color.cpp, src/ColorSpecialHandler.cpp, src/FontManager.cpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, - src/TpicSpecialHandler.cpp: - added explicit casts to avoid compiler warnings (Peter Breitenlohner) - - * src/InputReader.cpp: - added missing initialization value (Peter Breitenlohner) - - * src/CmdLineParserBase.h, src/GraphicPath.h, src/InputReader.h, - src/Makefile.am, src/PSInterpreter.h, src/SpecialManager.h: - added missing virtual destructors to avoid warnings - - * src/dvisvgm.cpp: - don't use email adress PACKAGE_BUGREPORT for copyright notice - - * NEWS: - updated NEWS - -2009-11-09 Martin Gieseking - - * src/DVIToSVG.cpp, src/dvisvgm.cpp: - added total number of pages to message text - - * NEWS, src/Color.cpp, src/Color.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/SVGTree.cpp: - PS handler: colors set by color specials are now considered properly - - * configure.ac, fedora/dvisvgm.spec, src/Doxyfile: - set version to 0.8.7 - -2009-11-06 Martin Gieseking - - * src/GraphicPath.h, src/PsSpecialHandler.cpp: - PS handler: replace zero-length paths by dots - - * NEWS, doc/dvisvgm.txt.in: - updated NEWS and manpage - - * NEWS, src/PsSpecialHandler.cpp: - fixed path scaling issue in PS handler - -2009-10-29 Martin Gieseking - - * src/DVIToSVGActions.cpp, src/Font.cpp, src/Font.h: - fixed positioning of italic characters - -2009-10-25 Martin Gieseking - - * src/DvisvgmSpecialHandler.cpp: - added macro {?nl} to dvisvgm:raw evaluator - -2009-10-18 Martin Gieseking - - * src/Font.cpp, src/TFM.cpp, src/TFM.h: - added italic correction values to character widths - -2009-10-16 Martin Gieseking - - * tests/Makefile.am, tests/create-makefile: - added script to create tests/Makefile.am - - * configure.ac, src/Doxyfile: - increased version to 0.8.7dev - -2009-10-13 Martin Gieseking - - * doc/Makefile.am, doc/dvisvgm.txt.in: - removed outdated post-processing of manpage - - * fedora/dvisvgm.spec: - updated spec file - - * doc/Makefile.am: - added missing dvi suffix in Makefile target dvi-pdf - - * README, tests/CalculatorTest.cpp, tests/CalculatorTest.h, - tests/ColorSpecialTest.cpp, tests/ColorSpecialTest.h, - tests/CommandLineTest.cpp, tests/CommandLineTest.h, - tests/DirectoryTest.cpp, tests/DirectoryTest.h, tests/FileFinderTest.cpp, - tests/FileFinderTest.h, tests/FontManagerTest.cpp, - tests/FontManagerTest.h, tests/FontMapTest.cpp, tests/FontMapTest.h, - tests/GraphicPathTest.cpp, tests/GraphicPathTest.h, tests/LengthTest.cpp, - tests/LengthTest.h, tests/Makefile.am, tests/MatrixTest.cpp, - tests/MatrixTest.h, tests/PageSizeTest.cpp, tests/PageSizeTest.h, - tests/SplittedCharInputBufferTest.cpp, - tests/SplittedCharInputBufferTest.h, tests/StreamCounterTest.cpp, - tests/StreamCounterTest.h, tests/StreamInputBufferTest.cpp, - tests/StreamInputBufferTest.h, tests/VectorStreamTest.cpp, - tests/VectorStreamTest.h: - replaced cxxtest by googletest - -2009-10-12 Martin Gieseking - - * src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h, - src/Bitmap.cpp, src/Bitmap.h, src/BoundingBox.cpp, src/BoundingBox.h, - src/Calculator.cpp, src/Calculator.h, src/CharmapTranslator.cpp, - src/CharmapTranslator.h, src/CmdLineParserBase.cpp, - src/CmdLineParserBase.h, src/Color.cpp, src/Color.h, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, src/DLLoader.cpp, - src/DLLoader.h, src/DVIActions.cpp, src/DVIActions.h, src/DVIReader.cpp, - src/DVIReader.h, src/DVIToSVG.h, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/Directory.cpp, src/Directory.h, - src/DvisvgmSpecialHandler.h, src/EmSpecialHandler.cpp, - src/EmSpecialHandler.h, src/FileFinder.cpp, src/FileFinder.h, - src/FileSystem.cpp, src/FileSystem.h, src/Font.cpp, src/Font.h, - src/FontCache.cpp, src/FontCache.h, src/FontEmitter.h, - src/FontEncoding.cpp, src/FontEncoding.h, src/FontEngine.cpp, - src/FontEngine.h, src/FontGlyph.cpp, src/FontGlyph.h, - src/FontManager.cpp, src/FontManager.h, src/FontMap.cpp, src/FontMap.h, - src/GFGlyphTracer.cpp, src/GFGlyphTracer.h, src/GFReader.cpp, - src/GFReader.h, src/GFTracer.cpp, src/GFTracer.h, src/Ghostscript.cpp, - src/Ghostscript.h, src/GraphicPath.h, src/InputBuffer.cpp, - src/InputBuffer.h, src/InputReader.cpp, src/InputReader.h, - src/Matrix.cpp, src/Matrix.h, src/Message.cpp, src/Message.h, - src/MessageException.h, src/MetafontWrapper.cpp, src/MetafontWrapper.h, - src/PSInterpreter.cpp, src/PSInterpreter.h, src/PageSize.cpp, - src/PageSize.h, src/Pair.h, src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, - src/SpecialActions.h, src/SpecialHandler.h, src/SpecialManager.cpp, - src/SpecialManager.h, src/StreamCounter.h, src/StreamReader.cpp, - src/StreamReader.h, src/TFM.cpp, src/TFM.h, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.h, src/VFActions.h, src/VFReader.cpp, - src/VFReader.h, src/VectorStream.h, src/XMLDocTypeNode.h, - src/XMLDocument.cpp, src/XMLDocument.h, src/XMLNode.cpp, src/XMLNode.h, - src/XMLString.cpp, src/XMLString.h, src/macros.h, src/types.h: - code cleanup - -2009-10-11 Martin Gieseking - - * autogen.sh: - fixed file permissions of autogen.sh - - * src/DVIToSVG.cpp, src/DvisvgmSpecialHandler.cpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/SVGTree.cpp, - src/SVGTree.h: - suppress empty style and transformation elements - - * NEWS: - NEWS updated - -2009-10-10 Martin Gieseking - - * src/PsSpecialHandler.cpp: - scale clipping paths by 72.27/72 - -2009-10-09 Martin Gieseking - - * src/Bitmap.h: - fixed bit shift overflow in Bitmap class occured on 64-bit systems - - * autogen.sh, prepare: - prepare script replaced by autogen.sh - - * doc/dvisvgm.txt.in: - fixed formatting of manual page - - * src/Length.cpp, src/Length.h, tests/LengthTest.h: - fixed unit conversion bug - - * src/Makefile.am: - fixed Makefile - -2009-10-08 Martin Gieseking - - * NEWS, doc/dvisvgm.txt.in, src/BoundingBox.cpp, src/CommandLine.cpp, - src/CommandLine.h, src/DVIToSVG.cpp, src/DVIToSVG.h, src/dvisvgm.cpp, - src/options.xml, tests/CommandLineTest.h, tests/Makefile.am: - cmdline parameter --bbox can now be used to set the absolute bounding - box - - * NEWS, src/GraphicPath.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h: - PS clipping path sequences and intersections are now handled correctly - - * src/MetafontWrapper.cpp: - fixed file permissions - - * src/dvisvgm.cpp: - fixed uncaught PageSizeException - -2009-10-07 Martin Gieseking - - * NEWS, doc/dvisvgm.txt.in, src/BoundingBox.cpp, src/BoundingBox.h, - src/DvisvgmSpecialHandler.cpp: - added the special variant 'dvisvgm:bbox abs' and 'dvisvgm:bbox fix' - - * src/BoundingBox.cpp, src/BoundingBox.h, src/Length.cpp, src/Length.h, - src/Makefile.am, tests/LengthTest.h: - class Length provides length unit calculations - -2009-10-06 Martin Gieseking - - * src/BoundingBox.cpp, src/BoundingBox.h, src/GraphicPath.h, - src/PSInterpreter.cpp, src/PSInterpreter.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/psdefs.psc: - fixed some PS bounding box and positioning issues introduced by previous - changesets - - * NEWS, configure.ac, fedora/dvisvgm.spec, src/Doxyfile: - set version to 0.8.6 - -2009-10-05 Martin Gieseking - - * src/PsSpecialHandler.cpp: - convert PS path coordinated to TeX point units - - * NEWS, src/PsSpecialHandler.cpp: - fixed another positioning bug reported by John Bowman - -2009-10-04 Martin Gieseking - - * src/GraphicPath.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h: - corrected positioning bug introduced with previous PS positioning fix - -2009-10-02 Martin Gieseking - - * doc/Makefile.am, doc/dvisvgm.txt.in: - generate pdf manpage directly with groff; adapted manpage source to work - with latest asciidoc - -2009-10-01 Martin Gieseking - - * doc/Makefile.am, doc/dvisvgm.txt.in: - replaced backticks in manpage by apostrophes; updated date on homepage - -2009-09-30 Martin Gieseking - - * src/DvisvgmSpecialHandler.cpp: - added optional depth parameter to special dvisvgm:raw - - * doc/dvisvgm.txt.in: - added dvisvgm:raw example to man page - - * LGPL-2.1.txt, NEWS, README: - updated README and NEWS, and added file with LGPL license text - - * Makefile.am, configure.ac, fedora/dvisvgm.spec, src/Doxyfile: - increased version number to 0.8.5 - -2009-09-17 Martin Gieseking - - * NEWS: - added cretdit to John Bowman for sending a patch for the already fixed - clipping bug - - * src/PsSpecialHandler.h: - increased the default linewidth to 0.5 - - * fedora/dvisvgm.spec: - updated spec file and fixed typo on website - - * doc/dvisvgm.txt.in: - minor changes of the documentation - -2009-09-11 Martin Gieseking - - * NEWS, src/CmdLineParserBase.cpp, src/FontCache.cpp, - src/SVGFontTraceEmitter.cpp: - fixed memory bug in tracer module (issue #21) - - * NEWS, doc/dvisvgm.txt.in, src/CommandLine.cpp, src/CommandLine.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/SpecialManager.cpp, - src/SpecialManager.h, src/dvisvgm.cpp, src/options.xml: - added option --progress for enabling a progress indicator (feature #22) - - * src/FileSystem.cpp, src/MetafontWrapper.cpp: - Windows: Metafont is now called via CreateProcess() - -2009-09-10 Martin Gieseking - - * src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, src/DVIToSVG.cpp, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, src/SpecialHandler.h, - src/SpecialManager.cpp, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.h: - refactored prefixes methods of the SpecialHandlers (ticket #20) - - * NEWS, doc/dvisvgm.txt.in, src/FileSystem.cpp, src/FileSystem.h, - src/FontCache.cpp, src/FontCache.h, src/dvisvgm.cpp: - option --cache prints additional information about the cached fonts - (feature #7) - - * src/FileSystem.cpp, src/FontCache.cpp: - fixed Windows-related bug in FileSystem::collect - -2009-09-06 Martin Gieseking - - * NEWS, README: - updated NEWS and README - -2009-09-04 Martin Gieseking - - * configure.ac, fedora/dvisvgm.spec, src/Doxyfile: - increased version number to 0.8.4 - - * src/BoundingBox.cpp, src/BoundingBox.h, src/PsSpecialHandler.cpp: - linewidths are now considered properly in computation of bounding box - (issue #13) - - * src/dvisvgm.cpp: - fixed evaluation of option --help - - * src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/CommandLine.cpp, - src/InputBuffer.h, src/InputReader.h, src/psdefs.psc, - tests/CommandLineTest.h: - improved the command line parser to make it more POSIX-compliant - (feature #17) - -2009-09-01 Martin Gieseking - - * src/PsSpecialHandler.cpp, src/psdefs.psc: - fixed flattened clipping path bug (issue #11) - -2009-08-31 Martin Gieseking - - * src/Makefile.am: - added error checks; disallow numeric optional arguments w/o default - value - -2009-08-28 Martin Gieseking - - * NEWS, src/PSInterpreter.cpp, src/PsSpecialHandler.cpp, src/dvisvgm.cpp, - src/psdefs.psc: - added evaluation of PS 'show' operator in order to evaluate PSTricks - Type 3 fonts properly - - * fedora/dvisvgm.spec: - updated spec file and homepage to latest release - -2009-08-27 Martin Gieseking - - * NEWS, configure.ac, doc/dvisvgm.txt.in, src/CmdLineParserBase.cpp, - src/CommandLine.cpp, src/Doxyfile, src/dvisvgm.cpp, src/getopt.c, - src/getopt.h, src/getopt1.c, src/options.xml: - replaced option --cache=? by --cache; increased version number to 0.8.3 - -2009-08-26 Martin Gieseking - - * fedora/dvisvgm-0.8.1-potrace.patch, fedora/dvisvgm-gs.patch, - fedora/dvisvgm-potrace.patch, fedora/dvisvgm.spec: - updated Fedora files - - * configure.ac, fedora/dvisvgm.spec, src/Ghostscript.cpp, - src/Ghostscript.h, src/Makefile.am: - improved Ghostscript and potrace linking checks to simplify usage of - external devel files - - * NEWS, configure.ac, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/PsSpecialHandler.cpp, - src/SpecialManager.cpp, src/SpecialManager.h: - PS prologue files referenced in first page are now always loaded - -2009-08-24 Martin Gieseking - - * src/CommandLine.cpp, src/CommandLine.h: - speed up printing help by using puts() instead of C++ streams - -2009-08-21 Martin Gieseking - - * src/FontMap.cpp: - fixed memory bug in FontMap - - * src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/Makefile.am, - src/dvisvgm.cpp, src/options.xml, tests/CommandLineTest.h, - tests/Makefile.am: - improved CmdLineParserBase and replaced gengetopt-based parser - - * NEWS, configure.ac, src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, - src/Doxyfile: - increased version number to 0.8.2 - -2009-08-20 Martin Gieseking - - * src/InputReader.cpp, src/InputReader.h: - added method parseUInt() - - * src/CmdLineParserBase.cpp, src/CmdLineParserBase.h, src/options.xml: - added files for replacement of gengetopt (not active yet) - - * src/CmdLineParserBase.cpp, src/CmdLineParserBase.h: - finished cmdline parser - - * COPYING: - added copy of file COPYING - -2009-08-17 Martin Gieseking - - * tests/Makefile.am: - added include path to fix broken distcheck - - * COPYING, LICENSE, Makefile.am, README, doc/dvisvgm.txt.in, - src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h, - src/Bitmap.cpp, src/Bitmap.h, src/BoundingBox.cpp, src/BoundingBox.h, - src/Calculator.cpp, src/Calculator.h, src/CharmapTranslator.cpp, - src/CharmapTranslator.h, src/Color.cpp, src/Color.h, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, src/DLLoader.cpp, - src/DLLoader.h, src/DVIActions.cpp, src/DVIActions.h, src/DVIReader.cpp, - src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Directory.cpp, - src/Directory.h, src/DvisvgmSpecialHandler.cpp, - src/DvisvgmSpecialHandler.h, src/EmSpecialHandler.cpp, - src/EmSpecialHandler.h, src/FileFinder.cpp, src/FileFinder.h, - src/FileSystem.cpp, src/FileSystem.h, src/Font.cpp, src/Font.h, - src/FontCache.cpp, src/FontCache.h, src/FontEmitter.h, - src/FontEncoding.cpp, src/FontEncoding.h, src/FontEngine.cpp, - src/FontEngine.h, src/FontGlyph.cpp, src/FontGlyph.h, - src/FontManager.cpp, src/FontManager.h, src/FontMap.cpp, src/FontMap.h, - src/GFGlyphTracer.cpp, src/GFGlyphTracer.h, src/GFReader.cpp, - src/GFReader.h, src/GFTracer.cpp, src/GFTracer.h, src/Ghostscript.cpp, - src/Ghostscript.h, src/GraphicPath.h, src/InputBuffer.cpp, - src/InputBuffer.h, src/InputReader.cpp, src/InputReader.h, - src/Matrix.cpp, src/Matrix.h, src/Message.cpp, src/Message.h, - src/MessageException.h, src/MetafontWrapper.cpp, src/MetafontWrapper.h, - src/PSInterpreter.cpp, src/PSInterpreter.h, src/PageSize.cpp, - src/PageSize.h, src/Pair.h, src/PsSpecialHandler.cpp, - src/PsSpecialHandler.h, src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, src/SVGTree.cpp, - src/SVGTree.h, src/SpecialActions.h, src/SpecialHandler.h, - src/SpecialManager.cpp, src/SpecialManager.h, src/StreamCounter.h, - src/StreamReader.cpp, src/StreamReader.h, src/TFM.cpp, src/TFM.h, - src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h, src/VFActions.h, - src/VFReader.cpp, src/VFReader.h, src/VectorStream.h, - src/XMLDocTypeNode.h, src/XMLDocument.cpp, src/XMLDocument.h, - src/XMLNode.cpp, src/XMLNode.h, src/XMLString.cpp, src/XMLString.h, - src/dvisvgm.cpp, src/inttypes.h, src/macros.h, src/psdefs.psc, - src/types.h, tests/CalculatorTest.h, tests/ColorSpecialTest.h, - tests/DirectoryTest.h, tests/FileFinderTest.h, tests/FontManagerTest.h, - tests/FontMapTest.h, tests/GraphicPathTest.h, tests/MatrixTest.h, - tests/PageSizeTest.h, tests/SplittedCharInputBufferTest.h, - tests/StreamCounterTest.h, tests/StreamInputBufferTest.h, - tests/VectorStreamTest.h: - changed license to GPL version 3 or later - -2009-08-10 Martin Gieseking - - * fedora/dvisvgm-0.8.1-potrace.patch, fedora/dvisvgm.spec: - added spec file and patch for Fedora builds - - * Makefile.am, configure.ac, src/Makefile.am, src/tests/CalculatorTest.h, - src/tests/ColorSpecialTest.h, src/tests/DirectoryTest.h, - src/tests/FileFinderTest.h, src/tests/FontManagerTest.h, - src/tests/FontMapTest.h, src/tests/GraphicPathTest.h, - src/tests/MatrixTest.h, src/tests/PageSizeTest.h, - src/tests/SplittedCharInputBufferTest.h, src/tests/StreamCounterTest.h, - src/tests/StreamInputBufferTest.h, src/tests/VectorStreamTest.h, - src/tests/dvipdfm_test.map, src/tests/dvips_test.map, - tests/CalculatorTest.h, tests/ColorSpecialTest.h, tests/DirectoryTest.h, - tests/FileFinderTest.h, tests/FontManagerTest.h, tests/FontMapTest.h, - tests/GraphicPathTest.h, tests/Makefile.am, tests/MatrixTest.h, - tests/PageSizeTest.h, tests/SplittedCharInputBufferTest.h, - tests/StreamCounterTest.h, tests/StreamInputBufferTest.h, - tests/VectorStreamTest.h, tests/dvipdfm_test.map, tests/dvips_test.map: - moved tests from src/tests to ./tests - - * tests/Makefile.am: - added generated file test-all.cpp to CLEANFILES - -2009-08-02 Martin Gieseking - - * LICENSE, Makefile.am, src/Ghostscript.cpp: - modified package to be compatible with prerequisites of Fedora - -2009-07-30 Martin Gieseking - - * configure.ac, src/DVIToSVG.cpp: - added target triplet to version string in SVG output - - * src/DVIToSVGActions.cpp, src/Ghostscript.cpp, src/Ghostscript.h, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h: - added Ghostscript revision info to output of dvisvgm -l - -2009-07-29 Martin Gieseking - - * src/psdefs.psc: - added vim tag to psdefs.psc - -2009-07-28 Martin Gieseking - - * src/PsSpecialHandler.cpp: - added evaluation of more psfile parameters; fixed psfile bounding box - bug - - * NEWS, configure.ac, src/Doxyfile: - updated version number to 0.8.1 - - * NEWS, src/FileSystem.cpp, src/FontEngine.cpp, src/FontManager.cpp, - src/Ghostscript.cpp, src/PageSize.cpp, src/dvisvgm.cpp: - fixed bug related to unsigned/size_t mismatch on x64 systems - - * src/psdefs.psc: - cleaned up VC++ build files; added batch file to generate cmdline.c; - added generated file psdefs.psc for convenience - -2009-07-27 Martin Gieseking - - * src/DLLoader.cpp, src/InputReader.cpp, src/PSInterpreter.cpp: - changes to make VC happy; fixed potential memory bug - - * NEWS, README: - fixed typos; updated homepage/manpage - - * src/DVIReader.h, src/InputBuffer.cpp, src/InputBuffer.h, - src/InputReader.cpp, src/InputReader.h, src/Matrix.cpp, src/Matrix.h, - src/PSInterpreter.h: - replaced size_t parameters by unsigned - -2009-07-23 Martin Gieseking - - * src/PSInterpreter.cpp: - some clean-ups - -2009-07-22 Martin Gieseking - - * NEWS, README, doc/dvisvgm.txt.in, src/BoundingBox.cpp, - src/BoundingBox.h, src/GraphicPath.h, src/PSInterpreter.cpp, - src/PsSpecialHandler.cpp, src/PsSpecialHandler.h: - fixed clipping bug; updated homepage, README, NEWS - - * src/TpicSpecialHandler.cpp: - fixed reintroduced bug in TPIC handler - -2009-07-20 Martin Gieseking - - * src/DvisvgmSpecialHandler.cpp, src/InputBuffer.cpp, src/InputReader.cpp, - src/InputReader.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, - src/tests/StreamInputBufferTest.h: - implemented psfile special; fixed some bugs - - * src/PsSpecialHandler.cpp, src/SVGTree.cpp: - fixed bbox bug; added missing file - -2009-07-19 Martin Gieseking - - * configure.ac, doc/dvisvgm.txt.in, src/BoundingBox.cpp, - src/BoundingBox.h, src/Color.cpp, src/Color.h, src/DLLoader.cpp, - src/DLLoader.h, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Doxyfile, - src/DvisvgmSpecialHandler.cpp, src/EmSpecialHandler.cpp, - src/FileFinder.cpp, src/FontEncoding.cpp, src/Ghostscript.cpp, - src/Ghostscript.h, src/GraphicPath.h, src/InputBuffer.cpp, - src/InputBuffer.h, src/InputReader.cpp, src/InputReader.h, - src/Makefile.am, src/Matrix.cpp, src/Matrix.h, src/PSInterpreter.cpp, - src/PSInterpreter.h, src/PsSpecialHandler.cpp, src/PsSpecialHandler.h, - src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, src/SVGTree.h, - src/SpecialActions.h, src/TpicSpecialHandler.cpp, - src/TransformationMatrix.cpp, src/TransformationMatrix.h, - src/XMLDocument.cpp, src/XMLDocument.h, src/XMLNode.cpp, src/XMLNode.h, - src/iapi.h, src/ierrors.h, src/tests/GraphicPathTest.h, - src/tests/MatrixTest.h, src/tests/SplittedCharInputBufferTest.h, - src/tests/StreamInputBufferTest.h: - transplanted PS functionality to default branch - -2009-06-01 Martin Gieseking - - * src/GFReader.cpp, src/GFReader.h: - removed error method, use Message::estream instead - - * src/InputBuffer.cpp, src/InputBuffer.h, src/Makefile.am: - transplanted changes to InputBuffer from branch 'pages' - - * src/Bitmap.cpp, src/Bitmap.h: - transplanted changes to Bitmap from branch 'pages' - - * src/DVIReader.cpp, src/DVIReader.h: - transplanted changes to DVIReader from branch 'pages' - - * src/FileSystem.cpp, src/FileSystem.h: - transplanted changes to FileSystem from branch 'pages' - - * src/VFReader.cpp: - transplanted changes to VFReader from branch 'pages' - - * src/GFTracer.cpp: - transplanted changes to GFTracer from branch 'pages' - - * src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/DvisvgmSpecialHandler.cpp, src/DvisvgmSpecialHandler.h, - src/EmSpecialHandler.cpp, src/EmSpecialHandler.h, src/SpecialHandler.h, - src/SpecialManager.cpp, src/SpecialManager.h, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.h: - transplanted changes to SpecialHandlers from branch 'pages' - -2009-04-24 Martin Gieseking - - * src/TpicSpecialHandler.cpp: - fixed TPIC handler bug that could caused unwanted color fills of - ellipses due to a missing call of reset() - - * NEWS, configure.ac, src/Doxyfile: - increased version number to 0.7.3 - - * src/FontCache.h: - increased version of font cache files to ensure their recreation due to - the previously fixed shorthand path command bug - -2009-04-23 Martin Gieseking - - * src/FontGlyph.cpp: - fixed bug in computation of shorthand path command - -2009-04-06 Martin Gieseking - - * src/FontMap.cpp: - fixed bug in FontMap that causes a segfault if extension in given font - file is missing (reported by Armin Geisse) - -2009-04-02 Martin Gieseking - - * configure.ac, doc/dvisvgm.txt.in, src/MetafontWrapper.cpp, - src/dvisvgm.cpp: - prepared release 0.7.2 (removed inclusions of debug.h, adapted homepage - and manpage) - -2009-03-31 Martin Gieseking - - * src/MetafontWrapper.cpp, src/MetafontWrapper.h: - ported fix in MetafontWrapper back to default branch - -2009-03-25 Martin Gieseking - - * src/DVIToSVG.cpp, src/DVIToSVG.h, src/FontGlyph.cpp, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, src/dvisvgm.cpp: - replaced Metafont magnification variable and its setters by a public - class variable - - * src/Doxyfile: - added doxygen files - - * src/SVGFontTraceEmitter.cpp: - fixed closing bracket "bug" when writing the currently traced character - to the terminal - -2009-03-24 Martin Gieseking - - * NEWS, src/FontCache.cpp, src/FontGlyph.cpp, src/FontGlyph.h, - src/GFGlyphTracer.cpp, src/Pair.h, src/SVGFontEmitter.cpp: - use of shorthand path commands has been implemented - - * src/FontGlyph.cpp: - fixed potential bug in Glyph::optimizeCommands() - - * src/FontGlyph.cpp: - fixed memory bug in Glyph::optimizeCommands() - -2009-03-20 Martin Gieseking - - * src/FontCache.cpp: - cache files are being compressed now to reduce the file size - -2009-03-19 Martin Gieseking - - * NEWS, doc/dvisvgm.txt.in, src/FontEmitter.h, src/GFGlyphTracer.cpp, - src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, src/dvisvgm.cpp, - src/options.ggo: - added option --trace-all that forces tracing of all glyphs of all - currently used bitmap fonts - - * src/FontCache.cpp, src/SVGFontTraceEmitter.cpp: - don't read existing cache file if --trace-all is given (trace complete - font and then write cache file instead) - -2009-03-18 Martin Gieseking - - * src/FontCache.cpp: - fixed bug in read/write functions of FontCache - - * src/DVIToSVG.cpp, src/TFM.cpp, src/TFM.h: - added firstChar()/lastChar() to TFM class, removed unnecessary mag - member variable and its setter - -2009-03-17 Martin Gieseking - - * doc/dvisvgm.txt.in, src/DVIToSVG.cpp, src/FileSystem.cpp, - src/FileSystem.h, src/FontCache.cpp, src/FontCache.h, src/FontGlyph.h, - src/GFGlyphTracer.cpp, src/GFGlyphTracer.h, src/Makefile.am, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, src/dvisvgm.cpp: - completed font caching support - - * doc/dvisvgm.txt.in, src/dvisvgm.cpp: - added option variant --cache=? to display the default cache directory - - * src/FontCache.cpp: - reduced size of cache file format by using variable integer sizes - -2009-03-16 Martin Gieseking - - * NEWS, configure.ac, doc/dvisvgm.txt.in, src/DVIToSVG.cpp, - src/FileSystem.cpp, src/FileSystem.h, src/FontCache.cpp, src/FontCache.h, - src/FontGlyph.cpp, src/FontGlyph.h, src/GFGlyphTracer.cpp, - src/GFGlyphTracer.h, src/GFTracer.cpp, src/options.ggo: - first additions to support font caching; not working yet - -2009-03-11 Martin Gieseking - - * src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/FontEmitter.h, src/SVGFontEmitter.cpp, - src/SVGFontEmitter.h, src/SVGFontTraceEmitter.cpp, - src/SVGFontTraceEmitter.h: - improved font embedding algorithm in case of --no-fonts (identical - glyphs in different sizes are now referenced rather than duplicated) - -2009-03-10 Martin Gieseking - - * NEWS, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, src/Font.h, - src/SVGFontEmitter.cpp, src/SVGFontTraceEmitter.cpp: - all glyph sizes are now computed correctly in conjuction with option - --no-fonts - -2009-03-09 Martin Gieseking - - * src/BgColorSpecialHandler.cpp, src/SpecialManager.cpp, - src/TpicSpecialHandler.cpp: - adapted Code to make VC happy - - * src/types.h: - minor changes to homepage and .hgignore - - * src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp: - fixed transformation bug (transformations are now applied properly to - the page) - -2009-03-08 Martin Gieseking - - * NEWS, README, src/Color.cpp, src/Color.h, src/ColorSpecialHandler.cpp, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, - src/DvisvgmSpecialHandler.cpp, src/EmSpecialHandler.cpp, src/Makefile.am, - src/TpicSpecialHandler.cpp: - added bgcolor support, updated homepage, fixed color handler bug - - * src/BgColorSpecialHandler.cpp, src/BgColorSpecialHandler.h: - added missing background color handler - -2009-03-06 Martin Gieseking - - * src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h: - implemented arc drawing of tpic special set - - * src/TpicSpecialHandler.cpp, src/TpicSpecialHandler.h: - implemented splines of tpic specials - -2009-03-03 Martin Gieseking - - * src/BoundingBox.cpp, src/BoundingBox.h, src/Color.cpp, - src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, src/DVIActions.h, - src/DVIBBoxActions.h, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/EmSpecialHandler.cpp, - src/Makefile.am, src/SpecialActions.h, src/SpecialHandler.h, - src/TpicSpecialHandler.cpp: - improved computation of the bounding box (works with specials now); - added dummy function for background color assignments - - * doc/Makefile.am, doc/dvisvgm.txt.in, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/DvisvgmSpecialHandler.cpp, - src/DvisvgmSpecialHandler.h, src/InputBuffer.cpp, src/InputBuffer.h, - src/SpecialActions.h: - implemented the dvisvgm specials raw, image, and bbox - - * doc/dvisvgm.txt.in, src/DvisvgmSpecialHandler.cpp, - src/DvisvgmSpecialHandler.h: - minor code improvements; comments added - -2009-02-26 Martin Gieseking - - * doc/Makefile.am, doc/dvisvgm.txt, doc/dvisvgm.txt.in: - removed generated file, added dvisvgm.txt.in - - * doc/Makefile.am, doc/dvisvgm.txt.in: - improved manpage - -2009-02-25 Martin Gieseking - - * src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, - src/DvisvgmSpecialHandler.cpp, src/EmSpecialHandler.cpp, - src/SpecialActions.h, src/TpicSpecialHandler.cpp: - renamed appendInPage() to appendToPage - -2009-02-24 Martin Gieseking - - * src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/DVIToSVGActions.cpp, src/DvisvgmSpecialHandler.cpp, - src/DvisvgmSpecialHandler.h, src/EmSpecialHandler.cpp, - src/EmSpecialHandler.h, src/Makefile.am, src/SpecialColorHandler.cpp, - src/SpecialColorHandler.h, src/SpecialDvisvgmHandler.cpp, - src/SpecialDvisvgmHandler.h, src/SpecialEmHandler.cpp, - src/SpecialEmHandler.h, src/SpecialHandler.h, src/SpecialHtmlHandler.h, - src/SpecialManager.cpp, src/SpecialManager.h, - src/tests/ColorSpecialTest.h: - improved SpecialHandler is now able to handle unprefixed specials - - * NEWS, src/Color.cpp, src/Color.h, src/DVIToSVGActions.cpp, - src/Makefile.am, src/Pair.h, src/SpecialHandler.h, - src/SpecialManager.cpp, src/SpecialManager.h, src/TpicSpecialHandler.cpp, - src/TpicSpecialHandler.h: - first tpic implementations; not complete yet - - * NEWS, doc/dvisvgm.1.in, src/TpicSpecialHandler.cpp: - few additions to tpic handler - -2009-02-23 Martin Gieseking - - * NEWS, configure.ac, doc/dvisvgm.1.in, src/DVIBBoxActions.h, - src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp, src/FontEmitter.h, src/FontEngine.cpp, - src/FontEngine.h, src/FontGlyph.cpp, src/FontGlyph.h, - src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, src/XMLNode.cpp, - src/XMLNode.h, src/dvisvgm.cpp, src/options.ggo, - src/tests/ColorSpecialTest.h: - added option --no-fonts wich uses path elements instead of fonts - -2009-02-20 Martin Gieseking - - * NEWS, doc/dvisvgm.1.in, src/Color.cpp, src/Color.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Makefile.am, - src/SpecialActions.h, src/SpecialColorHandler.cpp, - src/SpecialDvisvgmHandler.cpp, src/SpecialDvisvgmHandler.h, - src/SpecialEmHandler.cpp, src/SpecialEmHandler.h, - src/SpecialHtmlHandler.h, src/VerbSpecialHandler.cpp, - src/VerbSpecialHandler.h: - fixed bug in color handler, added skeletons of dvisvgm/hyperref special - handlers - -2009-02-18 Martin Gieseking - - * src/Color.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, - src/Makefile.am, src/SpecialActions.h, src/SpecialColorHandler.cpp, - src/SpecialEmHandler.cpp: - added color support to emTeX specials, removed Color class - - * NEWS, src/SpecialActions.h, src/tests/ColorSpecialTest.h: - adapted color test to new interface, added emtex info - -2009-02-17 Martin Gieseking - - * src/DVIReader.cpp: - made DVICommand local to executeCommand, removed unnecessary if - statement - -2009-02-14 Martin Gieseking - - * src/Color.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h: - finished color support - - * src/dvisvgm.cpp: - fixed incorrect behavior of option -V/--version - - * NEWS, configure.ac: - increased version number to 0.6.2, updated NEWS - - * doc/dvisvgm.1.in, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp, src/dvisvgm.cpp, src/options.ggo: - added option --no-style - - * NEWS, configure.ac: - prepared release of version 0.7 - -2009-02-13 Martin Gieseking - - * Makefile.am, configure.ac, src/tests/DirectoryTest.h: - removed rpm support - - * prepare: - added administrative files - - * src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h: - reverted to previous version, removed dependency on Color class - - * src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Makefile.am, - src/SpecialActions.h, src/SpecialHandler.h, src/SpecialManager.cpp, - src/SpecialManager.h: - color specials are now processed by DVIToSVGActions, but don't create - any results yet - - * prepare: - updated administrative files - - * src/ColorSpecialHandler.cpp, src/Makefile.am, - src/tests/ColorSpecialTest.h: - added tests for ColorSpecialHandler - -2009-02-12 martin@xps - - * src/inttypes.h: - added rudimentary files for writing of SWF files; not ready yet - -2009-02-10 Martin Gieseking - - * src/Color.h, src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/Makefile.am: - replaced RGB arrays by Color class - -2009-02-09 Martin Gieseking - - * src/TransformationMatrix.cpp: - made y-coordinate of cmdline-option -t optional - -2009-02-06 Martin Gieseking - - * doc/dvisvgm.1.in, src/ColorSpecialHandler.h, src/DVIToSVG.cpp, - src/DVIToSVG.h, src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, - src/SpecialHandler.h, src/SpecialManager.cpp, src/SpecialManager.h, - src/dvisvgm.cpp, src/options.ggo: - added option --list-specials that lists all registered special handlers - - * src/FileFinder.cpp: - changed lookup order of font maps - -2009-02-05 Martin Gieseking - - * src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/dvisvgm.cpp, src/options.ggo: - added optional prefix list to commandline option --no-specials - - * src/DVIToSVGActions.cpp: - replaced special ignore list evaluation algorithm - -2009-02-04 Martin Gieseking - - * src/FileFinder.cpp: - added option for additional loading of user maps - - * src/FontMap.cpp: - added output of font encoding in write method - -2009-02-03 Martin Gieseking - - * src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/SpecialHandler.h, - src/SpecialManager.cpp, src/SpecialManager.h, src/options.ggo: - more color special implementation (color constants), still not ready - - * src/FileFinder.cpp, src/FileFinder.h, src/dvisvgm.cpp: - option -m/--map-file is now evaluated properly - - * map/cork-lm.map: - removed deprecated map subdirectory - -2009-02-02 Martin Gieseking - - * NEWS, src/FileFinder.cpp: - fixed buggy call of maketfm/makemf in Windows version - - * src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h, src/Makefile.am, - src/SpecialHandler.h, src/SpecialManager.cpp, src/SpecialManager.h: - added special support skeletons; not working yet - - * src/ColorSpecialHandler.cpp, src/ColorSpecialHandler.h: - some refactorings in color handler - -2009-01-30 Martin Gieseking - - * src/dvisvgm.cpp: - prevented writing zero-length svg files; simplified main code by using - auto pointers - - * NEWS, src/DVIReader.cpp, src/DVIReader.h: - fixed magnification bug - -2009-01-29 Martin Gieseking - - * src/FileFinder.cpp: - adapted Windows version to new release - -2009-01-28 Martin Gieseking - - * src/FileFinder.cpp, src/FileFinder.h, src/Makefile.am, - src/tests/DirectoryTest.h, src/tests/FileFinderTest.h, - src/tests/FontManagerTest.h, src/tests/KPSFileFinderTest.h: - refactored FileFinder (implementation as singleton) - - * src/dvisvgm.cpp: - use new initialisation of FileFinder - - * src/GFReader.h, src/GFTracer.cpp, src/GFTracer.h: - improved GFTracer to support unscaled results - - * src/FontMap.cpp, src/Makefile.am, src/tests/FontMapTest.h, - src/tests/dvipdfm_test.map, src/tests/dvips_test.map: - extensions to FontMap almost complete but not finished yet - - * src/Calculator.cpp, src/DVIToSVG.cpp, src/FontEncoding.cpp, - src/FontMap.cpp, src/SVGFontEmitter.cpp, src/SVGFontTraceEmitter.cpp: - replaced comparisions with "" with calls of empty() - - * src/FileFinder.cpp, src/FontMap.cpp, src/FontMap.h, - src/tests/FontMapTest.h, src/tests/dvips_test.map: - FontMap now supports dvips and dvipdfm maps - - * NEWS, configure.ac, doc/dvisvgm.1.in: - adapted configuration and documentation to new dvips map file support - -2009-01-27 Martin Gieseking - - * src/GFGlyphTracer.cpp, src/GFGlyphTracer.h, src/GFTracer.cpp, - src/GFTracer.h, src/Makefile.am, src/SVGFontTraceEmitter.cpp, - src/SVGFontTraceEmitter.h: - made GFTracer a generic class with template methods - -2009-01-26 Martin Gieseking - - * src/Bitmap.cpp, src/Bitmap.h, src/GFReader.cpp, src/GFReader.h, - src/GFTracer.cpp, src/Makefile.am: - improvements to GF handling, first skeletton of gf->metapost (gfprint) - - * src/InputBuffer.h: - fixed incompatible types bug - -2009-01-25 Martin Gieseking - - * src/InputBuffer.cpp, src/InputBuffer.h: - added missing include - - * src/FontMap.cpp, src/FontMap.h: - started redesign of FontMap, not complete yet - - * src/CharmapTranslator.cpp, src/DVIToSVG.cpp, src/FileFinder.cpp, - src/FileFinder.h, src/Font.cpp, src/FontEncoding.cpp, - src/FontManager.cpp, src/KPSFileFinder.cpp, src/KPSFileFinder.h, - src/Makefile.am, src/MetafontWrapper.cpp, src/TFM.cpp, src/dvisvgm.cpp: - renamed KPSFileFinder to FileFinder - - * src/FontMap.cpp: - basic dvips font map support, not complete yet - -2009-01-23 Martin Gieseking - - * doc/Makefile.am, doc/dvisvgm.1.in: - manpage updates - -2009-01-22 Martin Gieseking - - * src/FontMap.cpp: - forgot to remove address operator - - * src/KPSFileFinder.cpp, src/KPSFileFinder.h, src/dvisvgm.cpp: - added support for MiKTeX' new COM interface - - * src/DVIReader.cpp, src/FontManager.cpp, src/KPSFileFinder.cpp: - memory leak fixed - - * src/KPSFileFinder.cpp: - fixed throwing of COM exception - - * Makefile.am, NEWS, README, configure.ac, potracelib/Makefile.am: - updated version info to 0.6 - - * src/tests/CalculatorTest.h, src/tests/DirectoryTest.h, - src/tests/FontManagerTest.h, src/tests/FontMapTest.h, - src/tests/KPSFileFinderTest.h, src/tests/PageSizeTest.h, - src/tests/StreamCounterTest.h, src/tests/VectorStreamTest.h: - updated tests - - * doc/dvisvgm.1.in, src/Bitmap.cpp, src/Bitmap.h, src/BoundingBox.cpp, - src/BoundingBox.h, src/Calculator.cpp, src/Calculator.h, - src/CharmapTranslator.cpp, src/CharmapTranslator.h, src/DVIActions.cpp, - src/DVIActions.h, src/DVIBBoxActions.h, src/DVIReader.cpp, - src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Directory.cpp, - src/Directory.h, src/FileFinder.cpp, src/FileFinder.h, - src/FileSystem.cpp, src/FileSystem.h, src/Font.cpp, src/Font.h, - src/FontEmitter.h, src/FontEncoding.cpp, src/FontEncoding.h, - src/FontEngine.cpp, src/FontEngine.h, src/FontGlyph.cpp, src/FontGlyph.h, - src/FontManager.cpp, src/FontManager.h, src/FontMap.cpp, src/FontMap.h, - src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, src/GFTracer.h, - src/InputBuffer.cpp, src/InputBuffer.h, src/KPSFileFinder.cpp, - src/KPSFileFinder.h, src/Makefile.am, src/Matrix.cpp, src/Matrix.h, - src/Message.cpp, src/Message.h, src/MessageException.h, - src/MetafontWrapper.cpp, src/MetafontWrapper.h, src/PSInterpreter.cpp, - src/PSInterpreter.h, src/PageSize.cpp, src/PageSize.h, src/Pair.h, - src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, - src/StreamCounter.h, src/StreamReader.cpp, src/StreamReader.h, - src/TFM.cpp, src/TFM.h, src/TransformationMatrix.cpp, - src/TransformationMatrix.h, src/VFActions.h, src/VFReader.cpp, - src/VFReader.h, src/VectorStream.h, src/XMLDocTypeNode.h, - src/XMLDocument.cpp, src/XMLDocument.h, src/XMLNode.cpp, src/XMLNode.h, - src/XMLString.cpp, src/XMLString.h, src/dvisvgm.cpp, src/macros.h, - src/options.ggo, src/types.h: - updated file header comments - - * configure.ac: - added test whether dvipdfm.map is available - -2009-01-21 Martin Gieseking - - * src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, - src/FontEncoding.cpp, src/FontGlyph.cpp: - fixed bugs in handling of font encodings and virtual fonts - - * src/Calculator.cpp, src/DVIReader.cpp, src/DVIToSVGActions.cpp, - src/Directory.cpp, src/FontEncoding.cpp, src/FontEngine.cpp, - src/FontManager.cpp, src/FontMap.cpp, src/KPSFileFinder.cpp, - src/MetafontWrapper.cpp, src/PageSize.cpp, src/StreamReader.cpp, - src/TFM.cpp, src/TransformationMatrix.cpp, src/VFReader.cpp, - src/XMLDocument.cpp, src/XMLNode.cpp: - added in/out attributes to parameter documentation - -2009-01-20 Martin Gieseking - - * src/DVIReader.cpp, src/DVIToSVG.cpp, src/Font.h, src/FontEncoding.cpp, - src/FontEncoding.h, src/FontEngine.cpp, src/FontEngine.h, - src/FontGlyph.cpp, src/FontGlyph.h, src/FontManager.cpp, - src/FontManager.h, src/InputBuffer.cpp, src/InputBuffer.h, - src/SVGFontEmitter.cpp, src/SVGFontEmitter.h: - first working version with font encoding support - - * src/FontEngine.cpp, src/FontEngine.h, src/SVGFontEmitter.cpp: - fixed glyph positioning bug occured in conjunction with font encoding - - * src/SVGFontEmitter.cpp: - fixed memory bug - -2009-01-19 Martin Gieseking - - * src/FontEncoding.cpp, src/FontEncoding.h, src/FontEngine.cpp, - src/FontEngine.h, src/FontManager.cpp, src/FontManager.h, - src/FontMap.cpp, src/FontMap.h, src/KPSFileFinder.cpp, - src/KPSFileFinder.h: - more encoding implementations, not complete yet - - * src/DVIReader.cpp, src/FontEncoding.cpp, src/FontEncoding.h, - src/FontEngine.cpp, src/FontEngine.h, src/FontManager.cpp, - src/FontManager.h, src/FontMap.cpp: - partly working mapping support, but yet too slow - -2009-01-16 Martin Gieseking - - * src/TransformationMatrix.cpp: - fixed bug in argument assignment of transformation command M - -2009-01-15 Martin Gieseking - - * src/TransformationMatrix.cpp: - removed a dangerous loop remained from previous code - -2009-01-14 Martin Gieseking - - * potracelib/auxiliary.h, potracelib/bitmap.h, potracelib/curve.c, - potracelib/curve.h, potracelib/decompose.c, potracelib/decompose.h, - potracelib/lists.h, potracelib/potracelib.c, potracelib/potracelib.h, - potracelib/progress.h, potracelib/trace.c, potracelib/trace.h: - updated libpotrace to version 1.8 - - * src/FontEncoding.cpp, src/FontEncoding.h, src/InputBuffer.cpp, - src/InputBuffer.h, src/Makefile.am: - added basic skeleton for handling of font encodings - - * src/FileSystem.cpp, src/FileSystem.h: - const string parameters - - * src/dvisvgm.cpp: - updated copyright string - - * src/KPSFileFinder.cpp: - added enc-file support - -2009-01-13 Martin Gieseking - - * src/CharmapTranslator.cpp: - fixed crash on loading corrupt pfb-files - -2008-06-18 Martin Gieseking - - * src/Makefile.am: - adapted to latest gengetopt version - -2008-04-07 Martin Gieseking - - * src/Makefile.am: - added missing include path - - * src/DVIReader.cpp: - minor change - -2007-03-26 Martin Gieseking - - * NEWS, src/CharmapTranslator.cpp, src/CharmapTranslator.h, - src/DVIActions.h, src/DVIReader.cpp, src/DVIToSVG.cpp, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Font.h, - src/FontManager.cpp, src/Makefile.am, src/SVGFontTraceEmitter.cpp, - src/SVGFontTraceEmitter.h: - redesigned DVIActions and CharmapTranslator - - * src/DVIActions.cpp, src/DVIReader.cpp, src/DVIReader.h, - src/FontManager.cpp, src/tests/FontManagerTest.h: - few minor changes - -2007-03-25 Martin Gieseking - - * src/DVIActions.cpp, src/DVIActions.h, src/DVIBBoxActions.h, - src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/Font.cpp, src/Font.h, - src/FontManager.cpp, src/FontManager.h, src/StreamReader.cpp, - src/StreamReader.h, src/VFActions.h, src/VFReader.cpp, src/VFReader.h, - src/VectorStream.h: - first working version 0.5, release candidate 1 - - * src/DVIReader.cpp, src/DVIReader.h, src/VFActions.h: - minor fixes - -2007-03-23 Martin Gieseking - - * src/DVIReader.cpp, src/FontManager.cpp, src/FontManager.h, - src/KPSFileFinder.cpp, src/KPSFileFinder.h, src/VFReader.cpp: - more vf implementations, not complete yet - -2007-03-22 Martin Gieseking - - * NEWS, doc/Makefile.in, src/DVIReader.cpp, src/DVIReader.h, - src/DVIToSVG.cpp, src/DVIToSVG.h, src/FileSystem.cpp, src/FileSystem.h, - src/KPSFileFinder.cpp, src/KPSFileFinder.h, src/Makefile.am, - src/dvisvgm.cpp, src/tests/DirectoryTest.h, src/tests/FontManagerTest.h: - reintegrated font map initialization into KPSFileFinderm adapted some - tests - - * src/DVIReader.cpp, src/Font.cpp, src/Font.h, src/FontManager.cpp, - src/VFActions.h, src/VFReader.cpp, src/VFReader.h: - more vf implementations - -2007-03-21 Martin Gieseking - - * AUTHORS, Makefile.am, README, potracelib/Makefile.am, src/Directory.cpp, - src/Directory.h, src/KPSFileFinder.cpp, src/Makefile, src/Makefile.am, - src/Makefile.in, src/SVGFontTraceEmitter.cpp, src/test-all.cpp, - src/tests/DirectoryTest.h: - implemented Directory class for Linux, added DirectoryTest - - * src/Calculator.cpp, src/DVIReader.cpp, src/Directory.cpp, src/Font.h, - src/FontManager.cpp, src/Makefile, src/Makefile.am, src/Makefile.in, - src/MetafontWrapper.cpp, src/VFReader.cpp, src/VectorStream.h, - src/test-all.cpp, src/tests/VectorStreamTest.h: - removed redundant code and commented code fragments, added - VectorInputStream class - - * src/Directory.cpp, src/Directory.h, src/KPSFileFinder.cpp, - src/KPSFileFinder.h, src/dvisvgm.cpp: - completed MiKTeX font map file look-up, fixed bug in Directory class - - * src/KPSFileFinder.cpp, src/KPSFileFinder.h, src/dvisvgm.cpp: - implemented options -n and -m - -2007-03-20 Martin Gieseking - - * NEWS, doc/Makefile, doc/Makefile.in, doc/dvisvgm.1.in, - src/DVIReader.cpp, src/DVIToSVG.cpp, src/Font.cpp, src/Font.h, - src/FontManager.cpp, src/KPSFileFinder.cpp, src/Makefile, - src/Makefile.am, src/Makefile.in, src/VFReader.cpp, src/dvisvgm.cpp, - src/test-all.cpp, src/tests/KPSFileFinderTest.h: - added KPSFileFinderTest, added EmptyFont, fixed compilation error - - * src/Directory.cpp, src/Directory.h, src/FileSystem.cpp, src/FontMap.cpp, - src/FontMap.h, src/KPSFileFinder.cpp: - more changes for MiKTeX support - -2007-03-19 Martin Gieseking - - * src/CharmapTranslator.cpp, src/DVIToSVG.cpp, src/FontManager.cpp, - src/KPSFileFinder.cpp, src/KPSFileFinder.h, src/Makefile, - src/Makefile.am, src/Makefile.in, src/MetafontWrapper.cpp, src/TFM.cpp: - added mktexFOO support and font map lookups to KPSFileFinder - - * src/KPSFileFinder.cpp: - bug fixed, font maps work now - - * src/Font.cpp, src/Font.h, src/FontManager.cpp, src/FontMap.cpp, - src/FontMap.h, src/KPSFileFinder.cpp: - made sources comaptible with MikTeX - -2007-03-16 Martin Gieseking - - * src/Font.cpp, src/Font.h, src/FontManager.cpp, src/FontMap.cpp, - src/FontMap.h, src/KPSFileFinder.cpp, src/Makefile, src/Makefile.am, - src/Makefile.in, src/StreamReader.cpp, src/TFM.cpp, src/options.ggo, - src/tests/FontMapTest.h: - more coding in the font department, not finished yet - -2007-03-09 Martin Gieseking - - * src/CharmapTranslator.cpp, src/CharmapTranslator.h, src/DVIReader.cpp, - src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, src/Font.cpp, - src/FontManager.cpp, src/GFTracer.cpp, src/KPSFileFinder.cpp, - src/KPSFileFinder.h, src/Makefile, src/Makefile.am, src/Makefile.in, - src/MetafontWrapper.cpp, src/MetafontWrapper.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, - src/StreamReader.cpp, src/StreamReader.h, src/TFM.cpp, src/TFM.h, - src/VFReader.cpp, src/VFReader.h, src/dvisvgm.cpp, src/options.ggo, - src/test-all.cpp: - refactorings: extracted StreamReader class, replaced generic FileFinder - support by KPSFileFinder calls - -2007-03-08 Martin Gieseking - - * src/DVIActions.h, src/DVIBBoxActions.h, src/DVIReader.cpp, - src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/Font.cpp, src/Font.h, src/FontManager.cpp, - src/FontManager.h, src/KPSFileFinder.cpp, src/KPSFileFinder.h, - src/Makefile, src/Makefile.am, src/Makefile.in, src/Message.cpp, - src/dvisvgm.cpp, src/macros.h, src/test-all.cpp: - first unstable version with redesigned font handling - - * COPYING, Makefile, Makefile.am, Makefile.in, Martins_svg_neu.svg, NEWS, - aclocal.m4, cmdline.c, config.guess, config.h, config.h.in, - config.status, config.sub, configure.ac, depcomp, doc/Makefile, - doc/dvisvgm.1, doc/dvisvgm.1.in, gpl.txt, install-sh, missing, - src/FontManager.cpp, src/FontManager.h, src/Makefile.am, - src/VFReader.cpp, src/tests/FontManagerTest.h, stamp-h1, table.txt: - removed some garbage from the repository, added initial FontManagerTest - - * doc/dvisvgm.1, src/FontEngine.h, src/dvisvgm.cpp, - src/tests/FontManagerTest.h: - minor changes - - * src/DVIBBoxReader.cpp, src/DVIBBoxReader.h, src/Font.cpp, src/Font.h, - src/StreamCounter.h, src/dvisvgm.cpp: - fixed memory bug - - * src/DVIReader.cpp, src/DVIToSVGActions.cpp, src/Font.h, src/Makefile, - src/Makefile.am, src/Makefile.in, src/VFActions.h, src/VFReader.cpp, - src/VFReader.h, src/dvisvgm.cpp: - plugged VFReader and its actions into the code (not usable yet) - -2007-03-07 Martin Gieseking - - * src/Font.cpp, src/Font.h: - added Font classes (not yet error-free) - -2007-03-06 Martin Gieseking - - * src/DVIReader.h, src/DVIToSVG.cpp, src/FontManager.cpp, - src/FontManager.h: - added FontManager skeleton, fixed bug in makehead - -2007-03-03 Martin Gieseking - - * src/DVIReader.cpp, src/FontManager.cpp, src/VFReader.cpp: - added some more skeleton code - -2007-03-02 Martin Gieseking - - * src/DVIReader.cpp, src/Makefile, src/Makefile.in, src/VFReader.cpp, - src/VFReader.h, src/options.ggo: - added skeleton of VFReader - -2007-01-10 Martin Gieseking - - * src/Bitmap.cpp, src/Bitmap.h, src/BoundingBox.cpp, src/BoundingBox.h, - src/Calculator.cpp, src/Calculator.h, src/CharmapTranslator.cpp, - src/CharmapTranslator.h, src/DVIActions.h, src/DVIBBoxActions.h, - src/DVIBBoxReader.cpp, src/DVIBBoxReader.h, src/DVIReader.cpp, - src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/FileFinder.cpp, - src/FileFinder.h, src/FileSystem.cpp, src/FileSystem.h, - src/FontEmitter.h, src/FontEngine.cpp, src/FontEngine.h, - src/FontGlyph.cpp, src/FontGlyph.h, src/FontMap.cpp, src/FontMap.h, - src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, src/GFTracer.h, - src/KPSFileFinder.cpp, src/KPSFileFinder.h, src/Makefile, - src/Makefile.am, src/Makefile.in, src/Matrix.cpp, src/Matrix.h, - src/Message.cpp, src/Message.h, src/MessageException.h, - src/MetafontWrapper.cpp, src/MetafontWrapper.h, src/PSInterpreter.cpp, - src/PSInterpreter.h, src/PageSize.cpp, src/PageSize.h, src/Pair.h, - src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, - src/StreamCounter.h, src/TFM.cpp, src/TFM.h, - src/TransformationMatrix.cpp, src/TransformationMatrix.h, - src/XMLDocTypeNode.h, src/XMLDocument.cpp, src/XMLDocument.h, - src/XMLNode.cpp, src/XMLNode.h, src/XMLString.cpp, src/XMLString.h, - src/cmdline.c, src/cmdline.h, src/dvisvgm.cpp, src/getopt.c, - src/getopt.h, src/getopt1.c, src/gzstream.cpp, src/gzstream.h, - src/macros.h, src/miktex-core.def, src/miktex-kps.def, src/miktex-kps.h, - src/options.ggo, src/test-all.cpp, src/tests/CalculatorTest.h, - src/tests/PageSizeTest.h, src/tests/StreamCounterTest.h, src/types.h: - moved dir - - * INSTALL, Makefile.am, NEWS, README, configure.ac, doc/Makefile, - doc/Makefile.am, doc/Makefile.in, doc/dvisvgm.1, doc/dvisvgm.1.in, - gzstream/COPYING.LIB, gzstream/Makefile, gzstream/README, - gzstream/gzstream.cpp, gzstream/gzstream.h, gzstream/index.html, - gzstream/logo.gif, gzstream/test_gunzip.C, gzstream/test_gzip.C, - gzstream/version, map/cork-lm.map, potracelib/Makefile.am, - potracelib/auxiliary.h, potracelib/bitmap.h, potracelib/curve.c, - potracelib/curve.h, potracelib/decompose.c, potracelib/decompose.h, - potracelib/lists.h, potracelib/potracelib.c, potracelib/potracelib.h, - potracelib/progress.h, potracelib/trace.c, potracelib/trace.h: - moved sources - - * src/cmdline.c, src/cmdline.h: - remove unnecessary files - -2007-01-09 Martin Gieseking - - * INSTALL, Makefile.am, NEWS, README, configure.ac, doc/Makefile, - doc/Makefile.am, doc/Makefile.in, doc/dvisvgm.1, doc/dvisvgm.1.in, - gzstream/COPYING.LIB, gzstream/Makefile, gzstream/README, - gzstream/gzstream.cpp, gzstream/gzstream.h, gzstream/index.html, - gzstream/logo.gif, gzstream/test_gunzip.C, gzstream/test_gzip.C, - gzstream/version, potracelib/Makefile.am, potracelib/auxiliary.h, - potracelib/bitmap.h, potracelib/curve.c, potracelib/curve.h, - potracelib/decompose.c, potracelib/decompose.h, potracelib/lists.h, - potracelib/potracelib.c, potracelib/potracelib.h, potracelib/progress.h, - potracelib/trace.c, potracelib/trace.h, src/Bitmap.cpp, src/Bitmap.h, - src/BoundingBox.cpp, src/BoundingBox.h, src/Calculator.cpp, - src/Calculator.h, src/CharmapTranslator.cpp, src/CharmapTranslator.h, - src/DVIActions.h, src/DVIBBoxActions.h, src/DVIBBoxReader.cpp, - src/DVIBBoxReader.h, src/DVIReader.cpp, src/DVIReader.h, - src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/FileFinder.cpp, src/FileFinder.h, - src/FileSystem.cpp, src/FileSystem.h, src/FontEmitter.h, - src/FontEngine.cpp, src/FontEngine.h, src/FontGlyph.cpp, src/FontGlyph.h, - src/FontMap.cpp, src/FontMap.h, src/GFReader.cpp, src/GFReader.h, - src/GFTracer.cpp, src/GFTracer.h, src/KPSFileFinder.cpp, - src/KPSFileFinder.h, src/Makefile, src/Makefile.am, src/Makefile.in, - src/Matrix.cpp, src/Matrix.h, src/Message.cpp, src/Message.h, - src/MessageException.h, src/MetafontWrapper.cpp, src/MetafontWrapper.h, - src/PSInterpreter.cpp, src/PSInterpreter.h, src/PageSize.cpp, - src/PageSize.h, src/Pair.h, src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, - src/StreamCounter.h, src/TFM.cpp, src/TFM.h, - src/TransformationMatrix.cpp, src/TransformationMatrix.h, - src/XMLDocTypeNode.h, src/XMLDocument.cpp, src/XMLDocument.h, - src/XMLNode.cpp, src/XMLNode.h, src/XMLString.cpp, src/XMLString.h, - src/cmdline.c, src/cmdline.h, src/dvisvgm.cpp, src/getopt.c, - src/getopt.h, src/getopt1.c, src/gzstream.cpp, src/gzstream.h, - src/macros.h, src/miktex-core.def, src/miktex-kps.def, src/miktex-kps.h, - src/options.ggo, src/test-all.cpp, src/tests/CalculatorTest.h, - src/tests/PageSizeTest.h, src/tests/StreamCounterTest.h, src/types.h: - moved files to trunk subfolder - - * map/cork-lm.map: - moved files to trunk - -2007-01-05 Martin Gieseking - - * Makefile, Makefile.am, Makefile.in, README, config.status, configure.ac, - potracelib/Makefile.am, potracelib/bitops.h, potracelib/flate.c, - potracelib/flate.h, src/Bitmap.cpp, src/Bitmap.h, src/BoundingBox.cpp, - src/BoundingBox.h, src/Calculator.cpp, src/Calculator.h, - src/CharmapTranslator.cpp, src/CharmapTranslator.h, src/DVIActions.h, - src/DVIBBoxActions.h, src/DVIBBoxReader.cpp, src/DVIBBoxReader.h, - src/DVIReader.cpp, src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/FileFinder.cpp, - src/FileFinder.h, src/FileSystem.cpp, src/FileSystem.h, - src/FontEmitter.h, src/FontEngine.cpp, src/FontEngine.h, - src/FontGlyph.cpp, src/FontGlyph.h, src/FontMap.cpp, src/FontMap.h, - src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, src/GFTracer.h, - src/KPSFileFinder.cpp, src/KPSFileFinder.h, src/Makefile.am, - src/Matrix.cpp, src/Matrix.h, src/Message.cpp, src/Message.h, - src/MessageException.h, src/MetafontWrapper.cpp, src/MetafontWrapper.h, - src/PSInterpreter.cpp, src/PSInterpreter.h, src/PageSize.cpp, - src/PageSize.h, src/Pair.h, src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, - src/StreamCounter.h, src/TFM.cpp, src/TFM.h, - src/TransformationMatrix.cpp, src/TransformationMatrix.h, - src/XMLDocTypeNode.h, src/XMLDocument.cpp, src/XMLDocument.h, - src/XMLNode.cpp, src/XMLNode.h, src/XMLString.cpp, src/XMLString.h, - src/dvisvgm.cpp, src/macros.h, src/test-all.cpp, src/types.h: - minor modifications - -2007-01-03 Martin Gieseking - - * NEWS, src/KPSFileFinder.cpp: - updated homepage - - * Makefile, Makefile.am, Makefile.in, config.h, config.h.in, - config.status, configure, configure.ac, doc/Makefile, - potracelib/Makefile.am, potracelib/auxiliary.h, potracelib/bitmap.h, - potracelib/bitops.h, potracelib/curve.c, potracelib/curve.h, - potracelib/decompose.c, potracelib/decompose.h, potracelib/flate.c, - potracelib/flate.h, potracelib/lists.h, potracelib/potracelib.c, - potracelib/potracelib.h, potracelib/progress.h, potracelib/trace.c, - potracelib/trace.h, src/Makefile, src/Makefile.am, src/Makefile.in: - added potracelib to distribution - - * configure: - removed configure from repository - -2006-12-31 Martin Gieseking - - * NEWS, configure.ac, src/DVIToSVG.cpp, src/FileSystem.cpp, - src/FontEngine.cpp, src/GFTracer.cpp, src/KPSFileFinder.cpp, - src/Matrix.h, src/Message.cpp, src/PageSize.cpp, - src/TransformationMatrix.cpp, src/dvisvgm.cpp: - updated to MikTeX 2.5 support - - * Makefile, config.status, configure, configure.ac, doc/Makefile, - doc/dvisvgm.1, src/FileSystem.cpp, src/FontEngine.cpp, - src/KPSFileFinder.cpp, src/Makefile, src/dvisvgm.cpp, src/test-all.cpp: - some minor fixes - - * src/KPSFileFinder.cpp: - fixed namepsace bug - -2006-08-01 Martin Gieseking - - * Makefile, Makefile.in, NEWS, aclocal.m4, autom4te.cache/output.0, - autom4te.cache/requests, autom4te.cache/traces.0, config.h, config.log, - config.status, configure, configure.ac, doc/Makefile, doc/Makefile.in, - doc/dvisvgm.1, src/FontEngine.cpp, src/Makefile, src/Makefile.in, - src/cmdline.c, src/cmdline.h, src/dvisvgm.cpp: - added support for freetype version >= 2.1.1 - - * configure.ac: - enabled svn keyword expansion - -2006-04-12 Martin Gieseking - - * COPYING, INSTALL, Makefile, Makefile.am, Makefile.in, - Martins_svg_neu.svg, NEWS, README, aclocal.m4, autom4te.cache/output.0, - autom4te.cache/requests, autom4te.cache/traces.0, cmdline.c, - config.guess, config.h, config.h.in, config.log, config.status, - config.sub, configure, configure.ac, depcomp, doc/Makefile, - doc/Makefile.am, doc/Makefile.in, doc/dvisvgm.1, doc/dvisvgm.1.in, - gpl.txt, gzstream/COPYING.LIB, gzstream/Makefile, gzstream/README, - gzstream/gzstream.cpp, gzstream/gzstream.h, gzstream/index.html, - gzstream/logo.gif, gzstream/test_gunzip.C, gzstream/test_gzip.C, - gzstream/version, install-sh, map/cork-lm.map, missing, src/Bitmap.cpp, - src/Bitmap.h, src/BoundingBox.cpp, src/BoundingBox.h, src/Calculator.cpp, - src/Calculator.h, src/CharmapTranslator.cpp, src/CharmapTranslator.h, - src/DVIActions.h, src/DVIBBoxActions.h, src/DVIBBoxReader.cpp, - src/DVIBBoxReader.h, src/DVIReader.cpp, src/DVIReader.h, - src/DVIToSVG.cpp, src/DVIToSVG.h, src/DVIToSVGActions.cpp, - src/DVIToSVGActions.h, src/FileFinder.cpp, src/FileFinder.h, - src/FileSystem.cpp, src/FileSystem.h, src/FontEmitter.h, - src/FontEngine.cpp, src/FontEngine.h, src/FontGlyph.cpp, src/FontGlyph.h, - src/FontMap.cpp, src/FontMap.h, src/GFReader.cpp, src/GFReader.h, - src/GFTracer.cpp, src/GFTracer.h, src/KPSFileFinder.cpp, - src/KPSFileFinder.h, src/Makefile, src/Makefile.am, src/Makefile.in, - src/Matrix.cpp, src/Matrix.h, src/Message.cpp, src/Message.h, - src/MessageException.h, src/MetafontWrapper.cpp, src/MetafontWrapper.h, - src/PSInterpreter.cpp, src/PSInterpreter.h, src/PageSize.cpp, - src/PageSize.h, src/Pair.h, src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, - src/StreamCounter.h, src/TFM.cpp, src/TFM.h, - src/TransformationMatrix.cpp, src/TransformationMatrix.h, - src/XMLDocTypeNode.h, src/XMLDocument.cpp, src/XMLDocument.h, - src/XMLNode.cpp, src/XMLNode.h, src/XMLString.cpp, src/XMLString.h, - src/cmdline.c, src/cmdline.h, src/dvisvgm.cpp, src/getopt.c, - src/getopt.h, src/getopt1.c, src/gzstream.cpp, src/gzstream.h, - src/lshort-cm.dvi, src/lshort-cm.svg, src/lshort-cm.svgz, src/lshort.dvi, - src/lshort.svg, src/lshort.svgz, src/macros.h, src/miktex-core.def, - src/miktex-kps.def, src/miktex-kps.h, src/options.ggo, src/test-all.cpp, - src/tests/CalculatorTest.h, src/tests/PageSizeTest.h, - src/tests/StreamCounterTest.h, src/types.h, stamp-h1, table.txt: - initial import - - * src/Bitmap.cpp, src/Bitmap.h, src/BoundingBox.cpp, src/BoundingBox.h, - src/Calculator.cpp, src/Calculator.h, src/CharmapTranslator.cpp, - src/CharmapTranslator.h, src/DVIActions.h, src/DVIBBoxActions.h, - src/DVIBBoxReader.cpp, src/DVIBBoxReader.h, src/DVIReader.cpp, - src/DVIReader.h, src/DVIToSVG.cpp, src/DVIToSVG.h, - src/DVIToSVGActions.cpp, src/DVIToSVGActions.h, src/FileFinder.cpp, - src/FileFinder.h, src/FileSystem.cpp, src/FileSystem.h, - src/FontEmitter.h, src/FontEngine.cpp, src/FontEngine.h, - src/FontGlyph.cpp, src/FontGlyph.h, src/FontMap.cpp, src/FontMap.h, - src/GFReader.cpp, src/GFReader.h, src/GFTracer.cpp, src/GFTracer.h, - src/KPSFileFinder.cpp, src/KPSFileFinder.h, src/Message.cpp, - src/Message.h, src/MessageException.h, src/MetafontWrapper.cpp, - src/MetafontWrapper.h, src/PageSize.cpp, src/PageSize.h, src/Pair.h, - src/SVGFontEmitter.cpp, src/SVGFontEmitter.h, - src/SVGFontTraceEmitter.cpp, src/SVGFontTraceEmitter.h, - src/StreamCounter.h, src/TFM.cpp, src/TFM.h, - src/TransformationMatrix.cpp, src/TransformationMatrix.h, - src/XMLDocTypeNode.h, src/XMLDocument.cpp, src/XMLDocument.h, - src/XMLNode.cpp, src/XMLNode.h, src/XMLString.cpp, src/XMLString.h, - src/dvisvgm.cpp, src/macros.h, src/test-all.cpp, - src/tests/CalculatorTest.h, src/tests/PageSizeTest.h, - src/tests/StreamCounterTest.h, src/types.h: - changed keyword tags - - * src/lshort-cm.dvi, src/lshort-cm.svg, src/lshort-cm.svgz, - src/lshort.dvi, src/lshort.svg, src/lshort.svgz: - removed files that need not be version controlled - diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.am b/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.am index 1aedd13864d..bcf82833315 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.am +++ b/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.am @@ -8,6 +8,10 @@ EXTRA_DIST = COPYING SUBDIRS = libs src #not for TL: tests doc ACLOCAL_AMFLAGS = -I m4 +if USE_BUNDLED_LIBS +AM_DISTCHECK_CONFIGURE_FLAGS = --enable-bundled-libs +endif + if CODE_COVERAGE_ENABLED lcov_dir=$(top_builddir)/lcov lcov_file=$(lcov_dir)/lcov.info diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in index 819a2239c0f..46451773dfe 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in @@ -94,7 +94,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../../m4/ax_cxx_compile_stdcxx.m4 \ $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \ $(top_srcdir)/../../m4/kpse-freetype2-flags.m4 \ $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \ - $(top_srcdir)/../../m4/kpse-potrace-flags.m4 \ $(top_srcdir)/../../m4/kpse-warnings.m4 \ $(top_srcdir)/../../m4/kpse-win32.m4 \ $(top_srcdir)/../../m4/kpse-zlib-flags.m4 \ @@ -166,8 +165,8 @@ am__define_uniq_tagged_files = \ ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) -am__DIST_COMMON = $(srcdir)/Makefile.in AUTHORS COPYING ChangeLog \ - INSTALL NEWS README +am__DIST_COMMON = $(srcdir)/Makefile.in AUTHORS COPYING INSTALL NEWS \ + README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ @@ -196,7 +195,9 @@ am__relativize = \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AM_LDFLAGS = @AM_LDFLAGS@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -215,6 +216,7 @@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLD = @CXXLD@ CYGPATH_W = @CYGPATH_W@ +DATE = @DATE@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ @@ -271,9 +273,6 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ -POTRACE_DEPEND = @POTRACE_DEPEND@ -POTRACE_INCLUDES = @POTRACE_INCLUDES@ -POTRACE_LIBS = @POTRACE_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -342,6 +341,7 @@ AUTOMAKE_OPTIONS = foreign EXTRA_DIST = COPYING SUBDIRS = libs src #not for TL: tests doc ACLOCAL_AMFLAGS = -I m4 +@USE_BUNDLED_LIBS_TRUE@AM_DISTCHECK_CONFIGURE_FLAGS = --enable-bundled-libs @CODE_COVERAGE_ENABLED_TRUE@lcov_dir = $(top_builddir)/lcov @CODE_COVERAGE_ENABLED_TRUE@lcov_file = $(lcov_dir)/lcov.info all: all-recursive diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/NEWS b/Build/source/texk/dvisvgm/dvisvgm-src/NEWS index 1b038ee5bd5..dc9a456e988 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/NEWS +++ b/Build/source/texk/dvisvgm/dvisvgm-src/NEWS @@ -1,4 +1,4 @@ -dvisvgm-2.4.2 (2018-18-07) +dvisvgm-2.4.2 (2018-07-18) - fixed height and depth values computed when using the preview package - removed additional borders from the bounding boxes of hyperlinked areas - prevent warnings if special "psfile" is called with argument "/dev/null" diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/README b/Build/source/texk/dvisvgm/dvisvgm-src/README index 611bdba3324..008ffb4a2dd 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/README +++ b/Build/source/texk/dvisvgm/dvisvgm-src/README @@ -3,7 +3,7 @@ dvisvgm -- A DVI to SVG converter DESCRIPTION dvisvgm is a utility for TeX/LaTeX users. It converts DVI, EPS, and - singe-page PDF files to the XML-based scalable vector graphics format SVG. + PDF files to the XML-based scalable vector graphics format SVG. DEPENDENCIES @@ -43,7 +43,7 @@ DEPENDENCIES * potracelib (http://potrace.sourceforge.net) Peter Selinger's bitmap tracing library is utilized to vectorize Metafont's - bitmap output. + bitmap output. A recent version is also part of the dvisvgm sources. * ttfautohint (https://www.freetype.org/ttfautohint) dvisvgm can optionally be built with ttfautohint support to replace the @@ -77,9 +77,15 @@ BUILDING DVISVGM FROM SOURCE options if necessary. Quick installation info: + * ensure that the development packages of all libraries, listed above, + are installed * type "./autogen.sh" if "configure" is not present in the dvisvgm root folder - * type "./configure" + * either type "./configure" if you don't want to use the bundled libraries + brotli, woff2, and xxHash but link against the corresponding + system libraries, + or type "./configure --enable-bundled-libs" in order to build and + statically link the bundled libraries. * type "make" * type "make install" as root (or "sudo make install") diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/config.h.in b/Build/source/texk/dvisvgm/dvisvgm-src/config.h.in index f847b92cb0b..d7784f5f874 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/config.h.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/config.h.in @@ -49,6 +49,9 @@ /* Define to 1 if you have the `ttfautohint' library (-lttfautohint). */ #undef HAVE_LIBTTFAUTOHINT +/* Define to 1 if you have the `xxhash' library (-lxxhash). */ +#undef HAVE_LIBXXHASH + /* Define to 1 if you have the `z' library (-lz). */ #undef HAVE_LIBZ @@ -103,6 +106,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_TTFAUTOHINT_H +/* Define to 1 if you have the `umask' function. */ +#undef HAVE_UMASK + /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac b/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac index 1a0aa401f27..8837994a92d 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac +++ b/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac @@ -4,8 +4,8 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) -AC_INIT([dvisvgm],[2.4.2],[martin.gieseking@uos.de]) -DATE="July 2018" +AC_INIT([dvisvgm],[2.5],[martin.gieseking@uos.de]) +DATE="August 2018" AC_CONFIG_SRCDIR(src) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([m4]) @@ -98,13 +98,35 @@ AC_ARG_ENABLE([woff], [AS_HELP_STRING([--disable-woff], [Disable WOFF support @<:@default=no@:>@])], [], [enable_woff=yes]) +AM_CONDITIONAL([ENABLE_WOFF], [test "x$enable_woff" = "xyes"]) AC_ARG_WITH([ttfautohint], [AS_HELP_STRING([--with-ttfautohint@<:@=prefix@:>@], [enable ttfautohint support (disabled by default)])], [with_ttfautohint="$withval"], [with_ttfautohint=no]) -AM_CONDITIONAL([ENABLE_WOFF], [test "x$enable_woff" = "xyes"]) +# Add option to enable linking of bundled libraries (brotli, woff2, xxhash). +AC_ARG_ENABLE([bundled-libs], + [AS_HELP_STRING([--enable-bundled-libs], [use bundled libraries instead of the system ones @<:@default=no@:>@])], + [use_bundled_libs=yes]) +AM_CONDITIONAL([USE_BUNDLED_LIBS], [test "x$use_bundled_libs" = "xyes"]) + +# If option --enable-bundled-libs is not given, look for system libraries of brotli, woff2, and xxhash. +AS_IF([test "x$use_bundled_libs" != "xyes"], + [AC_CHECK_HEADER([potracelib.h], + [AC_CHECK_LIB(potrace, potrace_trace,, + [AC_MSG_ERROR([system library 'libpotrace' not found])])], + [AC_MSG_ERROR([header file 'potracelib.h' for system library 'libpotrace' not found])])] + [AS_IF([test "x$enable_woff" = "xyes"], + [PKG_CHECK_MODULES([BROTLI], [libbrotlienc],, + [AC_MSG_ERROR([system library 'libbrotlienc' not found])])] + [PKG_CHECK_MODULES([WOFF2], [libwoff2enc],, + [AC_MSG_ERROR([system library 'libwoff2enc' not found])])])] + [AC_CHECK_HEADER([xxhash.h], + [AC_CHECK_LIB(xxhash, XXH32,, + [AC_MSG_ERROR([system library 'libxxhash' not found])])], + [AC_MSG_ERROR([header file 'xxhash.h' for system library 'libxxhash' not found])])]) + AS_IF([test "x$enable_woff" != "xyes"], [AC_DEFINE([DISABLE_WOFF], 1, [Define if WOFF support is disabled])], [AS_IF([test "x$with_ttfautohint" != "xno"], @@ -138,7 +160,7 @@ AC_STRUCT_TM # Check for library functions. AC_FUNC_STAT -AC_CHECK_FUNCS([ftime gettimeofday sigaction uselocale]) +AC_CHECK_FUNCS_ONCE([ftime gettimeofday sigaction umask uselocale]) # add options for selection of "optional" library locations # currently these libraries are mandatory; the --with-foo options @@ -200,6 +222,7 @@ AC_CONFIG_FILES([ libs/brotli/Makefile libs/clipper/Makefile libs/ff-woff/Makefile + libs/potrace/Makefile libs/variant/Makefile libs/woff2/Makefile libs/xxHash/Makefile diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/doc/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/doc/Makefile.in index 220f72836a2..b71348b5ae1 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/doc/Makefile.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/doc/Makefile.in @@ -90,7 +90,11 @@ host_triplet = @host@ target_triplet = @target@ subdir = doc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \ + $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) @@ -162,6 +166,8 @@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +BROTLI_CFLAGS = @BROTLI_CFLAGS@ +BROTLI_LIBS = @BROTLI_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -241,6 +247,8 @@ STRIP = @STRIP@ TTFAUTOHINT_CFLAGS = @TTFAUTOHINT_CFLAGS@ TTFAUTOHINT_LIBS = @TTFAUTOHINT_LIBS@ VERSION = @VERSION@ +WOFF2_CFLAGS = @WOFF2_CFLAGS@ +WOFF2_LIBS = @WOFF2_LIBS@ XMLTO = @XMLTO@ XSLTPROC = @XSLTPROC@ ZLIB_CFLAGS = @ZLIB_CFLAGS@ @@ -326,9 +334,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu doc/Makefile + $(AUTOMAKE) --foreign doc/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1 b/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1 index 036a281aa7e..43492e225b9 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1 +++ b/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1 @@ -2,12 +2,12 @@ .\" Title: dvisvgm .\" Author: Martin Gieseking .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 07/18/2018 +.\" Date: 08/08/2018 .\" Manual: dvisvgm Manual -.\" Source: dvisvgm 2.4.2 +.\" Source: dvisvgm 2.5 .\" Language: English .\" -.TH "DVISVGM" "1" "07/18/2018" "dvisvgm 2\&.4\&.2" "dvisvgm Manual" +.TH "DVISVGM" "1" "08/08/2018" "dvisvgm 2\&.5" "dvisvgm Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -527,9 +527,11 @@ converts all pages starting with page 10\&. Please consider that the page values .PP \fB\-P, \-\-pdf\fR .RS 4 -If this option is given, dvisvgm does not expect a DVI but a PDF input file, and tries to convert it to SVG\&. In order to do so, a single +If this option is given, dvisvgm does not expect a DVI but a PDF input file, and tries to convert it to SVG\&. Similar to the conversion of DVI files, only the first page is processed by default\&. Option +\fB\-\-page\fR +can be used to select different pages, page ranges, and/or page sequences\&. The conversion is realized by creating a single \fIpdffile\fR -special command is created and forwarded to the PostScript special handler\&. This option is only available if dvisvgm was built with PostScript support enabled, and requires Ghostscript to be available\&. See option +special command which is forwarded to the PostScript special handler\&. Therefore, this option is only available if dvisvgm was built with PostScript support enabled, and requires Ghostscript to be accessible\&. See option \fB\-\-libgs\fR for further information\&. .RE @@ -770,12 +772,16 @@ page width in TeX point units (0 in case of T} .TE .sp 1 -Furthermore, you can use the length constants +Furthermore, you can use the 9 length constants \fBpt\fR, +\fBbp\fR, +\fBcm\fR, \fBmm\fR, -\fBcm\fR -and -\fBin\fR, e\&.g\&. +\fBin\fR, +\fBpc\fR, +\fBdd\fR, +\fBcc\fR, and +\fBsp\fR, e\&.g\&. \fB2cm\fR or \fB1\&.6in\fR\&. Thus, option @@ -788,7 +794,8 @@ For single transformations, there are also the short\-hand options and \fB\-r\fR available\&. In contrast to the -\fB\-\-transform\fR* commands, the order of these options is not significant, so that it\(cqs not possible to describe transformation sequences with them\&. +\fB\-\-transform\fR +commands, the order of these options is not significant, so that it\(cqs not possible to describe transformation sequences with them\&. .sp .5v .RE .RE diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.txt.in b/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.txt.in index dff70dd0ceb..d86a7e724af 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.txt.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.txt.in @@ -384,10 +384,12 @@ gets number 1. *-P, --pdf*:: If this option is given, dvisvgm does not expect a DVI but a PDF input file, and tries to convert -it to SVG. In order to do so, a single 'pdffile' special command is created and forwarded to the -PostScript special handler. -This option is only available if dvisvgm was built with PostScript support enabled, and requires -Ghostscript to be available. See option *--libgs* for further information. +it to SVG. Similar to the conversion of DVI files, only the first page is processed by default. +Option *--page* can be used to select different pages, page ranges, and/or page sequences. +The conversion is realized by creating a single 'pdffile' special command which is forwarded to +the PostScript special handler. Therefore, this option is only available if dvisvgm was built +with PostScript support enabled, and requires Ghostscript to be accessible. See option *--libgs* +for further information. *-d, --precision*='digits':: Specifies the maximal number of decimal places applied to floating-point attribute values. @@ -502,12 +504,12 @@ Additionally, some pre-defined constants are provided: *h*:: page height in TeX point units (0 in case of *-bnone*) *w*:: page width in TeX point units (0 in case of *-bnone*) -Furthermore, you can use the length constants *pt*, *mm*, *cm* and *in*, e.g. -+2cm+ or +1.6in+. Thus, option +-TT1in,0R45+ moves the page content 1 inch to the right and rotates it -by 45 degrees around the page center afterwards. +Furthermore, you can use the 9 length constants +pt+, +bp+, +cm+, +mm+, +in+, +pc+, +dd+, +cc+, +and +sp+, e.g. +2cm+ or +1.6in+. Thus, option +-TT1in,0R45+ moves the page content 1 inch to +the right and rotates it by 45 degrees around the page center afterwards. For single transformations, there are also the short-hand options *-c*, *-t* and *-r* available. -In contrast to the *--transform** commands, the order of these options is not significant, so +In contrast to the *--transform* commands, the order of these options is not significant, so that it's not possible to describe transformation sequences with them. ================================================================================================= diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/Makefile.am b/Build/source/texk/dvisvgm/dvisvgm-src/libs/Makefile.am index 4a83b99a890..c81944de2b8 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/Makefile.am +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/Makefile.am @@ -3,7 +3,7 @@ ## ## Process this file with automake. -SUBDIRS = clipper variant xxHash +SUBDIRS = clipper potrace variant xxHash if ENABLE_WOFF SUBDIRS += brotli ff-woff woff2 diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/libs/Makefile.in index 5176ed5540a..31d1c8bb122 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/Makefile.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/Makefile.in @@ -95,7 +95,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../../m4/ax_cxx_compile_stdcxx.m4 \ $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \ $(top_srcdir)/../../m4/kpse-freetype2-flags.m4 \ $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \ - $(top_srcdir)/../../m4/kpse-potrace-flags.m4 \ $(top_srcdir)/../../m4/kpse-warnings.m4 \ $(top_srcdir)/../../m4/kpse-win32.m4 \ $(top_srcdir)/../../m4/kpse-zlib-flags.m4 \ @@ -166,7 +165,7 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -DIST_SUBDIRS = clipper variant xxHash brotli ff-woff woff2 +DIST_SUBDIRS = clipper potrace variant xxHash brotli ff-woff woff2 am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ @@ -196,7 +195,9 @@ am__relativize = \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AM_LDFLAGS = @AM_LDFLAGS@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -215,6 +216,7 @@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLD = @CXXLD@ CYGPATH_W = @CYGPATH_W@ +DATE = @DATE@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ @@ -271,9 +273,6 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ -POTRACE_DEPEND = @POTRACE_DEPEND@ -POTRACE_INCLUDES = @POTRACE_INCLUDES@ -POTRACE_LIBS = @POTRACE_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -338,7 +337,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = clipper variant xxHash $(am__append_1) +SUBDIRS = clipper potrace variant xxHash $(am__append_1) all: all-recursive .SUFFIXES: diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/Makefile.am b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/Makefile.am index e6a446d333c..04857a9e2d4 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/Makefile.am +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/Makefile.am @@ -1,3 +1,4 @@ +if USE_BUNDLED_LIBS noinst_LIBRARIES = libbrotli.a libbrotli_a_SOURCES = \ common/constants.h \ @@ -73,10 +74,10 @@ libbrotli_a_SOURCES = \ include/brotli/port.h \ include/brotli/types.h -EXTRA_DIST = LICENSE - AM_CFLAGS = -Wall -I$(srcdir)/include @CODE_COVERAGE_RULES@ +endif +EXTRA_DIST = LICENSE CLEANFILES = *.gcda *.gcno diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/Makefile.in index 9f8132a404c..c07172f2e3c 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/Makefile.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/brotli/Makefile.in @@ -95,7 +95,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../../m4/ax_cxx_compile_stdcxx.m4 \ $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \ $(top_srcdir)/../../m4/kpse-freetype2-flags.m4 \ $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \ - $(top_srcdir)/../../m4/kpse-potrace-flags.m4 \ $(top_srcdir)/../../m4/kpse-warnings.m4 \ $(top_srcdir)/../../m4/kpse-win32.m4 \ $(top_srcdir)/../../m4/kpse-zlib-flags.m4 \ @@ -120,18 +119,57 @@ am__v_AR_0 = @echo " AR " $@; am__v_AR_1 = libbrotli_a_AR = $(AR) $(ARFLAGS) libbrotli_a_LIBADD = +am__libbrotli_a_SOURCES_DIST = common/constants.h common/context.h \ + common/dictionary.c common/dictionary.h common/platform.h \ + common/transform.c common/transform.h common/version.h \ + enc/backward_references.c enc/backward_references.h \ + enc/backward_references_hq.c enc/backward_references_hq.h \ + enc/backward_references_inc.h enc/bit_cost.c enc/bit_cost.h \ + enc/bit_cost_inc.h enc/block_encoder_inc.h \ + enc/block_splitter.c enc/block_splitter.h \ + enc/block_splitter_inc.h enc/brotli_bit_stream.c \ + enc/brotli_bit_stream.h enc/cluster.c enc/cluster.h \ + enc/cluster_inc.h enc/command.h enc/compress_fragment.c \ + enc/compress_fragment.h enc/compress_fragment_two_pass.c \ + enc/compress_fragment_two_pass.h enc/dictionary_hash.c \ + enc/dictionary_hash.h enc/encode.c enc/encoder_dict.c \ + enc/encoder_dict.h enc/entropy_encode.c enc/entropy_encode.h \ + enc/entropy_encode_static.h enc/fast_log.h \ + enc/find_match_length.h enc/hash_composite_inc.h \ + enc/hash_forgetful_chain_inc.h enc/hash.h \ + enc/hash_longest_match64_inc.h enc/hash_longest_match_inc.h \ + enc/hash_longest_match_quickly_inc.h enc/hash_rolling_inc.h \ + enc/hash_to_binary_tree_inc.h enc/histogram.c enc/histogram.h \ + enc/histogram_inc.h enc/literal_cost.c enc/literal_cost.h \ + enc/memory.c enc/memory.h enc/metablock.c enc/metablock.h \ + enc/metablock_inc.h enc/params.h enc/prefix.h enc/quality.h \ + enc/ringbuffer.h enc/static_dict.c enc/static_dict.h \ + enc/static_dict_lut.h enc/utf8_util.c enc/utf8_util.h \ + enc/write_bits.h include/brotli/decode.h \ + include/brotli/encode.h include/brotli/port.h \ + include/brotli/types.h am__dirstamp = $(am__leading_dot)dirstamp -am_libbrotli_a_OBJECTS = common/dictionary.$(OBJEXT) \ - common/transform.$(OBJEXT) enc/backward_references.$(OBJEXT) \ - enc/backward_references_hq.$(OBJEXT) enc/bit_cost.$(OBJEXT) \ - enc/block_splitter.$(OBJEXT) enc/brotli_bit_stream.$(OBJEXT) \ - enc/cluster.$(OBJEXT) enc/compress_fragment.$(OBJEXT) \ - enc/compress_fragment_two_pass.$(OBJEXT) \ - enc/dictionary_hash.$(OBJEXT) enc/encode.$(OBJEXT) \ - enc/encoder_dict.$(OBJEXT) enc/entropy_encode.$(OBJEXT) \ - enc/histogram.$(OBJEXT) enc/literal_cost.$(OBJEXT) \ - enc/memory.$(OBJEXT) enc/metablock.$(OBJEXT) \ - enc/static_dict.$(OBJEXT) enc/utf8_util.$(OBJEXT) +@USE_BUNDLED_LIBS_TRUE@am_libbrotli_a_OBJECTS = \ +@USE_BUNDLED_LIBS_TRUE@ common/dictionary.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ common/transform.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ enc/backward_references.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ enc/backward_references_hq.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ enc/bit_cost.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ enc/block_splitter.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ enc/brotli_bit_stream.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ enc/cluster.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ enc/compress_fragment.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ enc/compress_fragment_two_pass.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ enc/dictionary_hash.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ enc/encode.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ enc/encoder_dict.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ enc/entropy_encode.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ enc/histogram.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ enc/literal_cost.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ enc/memory.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ enc/metablock.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ enc/static_dict.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ enc/utf8_util.$(OBJEXT) libbrotli_a_OBJECTS = $(am_libbrotli_a_OBJECTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -185,7 +223,7 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libbrotli_a_SOURCES) -DIST_SOURCES = $(libbrotli_a_SOURCES) +DIST_SOURCES = $(am__libbrotli_a_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -215,7 +253,9 @@ am__DIST_COMMON = $(srcdir)/Makefile.in \ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AM_LDFLAGS = @AM_LDFLAGS@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -234,6 +274,7 @@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLD = @CXXLD@ CYGPATH_W = @CYGPATH_W@ +DATE = @DATE@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ @@ -290,9 +331,6 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ -POTRACE_DEPEND = @POTRACE_DEPEND@ -POTRACE_INCLUDES = @POTRACE_INCLUDES@ -POTRACE_LIBS = @POTRACE_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -357,83 +395,83 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -noinst_LIBRARIES = libbrotli.a -libbrotli_a_SOURCES = \ - common/constants.h \ - common/context.h \ - common/dictionary.c \ - common/dictionary.h \ - common/platform.h \ - common/transform.c \ - common/transform.h \ - common/version.h \ - enc/backward_references.c \ - enc/backward_references.h \ - enc/backward_references_hq.c \ - enc/backward_references_hq.h \ - enc/backward_references_inc.h \ - enc/bit_cost.c \ - enc/bit_cost.h \ - enc/bit_cost_inc.h \ - enc/block_encoder_inc.h \ - enc/block_splitter.c \ - enc/block_splitter.h \ - enc/block_splitter_inc.h \ - enc/brotli_bit_stream.c \ - enc/brotli_bit_stream.h \ - enc/cluster.c \ - enc/cluster.h \ - enc/cluster_inc.h \ - enc/command.h \ - enc/compress_fragment.c \ - enc/compress_fragment.h \ - enc/compress_fragment_two_pass.c \ - enc/compress_fragment_two_pass.h \ - enc/dictionary_hash.c \ - enc/dictionary_hash.h \ - enc/encode.c \ - enc/encoder_dict.c \ - enc/encoder_dict.h \ - enc/entropy_encode.c \ - enc/entropy_encode.h \ - enc/entropy_encode_static.h \ - enc/fast_log.h \ - enc/find_match_length.h \ - enc/hash_composite_inc.h \ - enc/hash_forgetful_chain_inc.h \ - enc/hash.h \ - enc/hash_longest_match64_inc.h \ - enc/hash_longest_match_inc.h \ - enc/hash_longest_match_quickly_inc.h \ - enc/hash_rolling_inc.h \ - enc/hash_to_binary_tree_inc.h \ - enc/histogram.c \ - enc/histogram.h \ - enc/histogram_inc.h \ - enc/literal_cost.c \ - enc/literal_cost.h \ - enc/memory.c \ - enc/memory.h \ - enc/metablock.c \ - enc/metablock.h \ - enc/metablock_inc.h \ - enc/params.h \ - enc/prefix.h \ - enc/quality.h \ - enc/ringbuffer.h \ - enc/static_dict.c \ - enc/static_dict.h \ - enc/static_dict_lut.h \ - enc/utf8_util.c \ - enc/utf8_util.h \ - enc/write_bits.h \ - include/brotli/decode.h \ - include/brotli/encode.h \ - include/brotli/port.h \ - include/brotli/types.h - +@USE_BUNDLED_LIBS_TRUE@noinst_LIBRARIES = libbrotli.a +@USE_BUNDLED_LIBS_TRUE@libbrotli_a_SOURCES = \ +@USE_BUNDLED_LIBS_TRUE@ common/constants.h \ +@USE_BUNDLED_LIBS_TRUE@ common/context.h \ +@USE_BUNDLED_LIBS_TRUE@ common/dictionary.c \ +@USE_BUNDLED_LIBS_TRUE@ common/dictionary.h \ +@USE_BUNDLED_LIBS_TRUE@ common/platform.h \ +@USE_BUNDLED_LIBS_TRUE@ common/transform.c \ +@USE_BUNDLED_LIBS_TRUE@ common/transform.h \ +@USE_BUNDLED_LIBS_TRUE@ common/version.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/backward_references.c \ +@USE_BUNDLED_LIBS_TRUE@ enc/backward_references.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/backward_references_hq.c \ +@USE_BUNDLED_LIBS_TRUE@ enc/backward_references_hq.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/backward_references_inc.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/bit_cost.c \ +@USE_BUNDLED_LIBS_TRUE@ enc/bit_cost.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/bit_cost_inc.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/block_encoder_inc.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/block_splitter.c \ +@USE_BUNDLED_LIBS_TRUE@ enc/block_splitter.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/block_splitter_inc.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/brotli_bit_stream.c \ +@USE_BUNDLED_LIBS_TRUE@ enc/brotli_bit_stream.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/cluster.c \ +@USE_BUNDLED_LIBS_TRUE@ enc/cluster.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/cluster_inc.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/command.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/compress_fragment.c \ +@USE_BUNDLED_LIBS_TRUE@ enc/compress_fragment.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/compress_fragment_two_pass.c \ +@USE_BUNDLED_LIBS_TRUE@ enc/compress_fragment_two_pass.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/dictionary_hash.c \ +@USE_BUNDLED_LIBS_TRUE@ enc/dictionary_hash.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/encode.c \ +@USE_BUNDLED_LIBS_TRUE@ enc/encoder_dict.c \ +@USE_BUNDLED_LIBS_TRUE@ enc/encoder_dict.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/entropy_encode.c \ +@USE_BUNDLED_LIBS_TRUE@ enc/entropy_encode.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/entropy_encode_static.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/fast_log.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/find_match_length.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/hash_composite_inc.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/hash_forgetful_chain_inc.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/hash.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/hash_longest_match64_inc.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/hash_longest_match_inc.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/hash_longest_match_quickly_inc.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/hash_rolling_inc.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/hash_to_binary_tree_inc.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/histogram.c \ +@USE_BUNDLED_LIBS_TRUE@ enc/histogram.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/histogram_inc.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/literal_cost.c \ +@USE_BUNDLED_LIBS_TRUE@ enc/literal_cost.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/memory.c \ +@USE_BUNDLED_LIBS_TRUE@ enc/memory.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/metablock.c \ +@USE_BUNDLED_LIBS_TRUE@ enc/metablock.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/metablock_inc.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/params.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/prefix.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/quality.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/ringbuffer.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/static_dict.c \ +@USE_BUNDLED_LIBS_TRUE@ enc/static_dict.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/static_dict_lut.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/utf8_util.c \ +@USE_BUNDLED_LIBS_TRUE@ enc/utf8_util.h \ +@USE_BUNDLED_LIBS_TRUE@ enc/write_bits.h \ +@USE_BUNDLED_LIBS_TRUE@ include/brotli/decode.h \ +@USE_BUNDLED_LIBS_TRUE@ include/brotli/encode.h \ +@USE_BUNDLED_LIBS_TRUE@ include/brotli/port.h \ +@USE_BUNDLED_LIBS_TRUE@ include/brotli/types.h + +@USE_BUNDLED_LIBS_TRUE@AM_CFLAGS = -Wall -I$(srcdir)/include EXTRA_DIST = LICENSE -AM_CFLAGS = -Wall -I$(srcdir)/include CLEANFILES = *.gcda *.gcno all: all-am @@ -846,7 +884,7 @@ uninstall-am: .PRECIOUS: Makefile -@CODE_COVERAGE_RULES@ +@USE_BUNDLED_LIBS_TRUE@@CODE_COVERAGE_RULES@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/clipper/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/libs/clipper/Makefile.in index 26c31237d38..810b6b7f1e0 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/clipper/Makefile.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/clipper/Makefile.in @@ -95,7 +95,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../../m4/ax_cxx_compile_stdcxx.m4 \ $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \ $(top_srcdir)/../../m4/kpse-freetype2-flags.m4 \ $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \ - $(top_srcdir)/../../m4/kpse-potrace-flags.m4 \ $(top_srcdir)/../../m4/kpse-warnings.m4 \ $(top_srcdir)/../../m4/kpse-win32.m4 \ $(top_srcdir)/../../m4/kpse-zlib-flags.m4 \ @@ -209,7 +208,9 @@ am__DIST_COMMON = $(srcdir)/Makefile.in \ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AM_LDFLAGS = @AM_LDFLAGS@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -228,6 +229,7 @@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLD = @CXXLD@ CYGPATH_W = @CYGPATH_W@ +DATE = @DATE@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ @@ -284,9 +286,6 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ -POTRACE_DEPEND = @POTRACE_DEPEND@ -POTRACE_INCLUDES = @POTRACE_INCLUDES@ -POTRACE_LIBS = @POTRACE_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/ff-woff/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/libs/ff-woff/Makefile.in index 2553875ff24..ae4704d1c83 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/ff-woff/Makefile.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/ff-woff/Makefile.in @@ -95,7 +95,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../../m4/ax_cxx_compile_stdcxx.m4 \ $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \ $(top_srcdir)/../../m4/kpse-freetype2-flags.m4 \ $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \ - $(top_srcdir)/../../m4/kpse-potrace-flags.m4 \ $(top_srcdir)/../../m4/kpse-warnings.m4 \ $(top_srcdir)/../../m4/kpse-win32.m4 \ $(top_srcdir)/../../m4/kpse-zlib-flags.m4 \ @@ -273,7 +272,9 @@ am__DIST_COMMON = $(srcdir)/Makefile.in \ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AM_LDFLAGS = @AM_LDFLAGS@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -292,6 +293,7 @@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLD = @CXXLD@ CYGPATH_W = @CYGPATH_W@ +DATE = @DATE@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ @@ -348,9 +350,6 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ -POTRACE_DEPEND = @POTRACE_DEPEND@ -POTRACE_INCLUDES = @POTRACE_INCLUDES@ -POTRACE_LIBS = @POTRACE_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/Makefile.am b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/Makefile.am new file mode 100644 index 00000000000..44079e902cf --- /dev/null +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/Makefile.am @@ -0,0 +1,23 @@ +if USE_BUNDLED_LIBS +noinst_LIBRARIES = libpotrace.a +libpotrace_a_SOURCES = \ + auxiliary.h \ + bitmap.h \ + config.h \ + curve.c \ + curve.h \ + decompose.c \ + decompose.h \ + lists.h \ + potracelib.c \ + potracelib.h \ + progress.h \ + trace.c \ + trace.h + +AM_CFLAGS = -Wall -I$(srcdir) + +@CODE_COVERAGE_RULES@ +endif + +CLEANFILES = *.gcda *.gcno diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/Makefile.in new file mode 100644 index 00000000000..aaaca6bac5a --- /dev/null +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/Makefile.in @@ -0,0 +1,669 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = dvisvgm-src/libs/potrace +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/../../m4/ax_cxx_compile_stdcxx.m4 \ + $(top_srcdir)/../../m4/kpse-common.m4 \ + $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \ + $(top_srcdir)/../../m4/kpse-freetype2-flags.m4 \ + $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \ + $(top_srcdir)/../../m4/kpse-warnings.m4 \ + $(top_srcdir)/../../m4/kpse-win32.m4 \ + $(top_srcdir)/../../m4/kpse-zlib-flags.m4 \ + $(top_srcdir)/../../m4/libtool.m4 \ + $(top_srcdir)/../../m4/ltoptions.m4 \ + $(top_srcdir)/../../m4/ltsugar.m4 \ + $(top_srcdir)/../../m4/ltversion.m4 \ + $(top_srcdir)/../../m4/lt~obsolete.m4 $(top_srcdir)/version.ac \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LIBRARIES = $(noinst_LIBRARIES) +ARFLAGS = cru +AM_V_AR = $(am__v_AR_@AM_V@) +am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) +am__v_AR_0 = @echo " AR " $@; +am__v_AR_1 = +libpotrace_a_AR = $(AR) $(ARFLAGS) +libpotrace_a_LIBADD = +am__libpotrace_a_SOURCES_DIST = auxiliary.h bitmap.h config.h curve.c \ + curve.h decompose.c decompose.h lists.h potracelib.c \ + potracelib.h progress.h trace.c trace.h +@USE_BUNDLED_LIBS_TRUE@am_libpotrace_a_OBJECTS = curve.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ decompose.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ potracelib.$(OBJEXT) trace.$(OBJEXT) +libpotrace_a_OBJECTS = $(am_libpotrace_a_OBJECTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/curve.Po ./$(DEPDIR)/decompose.Po \ + ./$(DEPDIR)/potracelib.Po ./$(DEPDIR)/trace.Po +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libpotrace_a_SOURCES) +DIST_SOURCES = $(am__libpotrace_a_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/../../build-aux/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AM_LDFLAGS = @AM_LDFLAGS@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CODE_COVERAGE_RULES = @CODE_COVERAGE_RULES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CXXLD = @CXXLD@ +CYGPATH_W = @CYGPATH_W@ +DATE = @DATE@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +DVISVGM_TREE = @DVISVGM_TREE@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FREETYPE2_DEPEND = @FREETYPE2_DEPEND@ +FREETYPE2_INCLUDES = @FREETYPE2_INCLUDES@ +FREETYPE2_LIBS = @FREETYPE2_LIBS@ +FT2_CONFIG = @FT2_CONFIG@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KPATHSEA_DEPEND = @KPATHSEA_DEPEND@ +KPATHSEA_INCLUDES = @KPATHSEA_INCLUDES@ +KPATHSEA_LIBS = @KPATHSEA_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBGS_INCLUDES = @LIBGS_INCLUDES@ +LIBGS_LIBS = @LIBGS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +ZLIB_DEPEND = @ZLIB_DEPEND@ +ZLIB_INCLUDES = @ZLIB_INCLUDES@ +ZLIB_LIBS = @ZLIB_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +@USE_BUNDLED_LIBS_TRUE@noinst_LIBRARIES = libpotrace.a +@USE_BUNDLED_LIBS_TRUE@libpotrace_a_SOURCES = \ +@USE_BUNDLED_LIBS_TRUE@ auxiliary.h \ +@USE_BUNDLED_LIBS_TRUE@ bitmap.h \ +@USE_BUNDLED_LIBS_TRUE@ config.h \ +@USE_BUNDLED_LIBS_TRUE@ curve.c \ +@USE_BUNDLED_LIBS_TRUE@ curve.h \ +@USE_BUNDLED_LIBS_TRUE@ decompose.c \ +@USE_BUNDLED_LIBS_TRUE@ decompose.h \ +@USE_BUNDLED_LIBS_TRUE@ lists.h \ +@USE_BUNDLED_LIBS_TRUE@ potracelib.c \ +@USE_BUNDLED_LIBS_TRUE@ potracelib.h \ +@USE_BUNDLED_LIBS_TRUE@ progress.h \ +@USE_BUNDLED_LIBS_TRUE@ trace.c \ +@USE_BUNDLED_LIBS_TRUE@ trace.h + +@USE_BUNDLED_LIBS_TRUE@AM_CFLAGS = -Wall -I$(srcdir) +CLEANFILES = *.gcda *.gcno +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign dvisvgm-src/libs/potrace/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign dvisvgm-src/libs/potrace/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +libpotrace.a: $(libpotrace_a_OBJECTS) $(libpotrace_a_DEPENDENCIES) $(EXTRA_libpotrace_a_DEPENDENCIES) + $(AM_V_at)-rm -f libpotrace.a + $(AM_V_AR)$(libpotrace_a_AR) libpotrace.a $(libpotrace_a_OBJECTS) $(libpotrace_a_LIBADD) + $(AM_V_at)$(RANLIB) libpotrace.a + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curve.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/decompose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/potracelib.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trace.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -f ./$(DEPDIR)/curve.Po + -rm -f ./$(DEPDIR)/decompose.Po + -rm -f ./$(DEPDIR)/potracelib.Po + -rm -f ./$(DEPDIR)/trace.Po + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f ./$(DEPDIR)/curve.Po + -rm -f ./$(DEPDIR)/decompose.Po + -rm -f ./$(DEPDIR)/potracelib.Po + -rm -f ./$(DEPDIR)/trace.Po + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ + clean-generic clean-libtool clean-noinstLIBRARIES \ + cscopelist-am ctags ctags-am distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +@USE_BUNDLED_LIBS_TRUE@@CODE_COVERAGE_RULES@ + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/auxiliary.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/auxiliary.h new file mode 100644 index 00000000000..bb0c6e03cb9 --- /dev/null +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/auxiliary.h @@ -0,0 +1,80 @@ +/* Copyright (C) 2001-2017 Peter Selinger. + This file is part of Potrace. It is free software and it is covered + by the GNU General Public License. See the file COPYING for details. */ + +/* This header file collects some general-purpose macros (and static + inline functions) that are used in various places. */ + +#ifndef AUXILIARY_H +#define AUXILIARY_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include + +/* ---------------------------------------------------------------------- */ +/* point arithmetic */ + +#include "potracelib.h" + +struct point_s { + long x; + long y; +}; +typedef struct point_s point_t; + +typedef potrace_dpoint_t dpoint_t; + +/* convert point_t to dpoint_t */ +static inline dpoint_t dpoint(point_t p) { + dpoint_t res; + res.x = p.x; + res.y = p.y; + return res; +} + +/* range over the straight line segment [a,b] when lambda ranges over [0,1] */ +static inline dpoint_t interval(double lambda, dpoint_t a, dpoint_t b) { + dpoint_t res; + + res.x = a.x + lambda * (b.x - a.x); + res.y = a.y + lambda * (b.y - a.y); + return res; +} + +/* ---------------------------------------------------------------------- */ +/* some useful macros. Note: the "mod" macro works correctly for + negative a. Also note that the test for a>=n, while redundant, + speeds up the mod function by 70% in the average case (significant + since the program spends about 16% of its time here - or 40% + without the test). The "floordiv" macro returns the largest integer + <= a/n, and again this works correctly for negative a, as long as + a,n are integers and n>0. */ + +/* integer arithmetic */ + +static inline int mod(int a, int n) { + return a>=n ? a%n : a>=0 ? a : n-1-(-1-a)%n; +} + +static inline int floordiv(int a, int n) { + return a>=0 ? a/n : -1-(-1-a)/n; +} + +/* Note: the following work for integers and other numeric types. */ +#undef sign +#undef abs +#undef min +#undef max +#undef sq +#undef cu +#define sign(x) ((x)>0 ? 1 : (x)<0 ? -1 : 0) +#define abs(a) ((a)>0 ? (a) : -(a)) +#define min(a,b) ((a)<(b) ? (a) : (b)) +#define max(a,b) ((a)>(b) ? (a) : (b)) +#define sq(a) ((a)*(a)) +#define cu(a) ((a)*(a)*(a)) + +#endif /* AUXILIARY_H */ diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/bitmap.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/bitmap.h new file mode 100644 index 00000000000..2e91ab1e7d7 --- /dev/null +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/bitmap.h @@ -0,0 +1,228 @@ +/* Copyright (C) 2001-2017 Peter Selinger. + This file is part of Potrace. It is free software and it is covered + by the GNU General Public License. See the file COPYING for details. */ + +#ifndef BITMAP_H +#define BITMAP_H + +#include +#include +#include +#include + +/* The bitmap type is defined in potracelib.h */ +#include "potracelib.h" + +/* The present file defines some convenient macros and static inline + functions for accessing bitmaps. Since they only produce inline + code, they can be conveniently shared by the library and frontends, + if desired */ + +/* ---------------------------------------------------------------------- */ +/* some measurements */ + +#define BM_WORDSIZE ((int)sizeof(potrace_word)) +#define BM_WORDBITS (8*BM_WORDSIZE) +#define BM_HIBIT (((potrace_word)1)<<(BM_WORDBITS-1)) +#define BM_ALLBITS (~(potrace_word)0) + +/* macros for accessing pixel at index (x,y). U* macros omit the + bounds check. */ + +#define bm_scanline(bm, y) ((bm)->map + (ptrdiff_t)(y)*(ptrdiff_t)(bm)->dy) +#define bm_index(bm, x, y) (&bm_scanline(bm, y)[(x)/BM_WORDBITS]) +#define bm_mask(x) (BM_HIBIT >> ((x) & (BM_WORDBITS-1))) +#define bm_range(x, a) ((int)(x) >= 0 && (int)(x) < (a)) +#define bm_safe(bm, x, y) (bm_range(x, (bm)->w) && bm_range(y, (bm)->h)) +#define BM_UGET(bm, x, y) ((*bm_index(bm, x, y) & bm_mask(x)) != 0) +#define BM_USET(bm, x, y) (*bm_index(bm, x, y) |= bm_mask(x)) +#define BM_UCLR(bm, x, y) (*bm_index(bm, x, y) &= ~bm_mask(x)) +#define BM_UINV(bm, x, y) (*bm_index(bm, x, y) ^= bm_mask(x)) +#define BM_UPUT(bm, x, y, b) ((b) ? BM_USET(bm, x, y) : BM_UCLR(bm, x, y)) +#define BM_GET(bm, x, y) (bm_safe(bm, x, y) ? BM_UGET(bm, x, y) : 0) +#define BM_SET(bm, x, y) (bm_safe(bm, x, y) ? BM_USET(bm, x, y) : 0) +#define BM_CLR(bm, x, y) (bm_safe(bm, x, y) ? BM_UCLR(bm, x, y) : 0) +#define BM_INV(bm, x, y) (bm_safe(bm, x, y) ? BM_UINV(bm, x, y) : 0) +#define BM_PUT(bm, x, y, b) (bm_safe(bm, x, y) ? BM_UPUT(bm, x, y, b) : 0) + +/* calculate the size, in bytes, required for the data area of a + bitmap of the given dy and h. Assume h >= 0. Return -1 if the size + does not fit into the ptrdiff_t type. */ +static inline ptrdiff_t getsize(int dy, int h) { + ptrdiff_t size; + + if (dy < 0) { + dy = -dy; + } + + size = (ptrdiff_t)dy * (ptrdiff_t)h * (ptrdiff_t)BM_WORDSIZE; + + /* check for overflow error */ + if (size < 0 || (h != 0 && dy != 0 && size / h / dy != BM_WORDSIZE)) { + return -1; + } + + return size; +} + +/* return the size, in bytes, of the data area of the bitmap. Return + -1 if the size does not fit into the ptrdiff_t type; however, this + cannot happen if the bitmap is well-formed, i.e., if created with + bm_new or bm_dup. */ +static inline ptrdiff_t bm_size(const potrace_bitmap_t *bm) { + return getsize(bm->dy, bm->h); +} + +/* calculate the base address of the bitmap data. Assume that the + bitmap is well-formed, i.e., its size fits into the ptrdiff_t type. + This is the case if created with bm_new or bm_dup. The base address + may differ from bm->map if dy is negative */ +static inline potrace_word *bm_base(const potrace_bitmap_t *bm) { + int dy = bm->dy; + + if (dy >= 0 || bm->h == 0) { + return bm->map; + } else { + return bm_scanline(bm, bm->h - 1); + } +} + +/* free the given bitmap. Leaves errno untouched. */ +static inline void bm_free(potrace_bitmap_t *bm) { + if (bm && bm->map) { + free(bm_base(bm)); + } + free(bm); +} + +/* return new bitmap initialized to 0. NULL with errno on error. + Assumes w, h >= 0. */ +static inline potrace_bitmap_t *bm_new(int w, int h) { + potrace_bitmap_t *bm; + int dy = w == 0 ? 0 : (w - 1) / BM_WORDBITS + 1; + ptrdiff_t size; + + size = getsize(dy, h); + if (size < 0) { + errno = ENOMEM; + return NULL; + } + if (size == 0) { + size = 1; /* make sure calloc() doesn't return NULL */ + } + + bm = (potrace_bitmap_t *) malloc(sizeof(potrace_bitmap_t)); + if (!bm) { + return NULL; + } + bm->w = w; + bm->h = h; + bm->dy = dy; + bm->map = (potrace_word *) calloc(1, size); + if (!bm->map) { + free(bm); + return NULL; + } + return bm; +} + +/* clear the given bitmap. Set all bits to c. Assumes a well-formed + bitmap. */ +static inline void bm_clear(potrace_bitmap_t *bm, int c) { + /* Note: if the bitmap was created with bm_new, then it is + guaranteed that size will fit into the ptrdiff_t type. */ + ptrdiff_t size = bm_size(bm); + memset(bm_base(bm), c ? -1 : 0, size); +} + +/* duplicate the given bitmap. Return NULL on error with errno + set. Assumes a well-formed bitmap. */ +static inline potrace_bitmap_t *bm_dup(const potrace_bitmap_t *bm) { + potrace_bitmap_t *bm1 = bm_new(bm->w, bm->h); + int y; + + if (!bm1) { + return NULL; + } + for (y=0; y < bm->h; y++) { + memcpy(bm_scanline(bm1, y), bm_scanline(bm, y), (size_t)bm1->dy * (size_t)BM_WORDSIZE); + } + return bm1; +} + +/* invert the given bitmap. */ +static inline void bm_invert(potrace_bitmap_t *bm) { + int dy = bm->dy; + int y; + int i; + potrace_word *p; + + if (dy < 0) { + dy = -dy; + } + + for (y=0; y < bm->h; y++) { + p = bm_scanline(bm, y); + for (i=0; i < dy; i++) { + p[i] ^= BM_ALLBITS; + } + } +} + +/* turn the given bitmap upside down. This does not move the bitmap + data or change the bm_base() address. */ +static inline void bm_flip(potrace_bitmap_t *bm) { + int dy = bm->dy; + + if (bm->h == 0 || bm->h == 1) { + return; + } + + bm->map = bm_scanline(bm, bm->h - 1); + bm->dy = -dy; +} + +/* resize the bitmap to the given new height. The bitmap data remains + bottom-aligned (truncated at the top) when dy >= 0 and top-aligned + (truncated at the bottom) when dy < 0. Return 0 on success, or 1 on + error with errno set. If the new height is <= the old one, no error + should occur. If the new height is larger, the additional bitmap + data is *not* initialized. */ +static inline int bm_resize(potrace_bitmap_t *bm, int h) { + int dy = bm->dy; + ptrdiff_t newsize; + potrace_word *newmap; + + if (dy < 0) { + bm_flip(bm); + } + + newsize = getsize(dy, h); + if (newsize < 0) { + errno = ENOMEM; + goto error; + } + if (newsize == 0) { + newsize = 1; /* make sure realloc() doesn't return NULL */ + } + + newmap = (potrace_word *)realloc(bm->map, newsize); + if (newmap == NULL) { + goto error; + } + bm->map = newmap; + bm->h = h; + + if (dy < 0) { + bm_flip(bm); + } + return 0; + + error: + if (dy < 0) { + bm_flip(bm); + } + return 1; +} + +#endif /* BITMAP_H */ diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/config.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/config.h new file mode 100644 index 00000000000..2d3e609c137 --- /dev/null +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/config.h @@ -0,0 +1,5 @@ +#ifndef CONFIG_H +#define CONFIG_H +#define VERSION "1.15" +#define HAVE_INTTYPES_H 1 +#endif diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/curve.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/curve.c new file mode 100644 index 00000000000..0f415559589 --- /dev/null +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/curve.c @@ -0,0 +1,112 @@ +/* Copyright (C) 2001-2017 Peter Selinger. + This file is part of Potrace. It is free software and it is covered + by the GNU General Public License. See the file COPYING for details. */ + +/* private part of the path and curve data structures */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include + +#include "potracelib.h" +#include "lists.h" +#include "curve.h" + +#define SAFE_CALLOC(var, n, typ) \ + if ((var = (typ *)calloc(n, sizeof(typ))) == NULL) goto calloc_error + +/* ---------------------------------------------------------------------- */ +/* allocate and free path objects */ + +path_t *path_new(void) { + path_t *p = NULL; + privpath_t *priv = NULL; + + SAFE_CALLOC(p, 1, path_t); + memset(p, 0, sizeof(path_t)); + SAFE_CALLOC(priv, 1, privpath_t); + memset(priv, 0, sizeof(privpath_t)); + p->priv = priv; + return p; + + calloc_error: + free(p); + free(priv); + return NULL; +} + +/* free the members of the given curve structure. Leave errno unchanged. */ +static void privcurve_free_members(privcurve_t *curve) { + free(curve->tag); + free(curve->c); + free(curve->vertex); + free(curve->alpha); + free(curve->alpha0); + free(curve->beta); +} + +/* free a path. Leave errno untouched. */ +void path_free(path_t *p) { + if (p) { + if (p->priv) { + free(p->priv->pt); + free(p->priv->lon); + free(p->priv->sums); + free(p->priv->po); + privcurve_free_members(&p->priv->curve); + privcurve_free_members(&p->priv->ocurve); + } + free(p->priv); + /* do not free p->fcurve ! */ + } + free(p); +} + +/* free a pathlist, leaving errno untouched. */ +void pathlist_free(path_t *plist) { + path_t *p; + + list_forall_unlink(p, plist) { + path_free(p); + } +} + +/* ---------------------------------------------------------------------- */ +/* initialize and finalize curve structures */ + +typedef dpoint_t dpoint3_t[3]; + +/* initialize the members of the given curve structure to size m. + Return 0 on success, 1 on error with errno set. */ +int privcurve_init(privcurve_t *curve, int n) { + memset(curve, 0, sizeof(privcurve_t)); + curve->n = n; + SAFE_CALLOC(curve->tag, n, int); + SAFE_CALLOC(curve->c, n, dpoint3_t); + SAFE_CALLOC(curve->vertex, n, dpoint_t); + SAFE_CALLOC(curve->alpha, n, double); + SAFE_CALLOC(curve->alpha0, n, double); + SAFE_CALLOC(curve->beta, n, double); + return 0; + + calloc_error: + free(curve->tag); + free(curve->c); + free(curve->vertex); + free(curve->alpha); + free(curve->alpha0); + free(curve->beta); + return 1; +} + +/* copy private to public curve structure */ +void privcurve_to_curve(privcurve_t *pc, potrace_curve_t *c) { + c->n = pc->n; + c->tag = pc->tag; + c->c = pc->c; +} + diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/curve.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/curve.h new file mode 100644 index 00000000000..00f042cc228 --- /dev/null +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/curve.h @@ -0,0 +1,77 @@ +/* Copyright (C) 2001-2017 Peter Selinger. + This file is part of Potrace. It is free software and it is covered + by the GNU General Public License. See the file COPYING for details. */ + +#ifndef CURVE_H +#define CURVE_H + +#include "auxiliary.h" + +/* vertex is c[1] for tag=POTRACE_CORNER, and the intersection of + .c[-1][2]..c[0] and c[1]..c[2] for tag=POTRACE_CURVETO. alpha is only + defined for tag=POTRACE_CURVETO and is the alpha parameter of the curve: + .c[-1][2]..c[0] = alpha*(.c[-1][2]..vertex), and + c[2]..c[1] = alpha*(c[2]..vertex). + Beta is so that (.beta[i])[.vertex[i],.vertex[i+1]] = .c[i][2]. +*/ + +struct privcurve_s { + int n; /* number of segments */ + int *tag; /* tag[n]: POTRACE_CORNER or POTRACE_CURVETO */ + dpoint_t (*c)[3]; /* c[n][i]: control points. + c[n][0] is unused for tag[n]=POTRACE_CORNER */ + /* the remainder of this structure is special to privcurve, and is + used in EPS debug output and special EPS "short coding". These + fields are valid only if "alphacurve" is set. */ + int alphacurve; /* have the following fields been initialized? */ + dpoint_t *vertex; /* for POTRACE_CORNER, this equals c[1] */ + double *alpha; /* only for POTRACE_CURVETO */ + double *alpha0; /* "uncropped" alpha parameter - for debug output only */ + double *beta; +}; +typedef struct privcurve_s privcurve_t; + +struct sums_s { + double x; + double y; + double x2; + double xy; + double y2; +}; +typedef struct sums_s sums_t; + +/* the path structure is filled in with information about a given path + as it is accumulated and passed through the different stages of the + Potrace algorithm. Backends only need to read the fcurve and fm + fields of this data structure, but debugging backends may read + other fields. */ +struct potrace_privpath_s { + int len; + point_t *pt; /* pt[len]: path as extracted from bitmap */ + int *lon; /* lon[len]: (i,lon[i]) = longest straight line from i */ + + int x0, y0; /* origin for sums */ + sums_t *sums; /* sums[len+1]: cache for fast summing */ + + int m; /* length of optimal polygon */ + int *po; /* po[m]: optimal polygon */ + + privcurve_t curve; /* curve[m]: array of curve elements */ + privcurve_t ocurve; /* ocurve[om]: array of curve elements */ + privcurve_t *fcurve; /* final curve: this points to either curve or + ocurve. Do not free this separately. */ +}; +typedef struct potrace_privpath_s potrace_privpath_t; + +/* shorter names */ +typedef potrace_privpath_t privpath_t; +typedef potrace_path_t path_t; + +path_t *path_new(void); +void path_free(path_t *p); +void pathlist_free(path_t *plist); +int privcurve_init(privcurve_t *curve, int n); +void privcurve_to_curve(privcurve_t *pc, potrace_curve_t *c); + +#endif /* CURVE_H */ + diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/decompose.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/decompose.c new file mode 100644 index 00000000000..5439ad51f3a --- /dev/null +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/decompose.c @@ -0,0 +1,521 @@ +/* Copyright (C) 2001-2017 Peter Selinger. + This file is part of Potrace. It is free software and it is covered + by the GNU General Public License. See the file COPYING for details. */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#ifdef HAVE_INTTYPES_H +#include +#endif + +#include "potracelib.h" +#include "curve.h" +#include "lists.h" +#include "bitmap.h" +#include "decompose.h" +#include "progress.h" + +/* ---------------------------------------------------------------------- */ +/* deterministically and efficiently hash (x,y) into a pseudo-random bit */ + +static inline int detrand(int x, int y) { + unsigned int z; + static const unsigned char t[256] = { + /* non-linear sequence: constant term of inverse in GF(8), + mod x^8+x^4+x^3+x+1 */ + 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, + 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, + 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, + 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, + 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, + 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, + 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, + 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, + }; + + /* 0x04b3e375 and 0x05a8ef93 are chosen to contain every possible + 5-bit sequence */ + z = ((0x04b3e375 * x) ^ y) * 0x05a8ef93; + z = t[z & 0xff] ^ t[(z>>8) & 0xff] ^ t[(z>>16) & 0xff] ^ t[(z>>24) & 0xff]; + return z; +} + +/* ---------------------------------------------------------------------- */ +/* auxiliary bitmap manipulations */ + +/* set the excess padding to 0 */ +static void bm_clearexcess(potrace_bitmap_t *bm) { + potrace_word mask; + int y; + + if (bm->w % BM_WORDBITS != 0) { + mask = BM_ALLBITS << (BM_WORDBITS - (bm->w % BM_WORDBITS)); + for (y=0; yh; y++) { + *bm_index(bm, bm->w, y) &= mask; + } + } +} + +struct bbox_s { + int x0, x1, y0, y1; /* bounding box */ +}; +typedef struct bbox_s bbox_t; + +/* clear the bm, assuming the bounding box is set correctly (faster + than clearing the whole bitmap) */ +static void clear_bm_with_bbox(potrace_bitmap_t *bm, bbox_t *bbox) { + int imin = (bbox->x0 / BM_WORDBITS); + int imax = ((bbox->x1 + BM_WORDBITS-1) / BM_WORDBITS); + int i, y; + + for (y=bbox->y0; yy1; y++) { + for (i=imin; i0) { + return 1; + } else if (ct<0) { + return 0; + } + } + return 0; +} + +/* ---------------------------------------------------------------------- */ +/* decompose image into paths */ + +/* efficiently invert bits [x,infty) and [xa,infty) in line y. Here xa + must be a multiple of BM_WORDBITS. */ +static void xor_to_ref(potrace_bitmap_t *bm, int x, int y, int xa) { + int xhi = x & -BM_WORDBITS; + int xlo = x & (BM_WORDBITS-1); /* = x % BM_WORDBITS */ + int i; + + if (xhipriv->len <= 0) { /* a path of length 0 is silly, but legal */ + return; + } + + y1 = p->priv->pt[p->priv->len-1].y; + + xa = p->priv->pt[0].x & -BM_WORDBITS; + for (k=0; kpriv->len; k++) { + x = p->priv->pt[k].x; + y = p->priv->pt[k].y; + + if (y != y1) { + /* efficiently invert the rectangle [x,xa] x [y,y1] */ + xor_to_ref(bm, x, min(y,y1), xa); + y1 = y; + } + } +} + +/* Find the bounding box of a given path. Path is assumed to be of + non-zero length. */ +static void setbbox_path(bbox_t *bbox, path_t *p) { + int x, y; + int k; + + bbox->y0 = INT_MAX; + bbox->y1 = 0; + bbox->x0 = INT_MAX; + bbox->x1 = 0; + + for (k=0; kpriv->len; k++) { + x = p->priv->pt[k].x; + y = p->priv->pt[k].y; + + if (x < bbox->x0) { + bbox->x0 = x; + } + if (x > bbox->x1) { + bbox->x1 = x; + } + if (y < bbox->y0) { + bbox->y0 = y; + } + if (y > bbox->y1) { + bbox->y1 = y; + } + } +} + +/* compute a path in the given pixmap, separating black from white. + Start path at the point (x0,x1), which must be an upper left corner + of the path. Also compute the area enclosed by the path. Return a + new path_t object, or NULL on error (note that a legitimate path + cannot have length 0). Sign is required for correct interpretation + of turnpolicies. */ +static path_t *findpath(potrace_bitmap_t *bm, int x0, int y0, int sign, int turnpolicy) { + int x, y, dirx, diry, len, size; + uint64_t area; + int c, d, tmp; + point_t *pt, *pt1; + path_t *p = NULL; + + x = x0; + y = y0; + dirx = 0; + diry = -1; + + len = size = 0; + pt = NULL; + area = 0; + + while (1) { + /* add point to path */ + if (len>=size) { + size += 100; + size = (int)(1.3 * size); + pt1 = (point_t *)realloc(pt, size * sizeof(point_t)); + if (!pt1) { + goto error; + } + pt = pt1; + } + pt[len].x = x; + pt[len].y = y; + len++; + + /* move to next point */ + x += dirx; + y += diry; + area += x*diry; + + /* path complete? */ + if (x==x0 && y==y0) { + break; + } + + /* determine next direction */ + c = BM_GET(bm, x + (dirx+diry-1)/2, y + (diry-dirx-1)/2); + d = BM_GET(bm, x + (dirx-diry-1)/2, y + (diry+dirx-1)/2); + + if (c && !d) { /* ambiguous turn */ + if (turnpolicy == POTRACE_TURNPOLICY_RIGHT + || (turnpolicy == POTRACE_TURNPOLICY_BLACK && sign == '+') + || (turnpolicy == POTRACE_TURNPOLICY_WHITE && sign == '-') + || (turnpolicy == POTRACE_TURNPOLICY_RANDOM && detrand(x,y)) + || (turnpolicy == POTRACE_TURNPOLICY_MAJORITY && majority(bm, x, y)) + || (turnpolicy == POTRACE_TURNPOLICY_MINORITY && !majority(bm, x, y))) { + tmp = dirx; /* right turn */ + dirx = diry; + diry = -tmp; + } else { + tmp = dirx; /* left turn */ + dirx = -diry; + diry = tmp; + } + } else if (c) { /* right turn */ + tmp = dirx; + dirx = diry; + diry = -tmp; + } else if (!d) { /* left turn */ + tmp = dirx; + dirx = -diry; + diry = tmp; + } + } /* while this path */ + + /* allocate new path object */ + p = path_new(); + if (!p) { + goto error; + } + + p->priv->pt = pt; + p->priv->len = len; + p->area = area <= INT_MAX ? area : INT_MAX; /* avoid overflow */ + p->sign = sign; + + return p; + + error: + free(pt); + return NULL; +} + +/* Give a tree structure to the given path list, based on "insideness" + testing. I.e., path A is considered "below" path B if it is inside + path B. The input pathlist is assumed to be ordered so that "outer" + paths occur before "inner" paths. The tree structure is stored in + the "childlist" and "sibling" components of the path_t + structure. The linked list structure is also changed so that + negative path components are listed immediately after their + positive parent. Note: some backends may ignore the tree + structure, others may use it e.g. to group path components. We + assume that in the input, point 0 of each path is an "upper left" + corner of the path, as returned by bm_to_pathlist. This makes it + easy to find an "interior" point. The bm argument should be a + bitmap of the correct size (large enough to hold all the paths), + and will be used as scratch space. Return 0 on success or -1 on + error with errno set. */ + +static void pathlist_to_tree(path_t *plist, potrace_bitmap_t *bm) { + path_t *p, *p1; + path_t *heap, *heap1; + path_t *cur; + path_t *head; + path_t **plist_hook; /* for fast appending to linked list */ + path_t **hook_in, **hook_out; /* for fast appending to linked list */ + bbox_t bbox; + + bm_clear(bm, 0); + + /* save original "next" pointers */ + list_forall(p, plist) { + p->sibling = p->next; + p->childlist = NULL; + } + + heap = plist; + + /* the heap holds a list of lists of paths. Use "childlist" field + for outer list, "next" field for inner list. Each of the sublists + is to be turned into a tree. This code is messy, but it is + actually fast. Each path is rendered exactly once. We use the + heap to get a tail recursive algorithm: the heap holds a list of + pathlists which still need to be transformed. */ + + while (heap) { + /* unlink first sublist */ + cur = heap; + heap = heap->childlist; + cur->childlist = NULL; + + /* unlink first path */ + head = cur; + cur = cur->next; + head->next = NULL; + + /* render path */ + xor_path(bm, head); + setbbox_path(&bbox, head); + + /* now do insideness test for each element of cur; append it to + head->childlist if it's inside head, else append it to + head->next. */ + hook_in=&head->childlist; + hook_out=&head->next; + list_forall_unlink(p, cur) { + if (p->priv->pt[0].y <= bbox.y0) { + list_insert_beforehook(p, hook_out); + /* append the remainder of the list to hook_out */ + *hook_out = cur; + break; + } + if (BM_GET(bm, p->priv->pt[0].x, p->priv->pt[0].y-1)) { + list_insert_beforehook(p, hook_in); + } else { + list_insert_beforehook(p, hook_out); + } + } + + /* clear bm */ + clear_bm_with_bbox(bm, &bbox); + + /* now schedule head->childlist and head->next for further + processing */ + if (head->next) { + head->next->childlist = heap; + heap = head->next; + } + if (head->childlist) { + head->childlist->childlist = heap; + heap = head->childlist; + } + } + + /* copy sibling structure from "next" to "sibling" component */ + p = plist; + while (p) { + p1 = p->sibling; + p->sibling = p->next; + p = p1; + } + + /* reconstruct a new linked list ("next") structure from tree + ("childlist", "sibling") structure. This code is slightly messy, + because we use a heap to make it tail recursive: the heap + contains a list of childlists which still need to be + processed. */ + heap = plist; + if (heap) { + heap->next = NULL; /* heap is a linked list of childlists */ + } + plist = NULL; + plist_hook = &plist; + while (heap) { + heap1 = heap->next; + for (p=heap; p; p=p->sibling) { + /* p is a positive path */ + /* append to linked list */ + list_insert_beforehook(p, plist_hook); + + /* go through its children */ + for (p1=p->childlist; p1; p1=p1->sibling) { + /* append to linked list */ + list_insert_beforehook(p1, plist_hook); + /* append its childlist to heap, if non-empty */ + if (p1->childlist) { + list_append(path_t, heap1, p1->childlist); + } + } + } + heap = heap1; + } + + return; +} + +/* find the next set pixel in a row <= y. Pixels are searched first + left-to-right, then top-down. In other words, (x,y)<(x',y') if y>y' + or y=y' and x=0; y--) { + for (x=x0; xw && x>=0; x+=(unsigned)BM_WORDBITS) { + if (*bm_index(bm, x, y)) { + while (!BM_GET(bm, x, y)) { + x++; + } + /* found */ + *xp = x; + *yp = y; + return 0; + } + } + x0 = 0; + } + /* not found */ + return 1; +} + +/* Decompose the given bitmap into paths. Returns a linked list of + path_t objects with the fields len, pt, area, sign filled + in. Returns 0 on success with plistp set, or -1 on error with errno + set. */ + +int bm_to_pathlist(const potrace_bitmap_t *bm, path_t **plistp, const potrace_param_t *param, progress_t *progress) { + int x; + int y; + path_t *p; + path_t *plist = NULL; /* linked list of path objects */ + path_t **plist_hook = &plist; /* used to speed up appending to linked list */ + potrace_bitmap_t *bm1 = NULL; + int sign; + + bm1 = bm_dup(bm); + if (!bm1) { + goto error; + } + + /* be sure the byte padding on the right is set to 0, as the fast + pixel search below relies on it */ + bm_clearexcess(bm1); + + /* iterate through components */ + x = 0; + y = bm1->h - 1; + while (findnext(bm1, &x, &y) == 0) { + /* calculate the sign by looking at the original */ + sign = BM_GET(bm, x, y) ? '+' : '-'; + + /* calculate the path */ + p = findpath(bm1, x, y+1, sign, param->turnpolicy); + if (p==NULL) { + goto error; + } + + /* update buffered image */ + xor_path(bm1, p); + + /* if it's a turd, eliminate it, else append it to the list */ + if (p->area <= param->turdsize) { + path_free(p); + } else { + list_insert_beforehook(p, plist_hook); + } + + if (bm1->h > 0) { /* to be sure */ + progress_update(1-y/(double)bm1->h, progress); + } + } + + pathlist_to_tree(plist, bm1); + bm_free(bm1); + *plistp = plist; + + progress_update(1.0, progress); + + return 0; + + error: + bm_free(bm1); + list_forall_unlink(p, plist) { + path_free(p); + } + return -1; +} diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/decompose.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/decompose.h new file mode 100644 index 00000000000..a80a480ccbf --- /dev/null +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/decompose.h @@ -0,0 +1,16 @@ +/* Copyright (C) 2001-2017 Peter Selinger. + This file is part of Potrace. It is free software and it is covered + by the GNU General Public License. See the file COPYING for details. */ + + +#ifndef DECOMPOSE_H +#define DECOMPOSE_H + +#include "potracelib.h" +#include "progress.h" +#include "curve.h" + +int bm_to_pathlist(const potrace_bitmap_t *bm, path_t **plistp, const potrace_param_t *param, progress_t *progress); + +#endif /* DECOMPOSE_H */ + diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/lists.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/lists.h new file mode 100644 index 00000000000..f76bdcde14b --- /dev/null +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/lists.h @@ -0,0 +1,285 @@ +/* Copyright (C) 2001-2017 Peter Selinger. + This file is part of Potrace. It is free software and it is covered + by the GNU General Public License. See the file COPYING for details. */ + + +#ifndef _PS_LISTS_H +#define _PS_LISTS_H + +/* here we define some general list macros. Because they are macros, + they should work on any datatype with a "->next" component. Some of + them use a "hook". If elt and list are of type t* then hook is of + type t**. A hook stands for an insertion point in the list, i.e., + either before the first element, or between two elements, or after + the last element. If an operation "sets the hook" for an element, + then the hook is set to just before the element. One can insert + something at a hook. One can also unlink at a hook: this means, + unlink the element just after the hook. By "to unlink", we mean the + element is removed from the list, but not deleted. Thus, it and its + components still need to be freed. */ + +/* Note: these macros are somewhat experimental. Only the ones that + are actually *used* have been tested. So be careful to test any + that you use. Looking at the output of the preprocessor, "gcc -E" + (possibly piped though "indent"), might help too. Also: these + macros define some internal (local) variables that start with + "_". */ + +/* we enclose macro definitions whose body consists of more than one + statement in MACRO_BEGIN and MACRO_END, rather than '{' and '}'. The + reason is that we want to be able to use the macro in a context + such as "if (...) macro(...); else ...". If we didn't use this obscure + trick, we'd have to omit the ";" in such cases. */ + +#define MACRO_BEGIN do { +#define MACRO_END } while (0) + +/* ---------------------------------------------------------------------- */ +/* macros for singly-linked lists */ + +/* traverse list. At the end, elt is set to NULL. */ +#define list_forall(elt, list) for (elt=list; elt!=NULL; elt=elt->next) + +/* set elt to the first element of list satisfying boolean condition + c, or NULL if not found */ +#define list_find(elt, list, c) \ + MACRO_BEGIN list_forall(elt, list) if (c) break; MACRO_END + +/* like forall, except also set hook for elt. */ +#define list_forall2(elt, list, hook) \ + for (elt=list, hook=&list; elt!=NULL; hook=&elt->next, elt=elt->next) + +/* same as list_find, except also set hook for elt. */ +#define list_find2(elt, list, c, hook) \ + MACRO_BEGIN list_forall2(elt, list, hook) if (c) break; MACRO_END + +/* same, except only use hook. */ +#define _list_forall_hook(list, hook) \ + for (hook=&list; *hook!=NULL; hook=&(*hook)->next) + +/* same, except only use hook. Note: c may only refer to *hook, not elt. */ +#define _list_find_hook(list, c, hook) \ + MACRO_BEGIN _list_forall_hook(list, hook) if (c) break; MACRO_END + +/* insert element after hook */ +#define list_insert_athook(elt, hook) \ + MACRO_BEGIN elt->next = *hook; *hook = elt; MACRO_END + +/* insert element before hook */ +#define list_insert_beforehook(elt, hook) \ + MACRO_BEGIN elt->next = *hook; *hook = elt; hook=&elt->next; MACRO_END + +/* unlink element after hook, let elt be unlinked element, or NULL. + hook remains. */ +#define list_unlink_athook(list, elt, hook) \ + MACRO_BEGIN \ + elt = hook ? *hook : NULL; if (elt) { *hook = elt->next; elt->next = NULL; }\ + MACRO_END + +/* unlink the specific element, if it is in the list. Otherwise, set + elt to NULL */ +#define list_unlink(listtype, list, elt) \ + MACRO_BEGIN \ + listtype **_hook; \ + _list_find_hook(list, *_hook==elt, _hook); \ + list_unlink_athook(list, elt, _hook); \ + MACRO_END + +/* prepend elt to list */ +#define list_prepend(list, elt) \ + MACRO_BEGIN elt->next = list; list = elt; MACRO_END + +/* append elt to list. */ +#define list_append(listtype, list, elt) \ + MACRO_BEGIN \ + listtype **_hook; \ + _list_forall_hook(list, _hook) {} \ + list_insert_athook(elt, _hook); \ + MACRO_END + +/* unlink the first element that satisfies the condition. */ +#define list_unlink_cond(listtype, list, elt, c) \ + MACRO_BEGIN \ + listtype **_hook; \ + list_find2(elt, list, c, _hook); \ + list_unlink_athook(list, elt, _hook); \ + MACRO_END + +/* let elt be the nth element of the list, starting to count from 0. + Return NULL if out of bounds. */ +#define list_nth(elt, list, n) \ + MACRO_BEGIN \ + int _x; /* only evaluate n once */ \ + for (_x=(n), elt=list; _x && elt; _x--, elt=elt->next) {} \ + MACRO_END + +/* let elt be the nth element of the list, starting to count from 0. + Return NULL if out of bounds. */ +#define list_nth_hook(elt, list, n, hook) \ + MACRO_BEGIN \ + int _x; /* only evaluate n once */ \ + for (_x=(n), elt=list, hook=&list; _x && elt; _x--, hook=&elt->next, elt=elt->next) {} \ + MACRO_END + +/* set n to the length of the list */ +#define list_length(listtype, list, n) \ + MACRO_BEGIN \ + listtype *_elt; \ + n=0; \ + list_forall(_elt, list) \ + n++; \ + MACRO_END + +/* set n to the index of the first element satisfying cond, or -1 if + none found. Also set elt to the element, or NULL if none found. */ +#define list_index(list, n, elt, c) \ + MACRO_BEGIN \ + n=0; \ + list_forall(elt, list) { \ + if (c) break; \ + n++; \ + } \ + if (!elt) \ + n=-1; \ + MACRO_END + +/* set n to the number of elements in the list that satisfy condition c */ +#define list_count(list, n, elt, c) \ + MACRO_BEGIN \ + n=0; \ + list_forall(elt, list) { \ + if (c) n++; \ + } \ + MACRO_END + +/* let elt be each element of the list, unlinked. At the end, set list=NULL. */ +#define list_forall_unlink(elt, list) \ + for (elt=list; elt ? (list=elt->next, elt->next=NULL), 1 : 0; elt=list) + +/* reverse a list (efficient) */ +#define list_reverse(listtype, list) \ + MACRO_BEGIN \ + listtype *_list1=NULL, *elt; \ + list_forall_unlink(elt, list) \ + list_prepend(_list1, elt); \ + list = _list1; \ + MACRO_END + +/* insert the element ELT just before the first element TMP of the + list for which COND holds. Here COND must be a condition of ELT and + TMP. Typical usage is to insert an element into an ordered list: + for instance, list_insert_ordered(listtype, list, elt, tmp, + elt->size <= tmp->size). Note: if we give a "less than or equal" + condition, the new element will be inserted just before a sequence + of equal elements. If we give a "less than" condition, the new + element will be inserted just after a list of equal elements. + Note: it is much more efficient to construct a list with + list_prepend and then order it with list_merge_sort, than to + construct it with list_insert_ordered. */ +#define list_insert_ordered(listtype, list, elt, tmp, cond) \ + MACRO_BEGIN \ + listtype **_hook; \ + _list_find_hook(list, (tmp=*_hook, (cond)), _hook); \ + list_insert_athook(elt, _hook); \ + MACRO_END + +/* sort the given list, according to the comparison condition. + Typical usage is list_sort(listtype, list, a, b, a->size < + b->size). Note: if we give "less than or equal" condition, each + segment of equal elements will be reversed in order. If we give a + "less than" condition, each segment of equal elements will retain + the original order. The latter is slower but sometimes + prettier. Average running time: n*n/2. */ +#define list_sort(listtype, list, a, b, cond) \ + MACRO_BEGIN \ + listtype *_newlist=NULL; \ + list_forall_unlink(a, list) \ + list_insert_ordered(listtype, _newlist, a, b, cond); \ + list = _newlist; \ + MACRO_END + +/* a much faster sort algorithm (merge sort, n log n worst case). It + is required that the list type has an additional, unused next1 + component. Note there is no curious reversal of order of equal + elements as for list_sort. */ + +#define list_mergesort(listtype, list, a, b, cond) \ + MACRO_BEGIN \ + listtype *_elt, **_hook1; \ + \ + for (_elt=list; _elt; _elt=_elt->next1) { \ + _elt->next1 = _elt->next; \ + _elt->next = NULL; \ + } \ + do { \ + _hook1 = &(list); \ + while ((a = *_hook1) != NULL && (b = a->next1) != NULL ) { \ + _elt = b->next1; \ + _list_merge_cond(listtype, a, b, cond, *_hook1); \ + _hook1 = &((*_hook1)->next1); \ + *_hook1 = _elt; \ + } \ + } while (_hook1 != &(list)); \ + MACRO_END + +/* merge two sorted lists. Store result at &result */ +#define _list_merge_cond(listtype, a, b, cond, result) \ + MACRO_BEGIN \ + listtype **_hook; \ + _hook = &(result); \ + while (1) { \ + if (a==NULL) { \ + *_hook = b; \ + break; \ + } else if (b==NULL) { \ + *_hook = a; \ + break; \ + } else if (cond) { \ + *_hook = a; \ + _hook = &(a->next); \ + a = a->next; \ + } else { \ + *_hook = b; \ + _hook = &(b->next); \ + b = b->next; \ + } \ + } \ + MACRO_END + +/* ---------------------------------------------------------------------- */ +/* macros for doubly-linked lists */ + +#define dlist_append(head, end, elt) \ + MACRO_BEGIN \ + elt->prev = end; \ + elt->next = NULL; \ + if (end) { \ + end->next = elt; \ + } else { \ + head = elt; \ + } \ + end = elt; \ + MACRO_END + +/* let elt be each element of the list, unlinked. At the end, set list=NULL. */ +#define dlist_forall_unlink(elt, head, end) \ + for (elt=head; elt ? (head=elt->next, elt->next=NULL, elt->prev=NULL), 1 : (end=NULL, 0); elt=head) + +/* unlink the first element of the list */ +#define dlist_unlink_first(head, end, elt) \ + MACRO_BEGIN \ + elt = head; \ + if (head) { \ + head = head->next; \ + if (head) { \ + head->prev = NULL; \ + } else { \ + end = NULL; \ + } \ + elt->prev = NULL; \ + elt->next = NULL; \ + } \ + MACRO_END + +#endif /* _PS_LISTS_H */ + diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/potracelib.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/potracelib.c new file mode 100644 index 00000000000..7dc9fe940ab --- /dev/null +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/potracelib.c @@ -0,0 +1,114 @@ +/* Copyright (C) 2001-2017 Peter Selinger. + This file is part of Potrace. It is free software and it is covered + by the GNU General Public License. See the file COPYING for details. */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include + +#include "potracelib.h" +#include "curve.h" +#include "decompose.h" +#include "trace.h" +#include "progress.h" + +/* default parameters */ +static const potrace_param_t param_default = { + 2, /* turdsize */ + POTRACE_TURNPOLICY_MINORITY, /* turnpolicy */ + 1.0, /* alphamax */ + 1, /* opticurve */ + 0.2, /* opttolerance */ + { + NULL, /* callback function */ + NULL, /* callback data */ + 0.0, 1.0, /* progress range */ + 0.0, /* granularity */ + }, +}; + +/* Return a fresh copy of the set of default parameters, or NULL on + failure with errno set. */ +potrace_param_t *potrace_param_default(void) { + potrace_param_t *p; + + p = (potrace_param_t *) malloc(sizeof(potrace_param_t)); + if (!p) { + return NULL; + } + memcpy(p, ¶m_default, sizeof(potrace_param_t)); + return p; +} + +/* On success, returns a Potrace state st with st->status == + POTRACE_STATUS_OK. On failure, returns NULL if no Potrace state + could be created (with errno set), or returns an incomplete Potrace + state (with st->status == POTRACE_STATUS_INCOMPLETE, and with errno + set). Complete or incomplete Potrace state can be freed with + potrace_state_free(). */ +potrace_state_t *potrace_trace(const potrace_param_t *param, const potrace_bitmap_t *bm) { + int r; + path_t *plist = NULL; + potrace_state_t *st; + progress_t prog; + progress_t subprog; + + /* prepare private progress bar state */ + prog.callback = param->progress.callback; + prog.data = param->progress.data; + prog.min = param->progress.min; + prog.max = param->progress.max; + prog.epsilon = param->progress.epsilon; + prog.d_prev = param->progress.min; + + /* allocate state object */ + st = (potrace_state_t *)malloc(sizeof(potrace_state_t)); + if (!st) { + return NULL; + } + + progress_subrange_start(0.0, 0.1, &prog, &subprog); + + /* process the image */ + r = bm_to_pathlist(bm, &plist, param, &subprog); + if (r) { + free(st); + return NULL; + } + + st->status = POTRACE_STATUS_OK; + st->plist = plist; + st->priv = NULL; /* private state currently unused */ + + progress_subrange_end(&prog, &subprog); + + progress_subrange_start(0.1, 1.0, &prog, &subprog); + + /* partial success. */ + r = process_path(plist, param, &subprog); + if (r) { + st->status = POTRACE_STATUS_INCOMPLETE; + } + + progress_subrange_end(&prog, &subprog); + + return st; +} + +/* free a Potrace state, without disturbing errno. */ +void potrace_state_free(potrace_state_t *st) { + pathlist_free(st->plist); + free(st); +} + +/* free a parameter list, without disturbing errno. */ +void potrace_param_free(potrace_param_t *p) { + free(p); +} + +const char *potrace_version(void) { + return "potracelib " VERSION ""; +} diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/potracelib.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/potracelib.h new file mode 100644 index 00000000000..003297740af --- /dev/null +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/potracelib.h @@ -0,0 +1,139 @@ +/* Copyright (C) 2001-2017 Peter Selinger. + This file is part of Potrace. It is free software and it is covered + by the GNU General Public License. See the file COPYING for details. */ + +#ifndef POTRACELIB_H +#define POTRACELIB_H + +/* this file defines the API for the core Potrace library. For a more + detailed description of the API, see potracelib.pdf */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* ---------------------------------------------------------------------- */ +/* tracing parameters */ + +/* turn policies */ +#define POTRACE_TURNPOLICY_BLACK 0 +#define POTRACE_TURNPOLICY_WHITE 1 +#define POTRACE_TURNPOLICY_LEFT 2 +#define POTRACE_TURNPOLICY_RIGHT 3 +#define POTRACE_TURNPOLICY_MINORITY 4 +#define POTRACE_TURNPOLICY_MAJORITY 5 +#define POTRACE_TURNPOLICY_RANDOM 6 + +/* structure to hold progress bar callback data */ +struct potrace_progress_s { + void (*callback)(double progress, void *privdata); /* callback fn */ + void *data; /* callback function's private data */ + double min, max; /* desired range of progress, e.g. 0.0 to 1.0 */ + double epsilon; /* granularity: can skip smaller increments */ +}; +typedef struct potrace_progress_s potrace_progress_t; + +/* structure to hold tracing parameters */ +struct potrace_param_s { + int turdsize; /* area of largest path to be ignored */ + int turnpolicy; /* resolves ambiguous turns in path decomposition */ + double alphamax; /* corner threshold */ + int opticurve; /* use curve optimization? */ + double opttolerance; /* curve optimization tolerance */ + potrace_progress_t progress; /* progress callback function */ +}; +typedef struct potrace_param_s potrace_param_t; + +/* ---------------------------------------------------------------------- */ +/* bitmaps */ + +/* native word size */ +typedef unsigned long potrace_word; + +/* Internal bitmap format. The n-th scanline starts at scanline(n) = + (map + n*dy). Raster data is stored as a sequence of potrace_words + (NOT bytes). The leftmost bit of scanline n is the most significant + bit of scanline(n)[0]. */ +struct potrace_bitmap_s { + int w, h; /* width and height, in pixels */ + int dy; /* words per scanline (not bytes) */ + potrace_word *map; /* raw data, dy*h words */ +}; +typedef struct potrace_bitmap_s potrace_bitmap_t; + +/* ---------------------------------------------------------------------- */ +/* curves */ + +/* point */ +struct potrace_dpoint_s { + double x, y; +}; +typedef struct potrace_dpoint_s potrace_dpoint_t; + +/* segment tags */ +#define POTRACE_CURVETO 1 +#define POTRACE_CORNER 2 + +/* closed curve segment */ +struct potrace_curve_s { + int n; /* number of segments */ + int *tag; /* tag[n]: POTRACE_CURVETO or POTRACE_CORNER */ + potrace_dpoint_t (*c)[3]; /* c[n][3]: control points. + c[n][0] is unused for tag[n]=POTRACE_CORNER */ +}; +typedef struct potrace_curve_s potrace_curve_t; + +/* Linked list of signed curve segments. Also carries a tree structure. */ +struct potrace_path_s { + int area; /* area of the bitmap path */ + int sign; /* '+' or '-', depending on orientation */ + potrace_curve_t curve; /* this path's vector data */ + + struct potrace_path_s *next; /* linked list structure */ + + struct potrace_path_s *childlist; /* tree structure */ + struct potrace_path_s *sibling; /* tree structure */ + + struct potrace_privpath_s *priv; /* private state */ +}; +typedef struct potrace_path_s potrace_path_t; + +/* ---------------------------------------------------------------------- */ +/* Potrace state */ + +#define POTRACE_STATUS_OK 0 +#define POTRACE_STATUS_INCOMPLETE 1 + +struct potrace_state_s { + int status; + potrace_path_t *plist; /* vector data */ + + struct potrace_privstate_s *priv; /* private state */ +}; +typedef struct potrace_state_s potrace_state_t; + +/* ---------------------------------------------------------------------- */ +/* API functions */ + +/* get default parameters */ +potrace_param_t *potrace_param_default(void); + +/* free parameter set */ +void potrace_param_free(potrace_param_t *p); + +/* trace a bitmap */ +potrace_state_t *potrace_trace(const potrace_param_t *param, + const potrace_bitmap_t *bm); + +/* free a Potrace state */ +void potrace_state_free(potrace_state_t *st); + +/* return a static plain text version string identifying this version + of potracelib */ +const char *potrace_version(void); + +#ifdef __cplusplus +} /* end of extern "C" */ +#endif + +#endif /* POTRACELIB_H */ diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/progress.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/progress.h new file mode 100644 index 00000000000..cdd637694c1 --- /dev/null +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/progress.h @@ -0,0 +1,79 @@ +/* Copyright (C) 2001-2017 Peter Selinger. + This file is part of Potrace. It is free software and it is covered + by the GNU General Public License. See the file COPYING for details. */ + +/* operations on potrace_progress_t objects, which are defined in + potracelib.h. Note: the code attempts to minimize runtime overhead + when no progress monitoring was requested. It also tries to + minimize excessive progress calculations beneath the "epsilon" + threshold. */ + +#ifndef PROGRESS_H +#define PROGRESS_H + +/* structure to hold progress bar callback data */ +struct progress_s { + void (*callback)(double progress, void *privdata); /* callback fn */ + void *data; /* callback function's private data */ + double min, max; /* desired range of progress, e.g. 0.0 to 1.0 */ + double epsilon; /* granularity: can skip smaller increments */ + double b; /* upper limit of subrange in superrange units */ + double d_prev; /* previous value of d */ +}; +typedef struct progress_s progress_t; + +/* notify given progress object of current progress. Note that d is + given in the 0.0-1.0 range, which will be scaled and translated to + the progress object's range. */ +static inline void progress_update(double d, progress_t *prog) { + double d_scaled; + + if (prog != NULL && prog->callback != NULL) { + d_scaled = prog->min * (1-d) + prog->max * d; + if (d == 1.0 || d_scaled >= prog->d_prev + prog->epsilon) { + prog->callback(prog->min * (1-d) + prog->max * d, prog->data); + prog->d_prev = d_scaled; + } + } +} + +/* start a subrange of the given progress object. The range is + narrowed to [a..b], relative to 0.0-1.0 coordinates. If new range + is below granularity threshold, disable further subdivisions. */ +static inline void progress_subrange_start(double a, double b, const progress_t *prog, progress_t *sub) { + double min, max; + + if (prog == NULL || prog->callback == NULL) { + sub->callback = NULL; + return; + } + + min = prog->min * (1-a) + prog->max * a; + max = prog->min * (1-b) + prog->max * b; + + if (max - min < prog->epsilon) { + sub->callback = NULL; /* no further progress info in subrange */ + sub->b = b; + return; + } + sub->callback = prog->callback; + sub->data = prog->data; + sub->epsilon = prog->epsilon; + sub->min = min; + sub->max = max; + sub->d_prev = prog->d_prev; + return; +} + +static inline void progress_subrange_end(progress_t *prog, progress_t *sub) { + if (prog != NULL && prog->callback != NULL) { + if (sub->callback == NULL) { + progress_update(sub->b, prog); + } else { + prog->d_prev = sub->d_prev; + } + } +} + +#endif /* PROGRESS_H */ + diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/trace.c b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/trace.c new file mode 100644 index 00000000000..b0b9944ae6a --- /dev/null +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/trace.c @@ -0,0 +1,1249 @@ +/* Copyright (C) 2001-2017 Peter Selinger. + This file is part of Potrace. It is free software and it is covered + by the GNU General Public License. See the file COPYING for details. */ + +/* transform jaggy paths into smooth curves */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include + +#include "potracelib.h" +#include "curve.h" +#include "lists.h" +#include "auxiliary.h" +#include "trace.h" +#include "progress.h" + +#define INFTY 10000000 /* it suffices that this is longer than any + path; it need not be really infinite */ +#define COS179 -0.999847695156 /* the cosine of 179 degrees */ + +/* ---------------------------------------------------------------------- */ +#define SAFE_CALLOC(var, n, typ) \ + if ((var = (typ *)calloc(n, sizeof(typ))) == NULL) goto calloc_error + +/* ---------------------------------------------------------------------- */ +/* auxiliary functions */ + +/* return a direction that is 90 degrees counterclockwise from p2-p0, + but then restricted to one of the major wind directions (n, nw, w, etc) */ +static inline point_t dorth_infty(dpoint_t p0, dpoint_t p2) { + point_t r; + + r.y = sign(p2.x-p0.x); + r.x = -sign(p2.y-p0.y); + + return r; +} + +/* return (p1-p0)x(p2-p0), the area of the parallelogram */ +static inline double dpara(dpoint_t p0, dpoint_t p1, dpoint_t p2) { + double x1, y1, x2, y2; + + x1 = p1.x-p0.x; + y1 = p1.y-p0.y; + x2 = p2.x-p0.x; + y2 = p2.y-p0.y; + + return x1*y2 - x2*y1; +} + +/* ddenom/dpara have the property that the square of radius 1 centered + at p1 intersects the line p0p2 iff |dpara(p0,p1,p2)| <= ddenom(p0,p2) */ +static inline double ddenom(dpoint_t p0, dpoint_t p2) { + point_t r = dorth_infty(p0, p2); + + return r.y*(p2.x-p0.x) - r.x*(p2.y-p0.y); +} + +/* return 1 if a <= b < c < a, in a cyclic sense (mod n) */ +static inline int cyclic(int a, int b, int c) { + if (a<=c) { + return (a<=b && blen; + sums_t *sums = pp->sums; + + double x, y, x2, xy, y2; + double k; + double a, b, c, lambda2, l; + int r=0; /* rotations from i to j */ + + while (j>=n) { + j-=n; + r+=1; + } + while (i>=n) { + i-=n; + r-=1; + } + while (j<0) { + j+=n; + r-=1; + } + while (i<0) { + i+=n; + r+=1; + } + + x = sums[j+1].x-sums[i].x+r*sums[n].x; + y = sums[j+1].y-sums[i].y+r*sums[n].y; + x2 = sums[j+1].x2-sums[i].x2+r*sums[n].x2; + xy = sums[j+1].xy-sums[i].xy+r*sums[n].xy; + y2 = sums[j+1].y2-sums[i].y2+r*sums[n].y2; + k = j+1-i+r*n; + + ctr->x = x/k; + ctr->y = y/k; + + a = (x2-(double)x*x/k)/k; + b = (xy-(double)x*y/k)/k; + c = (y2-(double)y*y/k)/k; + + lambda2 = (a+c+sqrt((a-c)*(a-c)+4*b*b))/2; /* larger e.value */ + + /* now find e.vector for lambda2 */ + a -= lambda2; + c -= lambda2; + + if (fabs(a) >= fabs(c)) { + l = sqrt(a*a+b*b); + if (l!=0) { + dir->x = -b/l; + dir->y = a/l; + } + } else { + l = sqrt(c*c+b*b); + if (l!=0) { + dir->x = -c/l; + dir->y = b/l; + } + } + if (l==0) { + dir->x = dir->y = 0; /* sometimes this can happen when k=4: + the two eigenvalues coincide */ + } +} + +/* the type of (affine) quadratic forms, represented as symmetric 3x3 + matrices. The value of the quadratic form at a vector (x,y) is v^t + Q v, where v = (x,y,1)^t. */ +typedef double quadform_t[3][3]; + +/* Apply quadratic form Q to vector w = (w.x,w.y) */ +static inline double quadform(quadform_t Q, dpoint_t w) { + double v[3]; + int i, j; + double sum; + + v[0] = w.x; + v[1] = w.y; + v[2] = 1; + sum = 0.0; + + for (i=0; i<3; i++) { + for (j=0; j<3; j++) { + sum += v[i] * Q[i][j] * v[j]; + } + } + return sum; +} + +/* calculate p1 x p2 */ +static inline int xprod(point_t p1, point_t p2) { + return p1.x*p2.y - p1.y*p2.x; +} + +/* calculate (p1-p0)x(p3-p2) */ +static inline double cprod(dpoint_t p0, dpoint_t p1, dpoint_t p2, dpoint_t p3) { + double x1, y1, x2, y2; + + x1 = p1.x - p0.x; + y1 = p1.y - p0.y; + x2 = p3.x - p2.x; + y2 = p3.y - p2.y; + + return x1*y2 - x2*y1; +} + +/* calculate (p1-p0)*(p2-p0) */ +static inline double iprod(dpoint_t p0, dpoint_t p1, dpoint_t p2) { + double x1, y1, x2, y2; + + x1 = p1.x - p0.x; + y1 = p1.y - p0.y; + x2 = p2.x - p0.x; + y2 = p2.y - p0.y; + + return x1*x2 + y1*y2; +} + +/* calculate (p1-p0)*(p3-p2) */ +static inline double iprod1(dpoint_t p0, dpoint_t p1, dpoint_t p2, dpoint_t p3) { + double x1, y1, x2, y2; + + x1 = p1.x - p0.x; + y1 = p1.y - p0.y; + x2 = p3.x - p2.x; + y2 = p3.y - p2.y; + + return x1*x2 + y1*y2; +} + +/* calculate distance between two points */ +static inline double ddist(dpoint_t p, dpoint_t q) { + return sqrt(sq(p.x-q.x)+sq(p.y-q.y)); +} + +/* calculate point of a bezier curve */ +static inline dpoint_t bezier(double t, dpoint_t p0, dpoint_t p1, dpoint_t p2, dpoint_t p3) { + double s = 1-t; + dpoint_t res; + + /* Note: a good optimizing compiler (such as gcc-3) reduces the + following to 16 multiplications, using common subexpression + elimination. */ + + res.x = s*s*s*p0.x + 3*(s*s*t)*p1.x + 3*(t*t*s)*p2.x + t*t*t*p3.x; + res.y = s*s*s*p0.y + 3*(s*s*t)*p1.y + 3*(t*t*s)*p2.y + t*t*t*p3.y; + + return res; +} + +/* calculate the point t in [0..1] on the (convex) bezier curve + (p0,p1,p2,p3) which is tangent to q1-q0. Return -1.0 if there is no + solution in [0..1]. */ +static double tangent(dpoint_t p0, dpoint_t p1, dpoint_t p2, dpoint_t p3, dpoint_t q0, dpoint_t q1) { + double A, B, C; /* (1-t)^2 A + 2(1-t)t B + t^2 C = 0 */ + double a, b, c; /* a t^2 + b t + c = 0 */ + double d, s, r1, r2; + + A = cprod(p0, p1, q0, q1); + B = cprod(p1, p2, q0, q1); + C = cprod(p2, p3, q0, q1); + + a = A - 2*B + C; + b = -2*A + 2*B; + c = A; + + d = b*b - 4*a*c; + + if (a==0 || d<0) { + return -1.0; + } + + s = sqrt(d); + + r1 = (-b + s) / (2 * a); + r2 = (-b - s) / (2 * a); + + if (r1 >= 0 && r1 <= 1) { + return r1; + } else if (r2 >= 0 && r2 <= 1) { + return r2; + } else { + return -1.0; + } +} + +/* ---------------------------------------------------------------------- */ +/* Preparation: fill in the sum* fields of a path (used for later + rapid summing). Return 0 on success, 1 with errno set on + failure. */ +static int calc_sums(privpath_t *pp) { + int i, x, y; + int n = pp->len; + + SAFE_CALLOC(pp->sums, pp->len+1, sums_t); + + /* origin */ + pp->x0 = pp->pt[0].x; + pp->y0 = pp->pt[0].y; + + /* preparatory computation for later fast summing */ + pp->sums[0].x2 = pp->sums[0].xy = pp->sums[0].y2 = pp->sums[0].x = pp->sums[0].y = 0; + for (i=0; ipt[i].x - pp->x0; + y = pp->pt[i].y - pp->y0; + pp->sums[i+1].x = pp->sums[i].x + x; + pp->sums[i+1].y = pp->sums[i].y + y; + pp->sums[i+1].x2 = pp->sums[i].x2 + (double)x*x; + pp->sums[i+1].xy = pp->sums[i].xy + (double)x*y; + pp->sums[i+1].y2 = pp->sums[i].y2 + (double)y*y; + } + return 0; + + calloc_error: + return 1; +} + +/* ---------------------------------------------------------------------- */ +/* Stage 1: determine the straight subpaths (Sec. 2.2.1). Fill in the + "lon" component of a path object (based on pt/len). For each i, + lon[i] is the furthest index such that a straight line can be drawn + from i to lon[i]. Return 1 on error with errno set, else 0. */ + +/* this algorithm depends on the fact that the existence of straight + subpaths is a triplewise property. I.e., there exists a straight + line through squares i0,...,in iff there exists a straight line + through i,j,k, for all i0<=i= 0 and xprod(constraint[1], + cur) <= 0. */ + +/* Remark for Potrace 1.1: the current implementation of calc_lon is + more complex than the implementation found in Potrace 1.0, but it + is considerably faster. The introduction of the "nc" data structure + means that we only have to test the constraints for "corner" + points. On a typical input file, this speeds up the calc_lon + function by a factor of 31.2, thereby decreasing its time share + within the overall Potrace algorithm from 72.6% to 7.82%, and + speeding up the overall algorithm by a factor of 3.36. On another + input file, calc_lon was sped up by a factor of 6.7, decreasing its + time share from 51.4% to 13.61%, and speeding up the overall + algorithm by a factor of 1.78. In any case, the savings are + substantial. */ + +/* returns 0 on success, 1 on error with errno set */ +static int calc_lon(privpath_t *pp) { + point_t *pt = pp->pt; + int n = pp->len; + int i, j, k, k1; + int ct[4], dir; + point_t constraint[2]; + point_t cur; + point_t off; + int *pivk = NULL; /* pivk[n] */ + int *nc = NULL; /* nc[n]: next corner */ + point_t dk; /* direction of k-k1 */ + int a, b, c, d; + + SAFE_CALLOC(pivk, n, int); + SAFE_CALLOC(nc, n, int); + + /* initialize the nc data structure. Point from each point to the + furthest future point to which it is connected by a vertical or + horizontal segment. We take advantage of the fact that there is + always a direction change at 0 (due to the path decomposition + algorithm). But even if this were not so, there is no harm, as + in practice, correctness does not depend on the word "furthest" + above. */ + k = 0; + for (i=n-1; i>=0; i--) { + if (pt[i].x != pt[k].x && pt[i].y != pt[k].y) { + k = i+1; /* necessarily ilon, n, int); + + /* determine pivot points: for each i, let pivk[i] be the furthest k + such that all j with i=0; i--) { + ct[0] = ct[1] = ct[2] = ct[3] = 0; + + /* keep track of "directions" that have occurred */ + dir = (3+3*(pt[mod(i+1,n)].x-pt[i].x)+(pt[mod(i+1,n)].y-pt[i].y))/2; + ct[dir]++; + + constraint[0].x = 0; + constraint[0].y = 0; + constraint[1].x = 0; + constraint[1].y = 0; + + /* find the next k such that no straight line from i to k */ + k = nc[i]; + k1 = i; + while (1) { + + dir = (3+3*sign(pt[k].x-pt[k1].x)+sign(pt[k].y-pt[k1].y))/2; + ct[dir]++; + + /* if all four "directions" have occurred, cut this path */ + if (ct[0] && ct[1] && ct[2] && ct[3]) { + pivk[i] = k1; + goto foundk; + } + + cur.x = pt[k].x - pt[i].x; + cur.y = pt[k].y - pt[i].y; + + /* see if current constraint is violated */ + if (xprod(constraint[0], cur) < 0 || xprod(constraint[1], cur) > 0) { + goto constraint_viol; + } + + /* else, update constraint */ + if (abs(cur.x) <= 1 && abs(cur.y) <= 1) { + /* no constraint */ + } else { + off.x = cur.x + ((cur.y>=0 && (cur.y>0 || cur.x<0)) ? 1 : -1); + off.y = cur.y + ((cur.x<=0 && (cur.x<0 || cur.y<0)) ? 1 : -1); + if (xprod(constraint[0], off) >= 0) { + constraint[0] = off; + } + off.x = cur.x + ((cur.y<=0 && (cur.y<0 || cur.x<0)) ? 1 : -1); + off.y = cur.y + ((cur.x>=0 && (cur.x>0 || cur.y<0)) ? 1 : -1); + if (xprod(constraint[1], off) <= 0) { + constraint[1] = off; + } + } + k1 = k; + k = nc[k1]; + if (!cyclic(k,i,k1)) { + break; + } + } + constraint_viol: + /* k1 was the last "corner" satisfying the current constraint, and + k is the first one violating it. We now need to find the last + point along k1..k which satisfied the constraint. */ + dk.x = sign(pt[k].x-pt[k1].x); + dk.y = sign(pt[k].y-pt[k1].y); + cur.x = pt[k1].x - pt[i].x; + cur.y = pt[k1].y - pt[i].y; + /* find largest integer j such that xprod(constraint[0], cur+j*dk) + >= 0 and xprod(constraint[1], cur+j*dk) <= 0. Use bilinearity + of xprod. */ + a = xprod(constraint[0], cur); + b = xprod(constraint[0], dk); + c = xprod(constraint[1], cur); + d = xprod(constraint[1], dk); + /* find largest integer j such that a+j*b>=0 and c+j*d<=0. This + can be solved with integer arithmetic. */ + j = INFTY; + if (b<0) { + j = floordiv(a,-b); + } + if (d>0) { + j = min(j, floordiv(-c,d)); + } + pivk[i] = mod(k1+j,n); + foundk: + ; + } /* for i */ + + /* clean up: for each i, let lon[i] be the largest k such that for + all i' with i<=i'lon[n-1]=j; + for (i=n-2; i>=0; i--) { + if (cyclic(i+1,pivk[i],j)) { + j=pivk[i]; + } + pp->lon[i]=j; + } + + for (i=n-1; cyclic(mod(i+1,n),j,pp->lon[i]); i--) { + pp->lon[i] = j; + } + + free(pivk); + free(nc); + return 0; + + calloc_error: + free(pivk); + free(nc); + return 1; +} + + +/* ---------------------------------------------------------------------- */ +/* Stage 2: calculate the optimal polygon (Sec. 2.2.2-2.2.4). */ + +/* Auxiliary function: calculate the penalty of an edge from i to j in + the given path. This needs the "lon" and "sum*" data. */ + +static double penalty3(privpath_t *pp, int i, int j) { + int n = pp->len; + point_t *pt = pp->pt; + sums_t *sums = pp->sums; + + /* assume 0<=i=n) { + j -= n; + r = 1; + } + + /* critical inner loop: the "if" gives a 4.6 percent speedup */ + if (r == 0) { + x = sums[j+1].x - sums[i].x; + y = sums[j+1].y - sums[i].y; + x2 = sums[j+1].x2 - sums[i].x2; + xy = sums[j+1].xy - sums[i].xy; + y2 = sums[j+1].y2 - sums[i].y2; + k = j+1 - i; + } else { + x = sums[j+1].x - sums[i].x + sums[n].x; + y = sums[j+1].y - sums[i].y + sums[n].y; + x2 = sums[j+1].x2 - sums[i].x2 + sums[n].x2; + xy = sums[j+1].xy - sums[i].xy + sums[n].xy; + y2 = sums[j+1].y2 - sums[i].y2 + sums[n].y2; + k = j+1 - i + n; + } + + px = (pt[i].x + pt[j].x) / 2.0 - pt[0].x; + py = (pt[i].y + pt[j].y) / 2.0 - pt[0].y; + ey = (pt[j].x - pt[i].x); + ex = -(pt[j].y - pt[i].y); + + a = ((x2 - 2*x*px) / k + px*px); + b = ((xy - x*py - y*px) / k + px*py); + c = ((y2 - 2*y*py) / k + py*py); + + s = ex*ex*a + 2*ex*ey*b + ey*ey*c; + + return sqrt(s); +} + +/* find the optimal polygon. Fill in the m and po components. Return 1 + on failure with errno set, else 0. Non-cyclic version: assumes i=0 + is in the polygon. Fixme: implement cyclic version. */ +static int bestpolygon(privpath_t *pp) +{ + int i, j, m, k; + int n = pp->len; + double *pen = NULL; /* pen[n+1]: penalty vector */ + int *prev = NULL; /* prev[n+1]: best path pointer vector */ + int *clip0 = NULL; /* clip0[n]: longest segment pointer, non-cyclic */ + int *clip1 = NULL; /* clip1[n+1]: backwards segment pointer, non-cyclic */ + int *seg0 = NULL; /* seg0[m+1]: forward segment bounds, m<=n */ + int *seg1 = NULL; /* seg1[m+1]: backward segment bounds, m<=n */ + double thispen; + double best; + int c; + + SAFE_CALLOC(pen, n+1, double); + SAFE_CALLOC(prev, n+1, int); + SAFE_CALLOC(clip0, n, int); + SAFE_CALLOC(clip1, n+1, int); + SAFE_CALLOC(seg0, n+1, int); + SAFE_CALLOC(seg1, n+1, int); + + /* calculate clipped paths */ + for (i=0; ilon[mod(i-1,n)]-1,n); + if (c == i) { + c = mod(i+1,n); + } + if (c < i) { + clip0[i] = n; + } else { + clip0[i] = c; + } + } + + /* calculate backwards path clipping, non-cyclic. j <= clip0[i] iff + clip1[j] <= i, for i,j=0..n. */ + j = 1; + for (i=0; i0; j--) { + seg1[j] = i; + i = clip1[i]; + } + seg1[0] = 0; + + /* now find the shortest path with m segments, based on penalty3 */ + /* note: the outer 2 loops jointly have at most n iterations, thus + the worst-case behavior here is quadratic. In practice, it is + close to linear since the inner loop tends to be short. */ + pen[0]=0; + for (j=1; j<=m; j++) { + for (i=seg1[j]; i<=seg0[j]; i++) { + best = -1; + for (k=seg0[j-1]; k>=clip1[i]; k--) { + thispen = penalty3(pp, k, i) + pen[k]; + if (best < 0 || thispen < best) { + prev[i] = k; + best = thispen; + } + } + pen[i] = best; + } + } + + pp->m = m; + SAFE_CALLOC(pp->po, m, int); + + /* read off shortest path */ + for (i=n, j=m-1; i>0; j--) { + i = prev[i]; + pp->po[j] = i; + } + + free(pen); + free(prev); + free(clip0); + free(clip1); + free(seg0); + free(seg1); + return 0; + + calloc_error: + free(pen); + free(prev); + free(clip0); + free(clip1); + free(seg0); + free(seg1); + return 1; +} + +/* ---------------------------------------------------------------------- */ +/* Stage 3: vertex adjustment (Sec. 2.3.1). */ + +/* Adjust vertices of optimal polygon: calculate the intersection of + the two "optimal" line segments, then move it into the unit square + if it lies outside. Return 1 with errno set on error; 0 on + success. */ + +static int adjust_vertices(privpath_t *pp) { + int m = pp->m; + int *po = pp->po; + int n = pp->len; + point_t *pt = pp->pt; + int x0 = pp->x0; + int y0 = pp->y0; + + dpoint_t *ctr = NULL; /* ctr[m] */ + dpoint_t *dir = NULL; /* dir[m] */ + quadform_t *q = NULL; /* q[m] */ + double v[3]; + double d; + int i, j, k, l; + dpoint_t s; + int r; + + SAFE_CALLOC(ctr, m, dpoint_t); + SAFE_CALLOC(dir, m, dpoint_t); + SAFE_CALLOC(q, m, quadform_t); + + r = privcurve_init(&pp->curve, m); + if (r) { + goto calloc_error; + } + + /* calculate "optimal" point-slope representation for each line + segment */ + for (i=0; iQ[1][1]) { + v[0] = -Q[0][1]; + v[1] = Q[0][0]; + } else if (Q[1][1]) { + v[0] = -Q[1][1]; + v[1] = Q[1][0]; + } else { + v[0] = 1; + v[1] = 0; + } + d = sq(v[0]) + sq(v[1]); + v[2] = - v[1] * s.y - v[0] * s.x; + for (l=0; l<3; l++) { + for (k=0; k<3; k++) { + Q[l][k] += v[l] * v[k] / d; + } + } + } + dx = fabs(w.x-s.x); + dy = fabs(w.y-s.y); + if (dx <= .5 && dy <= .5) { + pp->curve.vertex[i].x = w.x+x0; + pp->curve.vertex[i].y = w.y+y0; + continue; + } + + /* the minimum was not in the unit square; now minimize quadratic + on boundary of square */ + min = quadform(Q, s); + xmin = s.x; + ymin = s.y; + + if (Q[0][0] == 0.0) { + goto fixx; + } + for (z=0; z<2; z++) { /* value of the y-coordinate */ + w.y = s.y-0.5+z; + w.x = - (Q[0][1] * w.y + Q[0][2]) / Q[0][0]; + dx = fabs(w.x-s.x); + cand = quadform(Q, w); + if (dx <= .5 && cand < min) { + min = cand; + xmin = w.x; + ymin = w.y; + } + } + fixx: + if (Q[1][1] == 0.0) { + goto corners; + } + for (z=0; z<2; z++) { /* value of the x-coordinate */ + w.x = s.x-0.5+z; + w.y = - (Q[1][0] * w.x + Q[1][2]) / Q[1][1]; + dy = fabs(w.y-s.y); + cand = quadform(Q, w); + if (dy <= .5 && cand < min) { + min = cand; + xmin = w.x; + ymin = w.y; + } + } + corners: + /* check four corners */ + for (l=0; l<2; l++) { + for (k=0; k<2; k++) { + w.x = s.x-0.5+l; + w.y = s.y-0.5+k; + cand = quadform(Q, w); + if (cand < min) { + min = cand; + xmin = w.x; + ymin = w.y; + } + } + } + + pp->curve.vertex[i].x = xmin + x0; + pp->curve.vertex[i].y = ymin + y0; + continue; + } + + free(ctr); + free(dir); + free(q); + return 0; + + calloc_error: + free(ctr); + free(dir); + free(q); + return 1; +} + +/* ---------------------------------------------------------------------- */ +/* Stage 4: smoothing and corner analysis (Sec. 2.3.3) */ + +/* reverse orientation of a path */ +static void reverse(privcurve_t *curve) { + int m = curve->n; + int i, j; + dpoint_t tmp; + + for (i=0, j=m-1; ivertex[i]; + curve->vertex[i] = curve->vertex[j]; + curve->vertex[j] = tmp; + } +} + +/* Always succeeds */ +static void smooth(privcurve_t *curve, double alphamax) { + int m = curve->n; + + int i, j, k; + double dd, denom, alpha; + dpoint_t p2, p3, p4; + + /* examine each vertex and find its best fit */ + for (i=0; ivertex[k], curve->vertex[j]); + + denom = ddenom(curve->vertex[i], curve->vertex[k]); + if (denom != 0.0) { + dd = dpara(curve->vertex[i], curve->vertex[j], curve->vertex[k]) / denom; + dd = fabs(dd); + alpha = dd>1 ? (1 - 1.0/dd) : 0; + alpha = alpha / 0.75; + } else { + alpha = 4/3.0; + } + curve->alpha0[j] = alpha; /* remember "original" value of alpha */ + + if (alpha >= alphamax) { /* pointed corner */ + curve->tag[j] = POTRACE_CORNER; + curve->c[j][1] = curve->vertex[j]; + curve->c[j][2] = p4; + } else { + if (alpha < 0.55) { + alpha = 0.55; + } else if (alpha > 1) { + alpha = 1; + } + p2 = interval(.5+.5*alpha, curve->vertex[i], curve->vertex[j]); + p3 = interval(.5+.5*alpha, curve->vertex[k], curve->vertex[j]); + curve->tag[j] = POTRACE_CURVETO; + curve->c[j][0] = p2; + curve->c[j][1] = p3; + curve->c[j][2] = p4; + } + curve->alpha[j] = alpha; /* store the "cropped" value of alpha */ + curve->beta[j] = 0.5; + } + curve->alphacurve = 1; + + return; +} + +/* ---------------------------------------------------------------------- */ +/* Stage 5: Curve optimization (Sec. 2.4) */ + +/* a private type for the result of opti_penalty */ +struct opti_s { + double pen; /* penalty */ + dpoint_t c[2]; /* curve parameters */ + double t, s; /* curve parameters */ + double alpha; /* curve parameter */ +}; +typedef struct opti_s opti_t; + +/* calculate best fit from i+.5 to j+.5. Assume icurve.n; + int k, k1, k2, conv, i1; + double area, alpha, d, d1, d2; + dpoint_t p0, p1, p2, p3, pt; + double A, R, A1, A2, A3, A4; + double s, t; + + /* check convexity, corner-freeness, and maximum bend < 179 degrees */ + + if (i==j) { /* sanity - a full loop can never be an opticurve */ + return 1; + } + + k = i; + i1 = mod(i+1, m); + k1 = mod(k+1, m); + conv = convc[k1]; + if (conv == 0) { + return 1; + } + d = ddist(pp->curve.vertex[i], pp->curve.vertex[i1]); + for (k=k1; k!=j; k=k1) { + k1 = mod(k+1, m); + k2 = mod(k+2, m); + if (convc[k1] != conv) { + return 1; + } + if (sign(cprod(pp->curve.vertex[i], pp->curve.vertex[i1], pp->curve.vertex[k1], pp->curve.vertex[k2])) != conv) { + return 1; + } + if (iprod1(pp->curve.vertex[i], pp->curve.vertex[i1], pp->curve.vertex[k1], pp->curve.vertex[k2]) < d * ddist(pp->curve.vertex[k1], pp->curve.vertex[k2]) * COS179) { + return 1; + } + } + + /* the curve we're working in: */ + p0 = pp->curve.c[mod(i,m)][2]; + p1 = pp->curve.vertex[mod(i+1,m)]; + p2 = pp->curve.vertex[mod(j,m)]; + p3 = pp->curve.c[mod(j,m)][2]; + + /* determine its area */ + area = areac[j] - areac[i]; + area -= dpara(pp->curve.vertex[0], pp->curve.c[i][2], pp->curve.c[j][2])/2; + if (i>=j) { + area += areac[m]; + } + + /* find intersection o of p0p1 and p2p3. Let t,s such that o = + interval(t,p0,p1) = interval(s,p3,p2). Let A be the area of the + triangle (p0,o,p3). */ + + A1 = dpara(p0, p1, p2); + A2 = dpara(p0, p1, p3); + A3 = dpara(p0, p2, p3); + /* A4 = dpara(p1, p2, p3); */ + A4 = A1+A3-A2; + + if (A2 == A1) { /* this should never happen */ + return 1; + } + + t = A3/(A3-A4); + s = A2/(A2-A1); + A = A2 * t / 2.0; + + if (A == 0.0) { /* this should never happen */ + return 1; + } + + R = area / A; /* relative area */ + alpha = 2 - sqrt(4 - R / 0.3); /* overall alpha for p0-o-p3 curve */ + + res->c[0] = interval(t * alpha, p0, p1); + res->c[1] = interval(s * alpha, p3, p2); + res->alpha = alpha; + res->t = t; + res->s = s; + + p1 = res->c[0]; + p2 = res->c[1]; /* the proposed curve is now (p0,p1,p2,p3) */ + + res->pen = 0; + + /* calculate penalty */ + /* check tangency with edges */ + for (k=mod(i+1,m); k!=j; k=k1) { + k1 = mod(k+1,m); + t = tangent(p0, p1, p2, p3, pp->curve.vertex[k], pp->curve.vertex[k1]); + if (t<-.5) { + return 1; + } + pt = bezier(t, p0, p1, p2, p3); + d = ddist(pp->curve.vertex[k], pp->curve.vertex[k1]); + if (d == 0.0) { /* this should never happen */ + return 1; + } + d1 = dpara(pp->curve.vertex[k], pp->curve.vertex[k1], pt) / d; + if (fabs(d1) > opttolerance) { + return 1; + } + if (iprod(pp->curve.vertex[k], pp->curve.vertex[k1], pt) < 0 || iprod(pp->curve.vertex[k1], pp->curve.vertex[k], pt) < 0) { + return 1; + } + res->pen += sq(d1); + } + + /* check corners */ + for (k=i; k!=j; k=k1) { + k1 = mod(k+1,m); + t = tangent(p0, p1, p2, p3, pp->curve.c[k][2], pp->curve.c[k1][2]); + if (t<-.5) { + return 1; + } + pt = bezier(t, p0, p1, p2, p3); + d = ddist(pp->curve.c[k][2], pp->curve.c[k1][2]); + if (d == 0.0) { /* this should never happen */ + return 1; + } + d1 = dpara(pp->curve.c[k][2], pp->curve.c[k1][2], pt) / d; + d2 = dpara(pp->curve.c[k][2], pp->curve.c[k1][2], pp->curve.vertex[k1]) / d; + d2 *= 0.75 * pp->curve.alpha[k1]; + if (d2 < 0) { + d1 = -d1; + d2 = -d2; + } + if (d1 < d2 - opttolerance) { + return 1; + } + if (d1 < d2) { + res->pen += sq(d1 - d2); + } + } + + return 0; +} + +/* optimize the path p, replacing sequences of Bezier segments by a + single segment when possible. Return 0 on success, 1 with errno set + on failure. */ +static int opticurve(privpath_t *pp, double opttolerance) { + int m = pp->curve.n; + int *pt = NULL; /* pt[m+1] */ + double *pen = NULL; /* pen[m+1] */ + int *len = NULL; /* len[m+1] */ + opti_t *opt = NULL; /* opt[m+1] */ + int om; + int i,j,r; + opti_t o; + dpoint_t p0; + int i1; + double area; + double alpha; + double *s = NULL; + double *t = NULL; + + int *convc = NULL; /* conv[m]: pre-computed convexities */ + double *areac = NULL; /* cumarea[m+1]: cache for fast area computation */ + + SAFE_CALLOC(pt, m+1, int); + SAFE_CALLOC(pen, m+1, double); + SAFE_CALLOC(len, m+1, int); + SAFE_CALLOC(opt, m+1, opti_t); + SAFE_CALLOC(convc, m, int); + SAFE_CALLOC(areac, m+1, double); + + /* pre-calculate convexity: +1 = right turn, -1 = left turn, 0 = corner */ + for (i=0; icurve.tag[i] == POTRACE_CURVETO) { + convc[i] = sign(dpara(pp->curve.vertex[mod(i-1,m)], pp->curve.vertex[i], pp->curve.vertex[mod(i+1,m)])); + } else { + convc[i] = 0; + } + } + + /* pre-calculate areas */ + area = 0.0; + areac[0] = 0.0; + p0 = pp->curve.vertex[0]; + for (i=0; icurve.tag[i1] == POTRACE_CURVETO) { + alpha = pp->curve.alpha[i1]; + area += 0.3*alpha*(4-alpha)*dpara(pp->curve.c[i][2], pp->curve.vertex[i1], pp->curve.c[i1][2])/2; + area += dpara(p0, pp->curve.c[i][2], pp->curve.c[i1][2])/2; + } + areac[i+1] = area; + } + + pt[0] = -1; + pen[0] = 0; + len[0] = 0; + + /* Fixme: we always start from a fixed point -- should find the best + curve cyclically */ + + for (j=1; j<=m; j++) { + /* calculate best path from 0 to j */ + pt[j] = j-1; + pen[j] = pen[j-1]; + len[j] = len[j-1]+1; + + for (i=j-2; i>=0; i--) { + r = opti_penalty(pp, i, mod(j,m), &o, opttolerance, convc, areac); + if (r) { + break; + } + if (len[j] > len[i]+1 || (len[j] == len[i]+1 && pen[j] > pen[i] + o.pen)) { + pt[j] = i; + pen[j] = pen[i] + o.pen; + len[j] = len[i] + 1; + opt[j] = o; + } + } + } + om = len[m]; + r = privcurve_init(&pp->ocurve, om); + if (r) { + goto calloc_error; + } + SAFE_CALLOC(s, om, double); + SAFE_CALLOC(t, om, double); + + j = m; + for (i=om-1; i>=0; i--) { + if (pt[j]==j-1) { + pp->ocurve.tag[i] = pp->curve.tag[mod(j,m)]; + pp->ocurve.c[i][0] = pp->curve.c[mod(j,m)][0]; + pp->ocurve.c[i][1] = pp->curve.c[mod(j,m)][1]; + pp->ocurve.c[i][2] = pp->curve.c[mod(j,m)][2]; + pp->ocurve.vertex[i] = pp->curve.vertex[mod(j,m)]; + pp->ocurve.alpha[i] = pp->curve.alpha[mod(j,m)]; + pp->ocurve.alpha0[i] = pp->curve.alpha0[mod(j,m)]; + pp->ocurve.beta[i] = pp->curve.beta[mod(j,m)]; + s[i] = t[i] = 1.0; + } else { + pp->ocurve.tag[i] = POTRACE_CURVETO; + pp->ocurve.c[i][0] = opt[j].c[0]; + pp->ocurve.c[i][1] = opt[j].c[1]; + pp->ocurve.c[i][2] = pp->curve.c[mod(j,m)][2]; + pp->ocurve.vertex[i] = interval(opt[j].s, pp->curve.c[mod(j,m)][2], pp->curve.vertex[mod(j,m)]); + pp->ocurve.alpha[i] = opt[j].alpha; + pp->ocurve.alpha0[i] = opt[j].alpha; + s[i] = opt[j].s; + t[i] = opt[j].t; + } + j = pt[j]; + } + + /* calculate beta parameters */ + for (i=0; iocurve.beta[i] = s[i] / (s[i] + t[i1]); + } + pp->ocurve.alphacurve = 1; + + free(pt); + free(pen); + free(len); + free(opt); + free(s); + free(t); + free(convc); + free(areac); + return 0; + + calloc_error: + free(pt); + free(pen); + free(len); + free(opt); + free(s); + free(t); + free(convc); + free(areac); + return 1; +} + +/* ---------------------------------------------------------------------- */ + +#define TRY(x) if (x) goto try_error + +/* return 0 on success, 1 on error with errno set. */ +int process_path(path_t *plist, const potrace_param_t *param, progress_t *progress) { + path_t *p; + double nn = 0, cn = 0; + + if (progress->callback) { + /* precompute task size for progress estimates */ + nn = 0; + list_forall (p, plist) { + nn += p->priv->len; + } + cn = 0; + } + + /* call downstream function with each path */ + list_forall (p, plist) { + TRY(calc_sums(p->priv)); + TRY(calc_lon(p->priv)); + TRY(bestpolygon(p->priv)); + TRY(adjust_vertices(p->priv)); + if (p->sign == '-') { /* reverse orientation of negative paths */ + reverse(&p->priv->curve); + } + smooth(&p->priv->curve, param->alphamax); + if (param->opticurve) { + TRY(opticurve(p->priv, param->opttolerance)); + p->priv->fcurve = &p->priv->ocurve; + } else { + p->priv->fcurve = &p->priv->curve; + } + privcurve_to_curve(p->priv->fcurve, &p->curve); + + if (progress->callback) { + cn += p->priv->len; + progress_update(cn/nn, progress); + } + } + + progress_update(1.0, progress); + + return 0; + + try_error: + return 1; +} diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/trace.h b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/trace.h new file mode 100644 index 00000000000..5976453353b --- /dev/null +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/potrace/trace.h @@ -0,0 +1,15 @@ +/* Copyright (C) 2001-2017 Peter Selinger. + This file is part of Potrace. It is free software and it is covered + by the GNU General Public License. See the file COPYING for details. */ + + +#ifndef TRACE_H +#define TRACE_H + +#include "potracelib.h" +#include "progress.h" +#include "curve.h" + +int process_path(path_t *plist, const potrace_param_t *param, progress_t *progress); + +#endif /* TRACE_H */ diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/variant/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/libs/variant/Makefile.in index 112e5ee313a..e09defab1e7 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/variant/Makefile.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/variant/Makefile.in @@ -95,7 +95,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../../m4/ax_cxx_compile_stdcxx.m4 \ $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \ $(top_srcdir)/../../m4/kpse-freetype2-flags.m4 \ $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \ - $(top_srcdir)/../../m4/kpse-potrace-flags.m4 \ $(top_srcdir)/../../m4/kpse-warnings.m4 \ $(top_srcdir)/../../m4/kpse-win32.m4 \ $(top_srcdir)/../../m4/kpse-zlib-flags.m4 \ @@ -156,7 +155,9 @@ am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AM_LDFLAGS = @AM_LDFLAGS@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -175,6 +176,7 @@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLD = @CXXLD@ CYGPATH_W = @CYGPATH_W@ +DATE = @DATE@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ @@ -231,9 +233,6 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ -POTRACE_DEPEND = @POTRACE_DEPEND@ -POTRACE_INCLUDES = @POTRACE_INCLUDES@ -POTRACE_LIBS = @POTRACE_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/woff2/Makefile.am b/Build/source/texk/dvisvgm/dvisvgm-src/libs/woff2/Makefile.am index 386b805a403..2534baa1c85 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/woff2/Makefile.am +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/woff2/Makefile.am @@ -1,3 +1,4 @@ +if USE_BUNDLED_LIBS noinst_LIBRARIES = libwoff2.a libwoff2_a_SOURCES = \ include/woff2/decode.h \ @@ -25,10 +26,10 @@ libwoff2_a_SOURCES = \ src/woff2_enc.cc \ src/woff2_out.cc -EXTRA_DIST = LICENSE - AM_CXXFLAGS = -Wall -I$(srcdir)/include -I$(srcdir)/../brotli/include @CODE_COVERAGE_RULES@ +endif +EXTRA_DIST = LICENSE CLEANFILES = *.gcda *.gcno diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/woff2/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/libs/woff2/Makefile.in index 991de12dd3d..2074271ab7c 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/woff2/Makefile.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/woff2/Makefile.in @@ -95,7 +95,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../../m4/ax_cxx_compile_stdcxx.m4 \ $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \ $(top_srcdir)/../../m4/kpse-freetype2-flags.m4 \ $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \ - $(top_srcdir)/../../m4/kpse-potrace-flags.m4 \ $(top_srcdir)/../../m4/kpse-warnings.m4 \ $(top_srcdir)/../../m4/kpse-win32.m4 \ $(top_srcdir)/../../m4/kpse-zlib-flags.m4 \ @@ -120,12 +119,25 @@ am__v_AR_0 = @echo " AR " $@; am__v_AR_1 = libwoff2_a_AR = $(AR) $(ARFLAGS) libwoff2_a_LIBADD = +am__libwoff2_a_SOURCES_DIST = include/woff2/decode.h \ + include/woff2/encode.h include/woff2/output.h \ + include/woff2/version.h src/buffer.h src/font.cc src/font.h \ + src/glyph.cc src/glyph.h src/normalize.cc src/normalize.h \ + src/port.h src/round.h src/store_bytes.h src/table_tags.cc \ + src/table_tags.h src/transform.cc src/transform.h \ + src/variable_length.cc src/variable_length.h \ + src/woff2_common.cc src/woff2_common.h src/woff2_enc.cc \ + src/woff2_out.cc am__dirstamp = $(am__leading_dot)dirstamp -am_libwoff2_a_OBJECTS = src/font.$(OBJEXT) src/glyph.$(OBJEXT) \ - src/normalize.$(OBJEXT) src/table_tags.$(OBJEXT) \ - src/transform.$(OBJEXT) src/variable_length.$(OBJEXT) \ - src/woff2_common.$(OBJEXT) src/woff2_enc.$(OBJEXT) \ - src/woff2_out.$(OBJEXT) +@USE_BUNDLED_LIBS_TRUE@am_libwoff2_a_OBJECTS = src/font.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ src/glyph.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ src/normalize.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ src/table_tags.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ src/transform.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ src/variable_length.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ src/woff2_common.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ src/woff2_enc.$(OBJEXT) \ +@USE_BUNDLED_LIBS_TRUE@ src/woff2_out.$(OBJEXT) libwoff2_a_OBJECTS = $(am_libwoff2_a_OBJECTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -188,7 +200,7 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libwoff2_a_SOURCES) -DIST_SOURCES = $(libwoff2_a_SOURCES) +DIST_SOURCES = $(am__libwoff2_a_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -218,7 +230,9 @@ am__DIST_COMMON = $(srcdir)/Makefile.in \ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AM_LDFLAGS = @AM_LDFLAGS@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -237,6 +251,7 @@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLD = @CXXLD@ CYGPATH_W = @CYGPATH_W@ +DATE = @DATE@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ @@ -293,9 +308,6 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ -POTRACE_DEPEND = @POTRACE_DEPEND@ -POTRACE_INCLUDES = @POTRACE_INCLUDES@ -POTRACE_LIBS = @POTRACE_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -360,35 +372,35 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -noinst_LIBRARIES = libwoff2.a -libwoff2_a_SOURCES = \ - include/woff2/decode.h \ - include/woff2/encode.h \ - include/woff2/output.h \ - include/woff2/version.h \ - src/buffer.h \ - src/font.cc \ - src/font.h \ - src/glyph.cc \ - src/glyph.h \ - src/normalize.cc \ - src/normalize.h \ - src/port.h \ - src/round.h \ - src/store_bytes.h \ - src/table_tags.cc \ - src/table_tags.h \ - src/transform.cc \ - src/transform.h \ - src/variable_length.cc \ - src/variable_length.h \ - src/woff2_common.cc \ - src/woff2_common.h \ - src/woff2_enc.cc \ - src/woff2_out.cc - +@USE_BUNDLED_LIBS_TRUE@noinst_LIBRARIES = libwoff2.a +@USE_BUNDLED_LIBS_TRUE@libwoff2_a_SOURCES = \ +@USE_BUNDLED_LIBS_TRUE@ include/woff2/decode.h \ +@USE_BUNDLED_LIBS_TRUE@ include/woff2/encode.h \ +@USE_BUNDLED_LIBS_TRUE@ include/woff2/output.h \ +@USE_BUNDLED_LIBS_TRUE@ include/woff2/version.h \ +@USE_BUNDLED_LIBS_TRUE@ src/buffer.h \ +@USE_BUNDLED_LIBS_TRUE@ src/font.cc \ +@USE_BUNDLED_LIBS_TRUE@ src/font.h \ +@USE_BUNDLED_LIBS_TRUE@ src/glyph.cc \ +@USE_BUNDLED_LIBS_TRUE@ src/glyph.h \ +@USE_BUNDLED_LIBS_TRUE@ src/normalize.cc \ +@USE_BUNDLED_LIBS_TRUE@ src/normalize.h \ +@USE_BUNDLED_LIBS_TRUE@ src/port.h \ +@USE_BUNDLED_LIBS_TRUE@ src/round.h \ +@USE_BUNDLED_LIBS_TRUE@ src/store_bytes.h \ +@USE_BUNDLED_LIBS_TRUE@ src/table_tags.cc \ +@USE_BUNDLED_LIBS_TRUE@ src/table_tags.h \ +@USE_BUNDLED_LIBS_TRUE@ src/transform.cc \ +@USE_BUNDLED_LIBS_TRUE@ src/transform.h \ +@USE_BUNDLED_LIBS_TRUE@ src/variable_length.cc \ +@USE_BUNDLED_LIBS_TRUE@ src/variable_length.h \ +@USE_BUNDLED_LIBS_TRUE@ src/woff2_common.cc \ +@USE_BUNDLED_LIBS_TRUE@ src/woff2_common.h \ +@USE_BUNDLED_LIBS_TRUE@ src/woff2_enc.cc \ +@USE_BUNDLED_LIBS_TRUE@ src/woff2_out.cc + +@USE_BUNDLED_LIBS_TRUE@AM_CXXFLAGS = -Wall -I$(srcdir)/include -I$(srcdir)/../brotli/include EXTRA_DIST = LICENSE -AM_CXXFLAGS = -Wall -I$(srcdir)/include -I$(srcdir)/../brotli/include CLEANFILES = *.gcda *.gcno all: all-am @@ -735,7 +747,7 @@ uninstall-am: .PRECIOUS: Makefile -@CODE_COVERAGE_RULES@ +@USE_BUNDLED_LIBS_TRUE@@CODE_COVERAGE_RULES@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/xxHash/Makefile.am b/Build/source/texk/dvisvgm/dvisvgm-src/libs/xxHash/Makefile.am index df0a4c53238..8f1b340c5c6 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/xxHash/Makefile.am +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/xxHash/Makefile.am @@ -1,10 +1,13 @@ +if USE_BUNDLED_LIBS noinst_LIBRARIES = libxxhash.a + libxxhash_a_SOURCES = xxhash.c xxhash.h AM_CXXFLAGS = -Wall xxhash.c: xxhash.h @CODE_COVERAGE_RULES@ +endif CLEANFILES = *.gcda *.gcno diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/libs/xxHash/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/libs/xxHash/Makefile.in index 944ebf43b39..9a63e23e912 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/libs/xxHash/Makefile.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/libs/xxHash/Makefile.in @@ -95,7 +95,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../../m4/ax_cxx_compile_stdcxx.m4 \ $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \ $(top_srcdir)/../../m4/kpse-freetype2-flags.m4 \ $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \ - $(top_srcdir)/../../m4/kpse-potrace-flags.m4 \ $(top_srcdir)/../../m4/kpse-warnings.m4 \ $(top_srcdir)/../../m4/kpse-win32.m4 \ $(top_srcdir)/../../m4/kpse-zlib-flags.m4 \ @@ -120,7 +119,8 @@ am__v_AR_0 = @echo " AR " $@; am__v_AR_1 = libxxhash_a_AR = $(AR) $(ARFLAGS) libxxhash_a_LIBADD = -am_libxxhash_a_OBJECTS = xxhash.$(OBJEXT) +am__libxxhash_a_SOURCES_DIST = xxhash.c xxhash.h +@USE_BUNDLED_LIBS_TRUE@am_libxxhash_a_OBJECTS = xxhash.$(OBJEXT) libxxhash_a_OBJECTS = $(am_libxxhash_a_OBJECTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -162,7 +162,7 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libxxhash_a_SOURCES) -DIST_SOURCES = $(libxxhash_a_SOURCES) +DIST_SOURCES = $(am__libxxhash_a_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -192,7 +192,9 @@ am__DIST_COMMON = $(srcdir)/Makefile.in \ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AM_LDFLAGS = @AM_LDFLAGS@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -211,6 +213,7 @@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLD = @CXXLD@ CYGPATH_W = @CYGPATH_W@ +DATE = @DATE@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ @@ -267,9 +270,6 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ -POTRACE_DEPEND = @POTRACE_DEPEND@ -POTRACE_INCLUDES = @POTRACE_INCLUDES@ -POTRACE_LIBS = @POTRACE_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -334,9 +334,9 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -noinst_LIBRARIES = libxxhash.a -libxxhash_a_SOURCES = xxhash.c xxhash.h -AM_CXXFLAGS = -Wall +@USE_BUNDLED_LIBS_TRUE@noinst_LIBRARIES = libxxhash.a +@USE_BUNDLED_LIBS_TRUE@libxxhash_a_SOURCES = xxhash.c xxhash.h +@USE_BUNDLED_LIBS_TRUE@AM_CXXFLAGS = -Wall CLEANFILES = *.gcda *.gcno all: all-am @@ -634,9 +634,9 @@ uninstall-am: .PRECIOUS: Makefile -xxhash.c: xxhash.h +@USE_BUNDLED_LIBS_TRUE@xxhash.c: xxhash.h -@CODE_COVERAGE_RULES@ +@USE_BUNDLED_LIBS_TRUE@@CODE_COVERAGE_RULES@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/BasicDVIReader.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/BasicDVIReader.hpp index f3fc8c7d37c..82b9ee0dade 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/BasicDVIReader.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/BasicDVIReader.hpp @@ -21,21 +21,19 @@ #ifndef BASICDVIREADER_HPP #define BASICDVIREADER_HPP +#include "Matrix.hpp" #include "MessageException.hpp" #include "StreamReader.hpp" -struct DVIException : public MessageException -{ +struct DVIException : public MessageException { explicit DVIException (const std::string &msg) : MessageException(msg) {} }; -struct InvalidDVIFileException : public DVIException -{ +struct InvalidDVIFileException : public DVIException { explicit InvalidDVIFileException (const std::string &msg) : DVIException(msg) {} }; -class Matrix; /** This class provides the basic functionality to read a DVI file. * It just skips all DVI commands and apply any semantic to it. The latter must @@ -44,8 +42,7 @@ class Matrix; * require to read and evaluate the correct portion of data from the DVI stream. * Since the DVI commands are almost skipped by advancing the file pointer, * running through a DVI file is pretty fast. */ -class BasicDVIReader : public StreamReader -{ +class BasicDVIReader : public StreamReader { protected: using CommandHandler = void (BasicDVIReader::*)(int); enum DVIVersion {DVI_NONE=0, DVI_STANDARD=2, DVI_PTEX=3, DVI_XDV5=5, DVI_XDV6=6, DVI_XDV7=7}; @@ -62,7 +59,7 @@ class BasicDVIReader : public StreamReader virtual void translateToX (double x) {} virtual void translateToY (double y) {} virtual int stackDepth () const {return 0;} - virtual void getPageTransformation (Matrix &matrix) const {} + virtual Matrix getPageTransformation () const {return Matrix(1);} virtual unsigned currentPageNumber () const {return 0;} protected: diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/BoundingBox.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/BoundingBox.cpp index ebdbd485d6a..65e2405eae5 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/BoundingBox.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/BoundingBox.cpp @@ -257,6 +257,8 @@ ostream& BoundingBox::write (ostream &os) const { os << '(' << _ulx << ", " << _uly << ", " << _lrx << ", " << _lry << ')'; if (!_valid) os << " (invalid)"; + else if (_locked) + os << " (locked)"; return os; } diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIToSVG.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIToSVG.cpp index 79744656f3a..9a0ff50bf82 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIToSVG.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIToSVG.cpp @@ -187,9 +187,8 @@ void DVIToSVG::leaveEndPage (unsigned) { // set bounding box and apply page transformations BoundingBox bbox = _actions->bbox(); // bounding box derived from the DVI commands executed if (_bboxFormatString == "min" || _bboxFormatString == "preview" || _bboxFormatString == "papersize") { - Matrix matrix; - getPageTransformation(matrix); - bbox.transform(matrix); + bbox.unlock(); + bbox.transform(getPageTransformation()); } else if (_bboxFormatString == "dvi") { // center page content @@ -216,9 +215,7 @@ void DVIToSVG::leaveEndPage (unsigned) { vector lengths = BoundingBox::extractLengths(_bboxFormatString); if (lengths.size() == 1 || lengths.size() == 2) { // relative box size? // apply the page transformation and adjust the bbox afterwards - Matrix matrix; - getPageTransformation(matrix); - bbox.transform(matrix); + bbox.transform(getPageTransformation()); } bbox.set(lengths); } @@ -242,25 +239,24 @@ void DVIToSVG::leaveEndPage (unsigned) { } -void DVIToSVG::getPageTransformation(Matrix &matrix) const { - if (_transCmds.empty()) - matrix.set(1); // unity matrix - else { +Matrix DVIToSVG::getPageTransformation () const { + Matrix matrix(1); // unity matrix + if (!_transCmds.empty()) { Calculator calc; if (_actions) { - const double bp2pt = 72.27/72; + const double bp2pt = (1_bp).pt(); BoundingBox &bbox = _actions->bbox(); calc.setVariable("ux", bbox.minX()*bp2pt); calc.setVariable("uy", bbox.minY()*bp2pt); calc.setVariable("w", bbox.width()*bp2pt); calc.setVariable("h", bbox.height()*bp2pt); } - calc.setVariable("pt", 1); - calc.setVariable("in", 72.27); - calc.setVariable("cm", 72.27/2.54); - calc.setVariable("mm", 72.27/25.4); + // add constants for length units to calculator + for (auto unit : Length::getUnits()) + calc.setVariable(unit.first, Length(1, unit.second).pt()); matrix.set(_transCmds, calc); } + return matrix; } diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIToSVG.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIToSVG.hpp index 5b5c619be02..3c9100a0ec7 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIToSVG.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIToSVG.hpp @@ -27,7 +27,6 @@ #include "SVGTree.hpp" struct DVIActions; -class Matrix; struct SVGOutputBase; class DVIToSVG : public DVIReader { @@ -36,7 +35,7 @@ class DVIToSVG : public DVIReader { void convert (const std::string &range, std::pair *pageinfo=0); void setPageSize (const std::string &format) {_bboxFormatString = format;} void setPageTransformation (const std::string &cmds) {_transCmds = cmds;} - void getPageTransformation (Matrix &matrix) const override; + Matrix getPageTransformation () const override; void translateToX (double x) override {_tx = x-dviState().h-_tx;} void translateToY (double y) override {_ty = y-dviState().v-_ty;} double getXPos() const override {return dviState().h+_tx;} diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIToSVGActions.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIToSVGActions.cpp index d9af5936bc5..efe43be851f 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIToSVGActions.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIToSVGActions.cpp @@ -228,8 +228,7 @@ void DVIToSVGActions::beginPage (unsigned pageno, const vector&) { /** This method is called when an "end of page (eop)" command was found in the DVI file. */ void DVIToSVGActions::endPage (unsigned pageno) { SpecialManager::instance().notifyEndPage(pageno, *this); - Matrix matrix; - _dvireader->getPageTransformation(matrix); + Matrix matrix = _dvireader->getPageTransformation(); _svg.transformPage(matrix); if (_bgcolor != Color::TRANSPARENT) { // create a rectangle filled with the background color diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIToSVGActions.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIToSVGActions.hpp index 8b3ef317759..7d46fb7b10e 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIToSVGActions.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/DVIToSVGActions.hpp @@ -50,7 +50,7 @@ class DVIToSVGActions : public DVIActions, public SpecialActions { void setColor (const Color &color) override {_svg.setColor(color);} void setMatrix (const Matrix &m) override {_svg.setMatrix(m);} const Matrix& getMatrix () const override {return _svg.getMatrix();} - void getPageTransform (Matrix &matrix) const override {_dvireader->getPageTransformation(matrix);} + Matrix getPageTransformation () const override {return _dvireader->getPageTransformation();} Color getColor () const override {return _svg.getColor();} int getDVIStackDepth() const override {return _dvireader->stackDepth();} unsigned getCurrentPageNumber() const override {return _dvireader->currentPageNumber();} diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/EPSToSVG.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/EPSToSVG.hpp index 8e7dd29f9b2..fc3ff883666 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/EPSToSVG.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/EPSToSVG.hpp @@ -24,9 +24,13 @@ #include "EPSFile.hpp" #include "ImageToSVG.hpp" +class PsSpecialHandler; + class EPSToSVG : public ImageToSVG { public: EPSToSVG (const std::string &fname, SVGOutputBase &out) : ImageToSVG(fname, out) {} + bool isSinglePageFormat() const override {return true;} + int totalPageCount() override {return 1;} protected: std::string imageFormat () const override {return "EPS";} diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/FileFinder.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/FileFinder.cpp index 405a6f2da21..649ea5ea999 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/FileFinder.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/FileFinder.cpp @@ -63,9 +63,6 @@ FileFinder::FileFinder () { 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 = true; // suppress messages from mktexFOO tools -#ifdef TEXLIVEWIN32 - texlive_gs_init(); -#endif #endif } diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/FilePath.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/FilePath.cpp index f7fe431cf16..638689f6b57 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/FilePath.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/FilePath.cpp @@ -78,14 +78,6 @@ bool FilePath::Directory::operator == (const Directory &dir) const { } -/** Constructs a FilePath object from a given path. Relative paths are - * relative to the current working directory. - * @param[in] path absolute or relative path to a file or directory */ -FilePath::FilePath (const string &path) { - init(path, !FileSystem::isDirectory(path), FileSystem::getcwd()); -} - - /** Constructs a FilePath object. * @param[in] path absolute or relative path to a file or directory * @param[in] isfile true if 'path' references a file, false if a directory is referenced @@ -95,11 +87,20 @@ FilePath::FilePath (const string &path, bool isfile, const string ¤t_dir) } +/** Assigns a new path. Relative paths are relative to the current working directory. + * @param[in] path absolute or relative path to a file or directory */ +void FilePath::set(const string &path) { + init(path, !FileSystem::isDirectory(path), FileSystem::getcwd()); +} + + /** Initializes a FilePath object. This method should be called by the constructors only. * @param[in] path absolute or relative path to a file or directory * @param[in] isfile true if 'path' references a file, false if a directory is referenced * @param[in] current_dir if 'path' is a relative path expression it will be related to 'current_dir' */ void FilePath::init (string path, bool isfile, string current_dir) { + _dirs.clear(); + _fname.clear(); single_slashes(path); single_slashes(current_dir); #ifdef _WIN32 diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/FilePath.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/FilePath.hpp index 385e1d2fb4b..a1e59a5db36 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/FilePath.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/FilePath.hpp @@ -39,9 +39,10 @@ class FilePath { }; public: - FilePath (const std::string &path); + FilePath (const std::string &path) {set(path);} FilePath (const std::string &path, bool isfile) : FilePath(path, isfile, "") {} FilePath (const std::string &path, bool isfile, const std::string ¤t_dir); + void set (const std::string &path); std::string absolute (bool with_filename=true) const; std::string relative (std::string reldir="", bool with_filename=true) const; std::string basename () const; diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/Ghostscript.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/Ghostscript.cpp index dab7175e4fd..cbb3589efc8 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/Ghostscript.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/Ghostscript.cpp @@ -19,7 +19,9 @@ *************************************************************************/ #include +#include "FilePath.hpp" #include "Ghostscript.hpp" +#include "utility.hpp" #if !defined(DISABLE_GS) #include #include @@ -77,7 +79,27 @@ static string get_path_from_registry () { #endif // RRF_RT_REG_SZ return ""; } -#endif // _WIN32 +#endif // _WIN32 + +#if defined(_WIN32) && !defined(_WIN64) +static string get_gsdll32 () { + string pathstr; +#if defined(TEXLIVEWIN32) + char exepath[256]; + if (GetModuleFileNameA(NULL, exepath, 256)) { + FilePath path(exepath); + path.set(path.absolute(false)+"/../../tlpkg/tlgs"); + pathstr = util::replace(path.absolute(false)+"/", "/", "\\"); + string envvar = "GS_LIB="; + for (string dirs : {"lib", "fonts", "Resource\\Init", "Resource", "kanji"}) + envvar += pathstr+dirs+";"; + _putenv(envvar.c_str()); + pathstr += "bin\\"; + } +#endif + return pathstr+"gsdll32.dll"; +} +#endif // _WIN32 && !_WIN64 /** Try to detect name of the Ghostscript shared library depending on the user settings. @@ -101,11 +123,11 @@ static string get_libgs (const string &fname) { string gsdll_path = get_path_from_registry(); if (!gsdll_path.empty()) return gsdll_path; -#endif +#endif //_WIN32 #if defined(_WIN64) return "gsdll64.dll"; #elif defined(_WIN32) - return "gsdll32.dll"; + return get_gsdll32(); #else // try to find libgs.so.X on the user's system const int abi_min=7, abi_max=9; // supported libgs ABI versions diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/ImageToSVG.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/ImageToSVG.cpp index 72c134d5a4e..4a14603a996 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/ImageToSVG.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/ImageToSVG.cpp @@ -21,9 +21,11 @@ #include #include #include +#include "Calculator.hpp" #include "ImageToSVG.hpp" #include "Message.hpp" #include "MessageException.hpp" +#include "PageRanges.hpp" #include "PsSpecialHandler.hpp" #include "SVGOutput.hpp" #include "System.hpp" @@ -33,17 +35,27 @@ using namespace std; -void ImageToSVG::convert () { -#ifndef HAVE_LIBGS - if (!Ghostscript().available()) - throw MessageException("Ghostscript is required to process "+imageFormat()+" files"); +void ImageToSVG::checkGSAndFileFormat () { + if (!_haveGS) { +#ifdef HAVE_LIBGS + _haveGS = true; +#else + _haveGS = Ghostscript().available(); #endif - if (!imageIsValid()) - throw PSException("invalid "+imageFormat()+" file"); + if (!_haveGS) + throw MessageException("Ghostscript is required to process "+imageFormat()+" files"); + if (!imageIsValid()) + throw MessageException("invalid "+imageFormat()+" file"); + } +} + +void ImageToSVG::convert (int pageno) { + checkGSAndFileFormat(); BoundingBox bbox = imageBBox(); if (bbox.valid() && (bbox.width() == 0 || bbox.height() == 0)) Message::wstream(true) << "bounding box of " << imageFormat() << " file is empty\n"; + Message::mstream().indent(0); Message::mstream(false, Message::MC_PAGE_NUMBER) << "processing " << imageFormat() << " file\n"; Message::mstream().indent(1); _svg.newPage(1); @@ -54,21 +66,25 @@ void ImageToSVG::convert () { "lly=" << bbox.minY() << " " "urx=" << bbox.maxX() << " " "ury=" << bbox.maxY(); + if (!isSinglePageFormat()) + ss << " page=" << pageno; try { - PsSpecialHandler pshandler; - pshandler.process(psSpecialCmd(), ss, *this); + _psHandler.process(psSpecialCmd(), ss, *this); } catch (...) { progress(0); // remove progress message throw; } progress(0); + Matrix matrix = getUserMatrix(_bbox); // output SVG file _svg.removeRedundantElements(); + _svg.transformPage(matrix); + _bbox.transform(matrix); _svg.setBBox(_bbox); _svg.appendToDoc(util::make_unique(" This file was generated by dvisvgm " + string(PROGRAM_VERSION) + " ")); - bool success = _svg.write(_out.getPageStream(1, 1)); - string svgfname = _out.filename(1, 1); + bool success = _svg.write(_out.getPageStream(pageno, totalPageCount())); + string svgfname = _out.filename(pageno, totalPageCount()); if (svgfname.empty()) svgfname = ""; if (!success) @@ -82,6 +98,49 @@ void ImageToSVG::convert () { " x " << XMLString(_bbox.height()*bp2mm) << "mm)\n"; Message::mstream(false, Message::MC_PAGE_WRITTEN) << "output written to " << svgfname << '\n'; } + _svg.reset(); +} + + +void ImageToSVG::convert (int firstPage, int lastPage, pair *pageinfo) { + checkGSAndFileFormat(); + int pageCount = 1; // number of pages converted + if (isSinglePageFormat()) + convert(1); + else { + if (firstPage > lastPage) + swap(firstPage, lastPage); + firstPage = max(1, firstPage); + if (firstPage > totalPageCount()) + pageCount = 0; + else { + lastPage = min(totalPageCount(), lastPage); + pageCount = lastPage-firstPage+1; + for (int i=firstPage; i <= lastPage; i++) + convert(i); + } + } + if (pageinfo) { + pageinfo->first = pageCount; + pageinfo->second = totalPageCount(); + } +} + + +void ImageToSVG::convert (const std::string &rangestr, pair *pageinfo) { + checkGSAndFileFormat(); + PageRanges ranges; + if (!ranges.parse(rangestr, totalPageCount())) + throw MessageException("invalid page range format"); + + int pageCount=0; // number of pages converted + for (const auto &range : ranges) { + convert(range.first, range.second, pageinfo); + if (pageinfo) + pageCount += pageinfo->first; + } + if (pageinfo) + pageinfo->first = pageCount; } @@ -116,3 +175,24 @@ void ImageToSVG::progress (const char *id) { time = System::time(); } } + + +/** Returns the matrix describing the graphics transformations + * given by the user in terms of transformation commands. + * @param[in] bbox bounding box of the graphics to transform */ +Matrix ImageToSVG::getUserMatrix (const BoundingBox &bbox) const { + Matrix matrix(1); + if (!_transCmds.empty()) { + const double bp2pt = (1_bp).pt(); + Calculator calc; + calc.setVariable("ux", bbox.minX()*bp2pt); + calc.setVariable("uy", bbox.minY()*bp2pt); + calc.setVariable("w", bbox.width()*bp2pt); + calc.setVariable("h", bbox.height()*bp2pt); + // add constants for length units to calculator + for (auto unit : Length::getUnits()) + calc.setVariable(unit.first, Length(1, unit.second).pt()); + matrix.set(_transCmds, calc); + } + return matrix; +} diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/ImageToSVG.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/ImageToSVG.hpp index a9424af38fb..5ff9e407bae 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/ImageToSVG.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/ImageToSVG.hpp @@ -24,6 +24,7 @@ #include #include #include +#include "PsSpecialHandler.hpp" #include "SpecialActions.hpp" #include "SVGTree.hpp" @@ -33,12 +34,19 @@ class ImageToSVG : protected SpecialActions { public: ImageToSVG (const std::string &fname, SVGOutputBase &out) : _fname(fname), _out(out) {} virtual ~ImageToSVG () =default; - void convert (); - void setTransformation (const Matrix &m); - void setPageSize (const std::string &name); + void convert (int pageno); + void convert (int firstPage, int lastPage, std::pair *pageinfo); + void convert (const std::string &rangestr, std::pair *pageinfo); + void setPageTransformation (const std::string &transCmds) {_transCmds = transCmds;} +// void setPageSize (const std::string &name); std::string filename () const {return _fname;} + PSInterpreter& psInterpreter () {return _psHandler.psInterpreter();} + virtual bool isSinglePageFormat () const =0; + virtual int totalPageCount () =0; protected: + void checkGSAndFileFormat (); + Matrix getUserMatrix (const BoundingBox &bbox) const; virtual std::string imageFormat () const =0; virtual bool imageIsValid () const =0; virtual BoundingBox imageBBox () const =0; @@ -53,7 +61,6 @@ class ImageToSVG : protected SpecialActions { Color getColor () const override {return _svg.getColor();} void setMatrix (const Matrix &m) override {_svg.setMatrix(m);} const Matrix& getMatrix () const override {return _svg.getMatrix();} - void getPageTransform (Matrix &matrix) const override {} void setBgColor (const Color &color) override {} void appendToPage(std::unique_ptr &&node) override {_svg.appendToPage(std::move(node));} void appendToDefs(std::unique_ptr &&node) override {_svg.appendToDefs(std::move(node));} @@ -75,6 +82,9 @@ class ImageToSVG : protected SpecialActions { SVGOutputBase &_out; double _x=0, _y=0; BoundingBox _bbox; + PsSpecialHandler _psHandler; + bool _haveGS=false; ///< true if Ghostscript is available + std::string _transCmds; ///< transformation commands }; #endif diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/Length.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/Length.cpp index f4c9d6638d0..aaafd6aa68e 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/Length.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/Length.cpp @@ -139,3 +139,19 @@ void Length::set (double val, string unitstr) { throw UnitException(string("invalid length unit: ")+unitstr); set(val, stringToUnit(unitstr)); } + + +map Length::getUnits () { + map units = { + {"pt", Unit::PT}, + {"bp", Unit::BP}, + {"in", Unit::IN}, + {"cm", Unit::CM}, + {"mm", Unit::MM}, + {"pc", Unit::PC}, + {"dd", Unit::DD}, + {"cc", Unit::CC}, + {"sp", Unit::SP}, + }; + return units; +} diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/Length.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/Length.hpp index f606dab4549..ef47b854a10 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/Length.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/Length.hpp @@ -21,7 +21,8 @@ #ifndef LENGTH_HPP #define LENGTH_HPP -#include +#include +#include #include "MessageException.hpp" #ifdef IN @@ -57,9 +58,12 @@ class Length { double sp () const {return _pt*pt2sp;} double get (Unit unit) const; std::string toString (Unit unit) const; + bool operator == (Length len) const {return _pt == len._pt;} + bool operator != (Length len) const {return _pt != len._pt;} static Unit stringToUnit (const std::string &unitstr); static std::string unitToString (Unit unit); + static std::map getUnits (); public: static constexpr double pt2in = 1.0/72.27; diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/Makefile.am b/Build/source/texk/dvisvgm/dvisvgm-src/src/Makefile.am index e073594a218..cd668737062 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/Makefile.am +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/Makefile.am @@ -12,19 +12,34 @@ dvisvgm_SOURCES = \ dvisvgm_LDADD = \ $(noinst_LIBRARIES) \ - ../libs/clipper/libclipper.a \ + ../libs/clipper/libclipper.a + +if USE_BUNDLED_LIBS +dvisvgm_LDADD += \ + ../libs/potrace/libpotrace.a \ ../libs/xxHash/libxxhash.a +else +dvisvgm_LDADD += \ + $(POTRACE_LIBS) \ + $(XXHASH_LIBS) +endif if ENABLE_WOFF +if USE_BUNDLED_LIBS dvisvgm_LDADD += \ ../libs/ff-woff/libfontforge.a \ ../libs/woff2/libwoff2.a \ ../libs/brotli/libbrotli.a +else +dvisvgm_LDADD += \ + ../libs/ff-woff/libfontforge.a \ + $(WOFF2_LIBS) \ + $(BROTLI_LIBS) +endif endif dvisvgm_LDADD += \ $(KPATHSEA_LIBS) \ - $(POTRACE_LIBS) \ $(FREETYPE2_LIBS) \ $(FONTFORGE_LIBS) \ $(ZLIB_LIBS) \ @@ -257,12 +272,22 @@ AM_CFLAGS = $(WARNING_CFLAGS) \ $(ZLIB_INCLUDES) \ $(CODE_COVERAGE_CFLAGS) -AM_CXXFLAGS = $(WARNING_CFLAGS) -Wnon-virtual-dtor \ +AM_CXXFLAGS = $(WARNING_CFLAGS) -Wnon-virtual-dtor -Wno-mismatched-tags \ -I$(dvisvgm_srcdir)/libs/clipper \ - -I$(dvisvgm_srcdir)/libs/variant/include \ + -I$(dvisvgm_srcdir)/libs/variant/include + +if USE_BUNDLED_LIBS +AM_CXXFLAGS += \ + -I$(dvisvgm_srcdir)/libs/potrace \ -I$(dvisvgm_srcdir)/libs/xxHash +else +AM_CXXFLAGS += \ + $(POTRACE_CFLAGS) \ + $(XXHASH_CFLAGS) +endif AM_LDFLAGS = \ + $(KPSE_LIBS) \ $(CODE_COVERAGE_LDFLAGS) if ENABLE_WOFF @@ -270,10 +295,17 @@ AM_CFLAGS += \ -I$(dvisvgm_srcdir)/libs/ff-woff/fontforge \ -I$(dvisvgm_srcdir)/libs/ff-woff/inc +AM_CXXFLAGS += $(TTFAUTOHINT_CFLAGS) + +if USE_BUNDLED_LIBS AM_CXXFLAGS += \ - $(TTFAUTOHINT_CFLAGS) \ -I$(dvisvgm_srcdir)/libs/brotli/include \ -I$(dvisvgm_srcdir)/libs/woff2/include +else +AM_CXXFLAGS += \ + $(BROTLI_CFLAGS) \ + $(WOFF2_CFLAGS) +endif AM_LDFLAGS += $(TTFAUTOHINT_LIBS) endif @@ -312,8 +344,6 @@ CLEANFILES = *.gcda *.gcno ## Rebuild libkpathsea @KPATHSEA_RULE@ -## Rebuild libpotrace -@POTRACE_RULE@ ## Rebuild libfreetype @FREETYPE2_RULE@ ## Rebuild libz diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/src/Makefile.in index f1f546553f9..f886c02f8c6 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/Makefile.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/Makefile.in @@ -90,23 +90,48 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = dvisvgm$(EXEEXT) -@ENABLE_WOFF_TRUE@am__append_1 = \ -@ENABLE_WOFF_TRUE@ ../libs/ff-woff/libfontforge.a \ -@ENABLE_WOFF_TRUE@ ../libs/woff2/libwoff2.a \ -@ENABLE_WOFF_TRUE@ ../libs/brotli/libbrotli.a - -@ENABLE_WOFF_TRUE@am__append_2 = ffwrapper.c ffwrapper.h -@ENABLE_WOFF_TRUE@am__append_3 = \ +@USE_BUNDLED_LIBS_TRUE@am__append_1 = \ +@USE_BUNDLED_LIBS_TRUE@ ../libs/potrace/libpotrace.a \ +@USE_BUNDLED_LIBS_TRUE@ ../libs/xxHash/libxxhash.a + +@USE_BUNDLED_LIBS_FALSE@am__append_2 = \ +@USE_BUNDLED_LIBS_FALSE@ $(POTRACE_LIBS) \ +@USE_BUNDLED_LIBS_FALSE@ $(XXHASH_LIBS) + +@ENABLE_WOFF_TRUE@@USE_BUNDLED_LIBS_TRUE@am__append_3 = \ +@ENABLE_WOFF_TRUE@@USE_BUNDLED_LIBS_TRUE@ ../libs/ff-woff/libfontforge.a \ +@ENABLE_WOFF_TRUE@@USE_BUNDLED_LIBS_TRUE@ ../libs/woff2/libwoff2.a \ +@ENABLE_WOFF_TRUE@@USE_BUNDLED_LIBS_TRUE@ ../libs/brotli/libbrotli.a + +@ENABLE_WOFF_TRUE@@USE_BUNDLED_LIBS_FALSE@am__append_4 = \ +@ENABLE_WOFF_TRUE@@USE_BUNDLED_LIBS_FALSE@ ../libs/ff-woff/libfontforge.a \ +@ENABLE_WOFF_TRUE@@USE_BUNDLED_LIBS_FALSE@ $(WOFF2_LIBS) \ +@ENABLE_WOFF_TRUE@@USE_BUNDLED_LIBS_FALSE@ $(BROTLI_LIBS) + +@ENABLE_WOFF_TRUE@am__append_5 = ffwrapper.c ffwrapper.h +@USE_BUNDLED_LIBS_TRUE@am__append_6 = \ +@USE_BUNDLED_LIBS_TRUE@ -I$(dvisvgm_srcdir)/libs/potrace \ +@USE_BUNDLED_LIBS_TRUE@ -I$(dvisvgm_srcdir)/libs/xxHash + +@USE_BUNDLED_LIBS_FALSE@am__append_7 = \ +@USE_BUNDLED_LIBS_FALSE@ $(POTRACE_CFLAGS) \ +@USE_BUNDLED_LIBS_FALSE@ $(XXHASH_CFLAGS) + +@ENABLE_WOFF_TRUE@am__append_8 = \ @ENABLE_WOFF_TRUE@ -I$(dvisvgm_srcdir)/libs/ff-woff/fontforge \ @ENABLE_WOFF_TRUE@ -I$(dvisvgm_srcdir)/libs/ff-woff/inc -@ENABLE_WOFF_TRUE@am__append_4 = \ -@ENABLE_WOFF_TRUE@ $(TTFAUTOHINT_CFLAGS) \ -@ENABLE_WOFF_TRUE@ -I$(dvisvgm_srcdir)/libs/brotli/include \ -@ENABLE_WOFF_TRUE@ -I$(dvisvgm_srcdir)/libs/woff2/include +@ENABLE_WOFF_TRUE@am__append_9 = $(TTFAUTOHINT_CFLAGS) +@ENABLE_WOFF_TRUE@@USE_BUNDLED_LIBS_TRUE@am__append_10 = \ +@ENABLE_WOFF_TRUE@@USE_BUNDLED_LIBS_TRUE@ -I$(dvisvgm_srcdir)/libs/brotli/include \ +@ENABLE_WOFF_TRUE@@USE_BUNDLED_LIBS_TRUE@ -I$(dvisvgm_srcdir)/libs/woff2/include + +@ENABLE_WOFF_TRUE@@USE_BUNDLED_LIBS_FALSE@am__append_11 = \ +@ENABLE_WOFF_TRUE@@USE_BUNDLED_LIBS_FALSE@ $(BROTLI_CFLAGS) \ +@ENABLE_WOFF_TRUE@@USE_BUNDLED_LIBS_FALSE@ $(WOFF2_CFLAGS) -@ENABLE_WOFF_TRUE@am__append_5 = $(TTFAUTOHINT_LIBS) -@WIN32_TRUE@am__append_6 = -DTEXLIVEWIN32 +@ENABLE_WOFF_TRUE@am__append_12 = $(TTFAUTOHINT_LIBS) +@WIN32_TRUE@am__append_13 = -DTEXLIVEWIN32 subdir = dvisvgm-src/src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../m4/ax_cxx_compile_stdcxx.m4 \ @@ -114,7 +139,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../../m4/ax_cxx_compile_stdcxx.m4 \ $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \ $(top_srcdir)/../../m4/kpse-freetype2-flags.m4 \ $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \ - $(top_srcdir)/../../m4/kpse-potrace-flags.m4 \ $(top_srcdir)/../../m4/kpse-warnings.m4 \ $(top_srcdir)/../../m4/kpse-win32.m4 \ $(top_srcdir)/../../m4/kpse-zlib-flags.m4 \ @@ -249,6 +273,7 @@ libdvisvgm_a_OBJECTS = $(am_libdvisvgm_a_OBJECTS) am_dvisvgm_OBJECTS = dvisvgm.$(OBJEXT) dvisvgm_OBJECTS = $(am_dvisvgm_OBJECTS) am__DEPENDENCIES_1 = +@ENABLE_WOFF_TRUE@@USE_BUNDLED_LIBS_FALSE@am__DEPENDENCIES_2 = ../libs/ff-woff/libfontforge.a AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent @@ -386,7 +411,9 @@ am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/version.hpp.in \ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AM_LDFLAGS = $(KPSE_LIBS) $(CODE_COVERAGE_LDFLAGS) $(am__append_12) AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -405,6 +432,7 @@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLD = @CXXLD@ CYGPATH_W = @CYGPATH_W@ +DATE = @DATE@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ @@ -461,9 +489,6 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ -POTRACE_DEPEND = @POTRACE_DEPEND@ -POTRACE_INCLUDES = @POTRACE_INCLUDES@ -POTRACE_LIBS = @POTRACE_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -534,9 +559,9 @@ dvisvgm_SOURCES = \ dvisvgm.cpp dvisvgm_LDADD = $(noinst_LIBRARIES) ../libs/clipper/libclipper.a \ - ../libs/xxHash/libxxhash.a $(am__append_1) $(KPATHSEA_LIBS) \ - $(POTRACE_LIBS) $(FREETYPE2_LIBS) $(FONTFORGE_LIBS) \ - $(ZLIB_LIBS) $(LIBGS_LIBS) + $(am__append_1) $(am__append_2) $(am__append_3) \ + $(am__append_4) $(KPATHSEA_LIBS) $(FREETYPE2_LIBS) \ + $(FONTFORGE_LIBS) $(ZLIB_LIBS) $(LIBGS_LIBS) dvisvgm_DEPENDENCIES = $(noinst_LIBRARIES) $(KPATHSEA_DEPEND) \ $(ZLIB_DEPEND) $(FREETYPE2_DEPEND) libdvisvgm_a_SOURCES = AGLTable.hpp BasicDVIReader.cpp \ @@ -601,19 +626,18 @@ libdvisvgm_a_SOURCES = AGLTable.hpp BasicDVIReader.cpp \ VectorStream.hpp version.hpp VFActions.hpp VFReader.cpp \ VFReader.hpp windows.hpp XMLDocument.cpp XMLDocument.hpp \ XMLNode.cpp XMLNode.hpp XMLString.cpp XMLString.hpp \ - ZLibOutputStream.hpp $(am__append_2) + ZLibOutputStream.hpp $(am__append_5) EXTRA_DIST = options.xml options.dtd iapi.h ierrors.h MiKTeXCom.hpp MiKTeXCom.cpp dvisvgm_srcdir = $(top_srcdir)/dvisvgm-src AM_CFLAGS = $(WARNING_CFLAGS) $(ZLIB_INCLUDES) $(CODE_COVERAGE_CFLAGS) \ - $(am__append_3) + $(am__append_8) AM_CXXFLAGS = $(WARNING_CFLAGS) -Wnon-virtual-dtor \ - -I$(dvisvgm_srcdir)/libs/clipper \ - -I$(dvisvgm_srcdir)/libs/variant/include \ - -I$(dvisvgm_srcdir)/libs/xxHash $(am__append_4) \ - $(KPATHSEA_INCLUDES) $(POTRACE_INCLUDES) $(FREETYPE2_INCLUDES) \ - $(ZLIB_INCLUDES) $(LIBGS_INCLUDES) $(CODE_COVERAGE_CFLAGS) \ - $(am__append_6) -AM_LDFLAGS = $(CODE_COVERAGE_LDFLAGS) $(am__append_5) + -Wno-mismatched-tags -I$(dvisvgm_srcdir)/libs/clipper \ + -I$(dvisvgm_srcdir)/libs/variant/include $(am__append_6) \ + $(am__append_7) $(am__append_9) $(am__append_10) \ + $(am__append_11) $(KPATHSEA_INCLUDES) $(POTRACE_INCLUDES) \ + $(FREETYPE2_INCLUDES) $(ZLIB_INCLUDES) $(LIBGS_INCLUDES) \ + $(CODE_COVERAGE_CFLAGS) $(am__append_13) CLEANFILES = *.gcda *.gcno all: all-am @@ -1293,7 +1317,6 @@ uninstall-am: uninstall-binPROGRAMS @CODE_COVERAGE_RULES@ @KPATHSEA_RULE@ -@POTRACE_RULE@ @FREETYPE2_RULE@ @ZLIB_RULE@ diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/PDFToSVG.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/PDFToSVG.hpp index 570eecd6384..647bef5ee0e 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/PDFToSVG.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/PDFToSVG.hpp @@ -24,9 +24,22 @@ #include #include "ImageToSVG.hpp" +class PsSpecialHandler; + class PDFToSVG : public ImageToSVG { public: PDFToSVG (const std::string &fname, SVGOutputBase &out) : ImageToSVG(fname, out) {} + bool isSinglePageFormat() const override {return false;} + + /** Returns the total number of pages in the PDF file. */ + int totalPageCount() override { + if (_totalPageCount < 0) { + _totalPageCount = psInterpreter().pdfPageCount(filename()); + if (_totalPageCount < 1) + throw MessageException("can't retrieve number of pages from file " + filename()); + } + return _totalPageCount; + } protected: bool imageIsValid () const override { @@ -41,6 +54,9 @@ class PDFToSVG : public ImageToSVG { std::string imageFormat () const override {return "PDF";} BoundingBox imageBBox () const override {return BoundingBox();} std::string psSpecialCmd () const override {return "pdffile=";} + + private: + mutable int _totalPageCount = -1; }; #endif diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/PSInterpreter.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/PSInterpreter.cpp index f87a6467a09..4bb34616432 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/PSInterpreter.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/PSInterpreter.cpp @@ -263,7 +263,6 @@ void PSInterpreter::callActions (InputReader &in) { {"makepattern", {-1, &PSActions::makepattern}}, {"moveto", { 2, &PSActions::moveto}}, {"newpath", { 1, &PSActions::newpath}}, - {"pdfpagebox", { 4, &PSActions::pdfpagebox}}, {"querypos", { 2, &PSActions::querypos}}, {"raw", {-1, nullptr}}, {"restore", { 1, &PSActions::restore}}, @@ -341,3 +340,32 @@ int GSDLLCALL PSInterpreter::error (void *inst, const char *buf, int len) { return len; } + +/** Returns the total number of pages of a PDF file. + * @param[in] fname name/path of the PDF file */ +int PSInterpreter::pdfPageCount (const string &fname) { + executeRaw("\n("+fname+")@pdfpagecount ", 1); + if (!_rawData.empty()) { + size_t index; + int ret = stoi(_rawData[0], &index, 10); + if (index > 0) + return ret; + } + return 0; +} + + +/** Returns the bounding box of a PDF page. If the selected page doesn't exist, + * the "invalid" flag of the returned bounding box is set. + * @param[in] fname name/path of the PDF file + * @param[in] pageno page number + * @return the bounding box of the given page */ +BoundingBox PSInterpreter::pdfPageBox (const string &fname, int pageno) { + BoundingBox pagebox; + executeRaw("\n"+to_string(pageno)+"("+fname+")@pdfpagebox ", 4); + if (_rawData.size() < 4) + pagebox.invalidate(); + else + pagebox = BoundingBox(stod(_rawData[0]), stod(_rawData[1]), stod(_rawData[2]), stod(_rawData[3])); + return pagebox; +} diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/PSInterpreter.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/PSInterpreter.hpp index 2db857e0f61..6be12e34504 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/PSInterpreter.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/PSInterpreter.hpp @@ -25,6 +25,7 @@ #include #include #include +#include "BoundingBox.hpp" #include "Ghostscript.hpp" #include "InputReader.hpp" #include "MessageException.hpp" @@ -55,7 +56,6 @@ struct PSActions { virtual void makepattern (std::vector &p) =0; virtual void moveto (std::vector &p) =0; virtual void newpath (std::vector &p) =0; - virtual void pdfpagebox (std::vector &p) =0; virtual void querypos (std::vector &p) =0; virtual void restore (std::vector &p) =0; virtual void rotate (std::vector &p) =0; @@ -101,6 +101,8 @@ class PSInterpreter { void limit (size_t max_bytes) {_bytesToRead = max_bytes;} void setFilter (PSFilter *filter) {_filter = filter;} PSActions* setActions (PSActions *actions); + int pdfPageCount (const std::string &fname); + BoundingBox pdfPageBox (const std::string &fname, int pageno); const std::vector& rawData () const {return _rawData;} protected: diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.cpp index 75d83f2b4b6..167ab0bc393 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.cpp @@ -45,7 +45,7 @@ int PsSpecialHandler::SHADING_SEGMENT_SIZE = 20; double PsSpecialHandler::SHADING_SIMPLIFY_DELTA = 0.01; -PsSpecialHandler::PsSpecialHandler () : _psi(this), _actions(), _previewFilter(_psi), _psSection(PS_NONE), _xmlnode(), _savenode() +PsSpecialHandler::PsSpecialHandler () : _psi(this), _actions(), _previewFilter(_psi), _xmlnode(), _savenode() { } @@ -286,14 +286,15 @@ void PsSpecialHandler::imgfile (FileType filetype, const string &fname, const un double lly = (it = attr.find("lly")) != attr.end() ? stod(it->second) : 0; double urx = (it = attr.find("urx")) != attr.end() ? stod(it->second) : 0; double ury = (it = attr.find("ury")) != attr.end() ? stod(it->second) : 0; + int pageno = (it = attr.find("page")) != attr.end() ? stoi(it->second, nullptr, 10) : 1; if (filetype == FileType::PDF && llx == 0 && lly == 0 && urx == 0 && ury == 0) { - _psi.execute("\n("+fname+")@getpdfpagebox "); - if (_pdfpagebox.valid()) { - llx = _pdfpagebox.minX(); - lly = _pdfpagebox.minY(); - urx = _pdfpagebox.maxX(); - ury = _pdfpagebox.maxY(); + BoundingBox pagebox = _psi.pdfPageBox(fname, pageno); + if (pagebox.valid()) { + llx = pagebox.minX(); + lly = pagebox.minY(); + urx = pagebox.maxX(); + ury = pagebox.maxY(); } } @@ -335,11 +336,13 @@ void PsSpecialHandler::imgfile (FileType filetype, const string &fname, const un auto groupNode = util::make_unique("g"); // append following elements to this group _xmlnode = groupNode.get(); _psi.execute( - "\n@beginspecial @setspecial" // enter special environment - "/setpagedevice{@setpagedevice}def" // activate processing of operator "setpagedevice" - "[1 0 0 -1 0 0] setmatrix" // don't apply outer PS transformations - "(" + string(filepath) + ")run " // execute file content - "@endspecial " // leave special environment + "\n@beginspecial @setspecial" // enter special environment + "/setpagedevice{@setpagedevice}def" // activate processing of operator "setpagedevice" + "[1 0 0 -1 0 0] setmatrix" // don't apply outer PS transformations + "/FirstPage "+to_string(pageno)+" def" // set number of fisrt page to convert (PDF only) + "/LastPage "+to_string(pageno)+" def" // set number of last page to convert (PDF only) + "(" + string(filepath) + ")run " // execute file content + "@endspecial " // leave special environment ); if (!groupNode->empty()) { // has anything been drawn? Matrix matrix(1); @@ -421,8 +424,7 @@ void PsSpecialHandler::dviEndPage (unsigned, SpecialActions &actions) { Message::mstream() << " preview package (version " << _previewFilter.version() << ")\n"; // apply page transformations to box extents - Matrix pagetrans; - actions.getPageTransform(pagetrans); + Matrix pagetrans = actions.getPageTransformation(); bool isBaselineHorizontal = transform_box_extents(pagetrans, w, h, d); actions.bbox().lock(); diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.hpp index 1a16412fbb2..d531d9e4e0a 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/PsSpecialHandler.hpp @@ -88,6 +88,7 @@ class PsSpecialHandler : public SpecialHandler, protected PSActions { bool process (const std::string &prefix, std::istream &is, SpecialActions &actions) override; void setDviScaleFactor (double dvi2bp) override {_previewFilter.setDviScaleFactor(dvi2bp);} void enterBodySection (); + PSInterpreter& psInterpreter () {return _psi;} public: static bool COMPUTE_CLIPPATHS_INTERSECTIONS; @@ -128,7 +129,6 @@ class PsSpecialHandler : public SpecialHandler, protected PSActions { void makepattern (std::vector &p) override; void moveto (std::vector &p) override; void newpath (std::vector &p) override; - void pdfpagebox (std::vector &p) override {_pdfpagebox = BoundingBox(p[0], p[1], p[2], p[3]);} void querypos (std::vector &p) override {_currentpoint = DPair(p[0], p[1]);} void restore (std::vector &p) override; void rotate (std::vector &p) override; @@ -158,7 +158,7 @@ class PsSpecialHandler : public SpecialHandler, protected PSActions { PSInterpreter _psi; SpecialActions *_actions; PSPreviewFilter _previewFilter; ///< filter to extract information generated by the preview package - PsSection _psSection; ///< current section processed (nothing yet, headers, or body specials) + PsSection _psSection=PS_NONE; ///< current section processed (nothing yet, headers, or body specials) XMLElementNode *_xmlnode; ///< if != 0, created SVG elements are appended to this node XMLElementNode *_savenode; ///< pointer to temporaryly store _xmlnode std::string _headerCode; ///< collected literal PS header code @@ -179,7 +179,6 @@ class PsSpecialHandler : public SpecialHandler, protected PSActions { ClippingStack _clipStack; std::unordered_map> _patterns; PSTilingPattern *_pattern; ///< current pattern - BoundingBox _pdfpagebox; }; #endif diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/SourceInput.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/SourceInput.cpp index d1622fb66f5..d884be4ab7e 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/SourceInput.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/SourceInput.cpp @@ -27,16 +27,21 @@ #include "utility.hpp" #ifdef _WIN32 -#include -#include -#include +# include +# include +# include +#else +# include +# ifdef HAVE_UMASK +# include +# endif #endif #ifdef _MSC_VER -#include +# include #else -#include -#include +# include +# include #endif using namespace std; @@ -60,8 +65,14 @@ bool TemporaryFile::create () { _path = FileSystem::tmpdir(); #ifndef _WIN32 _path += "stdinXXXXXX"; +#ifdef HAVE_UMASK + mode_t mode_mask = umask(S_IXUSR | S_IRWXG | S_IRWXO); // set file permissions to 0600 +#endif _fd = mkstemp(&_path[0]); -#else +#ifdef HAVE_UMASK + umask(mode_mask); +#endif +#else // !_WIN32 char fname[MAX_PATH]; std::replace(_path.begin(), _path.end(), '/', '\\'); if (GetTempFileName(_path.c_str(), "stdin", 0, fname)) { diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/SpecialActions.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/SpecialActions.hpp index 80dbd595d91..4d8d964de37 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/SpecialActions.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/SpecialActions.hpp @@ -42,7 +42,7 @@ class SpecialActions { virtual Color getColor () const =0; virtual void setMatrix (const Matrix &m) =0; virtual const Matrix& getMatrix () const =0; - virtual void getPageTransform (Matrix &matrix) const =0; + virtual Matrix getPageTransformation () const {return Matrix(1);} virtual void setBgColor (const Color &color) =0; virtual void appendToPage(std::unique_ptr &&node) =0; virtual void appendToDefs(std::unique_ptr &&node) =0; @@ -75,7 +75,6 @@ class EmptySpecialActions : public SpecialActions { Color getColor () const override {return Color::BLACK;} void setMatrix (const Matrix &m) override {} const Matrix& getMatrix () const override {return _matrix;} - void getPageTransform (Matrix &matrix) const override {} void appendToPage(std::unique_ptr &&node) override {} void appendToDefs(std::unique_ptr &&node) override {} void prependToPage(std::unique_ptr &&node) override {} diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/dvisvgm.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/dvisvgm.cpp index d778c84c5f9..297844cb21d 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/dvisvgm.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/dvisvgm.cpp @@ -52,7 +52,7 @@ #ifndef DISABLE_WOFF #include -#include +//#include #include "ffwrapper.h" #include "TTFAutohint.hpp" #endif @@ -252,7 +252,7 @@ static void print_version (bool extended) { versionInfo.add("Ghostscript", Ghostscript().revisionstr(), true); #ifndef DISABLE_WOFF versionInfo.add("brotli", BrotliEncoderVersion(), 3, 0x1000); - versionInfo.add("woff2", woff2::version, 3, 0x100); +// versionInfo.add("woff2", woff2::version, 3, 0x100); versionInfo.add("fontforge", ff_version()); versionInfo.add("ttfautohint", TTFAutohint().version(), true); #endif @@ -320,6 +320,19 @@ static void set_variables (const CommandLine &cmdline) { } +static void timer_message (double start_time, const pair *pageinfo) { + Message::mstream().indent(0); + if (!pageinfo) + Message::mstream(false, Message::MC_PAGE_NUMBER) << "\n" << "file"; + else { + Message::mstream(false, Message::MC_PAGE_NUMBER) << "\n" << pageinfo->first << " of " << pageinfo->second << " page"; + if (pageinfo->second > 1) + Message::mstream(false, Message::MC_PAGE_NUMBER) << 's'; + } + Message::mstream(false, Message::MC_PAGE_NUMBER) << " converted in " << (System::time()-start_time) << " seconds\n"; +} + + int main (int argc, char *argv[]) { try { CommandLine cmdline; @@ -364,20 +377,15 @@ int main (int argc, char *argv[]) { SVGOutput out(cmdline.stdoutOpt.given() ? "" : srcin.getFileName(), cmdline.outputOpt.value(), cmdline.zipOpt.given() ? cmdline.zipOpt.value() : 0); + pair pageinfo; if (cmdline.epsOpt.given() || cmdline.pdfOpt.given()) { auto img2svg = unique_ptr( cmdline.epsOpt.given() ? static_cast(new EPSToSVG(srcin.getFilePath(), out)) : static_cast(new PDFToSVG(srcin.getFilePath(), out))); - img2svg->convert(); - Message::mstream().indent(0); - Message::mstream(false, Message::MC_PAGE_NUMBER) << "file converted in " << (System::time()-start_time) << " seconds\n"; - } - else if (cmdline.pdfOpt.given()) { - PDFToSVG pdf2svg(srcin.getFilePath(), out); - pdf2svg.convert(); - Message::mstream().indent(0); - Message::mstream(false, Message::MC_PAGE_NUMBER) << "file converted in " << (System::time()-start_time) << " seconds\n"; + img2svg->setPageTransformation(get_transformation_string(cmdline)); + img2svg->convert(cmdline.pageOpt.value(), &pageinfo); + timer_message(start_time, img2svg->isSinglePageFormat() ? nullptr : &pageinfo); } else { init_fontmap(cmdline); @@ -389,13 +397,8 @@ int main (int argc, char *argv[]) { dvi2svg.setPageTransformation(get_transformation_string(cmdline)); dvi2svg.setPageSize(cmdline.bboxOpt.value()); - pair pageinfo; dvi2svg.convert(cmdline.pageOpt.value(), &pageinfo); - Message::mstream().indent(0); - Message::mstream(false, Message::MC_PAGE_NUMBER) << "\n" << pageinfo.first << " of " << pageinfo.second << " page"; - if (pageinfo.second > 1) - Message::mstream(false, Message::MC_PAGE_NUMBER) << 's'; - Message::mstream(false, Message::MC_PAGE_NUMBER) << " converted in " << (System::time()-start_time) << " seconds\n"; + timer_message(start_time, &pageinfo); } } catch (DVIException &e) { diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp index 5efa9db4dc4..3246ed22720 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp @@ -105,6 +105,8 @@ const char *PSInterpreter::PSDEFS = "exec<>exch get 1(s" -"etblendmode)prcmd}def/@getpdfpagebox{GS_PDF_ProcSet begin pdfdict begin(r)file" -" pdfopen begin 1 pdfgetpage/MediaBox pget pop aload pop 4(pdfpagebox)prcmd cur" -"rentdict pdfclose end end end}def DELAYBIND{.bindnow}if "; +"etblendmode)prcmd}def/@pdfpagecount{GS_PDF_ProcSet begin pdfdict begin(r)file " +"pdfopen begin pdfpagecount currentdict pdfclose end end end}def/@pdfpagebox{GS" +"_PDF_ProcSet begin pdfdict begin(r)file pdfopen begin dup dup 1 lt exch pdfpag" +"ecount gt or{pop}{pdfgetpage/MediaBox pget pop aload pop}ifelse currentdict pd" +"fclose end end end}def DELAYBIND{.bindnow}if "; diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/version.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/version.hpp index 14bfeacaf85..cf86d2ca2d4 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/version.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/version.hpp @@ -22,7 +22,7 @@ #define VERSION_HPP constexpr const char *PROGRAM_NAME = "dvisvgm"; -constexpr const char *PROGRAM_VERSION = "2.4.2"; +constexpr const char *PROGRAM_VERSION = "2.5"; #endif diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/tests/CalculatorTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/tests/CalculatorTest.cpp index 74069e54154..45a530c92c5 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/tests/CalculatorTest.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/tests/CalculatorTest.cpp @@ -20,6 +20,8 @@ #include #include "Calculator.hpp" +#include "Length.hpp" + TEST(CalculatorTest, eval) { Calculator calc; @@ -38,10 +40,10 @@ TEST(CalculatorTest, variables) { Calculator calc; calc.setVariable("a", 1); EXPECT_EQ(calc.getVariable("a"), 1); - + calc.setVariable("a", 2); EXPECT_EQ(calc.getVariable("a"), 2); - + calc.setVariable("b", 3); EXPECT_EQ(calc.eval("a+b"), 5); EXPECT_EQ(calc.eval("2a+2b"), 10); @@ -58,3 +60,14 @@ TEST(CalculatorTest, exceptions) { ASSERT_THROW(calc.eval("2*(3+4))"), CalculatorException); } + +TEST(CalculatorTest, units) { + Calculator calc; + for (auto unit : Length::getUnits()) + calc.setVariable(unit.first, Length(1, unit.second).bp()); + EXPECT_DOUBLE_EQ(calc.eval("1bp+3bp"), 4.0); + EXPECT_DOUBLE_EQ(calc.eval("1bp+1in"), 73.0); + EXPECT_DOUBLE_EQ(calc.eval("5cm/1cm"), 5.0); + EXPECT_DOUBLE_EQ(calc.eval("5cm/1cm"), 5.0); + EXPECT_DOUBLE_EQ(calc.eval("5cm"), 5/2.54*72); +} diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/tests/LengthTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/tests/LengthTest.cpp index ad8c5f36af9..cf665d6a384 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/tests/LengthTest.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/tests/LengthTest.cpp @@ -232,4 +232,20 @@ TEST(LengthTest, toString) { EXPECT_EQ(Length(10, Length::Unit::DD).toString(Length::Unit::DD), "10dd"); EXPECT_EQ(Length(10, Length::Unit::CC).toString(Length::Unit::CC), "10cc"); EXPECT_EQ(Length(10, Length::Unit::SP).toString(Length::Unit::SP), "10sp"); -} \ No newline at end of file +} + + +TEST(LengthTest, literals) { + EXPECT_EQ(1_pt, Length(1, "pt")); + EXPECT_EQ(2_bp, Length(2, "bp")); + EXPECT_EQ(3_in, Length(3, "in")); + EXPECT_EQ(5_mm, Length(5, "mm")); +} + + +TEST(LengthTest, getUnits) { + for (auto unit : Length::getUnits()) { + EXPECT_EQ(unit.first, Length::unitToString(unit.second)); + EXPECT_EQ(unit.second, Length::stringToUnit(unit.first)); + } +} diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/tests/Makefile.am b/Build/source/texk/dvisvgm/dvisvgm-src/tests/Makefile.am index 642c9c97aed..9a446763f86 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/tests/Makefile.am +++ b/Build/source/texk/dvisvgm/dvisvgm-src/tests/Makefile.am @@ -21,6 +21,20 @@ EXTRA_DIST = gtest/LICENSE \ gtest/src/gtest-test-part.cc \ gtest/src/gtest-typed-test.cc +if USE_BUNDLED_LIBS +LIBS_CFLAGS = -I$(top_srcdir)/libs/xxHash +LIBS_LIBS = ../libs/potrace/libpotrace.a ../libs/xxHash/libxxhash.a +if ENABLE_WOFF +LIBS_LIBS += ../libs/woff2/libwoff2.a ../libs/brotli/libbrotli.a +endif +else +LIBS_CFLAGS = -I$(XXHASH_CFLAGS) +LIBS_LIBS = $(POTRACE_LIBS) $(XXHASH_LIBS) +if ENABLE_WOFF +LIBS_LIBS += $(WOFF2_LIBS) $(BROTLI_LIBS) +endif +endif + AM_CXXFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/libs/variant/include \ -Wall -Wno-mismatched-tags \ -DBUILDDIR='"$(abs_builddir)"' -DSRCDIR='"$(abs_srcdir)"' \ @@ -29,18 +43,15 @@ AM_CXXFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/libs/variant/include \ TESTS = hashcheck check_PROGRAMS = hashcheck nodist_hashcheck_SOURCES = hashcheck.cpp -hashcheck_LDADD = ../libs/xxHash/libxxhash.a -hashcheck_CPPFLAGS = -I$(top_srcdir)/libs/xxHash +hashcheck_CPPFLAGS = $(LIBS_CFLAGS) +hashcheck_LDADD = $(LIBS_LIBS) hashcheck.cpp: genhashcheck.py $(top_srcdir)/src/AGLTable.hpp $(top_srcdir)/libs/xxHash/xxhash.h python $^ >$@ -TESTLIBS = libgtest.la ../src/libdvisvgm.a ../libs/xxHash/libxxhash.a -lpotrace -lfreetype +TESTLIBS = libgtest.la ../src/libdvisvgm.a $(LIBS_LIBS) -lfreetype if ENABLE_WOFF -TESTLIBS += \ - ../libs/ff-woff/libfontforge.a \ - ../libs/woff2/libwoff2.a \ - ../libs/brotli/libbrotli.a +TESTLIBS += ../libs/ff-woff/libfontforge.a endif TESTLIBS += $(CODE_COVERAGE_LDFLAGS) diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/tests/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/tests/Makefile.in index 6547ca87641..b83d512e9ac 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/tests/Makefile.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/tests/Makefile.in @@ -88,6 +88,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ +@ENABLE_WOFF_TRUE@@USE_BUNDLED_LIBS_TRUE@am__append_1 = ../libs/woff2/libwoff2.a ../libs/brotli/libbrotli.a +@ENABLE_WOFF_TRUE@@USE_BUNDLED_LIBS_FALSE@am__append_2 = $(WOFF2_LIBS) $(BROTLI_LIBS) TESTS = hashcheck$(EXEEXT) BezierTest$(EXEEXT) BitmapTest$(EXEEXT) \ BoundingBoxTest$(EXEEXT) CalculatorTest$(EXEEXT) \ CMapManagerTest$(EXEEXT) CMapReaderTest$(EXEEXT) \ @@ -147,14 +149,14 @@ check_PROGRAMS = hashcheck$(EXEEXT) BezierTest$(EXEEXT) \ UtilityTest$(EXEEXT) VectorIteratorTest$(EXEEXT) \ VectorStreamTest$(EXEEXT) XMLNodeTest$(EXEEXT) \ XMLStringTest$(EXEEXT) -@ENABLE_WOFF_TRUE@am__append_1 = \ -@ENABLE_WOFF_TRUE@ ../libs/ff-woff/libfontforge.a \ -@ENABLE_WOFF_TRUE@ ../libs/woff2/libwoff2.a \ -@ENABLE_WOFF_TRUE@ ../libs/brotli/libbrotli.a - +@ENABLE_WOFF_TRUE@am__append_3 = ../libs/ff-woff/libfontforge.a subdir = tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \ + $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) @@ -177,210 +179,216 @@ libgtest_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ am_BezierTest_OBJECTS = BezierTest-BezierTest.$(OBJEXT) BezierTest_OBJECTS = $(am_BezierTest_OBJECTS) am__DEPENDENCIES_1 = -am__DEPENDENCIES_2 = libgtest.la ../src/libdvisvgm.a \ - ../libs/xxHash/libxxhash.a $(am__append_1) \ - $(am__DEPENDENCIES_1) -BezierTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +@ENABLE_WOFF_TRUE@@USE_BUNDLED_LIBS_FALSE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) \ +@ENABLE_WOFF_TRUE@@USE_BUNDLED_LIBS_FALSE@ $(am__DEPENDENCIES_1) +@USE_BUNDLED_LIBS_FALSE@am__DEPENDENCIES_3 = $(am__DEPENDENCIES_2) +@USE_BUNDLED_LIBS_TRUE@am__DEPENDENCIES_3 = \ +@USE_BUNDLED_LIBS_TRUE@ ../libs/potrace/libpotrace.a \ +@USE_BUNDLED_LIBS_TRUE@ ../libs/xxHash/libxxhash.a \ +@USE_BUNDLED_LIBS_TRUE@ $(am__append_1) $(am__DEPENDENCIES_2) +am__DEPENDENCIES_4 = libgtest.la ../src/libdvisvgm.a \ + $(am__DEPENDENCIES_3) $(am__append_3) $(am__DEPENDENCIES_1) +BezierTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_BitmapTest_OBJECTS = BitmapTest-BitmapTest.$(OBJEXT) BitmapTest_OBJECTS = $(am_BitmapTest_OBJECTS) -BitmapTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +BitmapTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_BoundingBoxTest_OBJECTS = \ BoundingBoxTest-BoundingBoxTest.$(OBJEXT) BoundingBoxTest_OBJECTS = $(am_BoundingBoxTest_OBJECTS) -BoundingBoxTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +BoundingBoxTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_CMapManagerTest_OBJECTS = \ CMapManagerTest-CMapManagerTest.$(OBJEXT) CMapManagerTest_OBJECTS = $(am_CMapManagerTest_OBJECTS) -CMapManagerTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +CMapManagerTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_CMapReaderTest_OBJECTS = CMapReaderTest-CMapReaderTest.$(OBJEXT) CMapReaderTest_OBJECTS = $(am_CMapReaderTest_OBJECTS) -CMapReaderTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +CMapReaderTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_CMapTest_OBJECTS = CMapTest-CMapTest.$(OBJEXT) CMapTest_OBJECTS = $(am_CMapTest_OBJECTS) -CMapTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +CMapTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_CRC32Test_OBJECTS = CRC32Test-CRC32Test.$(OBJEXT) CRC32Test_OBJECTS = $(am_CRC32Test_OBJECTS) -CRC32Test_DEPENDENCIES = $(am__DEPENDENCIES_2) +CRC32Test_DEPENDENCIES = $(am__DEPENDENCIES_4) am_CalculatorTest_OBJECTS = CalculatorTest-CalculatorTest.$(OBJEXT) CalculatorTest_OBJECTS = $(am_CalculatorTest_OBJECTS) -CalculatorTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +CalculatorTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_ColorSpecialTest_OBJECTS = \ ColorSpecialTest-ColorSpecialTest.$(OBJEXT) ColorSpecialTest_OBJECTS = $(am_ColorSpecialTest_OBJECTS) -ColorSpecialTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +ColorSpecialTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_ColorTest_OBJECTS = ColorTest-ColorTest.$(OBJEXT) ColorTest_OBJECTS = $(am_ColorTest_OBJECTS) -ColorTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +ColorTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_CommandLineTest_OBJECTS = \ CommandLineTest-CommandLineTest.$(OBJEXT) CommandLineTest_OBJECTS = $(am_CommandLineTest_OBJECTS) -CommandLineTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +CommandLineTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_DVIReaderTest_OBJECTS = DVIReaderTest-DVIReaderTest.$(OBJEXT) DVIReaderTest_OBJECTS = $(am_DVIReaderTest_OBJECTS) -DVIReaderTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +DVIReaderTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_DependencyGraphTest_OBJECTS = \ DependencyGraphTest-DependencyGraphTest.$(OBJEXT) DependencyGraphTest_OBJECTS = $(am_DependencyGraphTest_OBJECTS) -DependencyGraphTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +DependencyGraphTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_DirectoryTest_OBJECTS = DirectoryTest-DirectoryTest.$(OBJEXT) DirectoryTest_OBJECTS = $(am_DirectoryTest_OBJECTS) -DirectoryTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +DirectoryTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_DvisvgmSpecialTest_OBJECTS = \ DvisvgmSpecialTest-DvisvgmSpecialTest.$(OBJEXT) DvisvgmSpecialTest_OBJECTS = $(am_DvisvgmSpecialTest_OBJECTS) -DvisvgmSpecialTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +DvisvgmSpecialTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_EmSpecialTest_OBJECTS = EmSpecialTest-EmSpecialTest.$(OBJEXT) EmSpecialTest_OBJECTS = $(am_EmSpecialTest_OBJECTS) -EmSpecialTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +EmSpecialTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_FileFinderTest_OBJECTS = FileFinderTest-FileFinderTest.$(OBJEXT) FileFinderTest_OBJECTS = $(am_FileFinderTest_OBJECTS) -FileFinderTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +FileFinderTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_FilePathTest_OBJECTS = FilePathTest-FilePathTest.$(OBJEXT) FilePathTest_OBJECTS = $(am_FilePathTest_OBJECTS) -FilePathTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +FilePathTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_FileSystemTest_OBJECTS = FileSystemTest-FileSystemTest.$(OBJEXT) FileSystemTest_OBJECTS = $(am_FileSystemTest_OBJECTS) -FileSystemTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +FileSystemTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_FontCacheTest_OBJECTS = FontCacheTest-FontCacheTest.$(OBJEXT) FontCacheTest_OBJECTS = $(am_FontCacheTest_OBJECTS) -FontCacheTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +FontCacheTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_FontManagerTest_OBJECTS = \ FontManagerTest-FontManagerTest.$(OBJEXT) FontManagerTest_OBJECTS = $(am_FontManagerTest_OBJECTS) -FontManagerTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +FontManagerTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_FontMapTest_OBJECTS = FontMapTest-FontMapTest.$(OBJEXT) FontMapTest_OBJECTS = $(am_FontMapTest_OBJECTS) -FontMapTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +FontMapTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_GFGlyphTracerTest_OBJECTS = \ GFGlyphTracerTest-GFGlyphTracerTest.$(OBJEXT) GFGlyphTracerTest_OBJECTS = $(am_GFGlyphTracerTest_OBJECTS) -GFGlyphTracerTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +GFGlyphTracerTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_GFReaderTest_OBJECTS = GFReaderTest-GFReaderTest.$(OBJEXT) GFReaderTest_OBJECTS = $(am_GFReaderTest_OBJECTS) -GFReaderTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +GFReaderTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_GhostscriptTest_OBJECTS = \ GhostscriptTest-GhostscriptTest.$(OBJEXT) GhostscriptTest_OBJECTS = $(am_GhostscriptTest_OBJECTS) -GhostscriptTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +GhostscriptTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_GraphicsPathTest_OBJECTS = \ GraphicsPathTest-GraphicsPathTest.$(OBJEXT) GraphicsPathTest_OBJECTS = $(am_GraphicsPathTest_OBJECTS) -GraphicsPathTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +GraphicsPathTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_JFMReaderTest_OBJECTS = JFMReaderTest-JFMReaderTest.$(OBJEXT) JFMReaderTest_OBJECTS = $(am_JFMReaderTest_OBJECTS) -JFMReaderTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +JFMReaderTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_LengthTest_OBJECTS = LengthTest-LengthTest.$(OBJEXT) LengthTest_OBJECTS = $(am_LengthTest_OBJECTS) -LengthTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +LengthTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_MapLineTest_OBJECTS = MapLineTest-MapLineTest.$(OBJEXT) MapLineTest_OBJECTS = $(am_MapLineTest_OBJECTS) -MapLineTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +MapLineTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_MatrixTest_OBJECTS = MatrixTest-MatrixTest.$(OBJEXT) MatrixTest_OBJECTS = $(am_MatrixTest_OBJECTS) -MatrixTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +MatrixTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_MessageExceptionTest_OBJECTS = \ MessageExceptionTest-MessageExceptionTest.$(OBJEXT) MessageExceptionTest_OBJECTS = $(am_MessageExceptionTest_OBJECTS) -MessageExceptionTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +MessageExceptionTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_PDFParserTest_OBJECTS = PDFParserTest-PDFParserTest.$(OBJEXT) PDFParserTest_OBJECTS = $(am_PDFParserTest_OBJECTS) -PDFParserTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +PDFParserTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_PSInterpreterTest_OBJECTS = \ PSInterpreterTest-PSInterpreterTest.$(OBJEXT) PSInterpreterTest_OBJECTS = $(am_PSInterpreterTest_OBJECTS) -PSInterpreterTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +PSInterpreterTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_PageRagesTest_OBJECTS = PageRagesTest-PageRagesTest.$(OBJEXT) PageRagesTest_OBJECTS = $(am_PageRagesTest_OBJECTS) -PageRagesTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +PageRagesTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_PageSizeTest_OBJECTS = PageSizeTest-PageSizeTest.$(OBJEXT) PageSizeTest_OBJECTS = $(am_PageSizeTest_OBJECTS) -PageSizeTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +PageSizeTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_PairTest_OBJECTS = PairTest-PairTest.$(OBJEXT) PairTest_OBJECTS = $(am_PairTest_OBJECTS) -PairTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +PairTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_PapersizeSpecialTest_OBJECTS = \ PapersizeSpecialTest-PapersizeSpecialTest.$(OBJEXT) PapersizeSpecialTest_OBJECTS = $(am_PapersizeSpecialTest_OBJECTS) -PapersizeSpecialTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +PapersizeSpecialTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_RangeMapTest_OBJECTS = RangeMapTest-RangeMapTest.$(OBJEXT) RangeMapTest_OBJECTS = $(am_RangeMapTest_OBJECTS) -RangeMapTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +RangeMapTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_SVGOutputTest_OBJECTS = SVGOutputTest-SVGOutputTest.$(OBJEXT) SVGOutputTest_OBJECTS = $(am_SVGOutputTest_OBJECTS) -SVGOutputTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +SVGOutputTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_ShadingPatchTest_OBJECTS = \ ShadingPatchTest-ShadingPatchTest.$(OBJEXT) ShadingPatchTest_OBJECTS = $(am_ShadingPatchTest_OBJECTS) -ShadingPatchTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +ShadingPatchTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_SpecialManagerTest_OBJECTS = \ SpecialManagerTest-SpecialManagerTest.$(OBJEXT) SpecialManagerTest_OBJECTS = $(am_SpecialManagerTest_OBJECTS) -SpecialManagerTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +SpecialManagerTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_SplittedCharInputBufferTest_OBJECTS = SplittedCharInputBufferTest-SplittedCharInputBufferTest.$(OBJEXT) SplittedCharInputBufferTest_OBJECTS = \ $(am_SplittedCharInputBufferTest_OBJECTS) -SplittedCharInputBufferTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +SplittedCharInputBufferTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_StreamInputBufferTest_OBJECTS = \ StreamInputBufferTest-StreamInputBufferTest.$(OBJEXT) StreamInputBufferTest_OBJECTS = $(am_StreamInputBufferTest_OBJECTS) -StreamInputBufferTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +StreamInputBufferTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_StreamReaderTest_OBJECTS = \ StreamReaderTest-StreamReaderTest.$(OBJEXT) StreamReaderTest_OBJECTS = $(am_StreamReaderTest_OBJECTS) -StreamReaderTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +StreamReaderTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_StreamWriterTest_OBJECTS = \ StreamWriterTest-StreamWriterTest.$(OBJEXT) StreamWriterTest_OBJECTS = $(am_StreamWriterTest_OBJECTS) -StreamWriterTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +StreamWriterTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_StringMatcherTest_OBJECTS = \ StringMatcherTest-StringMatcherTest.$(OBJEXT) StringMatcherTest_OBJECTS = $(am_StringMatcherTest_OBJECTS) -StringMatcherTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +StringMatcherTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_SubfontTest_OBJECTS = SubfontTest-SubfontTest.$(OBJEXT) SubfontTest_OBJECTS = $(am_SubfontTest_OBJECTS) -SubfontTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +SubfontTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_TFMReaderTest_OBJECTS = TFMReaderTest-TFMReaderTest.$(OBJEXT) TFMReaderTest_OBJECTS = $(am_TFMReaderTest_OBJECTS) -TFMReaderTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +TFMReaderTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_TensorProductPatchTest_OBJECTS = \ TensorProductPatchTest-TensorProductPatchTest.$(OBJEXT) TensorProductPatchTest_OBJECTS = $(am_TensorProductPatchTest_OBJECTS) -TensorProductPatchTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +TensorProductPatchTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_ToUnicodeMapTest_OBJECTS = \ ToUnicodeMapTest-ToUnicodeMapTest.$(OBJEXT) ToUnicodeMapTest_OBJECTS = $(am_ToUnicodeMapTest_OBJECTS) -ToUnicodeMapTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +ToUnicodeMapTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_TpicSpecialTest_OBJECTS = \ TpicSpecialTest-TpicSpecialTest.$(OBJEXT) TpicSpecialTest_OBJECTS = $(am_TpicSpecialTest_OBJECTS) -TpicSpecialTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +TpicSpecialTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_TriangularPatchTest_OBJECTS = \ TriangularPatchTest-TriangularPatchTest.$(OBJEXT) TriangularPatchTest_OBJECTS = $(am_TriangularPatchTest_OBJECTS) -TriangularPatchTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +TriangularPatchTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_UnicodeTest_OBJECTS = UnicodeTest-UnicodeTest.$(OBJEXT) UnicodeTest_OBJECTS = $(am_UnicodeTest_OBJECTS) -UnicodeTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +UnicodeTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_UtilityTest_OBJECTS = UtilityTest-UtilityTest.$(OBJEXT) UtilityTest_OBJECTS = $(am_UtilityTest_OBJECTS) -UtilityTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +UtilityTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_VectorIteratorTest_OBJECTS = \ VectorIteratorTest-VectorIteratorTest.$(OBJEXT) VectorIteratorTest_OBJECTS = $(am_VectorIteratorTest_OBJECTS) -VectorIteratorTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +VectorIteratorTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_VectorStreamTest_OBJECTS = \ VectorStreamTest-VectorStreamTest.$(OBJEXT) VectorStreamTest_OBJECTS = $(am_VectorStreamTest_OBJECTS) -VectorStreamTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +VectorStreamTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_XMLNodeTest_OBJECTS = XMLNodeTest-XMLNodeTest.$(OBJEXT) XMLNodeTest_OBJECTS = $(am_XMLNodeTest_OBJECTS) -XMLNodeTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +XMLNodeTest_DEPENDENCIES = $(am__DEPENDENCIES_4) am_XMLStringTest_OBJECTS = XMLStringTest-XMLStringTest.$(OBJEXT) XMLStringTest_OBJECTS = $(am_XMLStringTest_OBJECTS) -XMLStringTest_DEPENDENCIES = $(am__DEPENDENCIES_2) +XMLStringTest_DEPENDENCIES = $(am__DEPENDENCIES_4) nodist_hashcheck_OBJECTS = hashcheck-hashcheck.$(OBJEXT) hashcheck_OBJECTS = $(nodist_hashcheck_OBJECTS) -hashcheck_DEPENDENCIES = ../libs/xxHash/libxxhash.a +hashcheck_DEPENDENCIES = $(am__DEPENDENCIES_3) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -777,6 +785,8 @@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +BROTLI_CFLAGS = @BROTLI_CFLAGS@ +BROTLI_LIBS = @BROTLI_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -856,6 +866,8 @@ STRIP = @STRIP@ TTFAUTOHINT_CFLAGS = @TTFAUTOHINT_CFLAGS@ TTFAUTOHINT_LIBS = @TTFAUTOHINT_LIBS@ VERSION = @VERSION@ +WOFF2_CFLAGS = @WOFF2_CFLAGS@ +WOFF2_LIBS = @WOFF2_LIBS@ XMLTO = @XMLTO@ XSLTPROC = @XSLTPROC@ ZLIB_CFLAGS = @ZLIB_CFLAGS@ @@ -928,16 +940,23 @@ EXTRA_DIST = gtest/LICENSE gtest/include gtest/src/gtest.cc \ gtest/src/gtest-port.cc gtest/src/gtest-printers.cc \ gtest/src/gtest-test-part.cc gtest/src/gtest-typed-test.cc \ check-conv genhashcheck.py normalize.xsl +@USE_BUNDLED_LIBS_FALSE@LIBS_CFLAGS = -I$(XXHASH_CFLAGS) +@USE_BUNDLED_LIBS_TRUE@LIBS_CFLAGS = -I$(top_srcdir)/libs/xxHash +@USE_BUNDLED_LIBS_FALSE@LIBS_LIBS = $(POTRACE_LIBS) $(XXHASH_LIBS) \ +@USE_BUNDLED_LIBS_FALSE@ $(am__append_2) +@USE_BUNDLED_LIBS_TRUE@LIBS_LIBS = ../libs/potrace/libpotrace.a \ +@USE_BUNDLED_LIBS_TRUE@ ../libs/xxHash/libxxhash.a \ +@USE_BUNDLED_LIBS_TRUE@ $(am__append_1) $(am__append_2) AM_CXXFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/libs/variant/include \ -Wall -Wno-mismatched-tags \ -DBUILDDIR='"$(abs_builddir)"' -DSRCDIR='"$(abs_srcdir)"' \ $(CODE_COVERAGE_CFLAGS) nodist_hashcheck_SOURCES = hashcheck.cpp -hashcheck_LDADD = ../libs/xxHash/libxxhash.a -hashcheck_CPPFLAGS = -I$(top_srcdir)/libs/xxHash -TESTLIBS = libgtest.la ../src/libdvisvgm.a ../libs/xxHash/libxxhash.a \ - -lpotrace -lfreetype $(am__append_1) $(CODE_COVERAGE_LDFLAGS) +hashcheck_CPPFLAGS = $(LIBS_CFLAGS) +hashcheck_LDADD = $(LIBS_LIBS) +TESTLIBS = libgtest.la ../src/libdvisvgm.a $(LIBS_LIBS) -lfreetype \ + $(am__append_3) $(CODE_COVERAGE_LDFLAGS) BezierTest_SOURCES = BezierTest.cpp testutil.hpp BezierTest_CPPFLAGS = -I$(top_srcdir)/tests/gtest/include BezierTest_LDADD = $(TESTLIBS) @@ -1126,9 +1145,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu tests/Makefile + $(AUTOMAKE) --foreign tests/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/tests/PSInterpreterTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/tests/PSInterpreterTest.cpp index b2b6253bedf..90238b05da2 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/tests/PSInterpreterTest.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/tests/PSInterpreterTest.cpp @@ -47,7 +47,6 @@ class PSTestActions : public PSActions { void setpagedevice (vector &p) override {print("setpagedevice", p);} void newpath (vector &p) override {print("newpath", p);} void querypos (vector &p) override {print("querypos", p);} - void pdfpagebox (std::vector &p) override {print("pdfpagebox", p);} void restore(std::vector &p) override {print("restore", p);} void rotate (vector &p) override {print("rotate", p);} void save(std::vector &p) override {print("save", p);} diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/tests/data/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/tests/data/Makefile.in index 95bd92e7645..066562b432c 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/tests/data/Makefile.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/tests/data/Makefile.in @@ -90,7 +90,11 @@ host_triplet = @host@ target_triplet = @target@ subdir = tests/data ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \ + $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) @@ -131,6 +135,8 @@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +BROTLI_CFLAGS = @BROTLI_CFLAGS@ +BROTLI_LIBS = @BROTLI_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -210,6 +216,8 @@ STRIP = @STRIP@ TTFAUTOHINT_CFLAGS = @TTFAUTOHINT_CFLAGS@ TTFAUTOHINT_LIBS = @TTFAUTOHINT_LIBS@ VERSION = @VERSION@ +WOFF2_CFLAGS = @WOFF2_CFLAGS@ +WOFF2_LIBS = @WOFF2_LIBS@ XMLTO = @XMLTO@ XSLTPROC = @XSLTPROC@ ZLIB_CFLAGS = @ZLIB_CFLAGS@ @@ -301,9 +309,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/data/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/data/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu tests/data/Makefile + $(AUTOMAKE) --foreign tests/data/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ diff --git a/Build/source/texk/dvisvgm/version.ac b/Build/source/texk/dvisvgm/version.ac index 8cb5dcca2e1..ccbe6895264 100644 --- a/Build/source/texk/dvisvgm/version.ac +++ b/Build/source/texk/dvisvgm/version.ac @@ -9,4 +9,4 @@ dnl dnl -------------------------------------------------------- dnl dnl m4-include this file to define the current dvisvgm version -m4_define([dvisvgm_version], [2.4.2]) +m4_define([dvisvgm_version], [2.5]) diff --git a/Build/source/utils/Makefile.in b/Build/source/utils/Makefile.in index e05d4ac06cf..d43526017de 100644 --- a/Build/source/utils/Makefile.in +++ b/Build/source/utils/Makefile.in @@ -108,7 +108,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../m4/kpse-cairo-flags.m4 \ $(top_srcdir)/../m4/kpse-pixman-flags.m4 \ $(top_srcdir)/../m4/kpse-pkgs.m4 \ $(top_srcdir)/../m4/kpse-poppler-flags.m4 \ - $(top_srcdir)/../m4/kpse-potrace-flags.m4 \ $(top_srcdir)/../m4/kpse-ptexenc-flags.m4 \ $(top_srcdir)/../m4/kpse-setup.m4 \ $(top_srcdir)/../m4/kpse-teckit-flags.m4 \ @@ -182,7 +181,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../m4/kpse-cairo-flags.m4 \ $(top_srcdir)/../libs/gmp/ac/withenable.ac \ $(top_srcdir)/../libs/cairo/ac/withenable.ac \ $(top_srcdir)/../libs/pixman/ac/withenable.ac \ - $(top_srcdir)/../libs/potrace/ac/withenable.ac \ $(top_srcdir)/../libs/gd/ac/withenable.ac \ $(top_srcdir)/../libs/freetype2/ac/withenable.ac \ $(top_srcdir)/../libs/libpng/ac/withenable.ac \ diff --git a/Build/source/utils/aclocal.m4 b/Build/source/utils/aclocal.m4 index 2386b91a58b..dae4686cafd 100644 --- a/Build/source/utils/aclocal.m4 +++ b/Build/source/utils/aclocal.m4 @@ -1188,7 +1188,6 @@ m4_include([../m4/kpse-options.m4]) m4_include([../m4/kpse-pixman-flags.m4]) m4_include([../m4/kpse-pkgs.m4]) m4_include([../m4/kpse-poppler-flags.m4]) -m4_include([../m4/kpse-potrace-flags.m4]) m4_include([../m4/kpse-ptexenc-flags.m4]) m4_include([../m4/kpse-setup.m4]) m4_include([../m4/kpse-teckit-flags.m4]) diff --git a/Build/source/utils/configure b/Build/source/utils/configure index ac9686b499e..295383b89e9 100755 --- a/Build/source/utils/configure +++ b/Build/source/utils/configure @@ -820,9 +820,6 @@ with_gmp_includes with_gmp_libdir with_system_cairo with_system_pixman -with_system_potrace -with_potrace_includes -with_potrace_libdir with_system_gd with_gd_includes with_gd_libdir @@ -1656,11 +1653,6 @@ Optional Packages: pkg-config) --with-system-pixman use installed pixman headers and library (requires pkg-config) - --with-system-potrace use installed potrace headers and library - --with-potrace-includes=DIR - potrace headers installed in DIR - --with-potrace-libdir=DIR - potrace library installed in DIR --with-system-gd use installed gd headers and library --with-gd-includes=DIR gd headers installed in DIR --with-gd-libdir=DIR gd library installed in DIR @@ -5234,36 +5226,6 @@ $as_echo "$as_me: Assuming installed \`pixman' headers and library" >&6;} ac_configure_args="$ac_configure_args '--with-system-pixman=$with_system_pixman'" fi -## libs/potrace/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/potrace/ -## configure options and TL libraries required for potrace - -# Check whether --with-system-potrace was given. -if test "${with_system_potrace+set}" = set; then : - withval=$with_system_potrace; -fi - -# Check whether --with-potrace-includes was given. -if test "${with_potrace_includes+set}" = set; then : - withval=$with_potrace_includes; -fi - -# Check whether --with-potrace-libdir was given. -if test "${with_potrace_libdir+set}" = set; then : - withval=$with_potrace_libdir; -fi -if test "x$with_system_potrace" = x; then - if test -f $srcdir/../libs/potrace/configure; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Assuming \`potrace' headers and library from TL tree" >&5 -$as_echo "$as_me: Assuming \`potrace' headers and library from TL tree" >&6;} - with_system_potrace=no - else - { $as_echo "$as_me:${as_lineno-$LINENO}: Assuming installed \`potrace' headers and library" >&5 -$as_echo "$as_me: Assuming installed \`potrace' headers and library" >&6;} - with_system_potrace=yes - fi - ac_configure_args="$ac_configure_args '--with-system-potrace=$with_system_potrace'" -fi - ## libs/gd/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/gd/ ## configure options and TL libraries required for gd -- cgit v1.2.3