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>
dev
Devin J. Pohly 2018-02-21 22:28:41 -06:00
parent 8b564c1a3f
commit d84f3f4bd1
2 changed files with 3 additions and 6 deletions

3
st.c
View File

@ -670,7 +670,6 @@ void
ttynew(char *line, char *out, char **args) ttynew(char *line, char *out, char **args)
{ {
int m, s; int m, s;
struct winsize w = {term.row, term.col, 0, 0};
if (out) { if (out) {
term.mode |= MODE_PRINT; term.mode |= MODE_PRINT;
@ -691,7 +690,7 @@ ttynew(char *line, char *out, char **args)
} }
/* seems to work fine on linux, openbsd and freebsd */ /* 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)); die("openpty failed: %s\n", strerror(errno));
switch (pid = fork()) { switch (pid = fork()) {

6
x.c
View File

@ -276,7 +276,6 @@ zoomabs(const Arg *arg)
xunloadfonts(); xunloadfonts();
xloadfonts(usedfont, arg->f); xloadfonts(usedfont, arg->f);
cresize(0, 0); cresize(0, 0);
ttyresize(win.tw, win.th);
redraw(); redraw();
xhints(); xhints();
} }
@ -695,6 +694,7 @@ cresize(int width, int height)
tresize(col, row); tresize(col, row);
xresize(col, row); xresize(col, row);
ttyresize(win.tw, win.th);
} }
void void
@ -1794,7 +1794,6 @@ resize(XEvent *e)
return; return;
cresize(e->xconfigure.width, e->xconfigure.height); cresize(e->xconfigure.width, e->xconfigure.height);
ttyresize(win.tw, win.th);
} }
void void
@ -1823,9 +1822,8 @@ run(void)
} }
} while (ev.type != MapNotify); } while (ev.type != MapNotify);
cresize(w, h);
ttynew(opt_line, opt_io, opt_cmd); ttynew(opt_line, opt_io, opt_cmd);
ttyresize(win.tw, win.th); cresize(w, h);
clock_gettime(CLOCK_MONOTONIC, &last); clock_gettime(CLOCK_MONOTONIC, &last);
lastblink = last; lastblink = last;