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.