#!/usr/bin/python3

# get terminal size
# from resize(1)
# it does not work quite properly and there is a simpler way
#
# do not use

import os, sys, time, termios
from termios import ICRNL, IUCLC, ICANON, ECHO, CS8, VMIN, VTIME, TCSANOW, TCSADRAIN, TCSAFLUSH

getsize = b"\0337\033[r\033[999;999H\0336n\033[18t"
restoreemu = b"\0338"
ttyfd = os.open('/dev/tty', os.O_RDWR)

tioorig = termios.tcgetattr(ttyfd)
tio = tioorig[:]

tio[0] &= ~(ICRNL | IUCLC) # iflag
tio[3] &= ~(ICANON | ECHO) # lflag
tio[2] |= CS8 # cflag
tio[6][VMIN] = 6 # cc
tio[6][VTIME] = 1 # cc
termios.tcsetattr(ttyfd, TCSAFLUSH, tio)
os.write(ttyfd, getsize)
x = os.read(ttyfd, len(getsize))
os.write(ttyfd, restoreemu)
termios.tcsetattr(ttyfd, TCSADRAIN, tioorig)
sys.stdout.buffer.write(x)
