termsize: Default to 80x24 when the terminal says 0 again
This was lost in 6bdbe732e40c2e325aa15fcf0f28ad0dedb3a551..c7160d7cb4970c2a03df34547f357721cb5e88db. Note that we only print a term-support flog message for now, the warning seems a bit much. Fixes #7709.
This commit is contained in:
parent
ccc5e7cb28
commit
a503371c57
@ -16,6 +16,15 @@ static maybe_t<termsize_t> read_termsize_from_tty() {
|
||||
#ifdef HAVE_WINSIZE
|
||||
struct winsize winsize = {0, 0, 0, 0};
|
||||
if (ioctl(STDOUT_FILENO, TIOCGWINSZ, &winsize) >= 0) {
|
||||
// 0 values are unusable, fall back to the default instead.
|
||||
if (winsize.ws_col == 0) {
|
||||
FLOGF(term_support, L"Terminal has 0 columns, falling back to default width");
|
||||
winsize.ws_col = termsize_t::DEFAULT_WIDTH;
|
||||
}
|
||||
if (winsize.ws_row == 0) {
|
||||
FLOGF(term_support, L"Terminal has 0 rows, falling back to default height");
|
||||
winsize.ws_row = termsize_t::DEFAULT_HEIGHT;
|
||||
}
|
||||
result = termsize_t{winsize.ws_col, winsize.ws_row};
|
||||
}
|
||||
#endif
|
||||
|
15
tests/pexpects/terminal.py
Normal file
15
tests/pexpects/terminal.py
Normal file
@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env python3
|
||||
from pexpect_helper import SpawnedProc
|
||||
|
||||
# Set a 0 terminal size
|
||||
sp = SpawnedProc(args=["-d", "term-support"], dimensions=(0,0))
|
||||
sendline, expect_prompt, expect_str = sp.sendline, sp.expect_prompt, sp.expect_str
|
||||
|
||||
expect_prompt()
|
||||
# Now confirm it defaulted to 80x24
|
||||
sendline("echo $COLUMNS $LINES")
|
||||
expect_str("80 24")
|
||||
expect_str("term-support: Terminal has 0 columns, falling back to default width")
|
||||
expect_str("term-support: Terminal has 0 rows, falling back to default height")
|
||||
expect_prompt()
|
||||
|
Loading…
x
Reference in New Issue
Block a user