summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/pdf/pdfglyph.w
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/pdf/pdfglyph.w')
-rw-r--r--Build/source/texk/web2c/luatexdir/pdf/pdfglyph.w20
1 files changed, 11 insertions, 9 deletions
diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfglyph.w b/Build/source/texk/web2c/luatexdir/pdf/pdfglyph.w
index ea2077f68b6..6eb6d9fc5b2 100644
--- a/Build/source/texk/web2c/luatexdir/pdf/pdfglyph.w
+++ b/Build/source/texk/web2c/luatexdir/pdf/pdfglyph.w
@@ -19,8 +19,8 @@
@ @c
static const char _svn_version[] =
- "$Id: pdfglyph.w 3584 2010-04-02 17:45:55Z hhenkel $"
- "$URL: http://foundry.supelec.fr/svn/luatex/branches/0.60.x/source/texk/web2c/luatexdir/pdf/pdfglyph.w $";
+ "$Id: pdfglyph.w 3703 2010-05-27 07:58:34Z taco $"
+ "$URL: http://foundry.supelec.fr/svn/luatex/tags/beta-0.60.2/source/texk/web2c/luatexdir/pdf/pdfglyph.w $";
#include "ptexlib.h"
@@ -107,13 +107,13 @@ static void print_tm(PDF pdf, pdffloat * tm)
}
@ @c
-static void set_textmatrix(PDF pdf, scaledpos pos)
+static void set_textmatrix(PDF pdf, scaledpos pos, boolean force)
{
boolean move;
pdfstructure *p = pdf->pstruct;
assert(is_textmode(p));
move = calc_pdfpos(p, pos);
- if (move == TRUE) {
+ if (force || move) {
print_tm(pdf, p->tm);
p->pdf.h.m = p->pdf_bt_pos.h.m + p->tm[4].m; /* Tm replaces */
p->pdf.v.m = p->pdf_bt_pos.v.m + p->tm[5].m;
@@ -181,25 +181,27 @@ void pdf_place_glyph(PDF pdf, internal_font_number f, int c)
pdf_goto_textmode(pdf);
if (f != pdf->f_cur)
setup_fontparameters(pdf, f);
- if (p->f_pdf != p->f_pdf_cur || p->fs.m != p->fs_cur.m)
+ if (p->f_pdf != p->f_pdf_cur || p->fs.m != p->fs_cur.m) {
set_font(pdf);
- set_textmatrix(pdf, pos);
+ set_textmatrix(pdf, pos, true); /* force Tm setting */
+ } else
+ set_textmatrix(pdf, pos, false);
begin_chararray(pdf);
}
assert(is_charmode(p) || is_chararraymode(p));
move = calc_pdfpos(p, pos);
- if (move == TRUE) {
+ if (move) {
if ((p->wmode == WMODE_H
&& (p->pdf_bt_pos.v.m + p->tm[5].m) != p->pdf.v.m)
|| (p->wmode == WMODE_V
&& (p->pdf_bt_pos.h.m + p->tm[4].m) != p->pdf.h.m)
|| abs(p->tj_delta.m) >= 1000000) {
pdf_goto_textmode(pdf);
- set_textmatrix(pdf, pos);
+ set_textmatrix(pdf, pos, false);
begin_chararray(pdf);
move = calc_pdfpos(p, pos);
}
- if (move == TRUE) {
+ if (move) {
assert((p->wmode == WMODE_H
&& (p->pdf_bt_pos.v.m + p->tm[5].m) == p->pdf.v.m)
|| (p->wmode == WMODE_V