5.6
- R_SB_RXVT bitset value was 0, so rxvt scrollbar was initialised
- every time (original rxvt also affected). Reported by Jasmin
- Buchert.
+ every time resulting in display errors (original rxvt also affected).
+ Reported by Jasmin Buchert.
+ - font names are now considered to be utf-8 encoded (xft apperently
+ uses this convention. X Core fonts might not, but it should be rare).
+ Affects display in iso14755 box.
5.5 Sat Apr 23 22:31:36 CEST 2005
- re-enabled modifer state matching as in 5.3, but implement
{
rxvt_fontset *fs = FONTSET (r);
rxvt_font *f = (*fs)[fs->find_font (ch)];
- wchar_t *chr, *alloc, ch2;
+ wchar_t *chr, *alloc, ch2, *fname;
int len;
+ fname = rxvt_utf8towcs (f->name);
+
#if ENABLE_COMBINING
if (IS_COMPOSE (ch))
{
len = 1;
}
- int width = strlen (f->name);
+ int width = wcswidth (fname, wcslen (fname));
scr_overlay_new (0, -1, width < 8+5 ? 8+5 : width, len + 1);
scr_overlay_set (12, y, NOCHAR, r);
}
- scr_overlay_set (0, len, f->name);
+ scr_overlay_set (0, len, fname);
+
+ free (fname);
#if ENABLE_COMBINING
if (alloc)
text_t text,
rend_t rend = OVERLAY_RSTYLE);
void scr_overlay_set (int x, int y, const char *s);
+ void scr_overlay_set (int x, int y, const wchar_t *s);
#endif
vector<void *> allocated; // free these memory blocks with free()
scr_overlay_set (x++, y, *s++);
}
+void
+rxvt_term::scr_overlay_set (int x, int y, const wchar_t *s)
+{
+ while (*s)
+ {
+ text_t t = *s++;
+ int width = wcwidth (t);
+
+ while (width--)
+ {
+ scr_overlay_set (x++, y, t);
+ t = NOCHAR;
+ }
+ }
+}
+
void
rxvt_term::scr_swap_overlay ()
{