screen, backspace i nie tylko

Jacek Konieczny jajcus w bnet.pl
Śro, 23 Lip 2003, 14:38:07 CEST


On Wed, Jul 23, 2003 at 02:23:52PM +0200, Marcin 'Qrczak' Kowalczyk wrote:
> Aha, upewnij się, że terminal, pod którym uruchamiasz screena, ma poprawną 
> bazę terminfo. screen sam korzysta z terminfo.

Jak mam się upewnić? Badać kod po kodzie w terminfo i porównywać
z rzeczywistymi?
Próbowałem na screenie odpalonym w różnych teminalach
(linux,xterm,gnome-terminal) w których moja aplikacja działa dobrze.

> > - dodać do ncurses.spec automatyczne generowanie bazy dla aktualnego
> >   screena - wymagało by "BuildRequires: screen", ale rozwiązywałoby
> >   (częściowo) problem przyszłych zmian.
> 
> Baza terminfo może być używana na innym komputerze niż screen, więc nie ma co 
> uzależniać budowania jednego od zainstalowanego drugiego. One powinny się 
> zgadzać ze sobą tak po prostu.

Przejżałem dokumentację screena i przyjżałem się jego działaniu.  I wychodzi mi
na to, że baza wygenerowana ze screena z opcją "-a" powinna działać wszędzie,
ale nie zawsze optymalnie (wiele funkcji screen będzie emulował, mimo że
aplikacja mogłaby się bez nich obyć). Baza wygenerowana przy konkretnej
wartości $TERM też będzie działać wszędzie, ale screen niekoniecznie wykorzysta
wszystkie możliwości innego terminala na którym może być uruchomiony.
I przy tym wszystkim nie ma gwarancji, że opis terminala przygotowany
dla jednej wersji screena będzie działał z inną.

> > Otrzymałem "pełnosprawnego" screena, w którym nie tylko BS działał
> > poprawnie, ale i cały ekran mojego programu wyglądał duuużo lepiej.
> 
> Więc można by sprawdzić, czym jeszcze opis w terminfo się różni.

Proszę bardzo:

$ infocmp -d -A /usr/share/terminfo/ -B ~/.terminfo screen screen
comparing screen to screen.
    comparing booleans.
    comparing numbers.
        cols: 80, 100.  (wzięte z mojego terminala)
        lines: 24, 37.  (wzięte z mojego terminala)
        ncv: 3, NULL.
    comparing strings.
        acsc: '++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~', '++\,\,--..00II``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~'.
        dim: NULL, '\E[2m'.
        el1: '\E[1K', NULL.
        enacs: '\E(B\E)0', NULL.
        hpa: '\E[%i%p1%dG', NULL.
        kb2: NULL, '\E[G'.
        kbeg: NULL, '\E[1~'.
        kbs: '^H', '\177'.
        kf0: NULL, '\E[10~'.
        kf13: NULL, '\E[25~'.
        kf14: NULL, '\E[26~'.
        kf15: NULL, '\E[28~'.
        kf16: NULL, '\E[29~'.
        kf17: NULL, '\E[31~'.
        kf18: NULL, '\E[32~'.
        kf19: NULL, '\E[33~'.
        kf20: NULL, '\E[34~'.
        kll: NULL, '\E[4~'.
        kmous: '\E[M', NULL.
        rmacs: '^O', '\E(B'.
        rmcup: NULL, '\E[?1049l'.
        smacs: '^N', '\E(0'.
        smcup: NULL, '\E[?1049h'.

Pozdrowienia,
	Jacek



Więcej informacji o liście dyskusyjnej pld-devel-pl