URI: 
       keep some glyph modes for the cursor - st - simple terminal
  HTML git clone https://git.parazyd.org/st
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit f2bfd513b14a2aa27796670235557a550b4189db
   DIR parent e7ed326d2e914a57017c9f34459824614075519b
  HTML Author: Nils Reuße <n.reusse@hxgn.net>
       Date:   Wed, 29 Mar 2017 18:34:12 +0200
       
       keep some glyph modes for the cursor
       
       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.
       
       [1] http://git.suckless.org/st/tree/st.c#n3963
       [2] http://i.imgur.com/R2yCEaC.png
       
       Diffstat:
         M x.c                                 |       3 +++
       
       1 file changed, 3 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/x.c b/x.c
       @@ -1266,6 +1266,7 @@ xdrawcursor(void)
                Glyph g = {' ', ATTR_NULL, defaultbg, defaultcs}, og;
                int ena_sel = sel.ob.x != -1 && sel.alt == IS_SET(MODE_ALTSCREEN);
                Color drawcol;
       +        unsigned attr;
        
                LIMIT(oldx, 0, term.col-1);
                LIMIT(oldy, 0, term.row-1);
       @@ -1285,6 +1286,8 @@ xdrawcursor(void)
                xdrawglyph(og, oldx, oldy);
        
                g.u = term.line[term.c.y][term.c.x].u;
       +        attr = ATTR_BOLD | ATTR_ITALIC | ATTR_UNDERLINE | ATTR_STRUCK;
       +        g.mode |= term.line[term.c.y][term.c.x].mode & attr;
        
                /*
                 * Select the right color for the right mode.