--- rxvt-unicode/src/rxvtfont.C 2007/11/25 11:23:18 1.125 +++ rxvt-unicode/src/rxvtfont.C 2008/01/23 05:59:29 1.130 @@ -21,7 +21,6 @@ #include "../config.h" #include "rxvt.h" -#include "rxvtlib.h" #include "rxvtutil.h" #include "rxvtfont.h" @@ -634,7 +633,7 @@ { size_t len = field - name; *ptr = (char *)malloc (len + strlen (replace) + strlen (end) + 1); - strncpy (*ptr, name, len); + memcpy (*ptr, name, len); strcpy (*ptr + len, replace); strcat (*ptr, end); @@ -1299,15 +1298,15 @@ int w = term->fwidth * len; int h = term->fheight; - /* TODO: this logic needs some more thinking, since we no longer do pseudo-transparency. + /* * 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 = true + bool buffered = bg >= Color_transparent; #ifdef FORCE_UNBUFFERED_XFT - && bg >= 0 + buffered = false; #endif - ; + // cut trailing spaces while (len && text [len - 1] == ' ') len--; @@ -1343,9 +1342,9 @@ if (buffered) { - bool back_rendered = false; if (ep != enc) { + bool back_rendered = false; rxvt_drawable &d2 = d.screen->scratch_drawable (w, h); #ifdef HAVE_BG_PIXMAP @@ -1353,12 +1352,12 @@ { Picture dst = 0; - if (bg >= 0 && term->pix_colors[bg].c.color.alpha < 0x0ff00) + if (bg >= 0 && term->pix_colors[bg].is_opaque ()) dst = XftDrawPicture (d2); - if (bg < 0 || dst != 0) + if (dst) { - int src_x = x, src_y = y ; + int src_x = x, src_y = y; if (term->bgPixmap.is_parentOrigin ()) { @@ -1535,7 +1534,7 @@ if (end - desc < 511) { - strncpy (buf, desc, end - desc); + memcpy (buf, desc, end - desc); buf[end - desc] = 0; fonts.push_back (new_font (buf, cs));