* st + patches and config
       
   URI git clone git://git.codevoid.de/st-sdk
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 6353900e901d8e6ee4c28fb5d4d9d5418283af58
   DIR parent 2f52ba952674aeb5125a09f658fab05d35ad59ef
   URI Author: Stefan Hagen <sh+git[at]codevoid[dot]de>
       Date:   Wed, 27 May 2020 10:02:16 +0200
       
       update
       
       Diffstat:
         M config.h                            |      10 +++++-----
         M config.mk                           |      25 ++++++++++++++++---------
         A patches/st-anysize-0.8.1.diff       |     152 +++++++++++++++++++++++++++++++
         M st.info                             |       4 ++--
       
       4 files changed, 175 insertions(+), 16 deletions(-)
       ---
   DIR diff --git a/config.h b/config.h
       @@ -5,7 +5,7 @@
         *
         * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
         */
       -static char *font = "peep-12";
       +static char *font = "AnonymiceNerdFont-11";
        static int borderpx = 2;
        static int borderperc = 20;
        
       @@ -31,8 +31,8 @@ char *stty_args = "stty raw pass8 nl -echo -iexten -cstopb 38400";
        char *vtiden = "\033[?6c";
        
        /* Kerning / character bounding-box multipliers */
       -static float cwscale = 1;
       -static float chscale = 1;
       +static float cwscale = 1.1;
       +static float chscale = 1.1;
        
        /*
         * word delimiter string
       @@ -84,7 +84,7 @@ static int bellvolume = 0;
        
        /* default TERM value */
        // sorry, but this works perfectly compared to st-256color :(
       -char *termname = "st-256color";
       +char *termname = "xterm-256color";
        
        /*
         * spaces per tab
       @@ -127,7 +127,7 @@ static const char *colorname[] = {
        
                /* more colors can be added after 255 to use with DefaultXX */
                "#990000",
       -        "#181818",
       +        "#000000",
        };
        
        
   DIR diff --git a/config.mk b/config.mk
       @@ -1,5 +1,5 @@
        # st version
       -VERSION = 0.8.1
       +VERSION = 0.8.2
        
        # Customize below to fit your system
        
       @@ -10,19 +10,26 @@ MANPREFIX = $(PREFIX)/share/man
        X11INC = /usr/X11R6/include
        X11LIB = /usr/X11R6/lib
        
       +PKG_CONFIG = pkg-config
       +
        # includes and libs
        INCS = -I$(X11INC) \
       -       `pkg-config --cflags fontconfig` \
       -       `pkg-config --cflags freetype2`
       -LIBS = -L$(X11LIB) -lm -lX11 -lutil -lXft \
       -       `pkg-config --libs fontconfig` \
       -       `pkg-config --libs freetype2`
       +       `$(PKG_CONFIG) --cflags fontconfig` \
       +       `$(PKG_CONFIG) --cflags freetype2`
       +LIBS = -L$(X11LIB) -lm -lrt -lX11 -lutil -lXft \
       +       `$(PKG_CONFIG) --libs fontconfig` \
       +       `$(PKG_CONFIG) --libs freetype2`
        
        # flags
       -CPPFLAGS = -g -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=600
       -STCFLAGS = $(INCS) $(CPPFLAGS) $(CFLAGS)
       +STCPPFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=600
       +STCFLAGS = $(INCS) $(STCPPFLAGS) $(CPPFLAGS) $(CFLAGS)
        STLDFLAGS = $(LIBS) $(LDFLAGS)
        
       +# OpenBSD:
       +CPPFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=600 -D_BSD_SOURCE
       +LIBS = -L$(X11LIB) -lm -lX11 -lutil -lXft \
       +       `pkg-config --libs fontconfig` \
       +       `pkg-config --libs freetype2`
       +
        # compiler and linker
        # CC = c99
       -
   DIR diff --git a/patches/st-anysize-0.8.1.diff b/patches/st-anysize-0.8.1.diff
       @@ -0,0 +1,152 @@
       +diff --git a/x.c b/x.c
       +index 00cb6b1..8f87c0f 100644
       +--- a/x.c
       ++++ b/x.c
       +@@ -78,6 +78,7 @@ typedef XftGlyphFontSpec GlyphFontSpec;
       + typedef struct {
       +         int tw, th; /* tty width and height */
       +         int w, h; /* window width and height */
       ++        int hborderpx, vborderpx;
       +         int ch; /* char height */
       +         int cw; /* char width  */
       +         int mode; /* window state/mode flags */
       +@@ -311,7 +312,7 @@ zoomreset(const Arg *arg)
       + int
       + evcol(XEvent *e)
       + {
       +-        int x = e->xbutton.x - borderpx;
       ++        int x = e->xbutton.x - win.hborderpx;
       +         LIMIT(x, 0, win.tw - 1);
       +         return x / win.cw;
       + }
       +@@ -319,7 +320,7 @@ evcol(XEvent *e)
       + int
       + evrow(XEvent *e)
       + {
       +-        int y = e->xbutton.y - borderpx;
       ++        int y = e->xbutton.y - win.vborderpx;
       +         LIMIT(y, 0, win.th - 1);
       +         return y / win.ch;
       + }
       +@@ -675,6 +676,9 @@ cresize(int width, int height)
       +         col = MAX(1, col);
       +         row = MAX(1, row);
       + 
       ++        win.hborderpx = (win.w - col * win.cw) / 2;
       ++        win.vborderpx = (win.h - row * win.ch) / 2;
       ++
       +         tresize(col, row);
       +         xresize(col, row);
       +         ttyresize(win.tw, win.th);
       +@@ -793,8 +797,8 @@ xhints(void)
       +         sizeh->flags = PSize | PResizeInc | PBaseSize | PMinSize;
       +         sizeh->height = win.h;
       +         sizeh->width = win.w;
       +-        sizeh->height_inc = win.ch;
       +-        sizeh->width_inc = win.cw;
       ++        sizeh->height_inc = 1;
       ++        sizeh->width_inc = 1;
       +         sizeh->base_height = 2 * borderpx;
       +         sizeh->base_width = 2 * borderpx;
       +         sizeh->min_height = win.ch + 2 * borderpx;
       +@@ -1022,8 +1026,8 @@ xinit(int cols, int rows)
       +         xloadcols();
       + 
       +         /* adjust fixed window geometry */
       +-        win.w = 2 * borderpx + cols * win.cw;
       +-        win.h = 2 * borderpx + rows * win.ch;
       ++        win.w = 2 * win.hborderpx + cols * win.cw;
       ++        win.h = 2 * win.vborderpx + rows * win.ch;
       +         if (xw.gm & XNegative)
       +                 xw.l += DisplayWidth(xw.dpy, xw.scr) - win.w - 2;
       +         if (xw.gm & YNegative)
       +@@ -1123,7 +1127,7 @@ xinit(int cols, int rows)
       + int
       + xmakeglyphfontspecs(XftGlyphFontSpec *specs, const Glyph *glyphs, int len, int x, int y)
       + {
       +-        float winx = borderpx + x * win.cw, winy = borderpx + y * win.ch, xp, yp;
       ++        float winx = win.hborderpx + x * win.cw, winy = win.vborderpx + y * win.ch, xp, yp;
       +         ushort mode, prevmode = USHRT_MAX;
       +         Font *font = &dc.font;
       +         int frcflags = FRC_NORMAL;
       +@@ -1259,7 +1263,7 @@ void
       + xdrawglyphfontspecs(const XftGlyphFontSpec *specs, Glyph base, int len, int x, int y)
       + {
       +         int charlen = len * ((base.mode & ATTR_WIDE) ? 2 : 1);
       +-        int winx = borderpx + x * win.cw, winy = borderpx + y * win.ch,
       ++        int winx = win.hborderpx + x * win.cw, winy = win.vborderpx + y * win.ch,
       +             width = charlen * win.cw;
       +         Color *fg, *bg, *temp, revfg, revbg, truefg, truebg;
       +         XRenderColor colfg, colbg;
       +@@ -1349,17 +1353,17 @@ xdrawglyphfontspecs(const XftGlyphFontSpec *specs, Glyph base, int len, int x, i
       + 
       +         /* Intelligent cleaning up of the borders. */
       +         if (x == 0) {
       +-                xclear(0, (y == 0)? 0 : winy, borderpx,
       ++                xclear(0, (y == 0)? 0 : winy, win.vborderpx,
       +                         winy + win.ch +
       +-                        ((winy + win.ch >= borderpx + win.th)? win.h : 0));
       ++                        ((winy + win.ch >= win.vborderpx + win.th)? win.h : 0));
       +         }
       +-        if (winx + width >= borderpx + win.tw) {
       ++        if (winx + width >= win.hborderpx + win.tw) {
       +                 xclear(winx + width, (y == 0)? 0 : winy, win.w,
       +-                        ((winy + win.ch >= borderpx + win.th)? win.h : (winy + win.ch)));
       ++                        ((winy + win.ch >= win.vborderpx + win.th)? win.h : (winy + win.ch)));
       +         }
       +         if (y == 0)
       +-                xclear(winx, 0, winx + width, borderpx);
       +-        if (winy + win.ch >= borderpx + win.th)
       ++                xclear(winx, 0, winx + width, win.hborderpx);
       ++        if (winy + win.ch >= win.vborderpx + win.th)
       +                 xclear(winx, winy + win.ch, winx + width, win.h);
       + 
       +         /* Clean up the region we want to draw to. */
       +@@ -1452,35 +1456,35 @@ xdrawcursor(int cx, int cy, Glyph g, int ox, int oy, Glyph og)
       +                 case 3: /* Blinking Underline */
       +                 case 4: /* Steady Underline */
       +                         XftDrawRect(xw.draw, &drawcol,
       +-                                        borderpx + cx * win.cw,
       +-                                        borderpx + (cy + 1) * win.ch - \
       ++                                        win.hborderpx + cx * win.cw,
       ++                                        win.vborderpx + (cy + 1) * win.ch - \
       +                                                 cursorthickness,
       +                                         win.cw, cursorthickness);
       +                         break;
       +                 case 5: /* Blinking bar */
       +                 case 6: /* Steady bar */
       +                         XftDrawRect(xw.draw, &drawcol,
       +-                                        borderpx + cx * win.cw,
       +-                                        borderpx + cy * win.ch,
       ++                                        win.hborderpx + cx * win.cw,
       ++                                        win.vborderpx + cy * win.ch,
       +                                         cursorthickness, win.ch);
       +                         break;
       +                 }
       +         } else {
       +                 XftDrawRect(xw.draw, &drawcol,
       +-                                borderpx + cx * win.cw,
       +-                                borderpx + cy * win.ch,
       ++                                win.hborderpx + cx * win.cw,
       ++                                win.vborderpx + cy * win.ch,
       +                                 win.cw - 1, 1);
       +                 XftDrawRect(xw.draw, &drawcol,
       +-                                borderpx + cx * win.cw,
       +-                                borderpx + cy * win.ch,
       ++                                win.hborderpx + cx * win.cw,
       ++                                win.vborderpx + cy * win.ch,
       +                                 1, win.ch - 1);
       +                 XftDrawRect(xw.draw, &drawcol,
       +-                                borderpx + (cx + 1) * win.cw - 1,
       +-                                borderpx + cy * win.ch,
       ++                                win.hborderpx + (cx + 1) * win.cw - 1,
       ++                                win.vborderpx + cy * win.ch,
       +                                 1, win.ch - 1);
       +                 XftDrawRect(xw.draw, &drawcol,
       +-                                borderpx + cx * win.cw,
       +-                                borderpx + (cy + 1) * win.ch - 1,
       ++                                win.hborderpx + cx * win.cw,
       ++                                win.vborderpx + (cy + 1) * win.ch - 1,
       +                                 win.cw, 1);
       +         }
       + }
   DIR diff --git a/st.info b/st.info
       @@ -189,10 +189,10 @@ st| simpleterm,
                rmxx=\E[29m,
                smxx=\E[9m,
        # tmux extensions, see TERMINFO EXTENSIONS in tmux(1)
       -        Se,
       -        Ss,
                Tc,
                Ms=\E]52;%p1%s;%p2%s\007,
       +        Se=\E[2 q,
       +        Ss=\E[%p1%d q,
        
        st-256color| simpleterm with 256 colors,
                use=st,