From 3731dc85cf732007af38e8884954b7389f5f06a2 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 27 Dec 2005 01:25:42 +0000 Subject: [PATCH] *** empty log message *** --- Changes | 3 ++- src/command.C | 20 ++++++++++++++++++-- src/screen.C | 4 ++-- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/Changes b/Changes index 56e8faea..970a1957 100644 --- a/Changes +++ b/Changes @@ -11,7 +11,6 @@ WISH: OnTheSpot editing, or maybe switch to miiiiiiif WISH: just for fun, do shade and tint with XRender. 6.1 -TODO: is14755 feedback for all redn_t attributes TODO: trailing spaces rmeoval for rect selections - update iso8859-7 table (euro and drachma round-trip et al.). - fix a crash when the selection scrolls out of the scrollback @@ -20,6 +19,8 @@ TODO: trailing spaces rmeoval for rect selections not drawn correctly. - lines newly scrolled in were not initialized properly, leading to extremely long lines and (hopefully) some segfaults. + - iso14755 overlay position was wrong. + - iso14755 overlay now displays rendition info, too. 6.0 Sat Dec 24 13:58:56 CET 2005 - make it compile without SMART_RESIZE again. diff --git a/src/command.C b/src/command.C index 76eb690c..a2b67f7f 100644 --- a/src/command.C +++ b/src/command.C @@ -187,9 +187,24 @@ rxvt_term::iso14755_51 (unicode_t ch, rend_t r) len = 1; } + char attr[80]; // plenty + + sprintf (attr, "%08x = fg %d bg %d%s%s%s%s%s%s", + (int)r, + GET_FGCOLOR (r), GET_BGCOLOR (r), + r & RS_Bold ? " bold" : "", + r & RS_Italic ? " italic" : "", + r & RS_Blink ? " blink" : "", + r & RS_RVid ? " rvid" : "", + r & RS_Uline ? " uline" : "", + r & RS_Careful ? " careful" : ""); + int width = wcswidth (fname, wcslen (fname)); - scr_overlay_new (0, -1, width < 8+5 ? 8+5 : width, len + 1); + max_it (width, 8+5); // for char + hey + max_it (width, strlen (attr)); + + scr_overlay_new (0, -1, width, len + 2); r = SET_STYLE (OVERLAY_RSTYLE, GET_STYLE (r)); @@ -210,7 +225,8 @@ rxvt_term::iso14755_51 (unicode_t ch, rend_t r) scr_overlay_set (12, y, NOCHAR, r); } - scr_overlay_set (0, len, fname); + scr_overlay_set (0, len , attr); + scr_overlay_set (0, len + 1, fname); free (fname); diff --git a/src/screen.C b/src/screen.C index 6823907a..6ba144b8 100644 --- a/src/screen.C +++ b/src/screen.C @@ -3678,8 +3678,8 @@ rxvt_term::scr_swap_overlay () text_t *t1 = ov_text[y]; rend_t *r1 = ov_rend[y]; - text_t *t2 = ROW(y - view_start).t + ov_x; - rend_t *r2 = ROW(y - view_start).r + ov_x; + text_t *t2 = ROW(y + ov_y - view_start).t + ov_x; + rend_t *r2 = ROW(y + ov_y - view_start).r + ov_x; for (int x = ov_w; x--; ) { -- 2.34.1