--- rxvt-unicode/src/rxvtfont.C 2012/06/10 13:07:56 1.191 +++ rxvt-unicode/src/rxvtfont.C 2016/07/14 05:33:26 1.196 @@ -6,7 +6,7 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, @@ -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)))) @@ -936,7 +936,8 @@ if (!has_char (*t, &prop, careful)) continue; - XChar2b ch = { *t >> 8, *t }; + // the casts are needed in C++11 (see 8.5.1) + XChar2b ch = { (unsigned char)(*t >> 8), (unsigned char)*t }; XCharStruct g; int dir_ret, asc_ret, des_ret; @@ -1046,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; @@ -1410,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 @@ -1606,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, ',');