.\" 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 \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ć (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\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\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\fR. Typ \fBTERMINAL\fR jest zdefiniowany w \fB\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 *const\fR jako typ formalny jest co najmniej wątpliwy. Ta więc w tej implementacji zamieniono je globalnie na \fBconst *\fR. .SH UWAGI Plik nagłówkowy \fB\fR automatycznie włącza pliki \fB\fR i \fB\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/.