Показать сообщение отдельно
  #7  
Старый 16.03.2021, 02:43
Nil Alexandrov
Guest
 
Сообщений: n/a
По умолчанию Краш на больших терминалах

Nil Alexandrov написал(а) к Alexey Vissarionov в Mar 21 01:17:24 по местному времени:

Нello, Alexey!

Tuesday March 16 2021 00:22, from Alexey Vissarionov -> Nil Alexandrov:

NA>> Короче, вот сейчас у меня вот так вот заработало, в разных
NA>> комбинациях, и при чтении, и при написани.
NA>> - char buf[256];
NA>> + char buf[2560];
AV> Надеюсь, ты понимаешь, что эту профанацию в апстрим никто не
AV> пропустит?

Я спросил тут - ответ такой, что патча нет, ну я и починил для себя за 5 минут, понятное дело, что это костыль.

AV> Если действительно хочешь приложить руки, сделай по уму - получи
AV> ширину терминала через TIOCGWINSZ (`man tty_ioctl`), а потом выполни
AV> realloc() означенного буфера (который изначально должен быть NULL,
AV> разумеется).

Зачем ioctl(0, TIOCGWINSZ, ...), если этим уже_ занимается ncurses, man cursvariables(3x) - int COLS; int LINES;
Ну дык по уму и на изменение размера окна надо реагировать, поймать сигнал sigaction(SIGWINCН, ...), переделать буфера и перерисовать endwin(); refresh(); clear();
Но это явно работы не на 5 минут, поэтому я и не берусь :-)

Best Regards, Nil
--- GoldED+/LNX 1.1.5
Ответить с цитированием