On Feb 14, 2010, at 8:31 AM, Francis Devereux wrote: > On 17 Oct 2009, at 13:16, Adrian Robert wrote: > >> http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=4736 > > I've also discovered that if I build Emacs as a 32 bit binary on 10.6 (the default is 64 bit on 10.6) with the following command then ns-antialias-text works. The commands I used to build are: > LDFLAGS="-arch i386" CFLAGS="-g -O2 -arch i386 -march=core2" ../trunk/configure --build=i386-apple-darwin10.2.0 --with-ns && make -j2 && make install ns_antialias_text is wrongly declared as an int instead of Lisp_Object, and the nonstandard pointer comparison to Qnil helped cover it up, I suppose. That also explains why it happened to work on 32bit. Try the patch below. diff --git a/src/nsfont.m b/src/nsfont.m index 934fefa..1b157ce 100644 --- a/src/nsfont.m +++ b/src/nsfont.m @@ -50,7 +50,7 @@ extern Lisp_Object Qnormal, Qbold, Qitalic, Qcondensed, Qexpanded; static Lisp_Object Vns_reg_to_script; static Lisp_Object Qapple, Qroman, Qmedium; extern Lisp_Object Qappend; -extern int ns_antialias_text; +extern Lisp_Object ns_antialias_text; extern float ns_antialias_threshold; extern int ns_tmp_flags; extern struct nsfont_info *ns_tmp_font; @@ -1243,7 +1245,7 @@ nsfont_draw (struct glyph_string *s, int from, int to, int x, int y, CGContextSetFont (gcontext, font->cgfont); CGContextSetFontSize (gcontext, font->size); - if (ns_antialias_text == Qnil || font->size <= ns_antialias_threshold) + if (NILP (ns_antialias_text) || font->size <= ns_antialias_threshold) CGContextSetShouldAntialias (gcontext, 0); else CGContextSetShouldAntialias (gcontext, 1);