st currently does not keep any mode for the cursor that was active in the 
underlying glyph (e.g. italic text), the mode is always ATTR_NULL [1].  At [2] 
you can find a screenshot that shows the implications.  Other terminals (at 
least vte-based, such as XFCE-terminal) keep some modes for the cursor.  I find 
the current behaviour very disruptive, so here is a patch that keeps a few 
(arbitrarily chosen) modes for the cursor.

Any comments?

Thanks and king regards
Nils

[1] http://git.suckless.org/st/tree/st.c#n3963
[2] http://i.imgur.com/R2yCEaC.png


diff --git a/st.c b/st.c
index 708e7ae..f91545b 100644
--- a/st.c
+++ b/st.c
@@ -3998,6 +3998,8 @@ xdrawcursor(void)
        xdrawglyph(og, oldx, oldy);
 
        g.u = term.line[term.c.y][term.c.x].u;
+       ushort keep_mode = (ATTR_BOLD | ATTR_ITALIC | ATTR_UNDERLINE | 
ATTR_STRUCK);
+       g.mode |= (term.line[term.c.y][term.c.x].mode & keep_mode);
 
        /*
         * Select the right color for the right mode.

Reply via email to