all repos — st @ d84f3f4bd15e7d65fc0334cf7d62913c901bad00

st (suckless terminal) config

Rely on ttyresize to set tty size

This removes ttynew's dependency on cresize being called first, and then
allows us to absorb the ttyresize call into cresize (which always
precedes it).

Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
Devin J. Pohly djpohly@gmail.com
commit

d84f3f4bd15e7d65fc0334cf7d62913c901bad00

parent

8b564c1a3f51c08e64c2f589852a02b8595d44ca

2 files changed, 3 insertions(+), 6 deletions(-)

jump to
M st.cst.c

@@ -670,7 +670,6 @@ void

ttynew(char *line, char *out, char **args) { int m, s; - struct winsize w = {term.row, term.col, 0, 0}; if (out) { term.mode |= MODE_PRINT;

@@ -691,7 +690,7 @@ return;

} /* seems to work fine on linux, openbsd and freebsd */ - if (openpty(&m, &s, NULL, NULL, &w) < 0) + if (openpty(&m, &s, NULL, NULL, NULL) < 0) die("openpty failed: %s\n", strerror(errno)); switch (pid = fork()) {
M x.cx.c

@@ -276,7 +276,6 @@ {

xunloadfonts(); xloadfonts(usedfont, arg->f); cresize(0, 0); - ttyresize(win.tw, win.th); redraw(); xhints(); }

@@ -695,6 +694,7 @@ row = (win.h - 2 * borderpx) / win.ch;

tresize(col, row); xresize(col, row); + ttyresize(win.tw, win.th); } void

@@ -1794,7 +1794,6 @@ if (e->xconfigure.width == win.w && e->xconfigure.height == win.h)

return; cresize(e->xconfigure.width, e->xconfigure.height); - ttyresize(win.tw, win.th); } void

@@ -1823,9 +1822,8 @@ h = ev.xconfigure.height;

} } while (ev.type != MapNotify); - cresize(w, h); ttynew(opt_line, opt_io, opt_cmd); - ttyresize(win.tw, win.th); + cresize(w, h); clock_gettime(CLOCK_MONOTONIC, &last); lastblink = last;