Menu

#2307 \pdfsetmatrix is broken for pdfTeX 64bit version

attic
2016-04-20
2014-02-21
No

The following document fails with pdfTeX 3.1415926-2.5-1.40.14 (MiKTeX 2.9), 64bit version:

\documentclass{article}
\begin{document}
Hello
\pdfsetmatrix{2.0 0.0 0.0 2.0}
World
\end{document}

It works without dots: \pdfsetmatrix{2 0 0 2}.

The correponding source code lines come from pdftexdir/utils.c in function pdfsetmatrix:

typedef struct {
    double a;
    double b;
    double c;
    double d;
    double e;
    double f;
} matrix_entry;
...
integer pdfsetmatrix(poolpointer in, scaled cur_h, scaled cur_v)
{
    matrix_entry x, *y, *z;
    char dummy;

    if (page_mode) {
        if (sscanf((const char *) &strpool[in], " %lf %lf %lf %lf %c",
                   &x.a, &x.b, &x.c, &x.d, &dummy) != 4) {
            return 0; /* failure */
        }
    ...
}

It seems that sscanf behaves differently for the 64bit version.

The bug was found by Acrofales (see TeX.SX question (tex.stackexchange.com). In my answer I gave an analysis as far as I could go without having the "right" OS.

Discussion

  • Christian Schenk

    • assigned_to: Christian Schenk
     
  • Christian Schenk

    • Status: open --> attic
     
MongoDB Logo MongoDB