it* st + patches and config Err codevoid.de 70 i Err codevoid.de 70 hgit clone git://git.codevoid.de/st-sdk URL:git://git.codevoid.de/st-sdk codevoid.de 70 1Log /git/st-sdk/log.gph codevoid.de 70 1Files /git/st-sdk/files.gph codevoid.de 70 1Refs /git/st-sdk/refs.gph codevoid.de 70 1README /git/st-sdk/file/README.gph codevoid.de 70 1LICENSE /git/st-sdk/file/LICENSE.gph codevoid.de 70 i--- Err codevoid.de 70 1commit 9ff63b5658193fbd8be5d78135d1c42dd6ca5866 /git/st-sdk/commit/9ff63b5658193fbd8be5d78135d1c42dd6ca5866.gph codevoid.de 70 1parent 6353900e901d8e6ee4c28fb5d4d9d5418283af58 /git/st-sdk/commit/6353900e901d8e6ee4c28fb5d4d9d5418283af58.gph codevoid.de 70 hAuthor: c0dev0id URL:mailto:sh+github[at]codevoid[dot]de codevoid.de 70 iDate: Tue, 1 Dec 2020 08:17:44 +0100 Err codevoid.de 70 i Err codevoid.de 70 iRework ST version and patchset Err codevoid.de 70 i Err codevoid.de 70 iDiffstat: Err codevoid.de 70 i M FAQ | 109 +++++++++++++++++++++++++++---- Err codevoid.de 70 i M LICENSE | 2 +- Err codevoid.de 70 i M Makefile | 5 ++--- Err codevoid.de 70 i M config.def.h | 71 ++++++++++++++----------------- Err codevoid.de 70 i M config.h | 151 ++++++++++++++----------------- Err codevoid.de 70 i M config.mk | 6 +++--- Err codevoid.de 70 i D patches/st-anysize-0.8.1.diff | 152 ------------------------------- Err codevoid.de 70 i D patches/st-boxdraw_v2-0.8.2.diff | 598 ------------------------------- Err codevoid.de 70 i D patches/st-clipboard-20180309-c5ba… | 13 ------------- Err codevoid.de 70 i D patches/st-copyurl-20180427-70b705… | 139 ------------------------------ Err codevoid.de 70 i D patches/st-disable-bold-italic-fon… | 70 ------------------------------- Err codevoid.de 70 i D patches/st-openclipboard-20180525-… | 73 ------------------------------- Err codevoid.de 70 i D patches/st-relativeborder-20171207… | 51 ------------------------------- Err codevoid.de 70 i D patches/st-scrollback-0.8.diff | 348 ------------------------------- Err codevoid.de 70 i A patches/st-scrollback-20200419-72e… | 351 +++++++++++++++++++++++++++++++ Err codevoid.de 70 i D patches/st-scrollback-mouse-0.8.di… | 71 ------------------------------- Err codevoid.de 70 i D patches/st-vertcenter-20180320-6ac… | 51 ------------------------------- Err codevoid.de 70 i A patches/st-w3m-0.8.3.diff | 42 +++++++++++++++++++++++++++++++ Err codevoid.de 70 i M st.1 | 7 ++----- Err codevoid.de 70 i M st.c | 345 +++++++++++-------------------- Err codevoid.de 70 i M st.h | 36 ++++++-------------------------- Err codevoid.de 70 i M st.info | 33 +++++++++++++++++++++++-------- Err codevoid.de 70 i M win.h | 2 ++ Err codevoid.de 70 i M x.c | 570 +++++++++++++++++-------------- Err codevoid.de 70 i Err codevoid.de 70 i24 files changed, 1063 insertions(+), 2233 deletions(-) Err codevoid.de 70 i--- Err codevoid.de 70 1diff --git a/FAQ b/FAQ /git/st-sdk/file/FAQ.gph codevoid.de 70 it@@ -1,6 +1,7 @@ Err codevoid.de 70 i ## Why does st not handle utmp entries? Err codevoid.de 70 i Err codevoid.de 70 i-Use the excellent tool of [utmp](http://git.suckless.org/utmp/) for this task. Err codevoid.de 70 i+Use the excellent tool of [utmp](https://git.suckless.org/utmp/) for this task. Err codevoid.de 70 i+ Err codevoid.de 70 i Err codevoid.de 70 i ## Some _random program_ complains that st is unknown/not recognised/unsupported/whatever! Err codevoid.de 70 i Err codevoid.de 70 it@@ -8,6 +9,7 @@ It means that st doesn’t have any terminfo entry on your system. Chances are Err codevoid.de 70 i you did not `make install`. If you just want to test it without installing it, Err codevoid.de 70 i you can manually run `tic -sx st.info`. Err codevoid.de 70 i Err codevoid.de 70 i+ Err codevoid.de 70 i ## Nothing works, and nothing is said about an unknown terminal! Err codevoid.de 70 i Err codevoid.de 70 i * Some programs just assume they’re running in xterm i.e. they don’t rely on Err codevoid.de 70 it@@ -15,19 +17,21 @@ you can manually run `tic -sx st.info`. Err codevoid.de 70 i * Some programs don’t complain about the lacking st description and default to Err codevoid.de 70 i another terminal. In that case see the question about terminfo. Err codevoid.de 70 i Err codevoid.de 70 i-## I get some weird glitches/visual bug on _random program_! Err codevoid.de 70 i- Err codevoid.de 70 i-Try launching it with a different TERM: $ TERM=xterm myapp. toe(1) will give Err codevoid.de 70 i-you a list of available terminals, but you’ll most likely switch between xterm, Err codevoid.de 70 i-st or st-256color. The default value for TERM can be changed in config.h Err codevoid.de 70 i-(TNAME). Err codevoid.de 70 i Err codevoid.de 70 i ## How do I scroll back up? Err codevoid.de 70 i Err codevoid.de 70 i-Using a terminal multiplexer. Err codevoid.de 70 i+* Using a terminal multiplexer. Err codevoid.de 70 i+ * `st -e tmux` using C-b [ Err codevoid.de 70 i+ * `st -e screen` using C-a ESC Err codevoid.de 70 i+* Using the excellent tool of [scroll](https://git.suckless.org/scroll/). Err codevoid.de 70 i+* Using the scrollback [patch](https://st.suckless.org/patches/scrollback/). Err codevoid.de 70 i+ Err codevoid.de 70 i+ Err codevoid.de 70 i+## I would like to have utmp and/or scroll functionality by default Err codevoid.de 70 i+ Err codevoid.de 70 i+You can add the absolute patch of both programs in your config.h Err codevoid.de 70 i+file. You only have to modify the value of utmp and scroll variables. Err codevoid.de 70 i Err codevoid.de 70 i-* `st -e tmux` using C-b [ Err codevoid.de 70 i-* `st -e screen` using C-a ESC Err codevoid.de 70 i Err codevoid.de 70 i ## Why doesn't the Del key work in some programs? Err codevoid.de 70 i Err codevoid.de 70 it@@ -84,12 +88,14 @@ If you are using zsh, then read the zsh FAQ Err codevoid.de 70 i Err codevoid.de 70 i Putting these lines into your .zshrc will fix the problems. Err codevoid.de 70 i Err codevoid.de 70 i+ Err codevoid.de 70 i ## How can I use meta in 8bit mode? Err codevoid.de 70 i Err codevoid.de 70 i St supports meta in 8bit mode, but the default terminfo entry doesn't Err codevoid.de 70 i use this capability. If you want it, you have to use the 'st-meta' value Err codevoid.de 70 i in TERM. Err codevoid.de 70 i Err codevoid.de 70 i+ Err codevoid.de 70 i ## I cannot compile st in OpenBSD Err codevoid.de 70 i Err codevoid.de 70 i OpenBSD lacks librt, despite it being mandatory in POSIX Err codevoid.de 70 it@@ -98,13 +104,14 @@ If you want to compile st for OpenBSD you have to remove -lrt from config.mk, an Err codevoid.de 70 i st will compile without any loss of functionality, because all the functions are Err codevoid.de 70 i included in libc on this platform. Err codevoid.de 70 i Err codevoid.de 70 i+ Err codevoid.de 70 i ## The Backspace Case Err codevoid.de 70 i Err codevoid.de 70 i St is emulating the Linux way of handling backspace being delete and delete being Err codevoid.de 70 i backspace. Err codevoid.de 70 i Err codevoid.de 70 i This is an issue that was discussed in suckless mailing list Err codevoid.de 70 i-. Here is why some old grumpy Err codevoid.de 70 i+. Here is why some old grumpy Err codevoid.de 70 i terminal users wants its backspace to be how he feels it: Err codevoid.de 70 i Err codevoid.de 70 i Well, I am going to comment why I want to change the behaviour Err codevoid.de 70 it@@ -159,9 +166,85 @@ terminal users wants its backspace to be how he feels it: Err codevoid.de 70 i [1] http://www.ibb.net/~anne/keyboard.html Err codevoid.de 70 i [2] http://www.tldp.org/HOWTO/Keyboard-and-Console-HOWTO-5.html Err codevoid.de 70 i Err codevoid.de 70 i+ Err codevoid.de 70 i ## But I really want the old grumpy behaviour of my terminal Err codevoid.de 70 i Err codevoid.de 70 i Apply [1]. Err codevoid.de 70 i Err codevoid.de 70 i-[1] http://st.suckless.org/patches/delkey Err codevoid.de 70 i- Err codevoid.de 70 i+[1] https://st.suckless.org/patches/delkey Err codevoid.de 70 i+ Err codevoid.de 70 i+ Err codevoid.de 70 i+## Why do images not work in st using the w3m image hack? Err codevoid.de 70 i+ Err codevoid.de 70 i+w3mimg uses a hack that draws an image on top of the terminal emulator Drawable Err codevoid.de 70 i+window. The hack relies on the terminal to use a single buffer to draw its Err codevoid.de 70 i+contents directly. Err codevoid.de 70 i+ Err codevoid.de 70 i+st uses double-buffered drawing so the image is quickly replaced and may show a Err codevoid.de 70 i+short flicker effect. Err codevoid.de 70 i+ Err codevoid.de 70 i+Below is a patch example to change st double-buffering to a single Drawable Err codevoid.de 70 i+buffer. Err codevoid.de 70 i+ Err codevoid.de 70 i+diff --git a/x.c b/x.c Err codevoid.de 70 i+--- a/x.c Err codevoid.de 70 i++++ b/x.c Err codevoid.de 70 i+@@ -732,10 +732,6 @@ xresize(int col, int row) Err codevoid.de 70 i+ win.tw = col * win.cw; Err codevoid.de 70 i+ win.th = row * win.ch; Err codevoid.de 70 i+ Err codevoid.de 70 i+- XFreePixmap(xw.dpy, xw.buf); Err codevoid.de 70 i+- xw.buf = XCreatePixmap(xw.dpy, xw.win, win.w, win.h, Err codevoid.de 70 i+- DefaultDepth(xw.dpy, xw.scr)); Err codevoid.de 70 i+- XftDrawChange(xw.draw, xw.buf); Err codevoid.de 70 i+ xclear(0, 0, win.w, win.h); Err codevoid.de 70 i+ Err codevoid.de 70 i+ /* resize to new width */ Err codevoid.de 70 i+@@ -1148,8 +1144,7 @@ xinit(int cols, int rows) Err codevoid.de 70 i+ gcvalues.graphics_exposures = False; Err codevoid.de 70 i+ dc.gc = XCreateGC(xw.dpy, parent, GCGraphicsExposures, Err codevoid.de 70 i+ &gcvalues); Err codevoid.de 70 i+- xw.buf = XCreatePixmap(xw.dpy, xw.win, win.w, win.h, Err codevoid.de 70 i+- DefaultDepth(xw.dpy, xw.scr)); Err codevoid.de 70 i++ xw.buf = xw.win; Err codevoid.de 70 i+ XSetForeground(xw.dpy, dc.gc, dc.col[defaultbg].pixel); Err codevoid.de 70 i+ XFillRectangle(xw.dpy, xw.buf, dc.gc, 0, 0, win.w, win.h); Err codevoid.de 70 i+ Err codevoid.de 70 i+@@ -1632,8 +1627,6 @@ xdrawline(Line line, int x1, int y1, int x2) Err codevoid.de 70 i+ void Err codevoid.de 70 i+ xfinishdraw(void) Err codevoid.de 70 i+ { Err codevoid.de 70 i+- XCopyArea(xw.dpy, xw.buf, xw.win, dc.gc, 0, 0, win.w, Err codevoid.de 70 i+- win.h, 0, 0); Err codevoid.de 70 i+ XSetForeground(xw.dpy, dc.gc, Err codevoid.de 70 i+ dc.col[IS_SET(MODE_REVERSE)? Err codevoid.de 70 i+ defaultfg : defaultbg].pixel); Err codevoid.de 70 i+ Err codevoid.de 70 i+ Err codevoid.de 70 i+## BadLength X error in Xft when trying to render emoji Err codevoid.de 70 i+ Err codevoid.de 70 i+Xft makes st crash when rendering color emojis with the following error: Err codevoid.de 70 i+ Err codevoid.de 70 i+"X Error of failed request: BadLength (poly request too large or internal Xlib length error)" Err codevoid.de 70 i+ Major opcode of failed request: 139 (RENDER) Err codevoid.de 70 i+ Minor opcode of failed request: 20 (RenderAddGlyphs) Err codevoid.de 70 i+ Serial number of failed request: 1595 Err codevoid.de 70 i+ Current serial number in output stream: 1818" Err codevoid.de 70 i+ Err codevoid.de 70 i+This is a known bug in Xft (not st) which happens on some platforms and Err codevoid.de 70 i+combination of particular fonts and fontconfig settings. Err codevoid.de 70 i+ Err codevoid.de 70 i+See also: Err codevoid.de 70 i+https://gitlab.freedesktop.org/xorg/lib/libxft/issues/6 Err codevoid.de 70 i+https://bugs.freedesktop.org/show_bug.cgi?id=107534 Err codevoid.de 70 i+https://bugzilla.redhat.com/show_bug.cgi?id=1498269 Err codevoid.de 70 i+ Err codevoid.de 70 i+The solution is to remove color emoji fonts or disable this in the fontconfig Err codevoid.de 70 i+XML configuration. As an ugly workaround (which may work only on newer Err codevoid.de 70 i+fontconfig versions (FC_COLOR)), the following code can be used to mask color Err codevoid.de 70 i+fonts: Err codevoid.de 70 i+ Err codevoid.de 70 i+ FcPatternAddBool(fcpattern, FC_COLOR, FcFalse); Err codevoid.de 70 i+ Err codevoid.de 70 i+Please don't bother reporting this bug to st, but notify the upstream Xft Err codevoid.de 70 i+developers about fixing this bug. Err codevoid.de 70 1diff --git a/LICENSE b/LICENSE /git/st-sdk/file/LICENSE.gph codevoid.de 70 it@@ -1,6 +1,6 @@ Err codevoid.de 70 i MIT/X Consortium License Err codevoid.de 70 i Err codevoid.de 70 i-© 2014-2018 Hiltjo Posthuma Err codevoid.de 70 i+© 2014-2020 Hiltjo Posthuma Err codevoid.de 70 i © 2018 Devin J. Pohly Err codevoid.de 70 i © 2014-2017 Quentin Rameau Err codevoid.de 70 i © 2009-2012 Aurélien APTEL Err codevoid.de 70 1diff --git a/Makefile b/Makefile /git/st-sdk/file/Makefile.gph codevoid.de 70 it@@ -4,7 +4,7 @@ Err codevoid.de 70 i Err codevoid.de 70 i include config.mk Err codevoid.de 70 i Err codevoid.de 70 i-SRC = st.c x.c boxdraw.c Err codevoid.de 70 i+SRC = st.c x.c Err codevoid.de 70 i OBJ = $(SRC:.c=.o) Err codevoid.de 70 i Err codevoid.de 70 i all: options st Err codevoid.de 70 it@@ -22,8 +22,7 @@ config.h: Err codevoid.de 70 i $(CC) $(STCFLAGS) -c $< Err codevoid.de 70 i Err codevoid.de 70 i st.o: config.h st.h win.h Err codevoid.de 70 i-x.o: arg.h st.h win.h Err codevoid.de 70 i-boxdraw.o: config.h st.h boxdraw_data.h Err codevoid.de 70 i+x.o: arg.h config.h st.h win.h Err codevoid.de 70 i Err codevoid.de 70 i $(OBJ): config.h config.mk Err codevoid.de 70 i Err codevoid.de 70 1diff --git a/config.def.h b/config.def.h /git/st-sdk/file/config.def.h.gph codevoid.de 70 it@@ -11,13 +11,15 @@ static int borderpx = 2; Err codevoid.de 70 i /* Err codevoid.de 70 i * What program is execed by st depends of these precedence rules: Err codevoid.de 70 i * 1: program passed with -e Err codevoid.de 70 i- * 2: utmp option Err codevoid.de 70 i+ * 2: scroll and/or utmp Err codevoid.de 70 i * 3: SHELL environment variable Err codevoid.de 70 i * 4: value of shell in /etc/passwd Err codevoid.de 70 i * 5: value of shell in config.h Err codevoid.de 70 i */ Err codevoid.de 70 i static char *shell = "/bin/sh"; Err codevoid.de 70 i char *utmp = NULL; Err codevoid.de 70 i+/* scroll program: to enable use a string like "scroll" */ Err codevoid.de 70 i+char *scroll = NULL; Err codevoid.de 70 i char *stty_args = "stty raw pass8 nl -echo -iexten -cstopb 38400"; Err codevoid.de 70 i Err codevoid.de 70 i /* identification sequence returned in DA and DECID */ Err codevoid.de 70 it@@ -30,9 +32,9 @@ static float chscale = 1.0; Err codevoid.de 70 i /* Err codevoid.de 70 i * word delimiter string Err codevoid.de 70 i * Err codevoid.de 70 i- * More advanced example: " `'\"()[]{}" Err codevoid.de 70 i+ * More advanced example: L" `'\"()[]{}" Err codevoid.de 70 i */ Err codevoid.de 70 i-char *worddelimiters = " "; Err codevoid.de 70 i+wchar_t *worddelimiters = L" "; Err codevoid.de 70 i Err codevoid.de 70 i /* selection timeouts (in milliseconds) */ Err codevoid.de 70 i static unsigned int doubleclicktimeout = 300; Err codevoid.de 70 it@@ -41,9 +43,18 @@ static unsigned int tripleclicktimeout = 600; Err codevoid.de 70 i /* alt screens */ Err codevoid.de 70 i int allowaltscreen = 1; Err codevoid.de 70 i Err codevoid.de 70 i-/* frames per second st should at maximum draw to the screen */ Err codevoid.de 70 i-static unsigned int xfps = 120; Err codevoid.de 70 i-static unsigned int actionfps = 30; Err codevoid.de 70 i+/* allow certain non-interactive (insecure) window operations such as: Err codevoid.de 70 i+ setting the clipboard text */ Err codevoid.de 70 i+int allowwindowops = 0; Err codevoid.de 70 i+ Err codevoid.de 70 i+/* Err codevoid.de 70 i+ * draw latency range in ms - from new content/keypress/etc until drawing. Err codevoid.de 70 i+ * within this range, st draws when content stops arriving (idle). mostly it's Err codevoid.de 70 i+ * near minlatency, but it waits longer for slow updates to avoid partial draw. Err codevoid.de 70 i+ * low minlatency will tear/flicker more, as it can "detect" idle too early. Err codevoid.de 70 i+ */ Err codevoid.de 70 i+static double minlatency = 8; Err codevoid.de 70 i+static double maxlatency = 33; Err codevoid.de 70 i Err codevoid.de 70 i /* Err codevoid.de 70 i * blinking timeout (set to 0 to disable blinking) for the terminal blinking Err codevoid.de 70 it@@ -57,18 +68,6 @@ static unsigned int blinktimeout = 800; Err codevoid.de 70 i static unsigned int cursorthickness = 2; Err codevoid.de 70 i Err codevoid.de 70 i /* Err codevoid.de 70 i- * 1: render most of the lines/blocks characters without using the font for Err codevoid.de 70 i- * perfect alignment between cells (U2500 - U259F except dashes/diagonals). Err codevoid.de 70 i- * Bold affects lines thickness if boxdraw_bold is not 0. Italic is ignored. Err codevoid.de 70 i- * 0: disable (render all U25XX glyphs normally from the font). Err codevoid.de 70 i- */ Err codevoid.de 70 i-const int boxdraw = 0; Err codevoid.de 70 i-const int boxdraw_bold = 0; Err codevoid.de 70 i- Err codevoid.de 70 i-/* braille (U28XX): 1: render as adjacent "pixels", 0: use font */ Err codevoid.de 70 i-const int boxdraw_braille = 0; Err codevoid.de 70 i- Err codevoid.de 70 i-/* Err codevoid.de 70 i * bell volume. It must be a value between -100 and 100. Use 0 for disabling Err codevoid.de 70 i * it Err codevoid.de 70 i */ Err codevoid.de 70 it@@ -163,19 +162,23 @@ static unsigned int mousebg = 0; Err codevoid.de 70 i static unsigned int defaultattr = 11; Err codevoid.de 70 i Err codevoid.de 70 i /* Err codevoid.de 70 i+ * Force mouse select/shortcuts while mask is active (when MODE_MOUSE is set). Err codevoid.de 70 i+ * Note that if you want to use ShiftMask with selmasks, set this to an other Err codevoid.de 70 i+ * modifier, set to 0 to not use it. Err codevoid.de 70 i+ */ Err codevoid.de 70 i+static uint forcemousemod = ShiftMask; Err codevoid.de 70 i+ Err codevoid.de 70 i+/* Err codevoid.de 70 i * Internal mouse shortcuts. Err codevoid.de 70 i * Beware that overloading Button1 will disable the selection. Err codevoid.de 70 i */ Err codevoid.de 70 i static MouseShortcut mshortcuts[] = { Err codevoid.de 70 i- /* button mask string */ Err codevoid.de 70 i- { Button4, XK_NO_MOD, "\031" }, Err codevoid.de 70 i- { Button5, XK_NO_MOD, "\005" }, Err codevoid.de 70 i-}; Err codevoid.de 70 i- Err codevoid.de 70 i-MouseKey mkeys[] = { Err codevoid.de 70 i- /* button mask function argument */ Err codevoid.de 70 i- { Button4, ShiftMask, kscrollup, {.i = 1} }, Err codevoid.de 70 i- { Button5, ShiftMask, kscrolldown, {.i = 1} }, Err codevoid.de 70 i+ /* mask button function argument release */ Err codevoid.de 70 i+ { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, Err codevoid.de 70 i+ { ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} }, Err codevoid.de 70 i+ { XK_ANY_MOD, Button4, ttysend, {.s = "\031"} }, Err codevoid.de 70 i+ { ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} }, Err codevoid.de 70 i+ { XK_ANY_MOD, Button5, ttysend, {.s = "\005"} }, Err codevoid.de 70 i }; Err codevoid.de 70 i Err codevoid.de 70 i /* Internal keyboard shortcuts. */ Err codevoid.de 70 it@@ -194,9 +197,8 @@ static Shortcut shortcuts[] = { Err codevoid.de 70 i { TERMMOD, XK_C, clipcopy, {.i = 0} }, Err codevoid.de 70 i { TERMMOD, XK_V, clippaste, {.i = 0} }, Err codevoid.de 70 i { TERMMOD, XK_Y, selpaste, {.i = 0} }, Err codevoid.de 70 i+ { ShiftMask, XK_Insert, selpaste, {.i = 0} }, Err codevoid.de 70 i { TERMMOD, XK_Num_Lock, numlock, {.i = 0} }, Err codevoid.de 70 i- { TERMMOD, XK_I, iso14755, {.i = 0} }, Err codevoid.de 70 i- { TERMMOD, XK_o, opencopied, {.v = "firefox --new-window"} }, Err codevoid.de 70 i { ShiftMask, XK_Page_Up, kscrollup, {.i = -1} }, Err codevoid.de 70 i { ShiftMask, XK_Page_Down, kscrolldown, {.i = -1} }, Err codevoid.de 70 i }; Err codevoid.de 70 it@@ -216,10 +218,6 @@ static Shortcut shortcuts[] = { Err codevoid.de 70 i * * 0: no value Err codevoid.de 70 i * * > 0: cursor application mode enabled Err codevoid.de 70 i * * < 0: cursor application mode disabled Err codevoid.de 70 i- * crlf value Err codevoid.de 70 i- * * 0: no value Err codevoid.de 70 i- * * > 0: crlf mode is enabled Err codevoid.de 70 i- * * < 0: crlf mode is disabled Err codevoid.de 70 i * Err codevoid.de 70 i * Be careful with the order of the definitions because st searches in Err codevoid.de 70 i * this table sequentially, so any XK_ANY_MOD must be in the last Err codevoid.de 70 it@@ -239,13 +237,6 @@ static KeySym mappedkeys[] = { -1 }; Err codevoid.de 70 i static uint ignoremod = Mod2Mask|XK_SWITCH_MOD; Err codevoid.de 70 i Err codevoid.de 70 i /* Err codevoid.de 70 i- * Override mouse-select while mask is active (when MODE_MOUSE is set). Err codevoid.de 70 i- * Note that if you want to use ShiftMask with selmasks, set this to an other Err codevoid.de 70 i- * modifier, set to 0 to not use it. Err codevoid.de 70 i- */ Err codevoid.de 70 i-static uint forceselmod = ShiftMask; Err codevoid.de 70 i- Err codevoid.de 70 i-/* Err codevoid.de 70 i * This is the huge key array which defines all compatibility to the Linux Err codevoid.de 70 i * world. Please decide about changes wisely. Err codevoid.de 70 i */ Err codevoid.de 70 1diff --git a/config.h b/config.h /git/st-sdk/file/config.h.gph codevoid.de 70 it@@ -5,41 +5,36 @@ Err codevoid.de 70 i * Err codevoid.de 70 i * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html Err codevoid.de 70 i */ Err codevoid.de 70 i-static char *font = "AnonymiceNerdFont-11"; Err codevoid.de 70 i+static char *font = "-monotype-cousine-medium-r-normal--30-217-100-100-m-0-iso10646-1"; Err codevoid.de 70 i static int borderpx = 2; Err codevoid.de 70 i-static int borderperc = 20; Err codevoid.de 70 i- Err codevoid.de 70 i-int disablebold = 1; Err codevoid.de 70 i-int disableitalic = 1; Err codevoid.de 70 i-int disableroman = 1; Err codevoid.de 70 i- Err codevoid.de 70 i-#define histsize 2000 Err codevoid.de 70 i Err codevoid.de 70 i /* Err codevoid.de 70 i * What program is execed by st depends of these precedence rules: Err codevoid.de 70 i * 1: program passed with -e Err codevoid.de 70 i- * 2: utmp option Err codevoid.de 70 i+ * 2: scroll and/or utmp Err codevoid.de 70 i * 3: SHELL environment variable Err codevoid.de 70 i * 4: value of shell in /etc/passwd Err codevoid.de 70 i * 5: value of shell in config.h Err codevoid.de 70 i */ Err codevoid.de 70 i-static char *shell = "/bin/sh"; Err codevoid.de 70 i+static char *shell = "/bin/ksh"; Err codevoid.de 70 i char *utmp = NULL; Err codevoid.de 70 i+/* scroll program: to enable use a string like "scroll" */ Err codevoid.de 70 i+char *scroll = NULL; Err codevoid.de 70 i char *stty_args = "stty raw pass8 nl -echo -iexten -cstopb 38400"; Err codevoid.de 70 i Err codevoid.de 70 i /* identification sequence returned in DA and DECID */ Err codevoid.de 70 i char *vtiden = "\033[?6c"; Err codevoid.de 70 i Err codevoid.de 70 i /* Kerning / character bounding-box multipliers */ Err codevoid.de 70 i-static float cwscale = 1.1; Err codevoid.de 70 i-static float chscale = 1.1; Err codevoid.de 70 i+static float cwscale = 1.0; Err codevoid.de 70 i+static float chscale = 1.0; Err codevoid.de 70 i Err codevoid.de 70 i /* Err codevoid.de 70 i * word delimiter string Err codevoid.de 70 i * Err codevoid.de 70 i- * More advanced example: " `'\"()[]{}" Err codevoid.de 70 i+ * More advanced example: L" `'\"()[]{}" Err codevoid.de 70 i */ Err codevoid.de 70 i-char *worddelimiters = " `'\"()[]{}¬<>"; Err codevoid.de 70 i+wchar_t *worddelimiters = L" \"'`|()[]{}<>"; Err codevoid.de 70 i Err codevoid.de 70 i /* selection timeouts (in milliseconds) */ Err codevoid.de 70 i static unsigned int doubleclicktimeout = 300; Err codevoid.de 70 it@@ -48,15 +43,24 @@ static unsigned int tripleclicktimeout = 600; Err codevoid.de 70 i /* alt screens */ Err codevoid.de 70 i int allowaltscreen = 1; Err codevoid.de 70 i Err codevoid.de 70 i-/* frames per second st should at maximum draw to the screen */ Err codevoid.de 70 i-static unsigned int xfps = 60; Err codevoid.de 70 i-static unsigned int actionfps = 30; Err codevoid.de 70 i+/* allow certain non-interactive (insecure) window operations such as: Err codevoid.de 70 i+ setting the clipboard text */ Err codevoid.de 70 i+int allowwindowops = 0; Err codevoid.de 70 i+ Err codevoid.de 70 i+/* Err codevoid.de 70 i+ * draw latency range in ms - from new content/keypress/etc until drawing. Err codevoid.de 70 i+ * within this range, st draws when content stops arriving (idle). mostly it's Err codevoid.de 70 i+ * near minlatency, but it waits longer for slow updates to avoid partial draw. Err codevoid.de 70 i+ * low minlatency will tear/flicker more, as it can "detect" idle too early. Err codevoid.de 70 i+ */ Err codevoid.de 70 i+static double minlatency = 1; Err codevoid.de 70 i+static double maxlatency = 33; Err codevoid.de 70 i Err codevoid.de 70 i /* Err codevoid.de 70 i * blinking timeout (set to 0 to disable blinking) for the terminal blinking Err codevoid.de 70 i * attribute. Err codevoid.de 70 i */ Err codevoid.de 70 i-static unsigned int blinktimeout = 0; Err codevoid.de 70 i+static unsigned int blinktimeout = 800; Err codevoid.de 70 i Err codevoid.de 70 i /* Err codevoid.de 70 i * thickness of underline and bar cursors Err codevoid.de 70 it@@ -64,26 +68,12 @@ static unsigned int blinktimeout = 0; Err codevoid.de 70 i static unsigned int cursorthickness = 2; Err codevoid.de 70 i Err codevoid.de 70 i /* Err codevoid.de 70 i- * 1: render most of the lines/blocks characters without using the font for Err codevoid.de 70 i- * perfect alignment between cells (U2500 - U259F except dashes/diagonals). Err codevoid.de 70 i- * Bold affects lines thickness if boxdraw_bold is not 0. Italic is ignored. Err codevoid.de 70 i- * 0: disable (render all U25XX glyphs normally from the font). Err codevoid.de 70 i- */ Err codevoid.de 70 i-const int boxdraw = 1; Err codevoid.de 70 i-const int boxdraw_bold = 1; Err codevoid.de 70 i- Err codevoid.de 70 i-/* braille (U28XX): 1: render as adjacent "pixels", 0: use font */ Err codevoid.de 70 i-const int boxdraw_braille = 1; Err codevoid.de 70 i- Err codevoid.de 70 i-/* Err codevoid.de 70 i * bell volume. It must be a value between -100 and 100. Use 0 for disabling Err codevoid.de 70 i * it Err codevoid.de 70 i */ Err codevoid.de 70 i static int bellvolume = 0; Err codevoid.de 70 i Err codevoid.de 70 i- Err codevoid.de 70 i /* default TERM value */ Err codevoid.de 70 i-// sorry, but this works perfectly compared to st-256color :( Err codevoid.de 70 i char *termname = "xterm-256color"; Err codevoid.de 70 i Err codevoid.de 70 i /* Err codevoid.de 70 it@@ -105,32 +95,32 @@ unsigned int tabspaces = 8; Err codevoid.de 70 i Err codevoid.de 70 i /* Terminal colors (16 first used in escape sequence) */ Err codevoid.de 70 i static const char *colorname[] = { Err codevoid.de 70 i- /* c0dev0id custom */ Err codevoid.de 70 i- "#181818", /* 0: black */ Err codevoid.de 70 i- "#dc322f", /* 1: red */ Err codevoid.de 70 i- "#859900", /* 2: green */ Err codevoid.de 70 i- "#b58900", /* 3: yellow */ Err codevoid.de 70 i- "#268bd2", /* 4: blue */ Err codevoid.de 70 i- "#d33682", /* 5: magenta */ Err codevoid.de 70 i- "#2aa198", /* 6: cyan */ Err codevoid.de 70 i- "#D6D5D3", /* 7: white */ Err codevoid.de 70 i- "#000000", /* 8: brblack */ Err codevoid.de 70 i- "#cb4b16", /* 9: brred */ Err codevoid.de 70 i- "#5B6900", /* 10: brgreen */ Err codevoid.de 70 i- "#7E6000", /* 11: bryellow */ Err codevoid.de 70 i- "#045E9D", /* 12: brblue */ Err codevoid.de 70 i- "#A62E68", /* 13: brmagenta*/ Err codevoid.de 70 i- "#127E76", /* 14: brcyan */ Err codevoid.de 70 i- "#eee8d5", /* 15: brwhite */ Err codevoid.de 70 i+ /* 8 normal colors */ Err codevoid.de 70 i+ "black", Err codevoid.de 70 i+ "red3", Err codevoid.de 70 i+ "green3", Err codevoid.de 70 i+ "yellow3", Err codevoid.de 70 i+ "blue2", Err codevoid.de 70 i+ "magenta3", Err codevoid.de 70 i+ "cyan3", Err codevoid.de 70 i+ "gray80", Err codevoid.de 70 i+ Err codevoid.de 70 i+ /* 8 bright colors */ Err codevoid.de 70 i+ "gray50", Err codevoid.de 70 i+ "red", Err codevoid.de 70 i+ "green", Err codevoid.de 70 i+ "yellow", Err codevoid.de 70 i+ "#5c5cff", Err codevoid.de 70 i+ "magenta", Err codevoid.de 70 i+ "cyan", Err codevoid.de 70 i+ "white", Err codevoid.de 70 i Err codevoid.de 70 i [255] = 0, Err codevoid.de 70 i Err codevoid.de 70 i- /* more colors can be added after 255 to use with DefaultXX */ Err codevoid.de 70 i "#990000", Err codevoid.de 70 i- "#000000", Err codevoid.de 70 i+ "#000400", Err codevoid.de 70 i }; Err codevoid.de 70 i Err codevoid.de 70 i- Err codevoid.de 70 i /* Err codevoid.de 70 i * Default colors (colorname index) Err codevoid.de 70 i * foreground, background, cursor, reverse cursor Err codevoid.de 70 it@@ -170,19 +160,23 @@ static unsigned int mousebg = 0; Err codevoid.de 70 i static unsigned int defaultattr = 11; Err codevoid.de 70 i Err codevoid.de 70 i /* Err codevoid.de 70 i+ * Force mouse select/shortcuts while mask is active (when MODE_MOUSE is set). Err codevoid.de 70 i+ * Note that if you want to use ShiftMask with selmasks, set this to an other Err codevoid.de 70 i+ * modifier, set to 0 to not use it. Err codevoid.de 70 i+ */ Err codevoid.de 70 i+static uint forcemousemod = ShiftMask; Err codevoid.de 70 i+ Err codevoid.de 70 i+/* Err codevoid.de 70 i * Internal mouse shortcuts. Err codevoid.de 70 i * Beware that overloading Button1 will disable the selection. Err codevoid.de 70 i */ Err codevoid.de 70 i static MouseShortcut mshortcuts[] = { Err codevoid.de 70 i- /* button mask string */ Err codevoid.de 70 i-// { Button4, XK_NO_MOD, "\031" }, Err codevoid.de 70 i-// { Button5, XK_NO_MOD, "\005" }, Err codevoid.de 70 i-}; Err codevoid.de 70 i- Err codevoid.de 70 i-MouseKey mkeys[] = { Err codevoid.de 70 i- /* button mask function argument */ Err codevoid.de 70 i-// { Button4, ShiftMask, kscrollup, {.i = 1} }, Err codevoid.de 70 i-// { Button5, ShiftMask, kscrolldown, {.i = 1} }, Err codevoid.de 70 i+ /* mask button function argument release */ Err codevoid.de 70 i+ { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, Err codevoid.de 70 i+ { ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} }, Err codevoid.de 70 i+ { XK_ANY_MOD, Button4, ttysend, {.s = "\031"} }, Err codevoid.de 70 i+ { ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} }, Err codevoid.de 70 i+ { XK_ANY_MOD, Button5, ttysend, {.s = "\005"} }, Err codevoid.de 70 i }; Err codevoid.de 70 i Err codevoid.de 70 i /* Internal keyboard shortcuts. */ Err codevoid.de 70 it@@ -191,22 +185,22 @@ MouseKey mkeys[] = { Err codevoid.de 70 i Err codevoid.de 70 i static Shortcut shortcuts[] = { Err codevoid.de 70 i /* mask keysym function argument */ Err codevoid.de 70 i-// { XK_ANY_MOD, XK_Break, sendbreak, {.i = 0} }, Err codevoid.de 70 i-// { ControlMask, XK_Print, toggleprinter, {.i = 0} }, Err codevoid.de 70 i-// { ShiftMask, XK_Print, printscreen, {.i = 0} }, Err codevoid.de 70 i-// { XK_ANY_MOD, XK_Print, printsel, {.i = 0} }, Err codevoid.de 70 i+ { XK_ANY_MOD, XK_Break, sendbreak, {.i = 0} }, Err codevoid.de 70 i+ { ControlMask, XK_Print, toggleprinter, {.i = 0} }, Err codevoid.de 70 i+ { ShiftMask, XK_Print, printscreen, {.i = 0} }, Err codevoid.de 70 i+ { XK_ANY_MOD, XK_Print, printsel, {.i = 0} }, Err codevoid.de 70 i { TERMMOD, XK_Prior, zoom, {.f = +1} }, Err codevoid.de 70 i { TERMMOD, XK_Next, zoom, {.f = -1} }, Err codevoid.de 70 i-// { TERMMOD, XK_Home, zoomreset, {.f = 0} }, Err codevoid.de 70 i-// { TERMMOD, XK_C, clipcopy, {.i = 0} }, Err codevoid.de 70 i-// { TERMMOD, XK_V, clippaste, {.i = 0} }, Err codevoid.de 70 i-// { TERMMOD, XK_Y, selpaste, {.i = 0} }, Err codevoid.de 70 i-// { TERMMOD, XK_Num_Lock, numlock, {.i = 0} }, Err codevoid.de 70 i-// { TERMMOD, XK_I, iso14755, {.i = 0} }, Err codevoid.de 70 i-// { TERMMOD, XK_L, copyurl, {.i = 0} }, Err codevoid.de 70 i-// { TERMMOD, XK_O, opencopied, {.v = "rifle"} }, Err codevoid.de 70 i+ { TERMMOD, XK_Home, zoomreset, {.f = 0} }, Err codevoid.de 70 i+ { TERMMOD, XK_C, clipcopy, {.i = 0} }, Err codevoid.de 70 i+ { TERMMOD, XK_V, clippaste, {.i = 0} }, Err codevoid.de 70 i+ { TERMMOD, XK_Y, selpaste, {.i = 0} }, Err codevoid.de 70 i+ { ShiftMask, XK_Insert, selpaste, {.i = 0} }, Err codevoid.de 70 i+ { TERMMOD, XK_Num_Lock, numlock, {.i = 0} }, Err codevoid.de 70 i { ShiftMask, XK_Page_Up, kscrollup, {.i = -1} }, Err codevoid.de 70 i { ShiftMask, XK_Page_Down, kscrolldown, {.i = -1} }, Err codevoid.de 70 i+ { MODKEY, XK_Page_Up, kscrollup, {.i = -1} }, Err codevoid.de 70 i+ { MODKEY, XK_Page_Down, kscrolldown, {.i = -1} }, Err codevoid.de 70 i }; Err codevoid.de 70 i Err codevoid.de 70 i /* Err codevoid.de 70 it@@ -224,10 +218,6 @@ static Shortcut shortcuts[] = { Err codevoid.de 70 i * * 0: no value Err codevoid.de 70 i * * > 0: cursor application mode enabled Err codevoid.de 70 i * * < 0: cursor application mode disabled Err codevoid.de 70 i- * crlf value Err codevoid.de 70 i- * * 0: no value Err codevoid.de 70 i- * * > 0: crlf mode is enabled Err codevoid.de 70 i- * * < 0: crlf mode is disabled Err codevoid.de 70 i * Err codevoid.de 70 i * Be careful with the order of the definitions because st searches in Err codevoid.de 70 i * this table sequentially, so any XK_ANY_MOD must be in the last Err codevoid.de 70 it@@ -247,13 +237,6 @@ static KeySym mappedkeys[] = { -1 }; Err codevoid.de 70 i static uint ignoremod = Mod2Mask|XK_SWITCH_MOD; Err codevoid.de 70 i Err codevoid.de 70 i /* Err codevoid.de 70 i- * Override mouse-select while mask is active (when MODE_MOUSE is set). Err codevoid.de 70 i- * Note that if you want to use ShiftMask with selmasks, set this to an other Err codevoid.de 70 i- * modifier, set to 0 to not use it. Err codevoid.de 70 i- */ Err codevoid.de 70 i-static uint forceselmod = ShiftMask; Err codevoid.de 70 i- Err codevoid.de 70 i-/* Err codevoid.de 70 i * This is the huge key array which defines all compatibility to the Linux Err codevoid.de 70 i * world. Please decide about changes wisely. Err codevoid.de 70 i */ Err codevoid.de 70 1diff --git a/config.mk b/config.mk /git/st-sdk/file/config.mk.gph codevoid.de 70 it@@ -1,5 +1,5 @@ Err codevoid.de 70 i # st version Err codevoid.de 70 i-VERSION = 0.8.2 Err codevoid.de 70 i+VERSION = 0.8.4 Err codevoid.de 70 i Err codevoid.de 70 i # Customize below to fit your system Err codevoid.de 70 i Err codevoid.de 70 it@@ -28,8 +28,8 @@ STLDFLAGS = $(LIBS) $(LDFLAGS) Err codevoid.de 70 i # OpenBSD: Err codevoid.de 70 i CPPFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=600 -D_BSD_SOURCE Err codevoid.de 70 i LIBS = -L$(X11LIB) -lm -lX11 -lutil -lXft \ Err codevoid.de 70 i- `pkg-config --libs fontconfig` \ Err codevoid.de 70 i- `pkg-config --libs freetype2` Err codevoid.de 70 i+ `$(PKG_CONFIG) --libs fontconfig` \ Err codevoid.de 70 i+ `$(PKG_CONFIG) --libs freetype2` Err codevoid.de 70 i Err codevoid.de 70 i # compiler and linker Err codevoid.de 70 i # CC = c99 Err codevoid.de 70 1diff --git a/patches/st-anysize-0.8.1.diff b/patches/st-anysize-0.8.1.diff /git/st-sdk/file/patches/st-anysize-0.8.1.diff.gph codevoid.de 70 it@@ -1,152 +0,0 @@ Err codevoid.de 70 i-diff --git a/x.c b/x.c Err codevoid.de 70 i-index 00cb6b1..8f87c0f 100644 Err codevoid.de 70 i---- a/x.c Err codevoid.de 70 i-+++ b/x.c Err codevoid.de 70 i-@@ -78,6 +78,7 @@ typedef XftGlyphFontSpec GlyphFontSpec; Err codevoid.de 70 i- typedef struct { Err codevoid.de 70 i- int tw, th; /* tty width and height */ Err codevoid.de 70 i- int w, h; /* window width and height */ Err codevoid.de 70 i-+ int hborderpx, vborderpx; Err codevoid.de 70 i- int ch; /* char height */ Err codevoid.de 70 i- int cw; /* char width */ Err codevoid.de 70 i- int mode; /* window state/mode flags */ Err codevoid.de 70 i-@@ -311,7 +312,7 @@ zoomreset(const Arg *arg) Err codevoid.de 70 i- int Err codevoid.de 70 i- evcol(XEvent *e) Err codevoid.de 70 i- { Err codevoid.de 70 i-- int x = e->xbutton.x - borderpx; Err codevoid.de 70 i-+ int x = e->xbutton.x - win.hborderpx; Err codevoid.de 70 i- LIMIT(x, 0, win.tw - 1); Err codevoid.de 70 i- return x / win.cw; Err codevoid.de 70 i- } Err codevoid.de 70 i-@@ -319,7 +320,7 @@ evcol(XEvent *e) Err codevoid.de 70 i- int Err codevoid.de 70 i- evrow(XEvent *e) Err codevoid.de 70 i- { Err codevoid.de 70 i-- int y = e->xbutton.y - borderpx; Err codevoid.de 70 i-+ int y = e->xbutton.y - win.vborderpx; Err codevoid.de 70 i- LIMIT(y, 0, win.th - 1); Err codevoid.de 70 i- return y / win.ch; Err codevoid.de 70 i- } Err codevoid.de 70 i-@@ -675,6 +676,9 @@ cresize(int width, int height) Err codevoid.de 70 i- col = MAX(1, col); Err codevoid.de 70 i- row = MAX(1, row); Err codevoid.de 70 i- Err codevoid.de 70 i-+ win.hborderpx = (win.w - col * win.cw) / 2; Err codevoid.de 70 i-+ win.vborderpx = (win.h - row * win.ch) / 2; Err codevoid.de 70 i-+ Err codevoid.de 70 i- tresize(col, row); Err codevoid.de 70 i- xresize(col, row); Err codevoid.de 70 i- ttyresize(win.tw, win.th); Err codevoid.de 70 i-@@ -793,8 +797,8 @@ xhints(void) Err codevoid.de 70 i- sizeh->flags = PSize | PResizeInc | PBaseSize | PMinSize; Err codevoid.de 70 i- sizeh->height = win.h; Err codevoid.de 70 i- sizeh->width = win.w; Err codevoid.de 70 i-- sizeh->height_inc = win.ch; Err codevoid.de 70 i-- sizeh->width_inc = win.cw; Err codevoid.de 70 i-+ sizeh->height_inc = 1; Err codevoid.de 70 i-+ sizeh->width_inc = 1; Err codevoid.de 70 i- sizeh->base_height = 2 * borderpx; Err codevoid.de 70 i- sizeh->base_width = 2 * borderpx; Err codevoid.de 70 i- sizeh->min_height = win.ch + 2 * borderpx; Err codevoid.de 70 i-@@ -1022,8 +1026,8 @@ xinit(int cols, int rows) Err codevoid.de 70 i- xloadcols(); Err codevoid.de 70 i- Err codevoid.de 70 i- /* adjust fixed window geometry */ Err codevoid.de 70 i-- win.w = 2 * borderpx + cols * win.cw; Err codevoid.de 70 i-- win.h = 2 * borderpx + rows * win.ch; Err codevoid.de 70 i-+ win.w = 2 * win.hborderpx + cols * win.cw; Err codevoid.de 70 i-+ win.h = 2 * win.vborderpx + rows * win.ch; Err codevoid.de 70 i- if (xw.gm & XNegative) Err codevoid.de 70 i- xw.l += DisplayWidth(xw.dpy, xw.scr) - win.w - 2; Err codevoid.de 70 i- if (xw.gm & YNegative) Err codevoid.de 70 i-@@ -1123,7 +1127,7 @@ xinit(int cols, int rows) Err codevoid.de 70 i- int Err codevoid.de 70 i- xmakeglyphfontspecs(XftGlyphFontSpec *specs, const Glyph *glyphs, int len, int x, int y) Err codevoid.de 70 i- { Err codevoid.de 70 i-- float winx = borderpx + x * win.cw, winy = borderpx + y * win.ch, xp, yp; Err codevoid.de 70 i-+ float winx = win.hborderpx + x * win.cw, winy = win.vborderpx + y * win.ch, xp, yp; Err codevoid.de 70 i- ushort mode, prevmode = USHRT_MAX; Err codevoid.de 70 i- Font *font = &dc.font; Err codevoid.de 70 i- int frcflags = FRC_NORMAL; Err codevoid.de 70 i-@@ -1259,7 +1263,7 @@ void Err codevoid.de 70 i- xdrawglyphfontspecs(const XftGlyphFontSpec *specs, Glyph base, int len, int x, int y) Err codevoid.de 70 i- { Err codevoid.de 70 i- int charlen = len * ((base.mode & ATTR_WIDE) ? 2 : 1); Err codevoid.de 70 i-- int winx = borderpx + x * win.cw, winy = borderpx + y * win.ch, Err codevoid.de 70 i-+ int winx = win.hborderpx + x * win.cw, winy = win.vborderpx + y * win.ch, Err codevoid.de 70 i- width = charlen * win.cw; Err codevoid.de 70 i- Color *fg, *bg, *temp, revfg, revbg, truefg, truebg; Err codevoid.de 70 i- XRenderColor colfg, colbg; Err codevoid.de 70 i-@@ -1349,17 +1353,17 @@ xdrawglyphfontspecs(const XftGlyphFontSpec *specs, Glyph base, int len, int x, i Err codevoid.de 70 i- Err codevoid.de 70 i- /* Intelligent cleaning up of the borders. */ Err codevoid.de 70 i- if (x == 0) { Err codevoid.de 70 i-- xclear(0, (y == 0)? 0 : winy, borderpx, Err codevoid.de 70 i-+ xclear(0, (y == 0)? 0 : winy, win.vborderpx, Err codevoid.de 70 i- winy + win.ch + Err codevoid.de 70 i-- ((winy + win.ch >= borderpx + win.th)? win.h : 0)); Err codevoid.de 70 i-+ ((winy + win.ch >= win.vborderpx + win.th)? win.h : 0)); Err codevoid.de 70 i- } Err codevoid.de 70 i-- if (winx + width >= borderpx + win.tw) { Err codevoid.de 70 i-+ if (winx + width >= win.hborderpx + win.tw) { Err codevoid.de 70 i- xclear(winx + width, (y == 0)? 0 : winy, win.w, Err codevoid.de 70 i-- ((winy + win.ch >= borderpx + win.th)? win.h : (winy + win.ch))); Err codevoid.de 70 i-+ ((winy + win.ch >= win.vborderpx + win.th)? win.h : (winy + win.ch))); Err codevoid.de 70 i- } Err codevoid.de 70 i- if (y == 0) Err codevoid.de 70 i-- xclear(winx, 0, winx + width, borderpx); Err codevoid.de 70 i-- if (winy + win.ch >= borderpx + win.th) Err codevoid.de 70 i-+ xclear(winx, 0, winx + width, win.hborderpx); Err codevoid.de 70 i-+ if (winy + win.ch >= win.vborderpx + win.th) Err codevoid.de 70 i- xclear(winx, winy + win.ch, winx + width, win.h); Err codevoid.de 70 i- Err codevoid.de 70 i- /* Clean up the region we want to draw to. */ Err codevoid.de 70 i-@@ -1452,35 +1456,35 @@ xdrawcursor(int cx, int cy, Glyph g, int ox, int oy, Glyph og) Err codevoid.de 70 i- case 3: /* Blinking Underline */ Err codevoid.de 70 i- case 4: /* Steady Underline */ Err codevoid.de 70 i- XftDrawRect(xw.draw, &drawcol, Err codevoid.de 70 i-- borderpx + cx * win.cw, Err codevoid.de 70 i-- borderpx + (cy + 1) * win.ch - \ Err codevoid.de 70 i-+ win.hborderpx + cx * win.cw, Err codevoid.de 70 i-+ win.vborderpx + (cy + 1) * win.ch - \ Err codevoid.de 70 i- cursorthickness, Err codevoid.de 70 i- win.cw, cursorthickness); Err codevoid.de 70 i- break; Err codevoid.de 70 i- case 5: /* Blinking bar */ Err codevoid.de 70 i- case 6: /* Steady bar */ Err codevoid.de 70 i- XftDrawRect(xw.draw, &drawcol, Err codevoid.de 70 i-- borderpx + cx * win.cw, Err codevoid.de 70 i-- borderpx + cy * win.ch, Err codevoid.de 70 i-+ win.hborderpx + cx * win.cw, Err codevoid.de 70 i-+ win.vborderpx + cy * win.ch, Err codevoid.de 70 i- cursorthickness, win.ch); Err codevoid.de 70 i- break; Err codevoid.de 70 i- } Err codevoid.de 70 i- } else { Err codevoid.de 70 i- XftDrawRect(xw.draw, &drawcol, Err codevoid.de 70 i-- borderpx + cx * win.cw, Err codevoid.de 70 i-- borderpx + cy * win.ch, Err codevoid.de 70 i-+ win.hborderpx + cx * win.cw, Err codevoid.de 70 i-+ win.vborderpx + cy * win.ch, Err codevoid.de 70 i- win.cw - 1, 1); Err codevoid.de 70 i- XftDrawRect(xw.draw, &drawcol, Err codevoid.de 70 i-- borderpx + cx * win.cw, Err codevoid.de 70 i-- borderpx + cy * win.ch, Err codevoid.de 70 i-+ win.hborderpx + cx * win.cw, Err codevoid.de 70 i-+ win.vborderpx + cy * win.ch, Err codevoid.de 70 i- 1, win.ch - 1); Err codevoid.de 70 i- XftDrawRect(xw.draw, &drawcol, Err codevoid.de 70 i-- borderpx + (cx + 1) * win.cw - 1, Err codevoid.de 70 i-- borderpx + cy * win.ch, Err codevoid.de 70 i-+ win.hborderpx + (cx + 1) * win.cw - 1, Err codevoid.de 70 i-+ win.vborderpx + cy * win.ch, Err codevoid.de 70 i- 1, win.ch - 1); Err codevoid.de 70 i- XftDrawRect(xw.draw, &drawcol, Err codevoid.de 70 i-- borderpx + cx * win.cw, Err codevoid.de 70 i-- borderpx + (cy + 1) * win.ch - 1, Err codevoid.de 70 i-+ win.hborderpx + cx * win.cw, Err codevoid.de 70 i-+ win.vborderpx + (cy + 1) * win.ch - 1, Err codevoid.de 70 i- win.cw, 1); Err codevoid.de 70 i- } Err codevoid.de 70 i- } Err codevoid.de 70 i[1|diff --git a/patches/st-boxdraw_v2-0.8.2.diff b/patches/st-boxdraw_v2-0.8.2.diff|/git/st-sdk/file/patches/st-boxdraw_v2-0.8.2.diff.gph|ser Err codevoid.de 70 .