1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627
|
.\" vim:ft=nroff
.\" $Id: ncurses.3x,v 1.7 2003/05/29 11:06:06 robert Exp $
.\" {PTM/PB/0.1/21-06-1999/"Pakiet obsługi CRT i jego optymalizacji"}
.TH ncurses 3ncurses ""
.ds n 5
.ds d /usr/lib/terminfo
.SH NAZWA
\fBncurses\fR - pakiet obsługi CRT i jego optymalizacji
.SH STRESZCZENIE
\fB#include <curses.h>\fR
.br
.SH OPIS
\fI Uwaga! To tłumaczenie może być nieaktualne!\fP
.PP
Funkcje biblioteki \fBcurses\fR dają użytkownikowi niezależne od terminala
metody obsługiwania ekranów znakowych z sensowną optymalizacją. Ta
implementacja to ,,nowe curses'' (ncurses). Jest ona zatwierdzonym
zamiennikiem dla klasycznych curses z 4.4BSD, których rozwoju zaprzestano.
Funkcje \fBncurses\fR emulują bibliotekę \fBcurses\fR(3X) Systemu Vr4, a
także standard XPG4 (XSI curses), lecz biblioteka ncurses jest wolnodostępna
w postaci źródłowej. Różnice między curses z SVr4 podsumowano w sekcjach
ROZSZERZENIA i BŁĘDY, występujących poniżej, a opisano szczegółowo
w takich samych sekcjach stron podręcznika systemowego poświęconych
poszczególnym funkcjom.
Program, który korzysta z tych funkcji, musi być skonsolidowany z opcją
\fB-lncurses\fR (lub jeśli został wygenerowany) z biblioteką debuggową
\fB-lncurses_g\fR. Biblioteka ncurses_g generuje logi śledzenia (plik o
nazwie 'trace', w bieżącym katalogu), które opisują akcje curses.
Pakiet \fBncurses\fR obsługuje: działanie na ekranie, oknach i padach;
wyjście do okien i padów; odczytywanie wejścia z terminala; sterowanie
terminalem oraz opcje wejścia/wyjścia \fBcurses\fR; funkcje zapytań
środowiskowych; działanie na kolorach; używanie klawiszy o miękkich
etykietach; właściwości terminfo; i dostęp do niskopoziomowych funkcji
obsługi terminala.
Aby zainicjalizować pakiet, należy na samym początku wywołać funkcję
\fBinitscr\fR, lub \fBnewterm\fR. Przed wyjściem należy wywołać funkcję
\fBendwin\fR. Aby uzyskać wejście znakowe znak-po-znaku bez echa (większość
interaktywnie zorientowanych programów tego chce), powinno się użyć
następującej sekwencji:
\fBinitscr(); cbreak(); noecho();\fR
Większość programów chętnie wykorzystuje też sekwencje:
\fBnonl();\fR
\fBintrflush(stdscr, FALSE);\fR
\fBkeypad(stdscr, TRUE);\fR
Przed uruchomieniem programu \fBcurses\fR, należy ustawić <tab stops>
(pozycje tabulacji) terminala, oraz wysłać doń łańcuchy inicjujące. Można tego
dokonać, wywołując polecenie \fBtput init\fR po uprzednim wyeksportowaniu
zmiennej środowiskowej \fBTERM\fR.
Odpowiedzialny za to jest \fBtset(1)\fR.
[Szczegóły - zobacz \fBterminfo\fR(\*n).]
Biblioteka \fBcurses\fR zezwala na działanie na strukturach danych,
nazywanych \fIoknami\fR, o których można myśleć jak o dwuwymiarowych
tablicach znaków, reprezentujących część lub całość ekranu CRT. Dostarczane
jest domyślne okno, o nazwie \fBstdscr\fR, którego wymiary odpowiadają
ekranowi terminala. Inne okna można utworzyć przy użyciu funkcji
\fBnewwin\fR.
Zauważ, że \fBcurses\fR nie obsługuje zachodzących okien - jest to robione
przez bibliotekę \fBpanels(3x)\fR. Znaczy to, że możesz albo używać
\fBstdscr\fR, albo podzielić ekran na okna i nie używać \fBstdscr\fR w
ogóle. Łączenie tych dwóch spowoduje niepraktyczne i niepożądane efekty.
Do okien można odnosić się poprzez zmienne zadeklarowane jako \fBWINDOW *\fR.
Działań na tych strukturach dokonuje się funkcjami opisanymi na tej
stronie oraz w innych miejscach stron podręcznika \fBncurses\fR.
Najbardziej podstawowymi funkcjami są \fBmove\fR i \fBaddch\fR. Ogólniejsze
wersje tych funkcji figurują pod nazwami zaczynającymi się od \fBw\fR
i umożliwiają podanie okna. Funkcje nie zaczynające się od \fBw\fR działają
na \fBstdscr\fR.
Po użyciu funkcji działania na oknie, wywoływany jest \fBrefresh\fR,
nakazujący \fBcurses\fR, by ekran CRT zaczął wyglądać tak jak \fBstdscr\fR.
Znaki okna są właściwie typu \fBchtype\fR (znak i dane atrybutu), więc dane
o znaku można przechowywać w nim samym.
Można też operować szczególnymi oknami, \fIpadami\fR. Okna te nie są
ograniczone rozmiarami ekranu, a ich zawartość nie musi być w całości
wyświetlana. Więcej szczegółów znajdziesz w curs_pad(3X).
Oprócz rysowania na ekranie znaków, mogą być obsługiwane atrybuty i kolory,
a więc znaki mogą pokazywać się w trybach takich jak podkreślenie,
inwersja, lub w kolorze, o ile terminal na to pozwala. Można wyświetlać
znaki składające się na linie. Na wejściu, ncurses potrafi tłumaczyć
klawisze strzałek i funkcyjne, które przekazują sekwencje eskejpowe, na
zwykłe wartości. Atrybuty wideo, znaki rysowania linii i nazwy wartości
wejściowych są zdefiniowane w \fB<curses.h>\fR i mają nazwy typu
\fBA_REVERSE\fR, \fBACS_HLINE\fR, czy \fBKEY_LEFT\fR.
Jeśli ustawiono zmienne środowiskowe \fBLINES\fR i \fBCOLUMNS\fR, lub jeśli
program jest uruchomiony w środowisku okienkowym, to informacje o rozmiarze
ekranu przesłonią dane odczytywane z \fIterminfo\fR.
Jeśli zdefiniowana jest zmienna środowiskowa \fBTERMINFO\fR, to każdy
program używający \fBcurses\fR będzie szukał najpierw lokalnej definicji
terminala, a dopiero potem zajrzy do standardowego miejsca. Np. Jeśli
\fBTERM\fR jest ustawione na \fBatt4424\fR, to wkompilowana definicja
terminala jest znajdywana w
\fB\*d/a/att4424\fR.
(\fBa\fR jest kopiowane z pierwszej litery \fBatt4424\fR, aby zapobiec
tworzeniu wielkich katalogów.) Jednak jeśli ustawiono \fBTERMINFO\fR, np. na
wartość \fB$HOME/myterms\fR, to \fBcurses\fR zajrzy wpierw do
\fB$HOME/myterms/a/att4424\fR,
a jeśli to zawiedzie, do
\fB\*d/a/att4424\fR.
Jest to przydatne dla rozwijania eksperymentalnych definicji, lub gdy nie ma
praw zapisu do \fB\*d\fR.
Zmienne całkowite \fBLINES\fR i \fBCOLS\fR są zdefiniowane w
\fB<curses.h>\fR i są wypełniane przez \fBinitscr\fR wartościami,
odpowiadającymi rozmiarowi ekranu. Stałe
\fBTRUE\fR i \fBFALSE\fR mają odpowiednio wartości \fB1\fR i
\fB0\fR.
Zmienne \fBcurses\fR definiują również zmienną \fBWINDOW *curscr\fR,
która jest używana do pewnych niskopoziomowych operacji, jak np.
oczyszczanie i odświeżanie ekranu, zawierającego śmieci. \fBcurscr\fR może
być użyte tylko w niektórych funkcjach.
.SS Nazwy funkcji i argumentów
Wiele funkcji \fBcurses\fR ma dwie lub więcej wersji. Zmienne, poprzedzone
\fBw\fR, wymagają argumentu okna. Zmienne poprzedzone \fBp\fR wymagają
argumentu padu. Funkcje bez przedrostka odnoszą się w ogólności do
\fBstdscr\fR.
Zmienne z przedrostkiem \fBmv\fR wymagają współrzędnych \fIy\fR i \fIx\fR,
wskazujących miejsce ekranu, do którego należy się przenieść przed
dokonaniem akcji. Funkcje te wymuszają wywołanie \fBmove\fR przed
wywołaniem innej funkcji. Współrzędna \fIy\fR zawsze odnosi się do wiersza
(okna), a \fIx\fR do kolumny. Górny lewy narożnik ma współrzędne (0,0), nie
(1,1).
Funkcje z przedrostkiem \fBmvw\fR pobierają zarówno argument okna, jak i
parametry współrzędnych. Argument okna jest zawsze podawany przed
współrzędnymi.
W każdym wypadku, \fIwin\fR jest oknem, a \fIpad\fR padem, na które wpływa
funkcja. \fIwin\fR i \fIpad\fR są zawsze wskaźnikami do typu
\fBWINDOW\fR.
Funkcje ustawiające opcje wymagają flagi logicznej \fIbf\fR, której
wartość wynosi albo \fBTRUE\fR, albo \fBFALSE\fR; \fIbf\fR jest zawsze typu
\fBbool\fR. Zmienne \fIch\fR i \fIattrs\fR niżej, są zawsze typu
\fBchtype\fR.
Typy \fBWINDOW\fR, \fBSCREEN\fR, \fBbool\fR, i
\fBchtype\fR są zdefiniowane w \fB<curses.h>\fR. Typ \fBTERMINAL\fR
jest zdefiniowany w \fB<term.h>\fR. Wszystkie pozostałe argumenty są typu
integer.
.SS Indeks nazw funkcji
W poniższej tablicy podano każdą z funkcji \fBcurses\fR, wskazując przy
okazji odpowiadającą jej stronę podręcznika man. Funkcje oznaczone `*',
są specyficzne dla ncurses, nieopisane przez XPG4 i SVr4.
.nf
Nazwa funkcji Nazwa strony podręcznika
___________________________________________
addch curs_addch(3X)
addchnstr curs_addchstr(3X)
addchstr curs_addchstr(3X)
addnstr curs_addstr(3X)
addstr curs_addstr(3X)
attroff curs_attr(3X)
attron curs_attr(3X)
attrset curs_attr(3X)
baudrate curs_termattrs(3X)
beep curs_beep(3X)
bkgd curs_bkgd(3X)
bkgdset curs_bkgd(3X)
border curs_border(3X)
box curs_border(3X)
can_change_color curs_color(3X)
cbreak curs_inopts(3X)
clear curs_clear(3X)
clearok curs_outopts(3X)
clrtobot curs_clear(3X)
clrtoeol curs_clear(3X)
color_content curs_color(3X)
copywin curs_overlay(3X)
curs_set curs_kernel(3X)
def_prog_mode curs_kernel(3X)
def_shell_mode curs_kernel(3X)
del_curterm curs_terminfo(3X)
delay_output curs_util(3X)
delch curs_delch(3X)
deleteln curs_deleteln(3X)
delscreen curs_initscr(3X)
delwin curs_window(3X)
derwin curs_window(3X)
doupdate curs_refresh(3X)
dupwin curs_window(3X)
echo curs_inopts(3X)
echochar curs_addch(3X)
endwin curs_initscr(3X)
erase curs_clear(3X)
erasechar curs_termattrs(3X)
filter curs_util(3X)
flash curs_beep(3X)
flushinp curs_util(3X)
getbegyx curs_getyx(3X)
getch curs_getch(3X)
getmaxyx curs_getyx(3X)
getmouse curs_mouse(3X)*
getparyx curs_getyx(3X)
getstr curs_getstr(3X)
getsyx curs_kernel(3X)
getwin curs_util(3X)
getyx curs_getyx(3X)
halfdelay curs_inopts(3X)
has_colors curs_color(3X)
has_ic curs_termattrs(3X)
has_il curs_termattrs(3X)
hline curs_border(3X)
idcok curs_outopts(3X)
idlok curs_outopts(3X)
immedok curs_outopts(3X)
inch curs_inch(3X)
inchnstr curs_inchstr(3X)
inchstr curs_inchstr(3X)
init_color curs_color(3X)
init_pair curs_color(3X)
initscr curs_initscr(3X)
innstr curs_instr(3X)
insch curs_insch(3X)
insdelln curs_deleteln(3X)
insertln curs_deleteln(3X)
insnstr curs_insstr(3X)
insstr curs_insstr(3X)
instr curs_instr(3X)
intrflush curs_inopts(3X)
is_linetouched curs_touch(3X)
is_wintouched curs_touch(3X)
isendwin curs_initscr(3X)
keyname curs_util(3X)
keypad curs_inopts(3X)
killchar curs_termattrs(3X)
leaveok curs_outopts(3X)
longname curs_termattrs(3X)
meta curs_inopts(3X)
mouseinterval curs_mouse(3X)*
mousemask curs_mouse(3X)*
move curs_move(3X)
mvaddch curs_addch(3X)
mvaddchnstr curs_addchstr(3X)
mvaddchstr curs_addchstr(3X)
mvaddnstr curs_addstr(3X)
mvaddstr curs_addstr(3X)
mvcur curs_terminfo(3X)
mvdelch curs_delch(3X)
mvderwin curs_window(3X)
mvgetch curs_getch(3X)
mvgetstr curs_getstr(3X)
mvinch curs_inch(3X)
mvinchnstr curs_inchstr(3X)
mvinchstr curs_inchstr(3X)
mvinnstr curs_instr(3X)
mvinsch curs_insch(3X)
mvinsnstr curs_insstr(3X)
mvinsstr curs_insstr(3X)
mvinstr curs_instr(3X)
mvprintw curs_printw(3X)
mvscanw curs_scanw(3X)
mvwaddch curs_addch(3X)
mvwaddchnstr curs_addchstr(3X)
mvwaddchstr curs_addchstr(3X)
mvwaddnstr curs_addstr(3X)
mvwaddstr curs_addstr(3X)
mvwdelch curs_delch(3X)
mvwgetch curs_getch(3X)
mvwgetstr curs_getstr(3X)
mvwin curs_window(3X)
mvwinch curs_inch(3X)
mvwinchnstr curs_inchstr(3X)
mvwinchstr curs_inchstr(3X)
mvwinnstr curs_instr(3X)
mvwinsch curs_insch(3X)
mvwinsnstr curs_insstr(3X)
mvwinsstr curs_insstr(3X)
mvwinstr curs_instr(3X)
mvwprintw curs_printw(3X)
mvwscanw curs_scanw(3X)
napms curs_kernel(3X)
newpad curs_pad(3X)
newterm curs_initscr(3X)
newwin curs_window(3X)
nl curs_outopts(3X)
nocbreak curs_inopts(3X)
nodelay curs_inopts(3X)
noecho curs_inopts(3X)
nonl curs_outopts(3X)
noqiflush curs_inopts(3X)
noraw curs_inopts(3X)
notimeout curs_inopts(3X)
overlay curs_overlay(3X)
overwrite curs_overlay(3X)
pair_content curs_color(3X)
pechochar curs_pad(3X)
pnoutrefresh curs_pad(3X)
prefresh curs_pad(3X)
printw curs_printw(3X)
putp curs_terminfo(3X)
putwin curs_util(3X)
qiflush curs_inopts(3X)
raw curs_inopts(3X)
redrawwin curs_refresh(3X)
refresh curs_refresh(3X)
reset_prog_mode curs_kernel(3X)
reset_shell_mode curs_kernel(3X)
resetty curs_kernel(3X)
restartterm curs_terminfo(3X)
ripoffline curs_kernel(3X)
savetty curs_kernel(3X)
scanw curs_scanw(3X)
scr_dump curs_scr_dump(3X)
scr_init curs_scr_dump(3X)
scr_restore curs_scr_dump(3X)
scr_set curs_scr_dump(3X)
scrl curs_scroll(3X)
scroll curs_scroll(3X)
scrollok curs_outopts(3X)
set_curterm curs_terminfo(3X)
set_term curs_initscr(3X)
setscrreg curs_outopts(3X)
setsyx curs_kernel(3X)
setterm curs_terminfo(3X)
setupterm curs_terminfo(3X)
slk_attroff curs_slk(3X)
slk_attron curs_slk(3X)
slk_attrset curs_slk(3X)
slk_clear curs_slk(3X)
slk_init curs_slk(3X)
slk_label curs_slk(3X)
slk_noutrefresh curs_slk(3X)
slk_refresh curs_slk(3X)
slk_restore curs_slk(3X)
slk_set curs_slk(3X)
slk_touch curs_slk(3X)
standend curs_attr(3X)
standout curs_attr(3X)
start_color curs_color(3X)
subpad curs_pad(3X)
subwin curs_window(3X)
syncok curs_window(3X)
termattrs curs_termattrs(3X)
termname curs_termattrs(3X)
tgetent curs_termcap(3X)
tgetflag curs_termcap(3X)
tgetnum curs_termcap(3X)
tgetstr curs_termcap(3X)
tgoto curs_termcap(3X)
tigetflag curs_terminfo(3X)
tigetnum curs_terminfo(3X)
tigetstr curs_terminfo(3X)
timeout curs_inopts(3X)
touchline curs_touch(3X)
touchwin curs_touch(3X)
tparm curs_terminfo(3X)
tputs curs_termcap(3X)
tputs curs_terminfo(3X)
typeahead curs_inopts(3X)
unctrl curs_util(3X)
ungetch curs_getch(3X)
ungetmouse curs_mouse(3X)*
untouchwin curs_touch(3X)
use_env curs_util(3X)
vidattr curs_terminfo(3X)
vidputs curs_terminfo(3X)
vline curs_border(3X)
vwprintw curs_printw(3X)
vwscanw curs_scanw(3X)
waddch curs_addch(3X)
waddchnstr curs_addchstr(3X)
waddchstr curs_addchstr(3X)
waddnstr curs_addstr(3X)
waddstr curs_addstr(3X)
wattroff curs_attr(3X)
wattron curs_attr(3X)
wattrset curs_attr(3X)
wbkgd curs_bkgd(3X)
wbkgdset curs_bkgd(3X)
wborder curs_border(3X)
wclear curs_clear(3X)
wclrtobot curs_clear(3X)
wclrtoeol curs_clear(3X)
wcursyncup curs_window(3X)
wdelch curs_delch(3X)
wdeleteln curs_deleteln(3X)
wechochar curs_addch(3X)
wenclose curs_mouse(3X)*
werase curs_clear(3X)
wgetch curs_getch(3X)
wgetnstr curs_getstr(3X)
wgetstr curs_getstr(3X)
whline curs_border(3X)
winch curs_inch(3X)
winchnstr curs_inchstr(3X)
winchstr curs_inchstr(3X)
winnstr curs_instr(3X)
winsch curs_insch(3X)
winsdelln curs_deleteln(3X)
winsertln curs_deleteln(3X)
winsnstr curs_insstr(3X)
winsstr curs_insstr(3X)
winstr curs_instr(3X)
wmove curs_move(3X)
wnoutrefresh curs_refresh(3X)
wprintw curs_printw(3X)
wredrawln curs_refresh(3X)
wrefresh curs_refresh(3X)
wresize curs_resize(3x)*
wscanw curs_scanw(3X)
wscrl curs_scroll(3X)
wsetscrreg curs_outopts(3X)
wstandend curs_attr(3X)
wstandout curs_attr(3X)
wsyncdown curs_window(3X)
wsyncup curs_window(3X)
wtimeout curs_inopts(3X)
wtouchln curs_touch(3X)
wvline curs_border(3X)
.fi
.SH "WARTOŚĆ ZWRACANA"
Funkcje, które zwracają integer, zwracają \fBERR\fR w wypadku błędu, a po
sukcesie dowolny inny integer. (chyba że zaznaczono inaczej w opisie
funkcji).
Wszystkie makra zwracają wartość wersji \fBw\fR, poza \fBsetscrreg\fR,
\fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, \fBgetmaxyx\fR. Wartości
zwracane \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, i
\fBgetmaxyx\fR są niezdefiniowane (\fInp\fR. nie powinny być używane
jako instrukcje prawej strony przypisań).
Funkcje, które zwracają wskaźniki, po błędzie zwracają \fBNULL\fR.
.SH ZOBACZ TAKŻE
\fBterminfo\fR(\*n) oraz strony 3X , których nazwa zaczyna się od "curs_".
.SH ROZSZERZENIA
Biblioteka \fBcurses\fR może być skompilowana z opcją
(\fB-DTERMCAP_FILE\fR), która powoduje skok wstecz, do starodawnego pliku
/etc/termcap, jeśli nie ma odpowiedniego wpisu w terminfo. Użycie tej
właściwości nie jest zalecane, gdyż w zasadzie włącza ona do kodu startowego
\fBcurses\fR cały kompilator termcapa.
Kompilowanie z \fB-DTERMCAP_FILE\fR zmienia sekwencję inicjalizacji
biblioteki, na sposób podobny do 4.4BSD curses. Jeśli nie ma żadnego
terminfo, opowiadającego \fBTERM\fR, to biblioteka zaczyna szukać wpisów
termcap. Robi to w następujących miejscach:
(1) jeśli \fBTERMINFO\fR nie jest zdefiniowane, w pliku o nazwie
\fBTERMCAP_FILE\fR; (2) jeśli zdefiniowano \fBTERMINFO\fR, i nazwa zaczyna
się od ukośnika, to jest interpretowane jako nazwa pliku termcap, w którym
należy szukać \fBTERM\fR; (3) gdy \fBTERMINFO\fR ma napis prowadzący, który
wygląda jak lista wpisów nazw terminala i odpowiada \fBTERM\fR, to zawartość
\fBTERMINFO\fR jest interpretowana jako termcap; (4) jeśli terminfo wygląda
jak termcap, lecz nie zawiera \fBTERM\fR, plik termcap jest przeszukiwany
wśród oddzielonych dwukropkami ścieżek \fBTERMPATHS\fR, o ile jest ono
zdefiniowane i w ~/.termcap i ostatecznie w wartości plikowej
\fBTERMCAP_FILE\fR.
Wersje \fBcurses\fR, skompilowane na PC, wspierają znaki PC ROM (zawierające
znaki 0-31, których curses z SVr4 nie potrafi wyświetlić). Zobacz sekcje
ROZSZERZENIA w \fBcurs_addch\fR(3x) i
\fBcurs_attr\fR(3x).
.SH PRZENOŚNOŚĆ
Bibliotekę \fBcurses\fR zaprojektowano jako zgodną ze standardem XSI Curses
na poziomie podstawowym. Obsługiwane są pewne partie rozszerzonych XSI Curses
(łącznie z obsługą koloru). Nie zaimplementowano jeszcze następujących wywołań
rozszerzonego XSI Curses, związanych z obsługą szerokich (wielobajtowych)
znaków:
\fBaddnwstr\fB,
\fBaddwstr\fB,
\fBmvaddnwstr\fB,
\fBmvwaddnwstr\fB,
\fBmvaddwstr\fB,
\fBwaddnwstr\fB,
\fBwaddwstr\fB,
\fBadd_wch\fB,
\fBwadd_wch\fB,
\fBmvadd_wch\fB,
\fBmvwadd_wch\fB,
\fBadd_wchnstr\fB,
\fBadd_wchstr\fB,
\fBwadd_wchnstr\fB,
\fBwadd_wchstr\fB,
\fBmvadd_wchnstr\fB,
\fBmvadd_wchstr\fB,
\fBmvwadd_wchnstr\fB,
\fBmvwadd_wchstr\fB,
\fBbkgrndset\fB,
\fBbkgrnd\fB,
\fBgetbkgrnd\fB,
\fBwbkgrnd\fB,
\fBwbkgrndset\fB,
\fBwgetbkgrnd\fB,
\fBborder_set\fB,
\fBwborder_set\fB,
\fBbox_set\fB,
\fBhline_set\fB,
\fBmvhline_set\fB,
\fBmvvline_set\fB,
\fBmvwhline_set\fB,
\fBmvwvline_set\fB,
\fBwhline_set\fB,
\fBvhline_set\fB,
\fBwvline_set\fB,
\fBecho_wchar\fB,
\fBwecho_wchar\fB,
\fBerasewchar\fB,
\fBkillwchar\fB,
\fBget_wch\fB,
\fBmvget_wch\fB,
\fBmvwget_ch\fB,
\fBwget_wch\fB,
\fBgetwchtype\fB,
\fBget_wstr\fB,
\fBgetn_wstr\fB,
\fBwget_wstr\fB,
\fBwgetn_wstr\fB,
\fBmvget_wstr\fB,
\fBmvgetn_wstr\fB,
\fBmvwget_wstr\fB,
\fBmvwgetn_wstr\fB,
\fBinnwstr\fB,
\fBinwstr\fB,
\fBwinnwstr\fB,
\fBwinwstr\fB,
\fBmvinnwstr\fB,
\fBmvinwstr\fB,
\fBmvwinnwstr\fB,
\fBmvwinwstr\fB,
\fBins_nwstr\fB,
\fBins_wstr\fB,
\fBmvins_nwstr\fB,
\fBmvins_wstr\fB,
\fBmvwins_nwstr\fB,
\fBmvwins_wstr\fB,
\fBwins_nwstr\fB,
\fBwins_wstr\fB,
\fBins_wch\fB,
\fBwins_wch\fB,
\fBmvins_wch\fB,
\fBmvwins_wch\fB,
\fBin_wch\fB,
\fBwin_wch\fB,
\fBmvin_wch\fB,
\fBmvwin_wch\fB,
\fBinwchstr\fB,
\fBinwchnstr\fB,
\fBwinwchstr\fB,
\fBwinwchnstr\fB,
\fBmvinwchstr\fB,
\fBmvinwchnstr\fB,
\fBmvinwchstr\fB,
\fBmvwinwchnstr\fB.
.PP
Niewielka ilość różnic (to jest poszczególnych różnic między XSI Curses, a
wywołaniami \fBcurses\fR) jest opisywana w sekcjach \fBPRZENOŚNOŚĆ\fR
konkretnych stron podręcznika man.
.PP
Format terminfo, obsługiwany przez \fBcurses\fR jest binarnie zgodny z
SVr$, lecz nie jest zgodny z XSI curses. Jest tak, ponieważ ludzie od XSI
Curses, w przypływie uszkodzenia mózgu, zmienili nieudokumentowaną
właściwość SVr4 \fBgetm\fR z napisu na wartość logiczną, zmieniając przez to
offsety binarne wszystkich pozostałych właściwości.
.PP
Funkcje \fBgetmouse\fR, \fBmousemask\fR, \fBungetmouse\fR,
\fBmouseinterval\fR i \fBwenclose\fR, związane z myszą, nie są częścią XPG4
ani SVr$. Zobacz dla dalszych szczegółów \fBcurs_mouse\fR(3X).
.PP
Funkcja \fBwresize\fR nie jest częścią XPG4, i nie jest obecna w SVr4. Więcej
szczegółów znajdziesz w \fBcurs_resize\fR(3X).
.PP
W historycznych wersjach curses, opóźnienia zawarte we właściwościach
\fBcr\fR, \fBind\fR, \fBcub1\fR, \fBff\fR i \fBtab\fR uaktywniały
odpowiadające im bity opóźnień w UNIX-owym sterowniku tty. W tej
implementacji wypełnianie jest dokonywane wysłaniami znaków NUL. Metoda ta jest
trochę bardziej kosztowna, lecz znacząco zawęża interfejs z jądrem UNIX-a
i odpowiednio do tego polepsza przenośność pakietu.
.PP
W standardzie XSI i w stronach podręcznika SVr4, wiele wpisów ma argumenty
prototypopwe \fBchar *const\fR (lub \fBcchar_t *const\fR, lub \fBwchar_t
*const\fR, lub \fBvoid *const\fR). Zależnie od interpretacji standardu
ANSI C (zobacz sekcję 3.5.4.1), deklaracje te są (a) bez znaczenia, lub (b)
bez znaczenia i niedozwolone. Deklaracja \fBconst char *x\fR to modyfikowalny
wskaźnik do modyfikowalnych danych, lecz \fBchar *const x\fR to
niemodyfikowalny wskaźnik do modyfikowalnych danych. Ponieważ C przekazuje
argumenty przez wartość, \fB<typ> *const\fR jako typ formalny jest co
najmniej wątpliwy. Ta więc w tej implementacji zamieniono je globalnie na
\fBconst <type> *\fR.
.SH UWAGI
Plik nagłówkowy \fB<curses.h>\fR automatycznie włącza pliki
\fB<stdio.h>\fR i \fB<unctrl.h>\fR.
Jesli standardowe wyjście, programu \fBcurses\fR jest przekierowywane
do czegoś, co nie jest tty, odświeżenia ekranu będą kierowane na standardowe
wyjście błędu. Jest to nieudokumentowana właściwość curses z AT&T SVr3.
.SH AUTORZY
Zeyd M. Ben-Halim, Eric S. Raymond. Zejście z oryginalnych pcurses zrobił
Pavel Curtis.
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:
.\"# mode:nroff
.\"# fill-column:79
.\"# End:
.SH "INFORMACJE O TŁUMACZENIU"
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i
\fImoże nie być aktualne\fR. W razie zauważenia różnic między powyższym opisem
a rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o zapoznanie
się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia:
.IP
man \-\-locale=C 3ncurses ncurses
.PP
Prosimy o pomoc w aktualizacji stron man \- więcej informacji można znaleźć pod
adresem http://sourceforge.net/projects/manpages\-pl/.
|