Provided by:
manpages-pl_20060617-3_all 
NAZWA
terminfo - baza wlaciwoci terminala
SK/LADNIA
/usr/share/terminfo/*/*
OPIS
Terminfo jes baz danych, opisujc terminale, uywan przez programy
obslugujce ekran, takie jak nvi(1), rogue(1) i biblioteki takie, jak
curses(3X). Terminfo opisuje terminale przez podawanie zestawu ich
wlaciwoci, opisujc jak wykonywa operacje ekranowe oraz podajc wymagania
wypelniania i sekwencje inicjalizacji.
Wpisy w terminfo skladaj si z sekwencji pol, rozdzielonych przecinkami
(osadzane przecinki mona cytowa lewymi ukonikami, lub zapisywa jako
\072). Biale spacje po separatorze `,' s ignorowane. Pierwszy wpis
kadego terminala podaje nazwy, pod ktorymi znany jest terminal,
rozdzielone znakami `|'. Pierwsza podana nazwa jest najpopularniejszym
skrotem terminala, a ostatnia nazwa jest dlug nazw, w pelni
identyfikujc terminal. Wszystkie nazwy s synonimiczne. Wszystkie nazwy
poza ostatni powinny by pisane malymi literami i nie zawiera spacji;
ostatnia nazwa moe je zawiera dla czytelnoci.
Nazwy terminali (poza ostatnim, gadatliwym wpisem) powinny by wybierane
wg. nastpujcych konwencji: Sprzt, ktory sklada si na terminal,
powinien tworzy korze nazwy, std ``hp2621''. Nazwa ta nie powinna
zawiera mylnikow. Tryby,w ktorych sprzt moe si znajdowa powinny by
wskazywane przez dodanie mylnika i przyrostka trybu. Tak wic vt100 w
132 kolumnowym trybie to vt100-w. Nastpujce przyrostki powinny by
uywane tam gdzie to moliwe:
Przyrostek Znaczenie przyk/lad
-nn Liczba wierszy ekranu aaa-60
-np Liczba stron pamici c100-4p
-am Z automarginesami (zwykle domylne) vt100-am
-m Tryb mono; powstrzymuje kolor ansi-m
-mc Magiczne ciasteczko; spacje przy podwietlaniu wy30-mc
-na Brak klawiszy strzalek (zostaw je w lokalnym) c100-na
-nam Bez automatycznych marginesow vt100-nam
-nl Bez linii statusu att4415-nl
-ns Bez linii statusu hp2626-ns
-rv Odwrocone kolory c100-rv
-s Wlcza lini statusu vt100-s
-vb Uywa wizualnego dzwonka zamiast audio wy370-vb
-w Szeroki tryb (> 80 kolumn, zwykle 132) vt100-w
Dla dalszych informacji o konwencjach nazywania, poczytaj stron
term(7).
W/laciwoci
Poniej znajduje si kompletna liczba wlaciwoci zalczanych w bloku opisu
terminfo i dostpnych dla kodu, korzystajcego z terminfo. W kadej linii
tabeli
Zmienna jest nazw, poprzez ktor programista (na poziomie terminfo)
dostaje si do wlaciwoci.
Nazwaw/laciwoci jest krotk nazw, uywan w tekcie bazy danych, a korzysta
z niej osoba aktualizujca baz. Jeli to moliwe, nazwywlaciwoci s
wybierane w standardzie (przynajmniej zblionym do) ANSI X3.64-1979
(ktory jest obecnie wypierany przez ECMA-48, uywajcego jednak podobnych
nazw). Semantyka powinna te odpowiada specyfikacji.
Kod termcap jest star nazw wlaciwoci termcap (niektore wlasciwoci s
nowe i maj nazwy nie pochodzce z termcap).
Nazwy wlaciwoci nie maj sztywnego limitu dlugoci, lecz przyjto
nieformalny limit 5 znakowy, ktory zachowuje je w zwartej postaci i
umoliwia tabulacjom w pliku Caps ladne zawijanie.
Na koniec, pole opisu probuje przenie semantyk wlaciwoci. W polu opisu
moesz znale pewne kody:
(P) okrela, e mona poda wypelnianie (padding)
#[1-9] w polu opisu okrela, e lacuch jest przekazywany przez tparm z
okrelonymi parametrami (#i). (patrz lib_tparm.c z pakietu
ncurses--przyp. tlum.)
(P*) okrela, e wypelnianie moe roni si w zalenoci do liczby objtych
nim linii.
(#i) okrela ity parametr.
Oto wlaciwoci logiczne:
Zmienna Nazwa- Kod Opis
Booleans w/la. Tcap
auto_left_margin bw bw cub1 zawija z
kolumny 0 na ostatni
auto_right_margin am am terminal ma
marginesy
automatyczne
back_color_erase bce ut ekran jest
czyszczony kolorem
tla
can_change ccc cc terminal moe
redefiniowa
istniejce kolory
ceol_standout_glitch xhp xs tryb wyroniony nie
kasowany przez
nadpisywanie (hp)
col_addr_glitch xhpa YA jedynie ruchy
dodatnie dla
wlaciwoci hpa/mhpa
cpi_changes_res cpix YF zmienianie natenia
(pitch) znaku
zmienia rozdzielczo
cr_cancels_micro_mode crxm YB uywanie cr wylcza
tryb micro
dest_tabs_magic_smso xt xt tabulacje
destruktywne,
magiczny znak so
(t1061)
eat_newline_glitch xenl xn nowa linia jest
ignorowana po 80
kolumnach
erase_overstrike eo eo spacj mona kasowa
nadstuknicia
(overstrikes)
generic_type gn gn podstawowy rodzaj
linii
hard_copy hc hc terminal hardcopy
hard_cursor chts HC kursor jest trudny
do zobaczenia
has_meta_key km km ma klawisz meta
(ustawia bit
parzystoci)
has_print_wheel daisy YC drukarka wymaga do
zmiany zestawu
znakow operatora
has_status_line hs hs ma dodatkow lini
statusu
hue_lightness_saturation hls hl terminal uywa tylko
notacji HLS kolorow
(Tektronix)
insert_null_glitch in in tryb wstawiania
(insert) rozronia
zera (nulls)
lpi_changes_res lpix YG zmienianie natenia
(pitch) linii
zmienia rozdzielczo
memory_above da da wywietlacz moe by
zachowywany ponad
ekranem
memory_below db db wywietlacz moe by
zachowywany pod
ekranem
move_insert_mode mir mi w trybie wstawiania
mona si bezpiecznie
porusza
move_standout_mode msgr ms w trybie wyronienia
mona si bezpiecznie
porusza
needs_xon_xoff nxon nx wypelnianie nie
zadziala, potrzeba
xon/xoff
no_esc_ctlc xsb xb ul ([terminal]
beehive) (f1=escape,
f2=ctrl C)
no_pad_char npc NP znak dopelniania nie
istnieje
non_dest_scroll_region ndscr ND przewijanie regionu
nie jest
destruktywne
non_rev_rmcup nrrmc NR smcup nie odwraca
rmcup
over_strike os os terminal moe
nadstukiwa
prtr_silent mc5i 5i drukarka nie daje
echa na ekran
row_addr_glitch xvpa YD daje tylko dodatnie
ruchy dla wla.
vpa/mvpa
semi_auto_right_margin sam YE drukowanie ostatniej
kolumny powoduje cr
status_line_esc_ok eslok es w linii statusu mona
uywa escape
tilde_glitch hz hz nie mona drukowa
znakow ~
transparent_underline ul ul podkrelony znak
nadstukuje
xon_xoff xon xo terminal uywa
potwierdzania
xon/xoff
A oto wlaciwoci numeryczne:
Zmienna Nazwa- Kod Opis
numeryczna w/la. tcap
columns cols co liczba kolumn w
linii
init_tabs it it pocztkowo tabulacje
co # spacji
label_height lh lh wiersze w kadej
etykiecie
label_width lw lw kolumny w kadej
etykiecie
lines lines li liczba linii na
ekranie lub stronie
lines_of_memory lm lm linie pamici w
wypadku gdy > linii
ekranu. 0 => roni si
magic_cookie_glitch xmc sg liczba spacji,
pozostawianych przez
smso lub rmso
max_attributes ma ma maksymalna liczba
polczonych
atrybutow, ktore
obsluguje terminal
max_colors colors Co maksymalna liczba
kolorow na ekranie
max_pairs pairs pa maksymalna liczba
par kolorow na
ekranie
maximum_windows wnum MW maksymalna liczna
definiowalnych okien
no_color_video ncv NC atrybuty wideo,
ktorych nie mona
uywa z kolorami
num_labels nlab Nl liczba etykiet na
ekranie
padding_baud_rate pb pb najnisza szybko
przesylu (baud rate)
gdy wymagane jest
wypelnianie
(padding).
virtual_terminal vt vt liczba terminali
wirtualnych
(CB/unix)
width_status_line wsl ws liczba kolumn w
linii statusu
W strukturze term SVr4.0 istniej te nastpujce wlaciwoci numeryczne,
lecz nie s one jeszcze udokumentowane w podrczniku. Pochodz one z
SVr4-tego wsparcia dla drukarki.
Zmienna Nazwa- Kod Opis
Numeryczna w/la Tcap
bit_image_entwining bitwin Yo liczba przej
(passes) dla kadego
wiersza obrazu
bitowego
bit_image_type bitype Yp rodzaj urzdzenia
obrazu bitowego
buffer_capacity bufsz Ya licza bajtow
buforowanych przed
drukowaniem
buttons btns BT liczba przyciskow
myszy
dot_horz_spacing spinh Yc odstpy poprzeczne
punktow wyraone w
punktach na cal
(DPI)
dot_vert_spacing spinv Yb odstpy pionowe igiel
(pins) w iglach na
cal
max_micro_address maddr Yd maksymalna warto w
micro_..._address
max_micro_jump mjump Ye maksymalna warto w
parm_..._micro
micro_col_size mcs Yf rozmiar kroku
znakowego w trybie
micro mode
micro_line_size mls Yg rozmiar kroku
liniowego w trybie
micro mode
number_of_pins npins Yh liczba igiel w
glowicy drukujcej
(print-head)
output_res_char orc Yi rozdzielczo
poprzeczna w
jednostkach na lini
output_res_horz_inch orhi Yk rozdzielczo
poprzeczna w
jednostkach na cal
output_res_line orl Yj rozdzielczo pionowa
w jednostkach na
lini
output_res_vert_inch orvi Yl rozdzielczo pionowa
w jednostkach na cal
print_rate cps Ym wydrukuj szybko
przesylu w znakach
na sekund
wide_char_size widcs Yn rozmiar kroku znaku
w trybie podwojonej
szerokoci
A oto wlaciwoci napisowe:
Zmienna Nazwa- Kod Opis
Napisowa w/la. Tcap
acs_chars acsc ac graficzne pary
zestawu znakow,
oparte o vt100
back_tab cbt bt wsteczna tabulacja
(P)
bell bel bl sygnal audiofoniczny
(dzwonek) (P)
carriage_return cr cr powrot karetki (P*)
(P*)
change_char_pitch cpi ZA Zmie liczb znakow na
cal
change_line_pitch lpi ZB Zmie liczb linii na
cal
change_res_horz chr ZC Zmie rozdzielczo
poprzeczn
change_res_vert cvr ZD Zmie rozdzielczo
pionow
change_scroll_region csr cs zmie region na lini
#1 do linii #2 (P)
char_padding rmp rP podobne do ip, lecz
w trybie wstawiania
(insert)
clear_all_tabs tbc ct czy wszystkie
tabulatory (tab
stops) (P)
clear_margins mgc MC czy wszystkie mikkie
lewe i prawe
marginesy
clear_screen clear cl czy ekran i wyzeruj
kursor (home cursor)
(P*)
clr_bol el1 cb wyczy pocztek linii
clr_eol el ce wyczy do koca linii
(P)
clr_eos ed cd wyczy do koca ekranu
(P*)
column_address hpa ch pozycja pozioma #1
(P)
command_character cmdch CC ustawialny w
prototypie znak cmd
terminala !?
create_window cwin CW definiuj okno #1 od
#2,#3 do #4,#5
cursor_address cup cm przejd do wiersza #1
kolumny #2
cursor_down cud1 do w dol o 1 lini
cursor_home home ho kursor do domu (jeli
bez cup)
cursor_invisible civis vi uczy kursor
niewidzialnym
cursor_left cub1 le przejd jedn spacj w
lewo
cursor_mem_address mrcup CM adresowanie kursora
wzgldem pamici
cursor_normal cnorm ve spowoduj, e kursor
stanie si normalny
(odtworz zmiany
civis/cvvis)
cursor_right cuf1 nd niedestruktywna
spacja (przejd w
prawo o spacj)
cursor_to_ll ll ll ostatnia linia,
pierwsza kolumna
(jeli bez cup)
cursor_up cuu1 up w gor o 1 lini
cursor_visible cvvis vs uczy kursor bardzo
widzialnym
define_char defc ZE zdefiniuj znak
delete_character dch1 dc usu znak (P*)
delete_line dl1 dl usu lini (P*)
dial_phone dial DI wykr numer #1
dis_status_line dsl ds wylcz lini statusu
display_clock dclk DK wywietl w pozycji
(#1,#2) zegar
down_half_line hd hd pol linii w dol
ena_acs enacs eA wlcz alternatywny
zestaw znakow
enter_alt_charset_mode smacs as rozpocznij tryb
alternatywnego
zestawu znakow (P)
enter_am_mode smam SA wlcz automatyczne
marginesy
enter_blink_mode blink mb wlcz migotanie
enter_bold_mode bold md wlcz tryb
wytluszczenia
(dodatkowe
rozjanienie)
enter_ca_mode smcup ti lacuch do
rozpoczynania
programow, uywajcych
cup
enter_delete_mode smdc dm wejd w tryb
kasowania (delete)
enter_dim_mode dim mh wlcz tryb
pol-rozjanienia
enter_doublewide_mode swidm ZF wejd w tryb
podwojnej szerokoci
enter_draft_quality sdrfq ZG wejd w tryb jakoci
draft
enter_insert_mode smir im wejd w tryb
wstawiania (insert)
enter_italics_mode sitm ZH wejd w tryb kursywy
enter_leftward_mode slm ZI rozpocznij
lewokierunkowy ruch
karetki
enter_micro_mode smicm ZJ rozpocznij tryb
micro-motion (mikro
ruchow)
enter_near_letter_quality snlq ZK wejd w tryb NLQ
enter_normal_quality snrmq ZL wejd w tryb
normalnej jakoci
enter_protected_mode prot mp wlcz tryb chroniony
enter_reverse_mode rev mr wlcz tryb inwersyjny
wideo
enter_secure_mode invis mk wlcz tryb
niewidzialny (znaki
niewidoczne)
enter_shadow_mode sshm ZM wejd w tryb shadow-
print (cieniowego-
drukowania)
enter_standout_mode smso so rozpocznij tryb
wyroniony (standout)
enter_subscript_mode ssubm ZN wejd w tryb indeksu
dolnego
enter_superscript_mode ssupm ZO wejd w tryb indeksu
gornego
enter_underline_mode smul us rozpocznij tryb
podkrelenia
enter_upward_mode sum ZP rozpocznij
gornokierunkowy ruch
karetki
enter_xon_mode smxon SX wlcz potwierdzenia
xon/xoff
erase_chars ech ec wykasuj #1 znakow
(P)
exit_alt_charset_mode rmacs ae zakocz [dzialanie]
alternatywnego
zestawu znakow (P)
exit_am_mode rmam RA wylcz automatyczne
marginesy
exit_attribute_mode sgr0 me wylcz wszystkie
atrybuty
exit_ca_mode rmcup te lacuchy do koczenia
programow, uywajcych
cup
exit_delete_mode rmdc ed zakocz tryb
kasowania
exit_doublewide_mode rwidm ZQ zakocz tryb
podwojonej szerokoci
exit_insert_mode rmir ei zakocz tryb
wstawiania
exit_italics_mode ritm ZR zakocz tryb kursywy
exit_leftward_mode rlm ZS zakocz tryb ruchu w
lewo
exit_micro_mode rmicm ZT zakocz tryb micro-
motion
exit_shadow_mode rshm ZU zakocz tryb shadow-
print
exit_standout_mode rmso se zakocz tryb
wyronienia
exit_subscript_mode rsubm ZV zakocz tryb indeksu
dolnego
exit_superscript_mode rsupm ZW zakocz tryb indeksu
gornego
exit_underline_mode rmul ue zakocz tryb
podkrelenia
exit_upward_mode rum ZX zakocz odwrocone
ruchy znakow
exit_xon_mode rmxon RX wylcz potwierdzenia
xon/xoff
fixed_pause pause PA pauzuj przez 2-3
sekundy
flash_hook hook fh zaczep przelcznika
rozblysku (flash
switch hook)
flash_screen flash vb widzialny dzwonek
(nie moe rusza
kursora)
form_feed ff ff Wyrzucenie strony z
terminala hardcopy
(P*)
from_status_line fsl fs powrot z linii
statusu
goto_window wingo WG id do okna #1
hangup hup HU odwie sluchawk
init_1string is1 i1 lacuch inicjalizacji
init_2string is2 is lacuch inicjalizacji
init_3string is3 i3 lacuch inicjalizacji
init_file if if nazwa pliku
inicjalizacji
init_prog iprog iP cieka do programu do
inicjalizacji
initialize_color initc Ic inicjalizuj kolor #1
na (#2,#3,#4)
initialize_pair initp Ip inicjalizuj par #1
kolorow na
fg=(#2,#3,#4),
bg=(#5,#6,#7)
insert_character ich1 ic wstaw znak (P)
insert_line il1 al wstaw lini (P*)
insert_padding ip ip wstaw wypelnienie
(padding) po
wstawionym znaku
key_a1 ka1 K1 lewy, gorny rog
keypadu
key_a3 ka3 K3 prawy, gorny rog
keypadu
key_b2 kb2 K2 rodek keypadu
key_backspace kbs kb klawisz backspace
key_beg kbeg @1 klawisz begin
key_btab kcbt kB klawisz wstecznej
tabulacji
key_c1 kc1 K4 lewy, dolny rog
keypadu
key_c3 kc3 K5 prawy, dolny rog
keypadu
key_cancel kcan @2 klawisz cancel
(anulowania)
key_catab ktbc ka klawisz czyszczenia
wszystkich tabulacji
key_clear kclr kC klawisz czyszczenia
ekranu lub
wymazywania
key_close kclo @3 klawisz close
(zamykania)
key_command kcmd @4 klawisz polece
key_copy kcpy @5 klawisz copy
(kopiowania)
key_create kcrt @6 klawisz create
(tworzenia)
key_ctab kctab kt klawisz czyszczenia
tabulacji
key_dc kdch1 kD klawisz kasowania
znaku
key_dl kdl1 kL klawisz kasowania
linii
key_down kcud1 kd strzalka w dol
key_eic krmir kM wysylane przez rmir
lub smir w trybie
wstawiania
key_end kend @7 klawisz end
key_enter kent @8 klawisz enter/send
key_eol kel kE klawisz kasowania do
koca linii
key_eos ked kS klawisz kasowania do
koca ekranu
key_exit kext @9 klawisz exit
(zakoczenia)
key_f0 kf0 k0 klawisz funkcyjny F0
key_f1 kf1 k1 klawisz funkcyjny F1
key_f10 kf10 k; klawisz funkcyjny
F10
key_f11 kf11 F1 klawisz funkcyjny
F11
key_f12 kf12 F2 klawisz funkcyjny
F12
key_f13 kf13 F3 klawisz funkcyjny
F13
key_f14 kf14 F4 klawisz funkcyjny
F14
key_f15 kf15 F5 klawisz funkcyjny
F15
key_f16 kf16 F6 klawisz funkcyjny
F16
key_f17 kf17 F7 klawisz funkcyjny
F17
key_f18 kf18 F8 klawisz funkcyjny
F18
key_f19 kf19 F9 klawisz funkcyjny
F19
key_f2 kf2 k2 klawisz funkcyjny F2
key_f20 kf20 FA klawisz funkcyjny
F20
key_f21 kf21 FB klawisz funkcyjny
F21
key_f22 kf22 FC klawisz funkcyjny
F22
key_f23 kf23 FD klawisz funkcyjny
F23
key_f24 kf24 FE klawisz funkcyjny
F24
key_f25 kf25 FF klawisz funkcyjny
F25
key_f26 kf26 FG klawisz funkcyjny
F26
key_f27 kf27 FH klawisz funkcyjny
F27
key_f28 kf28 FI klawisz funkcyjny
F28
key_f29 kf29 FJ klawisz funkcyjny
F29
key_f3 kf3 k3 klawisz funkcyjny F3
key_f30 kf30 FK klawisz funkcyjny
F30
key_f31 kf31 FL klawisz funkcyjny
F31
key_f32 kf32 FM klawisz funkcyjny
F32
key_f33 kf33 FN klawisz funkcyjny
F33
key_f34 kf34 FO klawisz funkcyjny
F34
key_f35 kf35 FP klawisz funkcyjny
F35
key_f36 kf36 FQ klawisz funkcyjny
F36
key_f37 kf37 FR klawisz funkcyjny
F37
key_f38 kf38 FS klawisz funkcyjny
F38
key_f39 kf39 FT klawisz funkcyjny
F39
key_f4 kf4 k4 klawisz funkcyjny F4
key_f40 kf40 FU klawisz funkcyjny
F40
key_f41 kf41 FV klawisz funkcyjny
F41
key_f42 kf42 FW klawisz funkcyjny
F42
key_f43 kf43 FX klawisz funkcyjny
F43
key_f44 kf44 FY klawisz funkcyjny
F44
key_f45 kf45 FZ klawisz funkcyjny
F45
key_f46 kf46 Fa klawisz funkcyjny
F46
key_f47 kf47 Fb klawisz funkcyjny
F47
key_f48 kf48 Fc klawisz funkcyjny
F48
key_f49 kf49 Fd klawisz funkcyjny
F49
key_f5 kf5 k5 klawisz funkcyjny F5
key_f50 kf50 Fe klawisz funkcyjny
F50
key_f51 kf51 Ff klawisz funkcyjny
F51
key_f52 kf52 Fg klawisz funkcyjny
F52
key_f53 kf53 Fh klawisz funkcyjny
F53
key_f54 kf54 Fi klawisz funkcyjny
F54
key_f55 kf55 Fj klawisz funkcyjny
F55
key_f56 kf56 Fk klawisz funkcyjny
F56
key_f57 kf57 Fl klawisz funkcyjny
F57
key_f58 kf58 Fm klawisz funkcyjny
F58
key_f59 kf59 Fn klawisz funkcyjny
F59
key_f6 kf6 k6 klawisz funkcyjny F6
key_f60 kf60 Fo klawisz funkcyjny
F60
key_f61 kf61 Fp klawisz funkcyjny
F61
key_f62 kf62 Fq klawisz funkcyjny
F62
key_f63 kf63 Fr klawisz funkcyjny
F63
key_f7 kf7 k7 klawisz funkcyjny F7
key_f8 kf8 k8 klawisz funkcyjny F8
key_f9 kf9 k9 klawisz funkcyjny F9
key_find kfnd @0 klawisz find
(szukania)
key_help khlp %1 klawisz help
(pomocy)
key_home khome kh klawisz home
key_ic kich1 kI klawisz wstawiania
znaku
key_il kil1 kA klawisz wstawiania
linii
key_left kcub1 kl strzalka w lewo
key_ll kll kH dolna strzalka w
lewo (home down)
key_mark kmrk %2 klawisz mark
(zaznaczenia)
key_message kmsg %3 klawisz message
(komunikatu)
key_move kmov %4 klawisz move
(przemieszczenia)
key_next knxt %5 klawisz next
(nastpny)
key_npage knp kN klawisz nastpnej-
strony
key_open kopn %6 klawisz open
(otwarcia)
key_options kopt %7 klawisz options
(opcji)
key_ppage kpp kP klawisz poprzedniej-
strony
key_previous kprv %8 klawisz previous
(poprzedni)
key_print kprt %9 klawisz print
(drukowania)
key_redo krdo %0 klawisz redo
(odtworzenia)
key_reference kref &1 klawisz reference
key_refresh krfr &2 klawisz refresh
(odwieenia)
key_replace krpl &3 klawisz replace
(podmienienia)
key_restart krst &4 klawisz restart
key_resume kres &5 klawisz resume
(wznowienia)
key_right kcuf1 kr strzalka w prawo
key_save ksav &6 klawisz save
(zapisania)
key_sbeg kBEG &9 przesunity (shifted)
klawisz rozpoczcia
(begin key)
key_scancel kCAN &0 przesunity klawisz
cancel (anulowania)
key_scommand kCMD *1 przesunity klawisz
polecenia
key_scopy kCPY *2 przesunity klawisz
copy (kopiowania)
key_screate kCRT *3 przesunity klawisz
create (tworzenia)
key_sdc kDC *4 przesunity klawisz
kasowania znaku
key_sdl kDL *5 przesunity klawisz
kasowania linii
key_select kslt *6 klawisz wybrania
(select key)
key_send kEND *7 przesunity klawisz
end
key_seol kEOL *8 przesunity klawisz
czyszczenia do koca
linii
key_sexit kEXT *9 przesunity klawisz
exit (zakoczenia)
key_sf kind kF klawisz przewijania
w przod
key_sfind kFND *0 przesunity klawisz
find (szukania)
key_shelp kHLP #1 przesunity klawisz
help (pomocy)
key_shome kHOM #2 przesunity klawisz
home
key_sic kIC #3 przesunity klawisz
wstawiania znaku
key_sleft kLFT #4 przesunita strzalka
w lewo
key_smessage kMSG %a przesunity klawisz
message (komunikatu)
key_smove kMOV %b przesunity klawisz
move
(przemieszczenia)
key_snext kNXT %c przesunity klawisz
next
key_soptions kOPT %d przesunity klawisz
options (opcji)
key_sprevious kPRV %e przesunity klawisz
previous (poprzedni)
key_sprint kPRT %f przesunity klawisz
print (drukowania)
key_sr kri kR klawisz przewijania
wstecz
key_sredo kRDO %g przesunity klawisz
redo (odtworzenia)
key_sreplace kRPL %h przesunity klawisz
replace
(podmienienia)
key_sright kRIT %i przesunita strzalka
w prawo
key_srsume kRES %j przesunity klawisz
resume (wznowienia)
key_ssave kSAV !1 przesunity klawisz
save (zapisania)
key_ssuspend kSPD !2 przesunity klawisz
suspend
(zawieszenia)
key_stab khts kT klawisz ustawienia
tabulacji (set-tab
key)
key_sundo kUND !3 przesunity klawisz
undo (cofnicia)
key_suspend kspd &7 klawisz suspend
(zawieszenia)
key_undo kund &8 klawisz undo
(cofnicia)
key_up kcuu1 ku strzalka w gor
keypad_local rmkx ke zakocz tryb
'keyboard_transmit'
keypad_xmit smkx ks wejd w tryb
'keyboard_transmit'
lab_f0 lf0 l0 etykieta na klawiszu
f0 to nie f0
lab_f1 lf1 l1 etykieta na klawiszu
f1 to nie f1
lab_f10 lf10 la etykieta na klawiszu
f10 to nie f10
lab_f2 lf2 l2 etykieta na klawiszu
f2 to nie f2
lab_f3 lf3 l3 etykieta na klawiszu
f3 to nie f3
lab_f4 lf4 l4 etykieta na klawiszu
f4 to nie f4
lab_f5 lf5 l5 etykieta na klawiszu
f5 to nie f5
lab_f6 lf6 l6 etykieta na klawiszu
f6 to nie f6
lab_f7 lf7 l7 etykieta na klawiszu
f7 to nie f7
lab_f8 lf8 l8 etykieta na klawiszu
f8 to nie f8
lab_f9 lf9 l9 etykieta na klawiszu
f9 to nie f9
label_format fln Lf format etykiety
label_off rmln LF wylcz mikkie
etykiety
label_on smln LO wlcz mikkie etykiety
meta_off rmm mo wylcz tryb meta
meta_on smm mm wlcz tryb meta
(wlczony 8 bit)
micro_column_address mhpa ZY podobne do
column_address w
trybie micro mode
micro_down mcud1 ZZ podobne do
cursor_down w trybie
micro mode
micro_left mcub1 Za podobne do
cursor_left w trybie
micro mode
micro_right mcuf1 Zb podobne do
cursor_right w
trybie micro mode
micro_row_address mvpa Zc podobne do
row_address w trybie
micro mode
micro_up mcuu1 Zd podobne do cursor_up
w trybie micro mode
newline nel nw nowa linia (zachowuj
si jak cr z lf)
order_of_pins porder Ze dopasuj bity
programowe do igiel
glowicy drukujcej
orig_colors oc oc ustaw wszystkie pary
kolorow na wartoci
oryginalne
orig_pair op op ustaw domyln par na
warto oryginaln
pad_char pad pc znak wypelniania
(zamiast zera)
parm_dch dch DC kasuj #1 znakow (P*)
parm_delete_line dl DL kasuj #1 linii (P*)
parm_down_cursor cud DO w dol o #1 linii
(P*)
parm_down_micro mcud Zf podobne do
parm_down_cursor w
trybie micro mode
parm_ich ich IC wstaw #1 znakow (P*)
parm_index indn SF przewi w przod o #1
linii (P)
parm_insert_line il AL wstaw #1 linii (P*)
parm_left_cursor cub LE przesu #1 znakow w
lewo (P)
parm_left_micro mcub Zg podobne do
parm_left_cursor w
trybie micro mode
parm_right_cursor cuf RI przesu #1 znakow w
prawo (P*)
parm_right_micro mcuf Zh podobne do
parm_right_cursor w
trybie micro mode
parm_rindex rin SR przewi wstecz o #1
linii (P)
parm_up_cursor cuu UP przejd w gor o #1
linii (P*)
parm_up_micro mcuu Zi podobne do
parm_up_cursor w
trybie micro mode
pkey_key pfkey pk zaprogramuj klawisz
funkcyjny #1 na
wysylanie lacucha #2
pkey_local pfloc pl zaprogramuj klawisz
funkcyjny #1 na
wykonywanie lacucha
#2
pkey_xmit pfx px zaprogramuj klawisz
funkcyjny #1 na
transmitowanie
lacucha #2
plab_norm pln pn zaprogramuj etykiet
#2 na pokazywanie
lacucha #2
print_screen mc0 ps drukuj zawarto
ekranu
prtr_non mc5p pO wlcz drukark na #1
bajtow
prtr_off mc4 pf wylcz drukark
prtr_on mc5 po wlcz drukark
pulse pulse PU wybierz wydzwanianie
pulsowe
quick_dial qdial QD wykr numer #1 bez
sprawdzania
remove_clock rmclk RC usu zegarek
repeat_char rep rp powtorz znak #1 #2
razy (P*)
req_for_input rfi RF wylij nastpny znak
wejciowy (dla pty)
reset_1string rs1 r1 lacuch resetowania
reset_2string rs2 r2 lacuch resetowania
reset_3string rs3 r3 lacuch resetowania
reset_file rf rf nazwa pliku
resetowania
restore_cursor rc rc odtworz pozycj
kursora na ostatnie
save_cursor
row_address vpa cv absolutna pozycja
pionowa #1 (P)
save_cursor sc sc zapisz biec pozycj
kursora (P)
scroll_forward ind sf przewi tekst w gor
(P)
scroll_reverse ri sr przewi tekst w dol
(P)
select_char_set scs Zj wybierz zestaw
znakow
set_attributes sgr sa zdefiniuj atrybuty
wideo #1-#9 (PG9)
set_background setb Sb Ustaw kolor tla #1
set_bottom_margin smgb Zk ustaw dolny margines
na biecej linii
set_bottom_margin_parm smgbp Zl ustaw dolny margines
na linii #1 lub #2
linii od dolu
set_clock sclk SC ustaw zegarek na
godzin #1, minut #2,
#3 sekund
set_color_pair scp sp ustaw biec par
kolorow na #1
set_foreground setf Sf ustaw kolor #1
set_left_margin smgl ML ustaw lewy mikki
margines na biecej
kolumnie
set_left_margin_parm smglp Zm ustaw lewy (prawy)
margines na kolumnie
#1 (#2)
set_right_margin smgr MR ustaw prawy mikki
margines na biecej
kolumnie
set_right_margin_parm smgrp Zn ustaw prawy margines
na kolumnie #1
set_tab hts st ustaw tabulacj w
kadym wierszu, bieca
kolumna (?)
set_top_margin smgt Zo ustaw gorny margines
na biecej linii
set_top_margin_parm smgtp Zp ustaw gorny (dolny)
margines w wierszu
#1 (#2)
set_window wind wi biece okno to linie
#1-#2 i kolumny
#3-#4
start_bit_image sbim Zq zacznij drukowa
grafik bitow
start_char_set_def scsd Zr rozpocznij definicj
zestawu znakow
stop_bit_image rbim Zs przesta drukowa
grafik bitow
stop_char_set_def rcsd Zt zakocz definicj
zestawu znakow
subscript_characters subcs Zu lista indeksowalnych
dolnie znakow
superscript_characters supcs Zv lista indeksowalnych
gornie znakow
tab ht ta tabuluj do nastpnego
(sprztowego)
8-spacjowego
tabulatora
these_cause_cr docr Zw drukowanie dowolnego
z nich spowoduje CR
to_status_line tsl ts przemie si do linii
statusu
tone tone TO wybierz wydzwanianie
tonowe
underline_char uc uc podkrel znak i
przesu si za niego
up_half_line hu hu pol linii w gor
user0 u0 u0 lacuch uytkownika #0
user1 u1 u1 lacuch uytkownika #1
user2 u2 u2 lacuch uytkownika #2
user3 u3 u3 lacuch uytkownika #3
user4 u4 u4 lacuch uytkownika #4
user5 u5 u5 lacuch uytkownika #5
user6 u6 u6 lacuch uytkownika #6
user7 u7 u7 lacuch uytkownika #7
user8 u8 u8 lacuch uytkownika #8
user9 u9 u9 lacuch uytkownika #9
wait_tone wait WA czekaj na ton
dzwonienia
(dialtone)
xoff_character xoffc XF znak XOFF
xon_character xonc XN znak XON
zero_motion zerom Zx brak przemieszczenia
dla kolejnego znaku
Nastpujce wlaciwoci lacuchowe istniej w strukturze term SVr4.0, lecz
pocztkowo nie byly opisane w podrczniku man.
Zmienna Nazwa- Kod Opis
/Lacuchowa w/la. TCap
alt_scancode_esc scesa S8 alternatywny
escape dla
emulacji scancode
bit_image_carriage_return bicr Yv przemie si na
pocztek wiersza
bit_image_newline binel Zz przemie si do
nastpnego wiersza
obrazu bitowego
bit_image_repeat birep Xy powtorz komork #1
obrazu bitowego #2
razy
char_set_names csnm Zy wymie nazwy
zestawow znakow
code_set_init csin ci inicjalizuj
sekwencj dla
wielokrotnych
zestawow kodow
color_names colornm Yw podaj nazw dla
koloru #1
define_bit_image_region defbi Yx definiuj
prostoktny region
obrazu bitowego
device_type devt dv wska obslug
jzyka/zestawu
kodow
display_pc_char dispc S1 wywietl znak PC
end_bit_image_region endbi Yy zakocz region
obrazu bitowego
enter_pc_charset_mode smpch S2 wejd w tryb
wywietlania PC
enter_scancode_mode smsc S4 wejd w tryb
scancode PC
exit_pc_charset_mode rmpch S3 zakocz tryb
wywietlania znakow
PC
exit_scancode_mode rmsc S5 zakocz tryb
scancode PC
get_mouse getm Gm curses powinny
odbiera zdarzenia
myszy
key_mouse kmous Km pojawilo si
zdarzenie myszy
mouse_info minfo Mi informacja o
statusie myszy
pc_term_options pctrm S6 opcje terminala PC
pkey_plab pfxl xl zaprogramuj
klawisz funkcyjny
#1 na wpisywanie
lacucha #2 i
pokazywanie
lacucha #3.
req_mouse_pos reqmp RQ zadaj pozycji
myszy
scancode_escape scesc S7 escape dla
emulacji scancode
set0_des_seq s0ds s0 przesu do zestawu
kodow 0 (zestaw
EUC 0, ASCII)
set1_des_seq s1ds s1 przesu do zestawu
kodow 1
set2_des_seq s2ds s2 przesu do zestawu
kodow 2
set3_des_seq s3ds s3 przesu do zestawu
kodow 3
set_a_background setab AB ustaw kolor tla
przy uyciu
sekwencji
specjalnej ANSI
set_a_foreground setaf AF ustaw kolor
pierwszego planu
przy uyciu
sekwencji
specjalnej ANSI
set_color_band setcolor Yz Change to ribbon
color #1 (?)
set_lr_margin smglr ML ustaw lewy i prawy
margines na #1, #2
set_page_length slines YZ ustaw rozmiar
strony na #1 linii
set_tb_margin smgtb MT ustawia gorny i
dolny margines na
#1, #2
Standard XSI curses dodal te oto. Pochodz one z niektorych po-4.1
wersji curses z Systemu V, np. Solaris 2.5 i IRIX 6.x. Nazwy termcapu
ncurses zostaly dla nich wynalezione; wedlug standardu XSI nie maj one
nazw termcap. Jeli twoje skompilowane wpisy terminfo ich uywaj, mog
one nie by binarnie kompatybilne z wpisami System V po SVr4.1; Strze
si!
Zmienna Nazwa- Kod Opis
/lacuchowa w/la. Tcap
enter_horizontal_hl_mode ehhlm Xh wejd w tryb
poprzecznego
podwietlenia
enter_left_hl_mode elhlm Xl wejd w tryb lewego
podwietlenia
enter_low_hl_mode elohlm Xo wejd w tryb niskiego
podwietlenia
enter_right_hl_mode erhlm Xr wejd w tryb prawego
podwietlenia
enter_top_hl_mode ethlm Xt wejd w tryb gornego
podwietlenia
enter_vertical_hl_mode evhlm Xv wejd w tryb
podwietlenia
pionowego
set_a_attributes sgr1 sA zdefiniuj drugi
zestaw atrybutow
wideo #1-#6
set_pglen_inch slength sL YI ustaw dlugo
strony na #1 setnej
cala
Przyk/ladowy wpis
Nastpujcy opis, przeznaczony dla terminala ANSI jest reprezentatywn
probk opisu wygldu nowoczesnych terminali.
ansi|ansi/pc-term compatible with color,
mc5i,
colors#8, ncv#3, pairs#64,
cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
cuu=\E[%p1%dA, dch=\E[%p1%dP, dl=\E[%p1%dM,
ech=\E[%p1%dX, el1=\E[1K, hpa=\E[%p1%dG, ht=\E[I,
ich=\E[%p1%d@, il=\E[%p1%dL, indn=\E[%p1%dS, .indn=\E[%p1%dT,
kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
kcuf1=\E[C, kcuu1=\E[A, kf1=\E[M, kf10=\E[V,
kf11=\E[W, kf12=\E[X, kf2=\E[N, kf3=\E[O, kf4=\E[P,
kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U,
kich1=\E[L, mc4=\E[4i, mc5=\E[5i, nel=\r\E[S,
op=\E[37;40m, rep=%p1%c\E[%p2%{1}%-%db,
rin=\E[%p1%dT, s0ds=\E(B, s1ds=\E)B, s2ds=\E*B,
s3ds=\E+B, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p8%t;11%;%?%p9%t;12%;m,
sgr0=\E[0;10m, tbc=\E[2g, u6=\E[%d;%dR, u7=\E[6n,
u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%p1%dd,
Wpisy mog si cign na wiele linii dziki poprzedzaniu kolejnych linii
bialymi spacjami (poza pierwsz lini). Komentarze mona zalcza w
poszczegolnych liniach przy uyciu ``#''. Wlaciwoci w terminfo wystpuj
jako trzy typy: Wlaciwoci logiczne, okreslajce czy terminal ma jak
wlaciwo; wlaciwoci numeryczne, okrelajce rozmiar terminala, oponie;
wlaciwoci lacuchowe, okrelajce sekwencje uywane do dokonywania
okrelonych operacji terminalowych.
Typy w/laciwoci
Wszystkie wlaciwoci maj nazwy. Na przyklad fakt, e terminale ANSI maj
automatyczne marginesy (tj. automatyczny return i lf po osigniciu koca
linii) jest okrelany wlaciwoci am. Z tej przyczyny opis ansi zawiera
am. Wlaciwoci numeryczne maj doklejony znak `#' i warto dodatni. Tak
wic cols, okrelajce liczb kolumn terminala, w przypadku ansi ma `80'.
Wartoci wlaciwoci numerycznych mona podawa dziesitnie, osemkowo lub
szesnastkowo, uzywajc konwencji z jzyka C (np. 255, 0377, 0xff i 0xFF).
Wlaciwoci napisowe, takie jak el (sekwencja czyszczenia do koca linii)
s podawane w kodzie dwuznakowym--najpierw jest `=', potem lacuch,
koczcyc si znakiem `,'.
Dla latwego kodowania znakow udostpnione s we wlaciwociach o wartociach
lacuchowych sekwencje specjalne. \E i \e odnosz si do znaku ESCAPE, ^x
odnosi si do control-x, a sekwencje \n \l \r \t \b \f \s odpowiadaj
nowej linii, line-feed, powrotowi karetki, tabulacji, kasownikowi
(backspace), form-feed, i spacji. Inne sekwencje specjalne to m.in. \^
dla ^, \\ dla \, \, dla przecinka, \: dla :, i \0 for zera (null). (\0
daje \200, co nie koczy lacucha, lecz zachowuje si jak znak null na
wikszoci terminali o ile podane jest CS7. Zobacz stty(1).) Znaki mog
by te podawane jako trzy cyfry osemkowe po \.
We wlaciwoci lacuchowej moe wystpowa oponienie, wyraone w
milisekundach. Jest ono ujmowane w nawiasy $<..>, np. el=\EK$<5>.
Znaki wypelnienia, zapewniajce oponienie produkuje tputs. Oponienie
musi by liczb o maksymalnie jednym miejscu precyzji dziesitnej; moe
zawiera przyrostki `*', `/' lub obydwa. `*' znaczy, e wymagane
wypelnienie jest proporcjonalne do liczby linii, ktorych dotyczy
operacja, a podany rozmiar wymagany jest na kad "dotknit jednostk". (w
przypadku wstawiania znaku, wspolczynnik jest wci liczb dotknitych
linii.) Zazwyczaj wypelnianie jest zalecane jeli urzdzenie ma wlaciwo
xon; jest ono [wtedy] uywane do obliczania kosztow, lecz nie wywoluje
oponie. Znak `/' wskazuje, e wypelnianie jest obowizkowe i wymusza
oponienie danej liczby milisekund, nawet na urzdzeniach, w ktorych
obecne jest xon, okrelajce sterowanie przeplywu.
[Wypelnianie jest uywane na starych, wolnych terminalach bez sterowania
przeplywem. Istnieje dlatego, e gdy nie ma sterowania, bufory wejciowe
urzdzenia mog si przepelni i pewne znaki mog si zgubi. Wypelnienie
takiego niepewnego okresu nieznaczcymi znakami wypelnienia zapewnia, e
istotne informacje nie zostan utracone--utracone zostan jedynie
ignorowane znaki wypelnienia. (przyp. tlum.)]
Czasem pewne wlaciwoci musz by wykomentowane. Aby to zrobi, wystarczy
przed nazw umieci kropk. Na przyklad zrobiono tak w drugim ind z
powyszego przykladu.
Pobieranie skompilowanych opis'ow
Jeli ustawiona jest zmienna rodowiskowa TERMINFO, to jest ona uywana
jako cieka do katalogu, zawierajcego skompilowany opis tego, nad czym
pracujesz. Przeszukiwany jest tylko ten katalog.
W przeciwnym przypadku, wersja ncurses czytnika terminfo bdzie szuka
skompilowanego opisu w katalogu $HOME/.terminfo. Jeli nic tam nie
bdzie, dalsze poszukiwania polec wedlug zmiennej rodowiskowej
TERMINFO_DIRS (zawierajcej rozdzielon dwukropkami list katalogow)
(pusty wpis jest rozumiany jako komenda szukania /usr/share/terminfo).
Jeli i tu nic nie zostanie znalezione, pobieranie koczy si
niepowodzeniem.
Jeli nie ustawiono ani TERMINFO, ani TERMINFO_DIRS, szukanie odbdzie si
w systemowym katalogu terminfo, /usr/share/terminfo.
(Pod curses z Systemu V nie s obslugiwane pliki $HOME/.terminfo ani
zmienna TERMINFO_DIRS.)
Przygotowywanie opis'ow
Wyjanimy teraz jak przygotowywa opisy terminali. Najefektywniejszym
sposobem jest wykorzystanie podobnego terminala z terminfo i budowanie
opisu stopniowo, wykorzystujc czciowe opisy z uyciem vi lub innego
zorientowanego ekranowo programu, sprawdzajc je w ten sposob. Miej
wiadomo, e nietypowy terminal moe wykazywa ubytki w stosunku do
opisujcego go pliku terminfo lub, e kod testujcego programu jest
nieprawidlowy.
Aby ustawi prawidlowo wypelnianie (padding) dla wstawiania linii (jeli
producent terminala tego nie udokumentowal), mona wykona test: edytuj
duy plik przy 9600 bodow, nastpnie skasuj ok. 16 linii ze rodka ekranu,
potem nacinij kilka razy szybko `u'. Jeli terminal si zamieci,
wymagane jest wiksze wypelnianie. Podobny test mona zrobi do wstawiania
znaku.
Podstawowe w/laciwoci
Liczba kolumn terminala jest okrelana wlaciwoci numeryczn cols. Jeli
terminal jest CRT, to liczba linii ekranu jest podawana we wlaciwoci
lines. Jeli terminal zawija linie po dojciu do prawego marignesu, to
powinien posiada wlaciwo am. Jeli terminal moe czyci swoj ekran,
pozostawiajc kursor w pozycji domowej, to powinno to by okrelone przez
wlaciwo lacuchow clear. Jeli terminal wykonuje nadstukiwanie (a nie
czyci pozycji nadstukiwanej), to powinien posiada wlaciwo os. Jeli
terminal jest terminalem drukujcym, bez jednostki soft copy, to
powinien mie zarowno hc jak i os. (os dotyczy terminali z zakresem
przechowywania, jak w serii TEKTRONIX 4010 ale take czy w terminalach
hardcopy i APL.) Jeli istnieje kod, przenoszcy kursor do lewego kraca
biecego wiersza, to powinien by on podany jako cr. (Zwykle jest to
powrot karetki, control M.) Jeli istnieje kod dzwonka (bell, beep,
itp.), to powinien by on podany jako bel.
Jeli istnieje kod, przesuwajcy kursor o jedn pozycj w lewo (jak
backspace), to wlaciwo ta powinna by podana jako cub1. Podobnie, kod
przesuwajcy w prawo, gor i dol powinien by podany jako cuf1, cuu1, i
cud1. Te lokalne ruchy kursora nie powinny zmienia tekstu, ktory
mijaj, np. normalnie nie uywa si `cuf1= ', gdy spacja skasowala by
znak.
Wanym spostrzeeniem w tym momencie jest fakt, e lokalne ruchy kursora,
zakodowane w terminfo nie s zdefiniowane w lewych i gornych kracach
terminala CRT. Programy nie powinny wic uywa backspace na lewym kracu,
chyba e podane jest bw. Podobnie, nie powinny probowa i w gor z
pierwszej linii. Aby przewin tekst do gory, program powinien przej do
dolnego, lewego naronika ekranu i wysla lacuch ind (index).
Aby przewin tekst w dol, program idzie do lewego gornego naronika i
wysyla lacuch ri (reverse index). Lacuchy ind i ri nie s zdefiniowane
w przypadku przebywania w nieodpowiednich miejscach ekranu.
Wersjami parametryzowanymi sekwencji przewijajcych s indn i rin, ktore
maj tak sam semantyk jak ind i ri, lecz dodatkowo pobieraj parametr i
przewijaj tyle wlanie linii. S one rownie niezdefiniowane w
nieodpowiednich obszarach ekranu.
Wlaciwo am mowi czy kursor trzyma si prawego kraca ekranu po wyslaniu
tekstu, lecz niekoniecznie tyczy si cuf1 z ostatniej kolumny. Jedyny
ruch lokalny, ktory jest zdefiniowany z lewego kraca przy podaniu bw to
cub1, ktory przejdzie do prawego kraca poprzedniego wiersza. Jeli bw
nie jest podane, efekt jest niezdefiniowany. Jest to przydatne np. do
rysowania ramki wokol kracow ekranu. Jeli terminal ma przelczan wlaciwo
automatycznych marginesow, to plik terminfo zwykle przyjmuje, e jest
ona wlczona, tj. am. Jeli terminal ma polecenie, ktore przechodzi do
pierwszej kolumny nastpnej linii, to komenda ta moe by podana jako nel
(nowa linia). Nie ma znaczenia czy polecenie to czyci reszt biecej
linii, wic jeli terminal nie posiada cr i lf to moe wci uda si zloy z
czego dzialajcy nel.
Wlaciwoci te wystarczaj do opisania terminala hard-copy i "glass-tty".
W konsekwencji, model teletype 33 jest opisany jako
33|tty33|tty|model 33 teletype,
bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,
a Lear Siegler ADM-3 jako
adm3|3|lsi adm3,
am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
ind=^J, lines#24,
/Lacuchy parametryzowane
Adresowanie kursora i inne lacychy wymagajce parametrow terminala s
opisaywane przez wlaciwo parametryzowanego lacucha, w ktorej wystpuj
sekwencje specjalne typu printf(3S), jak %x. Na przyklad aby adresowa
kursor, podana jest wlaciwo cup, uywajca dwoch parametrow: wiersza i
kolumny adresowania. (wiersze i kolumny sa numerowane od zera i odnosz
si do fizycznego ekranu, widzianego przez uytkownika, a nie do
niewidzialnego obszaru pamici.) Jeli terminal posiada zwizane z pamici
adresowanie kursora, to moe to by wskazywane przez mrcup.
Mechanizm parametrow uywa stosu i specjalnych kodow % do jego obslugi.
Zazwyczaj sekwencja powoduje wepchnicie jednego z parametrow na stos, a
nastpnie jego wydrukowanie w pewnym formacie. Czsto wymagane s bardziej
zloone operacje.
Kodowania % maj nastpujce znaczenia:
%% daje `%'
%[[:]flagi][szeroko[.precyzja]][doxXs]
podobnie jak w printf, flagi to [-+#] i spacja
%c drukowanie pop() daje %c
%p[1-9] wepchnij i'ty parm
%P[a-z] ustaw zmienn dynamiczn [a-z] na pop()
%g[a-z] pobierz dynamiczn zmienn [a-z] i wepchnij j
%P[A-Z] ustaw zmienn statyczn [a-z] na pop()
%g[A-Z] pobierz zmienn statyczn [a-z] i wepchnij j
%'c' stala znakowa c
%{nn} stala calkowita nn
%l wepchnij strlen(pop)
%+ %- %* %/ %m
arytmetyka (%m to mod): push(pop() op pop())
%& %| %^ operacje bitowe: push(pop() op pop())
%= %> %< operacje logiczne: push(pop() op pop())
%A, %O operacje logiczne and i or (dla warunkow)
%! %~ jednoargumentowe operacje push(op pop())
%i dodaj 1 do pierwszych dwoch parm (terminale ANSI)
%? expr %t czthen %e czelse %;
if-then-else, %e czelse jest opcjonalna.
Dopuszalne s else-if a'la Algol 68:
%? c1 %t b1 %e c2 %t b2 %e c3 %t b3 %e c4 %t b4 %e %;
ci s warunkami, bi s cialami.
Operacje binarne s w postaci postfiksowej, z operandami w typowej
kolejnoci. Znaczy to, e aby uzyska x-5, mona uy "%gx%{5}%-". Zmienne %P
i %g s stale podczas analizy lacucha specjalnego.
Rozwa GP2645, w ktorym aby dosta si do 3 wiersza i 12 kolumny nalealo
wysla \E&a12c03Y, wypelnionego na 6 milisekund. Zauwa, e kolejno
wierszy i kolumn jest tu w inwersji i e s one drukowane jako dwie
cyfry. W efekcie jego wlaciwo cup to "cup=6\E&%p2%2dc%p1%2dY".
Microterm ACT-IV wymaga poprzedzenia biecego wiersza i kolumny znakiem
^T i zakodowania wiersza i kolumny binarnie, "cup=^T%p1%c%p2%c".
Terminale, uywajce "%c" musz by w stanie cofn (backskpace) kursor
(cub1) i przesuwa go o jedn lini w gor na ekranie (cuu1). Jest to
konieczne, gdy nie zawsze bezpiecznie jest transmitowa \n, ^D i \r,
poniewa system moe je zmieni lub pomin. (funkcje biblioteczne,
obslugujce terminfo ustawiaj tryby tty tak, aby tabulacje nigdy nie
byly rozwijane, wic \t moe wysyla bez obaw. Jest to sprawa pierwszej
wagi dla Ann Arbor 4080.)
Ostatnim przykladem jest LSI ADM-3a, ktory uywa offsetow wiersza i
kolumny ze spacj, "cup=\E=%p1%' '%+%c%p2%' '%+%c". Po wyslaniu `\E=',
pierwszy parametr jest wpychany na stos, wpychana jest warto ASCII dla
spacji (32), s one nastpnie dodawane (wpychanie na stos ich sumy i
zamiana dwoch poprzednich wartoci) i produkowane jako znak. Nastpnie
to samo jest wykonywane dla drugiego parametru. Moliwe s rownie
bardziej zloone dzialania arytmetyczne na stosie.
Ruchy kursora
Jeli terminal posiada szybki sposob na zerowanie pozycji kursora (na
lewy gorny naronik ekranu), to moe to by podane jako home; podobnie,
szybkim sposobem dostania si do dolnego lewego naronika jest ll; moe to
wykonywa przejcie w gor z pomoc cuu1 z pozycji zerowej, lecz program
samodzielnie nie powinien tego robi (chyba e ll tak robi), gdy
aplikacja nie moe nic zaklada o rezultacie przejcia w gor z pozycji
zerowej. Zauwa, e zerowanie pozycji jest rownowane adresowaniu na
(0,0): na lewy gorny naronik ekranu, a nie pamici. (Z tej przyczyny
sekwencja \EH terminali HP nie moe by uywana jako home.)
Jeli terminal posiada bezwzgldne (absolute) adresowanie wierszy lub
kolumn, to moe to by podane jako pojedyncze wlaciwoci parametryczne,
hpa (bezwzgldna pozycja pozioma) i vpa (bezwzgldna pozycja pionowa).
Czasami s one krotsze ni bardziej ogolne sekwencje dwuparametrowe (np.
dla hp2645) i mog by uywane chtniej ni cup. Jeli istniej
sparametryzowane ruchy lokalne (np. przesu n spacji w prawo), to mog by
one podane jako cud, cub, cuf i cuu z pojedynczym parametrem,
okrelajcym ilo spacji przesunicia. Sekwencje te s przydatne jeli
terminal nie ma cup, tak jak np. TEKTRONIX 4025.
Jeli terminal podczas przcy z programem, uywajcym wlaciwoci musi by w
specjalnym trybie dzialania, to kody wchodzenia i wychodzenia z tego
trybu mog by podane jako smcup i rmcup. Przyszlo to m.in. z terminali
takich jak Concept, ktory mial wicej ni jedn stron pamici. Jeli
terminal ma tylko zwizane z pamici adresowanie kursora (a nie zwizane z
ekranem) to jednoekranowe okno musi by poprawione w celu wymuszenia
poprawnego dzialania adresowania kursora. Jest to uywane rownie dla
TEKTRONIX 4025, gdzie smcup ustawia znak komendy na ten, uywany przez
terminfo. Jeli sekwencja smcup nie odtworzy ekranu po wyslaniu
sekwencji rmcup (do stanu sprzed wyslania rmcup), podaj nrrmc.
Czyszczenie obszar'ow
Jeli terminal moe czyci ekran od biecej pozycji do koca linii,
pozostawiajc kursor na swoim miejscu, to powinno to by okrelone jako
el. Jeli terminal moe czyci ekran od koca linii, do biecej pozycji,
pozostawiajc kursor na miejscu, to powinno to by okrelone jako el1.
Jeli terminal moe czyci ekran od biecej pozycji do koca wywietlacza, to
powinno to by okrelane jako ed. Ed jest zdefiniowane jedynie dla
pierwszej kolumny linii. (Moe wic by symulowane przez danie kasowania
wielkiej liczby linii jeli prawidziwe ed nie jest dostpne.)
Wstawianie/kasowanie linii i ruchy pionowe
Jeli terminal moe otworzy now pust lini przed lini, w ktorej znajduje
si kursor, to powinno to by okreslone jako il1; jest to obslugiwane
tylko z pierwszej pozycji w linii. Kursor musi potem pojawi si na
nowej, pustej linii. Jeli terminal moe kasowa lini, na ktorej znajduje
si kursor, to powinno to by okrelone przez dl1; moe to by obslugiwane
tylko z pierwszej pozycji na kasowanej linii. Wersje il1 i dl1, ktore
mog pobiera parametr, okrelajcy ile linii skasowa lub wstawi, mog by
podawane jako il i dl.
Jeli terminal ma ustawialny region przewijania (jak vt100), to komenda
ustawiajca to moe by opisana z pomoc wlaciwoci csr, pobierajcej dwa
parametry: gorn i doln lini regionu przewijania. Pozycja kursora jest
po uyciu tej komendy niestety niezdefiniowana.
Efekt wstawienia lub skasowania linii mona osign z uyciem csr na
odpowiednio wybranym regionie; komendy sc i rc (zachowania i
odtworzenia kursora) mog by wowczas przydatne do zapewnienia, e
zestawiony lacuch nie przesunie kursora. (Zauwa, e biblioteka
ncurses(3X) dokonuje takiej syntezy automatycznie, wic nie musisz
komponowa lacuchow wstawienia/skasowania z uyciem csr).
Innym sposobem tworzenia wstawiania i kasowania moe by uycie kombinacji
wlaciwoci index i memory-lock, obecnych na niektorych terminalach
(takich, jak HP-700/90, ktore jednak posiadaj rownie insert/delete).
Wstawianie linii na gorze lub u dolu ekranu moe by dokonywane rownie z
uyciem ri lub ind, co czsto moe si okaza szybsze nawet od istniejcych
wlaciwoci.
Warto logiczna non_dest_scroll_region powinna by ustawiona jeli kade
okno przewijajce jest efektywnie widokiem na obraz o rozmiarze ekranu.
Aby przetestowa istnienie tej wlaciwoci, utworz w rodku ekranu region
przewijania, napisz co na dolnej linii, przesu kursor na pocztek
regionu i wykonaj ri, a nastpnie dl1 lub ind. Jeli dane przewijane z
dolu regionu ri pojawi si ponownie, to przewijanie nie jest
destruktywne. Curses z Systemu V i XSI oczekuj, e ind, ri, indn i rin
symuluj przewijanie destruktywne; ich dokumentacja ostrzega by nie
definiowa csr, chyba e jest to prawda. Ta implementacja curses jest
bardziej liberalna i dokona jawnego kasowania po przewiniciu, jeli
zdefiniowane jest ndstr.
Jeli terminal potrafi definiowa okno jako cz pamici, ktora wspolpracuje
ze wszystkimi komendami, to powinno by to okrelone przez
parametryzowany lacuch wind. Cztery parametry to kolejno: pocztkowe i
kocowe linie pamici, pocztkowe oraz koczce kolumny pamici.
Jeli terminal potrafi zachowywa pami wywietlacza powyej, to podana
powinna by wlaciwo da; jeli zachowana moe by pami wywietlacza poniej,
to podana powinna by wlaciwo db. Wskazuj one, e kasowanie linii lub
przewijanie moe spowodowa pojawienie si niezerowych linii z dolu i e
przewijanie w tyl z pomoc ri moe przynie niezerowe linie z gory.
Wstawianie/kasowanie znaku
Istniej dwa podstawowe rodzaje inteligentnych terminali, jeli bra pod
uwag obslug wstawiania/kasowania znakow opisywan w terminfo.
Najpopularniejsze operacje wstawiania/kasowania znakow tycz tylko
znakow w biecej linii i sztywno przesuwaj znaki w kierunku jej koca.
Inne terminale, takie jak Concept 100 i Perkin Elmer Owl rozroniaj
spacje wstukane i niewstukane, przesuwajc przy wstawianiu/kasowaniu a
do najbliszej niewstukanej spacji, ktora jest nastpnie albo kasowana,
albo rozwijana na dwie niewstukane spacje. Rodzaj terminala mona okreli
przez wyczyszczenie ekranu i nastpnie wpisanie tekstu, rozdzielonego
ruchami kursora. Wstukaj przy uyciu ruchow kursora (nie spacji)
"abc def". Nastpnie ustaw kursor przed "abc" i wlcz terminal w tryb
wstawiania. Jeli wpisywanie znakow powoduje, e reszta linii sztywno
przesuwa si w prawo, to terminal nie rozronia spacji wstukanych od
niewstukancyh. Jeli "abc" przesunie si do "def" ktore nastpnie zacznie
si posuwa wraz z nim a do koca linii, to masz drugi rodzaj terminala. W
tym wypadku powiniene poda wlaciwo in, ktora oznacza "insert null".
Chocia s to logicznie dwa oddzielne atrybuty (jednoliniowy vs.
wieloliniowy tryb wstawiania i specjalne traktowanie niewstukanych
spacji), nie znalelimy terminala, ktorego tryb wstawiania nie moglby
zosta opisany pojedynczym atrybutem.
Terminfo moe opisywa zarowno terminale posiadajce tryb wstawiania, jak
i terminale, ktore wysylaj prost sekwencj do otwierania pustej pozycji
w biecej linii. Jako smir podaje si sekwencj wchodzenia w tryb
wstawiania. Jako rmir podaje si sekwencje do wychodzenia z trybu
wstawiania. Jako ich1 podaje si sekwencj, ktor naley wysla tu przed
wyslaniem wstawianego znaku. Wikszo terminali z prawdziwym trybem
wstawiania nie daje ich1; terminale, ktore wysylaj sekwencje do
otwierania pozycji ekranu podaj j.
Jeli twoj terminal posiada obydwie te wlaciwoci, to zwykle wybierany
jest tryb wstawiania. Technicznie, nie powiniene podawa obydwu, chyba e
terminal wymaga ich lcznego dzialania. Niektore nie-curses-owe
aplikacje mog si pogubi jeli podane s obydwie; symptomem s podwojone
znaki we wstawianiu uywajcym odwieania. Wymaganie to jest obecnie
rzadkie; wikszo sekwencji ich nie wymaga poprzedzajcego smir, a wikszo
trybow wstawiania smir nie wymaga ich1 przed kadym znakiem. Dlatego
curses zaklada, e tak wlanie jest i uywa albo rmir/smir albo ich/ich1
(ale nie obydwu). Jeli musisz napisa opis dla ncurses, dla terminala,
wymagajcego obydwu tych dziala, zalcz sekwencje rmir/smir w ich1.
Jeli po wstawieniu wymagane jest dopelnienie, podaj je jako liczb
milisekund w ip (opcja lacuchowa). Wszelkie inne sekwencje, ktore
wymagaj wyslania po wstawieniu pojedynczego znaku rownie mog by podane
w ip. Jeli twoj terminal wymaga zarowno umieszczenia w `trybie
wstawiania' jak i specjalnego kodu do poprzedzania kadego wstawianego
znaku, to podane mog by smir/rmir oraz ich1 i obydwie sekwencje zostan
uyte. Wlaciwo ich z jednym parametrem powtarza rezultat ich1 n-
krotnie.
Jeli midzy znakami wpisywanymi nie w trybie wstawiania wymagane jest
wypelnianie, podaj je jako liczb milisekund wypelniania w rmp(???).
Czasami konieczne jest przesunicie si w trybie wstawiania, aby usun
znaki z tej samej linii (np. jeli za pozycj wstawiania znajduje si
tabulacja). Jeli twoj terminal zezwala na ruchy podczas przebywania w
trybie wstawiania, to powinien mie wlaciwo mir, przyspieszajc w tym
przypadku wstawianie. Pominicie mir ma wplyw jedynie na szybko.
Niektore terminale (np. Datamedia) nie mog mie mir, gdy ich tryb
wstawiania dziala tak, e na to nie pozwala.
Do kasowania pojedynczego znaku mona poda dch1, albo dch do kasowania z
parametrem n, ktory mowi, by skasowa n znakow, lub sekwencje wchodzenia
(smdc) i wychodzenia (rmdc) z trybu kasowania (dowolny tryb, ktorego
terminal wymaga dla zadzialania dch1).
Komenda do kasowania n znakow (rownowana wypuszczeniu n spacji bez
przesuwania kursora) moe by okrelona jako ech z jednym parametrem.
Podwietlanie, podkrelanie i wizualne dzwonki
Jeli twoj terminal ma jeden lub wicej rodzajow atrybutow wywietlania,
to mog one by reprezentowane na wiele ronych sposobow. Jedn z postaci
wywietlacza powiniene okreli jako tryb wyr'oniony (standout),
reprezentujcy dobry, kontrastowy, latwy do odczytu format podwietlania
komunikatow o bldach i innych rzeczy wymagajcych zwrocenia uwagi. (Jeli
masz wybor, to dobrym pomyslem jest inwersja kolorow plus rednie
rozjanienie, lub te sama inwersja.) Sekwencje, przeznaczone do
wchodzenia i wychodzenia z trybu wyronionego s podawane jako smso i
rmso. Jeli kod zmiany na tryb wyroniony pozostawia na ekranie jedn lub
dwie spacje (jak w TVI 912 i Teleray 1061), to naley poda xmc,
okrelajce ile spacji jest pozostawianych.
Kody rozpoczynania podkrelenia i jego koczenia mog by podawane jako
smul i rmul. Jeli terminal posiada kod podkrelania biecego znaku i
przesuwania kursora o jedn pozycj w prawo (jak w Microterm Mime), to
moe to by podane jako uc.
Inne wlaciwoci wchodzenia w rone tryby podwietlenia to blink
(migotanie) bold (wytluszczenie, lub rozjanienie) dim (rednia-jasno)
invis (tekst niewidzialny, lub `spacjowanie') prot (chronione) rev
(inwersja kolorow) sgr0 (wylcz wszystkie tryby atrybutow) smacs (wejd w
tryb alternatywnego zestawu znakow) i rmacs (wyjd z trybu
alternatywnego zestawu znakow). Wlczenie dowolnego z tych trybow w
pojedynk moe lub moe nie wylczy innych trybow.
Jeli istnieje sekwencja do ustawiania kombinacji trybow, to powinna by
podana jako sgr (ustaw atrybuty), i pobiera 9 parametrow. Kady z
parametrow moe by zerowy lub niezerowy, wskazujc tak czy odpowieni
atrybut jest wlczony czy nie. 9 parametrow to kolejno: wyronienie,
podkrelenie, inwersja, migotanie, rednia-jasno, wytluszczenie,
spacjowanie, chornienie, alternatywny zestaw znakow. Nie wszystkie
tryby musz by wspierane przez sgr, powinny by natomiast te, dla ktorych
istniej oddzielne komendy atrybutow.
Na przyklad DEC vt220 wspiera wikszo trybow:
parametr tparm atrybut sekwencja specjalna
p1 wyroniony \E[0;1;7m
p6 wytluszczenie \E[0;1m
Kad sekwencj specjaln rozpoczynamy od wylczenia wszelkich istniejcych
trybow, gdy nie ma prostego sposobu na okrelenie czy s aktywne. Tryb
wyronienia jest zestawiany jako kombinacja inwersji i wytluszczenia.
Terminal vt220 ma tryb ochronny, lecz nie jest on wykorzystywany w sgr,
gdy chroni rownie znaki ekranu przed kasowaniami stacji. Tryb
alternatywnego zestawu znakow jest te inny; roni si tym, e jest albo
^O, albo ^N, zalenie czy jest wylczony czy wlczony. Jeli wszystkie
tryby s wlczone, to wynikow sekwencj jest \E[0;1;4;5;7;8m^N.
Niektore sekwencje s wspolne dla ronych trybow. Na przyklad ;7 jest
produkowane dla prawdziwych p1 lub p3, tj. jeli wlczony jest tryb
standout lub inwersji.
Spisanie powyszych sekwencji wraz z ich zalenociami daje
sekwencja kiedy wypuci translacja terminfo
\E[0 zawsze \E[0
;1 gdy p1 lub p6 %?%p1%p6%|%t;1%;
;4 gdy p2 %?%p2%|%t;4%;
;5 gdy p4 %?%p4%|%t;5%;
;7 gdy p1 lub p3 %?%p1%p3%|%t;7%;
;8 gdy p7 %?%p7%|%t;8%;
^N lub ^O gdy p9 ^N, inaczej ^O %?%p9%t^N%e^O%;
Wstawienie tego wszystkiego do sekwencji sgr daje:
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;
%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
Pamitaj, e jeli podajesz sgr, to musisz te poda sgr0.
Terminale z ``magic cookie'' (magiczne ciasteczko) (xmc) wystawiaj
specjalne ``ciasteczka'' gdy odbieraj sekwencje ustawiania trybu, ktore
w zasadzie wplywaj na algorytm wywietlania, a nie na dodatkowe bity dla
kadego znaku. Niektore terminale, jak HP 2621 automatycznie wychodz z
trybu wyronionego gdy kursor przechodzi do nowej linii, lub gdy jest
przeadresowany. Programy uywajce trybu wyronionego powinny z niego
wychodzi przed przesuniciem kursora lub wyslaniem znaku nowej linii.
Zwolnione mog by z tego jedynie przy obecnoci wlaciwoci msgr,
zapewniajcej, e przemieszczanie si w trybie wyronionym jest bezpieczne.
Jeli terminal posiada mechanizm zapalania ekranu dla sygnalizacji bldu
(zamiennik dzwonka), to moe to by podane jako flash. Nie moe to
przemieszcza kursora.
Jeli kursor moe by bardziej widoczny ni zwykle, to podaj t sekwencj
jako cvvis. Jeli istnieje sposob na uniewidzialnienie kursora, to
podaj to jako wlaciwo civis. Wlaciwo cnorm powinna dawa moliwo powrotu
do normalnego kursora.
Jeli twoj terminal potrafi poprawnie generowa podkrelone znaki (bez
specjalnych kodow), to jeli [nawet] nie wykonuje nadstukiwania,
powiniene naloy na niego wlaciwo ul. Jeli nadstukiwanie pozostawia
widzialnym znak `pod spodem', to naley poda wlaciwo os. Jeli
nadstukiwania s kasowalne spacj, to powinno to by wskazane wlaciwoci
eo.
Keypad i klawisze funkcyjne
Jeli terminal posiada keypad, ktory przesyla kody przy naciskaniu
klawiszy, to mona poda te informacje. Zauwa, e nie mona obslugiwa
terminali gdzie keypad dziala tylko lokalnie (tyczy si to np. czci
klawiszy HP 2621). Jeli keypad mona ustawi na przesylanie, lub
nieprzesylanie, to naley poda te kody jako smkx i rmkx. W przeciwnym
wypadku zaklada si, e keypad zawsze przesyla kody. Kody przesylane
przez strzalki w lewo, prawo, gor, dol oraz klawisz home mog by
podawane jako kcub1, kcuf1, kcuu1, kcud1, i khome. Jeli dostpne s
klawisze funkcyjne, takie jak f0, f1, ..., f10, to ich kody mog by
podane jako kf0, kf1, ..., kf10. Jeli klawisze te maj inne etykiety ni
domylne f0 do f10, to mona je poda jako lf0, lf1, ...,fl10. Mona
rownie poda kody wysylane przez inne klawisze specjalne: kll (home
down), kbs (backspace), ktbc (czy wszystkie tabulacje), kctab (czy
tabulator w tej kolumnie), kclr (klawisz czyszczenia ekranu klub
wymazywania), kdch1 (klawisz kasowania (delete)), kdl1 (kasowanie
linii), krmir (wyjcie z trybu wstawiania), kel (czyszczenie do koca
linii), ked (czyszczenie do koca ekranu), kich1 (wstaw znak, lub wejd w
tryb wstawiania), kil1 (wstaw lini), knp (nastpna strona (next page)),
kpp (poprzednia strona (previous page)), kind (przewijaj w przod), kri
(przewijaj w tyl), khts (ustaw w tej kolumnie tabulator). Dodatkowo,
jeli keypad posiada tablic 3x3 klawiszy, zawierajc 4 klawisze strzalek,
to pozostale pi klawiszy mona okreli jako ka1, ka3, kb2, kc1 oraz kc3.
Klawisze te s przydatne gdy potrzebne s efekty kierunkowego padu 3x3.
Lacuchy programowania klawiszy funkcyjnych mog by podawane jako pfkey,
pfloc oraz pfx. Lacuch do programowania etykiet ekranowych powinien by
podawany jako pln. Kady z tych lacuchow pobiera dwa parametry: numer
kalwisza funcyjnego do programowania (0 do 10) oraz lacuch, na ktory go
zaprogramowa. Numery klawiszy funkcyjnych przekraczajce ten zakres mog
programowa niezdefiniowane klawisze, w sposob zaleny od terminala.
Ronica midzy wlaciwociami polega na tym, e pfkey powoduje i nacinicie
klawisza jest rownowane wklepaniu przez uytkownika danego lacucha;
pfloc powoduje, e lacuch jest wykonywany przez terminal lokalnie; pfx
powoduje, e lacuch jest przesylany do komputera.
Wlaciwoci nlab, lw i lh definiuj liczb programowalnych etykiet
ekranowych wraz z ich szerokoci i wysokoci. Jeli istniej komendy do
wylczania etykiet, to powinny by podane w smln i rmln. smln jest
zazwyczaj wysylane po jednej, lub wikszej iloci sekwencji pln, aby
upewni si, e zmiana si uwidoczni.
Tabulacje i inicjalizacja
Jeli terminal posiada sprztowe tabulacje, to komenda przejcia do
nastpnego tabulatora moe by podana jako ht (zwykle control I). Komenda
``lewej-tabulacji'', przenoszca w lewo do poprzedzajcego tabulatora moe
by podana jako cbt. Konwencja mowi, e jeli tryby teletype wskazuj, e
tabulacje s rozwijane przez komputer, a nie s przesylane do terminala,
to programy nie powinny uywa ht czy cbt nawet jeli s one obecne, gdy
uytkownik moe nie mie prawidlowo ustawionych tabulatorow. Jeli
terminal posiada sprztowe tabulatory, ktore sa pocztkowo ustawiane co n
spacji, to powinien by podany parametr numeryczny it, pokazujcy odstpy
midzy tabulatorami. Zazwyczaj jest to uywane przez komend tset do
okrelania czy ustawia tryb dla sprztowego rozwijania tabulacji i czy
ustawia tabulatory. Jeli terminal posiada tabulatory, ktore mona
zachowa w nieulotnej pamici, to opis terminfo moe zaklada, e s one
poprawnie ustawione.
Inne wlaciwoci zawieraj lacuchy is1, is2 oraz is3, sluce do
inicjalizacji terminala, iprog, czyli ciek do programu, uywanego do
inicjalizacji terminala oraz if, czyli nazw pliku, zawierajcego dlugie
lacuchy inicjalizacyjne. Lacuchy te powinny ustawi terminal na tryby
wspolpracujce z pozostalym opisem terminfo. S one zwykle przesylane do
terminala poprzez opcj init programu tput przy kadym logowaniu
uytkownika. S one drukowane w nastpujcej kolejnoci: uruchom program
iprog; wylij is1; is2; ustaw marginesy przy uyciu mgc, smgli smgr;
ustaw tabulatory przy uyciu tbc i hts; wydrukuj plik if; i w kocu wylij
is3.
Wikszo inicjalizacji jest wykonywana w is2. Tryby specjalne terminala
mona ustawia bez duplikowania lacuchow, wstawiajc wspolne sekwencje do
is2, a specjalne elementy do is1 oraz is3. Para sekwencji, ktora
dokonuje twardego resetu z kompletnie nieznanego stanu moe by podobnie
podawana jako rs1, rs2, rf i rs3, analogicznie do is2 oraz if. Lacuchy
te s wysylane przez program reset, slucy do naprawiania terminala gdy
ten wejdzie w dziwny stan. Komendy zazwyczaj s umieszczane w rs1, rs2
rs3 i rf jedynie jeli daj denerwujce efekty na ekranie i nie s
konieczne podczas logowania sie. Na przyklad komenda ustawiania vt100
na 80 kolumn normalnie jest czci is2, lecz powoduje denerwujce
zaklocenie ekranu i zwykle nie jest wymagana, gdy terminal normalnie ju
jest w trybie 80-kolumnowym.
Jeli istniej komendy do ustawiania i czyszczenia tabulatorow, to mog by
one podawane jako tbc (czy wszystkie tabulatory) i hts (ustaw tabulator
w biecej kolumnie w kadym wierszu). Jeli do ustawienia tabulatorow
wymagana jest bardziej skomplikowana sekwencja, to moe by ona
umieszczona w is2 lub if.
Op'onienia i wype/lnianie
Wiele starszych i wolniejszych terminali nie obsluguje ani XON/XOFF ani
potwierdzania DTR. Wlicza w to mona terminale hardcopy i pewne
archaiczne CRT (np, DEC VT100). Wymagaj one wypelniania znakow po
pewnych ruchach kursora i zmianach ekranu.
Jeli terminal uywa potwierdzania xon/xoff dla sterowania przeplywu (to
znaczy automatycznie wysyla ^S do hosta gdy bufory wejciowe zbliaj si
do przepelnienia), ustaw xon. Wlaciwo ta powstrzymuje emisj
wypelniania. Moesz te ustawi j dla mapowanych w pami urzdze
konsolowych, ktore efektywnie nie maj ogranicze szybkoci. Informacje
wypelniajce powinny wci by dolczane, aby procedury mogly lepiej
decydowa o wzgldnych kosztach, lecz rzeczywiste znaki wypelnienia nie
bd wysylane.
Jeli podane jest pb (szybko wypelniania), to wypelnianie nie jest
uywane przy szybkociach niszych ni pb. Jeli wpis nie zawiera szybkoci,
to emisja wypelniania w pelni zaley od xon.
Jeli terminal wymaga innych ni zero znakow wypelniania, to powinno to
by podawane jako pad. Z lacucha pad uywany jest jedynie pierwszy znak.
Linie statusu
Niektore terminale posiadaj dodatkowe `linie statusu', ktore nie s
normalnie uywane przez oprogramowanie (a wic nie licz si jako wlaciwo
lines terminala).
Najprostszym przypadkiem jest linia statusu, ktor mona adresowa
kursorem, lecz nie jest czci podstawowego regionu przewijania ekranu;
tak lini statusu posiada Heathkit H19 oraz 24 liniowe VT100 z
23-liniowym regionem przewijania ustawianym na starcie. Sytuacja ta
jest wskazywana przez wlaciwo hs.
Niektore terminale z liniami statusu wymagaj specjalnych sekwencji aby
dosta si do tej linii. Mog one by wyraane jako lacuchy z pojedynczymi
parametrami tsl, ktore pobieraj pozycj kursora wzgldem zerowej kolumny
linii statusu. Wlaciwo fsl musi powraca do pozycji ekranu glownego,
gdzie wywolano ostatnie tsl. Moliwe, e konieczne bdzie osadzenie
wartoci lacuchowych sc (zachowanie kursora) i rc (odtworzenie kursora)
w tsl i fsl.
Linia statusu jest zazwyczaj tej samej szerokoci co szeroko terminala.
Gdy nie jest to prawd, naley poda wlaciwo numeryczn wsl.
Komend kasowania linii statusu moe by podawana jako dsl.
Warto logiczna eslok okrela, e sekwencje specjalne, tabulacje itp.
dzialaj w linii statusu normalnie.
Implementacja ncurses nie uywa jeszcze adnej z tych wlaciwoci S one tu
udokumentowane na wypadek, gdyby staly si istotne.
Grafika liniowa
Wiele terminali posiada alternatywne zestawy znakow, przydatne do
rysowania figur. Terminfo i curses maj wsparcie do rysowania znakow
wspieranych przez VT100 plus niektore znaki z AT&T 4410v1. Alternatywny
zestaw znakow moe by okrelony wlaciwoci acsc.
Nazwa Nazwa Ascii Nazwa
glifu ACS domylnie VT100
UK znak funta ACS_STERLING f }
strzalka w dol ACS_DARROW v .
strzalka w lewo ACS_LARROW < ,
strzalka w prawo ACS_RARROW > +
strzalka w gor ACS_UARROW ^ -
plansza kwadratow ACS_BOARD # h
kula ACS_BULLET o ~
plansza szachowa ACS_CKBOARD : a
symbol stopnia ACS_DEGREE \ f
diamond ACS_DIAMOND + `
wikszylubrowny ACS_GEQUAL > z
greckie pi ACS_PI * {
linia poprzeczna ACS_HLINE - q
symbol latarni ACS_LANTERN # i
duy plus/skrzyowanie ACS_PLUS + n
mniejszylubrowny ACS_LEQUAL < y
lewy niski naronik ACS_LLCORNER + m
prawy niski naronik ACS_LRCORNER + j
nierowny ACS_NEQUAL ! |
plus/minus ACS_PLMINUS # g
scan line 1 ACS_S1 ~ o
scan line 3 ACS_S3 - p
scan line 7 ACS_S7 - r
scan line 9 ACS_S9 _ s
czysty blok kwadratowy ACS_BLOCK # 0
T wskazujce w dol ACS_TTEE + w
T wskazujce w lewo ACS_RTEE + u
T wskazujce w prawo ACS_LTEE + t
T wskazujce w gor ACS_BTEE + v
lewy wysoki naronik ACS_ULCORNER + l
prawy wysoki naronik ACS_URCORNER + k
linia pionowa ACS_VLINE | x
Najlepszym sposobem na zdefiniowanie zestawu graficznego nowego
urzdzenia jest dodanie do kopii tej tabeli kolumny, podajcej znak, jaki
(po emisji midzy smacs/rmacs) zostal wyrenderowany jako odpowiadajca
[kodowi] grafika. Nastpnie przeczytaj pary VT100/twoj terminal z prawa
na lewo--bdzie to twoj lacuch ACSC.
Obs/luga kolor'ow
Wikszo terminali kolorowych to albo terminale typu Tektronix, albo typu
HP. Te pierwsze maj predefiniowany zestaw N kolorow (N zwykle wynosi 8)
i mog ustawia w komorkach znakowych niezalenie kolor tla i pierwszego
planu, tworzc N*N par kolorow. Na terminalach HP naley ustawia kad par
kolorow osobno (tlo i pierwszy plan nie s ustawiane niezalenie). Mona
zdefiniowa M par kolorow z 2*M dostpnych kolorow. Terminale zgodne z
ANSI s typu Tektronix.
Pewne podstawowe wlaciwoci kolorow s niezalene od metody kolorowania.
Waciwoci numeryczne colors i pairs okrelaj maksymaln liczb kolorow i
par kolorow, ktore mona naraz wywietla. Lacuch op (para oryginalna)
ustawia tlo i pierwszy plan na domylne wartoci terminala. Lacuch oc
resetuje wszystkie kolory i pary kolorow na domylne wartoci terminala.
Niektore terminala (wlcznie z wieloma emulatorami terminali PC) kasuje
obszary ekranu z obecnym tlem, zamiast wlczy domylne tlo; powinny one
posiada wlaciwo logiczn bce.
Aby zmieni biecy kolor pierwszego planu lub tla na terminalu typu
Tektronix, naley uy setaf (ustaw pierwszy plan ANSI) i setab (ustaw tlo
ANSI). Pobieraj one jeden parametr--numer koloru. Dokumentacja SVr4
opisuje tylko setaf/setab; draft XPG4 mowi, e "Jeli terminal obsluguje
sekwencje specjalne ANSI do ustawiania tla i pierwszego planu, to
powinny by one zakodowane odpowiednio jako setab i setaf. Jeli terminal
obsluguje inne sekewencje specjalne ustawiania tla i pierwszego planu,
to powinny by one kodowane jako setb i setf. Funkcja vidputs() i
funkcje odwieania uywaj (o ile s zdefiniowane) setaf i setab."
Wlaciwoci setaf/setab i setf/setb pobieraj pojedynczy argument
numeryczny. Wartoci 0-7 s przenonie zdefiniowane w sposob nastpujcy
(rodkowa kolumna to symboliczne wartoci #define z naglowkow bibliotek
curses). Sprzt terminala moe mapowa je jak chce, lecz wartoci RGB
okrelaj normalne lokacje w przestrzeni kolorow. space.
Kolor #define Warto RGB
czarny COLOR_BLACK 0 0, 0, 0
czerwony COLOR_RED 1 max,0,0
zielony COLOR_GREEN 2 0,max,0
olty COLOR_YELLOW 3 max,max,0
niebieski COLOR_BLUE 4 0,0,max
fioletowy COLOR_MAGENTA 5 max,0,max
cyjankowy COLOR_CYAN 6 0,max,max
bialy COLOR_WHITE 7 max,max,max
Na terminalu typu HP uywa si scp z numerem pary kolorow do ustawienia
obecnej pary kolorow.
Na terminalu Tektronix moe by obecna wlaciwo ccc. Wskazuje ona, e
kolory mona modyfikowa. W tej sytuacji wlaciwo initc pobiera numer
koloru (0 do colors-1) i trzy dalsze parametry, opisujce kolor.
Parametry te s domylnie interpretowane jako RGB. Jeli obecna jest
wlaciwo logiczna hls, to s one interpretowane jako parametry HLS (Hue,
Lightness, Saturation). Zakresy zale od terminala.
Na terminalu w rodzaju HP, initp moe dawa moliwo zmieniania wartoci
pary kolorow. Pobiera 7 parametrow; numer pary kolorow (0 do
max_pairs-1) oraz dwie trojki, opisujce najpierw tlo, a potem pierwszy
plan. Parametry te okrelaj RGB lub HLS, zalenie od hls.
Na niektorych terminalach kolorowych, kolory koliduj z podwietleniami.
Mona zarejestrowa te kolizje we wlaciwoi ncv. Jest to maska bitowa
atrybutow, ktore nie mog by uywane przy wlczonych kolorach.
Odpowiednio midzy atrybutami rozumianymi przez curses jest nastpujca:
Atrybut Bit Dziesitnie
A_STANDOUT 0 1
A_UNDERLINE 1 2
A_REVERSE 2 4
A_BLINK 3 8
A_DIM 4 16
A_BOLD 5 32
A_INVIS 6 64
A_PROTECT 7 128
A_ALTCHARSET 8 256
Na przyklad na wielu konsolach IBM PC atrybut podkrelenia koliduje z
niebieskim kolorem pierwszego planu i nie jest dostpny w trybie
kolorowym. Powinny wic mie ustawione wlaciwo ncv na 2.
Curses SVr4 nie uywaj w ogole ncv, ncurses rozpoznaj je i optymalizuj
wyjcie.
R'onoci
Jeli terminal wymaga innego znaku wypelniania ni zero, to jest on
podawany jako pad. Z lacucha pad wykorzystywany jest tylko pierwszy
znak. Jeli terminal nie obsluguje znaku wypelniania, podaj npc. Zauwa,
e ncurses implementuje zgodn z termcap zmienn PC; dlatego aplikacje mog
ustawia t warto na co innego ni zero, a ncurses sprobuje najpierw npc i
uyje napms jeli terminal nie posiada znaku wypelnienia.
Jeli terminal moe przesuwa w gor lub w dol o pol linii, to moe to by
okrelone przez hu (pol-linii w gor) i hd (pol-linii w dol). Jest to
przede wszystkim przydatne dla indeksow gornych i dolnych w terminalach
hardcopy. Jeli terminal hardcopy potrafi przej na nastpn stron (eject
to the next page) (tj. form feed), podaj to jako ff (zwykle control L).
Jeli istnieje komenda do powtorzenia danego znaku podan liczb razy (aby
zaoszczdzi na czasie transmisji duej liczby takich samych znakow), mona
to okreli parametryzowanym lacuchem rep. Pierwszy parametr jest
powtarzanym znakiem, a drugi liczb powtorze. Tak wic
tparm(repeat_char, 'x', 10) jest rownowane `xxxxxxxxxx'.
Jeli terminal posiada ustawiany znak komendy, jak w TEKTRONIX, mona to
okreli przez cmdch. Wybierany jest prototypowy znak komendy, uywany we
wszystkich wlaciwociach. Znak ten jest podawany przez wlaciwo cmdch.
Na niektorych systemach uniksowych obslugiwana jest nastpujca
konwencja: W rodowisku szukana jest zmienna CC i jeli zostanie
znaleziona, wszystkie pojawienia znaku prototypowego s zamieniane na
znak ze zmiennej rodowiskowej.
Opisy terminala, ktore nie reprezentuj konkretnych rodzajow znanych
terminali, takie jak switch, dialup, patch i network, powinny zawiera
wlaciwo gn (generic), aby programy mogly stwierdzi, e nie wiedz jak
rozmawia z terminalem. (Wlaciwo ta nie tyczy si opisow terminali
virtual, dla ktorych znane s sekwencje specjalne.)
Jeli terminal posiada klawisz ``meta'', ktory zachowuje si jak klawisz
przesunicia, ustawiajcy osmy bit przesylanego znaku, to fakt ten mona
wskaza z pomoc km. W przeciwnym wypadku, oprogramowanie zaloy, e 8-my
bit jest bitem parzystoci i zazwyczaj bdzie czyszczony. Jeli istniej
lacuchy, wlczajce i wylczajce ten tryb ``meta'', to powinny by one
okrelone jako smm i rmm.
Jeli terminal ma wicej linii pamici ni mieci si naraz na ekranie, to
liczba tych linii powinna by okrelana przez lm. Nadanie wartoci lm#0
okrela, e liczba linii nie jest ustalona, lecz mimo to jest wicej
pamici ni linii ekranowych.
Jeli terminal jest jednym z obslugiwanych przez uniksowy protokol
wirtualnego terminala, to numer terminala moe by podany jako vt.
Lacuchy media copy, sterujce zewntrzn drukark, podlczon do terminala
mog by podawane jako mc0: drukuj zawarto ekranu, mc4: wylcz drukark i
mc5: wlcz drukark. Gdy drukarka jest wlczona, tekst przesylany do
terminala bdzie przesylany na drukark. Nie jest zdefiniowane czy tekst
ma by wtedy rownie wywietlany na ekranie terminala. Wariacja mc5p
pobiera jeden parametr i pozostawia drukark wlczon na tyle znakow, ile
podano w parametrze; wylczajc nastpnie drukark. Parametr nie powinien
przekracza 255. Caly tekst, lcznie z mc4, jest podczas dzialania mc5p
przezroczycie przekazywany drukarce.
Zaburzenia i uszkodzenie m'ozgu
Terminale, ktore nie zezwalaj na wywietlanie znakow tyldy, powinny
wskazywa to przez hz.
Terminale, ktore ignoruj line-feed po zawiniciu am, takie jak Concept i
vt100 powinny wskazywa to przez xenl.
Jeli do pozbycia si trybu wyronionego potrzebne jest el (zamiast
zwyczajnego nadpisania na nim normalnego tekstu), naley poda xhp.
Terminale teleray, gdzie tabulacje zmieniaj przesuwane znaki na spacje,
powinny podawa xt (destruktywne tabulacje). Uwaga: zmienn, okrelajc to
jest obecnie `dest_tabs_magic_smso'; w starszych wersjach bylo to
teleray_glitch. To zaburzenie oznacza rownie, e nie jest moliwe
ustawienie kursora na ``magicznym ciasteczku'', e do skasowania trybu
wyronionego naley skasowa lub wstawi lini. Implementacja ncurses
ignoruje to.
Terminal Beehive Superbee, ktory nie potrafi poprawnie przesyla znakow
escape i control C ma wlaciwo xsb, okrelajc, e zamiast escape uywany
jest klawisz f1, a zamiast control C uywane jest f2. (Problem ten
wystpuje tylko w Superbee, zalenie od ROM.) Zauwa, e w starszych
wersjach terminfo wlaciwo ta byla nazywana `beehive_glitch'; obecnie
jest to `no_esc_ctl_c'.
Inne problemy zwizane z konkretnymi terminalami mona naprawi dodajc
dalsze wlaciwoci typu xx.
Podobne terminale
Jeli istniej dwa bardzo podobne terminale, gdzie jeden moe by
zdefiniowany tak samo jak drugi, z pewnymi wyjtkami, to mona wykorzysta
wlaciwo use z nazw podobnego terminala. Wlaciwoci podane przed use
przeslaniaj te z typu wybranego przez use. Wlaciwoci mona anulowa
poprzez umieszczanie na lewo od definicji wlaciwoci xx@, gdzie xx jest
wlaciwoci. Na przyklad,
2621-nl, smkx@, rmkx@, use=2621,
definiuje 2621-nl, ktory nie posiada smkx, rmkx i z tego powodu nie
wlcza etykiet klawiszy funkcyjnych w trybie wizualnym. Jest to
przydatne dla innych trybow terminala lub dla innych preferencji
uytkownika.
Pu/lapki d/lugich wpis'ow
Dlugie wpisy terminfo rzadko s problemem; aden wpis terminfo nie osignl
jeszcze nawet 4K maksimum przeznaczonego na tablic lacuchow. Niestety
jednak, translacje termcap s bardziej ograniczone (do 1K). Z tego
powodu, translacje termcap dlugich wpisow terminfo mog powodowa
problemy.
Strony podrcznika man dla 4.3BSD i starszych wersji tgetent() mowi
uytkownikowi, by alokowal 1K bufor na wpis termcap. Wpis jest zakoczony
zerem przez bibliotek termcap, wic bezpieczn dlugoci wpisu termcap s
1023 bajty. Zalenie od tego, co robi dana aplikacja i biblioteka
termcap i od tego gdzie w pliku termcap znajduje typ terminala szukany
przez tgetent(), mog dzia si rone rzeczy.
Niektore biblioteki termcap drukuj komunikat ostrzegawczy i kocz
dzialanie; inne nie; inne skracaj wpis do 1023 bajtow. Niektore
aplikacje alokuj wicej ni wymagany 1K; inne nie.
Kady wpis termcap zawiera zwizane ze sob dwa wane rozmiary: przed
rozwiniciem "tc" i po rozwiniciu. "tc" jest wlaciwoci, ktora fastryguje
inny wpis termcap do koca biecego, aby doda jego wlaciwoci. Jeli wpis
termcap nie uywa wlaciwoci "tc", to oczywicie obydwa rozmiary s
identyczne.
Dlugo przed rozwiniciem tc jest nawjaniejsza, gdy dotyczy czego wicej
ni tylko uytkownikow konkretnego terminala. Jest to dlugo wpisu
istniejcego w /etc/termcap minus para lewy ukonik/nowa linia, ktore s
pomijane przez tgetent() podczas odczytu. Niektore biblioteki termcap
obcinaj rownie kocow now lini (GNU termcap tego nie robi). Zalo teraz,
e:
* wpis termcap przed rozwiniciem ma wicej ni 1023 bajty,
* aplikacja zaalokowala jedynie 1K,
* biblioteka termcap (jak BSD/OS 1.1 i GNU) odczytuje caly wpis do
bufora, niezalenie od dlugoci, aby zobaczy czy jest to ten wpis co
trzeba,
* a tgetent() szuka typu terminala, ktory jest albo dlugim wpisem,
jak i znajduje si w pliku termcap za dlugim wpisem, albo nie
istnieje w pliku w ogole (wic tgetent() musi przeszukiwa caly plik
termcap).
W tej sytuacji tgetent() nadpisze pami, by moe rownie swoj stos i
prawdopodobnie rzuci kor. Programy typu telnet s szczegolnie
okaleczalne; nowoczesne telnety przekazuj wartoci jak typ terminala
automatycznie. Wyniki s podobnie niechciane dla bibliotek termcap, jak
SunOS 4.1.3 i Ultrix 4.4, ktore drukuj ostrzeenia gdy odczytuj zbyt
dlugie wpisy termcap. Jeli biblioteka termcap obcina dlugie wpisy, jak
OSF/1 3.0, to jest odporna na ten problem, lecz zwraca nieprawidlowe
dane dla terminala.
Rozmiar "po rozwiniciu tc" ma podobne dzialanie na powysze, lecz
jedynie dla osob, ktore ustawily TERM na ten typ terminala, gdy
tgetent() dokonuje rozwinicia "tc" tylko jeli znajdzie odpowiedni typ.
Ogolnie, wpis termcap, ktory jest dluszy ni 1023 bajty moe spowodowa
zrzut core, ostrzeenia lub nieprawidlowe dzialanie. Jeli jest zbyt
dlugi przed rozwiniciem "tc", to bdzie tak dzialal nawet dla
uytkownikow innych typow terminal, i tych ktorych zmienna TERM nie
posiada opisu w pliku termcap.
W trybie -C (tlumaczenia na termcap), implementacja tic(1) z ncurses
daje ostrzeenia gdy dlugo przed-tc wpisu termcap jest zbyt wielka.
Opcja -c (check) sprawdza rownie rozwinite (po tc) dlugoci.
Kompatybilno binarna
Nie jest mdre liczy na przenono binarnych opisow terminfo midzy
komercyjnymi wersjami uniksa. Problem polega na tym, e istniej
przynajmniej dwie wersje terminfo (pod HP-UX i AUX), ktore pochodz z
terminfo System V po SVr1 i dodaly rozszerzone wlaciwoci do tablicy
lacuchow ktore (binarnie) koliduj z rozszerzeniami Systemu V i XSI
Curses.
ROZSZERZENIA
Operator %x parametryzowanych lacuchow jest typowy tylko dla
implementacji tparm wykonanej w ncurses (jest wymagany do obslugi
niefortunnego formatu initc na konsoli Linux).
Niektore implementacje curses z SVr4 i wszystkie poprzednie nie
interpretuj operatorow %A i %O z parametryzowanych lacuchow.
SVr4/XPG4 nie okrelaj czy msgr zezwala na poruszanie w trybie
alternatywnego zestawu znakow (takie tryby mog midzy innymi mapowa CR
oraz NL na znaki, ktore nie pocigaj lokalnych przemieszcze).
Implementacja ncurses ignoruje msgr w trybie ALTCHARSET. Przychodzi
wic moliwo, e implementacja XPG4, robica odwrotne zaloenie moe wymaga
wpisow terminfo z ncurses z wylczonym msgr.
Biblioteka ncurses obsluguje tryby wstawiania znaku i wstawiania znakow
w troch niestandardowy sposob, aby zyska na efektywnoci. Zobacz wyej
sekcj Wstawianie/kasowanie znak'ow.
Podstawienia parametrow dla set_clock i display_clock nie s
udokumentowane w SVr4 i w standardzie XSI. S one wydedukowane z
dokumentacji terminala AT&T 505.
Uwaaj z przyznawaniem wlasciwoci kmous. ncurses zechc interpretowa to
jako KEY_MOUSE dla uytku w terminalach i w emulatorach (jak xterm),
ktore potrafi zwraca informacje o ledzeniu myszy w strumieniu wejciowym
klawiatury.
Rone porty komercyjne terminfo i curses wspieraj rone podzbiory
standardu XSI curses i (w niektorych przypadkach) rone zbiory
rozszerze. Oto zestawienie, odpowiadajce padziernikowi 1995:
SVR4, Solaris, ncurses -- Wspieraj wszystkie wlaciwoci SVr4.
SGI -- Wspiera zestaw SVr4 i dodaje jedn nieudokumentowan wlaciwo
lacuchow (set_pglen).
SVr1, Ultrix -- Obsluguj one ograniczony podzbior wlaciwoci terminfo.
Wartoci logiczne kocz si z xon_xof; wartoci numeryczne z
width_status_line; a lacuchowe z prtr_non.
HP/UX -- Wspiera podzbior SVr1 plus numeryka z SVr[234], a konkretnie
num_labels, label_height, label_width, plus klawisze funkcyjne 11 do
63, plus plab_norm, label_on, i label_off, plus pewne niekompatybilne
rozszerzenia tablicy lacuchow.
AIX -- Wspiera podzbior SVr1 plus klawisze funkcyjne 11 do 63 plus
niekompatybilne rozszerzenia tablicy lacuchow.
OSF -- Wspiera zarowno zestaw SVr4 jak i rozszerzenia AIX.
PLIKI
/usr/share/terminfo/?/* pliki zawierajce opisy terminala
ZOBACZ TAKE
tic(1M), curses(3X), printf(3S), term(5).
AUTORZY
Zeyd M. Ben-Halim, Eric S. Raymond.
INFORMACJE O T/LUMACZENIU
Powysze tlumaczenie pochodzi z nieistniejcego ju Projektu Tlumaczenia
Manuali i moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji,
prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.
TERMINFO(5)