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