Article View: pl.comp.os.linux.programowanie
Article #72500Re: Czym odpytać terminal?
From: Gotfryd Smolik news
Date: Fri, 27 Jul 2012 21:49
Date: Fri, 27 Jul 2012 21:49
66 lines
3852 bytes
3852 bytes
On Thu, 26 Jul 2012, Bogdan (bogdro) wrote: Dzięki, ale pozwolę sobie na skomentowanie odpowiedzi cytatami z pytania :) > Nie wiem, na ile przydatne informacje znajdziesz w "man vcsa" (być > może to jest to, co opisujesz jako "system trzyma sobie w środku"), > ale możesz zacząć od tego. To jest coś co ująłem tak: >> Również nie to, co emulator terminala na danym systemie >> "wie" o ustawieniach (terminal jest zdalny). Właśnie - nie o to chodzi, co ma miejsce przy konsoli. System, w odróżnieniu od terminala swojej konsoli lub ew. innych "swoich" terminali (terminali z x-windows, screen itede) nie ma szans wiedzieć jakie "obcy" terminal ma ustawienia. Musi odpytać. Funkcja o którą pytam musi być właściwością lub obsługą terminala (każdego), a nie konsoli. Dla jasności: oczywiście, jeśli protokół danego terminala nie jest "znany" funkcji odpytującej lub dany typ terminala (bądź emulatora) nie zawiera kodów "odpytywania", to operacja się nie powiedzi i wynik jest "unknown" (pozostaje załatanie w takie sposób, jak robi to obsługa związana z terminfo, czyli przyjęcie defaultów "w ciemno"). Ale dla wiekszości terminali (tudzież emulatorów), i to nie tylko VT-* (wszystkie VT obsługują "odpytywanie", ale nie tylko VT) rozwiązanie to nie jest. > Potem poleciłbym strony manuala, do których prowadzi strona > "man console". Jak wyżej :) (w przypadku konsoli system wie jakie ona ma ustawienia, bo sam ją tworzy i obsługuje "po drugiej stronie"). > W dalszej kolejności - kod źródłowy biblioteki ncurses. Przepraszam że nie napisałem, iż rzeczy oczywiste sprawdziłem przed zadaniem pytania :), w razie potrzeby mogę ponownie odszukać gdzie w dokumentacji curses zaznaczono że wartości które zwraca pochodzą z odczytu danych jądra (a nie terminala), zeznaję również, że organoleptycznie sprawdziłem, że tak jest (jeśli ustawienie terminala jest inne niż dane jądra i environment shella, to brane są wartości "programowe", a nie ustawienie terminala). Sprawdziłem (organoleptycznie, znaczy kawałkiem programu) że newterm i initscr nie wywołują "odpytywania". Sprawdziłem również, że tput cols faktycznie "odpytuje" terminal (i jest to jedyny znalezione przeze mnie "gotowiec"). Ale już dla "page" (czyli wysokości w liniach) żadnego "gotowca" nie spotkałem, o reszcie cech (echo, wrapping, 7/8 bit itd) nie wspominając. Ale o ile resztę wartości można w większości przypadków wziąć i po prostu "wcisnąć" do terminala (co stty robi), to wysokości strony to nie dotyczy (z różnych powodów, od tego że hardware nie obsługuje, do tego że w emulatorze jest zablokowane wymiarowanie, właśnie w celu emulacji hardware). No nic, mam na stosie kolejną rzecz "zrobić później" :] pzdr, Gotfryd
Technical Details
Message-ID:
<Pine.WNT.4.64.1207272320050.3796@quad>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailReferences:
<Pine.WNT.4.64.1207261656230.1636@quad> <jurqro$j9n$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail Newsgroups: pl.comp.os.linux.programowanie Date: Fri, 27 Jul 2012 23:49:12 +0200 From: Gotfryd Smolik news <smolik@stanpol.com.pl> Subject: Re: Czym odpytać terminal? In-Reply-To: <jurqro$j9n$1@inews.gazeta.pl> Message-ID: <Pine.WNT.4.64.1207272320050.3796@quad> References: <Pine.WNT.4.64.1207261656230.1636@quad> <jurqro$j9n$1@inews.gazeta.pl> X-X-Sender: moj@quad MIME-Version: 1.0 User-Agent: Hamster/2.1.0.11 Lines: 66 Organization: Telekomunikacja Polska NNTP-Posting-Host: 83.15.167.123 X-Trace: 1343425833 unt-rea-a-02.news.neostrada.pl 1313 83.15.167.123:64118 X-Complaints-To: abuse@news.neostrada.pl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit