On Tue, Jan 04, 2011 at 11:54:44AM -0800, Paul Vojta wrote:
> On Tue, Jan 04, 2011 at 12:36:10AM -0800, Paul Vojta wrote:
> > On Tue, Jan 04, 2011 at 12:14:35AM -0800, Paul Vojta wrote:
> > > On Sat, Jan 01, 2011 at 10:48:46PM +0100, Ulrik Vieth wrote:
> > > > On 12/27/2010 08:37 AM, R (Chandra) Chandrasekhar wrote:
> > > > >
> > > > > A xetex bug report has been filed at:
> > > > >
> > > > > https://sourceforge.net/tracker/?func=detail&aid=3145819&group_id=194926&atid=951385
> > > > 
> > > > I have verified the issue on my machine, where I have both a 32-bit
> > > > and 64-bit binary of xetex running on a 64-bit Linux system.
> > > > 
> > > > With the same texmf tree (same versions of macros and fonts), I get 
> > > > correct results on 32bit and incorrect results on 64bit binaries.
> > > 
> > > If I uncomment line 196 in xetexdir/XeTeXOTMath.cpp, then it prints out
> > > 
> > >   math_ex(25, 8) returns 0.708
> > > 
> > > on a 32-bit system, and
> > > 
> > >   math_ex(25, 8) returns 0.000
> > > 
> > > on a 64-bit system.
> > > 
> > > --Paul Vojta, vo...@math.berkeley.edu
> > 
> > One more thing:
> > 
> > I found that this is occurring because the test on line 83 of
> > xetexdir/XeTeXOTMath.cpp is failing on 64-bit machines.  This line is the
> > line
> > 
> >     if (fontarea[f] == OTGR_FONT_FLAG) {
> > 
> > in getotmathconstant().
> > 
> > On 64-bit machines, fontarea[f] == 0, instead of OTGR_FONT_FLAG(=65534).
> > 
> > --Paul Vojta, vo...@math.berkeley.edu
> 
> Bingo!
> 
> In xetex0.c, sizeof *fontarea == 4.  In xetexdir/XeTeXOTMath.cpp, it's 8.
> 
> Sounds like a header file problem.
> 
> --Paul Vojta, vo...@math.berkeley.edu

I've attached a patch that fixes the problem, seems not to break anything
else, and seems reasonable.

It also fixes:

        problems with segfaults with delimiters (xe-test-delim.tex)

        problems with incorrect rendering of radicals (xe-test-sqrt.tex)

        rendering problems with \overleftarrow in the expression
          \[\alpha+\varpi\Longrightarrow\uplus\overleftarrow{abc}\]

The files xe-test-*.tex were in an email from Ulrik Vieth dated Wed,
14 Jul 2010 23:59:35 +0200.  I'm not sure where the third example came from.

--Paul Vojta, vo...@math.berkeley.edu
--- xetexdir/XeTeX_ext.h.orig	2010-06-05 00:28:22.000000000 -0700
+++ xetexdir/XeTeX_ext.h	2011-01-04 16:28:39.122444001 -0800
@@ -33,6 +33,7 @@
 #ifndef __XETEXEXT_H
 #define __XETEXEXT_H
 
+#include <w2c/c-auto.h>	/* needed for SIZEOF_LONG and NO_DUMP_SHARE */
 /***** copied from TeX/texk/web2c/config.h -- difficult to include in C++ source files ******/
 #ifndef INTEGER_TYPE
 

--------------------------------------------------
Subscriptions, Archive, and List information, etc.:
  http://tug.org/mailman/listinfo/xetex

Reply via email to