--- rxvt-unicode/src/rxvtfont.C 2014/11/07 13:45:55 1.193 +++ rxvt-unicode/src/rxvtfont.C 2020/01/20 09:35:17 1.197 @@ -241,7 +241,7 @@ #if XFT Picture dst; -# ifdef HAVE_BG_PIXMAP +# ifdef HAVE_IMG if (term->bg_img && !term->pix_colors[color].is_opaque () && ((dst = XftDrawPicture (d)))) @@ -1047,7 +1047,8 @@ bool slow = this->slow || width != term->fwidth - || height != term->fheight; + || height != term->fheight + || ascent != f->ascent; int base = ascent; // sorry, incorrect: term->fbase; @@ -1411,7 +1412,7 @@ { rxvt_drawable &d2 = d.screen->scratch_drawable (w, h); -#ifdef HAVE_BG_PIXMAP +#ifdef HAVE_IMG Picture dst = 0; // the only assignment is done conditionally in the following if condition if (term->bg_img @@ -1607,7 +1608,7 @@ rxvt_warn ("unknown parameter '%s' in font specification, skipping.\n", spec); desc++; - while (*desc <= ' ') desc++; + while (*desc <= ' ' && *desc) desc++; } end = strchr (desc, ','); @@ -1735,6 +1736,7 @@ // TODO: this is a real resource hog, xft takes ages(?) #if XFT && USE_SLOW_LOOKUP // grab the first xft font that seems suitable + // TOOD: should go first for cellchar (spacing 110) then mono, then else FcPattern *p = FcPatternCreate (); FcCharSet *s = FcCharSetCreate ();