From 5d5f239204f5c0d1f7573c9ebc64b5ad1ae75b49 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Fri, 21 Jan 2022 03:01:16 +0000 Subject: CTAN sync 202201210301 --- dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) (limited to 'dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp') diff --git a/dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp b/dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp index 8f9635a836..9ff1b8163f 100644 --- a/dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp +++ b/dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp @@ -2,7 +2,7 @@ ** SVGOptimizer.cpp ** ** ** ** This file is part of dvisvgm -- a fast DVI to SVG converter ** -** Copyright (C) 2005-2021 Martin Gieseking ** +** Copyright (C) 2005-2022 Martin Gieseking ** ** ** ** This program is free software; you can redistribute it and/or ** ** modify it under the terms of the GNU General Public License as ** @@ -51,15 +51,21 @@ void SVGOptimizer::execute () { return; if (MODULE_SEQUENCE.empty()) MODULE_SEQUENCE = "remove-clippath"; // default behaviour of previous dvisvgm releases - if (MODULE_SEQUENCE == "all") { - for (const auto &entry : _moduleEntries) - entry.module->execute(_svg->defsNode(), _svg->pageNode()); - } else { - vector names = util::split(MODULE_SEQUENCE, ","); - for (const string &name : names) { - if (OptimizerModule *module = getModule(name)) - module->execute(_svg->defsNode(), _svg->pageNode()); + if (MODULE_SEQUENCE == "all") { + for (const auto &entry: _moduleEntries) + entry.module->execute(_svg->defsNode(), _svg->pageNode()); + } + else { + vector names = util::split(MODULE_SEQUENCE, ","); + auto it = find_if(names.begin(), names.end(), [](const string &name) { + return name == "simplify-transform"; + }); + GroupCollapser::COMBINE_TRANSFORMS = (it != names.end()); + for (const string &name: names) { + if (OptimizerModule *module = getModule(name)) + module->execute(_svg->defsNode(), _svg->pageNode()); + } } } } -- cgit v1.2.3