joe i slang .. pozytywy

Marcin 'Qrczak' Kowalczyk qrczak w knm.org.pl
Pon, 5 Paź 1998, 19:43:19 CEST


On Mon, 5 Oct 1998, Tomasz Kłoczko wrote:

> Przypuszczam, że ficzer siedzi gdzieś w ninicjacji/deinicjacji samego
> slanga i raczej od tego miejsca zaczynałbym poszukiwania. 

slang nie ma skąd wziąć ekstra możliwości... przecież daje tylko
interfejs.

> Nie wiem czy pracuje to ma nonsoli linuxowej ale na pewno działa to na
> *xtermach.

Na xtermach (przynajmniej rxvt) to ja umiem: wysłanie '\33[?47h' czyści
ekran zapamiętując go, a '\33[?47h' odtwarza. Nie wiem, co powinno to
robić w założeniu (terminfo opisuje sekwencje, które na terminalu xterm
zawierają powyższe, jakoś inaczej), i na konsoli oczywiście to nie działa
ani nie ma odpowiednika (przynajmniej w 2.0.35).

> Jeżli by dizałało także na konsoli to może możnaby się pozbyć consaver-a
> (który ma suid-a) z mc i zrobić to inaczej.

Ostatnio (2.0.35?) nie wiedzieć czemu /dev/vcs* mają dobrego, dynamicznie
zmienianego właścicielam i zaczął mi działać cons.saver bez tego suida,
bez żadnych dodatkowych poprawek... On na "nowych" jądrach (>= 1.1.92)
czyta i pisze właśnie /dev/vcsa*, na [1.1.67, 1.1.92) używał jakiegoś
ioctl(console_fd, TIOCLINUX, buffer), ustawiając buffer[0] na 0 przy
odczycie, a na 9 i jeszcze buffer[1] na (binarny) numer konsoli przy
zapisie. Nie sprawdzałem, czy teraz to jeszcze działa; w `man ioctl_list'
(dotyczącej jądra 1.3.27 - czy nie przydałoby się uaktualnienie?) tego nie
ma opisanego. No ale jeśli /dev/vcsa* już dobrze działa, to na konsoli
wystarczy używać tego (w xtermie oczywiście nie działa). cons.saver na
jądrach < 1.1.67 robił trzecią metodą, nie uwzględniającą kolorów
ani rozszerzonych znaków (odczyt tym samym ioctlem, a zapis... normalnie
wyrzucając znaki na stdout).

A właśnie - jeśli '\33[?47h' i '\33[?47h' w rxvt jest jakieś bardziej
oficjalne, to można by dodać to do cons.savera mc. Tyle tylko, że nie wiem
jak sprawdzać, czy to działa; ostatecznie warunkiem może być $TERM==xterm.

W ogólnym przypadku się nie da. Każdy terminal może działać według
własnych zasad i nie implementować niczego podobnego do odtwarzania
całej zawartości ekranu.

--
 __("<   Marcin Kowalczyk * qrczak w knm.org.pl http://qrczak.home.ml.org/
 \__/       GCS/M d- s+:-- a21 C+++>+++$ UL++>++++$ P+++ L++>++++$ E->++
  ^^                W++ N+++ o? K? w(---) O? M- V? PS-- PE++ Y? PGP->+ t
QRCZAK                  5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-



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