Краш на больших терминалах
Alexey Vissarionov написал(а) к Nil Alexandrov в Mar 21 11:30:00 по местному времени:
Доброго времени суток, Nil!
16 Mar 2021 01:17:24, ты -> мне:
NA>>> - char buf[256];
NA>>> + char buf[2560];
AV>> Надеюсь, ты понимаешь, что эту профанацию в апстрим никто не
AV>> пропустит?
NA> Я спросил тут - ответ такой, что патча нет, ну я и починил для
NA> себя за 5 минут, понятное дело, что это костыль.
AV>> Если действительно хочешь приложить руки, сделай по уму - получи
AV>> ширину терминала через TIOCGWINSZ (`man tty_ioctl`), а потом
AV>> выполни realloc() означенного буфера (который изначально должен
AV>> быть NULL, разумеется).
NA> Зачем ioctl(0, TIOCGWINSZ, ...), если этим уже занимается ncurses,
NA> man curs_variables(3x) - int COLS; int LINES; Ну дык по уму и на
NA> изменение размера окна надо реагировать, поймать сигнал
NA> sigaction(SIGWINCН, ...), переделать буфера и перерисовать endwin();
NA> refresh(); clear(); Но это явно работы не на 5 минут, поэтому я и не
NA> берусь :-)
Вот именно. И никто не берется - либо нахрен не надо, либо не умеют.
--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii
... Облачных технологий не существует - существуют только чужие компутеры
--- /bin/vi
|