summaryrefslogtreecommitdiff
path: root/dviware/dvisvgm/src
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-01-27 03:00:41 +0000
committerNorbert Preining <norbert@preining.info>2022-01-27 03:00:41 +0000
commitb5deca5ab245af14ca010a3e61225189e9c860f9 (patch)
tree50f4cfc4a516024350a41166589f283a0d0c1871 /dviware/dvisvgm/src
parentd36626add433e216b29d959884d3593baa216866 (diff)
CTAN sync 202201270300
Diffstat (limited to 'dviware/dvisvgm/src')
-rw-r--r--dviware/dvisvgm/src/DvisvgmSpecialHandler.cpp1
-rw-r--r--dviware/dvisvgm/src/PSPattern.cpp2
-rw-r--r--dviware/dvisvgm/src/PsSpecialHandler.cpp8
3 files changed, 6 insertions, 5 deletions
diff --git a/dviware/dvisvgm/src/DvisvgmSpecialHandler.cpp b/dviware/dvisvgm/src/DvisvgmSpecialHandler.cpp
index 8fba6d8974..9a38ef9b3b 100644
--- a/dviware/dvisvgm/src/DvisvgmSpecialHandler.cpp
+++ b/dviware/dvisvgm/src/DvisvgmSpecialHandler.cpp
@@ -242,6 +242,7 @@ void DvisvgmSpecialHandler::processRawDef (InputReader &ir, SpecialActions &acti
if (_nestingLevel == 0) {
string xml = ir.getLine();
if (!xml.empty()) {
+ evaluate_expressions(xml, actions);
expand_constants(xml, actions);
_defsParser.parse(xml, actions);
}
diff --git a/dviware/dvisvgm/src/PSPattern.cpp b/dviware/dvisvgm/src/PSPattern.cpp
index 6cebe7844d..3232c88bbe 100644
--- a/dviware/dvisvgm/src/PSPattern.cpp
+++ b/dviware/dvisvgm/src/PSPattern.cpp
@@ -108,7 +108,7 @@ unique_ptr<XMLElement> PSTilingPattern::createGroupNode () const {
// add all succeeding path elements to this group
auto group = util::make_unique<SVGElement>("g");
group->setClipPathUrl("pc"+XMLString(psID()));
- return group;
+ return std::move(group);
}
diff --git a/dviware/dvisvgm/src/PsSpecialHandler.cpp b/dviware/dvisvgm/src/PsSpecialHandler.cpp
index aa6c7461dc..66514d1b08 100644
--- a/dviware/dvisvgm/src/PsSpecialHandler.cpp
+++ b/dviware/dvisvgm/src/PsSpecialHandler.cpp
@@ -287,6 +287,7 @@ bool PsSpecialHandler::process (const string &prefix, istream &is, SpecialAction
return true;
}
+
/** Handles a psfile/pdffile special which places an external EPS/PDF graphic
* at the current DVI position. The lower left corner (llx,lly) of the
* given bounding box is placed at the DVI position.
@@ -312,9 +313,9 @@ void PsSpecialHandler::imgfile (FileType filetype, const string &fname, const ma
swap(lly, ury);
else if (filetype == FileType::PDF && llx == 0 && lly == 0 && urx == 0 && ury == 0) {
BoundingBox pagebox = _psi.pdfPageBox(fname, pageno);
+ pagebox.transform(TranslationMatrix(-pagebox.minX(), -pagebox.minY()));
if (pagebox.valid()) {
- llx = pagebox.minX();
- lly = pagebox.minY();
+ llx = lly = 0.0;
urx = pagebox.maxX();
ury = pagebox.maxY();
}
@@ -371,8 +372,7 @@ void PsSpecialHandler::imgfile (FileType filetype, const string &fname, const ma
_actions->embed(bbox);
// insert element containing the image data
- if (filetype != FileType::PDF)
- matrix.rmultiply(TranslationMatrix(-llx, -lly)); // move lower left corner of image to origin
+ matrix.rmultiply(TranslationMatrix(-llx, -lly)); // move lower left corner of image to origin
imgNode->setTransform(matrix);
_actions->svgTree().appendToPage(std::move(imgNode));
}