--- rxvt-unicode/src/rxvtfont.C 2010/12/30 17:28:29 1.171 +++ rxvt-unicode/src/rxvtfont.C 2011/02/21 07:41:03 1.178 @@ -1,7 +1,7 @@ /*----------------------------------------------------------------------* * File: rxvtfont.C *----------------------------------------------------------------------* - * Copyright (c) 2003-2008 Marc Lehmann + * Copyright (c) 2003-2008 Marc Lehmann * - original version. * * This program is free software; you can redistribute it and/or modify @@ -243,7 +243,7 @@ Picture dst; # ifdef HAVE_BG_PIXMAP - if (term->bgPixmap.pixmap + if (term->bg_pixmap && !term->pix_colors[color].is_opaque () && ((dst = XftDrawPicture (d)))) { @@ -720,12 +720,12 @@ if (!f) return false; - char *new_name = get_property (f, XA_FONT, name); + char *new_name = get_property (f, XA_FONT, 0); if (new_name) set_name (new_name); else - rxvt_warn ("font '%s' has no FONT property, continuing without.", name); + rxvt_warn ("font '%s' has no FONT property, continuing without.\n", name); XFreeFont (disp, f); f = 0; @@ -969,6 +969,8 @@ bool rxvt_font_x11::has_char (unicode_t unicode, const rxvt_fontprop *prop, bool &careful) const { + careful = false; + uint32_t ch = FROM_UNICODE (cs, unicode); if (ch == NOCHAR) @@ -1220,10 +1222,12 @@ for (;;) { - f = XftFontOpenPattern (disp, FcPatternDuplicate (match)); + p = FcPatternDuplicate (match); + f = XftFontOpenPattern (disp, p); if (!f) { + FcPatternDestroy (p); success = false; break; } @@ -1406,22 +1410,22 @@ #ifdef HAVE_BG_PIXMAP Picture dst = 0; // the only assignment is done conditionally in the following if condition - if (term->bgPixmap.pixmap + if (term->bg_pixmap && (bg == Color_transparent || bg == Color_bg || (bg >= 0 && !term->pix_colors[bg].is_opaque () && ((dst = XftDrawPicture (d2)))))) { int src_x = x, src_y = y; - if (term->bgPixmap.flags & bgPixmap_t::isTransparent) + if (term->bg_flags & rxvt_term::BG_IS_TRANSPARENT) { src_x += term->window_vt_x; src_y += term->window_vt_y; } - if (term->bgPixmap.pmap_width >= src_x + w - && term->bgPixmap.pmap_height >= src_y + h) + if (term->bg_pmap_width >= src_x + w + && term->bg_pmap_height >= src_y + h) { - XCopyArea (disp, term->bgPixmap.pixmap, d2, gc, + XCopyArea (disp, term->bg_pixmap, d2, gc, src_x, src_y, w, h, 0, 0); } else @@ -1429,7 +1433,7 @@ XGCValues gcv; gcv.fill_style = FillTiled; - gcv.tile = term->bgPixmap.pixmap; + gcv.tile = term->bg_pixmap; gcv.ts_x_origin = -src_x; gcv.ts_y_origin = -src_y; @@ -1614,7 +1618,7 @@ push_font (new_font (buf, cs)); } else - rxvt_warn ("fontset element too long (>511 bytes), ignored."); + rxvt_warn ("fontset element too long (>511 bytes), ignored.\n"); desc = end + 1; }