🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.linux.programowanie
Article #72500

Re: Czym odpytać terminal?

#72500
From: Gotfryd Smolik news
Date: Fri, 27 Jul 2012 21:49
66 lines
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-mail
References: <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