summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Build/source/texk/web2c/xetexdir/XeTeXLayoutInterface.cpp12
-rw-r--r--Build/source/texk/web2c/xetexdir/XeTeX_ext.c2
-rw-r--r--Build/source/texk/web2c/xetexdir/xetex.ch2
3 files changed, 12 insertions, 4 deletions
diff --git a/Build/source/texk/web2c/xetexdir/XeTeXLayoutInterface.cpp b/Build/source/texk/web2c/xetexdir/XeTeXLayoutInterface.cpp
index d8827416bb4..9378b380c06 100644
--- a/Build/source/texk/web2c/xetexdir/XeTeXLayoutInterface.cpp
+++ b/Build/source/texk/web2c/xetexdir/XeTeXLayoutInterface.cpp
@@ -680,11 +680,15 @@ UInt32 getRgbValue(XeTeXLayoutEngine engine)
void getGlyphBounds(XeTeXLayoutEngine engine, UInt32 glyphID, GlyphBBox* bbox)
{
engine->font->getGlyphBounds(glyphID, bbox);
+ if (engine->extend != 0.0) {
+ bbox->xMin *= engine->extend;
+ bbox->xMax *= engine->extend;
+ }
}
float getGlyphWidthFromEngine(XeTeXLayoutEngine engine, UInt32 glyphID)
{
- return engine->font->getGlyphWidth(glyphID);
+ return engine->extend * engine->font->getGlyphWidth(glyphID);
}
void getGlyphHeightDepth(XeTeXLayoutEngine engine, UInt32 glyphID, float* height, float* depth)
@@ -695,11 +699,15 @@ void getGlyphHeightDepth(XeTeXLayoutEngine engine, UInt32 glyphID, float* height
void getGlyphSidebearings(XeTeXLayoutEngine engine, UInt32 glyphID, float* lsb, float* rsb)
{
engine->font->getGlyphSidebearings(glyphID, lsb, rsb);
+ if (engine->extend != 0.0) {
+ *lsb *= engine->extend;
+ *rsb *= engine->extend;
+ }
}
float getGlyphItalCorr(XeTeXLayoutEngine engine, UInt32 glyphID)
{
- return engine->font->getGlyphItalCorr(glyphID);
+ return engine->extend * engine->font->getGlyphItalCorr(glyphID);
}
UInt32 mapCharToGlyph(XeTeXLayoutEngine engine, UInt32 charCode)
diff --git a/Build/source/texk/web2c/xetexdir/XeTeX_ext.c b/Build/source/texk/web2c/xetexdir/XeTeX_ext.c
index 44abaa0afd3..a6b55929882 100644
--- a/Build/source/texk/web2c/xetexdir/XeTeX_ext.c
+++ b/Build/source/texk/web2c/xetexdir/XeTeX_ext.c
@@ -2243,7 +2243,7 @@ measure_native_node(void* pNode, int use_glyph_metrics)
realGlyphCount = 0;
for (i = 0; i < nGlyphs; ++i) {
if (glyphs[i] < 0xfffe) {
- float rhs = positions[2*i] + getGlyphWidth(getFont(engine), glyphs[i]);
+ float rhs = positions[2*i] + getGlyphWidthFromEngine(engine, glyphs[i]);
if (rhs > maxRhs)
maxRhs = rhs;
glyphIDs[realGlyphCount] = glyphs[i];
diff --git a/Build/source/texk/web2c/xetexdir/xetex.ch b/Build/source/texk/web2c/xetexdir/xetex.ch
index a8149933ef5..e5911c59117 100644
--- a/Build/source/texk/web2c/xetexdir/xetex.ch
+++ b/Build/source/texk/web2c/xetexdir/xetex.ch
@@ -65,7 +65,7 @@ authorization from SIL International.
@d XeTeX_version=0
@d XeTeX_revision==".9994"
-@d XeTeX_version_string=='-0.9994.0' {current \XeTeX\ version}
+@d XeTeX_version_string=='-0.9994.1' {current \XeTeX\ version}
@z
@x