st
simple terminal
git clone https://9o.is/git/st.git
commit 0f5c398d582e0ab38f7d05166fde9de9c025d9ae parent 380968b7181263227f013306210b33ac2a366903 Author: Devin J. Pohly <djpohly@gmail.com> Date: Wed, 21 Feb 2018 22:28:41 -0600 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> Diffstat:
| M | st.c | | | 3 | +-- |
| M | x.c | | | 6 | ++---- |
2 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/st.c b/st.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 @@ ttynew(char *line, char *out, char **args) } /* 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()) { diff --git a/x.c b/x.c @@ -276,7 +276,6 @@ zoomabs(const Arg *arg) xunloadfonts(); xloadfonts(usedfont, arg->f); cresize(0, 0); - ttyresize(win.tw, win.th); redraw(); xhints(); } @@ -695,6 +694,7 @@ cresize(int width, int height) tresize(col, row); xresize(col, row); + ttyresize(win.tw, win.th); } void @@ -1794,7 +1794,6 @@ resize(XEvent *e) return; cresize(e->xconfigure.width, e->xconfigure.height); - ttyresize(win.tw, win.th); } void @@ -1823,9 +1822,8 @@ run(void) } } 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;