[devel] Патч xterm_mouse_support для gpm

Slava Semushin =?iso-8859-1?q?php-coder_=CE=C1_ngs=2Eru?=
Ср Авг 9 07:48:04 MSD 2006


    Здравствуйте!

    При сборке консольной игрушки clines столкнулся с проблемой, когда
    после выхода из программы на терминал выводятся лишние пробелы о чем и
    поспешил сообщить разработчику.

    Виталий Липатов (спасибо!) любезно предоставил шелл для расследования
    проблемы и она была найдена.
    
    Ниже привожу оригинальное письмо от автора программы с техническим
    описанием процесса и проблемы.
    

    Интересует вопрос: действительно ли патч xterm_mouse_support не до
    конца корректен или же следует патчить использующую gpm програму?

    Спасибо.


    P.S. Т.к. Павел не подписан на devel@, то просьба при ответе сохранять
    его в СС:


----- Forwarded message from Pawel Veselov <pawel.veselov at gmail.com> -----

Subject: Re: About CLines 1.0.3
From: Pawel Veselov <pawel.veselov at gmail.com>
To: Slava Semushin <php-coder at ngs.ru>
Date: Tue, 8 Aug 2006 20:00:52 -0700

Привет,

ломает всё : gpm-1.20.1-deb-alt-xterm_mouse_support.patch

CLines делает:
   initscr();
   int fd = Gpm_Open();
   if (fd == -2) { Gpm_Close(); } // я сам с xterm'ом разберусь
  ........ игра тут.....
   endwin();

initscr() : открывает терминал, сохраняет значения, устанавливает на
терминале нужный режим
Gpm_Open(с патчем) : вызывает setupterm(), это переписывает в cursese
сохранённые значения
endwin() востанавливет то что было на момент Gpm_Open() , что уже
application mode, посему глюки.

без патча setupterm из Gpm_* не вызывается, и всё нормально.

Наверно если в CLines поменять местами Gpm_Open и initscr, будет работать.
По хорошему в gpm-патче надо сначала проверять на isendwin(), а потом только
коговрить setupterm, или
чего-то ещё делать, чтобы не переписывались значения текущего терминала.

Вот это всё можешь акуратно запостить в devel list. Я собственно и ждал
авторизации в этот list, да -- не придёт -- и фик с ним :)


Счастливо !

-- 
With best of best regards
Pawel S. Veselov

----- End forwarded message -----


-- 
+ Slava Semushin | php-coder @ ngs.ru
+ ALT Linux Team | php-coder @ altlinux.ru
+ Expand QA Team | vsemushin @ swsoft.com




Подробная информация о списке рассылки Devel