--- rxvt-unicode/src/defaultfont.C 2003/11/27 20:09:00 1.3 +++ rxvt-unicode/src/defaultfont.C 2003/12/04 00:43:26 1.5 @@ -272,14 +272,11 @@ { const char *p = linedraw_cmds[t - 0x2500]; - int x0 = x, x1 = x + (r->TermWin.fwidth - 1) / 2, x2 = x + r->TermWin.fwidth - 1; - int y0 = y, y1 = y + (r->TermWin.fheight - 1) / 2, y2 = y + r->TermWin.fheight - 1; + int x0 = x, x1 = x + r->TermWin.fwidth / 2, x2 = x + r->TermWin.fwidth ; + int y0 = y, y1 = y + r->TermWin.fheight / 2, y2 = y + r->TermWin.fheight; XGCValues gcv; - gcv.cap_style = CapButt; - XChangeGC (DISPLAY, GC, GCCapStyle, &gcv); - while (*p) { switch (*p++) @@ -896,13 +893,15 @@ if (fonts[i]->loaded) return true; - if (fonts[i]->load (height)) - return fonts[i]->loaded = true; + fonts[i]->loaded = true; - delete fonts[i]; - fonts.erase (fonts.begin () + i); + if (!fonts[i]->load (height)) + { + fonts[i]->cs = CS_UNKNOWN; + return false; + } - return false; + return true; } void @@ -949,15 +948,10 @@ goto next_font; if (!realize_font (i)) - { - --i; - goto next_font; - } - - //printf ("added font %s for %04lx\n", f->name, unicode); + goto next_font; } - if (f->has_codepoint (unicode)) + if (f->cs != CS_UNKNOWN && f->has_codepoint (unicode)) return i; next_font: @@ -965,6 +959,7 @@ { fonts.push_back (new_font (fallback->name, fallback->cs)); fallback++; + i = 0; } }