summaryrefslogtreecommitdiff
path: root/dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-01-21 03:01:16 +0000
committerNorbert Preining <norbert@preining.info>2022-01-21 03:01:16 +0000
commit5d5f239204f5c0d1f7573c9ebc64b5ad1ae75b49 (patch)
treedd2a2d9a64fd0be0785bc558a4872a3c8185af23 /dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp
parent217d27e597baa589f8e115e1b44eef51c7bb5dd0 (diff)
CTAN sync 202201210301
Diffstat (limited to 'dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp')
-rw-r--r--dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp24
1 files changed, 15 insertions, 9 deletions
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 <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2022 Martin Gieseking <martin.gieseking@uos.de> **
** **
** This program is free software; you can redistribute it and/or **
** modify it under the terms of the GNU General Public License as **
@@ -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<string> 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<string> 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());
+ }
}
}
}