.\" -*- coding: UTF-8 -*- '\" t .\"*************************************************************************** .\" Copyright 2018-2024,2025 Thomas E. Dickey * .\" Copyright 1998-2015,2017 Free Software Foundation, Inc. * .\" * .\" Permission is hereby granted, free of charge, to any person obtaining a * .\" copy of this software and associated documentation files (the * .\" "Software"), to deal in the Software without restriction, including * .\" without limitation the rights to use, copy, modify, merge, publish, * .\" distribute, distribute with modifications, sublicense, and/or sell * .\" copies of the Software, and to permit persons to whom the Software is * .\" furnished to do so, subject to the following conditions: * .\" * .\" The above copyright notice and this permission notice shall be included * .\" in all copies or substantial portions of the Software. * .\" * .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * .\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * .\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * .\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * .\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. * .\" * .\" Except as contained in this notice, the name(s) of the above copyright * .\" holders shall not be used in advertising or otherwise to promote the * .\" sale, use or other dealings in this Software without prior written * .\" authorization. * .\"*************************************************************************** .\" .\" $Id: ncurses.3x,v 1.289 2025/11/12 01:01:34 tom Exp $ .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH ncurses 3X "11 noiembrie 2025" "ncurses 6.6" "Apeluri de bibliotecă" .ie \n(.g \{\ .ds `` \(lq .ds '' \(rq .\} .el \{\ .ie t .ds `` `` .el .ds `` "" .ie t .ds '' '' .el .ds '' "" .\} . .de bP .ie n .IP \(bu 4 .el .IP \(bu 2 .. . .de tQ . br . ns . TP .. .\" Add supplementary paragraph tag on its own line after TP. .\" Adapted from TQ (which would produce mandoc warnings). . .SH NUME \fB\%ncurses\fP \- interfață terminal caracter\-celulă cu ieșire optimizată .SH SINOPSIS .nf \fB#include \fP .fi .SH DESCRIERE Biblioteca „new curses” oferă programatorului un mijloc independent de terminal de a citi intrările tastaturii și ale mouse\-ului și de a scrie pe afișaje cu celule de caractere cu ieșire optimizată pentru a minimiza actualizările ecranului. \fI\%ncurses\fP înlocuiește bibliotecile \fIcurses\fP din System V Release 4 Unix („SVr4”) și 4.4BSD Unix, a căror dezvoltare a încetat în anii 1990. Acest document descrie \fI\%ncurses\fP versiunea 6.6 (patch 20251230). .PP \fI\ncurses\fP permite controlul conținutului ecranului terminalului; abstractizarea și subdivizarea acestuia cu \fIwindows\fP și \fIpads\fP; preluarea evenimentelor tastaturii și mouse\-ului; selectarea culorilor și a atributelor de redare (cum ar fi aldin sau subliniere); definirea și utilizarea tastelor \fIsoft label\fP; accesul la baza de date \fI\%term\%info\fP a capacităților terminalului; o interfață de compatibilitate \fItermcap\fP; și o abstractizare a API a sistemului pentru manipularea terminalului (cum ar fi \fI\%termios\fP(3)). .PP \fI\%ncurses\fP implementează interfața descrisă de Curses X/Open ediția 7. În multe detalii comportamentale care nu sunt standardizate de X/Open, \fI\%ncurses\fP emulează biblioteca \fIcurses\fP din SVr4 și oferă numeroase extensii utile. .PP Paginile de manual \fI\ncurses\fP utilizează mai multe secțiuni pentru a clarifica aspecte legate de utilizare și interoperabilitate cu alte implementări \fIcurses\fP. .bP Secțiunea «NOTE» descrie problemele și avertismentele de care orice utilizator al API\-ului \fI\%ncurses\fP ar trebui să fie conștient, cum ar fi limitările privind dimensiunea unui tip integral subiacent sau disponibilitatea unei macroinstrucțiuni de preprocesor exclusiv din definiția unei funcții (care împiedică preluarea adresei sale). Această secțiune descrie, de asemenea, detalii de implementare care vor fi semnificative pentru programator, dar care nu sunt standardizate. .bP Secțiunea «EXTENSII» prezintă inovațiile \fI\%ncurses\fP care depășesc standardul Curses X/Open și/sau implementarea \fIcurses\fP SVr4. Acestea sunt denumite \fIextensions\fP (extensii) pentru a indica faptul că nu pot fi implementate numai prin utilizarea API\-ului bibliotecii, ci necesită acces la starea internă a bibliotecii. .bP Secțiunea «PORTABILITATE» abordează aspecte (dincolo de exercitarea extensiilor) care ar trebui luate în considerare atunci când se scrie pentru un standard \fIcurses\fP, sau pentru implementări multiple. .bP Secțiunea «ISTORIA» examinează punctele de detaliu din \fI\%ncurses\fP și alte implementări \fIcurses\fP de\-a lungul deceniilor de dezvoltare a acestora, în special acolo unde precedentul sau inerția au împiedicat o mai bună proiectare (și, în câteva cazuri, unde o astfel de inerție a fost depășită). .PP O aplicație \fIcurses\fP trebuie legată cu biblioteca; utilizați opțiunea \fB\-lncurses\fP a compilatorului sau editorului de legături. Este posibil să fie disponibilă o versiune de depanare a bibliotecii; în acest caz, faceți legătura cu aceasta folosind \fB\-lncurses_g\fP; (este posibil ca integratorul sistemului dumneavoastră să fi instalat aceste biblioteci astfel încât să puteți utiliza opțiunile \fB\-lcurses\fP și, respectiv, \fB\-lcurses_g\fP). Biblioteca \fI\%ncurses_g\fP înregistrează evenimentele care descriu acțiunile \fI\%ncurses\fP într\-un fișier numit \fI\%trace\fP în directorul de lucru al aplicației la pornire. A se vedea secțiunea «CONFIGURAȚII ALTERNATIVE\» de mai jos. .SS "Structura aplicației" O aplicație \fIcurses\fP utilizează informații din configurația regională a sistemului; \fI\%setlocale\fP(3) o pregătește pentru apelurile bibliotecii \fIcurses\fP. .PP .RS 4 .EX setlocale(LC_ALL, ""); .EE .RE .PP Dacă configurația regională nu este astfel inițializată, biblioteca presupune că toate caracterele sunt imprimabile ca în ISO\ 8859\-1, pentru a funcționa cu anumite programe vechi. Ar trebui să inițializați configurația regională; nu vă așteptați la un comportament consecvent din partea bibliotecii atunci când parametrii regionali nu au fost configurați. .PP \fB\%initscr\fP(3X) sau \fB\%newterm\fP(3X) trebuie să fie apelate pentru a inițializa \fIcurses\fP înainte de utilizarea oricăror funcții care accesează sau manipulează ferestre sau ecrane. .PP Pentru a obține intrarea caracter cu caracter fără ecou \- majoritatea programelor interactive, orientate spre ecran doresc acest lucru \- utilizați următoarea secvență. .PP .RS 4 .EX initscr(); cbreak(); noecho(); .EE .RE .PP Majoritatea aplicațiilor vor efectua configurarea următoare după cum se arată în continuare. .PP .RS 4 .EX .nf noqiflush(); keypad(stdscr, TRUE); .fi .EE .RE .PP Un program \fIcurses\fP intră apoi adesea într\-o buclă de gestionare a evenimentelor. Apelați \fB\%endwin\fP(3X) înainte de a ieși. .SS "Prezentare generală" O bibliotecă \fIcurses\fP abstractizează terminalul cu o structură de date \fI\%SCREEN\fP și reprezintă totul sau o parte a afișajului său cu structuri \fI\%WINDOW\fP. Proprietăți distincte se aplică fiecăreia; de exemplu, \fIdisciplina liniei\fP a unui controlor de terminal Unix tipic este în unul din cele trei moduri: brut, \%cbreak sau («cooked \- procesat») canonic. În \fIcurses\fP, disciplina liniei este o proprietate a ecranului, care se aplică identic tuturor ferestrelor asociate cu acesta. .PP O fereastră \fIwindow\fP este o grilă dreptunghiulară de celule de caractere, adresată prin coordonate de linie și coloană (\fIy\fP, \fIx\fP), cu colțul din stânga sus (0, 0). O fereastră numită \fB\%stdscr\fP, în mod implicit de aceeași dimensiune ca ecranul terminalului, este întotdeauna disponibilă. Creați altele cu \fB\%newwin\fP(3X). .PP O bibliotecă \fIcurses\fP nu gestionează ferestrele care se suprapun (dar a se vedea mai jos). Puteți fie să utilizați \fB\%stdscr\fP pentru a gestiona o singură fereastră care umple ecranul, fie să împărțiți ecranul în ferestre care nu se suprapun și să nu utilizați deloc \fB\%stdscr\fP. Amestecarea celor două abordări va duce la efecte imprevizibile și nedorite. .PP Funcțiile permit manipularea unei ferestre și a \fIcursorului\fP care identifică celula din interiorul acesteia în care va avea loc următoarea operație. Printre acestea, cele mai de bază sunt \fB\%move\fP(3X) și \fB\%addch\fP(3X): acestea plasează cursorul în interiorul și, respectiv, scriu un caracter pe \fB\%stdscr\fP. .PP .\" X/Open Curses Issue 7 assumes some optimization will be done, but .\" does not mandate it in any way. Modificările frecvente ale ecranului terminalului pot provoca pâlpâiri neplăcute sau utilizarea ineficientă a canalului de comunicare cu dispozitivul, astfel încât biblioteca nu îl actualizează în general în mod automat. Prin urmare, după utilizarea funcțiilor \fIcurses\fP pentru a acumula un set de actualizări dorite care au sens să fie prezentate împreună, apelați \fB\%refresh\fP(3X) pentru a spune bibliotecii să facă ecranul utilizatorului să arate ca \fBstdscr\fP. Biblioteca \fIoptimizează\fP rezultatul său prin calcularea unui număr minim de operații pentru a muta ecranul de la starea sa de la actualizarea anterioară la cea nouă. O optimizare eficientă necesită informații precise despre dispozitivul terminal: gestionarea acestor informații este de competența API\-ului \fB\%terminfo\fP(3X), o caracteristică a fiecărei implementări \fIcurses\fP standard. .PP De asemenea, pot fi manipulate ferestre speciale numite \fIpads\fP. Acestea nu sunt limitate la dimensiunea ecranului terminalului și conținutul lor nu trebuie să fie afișat complet. A se vedea \fB\%curs_pad\fP(3X). .PP Multe terminale acceptă configurarea culorilor de prim\-plan și de fundal ale celulelor de caractere, precum și \fIattributes\fP, care determină redarea caracterelor în moduri precum font aldin, subliniat sau în video invers. Consultați \fB\%curs_color\fP(3X) și \fB\%curs_attr\fP(3X). .PP \fIcurses\fP definește constante pentru a simplifica accesul la un set mic de grafice pentru desenarea formelor corespunzătoare setului de caractere alternative DEC (ACS), o caracteristică a VT100 și a altor terminale. A se vedea \fB\%addch\fP(3X). .PP \fIcurses\fP este implementat folosind controlorul de terminal al sistemului de operare; evenimentele legate de taste nu sunt recepționate sub formă de coduri de scanare, ci ca secvențe de octeți. Controlorul raportează tastele grafice (tastele alfanumerice și de punctuație, precum și spațiul) ca atare. Orice altceva, inclusiv tastele Tab, enter/return, tastatura numerică, săgețile și tastele funcționale, apar în \fIcurses\fP sub forma unui caracter de control sau a unei \fIsecvențe de eludare\fP multi\-octet. \fIcurses\fP le poate traduce pe acestea din urmă în \fIcoduri de taste\fP unice. A se vedea \fB\%keypad\fP(3X) și \fB\%getch\fP(3X). .PP \fI\%ncurses\fP oferă reimplementări ale bibliotecilor SVr4 \fBpanel\fP(3X), \fBform\fP(3X) și \fBmenu\fP(3X); acestea permit suprapunerea ferestrelor și facilitează construirea de interfețe cu utilizatorul folosind \fIcurses\fP. .SS Inițializare Selectarea unei valori adecvate a \fITERM\fP în mediul procesului este esențială pentru funcționarea corectă a bibliotecilor \fIcurses\fP și \fI\%term\%info\fP. Un sistem bine configurat selectează automat o valoare \fITERM\fP corectă; \fB\%tset\fP(1) poate ajuta la depanarea situațiilor exotice. .PP Dacă modificați tipul terminalului dintr\-un shell, exportați variabila de mediu \fITERM\fP, apoi rulați \fB\%tset\fP(1) sau comanda «\fBtput init\fP». Consultați subsecțiunea «Tabulatoare și inițializare» din \fB\%terminfo\fP(5). .PP Dacă variabilele de mediu \fI\%LINES\fP și \fI\%COLUMNS\fP sunt definite sau dacă programul \fIcurses\fP se execută într\-un mediu de ferestre grafice, informațiile astfel obținute le înlocuiesc pe cele obținute prin \fI\%term\%info\fP. O extensie \fI\%ncurses\fP permite redimensionarea afișajelor terminalelor; a se vedea \fB\%wresize\fP(3X). .PP Dacă variabila de mediu \fI\%TERMINFO\fP este definită, un program \fIcurses\fP verifică mai întâi dacă există o descriere a tipului de terminal în locația pe care o identifică. \fI\%TERMINFO\fP este utilă pentru elaborarea descrierilor de tip sau atunci când nu este disponibilă permisiunea de scriere la \fI\%/usr/share/terminfo\fP. .PP A se vedea secțiunea «MEDIU» de mai jos. .SS "Convenții de denumire" \fIcurses\fP oferă multe funcții în forme variate folosind un set regulat de alternative la numele uneia elementare. Cele cu prefixul „w” necesită un argument de indicator \fI\%WINDOW\fP; cele cu prefixul „mv” efectuează mai întâi mișcarea cursorului folosind \fB\%wmove\fP(3X); prefixul „mvw” indică ambele. Funcția „w” este de obicei cea elementară; eliminarea acestui prefix indică de obicei operarea cu \fB\%stdscr\fP. .PP Patru funcții prefixate cu „p” necesită un argument \fIpad\fP; a se vedea mai jos. .PP În sinopsisurile funcțiilor, paginile de manual \fI\%ncurses\fP aplică următoarele denumiri parametrilor. Vom introduce tipurile de caractere în subsecțiunea următoare. .PP .TS center; Li L. bf o valoare \fIbooleană\fP (\fBTRUE\fP sau \fBFALSE\fP) c un \fIcaracter\fP sau un \fInr. întreg\fP ch un \fIchtype\fP wc un \fIwchar_t\fP sau \fIwint_t\fP wch un \fIcchar_t\fP win indicator către o fereastră \fIWINDOW\fP pad indicator către o fereastră \fIWINDOW\fP care este un \fIpad\fP (fereastră de dimensiuni reduse) pair un identificator al perechii de culori prim\-plan/fundal .TE .SS "Configurații de caractere late și nelate" .\" "ncursesw" + 2n Această pagină de manual analizează în principal funcțiile care apar în orice configurație a bibliotecii. Există două configurații comune; pentru altele, consultați secțiunea «CONFIGURAȚII ALTERNATIVE» de mai jos. .TP 10 \fI\%ncurses\fP este biblioteca în configurația sa „non\-wide”, care gestionează numai caractere pe opt biți. Aceasta stochează un caracter combinat cu atribute și un identificator de pereche de culori într\-un datum \fI\%chtype\fP, care este adesea un alias al lui \fIint\fP. Un șir de caractere \fIcurses\fP este similar unui șir C \fIchar\fP; un șir \fIchtype\fP se termină cu un \fB0\fP integral, caracterul \fIcurses\fP nul. .IP Atributele și identificatorul unei perechi de culori (fără caracterul corespunzător) pot fi stocate în variabile de tip \fI\%chtype\fP sau \fI\%attr_t\fP. În ambele cazuri, acestea sunt accesate prin intermediul unei măști integrale de biți. .IP Fiecare celulă a unei ferestre \fI\%WINDOW\fP este stocată ca un \fI\%chtype\fP. Curses X/Open nu specifică dimensiunile codului de caractere sau ale identificatorului perechii de culori, nici cantitatea de biți de atribut, în \fIchtype\fP; acestea sunt dependente de implementare. \fI\%ncurses\fP utilizează opt biți pentru codul caracterului. O aplicație care necesită un tip de caracter mai lat, de exemplu pentru a reprezenta Unicode, ar trebui să utilizeze API pentru caractere late. .TP 10 \fI\%ncursesw\fP .\" This is because they operate on "plain" wide-character strings .\" (`wchar_t*`) and not curses complex character strings (`cchar_t*`). .\" SVID 4 did specify functions like `addwch()` and `inswch()` that .\" operated on `chtype`s assuming that they were wide enough for a .\" `wchar_t` plus attribute and color pair bits; X/Open Curses did not .\" standardize these. este biblioteca în configurația sa „wide”, care gestionează codurile de caractere care necesită un tip de date mai mare decât poate reprezenta \fI\%char\fP (un tip de dimensiunea octetului). Aceasta oferă funcții suplimentare care le completează pe cele din biblioteca „non\-wide”, atunci când dimensiunea tipului de caractere de bază este semnificativă. O convenție de denumire oarecum regulată leagă multe dintre variantele „wide” de omologii lor „non\-wide” în cazul în care numele unei funcții „non\-wide” conține «ch» sau «str», prefixați\-l cu «_w» pentru a obține omologul „wide” De exemplu, \fB\%waddch\fP devine \fB\%wadd_wch\fP. O altă excepție este \fB\%ins_nwstr\fP (și variantele sale), scris astfel în loc de «insn_wstr». (Excepțiile care adaugă doar «w» includ \fB\%addwstr\fP, \fB\%inwstr\fP și variantele lor). .IP .\" same as foregoing tag width Această convenție este inaplicabilă pentru unele nume de funcții „non\-wide”, astfel încât sunt utilizate alte transformări pentru configurația „wide”: funcția de gestionare a fundalului ferestrei «bkgd» devine «bkgrnd»; funcțiile de desenare și ștergere a marginilor ferestrei sunt sufixate cu «_set»; iar funcțiile de manipulare a atributelor caracterelor precum «attron» devin «attr_on». .RS 10 .\" "cchar_t" + 2n .TP 9 \fI\%cchar_t\fP este un caracter complex \fIcurses\fP și corespunde configurației \fI\%chtype\fP a caracterelor „non\-wide”. Este un tip structură deoarece necesită mai multă stocare decât oferă un tip scalar standard. Este posibil ca un cod de caractere să nu poată fi reprezentat ca un \fI\%char\fP și, în plus, mai multe caractere pot ocupa o celulă (ca în cazul semnelor de accent și al altor diacritice). Fiecare caracter este de tipul \fI\%wchar_t\fP; un caracter complex conține un caracter de spațiere și zero sau mai multe caractere de nespațiere (a se vedea mai jos). Un șir de caractere complexe se termină cu un \fI\%cchar_t\fP al cărui membru \fI\%wchar_t\fP este caracterul lat nul. Atributele și identificatorul unei perechi de culori sunt stocate în câmpuri separate ale structurii, nu combinate într\-un număr întreg ca în \fI\%chtype\fP. .PP \fI\%ncurses\fP stochează fiecare celulă a unei \fI\%WINDOW\fP ca un \fI\%cchar_t\fP. \fB\%setcchar\fP(3X) și \fB\%getcchar\fP(3X) stochează și extrag date \fI\%cchar_t\fP. .PP API\-ul de bibliotecă lat al \fI\%ncurses\fP depinde de două tipuri de date standardizate de ISO C95. .TP 9 \fI\%wchar_t\fP stochează un caracter lat. Ca și \fI\%chtype\fP, acesta poate fi un alias al lui \fIint\fP. În funcție de codificarea caracterelor, un caracter lat poate fi \fIspacing\fP, ceea ce înseamnă că ocupă singur o celulă de caractere și însoțește de obicei avansarea cursorului, sau \fInon\-spacing\fP, ceea ce înseamnă că ocupă aceeași celulă ca un caracter de spațiere, este adesea considerat un „modificator” al glifului de bază cu care se combină și de obicei nu avansează cursorul. .TP 9 \fI\%wint_t\fP poate stoca un \fI\%wchar_t\fP sau constanta \fI\%WEOF\fP, în mod analog cu funcțiile de manipulare a caracterelor de dimensiunea \fIint\fP din ISO C și constanta sa \fI\%EOF\fP. .RE .\" .SS "Indexare după numele funcției" Tabelul următor enumeră funcțiile \fIcurses\fP furnizate în API\-urile „non\-wide” și „wide” și paginile de manual corespunzătoare care le descriu. Cele marcate cu «*\» sunt specifice \fI\%ncurses\fP, nu sunt descrise de Curses X/Open și nici prezente în SVr4. .PP .TS center tab(/); L L. Numele funcției \fIcurses\fP/Pagina de manual _ COLOR_PAIR/\fBcurs_color\fP(3X) PAIR_NUMBER/\fBcurs_color\fP(3X) add_wch/\fBcurs_add_wch\fP(3X) add_wchnstr/\fBcurs_add_wchstr\fP(3X) add_wchstr/\fBcurs_add_wchstr\fP(3X) addch/\fBcurs_addch\fP(3X) addchnstr/\fBcurs_addchstr\fP(3X) addchstr/\fBcurs_addchstr\fP(3X) addnstr/\fBcurs_addstr\fP(3X) addnwstr/\fBcurs_addwstr\fP(3X) addstr/\fBcurs_addstr\fP(3X) addwstr/\fBcurs_addwstr\fP(3X) alloc_pair/\fBnew_pair\fP(3X)* assume_default_colors/\fBdefault_colors\fP(3X)* attr_get/\fBcurs_attr\fP(3X) attr_off/\fBcurs_attr\fP(3X) attr_on/\fBcurs_attr\fP(3X) attr_set/\fBcurs_attr\fP(3X) attroff/\fBcurs_attr\fP(3X) attron/\fBcurs_attr\fP(3X) attrset/\fBcurs_attr\fP(3X) baudrate/\fBcurs_termattrs\fP(3X) beep/\fBcurs_beep\fP(3X) bkgd/\fBcurs_bkgd\fP(3X) bkgdset/\fBcurs_bkgd\fP(3X) bkgrnd/\fBcurs_bkgrnd\fP(3X) bkgrndset/\fBcurs_bkgrnd\fP(3X) border/\fBcurs_border\fP(3X) border_set/\fBcurs_border_set\fP(3X) box/\fBcurs_border\fP(3X) box_set/\fBcurs_border_set\fP(3X) can_change_color/\fBcurs_color\fP(3X) cbreak/\fBcurs_inopts\fP(3X) chgat/\fBcurs_attr\fP(3X) clear/\fBcurs_clear\fP(3X) clearok/\fBcurs_outopts\fP(3X) clrtobot/\fBcurs_clear\fP(3X) clrtoeol/\fBcurs_clear\fP(3X) color_content/\fBcurs_color\fP(3X) color_set/\fBcurs_attr\fP(3X) copywin/\fBcurs_overlay\fP(3X) curs_set/\fBcurs_kernel\fP(3X) curses_trace/\fBcurs_trace\fP(3X)* curses_version/\fBcurs_extend\fP(3X)* def_prog_mode/\fBcurs_kernel\fP(3X) def_shell_mode/\fBcurs_kernel\fP(3X) define_key/\fBdefine_key\fP(3X)* del_curterm/\fBcurs_terminfo\fP(3X) delay_output/\fBcurs_util\fP(3X) delch/\fBcurs_delch\fP(3X) deleteln/\fBcurs_deleteln\fP(3X) delscreen/\fBcurs_initscr\fP(3X) delwin/\fBcurs_window\fP(3X) derwin/\fBcurs_window\fP(3X) doupdate/\fBcurs_refresh\fP(3X) dupwin/\fBcurs_window\fP(3X) echo/\fBcurs_inopts\fP(3X) echo_wchar/\fBcurs_add_wch\fP(3X) echochar/\fBcurs_addch\fP(3X) endwin/\fBcurs_initscr\fP(3X) erase/\fBcurs_clear\fP(3X) erasechar/\fBcurs_termattrs\fP(3X) erasewchar/\fBcurs_termattrs\fP(3X) exit_curses/\fBcurs_memleaks\fP(3X)* exit_terminfo/\fBcurs_memleaks\fP(3X)* extended_color_content/\fBcurs_color\fP(3X)* extended_pair_content/\fBcurs_color\fP(3X)* extended_slk_color/\fBcurs_slk\fP(3X)* filter/\fBcurs_util\fP(3X) find_pair/\fBnew_pair\fP(3X)* flash/\fBcurs_beep\fP(3X) flushinp/\fBcurs_util\fP(3X) free_pair/\fBnew_pair\fP(3X)* get_escdelay/\fBcurs_threads\fP(3X)* get_wch/\fBcurs_get_wch\fP(3X) get_wstr/\fBcurs_get_wstr\fP(3X) getattrs/\fBcurs_attr\fP(3X) getbegx/\fBcurs_legacy\fP(3X)* getbegy/\fBcurs_legacy\fP(3X)* getbegyx/\fBcurs_getyx\fP(3X) getbkgd/\fBcurs_bkgd\fP(3X) getbkgrnd/\fBcurs_bkgrnd\fP(3X) getcchar/\fBcurs_getcchar\fP(3X) getch/\fBcurs_getch\fP(3X) getcurx/\fBcurs_legacy\fP(3X)* getcury/\fBcurs_legacy\fP(3X)* getmaxx/\fBcurs_legacy\fP(3X)* getmaxy/\fBcurs_legacy\fP(3X)* getmaxyx/\fBcurs_getyx\fP(3X) getmouse/\fBcurs_mouse\fP(3X)* getn_wstr/\fBcurs_get_wstr\fP(3X) getnstr/\fBcurs_getstr\fP(3X) getparx/\fBcurs_legacy\fP(3X)* getpary/\fBcurs_legacy\fP(3X)* getparyx/\fBcurs_getyx\fP(3X) getstr/\fBcurs_getstr\fP(3X) getsyx/\fBcurs_kernel\fP(3X) getwin/\fBcurs_util\fP(3X) getyx/\fBcurs_getyx\fP(3X) halfdelay/\fBcurs_inopts\fP(3X) has_colors/\fBcurs_color\fP(3X) has_ic/\fBcurs_termattrs\fP(3X) has_il/\fBcurs_termattrs\fP(3X) has_key/\fBcurs_getch\fP(3X)* has_mouse/\fBcurs_mouse\fP(3X)* hline/\fBcurs_border\fP(3X) hline_set/\fBcurs_border_set\fP(3X) idcok/\fBcurs_outopts\fP(3X) idlok/\fBcurs_outopts\fP(3X) immedok/\fBcurs_outopts\fP(3X) in_wch/\fBcurs_in_wch\fP(3X) in_wchnstr/\fBcurs_in_wchstr\fP(3X) in_wchstr/\fBcurs_in_wchstr\fP(3X) inch/\fBcurs_inch\fP(3X) inchnstr/\fBcurs_inchstr\fP(3X) inchstr/\fBcurs_inchstr\fP(3X) init_color/\fBcurs_color\fP(3X) init_extended_color/\fBcurs_color\fP(3X)* init_extended_pair/\fBcurs_color\fP(3X)* init_pair/\fBcurs_color\fP(3X) initscr/\fBcurs_initscr\fP(3X) innstr/\fBcurs_instr\fP(3X) innwstr/\fBcurs_inwstr\fP(3X) ins_nwstr/\fBcurs_ins_wstr\fP(3X) ins_wch/\fBcurs_ins_wch\fP(3X) ins_wstr/\fBcurs_ins_wstr\fP(3X) insch/\fBcurs_insch\fP(3X) insdelln/\fBcurs_deleteln\fP(3X) insertln/\fBcurs_deleteln\fP(3X) insnstr/\fBcurs_insstr\fP(3X) insstr/\fBcurs_insstr\fP(3X) instr/\fBcurs_instr\fP(3X) intrflush/\fBcurs_inopts\fP(3X) inwstr/\fBcurs_inwstr\fP(3X) is_cbreak/\fBcurs_inopts\fP(3X)* is_cleared/\fBcurs_opaque\fP(3X)* is_echo/\fBcurs_inopts\fP(3X)* is_idcok/\fBcurs_opaque\fP(3X)* is_idlok/\fBcurs_opaque\fP(3X)* is_immedok/\fBcurs_opaque\fP(3X)* is_keypad/\fBcurs_opaque\fP(3X)* is_leaveok/\fBcurs_opaque\fP(3X)* is_linetouched/\fBcurs_touch\fP(3X) is_nl/\fBcurs_inopts\fP(3X)* is_nodelay/\fBcurs_opaque\fP(3X)* is_notimeout/\fBcurs_opaque\fP(3X)* is_pad/\fBcurs_opaque\fP(3X)* is_raw/\fBcurs_inopts\fP(3X)* is_scrollok/\fBcurs_opaque\fP(3X)* is_subwin/\fBcurs_opaque\fP(3X)* is_syncok/\fBcurs_opaque\fP(3X)* is_term_resized/\fBresizeterm\fP(3X)* is_wintouched/\fBcurs_touch\fP(3X) isendwin/\fBcurs_initscr\fP(3X) key_defined/\fBkey_defined\fP(3X)* key_name/\fBcurs_util\fP(3X) keybound/\fBkeybound\fP(3X)* keyname/\fBcurs_util\fP(3X) keyok/\fBkeyok\fP(3X)* keypad/\fBcurs_inopts\fP(3X) killchar/\fBcurs_termattrs\fP(3X) killwchar/\fBcurs_termattrs\fP(3X) leaveok/\fBcurs_outopts\fP(3X) longname/\fBcurs_termattrs\fP(3X) mcprint/\fBcurs_print\fP(3X)* meta/\fBcurs_inopts\fP(3X) mouse_trafo/\fBcurs_mouse\fP(3X)* mouseinterval/\fBcurs_mouse\fP(3X)* mousemask/\fBcurs_mouse\fP(3X)* move/\fBcurs_move\fP(3X) mvadd_wch/\fBcurs_add_wch\fP(3X) mvadd_wchnstr/\fBcurs_add_wchstr\fP(3X) mvadd_wchstr/\fBcurs_add_wchstr\fP(3X) mvaddch/\fBcurs_addch\fP(3X) mvaddchnstr/\fBcurs_addchstr\fP(3X) mvaddchstr/\fBcurs_addchstr\fP(3X) mvaddnstr/\fBcurs_addstr\fP(3X) mvaddnwstr/\fBcurs_addwstr\fP(3X) mvaddstr/\fBcurs_addstr\fP(3X) mvaddwstr/\fBcurs_addwstr\fP(3X) mvchgat/\fBcurs_attr\fP(3X) mvcur/\fBcurs_kernel\fP(3X) mvdelch/\fBcurs_delch\fP(3X) mvderwin/\fBcurs_window\fP(3X) mvget_wch/\fBcurs_get_wch\fP(3X) mvget_wstr/\fBcurs_get_wstr\fP(3X) mvgetch/\fBcurs_getch\fP(3X) mvgetn_wstr/\fBcurs_get_wstr\fP(3X) mvgetnstr/\fBcurs_getstr\fP(3X) mvgetstr/\fBcurs_getstr\fP(3X) mvhline/\fBcurs_border\fP(3X) mvhline_set/\fBcurs_border_set\fP(3X) mvin_wch/\fBcurs_in_wch\fP(3X) mvin_wchnstr/\fBcurs_in_wchstr\fP(3X) mvin_wchstr/\fBcurs_in_wchstr\fP(3X) mvinch/\fBcurs_inch\fP(3X) mvinchnstr/\fBcurs_inchstr\fP(3X) mvinchstr/\fBcurs_inchstr\fP(3X) mvinnstr/\fBcurs_instr\fP(3X) mvinnwstr/\fBcurs_inwstr\fP(3X) mvins_nwstr/\fBcurs_ins_wstr\fP(3X) mvins_wch/\fBcurs_ins_wch\fP(3X) mvins_wstr/\fBcurs_ins_wstr\fP(3X) mvinsch/\fBcurs_insch\fP(3X) mvinsnstr/\fBcurs_insstr\fP(3X) mvinsstr/\fBcurs_insstr\fP(3X) mvinstr/\fBcurs_instr\fP(3X) mvinwstr/\fBcurs_inwstr\fP(3X) mvprintw/\fBcurs_printw\fP(3X) mvscanw/\fBcurs_scanw\fP(3X) mvvline/\fBcurs_border\fP(3X) mvvline_set/\fBcurs_border_set\fP(3X) mvwadd_wch/\fBcurs_add_wch\fP(3X) mvwadd_wchnstr/\fBcurs_add_wchstr\fP(3X) mvwadd_wchstr/\fBcurs_add_wchstr\fP(3X) mvwaddch/\fBcurs_addch\fP(3X) mvwaddchnstr/\fBcurs_addchstr\fP(3X) mvwaddchstr/\fBcurs_addchstr\fP(3X) mvwaddnstr/\fBcurs_addstr\fP(3X) mvwaddnwstr/\fBcurs_addwstr\fP(3X) mvwaddstr/\fBcurs_addstr\fP(3X) mvwaddwstr/\fBcurs_addwstr\fP(3X) mvwchgat/\fBcurs_attr\fP(3X) mvwdelch/\fBcurs_delch\fP(3X) mvwget_wch/\fBcurs_get_wch\fP(3X) mvwget_wstr/\fBcurs_get_wstr\fP(3X) mvwgetch/\fBcurs_getch\fP(3X) mvwgetn_wstr/\fBcurs_get_wstr\fP(3X) mvwgetnstr/\fBcurs_getstr\fP(3X) mvwgetstr/\fBcurs_getstr\fP(3X) mvwhline/\fBcurs_border\fP(3X) mvwhline_set/\fBcurs_border_set\fP(3X) mvwin/\fBcurs_window\fP(3X) mvwin_wch/\fBcurs_in_wch\fP(3X) mvwin_wchnstr/\fBcurs_in_wchstr\fP(3X) mvwin_wchstr/\fBcurs_in_wchstr\fP(3X) mvwinch/\fBcurs_inch\fP(3X) mvwinchnstr/\fBcurs_inchstr\fP(3X) mvwinchstr/\fBcurs_inchstr\fP(3X) mvwinnstr/\fBcurs_instr\fP(3X) mvwinnwstr/\fBcurs_inwstr\fP(3X) mvwins_nwstr/\fBcurs_ins_wstr\fP(3X) mvwins_wch/\fBcurs_ins_wch\fP(3X) mvwins_wstr/\fBcurs_ins_wstr\fP(3X) mvwinsch/\fBcurs_insch\fP(3X) mvwinsnstr/\fBcurs_insstr\fP(3X) mvwinsstr/\fBcurs_insstr\fP(3X) mvwinstr/\fBcurs_instr\fP(3X) mvwinwstr/\fBcurs_inwstr\fP(3X) mvwprintw/\fBcurs_printw\fP(3X) mvwscanw/\fBcurs_scanw\fP(3X) mvwvline/\fBcurs_border\fP(3X) mvwvline_set/\fBcurs_border_set\fP(3X) napms/\fBcurs_kernel\fP(3X) newpad/\fBcurs_pad\fP(3X) newterm/\fBcurs_initscr\fP(3X) newwin/\fBcurs_window\fP(3X) nl/\fBcurs_inopts\fP(3X) nocbreak/\fBcurs_inopts\fP(3X) nodelay/\fBcurs_inopts\fP(3X) noecho/\fBcurs_inopts\fP(3X) nofilter/\fBcurs_util\fP(3X)* nonl/\fBcurs_inopts\fP(3X) noqiflush/\fBcurs_inopts\fP(3X) noraw/\fBcurs_inopts\fP(3X) notimeout/\fBcurs_inopts\fP(3X) overlay/\fBcurs_overlay\fP(3X) overwrite/\fBcurs_overlay\fP(3X) pair_content/\fBcurs_color\fP(3X) pecho_wchar/\fBcurs_pad\fP(3X) pechochar/\fBcurs_pad\fP(3X) pnoutrefresh/\fBcurs_pad\fP(3X) prefresh/\fBcurs_pad\fP(3X) printw/\fBcurs_printw\fP(3X) putp/\fBcurs_terminfo\fP(3X) putwin/\fBcurs_util\fP(3X) qiflush/\fBcurs_inopts\fP(3X) raw/\fBcurs_inopts\fP(3X) redrawwin/\fBcurs_refresh\fP(3X) refresh/\fBcurs_refresh\fP(3X) reset_color_pairs/\fBcurs_color\fP(3X)* reset_prog_mode/\fBcurs_kernel\fP(3X) reset_shell_mode/\fBcurs_kernel\fP(3X) resetty/\fBcurs_kernel\fP(3X) resize_term/\fBresizeterm\fP(3X)* resizeterm/\fBresizeterm\fP(3X)* restartterm/\fBcurs_terminfo\fP(3X) ripoffline/\fBcurs_kernel\fP(3X) savetty/\fBcurs_kernel\fP(3X) scanw/\fBcurs_scanw\fP(3X) scr_dump/\fBcurs_scr_dump\fP(3X) scr_init/\fBcurs_scr_dump\fP(3X) scr_restore/\fBcurs_scr_dump\fP(3X) scr_set/\fBcurs_scr_dump\fP(3X) scrl/\fBcurs_scroll\fP(3X) scroll/\fBcurs_scroll\fP(3X) scrollok/\fBcurs_outopts\fP(3X) set_curterm/\fBcurs_terminfo\fP(3X) set_escdelay/\fBcurs_threads\fP(3X)* set_tabsize/\fBcurs_threads\fP(3X)* set_term/\fBcurs_initscr\fP(3X) setcchar/\fBcurs_getcchar\fP(3X) setscrreg/\fBcurs_outopts\fP(3X) setsyx/\fBcurs_kernel\fP(3X) setupterm/\fBcurs_terminfo\fP(3X) slk_attr/\fBcurs_slk\fP(3X)* slk_attr_off/\fBcurs_slk\fP(3X) slk_attr_on/\fBcurs_slk\fP(3X) slk_attr_set/\fBcurs_slk\fP(3X) slk_attroff/\fBcurs_slk\fP(3X) slk_attron/\fBcurs_slk\fP(3X) slk_attrset/\fBcurs_slk\fP(3X) slk_clear/\fBcurs_slk\fP(3X) slk_color/\fBcurs_slk\fP(3X) slk_init/\fBcurs_slk\fP(3X) slk_label/\fBcurs_slk\fP(3X) slk_noutrefresh/\fBcurs_slk\fP(3X) slk_refresh/\fBcurs_slk\fP(3X) slk_restore/\fBcurs_slk\fP(3X) slk_set/\fBcurs_slk\fP(3X) slk_touch/\fBcurs_slk\fP(3X) slk_wset/\fBcurs_slk\fP(3X) standend/\fBcurs_attr\fP(3X) standout (evidențiere)/\fBcurs_attr\fP(3X) start_color/\fBcurs_color\fP(3X) subpad/\fBcurs_pad\fP(3X) subwin/\fBcurs_window\fP(3X) syncok/\fBcurs_window\fP(3X) term_attrs/\fBcurs_termattrs\fP(3X) termattrs/\fBcurs_termattrs\fP(3X) termname/\fBcurs_termattrs\fP(3X) tgetent/\fBcurs_termcap\fP(3X) tgetflag/\fBcurs_termcap\fP(3X) tgetnum/\fBcurs_termcap\fP(3X) tgetstr/\fBcurs_termcap\fP(3X) tgoto/\fBcurs_termcap\fP(3X) tigetflag/\fBcurs_terminfo\fP(3X) tigetnum/\fBcurs_terminfo\fP(3X) tigetstr/\fBcurs_terminfo\fP(3X) timeout/\fBcurs_inopts\fP(3X) tiparm/\fBcurs_terminfo\fP(3X) tiparm_s/\fBcurs_terminfo\fP(3X)* tiscan_s/\fBcurs_terminfo\fP(3X)* touchline/\fBcurs_touch\fP(3X) touchwin/\fBcurs_touch\fP(3X) tparm/\fBcurs_terminfo\fP(3X) tputs/\fBcurs_termcap\fP(3X) tputs/\fBcurs_terminfo\fP(3X) trace/\fBcurs_trace\fP(3X)* typeahead/\fBcurs_inopts\fP(3X) unctrl/\fBcurs_util\fP(3X) unget_wch/\fBcurs_get_wch\fP(3X) ungetch/\fBcurs_getch\fP(3X) ungetmouse/\fBcurs_mouse\fP(3X)* untouchwin/\fBcurs_touch\fP(3X) use_default_colors/\fBdefault_colors\fP(3X)* use_env/\fBcurs_util\fP(3X) use_extended_names/\fBcurs_extend\fP(3X)* use_legacy_coding/\fBlegacy_coding\fP(3X)* use_screen/\fBcurs_threads\fP(3X)* use_tioctl/\fBcurs_util\fP(3X)* use_window/\fBcurs_threads\fP(3X)* vid_attr/\fBcurs_terminfo\fP(3X) vid_puts/\fBcurs_terminfo\fP(3X) vidattr/\fBcurs_terminfo\fP(3X) vidputs/\fBcurs_terminfo\fP(3X) vline/\fBcurs_border\fP(3X) vline_set/\fBcurs_border_set\fP(3X) vw_printw/\fBcurs_printw\fP(3X) vw_scanw/\fBcurs_scanw\fP(3X) vwprintw/\fBcurs_printw\fP(3X) vwscanw/\fBcurs_scanw\fP(3X) wadd_wch/\fBcurs_add_wch\fP(3X) wadd_wchnstr/\fBcurs_add_wchstr\fP(3X) wadd_wchstr/\fBcurs_add_wchstr\fP(3X) waddch/\fBcurs_addch\fP(3X) waddchnstr/\fBcurs_addchstr\fP(3X) waddchstr/\fBcurs_addchstr\fP(3X) waddnstr/\fBcurs_addstr\fP(3X) waddnwstr/\fBcurs_addwstr\fP(3X) waddstr/\fBcurs_addstr\fP(3X) waddwstr/\fBcurs_addwstr\fP(3X) wattr_get/\fBcurs_attr\fP(3X) wattr_off/\fBcurs_attr\fP(3X) wattr_on/\fBcurs_attr\fP(3X) wattr_set/\fBcurs_attr\fP(3X) wattroff/\fBcurs_attr\fP(3X) wattron/\fBcurs_attr\fP(3X) wattrset/\fBcurs_attr\fP(3X) wbkgd/\fBcurs_bkgd\fP(3X) wbkgdset/\fBcurs_bkgd\fP(3X) wbkgrnd/\fBcurs_bkgrnd\fP(3X) wbkgrndset/\fBcurs_bkgrnd\fP(3X) wborder/\fBcurs_border\fP(3X) wborder_set/\fBcurs_border_set\fP(3X) wchgat/\fBcurs_attr\fP(3X) wclear/\fBcurs_clear\fP(3X) wclrtobot/\fBcurs_clear\fP(3X) wclrtoeol/\fBcurs_clear\fP(3X) wcolor_set/\fBcurs_attr\fP(3X) wcursyncup/\fBcurs_window\fP(3X) wdelch/\fBcurs_delch\fP(3X) wdeleteln/\fBcurs_deleteln\fP(3X) wecho_wchar/\fBcurs_add_wch\fP(3X) wechochar/\fBcurs_addch\fP(3X) wenclose/\fBcurs_mouse\fP(3X)* werase/\fBcurs_clear\fP(3X) wget_wch/\fBcurs_get_wch\fP(3X) wget_wstr/\fBcurs_get_wstr\fP(3X) wgetbkgrnd/\fBcurs_bkgrnd\fP(3X) wgetch/\fBcurs_getch\fP(3X) wgetdelay/\fBcurs_opaque\fP(3X)* wgetn_wstr/\fBcurs_get_wstr\fP(3X) wgetnstr/\fBcurs_getstr\fP(3X) wgetparent/\fBcurs_opaque\fP(3X)* wgetscrreg/\fBcurs_opaque\fP(3X)* wgetstr/\fBcurs_getstr\fP(3X) whline/\fBcurs_border\fP(3X) whline_set/\fBcurs_border_set\fP(3X) win_wch/\fBcurs_in_wch\fP(3X) win_wchnstr/\fBcurs_in_wchstr\fP(3X) win_wchstr/\fBcurs_in_wchstr\fP(3X) winch/\fBcurs_inch\fP(3X) winchnstr/\fBcurs_inchstr\fP(3X) winchstr/\fBcurs_inchstr\fP(3X) winnstr/\fBcurs_instr\fP(3X) winnwstr/\fBcurs_inwstr\fP(3X) wins_nwstr/\fBcurs_ins_wstr\fP(3X) wins_wch/\fBcurs_ins_wch\fP(3X) wins_wstr/\fBcurs_ins_wstr\fP(3X) winsch/\fBcurs_insch\fP(3X) winsdelln/\fBcurs_deleteln\fP(3X) winsertln/\fBcurs_deleteln\fP(3X) winsnstr/\fBcurs_insstr\fP(3X) winsstr/\fBcurs_insstr\fP(3X) winstr/\fBcurs_instr\fP(3X) winwstr/\fBcurs_inwstr\fP(3X) wmouse_trafo/\fBcurs_mouse\fP(3X)* wmove/\fBcurs_move\fP(3X) wnoutrefresh/\fBcurs_refresh\fP(3X) wprintw/\fBcurs_printw\fP(3X) wredrawln/\fBcurs_refresh\fP(3X) wrefresh/\fBcurs_refresh\fP(3X) wresize/\fBwresize\fP(3X)* wscanw/\fBcurs_scanw\fP(3X) wscrl/\fBcurs_scroll\fP(3X) wsetscrreg/\fBcurs_outopts\fP(3X) wstandend/\fBcurs_attr\fP(3X) wstandout/\fBcurs_attr\fP(3X) wsyncdown/\fBcurs_window\fP(3X) wsyncup/\fBcurs_window\fP(3X) wtimeout/\fBcurs_inopts\fP(3X) wtouchln/\fBcurs_touch\fP(3X) wunctrl/\fBcurs_util\fP(3X) wvline/\fBcurs_border\fP(3X) wvline_set/\fBcurs_border_set\fP(3X) .TE .PP Extensia \fIscreen\-pointer extension\fP a \fI\%ncurses\fP adaugă funcții suplimentare corespunzătoare multora dintre cele de mai sus, fiecare cu un sufix „_sp”; a se vedea \fBcurs_sp_funcs\fP(3X). .PP Disponibilitatea unor extensii este configurabilă atunci când \fI\%ncurses\fP este compilat; consultați secțiunile «CONFIGURAȚII ALTERNATIVE» și «EXTENSII» de mai jos. .SH "VALOAREA RETURNATĂ" Dacă nu se indică altfel, funcțiile care returnează numere întregi returnează constantele \fBOK\fP în caz de succes și \fBERR\fP în caz de eșec; a se vedea \fB\%curs_variables\fP(3X). Funcțiile care returnează indicatori returnează un indicator null în caz de eșec. De obicei, \fI\%ncurses\fP tratează un indicator nul transmis ca parametru al funcției drept un eșec. Funcțiile prefixate cu «mv» efectuează mai întâi mișcarea cursorului și eșuează dacă poziția (\fIy\fP, \fIx\fP) este în afara limitelor ferestrei. .SH MEDIU Următoarele simboluri din mediul procesului personalizează comportamentul aplicațiilor \fI\%ncurses\fP în timpul rulării. Biblioteca poate fi configurată să nu ia în considerare variabilele \fI\%TERMINFO\fP, \fI\%TERMINFO_DIRS\fP, \fI\%TERMPATH\fP și \fIHOME\fP, dacă utilizatorul este superutilizator (root) sau dacă aplicația utilizează \fI\%setuid\fP(2) sau \fI\%setgid\fP(2). .SS \fIBAUDRATE\fP Biblioteca de depanare verifică această variabilă atunci când aplicația a redirecționat ieșirea către un fișier. \fI\%ncurses\fP interpretează valoarea sa integrală ca fiind viteza de linie a terminalului în biți pe secundă. Dacă această valoare este absentă sau nu este validă, \fI\%ncurses\fP utilizează 9600. Această caracteristică permite dezvoltatorilor să construiască cazuri de testare repetabile care iau în considerare deciziile de optimizare care depind de viteza de linie a terminalului. .SS "\fICC\fP (caracter de comandă)" Atunci când este definită, valoarea capacității \fB\%command_character\fP \%(\fBcmdch\fP) a intrărilor \fI\%term\%info\fP încărcate se modifică la valoarea acestei variabile. Foarte puține intrări \fI\%term\%info\fP oferă această caracteristică. .PP Deoarece acest nume este utilizat și în mediile de dezvoltare pentru a reprezenta numele compilatorului C, \fI\%ncurses\fP ignoră valoarea sa dacă nu are un singur caracter. .SS \fICOLUMNS\fP Această variabilă specifică lățimea ecranului în celule de caractere. Aplicațiile care rulează într\-un mediu de ferestre sunt de obicei capabile să obțină lățimea ferestrei în care sunt executate. \fI\%ncurses\fP impune o limită superioară de 512 la citirea valorii. Dacă \fI\%COLUMNS\fP nu este definită și dimensiunea ecranului terminalului nu este disponibilă de la controlorul terminalului, \fI\%ncurses\fP utilizează dimensiunea specificată de capacitatea \fB\%columns\fP \%(\fBcols\fP) a intrării tipului de terminal în baza de date \fI\%term\%info\fP, dacă există. .PP Este important ca aplicația dumneavoastră să utilizeze dimensiunea corectă a ecranului. Detectarea automată a acesteia nu este întotdeauna posibilă, deoarece o aplicație poate rula pe o gazdă care nu respectă NAWS (Negociations About Window Size) sau cu un ID de utilizator diferit de cel al proprietarului fișierului dispozitivului terminal. Definirea \fI\%COLUMNS\fP și/sau \fI\%LINES\fP prevalează asupra utilizării de către bibliotecă a dimensiunii ecranului obținute de la sistemul de operare. .PP Variabilele \fI\%COLUMNS\fP și \fI\%LINES\fP pot fi specificate independent. Această proprietate este utilă pentru a evita caracteristicile eronate ale descrierilor tipurilor de terminale moștenite; descrierile \fI\%xterm\fP(1) care specifică 65 de linii au fost odată notorii. Pentru rezultate optime, evitați specificarea codurilor de capacitate \fBcols\fP și \fBlines\fP în descrierile \fI\%term\%info\fP ale emulatoarelor de terminale. .PP \fBuse_env\fP(3X) poate dezactiva utilizarea mediului procesului în determinarea dimensiunii ecranului. \fBuse_tioctl\fP(3X) poate actualiza \fI\%COLUMNS\fP și \fI\%LINES\fP pentru a corespunde dimensiunii ecranului obținute din apelurile sistemului sau din baza de date a terminalului. .SS \fIESCDELAY\fP Pentru ca \fIcurses\fP să distingă caracterul ESC care rezultă din apăsarea de către utilizator a tastei «Escape» de pe dispozitivul de intrare de cel care începe o secvență \fIescape(eludare)\fP (așa cum este produs de obicei de tastele funcționale), acesta așteaptă după primirea caracterului de eludare pentru a vedea dacă sunt disponibile alte caractere pe fluxul de intrare într\-un interval scurt. O variabilă globală \fB\%ESCDELAY\fP stochează acest interval în milisecunde. Valoarea implicită de 1000 (o secundă) este adecvată pentru majoritatea utilizărilor. Această variabilă de mediu o înlocuiește; \fI\%ncurses\fP impune o limită superioară de 30 000 (30 de secunde) atunci când citește valoarea. .PP Cel mai frecvent caz în care doriți să modificați această valoare este acela de a lucra cu o gazdă la distanță pe un canal de comunicare lent. Dacă gazda care rulează o aplicație \fIcurses\fP nu primește în timp util caracterele unei secvențe de scăpare, biblioteca le poate interpreta ca evenimente de apăsare a mai multor taste. În schimb, un dactilograf rapid care utilizează o conexiune cu latență redusă și care introduce tasta ESC urmată de caractere care corespund unei secvențe de eludare poate întâlni un comportament confuz al aplicației. .PP Evenimentele de mouse \fI\%xterm\fP(1) sunt o formă de secvență de eludare; prin urmare, dacă aplicația dvs. utilizează în mare măsură clicuri multiple, este posibil să doriți să prelungiți valoarea implicită, deoarece întârzierea se aplică evenimentului compozit de clicuri multiple, precum și clicurilor individuale. .PP Aplicațiile portabile nu ar trebui să se bazeze pe prezența \fB\%ESCDELAY\fP în niciuna dintre forme, dar definirea variabilei de mediu în locul variabilei globale nu creează probleme la compilarea unei aplicații. .PP Dacă \fB\%keypad\fP(3X) este dezactivată pentru fereastra \fIcurses\fP care primește intrarea, \fB\%ESCDELAY\fP este irelevantă și un program trebuie să dezambiguizeze singur secvențele de eludare. .SS \fIHOME\fP \fI\%ncurses\fP poate citi și scrie descrieri auxiliare ale terminalelor în fișierele \fI\%.termcap\fP și \fI\%.terminfo\fP din directorul personal al utilizatorului. .SS \fILINES\fP Această contraparte la \fI\%COLUMNS\fP specifică înălțimea ecranului în caractere. Capacitatea și codul \fI\%term\%info\fP corespunzător este \fB\%lines\fP. A se vedea descrierea variabilei \fI\%COLUMNS\fP de mai sus. .SS \fIMOUSE_BUTTONS_123\fP (Numai adaptarea pentru OS/2 EMX) OS/2 numerotează un mouse cu trei butoane în mod inconsecvent față de alte platforme, astfel încât 1 este butonul din stânga, 2 cel din dreapta și 3 cel din mijloc. Această variabilă personalizează numerotarea butoanelor mouse\-ului. Valoarea sa trebuie să fie trei cifre 1\-3 în orice ordine. În mod implicit, \fI\%ncurses\fP presupune o numerotare de „132”. .SS \fINCURSES_ASSUMED_COLORS\fP Dacă este definită, această variabilă înlocuiește presupunerea compilată a bibliotecii \fI\%ncurses\fP conform căreia culorile implicite ale terminalului sunt alb pe negru; consultați \fB\%default_colors\fP(3X). Definiți valorile culorilor de prim\-plan și de fundal cu această variabilă de mediu atribuindu\-i două valori întregi separate prin virgulă, indicând numerele culorilor de prim\-plan și, respectiv, de fundal. .PP De exemplu, pentru a\-i spune lui \fI\%ncurses\fP să nu presupună nimic cu privire la culori, utilizați o valoare de „\-1,\-1”. Pentru a face schema de culori implicită verde pe negru într\-un terminal care utilizează atribuiri de culori ANSI\ X3.64/ECMA\-48/ISO\ 6429, utilizați „2,0”. \fI\%ncurses\fP acceptă valori întregi de la \-1 până la valoarea capacității \fI\%term\%info\fP \fB\%max_colors\fP (\fBcolors\fP) pentru tipul de terminal selectat. .SS \fINCURSES_CONSOLE2\fP .\" https://www.hanselman.com/blog/console2-a-better-windows-command-prompt (Numai pentru adaptarea din MinGW) Programul \fI\%Console2\fP gestionează în mod defectuos apelul Microsoft Console API \fI\%Create\%Console\%Screen\%Buffer\fP. Aplicațiile care îl utilizează se vor bloca. Cu toate acestea, este posibil să se simuleze acțiunea acestui apel prin atribuirea coordonatelor, salvarea explicită și restaurarea conținutului original al ecranului. Definirea variabilei de mediu \fI\%NCGDB\fP are același efect. .SS \fINCURSES_GPM_TERMS\fP (Numai Linux) Atunci când \fI\%ncurses\fP este configurat pentru a utiliza interfața GPM, această variabilă poate lista una sau mai multe nume de tipuri de terminale, delimitate prin bare verticale (\fB|\fP) sau două puncte (\fB:\fP), în funcție de care este comparată variabila \fITERM\fP (a se vedea mai jos). O valoare goală dezactivează interfața GPM, folosind în schimb suportul integrat al \fI\%ncurses\fP pentru protocoalele de mouse \fI\%xterm\fP(1). Dacă variabila este absentă, \fI\%ncurses\fP încearcă să deschidă GPM dacă \fITERM\fP conține \*(``linux\*(«». .SS \fINCURSES_NO_HARD_TABS\fP \fI\%ncurses\fP poate utiliza caractere de tabulare în optimizarea mișcării cursorului. În unele cazuri, este posibil ca controlorul terminalului dvs. să nu le gestioneze corespunzător. Definiți această variabilă de mediu la orice valoare pentru a dezactiva caracteristica. De asemenea, puteți ajusta parametrii \fI\%stty\fP(1) pentru a evita problema. .SS \fINCURSES_NO_MAGIC_COOKIE\fP Multe terminale stochează atributele video ca o proprietate a unei celule de caractere, așa cum face \fIcurses\fP. În trecut, unele modificări ale atributelor video erau înregistrate ca date care ocupau în mod logic (dar invizibil) celulele caracterelor de pe ecran, activând sau dezactivând atributele, similar cu etichetele dintr\-un limbaj de marcare, care apoi trebuiau suprascrise pentru a descrie conținutul dorit al celulelor; acestea sunt denumite „cookie\-uri magice \- magic cookies”. Dacă intrarea \fI\%term\%info\fP pentru tipul dvs. de terminal nu descrie în mod adecvat modul de gestionare a cookie\-urilor magice, definiți această variabilă la orice valoare pentru a instrui \fI\%ncurses\fP să dezactiveze complet atributele. .SS \fINCURSES_NO_PADDING\fP Majoritatea descrierilor tipurilor de terminale din baza de date \fI\%term\%info\fP detaliază dispozitivele hardware. Multe persoane utilizează aplicații bazate pe \fIcurses\fP în programe emulatoare de terminale care rulează într\-un mediu cu ferestre. Aceste programe pot reproduce toate caracteristicile importante ale unui terminal hardware, dar adesea lipsesc limitările acestora. Principala problemă a acestor dezavantaje absente este gestionarea fluxului de date, adică limitarea vitezei de comunicare la ceea ce hardware\-ul poate gestiona. Cu excepția cazului în care un terminal hardware este interfațat cu un concentrator de terminale (care efectuează controlul fluxului), o aplicație trebuie să gestioneze singură controlul fluxului pentru a preveni depășirile și pierderea datelor. .PP O soluție care nu implică costuri hardware este ca aplicația să întrerupă transmisia după ce a dat instrucțiuni terminalului să execute o operație pe care o efectuează lent, cum ar fi ștergerea afișajului. Multe descrieri ale tipurilor de terminale, inclusiv cea pentru VT100, includ specificații de întârziere în capacități. Este posibil să doriți să utilizați aceste descrieri de terminale fără a suferi pierderi de performanță. Definiți \fI\%NCURSES_NO_PADDING\fP la orice valoare pentru a dezactiva toate umpluturile, cu excepția celor obligatorii. Umplerea obligatorie este utilizată de capacități de terminal precum \fB\%flash_screen\fP (\fBflash\fP). .SS \fINCURSES_NO_SETBUF\fP (Obsoletă ) Înainte de modificările interne dezvoltate în \fI\%ncurses\fP 5.9 (plasturii 20120825 până la 20130126), biblioteca folosea \fI\%setbuf\fP(3) pentru a activa ieșirea stocată complet în tampon la inițializarea terminalului. Acest lucru a fost făcut, precum în SVr4 \fIcurses\fP, pentru a crește performanța. În scopuri de testare, atât a \fI\%ncurses\fP, cât și a anumitor aplicații, această caracteristică a fost făcută opțională. Definirea acestei variabile a dezactivat stocarea în tampon a ieșirii, lăsând fluxul de ieșire în modul original (de obicei, stocarea în tampon de linie). .PP În prezent, \fI\%ncurses\fP realizează propria sa stocare în tampon și nu necesită această soluție; nu modifică stocarea în tampon a fluxului de ieșire standard. Această abordare face ca gestionarea semnalelor inițiate de la tastatură de către bibliotecă să fie mai robustă. Un dezavantaj este că anumite programe neconvenționale amestecau apelurile \fI\%stdio\fP(3) cu apelurile \fI\%ncurses\fP și (de obicei) obțineau comportamentul așteptat. Acesta nu mai este cazul; \fI\\%ncurses\fP nu scrie în descriptorul de fișier de ieșire standard printr\-un flux cu tampon \fIstdio\fP. .PP Ca un caz special, apelurile API de nivel scăzut precum \fB\%putp\fP(3X) utilizează în continuare fluxul de ieșire standard. Apelurile \fIcurses\fP de nivel înalt precum \fB\%printw\fP(3X) nu o fac. .SS \fINCURSES_NO_UTF8_ACS\fP La inițializare, \fI\%ncurses\fP inspectează variabila de mediu \fITERM\fP pentru cazurile speciale în care se știe că anumite caractere VT100 (și capacitățile corespunzătoare ale setului de caractere alternative \fI\%term\%info\fP) nu sunt acceptate de tipurile de terminale care pretind compatibilitatea VT100. Mai exact, atunci când rulează într\-o configurație regională UTF\-8, dispozitivul de consolă virtuală Linux și programul GNU \fI\%screen\fP(1) le ignoră. Definiți această variabilă la o valoare diferită de zero pentru a instrui \fI\%ncurses\fP că suportul ACS al terminalului este deteriorat; biblioteca emite apoi puncte de cod Unicode care corespund caracterelor de desenare a formatelor. Definiți\-o la zero (sau un număr neîntreg) pentru a dezactiva verificarea specială a numelor tipurilor de terminale care se potrivesc cu «linux» sau «screen», determinând \fI\%ncurses\fP să presupună că funcția ACS funcționează dacă descrierea tipului de terminal o anunță. .PP Ca alternativă la utilizarea acestei variabile, \fI\%ncurses\fP verifică o capacitate numerică extinsă \fI\%term\%info\fP \fBU8\fP care poate fi compilată utilizând „\fBtic \-x\fP”. Urmăriți exemplele. .PP .RS 3 .EX .nf # consola linux, dacă i s\-au aplicat corecții pentru a oferi # funcționarea VT100 shift\-in/shift\-out, cu fontul corespunzător. linux\-vt100|linux console with VT100 line\-graphics, U8#0, use=linux, \& # uxterm cu resursa vt100Graphics definită la „false” xterm\-utf8|xterm relying on UTF\-8 line\-graphics, U8#1, use=xterm, .fi .EE .RE .PP Numele de două caractere „U8” a fost ales pentru a permite utilizarea sa prin interfața \fItermcap\fP a \fI\%ncurses\fP. .SS \fINCURSES_TRACE\fP La inițializare, \fI\%ncurses\fP (în configurația sa de depanare) verifică prezența acestei variabile. Dacă este definită cu o valoare integrală, biblioteca apelează \fB\%curses_trace\fP(3X) cu acea valoare ca argument. .SS \fITERM\fP Variabila \fITERM\fP denotă tipul terminalului. Fiecare este distinct, deși multe sunt similare. Este de obicei definită de emulatoarele de terminale pentru a ajuta aplicațiile să găsească o descriere acceptabilă a terminalului. Unele aleg o aproximare populară, cum ar fi „ansi”, „vt100” sau „xterm”, în loc de o potrivire exactă a capacităților lor. Nu de puține ori, o aplicație va avea probleme cu această abordare; de exemplu, o apăsare de tastă poate să nu funcționeze corect sau să nu producă niciun efect, ci doar caractere aparent de gunoi pe ecran. .PP Definirea \fITERM\fP nu are niciun efect asupra funcționării hardware; aceasta afectează modul în care aplicațiile comunică cu terminalul. De asemenea, ca regulă generală (\fIxterm\fP(1) fiind o excepție rară), emulatoarele de terminale care vă permit să specificați \fITERM\fP ca parametru sau valoare de configurare nu își modifică comportamentul pentru a corespunde acestei valori. .SS \fITERMCAP\fP Dacă \fI\%ncurses\fP este configurat cu suport \fItermcap\fP, acesta verifică o descriere a tipului de terminal în format \fItermcap\fP dacă nu este disponibilă una în format \fI\%term\%info\fP. Definirea acestei variabile determină \fI\%ncurses\fP să ignore locația obișnuită a bazei de date \fItermcap\fP, \fI\%/etc/termcap\fP; consultați \fI\%TERMPATH\fP mai jos. \fI\%TERMCAP\fP trebuie să conțină fie o descriere a terminalului (fără linii noi), fie un nume de fișier care să indice unde sunt stocate informațiile solicitate de variabila de mediu \fITERM\fP. .SS \fITERMINFO\fP \fI\%ncurses\fP poate fi configurat pentru a citi bazele de date de descriere a tipului de terminal în diverse locații, utilizând formate diferite. Această variabilă prevalează asupra locației implicite. .bP Descrierile în format \fI\%term\%info\fP sunt stocate în mod normal într\-un arbore de directoare care utilizează subdirectoare denumite după primele litere comune ale tipurilor de terminale denumite în acestea. System V a folosit această schemă. .bP Dacă \fI\%ncurses\fP este configurat să utilizeze baze de date rezumate „hashed”, atunci \fI\%TERM\%INFO\fP poate numi locația sa, cum ar fi \fI\%/usr/share/terminfo.db\fP, în loc de \fI\%/usr/share/terminfo/\fP. .PP Baza de date rezumată utilizează mai puțin spațiu pe disc și este puțin mai rapidă decât arborele de directoare. Cu toate acestea, unele aplicații presupun existența arborelui de directoare și îl citesc direct, ignorând API\-ul \fI\%term\%info\fP. .bP Dacă \fI\%ncurses\fP este configurat cu suport \fItermcap\fP, această variabilă poate conține locația unui fișier \fI\%termcap\fP. .bP Dacă valoarea \fI\%TERM\%INFO\fP începe cu „hex:” sau „b64:”, \fI\%ncurses\fP utilizează restul valorii ca o descriere compilată \fI\%term\%info\fP. Puteți produce formatul base64 utilizând \fB\%infocmp\fP(1M). .RS 4 .IP .EX .nf TERMINFO=$(infocmp \-0 \-Q2 \-q) export TERMINFO .fi .EE .RE .IP \fI\%ncurses\fP utilizează descrierea compilată numai dacă aceasta corespunde tipului de terminal identificat de \fITERM\fP. .PP Definirea \fI\%TERM\%INFO\fP este cea mai simplă, dar nu singura, modalitate de a direcționa \fI\%ncurses\fP către o bază de date a terminalului. Ruta de căutare este următoarea. .bP ultima bază de date a terminalului în care a scris aplicația \fI\%ncurses\fP, dacă există .bP locația specificată de variabila de mediu \fI\%TERM\%INFO\fP .bP \fI$HOME/.terminfo\fP .bP .\" empty locațiile enumerate în variabila de mediu \fI\%TERMINFO_DIRS\fP .ds td .if !'/usr/share/terminfo'no default value' .as td /usr/share/terminfo .if !'/usr/share/terminfo\*(td'' \{\ .bP location(s) configured and compiled into .I \%ncurses .RS .if !'\*(td'' \{\ .bP .I \%/usr/share/terminfo .\} .if !'@TERMINFO'' .if !'\*(td'/usr/share/terminfo' \{\ .bP .I \%/usr/share/terminfo .\} .\} .RE .SS \fITERMINFO_DIRS\fP Această variabilă specifică o listă de locații, asemănătoare cu \fIPATH\fP, în care \fI\%ncurses\fP caută descrierile tipurilor de terminale descrise de \fI\%TERMINFO\fP mai sus. Elementele listei sunt separate prin două puncte în Unix și punct și virgulă în OS/2 EMX. \fI\%term\%info\fP System\ V nu are o funcție corespunzătoare; \fI\%TERMINFO_DIRS\fP este o extensie \fI\%ncurses\fP. .SS \fITERMPATH\fP Dacă \fI\%TERMCAP\fP nu conține o descriere a tipului de terminal sau un nume de fișier, atunci \fI\%ncurses\fP verifică conținutul \fI\%TERMPATH\fP, o listă de locații, asemănătoare cu \fIPATH\fP, în care caută descrieri ale tipului de terminal \fItermcap\fP. Elementele listei sunt separate prin două puncte în Unix și punct și virgulă în OS/2 EMX. \fI\%term\%info\fP System\ V nu are o funcție corespunzătoare; \fI\%TERMINFO_DIRS\fP este o extensie \fI\%ncurses\fP. .PP Dacă \fI\%TERMCAP\fP și \fI\%TERMPATH\fP nu sunt definite sau nu sunt valide, \fI\%ncurses\fP caută fișierele \fI\%/etc/termcap\fP, \fI\%/usr/share/misc/termcap\fP și \fI\%$HOME/.termcap\fP, în această ordine. .SH "CONFIGURAȚII ALTERNATIVE" Sunt posibile multe configurații \fI\%ncurses\fP diferite, determinate de opțiunile oferite scriptului \fI\%configure\fP la crearea bibliotecii. Rulați scriptul cu opțiunea \fB\%\-\-help\fP pentru a le parcurge pe toate. Câteva sunt deosebit de importante pentru dezvoltatorul de aplicații care utilizează \fI\%ncurses\fP. .TP 5 \fB\-\-disable\-overwrite\fP Evită conflictele de nume de fișiere între \fI\%ncurses\fP și o instalare \fIcurses\fP existentă în sistem. Includerea standard a preprocesorului C pentru biblioteca \fIcurses\fP este următoarea. .RS 5 .PP .RS 4 .EX .nf .\" The dummy character prevents undesired rewriting of the next line on .\" installation of the man page. \fB#\&include \fP .fi .EE .RE .PP Dacă \fI\%ncurses\fP este instalat cu opțiunea de dezactivare a suprascrierii acesta își pune fișierele de antet într\-un subdirector. Iată un exemplu. .PP .RS 4 .EX .\" The dummy character prevents undesired rewriting of the next line on .\" installation of the man page. \fB#\&include \fP .EE .RE .PP Cu opțiunea \fB\%\-\-disable\-overwrite\fP, instalarea omite și o legătură simbolică care ar determina opțiunea \fB\%\-lcurses\fP a compilatorului să lege fișierele obiect cu \fI\%ncurses\fP în loc de biblioteca de sistem \fIcurses\fP. .PP Directorul utilizat de această configurație a \fI\%ncurses\fP este prezentat în secțiunea «SINOPSIS» de mai sus. .RE .TP 5 \fB\-\-enable\-widec\fP (implicită pentru ABI\ 6+ începând cu 21.10.2023) Activează suportul pentru caractere late. Scriptul \fI\%configure\fP redenumește biblioteca \fI\%ncurses\fP (și biblioteca \fItinfo\fP, dacă este specificată și \fB\%\-\-with\-termlib\fP), adăugând \*(``w\*(«». O aplicație care dorește suport pentru caractere late utilizează apoi \fB\%\-lncursesw\fP (sau \fB\%\-ltinfow\fP) în loc de \fB\%\-lncurses\fP (sau \fB\%\-ltinfo\fP) ca opțiune de legătură. Bibliotecile \fIncurses++\fP, \fIpanel\fP, \fIform\fP și \fImenu\fP sunt redenumite în mod similar. .IP O aplicație trebuie să definească, de asemenea, anumite simboluri ale preprocesorului C pentru a activa caracteristicile de caractere late în fișierele de antet \fIcurses\fP, astfel încât să poată utiliza funcțiile extinse (caractere late). Simbolul care activează aceste funcții s\-a schimbat de la Curses X/Open, ediția 4: .RS 5 .bP Inițial, caracteristica de caractere late necesita simbolul \fI\%_XOPEN_SOURCE_EXTENDED\fP, dar acesta era valabil numai pentru XPG4 (1996). .bP Ulterior, acest lucru a fost considerat conflictual cu \fI\%_XOPEN_SOURCE\fP definit la 500. .bP De la mijlocul anului 2018, nicio caracteristică \fI\%ncurses\fP nu necesită o valoare \fI\%_XOPEN_SOURCE\fP mai mare de 600. Cu toate acestea, Curses X/Open, ediția 7 (2009) recomandă definirea acesteia la 700. .bP Alternativ, puteți activa caracteristica prin definirea \fB\%NCURSES_WIDECHAR\fP cu avertismentul că un alt fișier antet decât \fI\%curses.h\fP poate necesita o valoare specifică pentru \fI\%_XOPEN_SOURCE\fP (sau un simbol specific sistemului). .RE .IP .\" XXX: What's different in term.h? Fișierul de antet \fI\%curses.h\fP instalat pentru biblioteca de caractere late este conceput pentru a fi compatibil cu antetul bibliotecii non\-late. Doar dimensiunea structurii \fI\%WINDOW\fP diferă; puține aplicații necesită mai mult decât indicatori la \fI\%WINDOW\fP. .IP Dacă fișierele de antet ale lui If \fI\%ncurses\fP sunt instalate permițând suprascrierea (implicit, dar vedeți \fB\%\-\-disable\-overwrite\fP mai sus), antetetele bibliotecii de caractere late ar trebui să fie instalate ultimele de către sistemele de împachetare și similare, pentru a permite aplicațiilor să fie construite folosind oricare dintre biblioteci din același set de antete. .TP 5 \fB\-\-with\-pthread\fP Activează suportul pentru aplicații cu mai multe fire de execuție. Scriptul \fI\%configure\fP redenumește biblioteca \fI\%ncurses\fP (și biblioteca \fItinfo\fP, dacă este specificată și \fB\%\-\-with\-termlib\fP), adăugând \*(``t\*('' (înainte de orice \*(``w\*('' adăugat de \fB\%\-\-enable\-widec\fP). O aplicație care dorește suport pentru mai multe fire de execuție utilizează, de exemplu, \fB\%\-lncursest\fP (sau \fB\%\-ltinfot\fP) în loc de \fB\%\-lncurses\fP (sau \fB\%\-ltinfo\fP) ca opțiune de legătură. Bibliotecile \fIncurses++\fP, \fIpanel\fP, \fIform\fP și \fImenu\fP sunt redenumite în mod similar. .IP .\" see definition of NCURSES_WRAPPED_VAR \fI\%ncursest\fP și \fI\%ncursestw\fP înlocuiesc variabilele globale precum \fB\%LINES\fP cu macroinstrucțiuni care permit accesul numai pentru citire. În același timp, acestea oferă funcții pentru a defini aceste valori. Foarte puține aplicații necesită modificări pentru a funcționa cu această convenție. .TP 5 \fB\-\-with\-shared\fP .tQ \fB\-\-with\-normal\fP .tQ \fB\-\-with\-debug\fP .tQ \fB\-\-with\-profile\fP Compilarea obligatorie a bibliotecii \fI\%ncurses\fP (și a bibliotecii \fItinfo\fP, dacă este specificată de asemenea opțiunea \fB\%\-\-with\-termlib\fP) în formele specificate. Numele bibliotecilor partajate și normale (statice) diferă prin sufixele lor, ca în cazul \fI\%libncurses.so\fP și \fI\%libncurses.a\fP. Bibliotecile de depanare și de profilare adaugă un „_g” și un „_p” la rădăcina numelor respective, formând \fI\%libncurses_g.so\fP și \fI\%libncurses_p.a\fP, de exemplu. Bibliotecile \fIncurses++\fP, \fIpanel\fP, \fIform\fP și \fImenu\fP sunt disponibile în mod similar. .TP 5 \fB\-\-with\-termlib\fP Furnizează funcțiile de interfață terminal de nivel inferior ale \fI\%ncurses\fP (cele care nu depind de abstracțiile \fI\%SCREEN\fP și \fI\%WINDOW\fP) într\-o bibliotecă numită \fI\%tinfo\fP. Această aranjare reduce timpul de legare și/sau încărcare a unei aplicații atunci când aceasta nu necesită caracteristicile de nivel superior ale \fIcurses\fP. .IP Următoarele pagini descriu funcțiile \fIcurses\fP de nivel scăzut furnizate de către \fI\%tinfo\fP. .RS .bP \fB\%curs_extend\fP(3X) \- extensii diverse \fIncurses\fP .bP \fB\%curs_inopts\fP(3X) \- opțiuni de intrare \fIcurses\fP .bP \fB\%curs_kernel\fP(3X) \- rutine \fIcurses\fP de nivel redus .bP \fB\%curs_termattrs\fP(3X) \- rutine de interogare a mediului \fIcurses\fP .bP \fB\%curs_termcap\fP(3X) \- emularea \fIcurses\fP a \fItermcap\fP .bP \fB\%curs_terminfo\fP(3X) \- interfața \fIcurses\fP cu baza de date \fIterminfo\fP .bP \fB\%curs_util\fP(3X) \- diverse rutine utilitare \fIcurses\fP .RE .TP 5 \fB\-\-with\-trace\fP Expune funcția \fBcurses_trace\fP(3X) în bibliotecile partajate și statice \fIncurses(w)\fP. În mod normal, aceasta este disponibilă numai în biblioteca de depanare. (Dacă este specificată și \fB\-\-with\-termlib\fP, \fItinfo(w)\fP înlocuiește \fIncurses(w)\fP și furnizează funcția \fBtrace\fP(3X) învechită.) Scriptul de configurare al unei aplicații ar trebui să verifice existența funcției, în loc să presupună că aceasta se află doar în biblioteca de depanare. .SH FIȘIERE .TP \fI/usr/share/tabset\fP baza de date de inițializare oprire a tabulatorului .TP \fI/usr/share/terminfo\fP baza de date compilată privind capacitatea terminalelor .SH NOTE .\" See X/Open Curses Issue 4, Version 2, pp. 227-234. .\" See X/Open Curses Issue 7, pp. 311-318. Curses X/Open permite ca majoritatea funcțiilor pe care le specifică să fie disponibile și ca macroinstrucțiuni. \fI\%ncurses\fP face acest lucru .bP pentru funcțiile care returnează valori prin intermediul parametrilor lor, .bP pentru a oferi suport pentru caracteristici învechite, .bP pentru reutilizarea funcțiilor (de exemplu, cele care mută cursorul înainte de o altă operație), și .bP în câteva cazuri speciale. .PP Dacă descriptorul de fișier al ieșirii standard al unui program \fI\%ncurses\fP este redirecționat către ceva care nu este un dispozitiv de terminal, biblioteca scrie actualizările ecranului în descriptorul de fișier al ieșirii de eroare standard. Aceasta a fost o caracteristică nedocumentată a SVr3 \fIcurses\fP. .PP Consultați subsecțiunea «Fișiere antet» de mai jos privind simbolurile expuse prin includerea lui \fI\%curses.h\fP. .SH EXTENSII \fI\%ncurses\fP permite unei aplicații să capteze evenimentele mouse\-ului de la anumite terminale, inclusiv \fI\%xterm\fP(1); consultați \fB\%curs_mouse\fP(3X). .PP \fI\%ncurses\fP oferă un mijloc de a răspunde evenimentelor de redimensionare a ferestrei, ca atunci când rulează într\-o aplicație emulator de terminal GUI, cum ar fi \fI\%xterm\fP; consultați \fB\%resizeterm\fP(3X) și \fB\%wresize\fP(3X). .PP \fI\%ncurses\fP permite unei aplicații să solicite terminalului prezența unei mari varietăți de taste speciale; consultați \fB\%has_key\fP(3X). .PP \fI\%ncurses\fP extinde setul fix de capacități ale tastelor funcționale specificate de Curses X/Open permițând programatorului de aplicații să definească evenimente suplimentare ale tastelor în timpul execuției; consultați \fB\%define_key\fP(3X), \fB\%key_defined\fP(3X), \fB\%keybound\fP(3X) și \fB\%keyok\fP(3X). .PP \fI\%ncurses\fP poate exploata capacitățile terminalelor care implementează secvențele ISO\ 6429/ECMA\-48 SGR\ 39 și SGR\ 49, care permit unei aplicații să readucă terminalul la culorile inițiale de prim\-plan și de fundal. Din punctul de vedere al utilizatorului, aplicația este capabilă să deseneze text colorat pe un fundal a cărui culoare este stabilită independent, oferind un control mai bun asupra contrastelor de culoare. A se vedea \fB\%default_colors\fP(3X). .PP O aplicație \fI\%ncurses\fP poate evita cunoașterea structurii interne \fI\%SCREEN\fP și \fI\%WINDOW\fP, folosind în schimb funcții de accesoriu precum \fB\%is_cbreak\fP(3X) și \fB\%is_scrollok\fP(3X). .PP \fI\%ncurses\fP permite unei aplicații să direcționeze ieșirea aplicației către o imprimantă atașată la dispozitivul de terminal; consultați \fB\%curs_print\fP(3X). .PP \fI\%ncurses\fP oferă \fB\%slk_attr\fP(3X) ca o variantă contrară a \fB\%attr_get\fP(3X) pentru liniile de taste cu etichetă software și \fB\%extended_slk_color\fP(3X) ca o formă a \fB\%slk_color\fP(3X) care poate colecta informații despre culoare de la acestea atunci când sunt acceptate mai multe culori. .PP \fI\%ncurses\fP permite modificarea comportamentului lui \fB\%unctrl\fP(3X); a se vedea \fB\%use_legacy_coding\fP(3X). .PP Poate fi disponibil un suport rudimentar pentru aplicațiile multi\-fir; consultați \fBcurs_threads\fP(3X). .PP Funcțiile care facilitează gestionarea ecranelor multiple pot fi expuse; a se vedea \fBcurs_sp_funcs\fP(3X). .PP Pentru a ajuta aplicațiile să își depaneze utilizarea memoriei, \fI\%ncurses\fP oferă opțional funcții pentru a elibera mai agresiv memoria pe care o alocă dinamic; a se vedea \fBcurs_memleaks\fP(3X). .PP Biblioteca facilitează auditarea și depanarea comportamentului său; a se vedea \fBcurs_trace\fP(3X). .PP Compilarea \fI\%ncurses\fP cu opțiunea \fB\%\-DUSE_GETCAP\fP determină revenirea la citirea \fI\%/etc/termcap\fP dacă codul de configurare a terminalului nu poate găsi o intrare \fI\%term\%info\fP corespunzătoare lui \fITERM\fP. Utilizarea acestei funcții nu este recomandată, deoarece include, în esență, un întreg compilator \fItermcap\fP în codul de pornire \fI\%ncurses\fP, cu un cost în ceea ce privește utilizarea memoriei și latența lansării aplicației. .PP \fI\%PDCurses\fP și \fIcurses\fP NetBSD includ unele extensii \fI\%ncurses\fP. Paginile de manual individuale indică unde acesta este cazul. .SH PORTABILITATE Curses X/Open definește două niveluri de conformitate, „base” și „enhanced”. Acesta din urmă include câteva caracteristici suplimentare, cum ar fi suportul pentru caractere late și culori. \fI\%ncurses\fP intenționează conformitatea la nivel de bază cu Curses X/Open, și acceptă toate caracteristicile nivelului său îmbunătățit, cu excepția utilitarului \fI\%untic\fP. .PP Diferențele dintre Curses X/Open și \fI\%ncurses\fP sunt documentate în secțiunile «PORTABILITATE» din paginile de manual aplicabile. .SS "Verificarea erorilor" În multe cazuri, Curses X/Open este vag cu privire la condițiile de eroare, omițând o parte din documentația SVr4. .PP Spre deosebire de alte implementări, \fI\%ncurses\fP verifică parametrii de tip indicator, cum ar fi cei pentru structurile \fI\%WINDOW\fP, pentru a se asigura că nu sunt nule. Acest lucru se face în primul rând pentru a proteja împotriva erorilor programatorului. Interfața standard nu prevede o modalitate prin care biblioteca să indice unei aplicații care dintre mai multe erori posibile a avut loc. O aplicație care se bazează pe \fI\%ncurses\fP pentru a verifica validitatea parametrilor funcției sale își limitează portabilitatea și robustețea. .SS "Diferențe de umplere" În implementările istorice ale \fIcurses\fP, întârzierile încorporate în capacitățile \fI\%term\%info\fP \fB\%carriage_return\fP (\fBcr\fP), \fB\%scroll_forward\fP (\fBind\fP), \fB\%cursor_left\fP (\fBcub1\fP), \fB\%form_feed\fP (\fBff\fP) și \fB\%tab\fP (\fBht\fP) activau biții de întârziere corespunzători în controlorul de terminal Unix. \fI\%ncurses\fP efectuează toată umplerea prin trimiterea de octeți NUL către dispozitiv. Această metodă este puțin mai costisitoare, dar restrânge semnificativ interfața cu nucleul Unix și crește corespunzător portabilitatea pachetului. .SS "Fișiere antet" Fișierul de antet \fI\%curses.h\fP include fișierele de antet \fI\%stdio.h\fP și \fI\%unctrl.h\fP. .PP Curses X/Open are mai multe de spus, .RS 4 .PP Includerea \fI\%curses.h\fP poate face vizibile toate simbolurile din antetele \fI\%stdio.h\fP, \fI\%term.h\fP, \fI\%termios.h\fP și \fI\%wchar.h\fP. .RE .PP dar nu încheie povestea. Urmează o relatare mai completă. .bP Primul \fIcurses\fP, în 4BSD, a furnizat un fișier \fI\%curses.h\fP. .IP Codul \fIcurses\fP BSD includea \fI\%curses.h\fP și \fI\%unctrl.h\fP dintr\-un fișier de antet intern \fI\%curses.ext\fP, unde „ext” abrevia „externs”. .IP Implementările \fI\%printw\fP și \fI\%scanw\fP au utilizat funcții interne nedocumentate ale bibliotecii de In/Ieș standard (\fI_doprnt\fP și \fI_doscan\fP), dar nimic în \fI\%curses.h\fP nu s\-a bazat pe \fI\%stdio.h\fP. .bP \fIcurses\fP SVr2 a adăugat \fI\%newterm\fP, care se bazează pe \fI\%stdio.h\fP deoarece prototipul funcției sale utilizează tipul \fIFILE\fP. .IP \fIcurses\fP SVr4 a adăugat \fI\%putwin\fP și \fI\%getwin\fP, care utilizează și \fI\%stdio.h\fP. .IP Curses X/Open specifică toate aceste trei funcții. .IP \fIcurses\fP SVr4 și Curses X/Open nu solicită dezvoltatorului să includă \fI\%stdio.h\fP înainte de \fI\%curses.h\fP. Ambele documentează utilizarea \fIcurses\fP ca necesitând doar \fI\%curses.h\fP. .IP Ca urmare, standardul \fI\%curses.h\fP include întotdeauna \fI\%stdio.h\fP. .bP Curses X/Open și \fIcurses\fP SVr4 nu sunt compatibile cu \fI\%unctrl.h\fP. .IP După cum se menționează în \fBcurs_util\fP(3X), \fI\%ncurses\fP include \fI\%unctrl.h\fP din \fI\%curses.h\fP (așa cum face SVr4). .bP Comentariile din Curses X/Open despre \fI\%term.h\fP și \fI\%termios.h\fP se pot referi la HP\-UX și AIX. .IP \fIcurses\fP HP\-UX include \fI\%term.h\fP din \fI\%curses.h\fP pentru a declara \fI\%setupterm\fP în \fI\%curses.h\fP, dar \fI\%ncurses\fP și \fIcurses\fP Solaris nu. .IP \fIcurses\fP AIX include \fI\%term.h\fP și \fI\%termios.h\fP. Din nou, \fI\%ncurses\fP și \fIcurses\fP Solaris nu. .bP Curses X/Open spune că \fI\%curses.h\fP \fBpoate\fP include \fI\%term.h\fP, dar nu îi cere să facă acest lucru. .IP .\" Is that true in ncurses? Can we supply an example? --GBR Unele programe utilizează funcții declarate atât în \fI\%curses.h\fP, cât și în \fI\%term.h\fP, și trebuie să includă ambele fișiere de antet în aceeași unitate de traducere (conversie). .IP Fișierele de antet furnizate de \fI\%ncurses\fP includ antetele bibliotecii standard necesare pentru declarațiile sale, astfel încât propriile fișiere de antet ale \fI\%ncurses\fP pot fi incluse în orice ordine. Pentru portabilitate chiar și pe sistemele AIX vechi, includeți \fI\%curses.h\fP înainte de \fI\%term.h\fP. .bP Curses X/Open spune „poate face vizibile” deoarece includerea unui fișier antet nu face neapărat vizibile toate simbolurile din acesta (luați în considerare #ifdef și altele similare). .IP .\" bold to contrast with preceding italic .\" bold for consistency in this paragraph De exemplu, \fI\%ncurses\fP's \fI\%curses.h\fP \fBpoate\fP include \fI\%wchar.h\fP dacă simbolul corespunzător este definit și dacă \fI\%ncurses\fP este configurat pentru suportul caracterelor late. Dacă \fI\%wchar.h\fP este inclus, simbolurile sale \fBpot\fP fi făcute vizibile în funcție de valoarea macroinstrucțiunii de testare a caracteristicii \fI\%_XOPEN_SOURCE\fP. .bP Curses X/Open impune includerea de către o aplicație a unui antet de bibliotecă C standard într\-un caz special: \fI\%stdarg.h\fP înainte de \fI\%curses.h\fP pentru a prototipa funcțiile \fI\%vw_printw\fP și \fI\%vw_scanw\fP (precum și învechitele \fI\%vwprintw\fP și \fI\%vwscanw\fP). Fiecare dintre acestea ia o listă de argumente variadice, un parametru \fI\%va_list\fP, precum cel al \fI\%printf\fP(3). .IP .\" V7, 32V, System III, 3BSD \fIcurses\fP SVr3 a introdus două funcții învechite, iar Curses X/Open pe celelalte. Între timp, \fIcurses\fP SVr4 a prevăzut posibilitatea ca o aplicație să includă fie \fI\%varargs.h\fP, fie \fI\%stdarg.h\fP. Acestea reprezentau abordări contrastante pentru gestionarea listelor de argumente variadice. Interfața mai veche, \fI\%varargs.h\fP, folosea un indicator către \fIchar\fP pentru parametrul \fI\%va_list\fP al funcțiilor variadice. Ulterior, lista și\-a dobândit propriul tip de date standard, \fI\%va_list\fP, definit în \fI\%stdarg.h\fP, permițând compilatorului să verifice tipurile parametrilor reali ai unui apel de funcție în raport cu cele formale declarate în prototipul său. .IP Nicio implementare conformă a Curses X/Open nu solicită unei aplicații să includă \fI\%stdarg.h\fP înaintea \fI\%curses.h\fP, deoarece fie au permis pentru un tip special, fie, precum \fI\%ncurses\fP, includ ele însele \fI\%stdarg.h\fP pentru a oferi o interfață portabilă. .SH AUTORI Zeyd M. Ben\-Halim, Eric S. Raymond, Thomas E. Dickey. Bazat pe \fI\%pcurses\fP de Pavel Curtis. .SH "CONSULTAȚI ȘI" \fB\%curs_variables\fP(3X), \fB\%terminfo\fP(5), \fB\%user_caps\fP(5) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .