On Mon, Dec 11, 2000 at 09:47:03AM +0200, Alexander Bokovoy wrote: > > > > Радует, что размеры терминала можно узнать безо всякого terminfo - это > > > > ведь простой ioctl( fd, TIOCGWINSZ, &struct winsize )! > > > Очень хорошо! > > > > Но не радует, что эта информация может меняться (на photo.iplabs.ru > > реально меняется) в процессе загрузки. Мне пришлось изменить семантику, с > > заменой переменных на функции. > Патч, который я приводил, это учитывает, поскольку каждый загрузочный скрипт > включает в себя /etc/rc.d/init.d/functions, то вычисление происходит каждый раз, > то есть, скрипты ведут себя адекватно обстановке. И не нужно заменять переменные на > функции, поскольку в рамках одного скрипта изменений между инициализацией и > выводом результата нет, кроме rc.modules, который может загружать framebuffer, и > rc.local, который может переустанавливать терминал -- через fbset или другое средство, > но здесь все и так понятно. А переход к функциям увеличивает количество > выховов tty_width в несколько раз. Стоимость вызова tty_width ничтожна. А вот думать каждый раз - может терминал измениться во время работы скрипта или нет - очень не хочется. Еще один вариант: я могу встроить в bash автоматическую переменную (с той же семантикой, что и RANDOM), которая всегда будет возвращать текущую ширину. Это самое дешевое решение, но вот вопрос: как назвать переменную? Regards, Dmitry +-------------------------------------------------------------------------+ Dmitry V. Levin mailto://ldv@fandra.org Software Engineer PGP pubkey http://www.fandra.org/users/ldv/pgpkeys.html IPLabs Linux Team http://linux.iplabs.ru Fandra Project http://www.fandra.org +-------------------------------------------------------------------------+ UNIX is user friendly. It's just very selective about who its friends are.