--- rxvt-unicode/src/rxvtfont.C 2008/01/23 15:00:21 1.143 +++ rxvt-unicode/src/rxvtfont.C 2009/03/29 13:36:03 1.150 @@ -1,7 +1,7 @@ /*----------------------------------------------------------------------* * File: rxvtfont.C *----------------------------------------------------------------------* - * Copyright (c) 2003-2006 Marc Lehmann + * Copyright (c) 2003-2008 Marc Lehmann * - original version. * * This program is free software; you can redistribute it and/or modify @@ -218,13 +218,13 @@ } void -rxvt_font::set_name (char *name) +rxvt_font::set_name (char *name_) { - if (this->name == name) + if (name == name_) return; - if (this->name) free (this->name); // let the compiler optimize - this->name = name; + if (name) free (name); // let the compiler optimize + name = name_; } void @@ -1135,7 +1135,7 @@ #if 0 // clipping unfortunately destroys our precious double-width-characters // clip width, we can't do better, or can we? if (FcPatternGet (p, FC_CHAR_WIDTH, 0, &v) != FcResultMatch) - FcPatternAddInteger (p, FC_CHAR_WIDTH, prop->width); + FcPatternAddInteger (p, FC_CHAR_WIDTH, prop.width); #endif if (FcPatternGet (p, FC_MINSPACE, 0, &v) != FcResultMatch) @@ -1298,14 +1298,8 @@ int w = term->fwidth * len; int h = term->fheight; - /* - * Maybe make buffering into a resource flag? Compile time option doesn't seems like a - * good idea from the perspective of packaging for wide variety of user configs. - */ - bool buffered = bg >= Color_transparent; -#ifdef FORCE_UNBUFFERED_XFT - buffered = false; -#endif + bool buffered = bg >= Color_transparent + && term->option (Opt_buffered); // cut trailing spaces while (len && text [len - 1] == ' ') @@ -1347,7 +1341,7 @@ rxvt_drawable &d2 = d.screen->scratch_drawable (w, h); #ifdef HAVE_BG_PIXMAP - Picture dst = 0; + Picture dst = 0; // the only assignment is done conditionally in the following if condition if (term->bgPixmap.pixmap && (bg == Color_transparent || bg == Color_bg @@ -1390,6 +1384,7 @@ { Picture solid_color_pict = XftDrawSrcPicture (d2, &term->pix_colors[bg].c); + // dst can only be set when bg >= 0 XRenderComposite (disp, PictOpOver, solid_color_pict, None, dst, 0, 0, 0, 0, 0, 0, w, h); } }